This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "IPFire 2.x development tree".
The branch, master has been updated via ea219d3a0f77a4d45cf42d8e7d3ee9dc3db63bbc (commit) via 70c926e75bc83d60490d5c1ce9d8d62ed64d284b (commit) via a3f2459f8fb71a49935902f167de08bbd8b85fd3 (commit) via 1e4b7130e1e0a05ae5c939122d6f88708bbf8531 (commit) via 38ca33d110b4516f927e866a37db59e596f4b6a4 (commit) via 90b0389a90b58695a05e419e9098b96cac66e003 (commit) via 82f5dd85cd96a5b60aa9df58449bd8a5c0673d26 (commit) via 5734dd105ceb331ca74140e4bea5acdf16226062 (commit) via 8fcb92530e4ddd8146d0d82e380a161cc85413e4 (commit) via 7add463e51039d0409545f7279d43a66eba1d532 (commit) via 36d809efb637c618359f40c1ecd8d820fcb2c882 (commit) via 513c321ebedcf0865863b95ccd453f155f7703ed (commit) via 6a79396ce6dba66f4f8cce26a743be3496a8902c (commit) via 91eb94ee2f95c8d0e5ca709ea8e1480959581f7c (commit) via 57c209d558e0b410d5f42493d328d2c06cef20ac (commit) via 5c8167f5766250bdc3b57e6242e487fb467f895f (commit) via f763ff3224dec67963bd47ef176085d7dd310fc0 (commit) via af433268e063cbcb435b4770027906d897d9bb6f (commit) via 51cf3f8be548e3bb3bff19bab7c27dbb56e6e426 (commit) via f98bb538e59279bb0768a15fc7d95267f4d61c74 (commit) via c0ce920610c15e9a3639dbaadb29feea1747ac34 (commit) via 896eb2d69354221b2a13770b60a61c5b454126a7 (commit) via c71499d8d9296124cd08467efa938375e0bccb20 (commit) via fd169d0adc87c82253b0655d94ea8213e9aaabe4 (commit) via 4e54e3c6f531f356424c366c6c886efeceb5b8ae (commit) via d7a14d01e120d7350f449a2694eb10feedede2d6 (commit) via 0d0df35ca260e5934f66ac79247dd9682f20795f (commit) via 95cda2592498ead2cc02364b6d9ea6522bd562a6 (commit) via cec275c9dfd9f614c94f10c636bdbeba09427272 (commit) via b3c0c61132512367cf30c8286880f01d0cb81ace (commit) via 0f0d6a5a7d4c8a8ac4c01b4f99c030a47cf56e41 (commit) via dea9e7193c8c5ab9b480f8af9711099576c28919 (commit) via ece72ab98f2379caa3299647f2088a2ec6d4f1c6 (commit) via f89678de2fe1b9b1fa711bcd72c1e2d771a059d7 (commit) via b0d9fad3f94fb73b1686c5e6a948066497638d26 (commit) via cc77ac2364436f6dff5fa31bbe6fb0dd1f92c4fd (commit) via 1aa5439cf14c881043dddf685a528fabf33305af (commit) via bb0618287b9c10fac2fd1a8386128386fa667f20 (commit) via df1f687b28c28b1b6721cd3f02ce043e9d433bfc (commit) via be0d1005fdad24d7c0eb1d16411c99048caf7fcf (commit) via 4f92fd2aebf81cdc64b2e024593341dbaeb76611 (commit) via fff24766e384c0245f2c660a7e4a422db2ee6e7b (commit) via 607c9d3ae05eaa5de02c51aa5923505f7c5026c3 (commit) via e583643a25e2249bcc3583bdae9aed7b57663fbe (commit) via 5561ea4a71350e0c851534bed430bc5ef60547ad (commit) via 4ebd3831fab6949542f0d2a9d6e444c5f8619ad1 (commit) via da7a2208d3a3c4143ce9029665ad9d738e70d3b1 (commit) via 5cf8c8c12382d77b07fbcb1b8916d78d2806cc74 (commit) via c2a1af7545c52edc9354e778acecb6370ea15d48 (commit) via 2a07aa9d9c4c1968a1072147107d889a1a8aae5e (commit) via a72ae687c6779a280fe2da176550471b8b3b1771 (commit) via 17eabb6587e53570f518aa968e0f935dd5b3bb12 (commit) via 835a1e2863fac9065690b5a79c0ca120f398e533 (commit) via d5e94f72f6fe617f5b1653eaa24fbe0fdc3dde3b (commit) via 3a60bf3483d0f40deba348c120df3e75da7b3ce0 (commit) via 2b6c5f257980b0f9e4d31f26ac1945092a45df6a (commit) via dadffbf738474d649b7177d56acedbad51d6e603 (commit) via fd24071f657fff2dfa8f878b8eef5d6a1dcf20d8 (commit) via 7e7788ea0bf73e122b71f56e972565d910a1e302 (commit) via 9d870c49eb75331f75bd84daeb6bed658d8a1b90 (commit) via 84004f0538945215dda2b52fe2f664274dc884ce (commit) via 03b08c08f0be261f47335ebf6e608b4b5d6d153a (commit) via 4d81e0f3812fc272b2515a631a2e98c4ae76a42b (commit) via c6df357fd4fefe2a8285ec92e38bd40361fe788e (commit) via b3c53248d97ee083fcf43cc5ff745396be06ca1a (commit) via 38cacce21b42d9e7c079e646096e486ac706e546 (commit) via 09d7ae9471547ea9ab42a77339666a3e5353caf3 (commit) via 014b284e5f3dc1eb87b1198e717cffa28dc70771 (commit) via 826c22d66c3eae74bb4c7287cdd81478a5341e01 (commit) via e9b5ba417924d00309736ca045997c5dec7ce4d3 (commit) via cbb88df1548953beeca06d462c9d3006a15dc9ef (commit) via e55334753d7dc49db0b5530b78b8d0f15ca03e9c (commit) via 5ef260ae4192d644d621f82bfb0a8f514088cc0c (commit) via d7050fc04a06f0decd8faf12c559e899b3848191 (commit) via 9a5050b4c5e9a2635f859cae14820827742dfcf4 (commit) via 59124eeb2aacdee2229b68e128cfa8c738ee1a68 (commit) via dc98645fd42873dfeda01188243565e2f977f4a9 (commit) via 3c3f0b664eb09375e084e969038154899fecf162 (commit) via 91dd042b20210df0bb0461ebf09791e3c028ea86 (commit) via 63f2fb7fda9112d9e39414328e5d4fab28809c63 (commit) via 323923d912cb86fd2e89326aa61bad06bf05d6dd (commit) via 32c6ebdced9682fdbdbe54059de25a036557d3b0 (commit) via 6e9cf9ad860616468a0d1367e345dd24a3664c17 (commit) via 65c9b3a50815587bc212160465c92b6150e6fb77 (commit) via 2610f3930ab91a3b7ba79a80ac9e6f6d0ea3c724 (commit) via b062a11bbe730454c48c2c45ff0b1e0eec454471 (commit) via 13e3cf285e32334e2de1a23a916fa941994fdd23 (commit) via 179deb37d02efbb6c180568ef361a7caf3ede70e (commit) via 5f050d607c11a875564916de98cb3c3f2c2ce390 (commit) via 9c3bcb9f00fc09c86312b382bfb594c08fabc9ed (commit) via 9556a0fb95e2a7c5458ea2dcaecc29c2a71c5f86 (commit) via 5a09c99a89fdeed47e0fa9ea0b3623b08422ca26 (commit) via abb3cfcc9ef1ffec5235ead3b9cad4014c141aa9 (commit) via 2ed474684d5f7152e34ef606d282798561e5c35f (commit) via 90c2ce0c20c8b0cdb027220f5363b51dd9195d83 (commit) via 40962f9760ce8da23ebd5c723d75775e7853943d (commit) via 0ba66e9293e106469894d84268b997a67f71e105 (commit) via fa8229546b11ac356ff1df733a0b17eb045559ee (commit) via fbd8ac3c8c06c5cf6b262e98af17c85b1609cecc (commit) via 8225c4fc98da65f37e4fe1535dee46a27522ac3a (commit) via 7429ee78b62e5b248a646a02dbc198db57412291 (commit) via 0bda23f5a1bc182592f4ac1aa9d9929769877835 (commit) via 3bb4bb3fa136224792e7dbbcf8b4f801a5565284 (commit) via f620fa34dfe915c2e30d74614e6aeee1c99e2c59 (commit) via 36c92ab00dd7d5a778199217bffe4c52c94d77ec (commit) via c39413f2d59c04f2d6051d737abbb2c89e203ec1 (commit) via d1dee6c1a1190868a8f6b21f1b63d45a73917f41 (commit) via ece4c8cdc3146b39797c01241a8355be54f31888 (commit) via fa49910fa8cb713c9df965891aff257e6fd2832e (commit) via fb5132aa57e40e52aa0571020d26c12236f48310 (commit) via 824dc93601e03f14d6acaffe11fb578fe2667394 (commit) via 9f80e810729347d23386ae9837927bb2c8b9f1fe (commit) via d98aa95a55254a1c220390cf7ae389e68ea1f2c0 (commit) via 7bb66417fa6908750cf083e90805d7e498ff161e (commit) via 1c3044d72c4097227a63754c7673c485320230d2 (commit) via 292cad90f72fa27cbd8417c89a75097d8cec6e3b (commit) via 0e53d8a991af6cfb1b2982c20a663a5aa0fedc84 (commit) via 6e87f0aa53e12c4849ae36ec6c11f718b9d297f0 (commit) via cbc492f516c0dc8077b2e41f336776aca552e256 (commit) via 239f8188e22bec5ea0820dd0e566fc8dcbd3e3c1 (commit) via 8f4f4634df1057e99b35a127ccb22a343d1f2274 (commit) via b05ec50ac97ef1d29190aab983284d2e1444ddda (commit) via 6178953be5c93975c069314cfe3b20cd2d684746 (commit) via a2b3eba9f5a16e8a7042f6e2029c377db5da7e9a (commit) via 1f9e7b53b74a139cf10a95c40995f887cfb24407 (commit) via 8531b94ae07f0f9d6897d2a03f5cf713131b2b13 (commit) via 68d1eb101713a381788a2f566156131c91095275 (commit) via 97ab0569bd6d7a421771175fa75bf064826cc3c1 (commit) via b57edbd8ecc9ee86f3a4f9df4608d962add492b2 (commit) via 13585cc922d6836d2a908ff4a9f0a7024b086876 (commit) via 5c3de120aabfaf150aa7303c4c3c92e3072da809 (commit) via a0a5c14f8525a2885e985b56d8ac360358b4c726 (commit) via 2513ae737d195c220aa82f08945c67ba6fdb6c1e (commit) via d0ff84a67542250eac49661ff97dfaf1c6181b1c (commit) via bb3834231ec78a2d7b0bc4201906467c47ea7aa4 (commit) via 60fb533157f92fdfe630fd8e76d2ca5f4644ad5d (commit) via 326a764de66971d2c78d2e45225d8985ca4ac3be (commit) via 1db04adbef997af2fba8356ef14e31db252a5cc2 (commit) via c6f96750ba3131a58f3cd998f73b5c1ad9bc903c (commit) via 26685b07425ed4090ff7ba66f37adcccc77ae298 (commit) via 82a4a102f3eaa4d1d706a654cb940596714871d2 (commit) via 6887597c0465fb7ae3bbc1bb812151e6dd2eb7a7 (commit) via 3e5e8a4a88727c3ab3871fa683b97beb0e307684 (commit) via 800077a68916409bd0aa3b5a240bd9f70ec27655 (commit) via 5a7491ffd6023019d605aa773c1f6d8e3fb2ff17 (commit) via 5eee5a607e213c25b350926c5234d2230cfc6e29 (commit) via b18dba57de09607a047c75a5a704c48c060b7c3c (commit) via 015e243b0dba4fb493fc92068eea3e97f37d3a0c (commit) via df6b9ebfbc36dd14de9159af1fbeab963c6dd7c9 (commit) via c9cd26f2000a0f2218defca31faf6652740f9617 (commit) via 906d293b05874db62532b35b10e3fe2b8784c361 (commit) via b3aa7a123136f35392cea2d37c91ffce1f416094 (commit) via 55a5bcae74bfd12cd5610508e4cd77d08970399e (commit) via a8d1d049c6b152b5dc8aa3184abfcaa46203ee8f (commit) via e06986e85347213f20c48df8cdaf9c9eeb0b2359 (commit) via 480f354d894e212e9dd6f66936c2ca592e1c549b (commit) via 329e9c465ad41fd102ab5a59169e6ac569da7edf (commit) via ce81f1eb3ebeb2169a0781b7dcf177796226e463 (commit) via adce3f96fc5c0b817d2742eed6065706aef9e210 (commit) via 69776cc42fdf9f77307e4ff7c58d5a5360991dd4 (commit) via 78f10eafe07b317f784d7e41487645672681109b (commit) via c101827318705aca4ffc9ae955d921f3b92d98b4 (commit) via 25bd6edaaf0158ece48f4f3732ff8933bc188028 (commit) via f2b8668fc8d3590e426d716068b3b59f0f58a3a1 (commit) via 50294f93c21d7a8c9bad7bfde953856d45040999 (commit) via 4e7c3114cade2f653d703d8a64db7bc4f15f18eb (commit) via 52ecb188bcc2fd922fca816f80b6db609d89002a (commit) via 66f6b279b0622aa2244ace040bdb8848831d06e0 (commit) via a7c5afa453e30622de900bcac55fada19e470faa (commit) via 22fd89c656d3a36a881a1ed2a02a544b91876e47 (commit) via f942937c29ca76a7f153fc16ea13157eb4cf05cc (commit) via 46a6d6c7fcf5037bcb57ca2d1c6508b8d702ffed (commit) via 97bf45e51628acbe7129b49d84dd4560dda14c13 (commit) via ec56a5393fd698a98f4549918c95a52daae5c41f (commit) via 585df65af1a0af6c7c263b5dd476b00508774c44 (commit) via 525204e00fc28fa3fe9971c4fb31c61279b10bbb (commit) via 37013b3a47523e8fa3317e1ef20340c27a15f451 (commit) via 0a79ec45053014034d3ec947d625463ebdf956db (commit) via c010871ab16111a57d518406c188e43837799600 (commit) via 429c1a3fc9b169f4fe26c163129b907ed473dbe1 (commit) via d7fe5d797070741cf0c211b65305861dd4f28071 (commit) via 0f43165084d0e9ee74c7f8b06fafb997ca37fd39 (commit) via 8b40eca59ec98f19544e68342db7ee24d5983aa6 (commit) via be7534e3fa84649724195a452404155044ed30fb (commit) via 582fa1555574ac0b6abc0a4daee906d1a9a091ef (commit) via 27b2adbf4f962fce13d5f66bc55dae2c86aeb685 (commit) via c2f7250b231494ad2bbfd24c5d40cb08285e131d (commit) via fffb777ee6f9c62f29966677045a6bdc705aece0 (commit) via 1b8327f50e2d4daf7860bc39a864c1bdeea0a4ae (commit) via cc21b588df77bfc807720c1456f901614e98e382 (commit) via bcf1a62476de2dc720426aafe1e893f06608b9d5 (commit) via 29201ca84b722e08aaaf6b6dee0b622bf393f143 (commit) via 317638e7534c995fd3866467fab17b057e28f76a (commit) via 5e1ee0e6e688da9623c27e27574395fefe8a33e3 (commit) via 2f65e28425ca2a446cfb1ab511ae1e1546a4031c (commit) via 3fb3a3b02188ac7e74bbbb882083f6aeba1923f0 (commit) via 1271a8b45eb8ed3970beabba33fd4b0519db3565 (commit) via bbb3a931fa3b11a0d2374595cbe0d1c981e9b5e4 (commit) via f8aa06792fde9b29e0c81c1ce2fb4490e9b645a8 (commit) via a636a76016fe214e840cce8856a4fc8a74fba8a7 (commit) via db3096173d9118718c6191c48f581f1c0076dc2a (commit) via 153cf6406ccff186696926d3ad84103a4b496ba8 (commit) via bc05155ac099925796a862e1a1cd1b50ff9e6b1d (commit) via b21d47c804407458aee20b5609ca99ec63f710f8 (commit) via e670f6250e8233557a4dbe31a36121c32add8204 (commit) via 5ee7500e597d88199b82195f1301712f9179466b (commit) via 6d3c8250fe1e6ef297d01bcc7a19672adfff70e6 (commit) via bd4db4708547cafea8ca2a13d35b6b15bd3b40fa (commit) via b631481bc5cbe022c7994fc110699affadca1243 (commit) via 4c9ea85490de5459960f251b2db4dc3fc664477a (commit) via 8301720cae0839a964ef0b5803a909bd252b906b (commit) via f2b22ab7b5bd390362038d913669b3f725486993 (commit) via e39096cf66b2e16880400f70d3792f25399fff13 (commit) via 7e8b0ca029b10385812ebdf15249e47bcd3003c3 (commit) via 983203fa03b187602dc9f3d7e6d2793af0b77133 (commit) via e1279cb36c29193bb2a505014924a4ae21c3e439 (commit) via 841193ead5980056d913346dca5ef5f2412db520 (commit) via c59be1252d82439b2c6ea9a08a730dbf35950f3c (commit) via 631b67b7cd4c5fa00417cbe9e843892cae6f0ff6 (commit) via 2a72785cf89390e214bc0164bde29cded97e22a5 (commit) via d10a7de134da43c509fc89452217b6a0160d6bfd (commit) via 1e67b3c3bb15bda23ad072b216455b0eca912fa2 (commit) via 6f7753ba85a454b8a74af4f1bbe37b3d10eb8c03 (commit) via 2c01f467d976dddfab89841946ff419802a70947 (commit) via b740cdd7bfe402e6f1a98bb3936d3a9f33546492 (commit) via 6161430626905c7bf37a5236a7163aacd86306ba (commit) via 52ee27b200e19a8a11a8b2a8c83f18e31a517b55 (commit) via d2d0d6313948680e16469ff318fc69b9a6384cc5 (commit) via df261521358ec0e4b7e2b8ee02c0b7e5c6ee49b7 (commit) via c1a07263bd37f94aa15b313e3f825af9e67630b4 (commit) via 71cc3202c058fa368adc93b2453741ecebb9cc85 (commit) via 973f711ad1f4c97906ed9f4dae4db37e31de8e03 (commit) via 56914f126f4fca922ae297fc833f4ac68e9f820a (commit) via e6d8a42109651b5054eec7a9b613f732bf8d323f (commit) via a4455e73a62c5795dd9f9aae605f0052815fb1a8 (commit) via 491957ac2d6dd770764d9e410cfc4309545a94f1 (commit) via 57426d2d2114f2b469b01ebd675d41ee77b39f6e (commit) via f702a98d69664aff36d93111ab521a8946e3a438 (commit) via c42f809c90dadf9ca4cf3f0930b9c19bf3846467 (commit) via 534943c67516c9288962fdf86e2ba5d6fa969a69 (commit) via 1560bc6e1fd09349016115572b92a5902bf3da85 (commit) via 597005f5c6897c85b2c8174c6a94d4f3f0d14944 (commit) via 11231162077b948e6e375ba665d9891b25947bf7 (commit) via 2d26c5755f207c538bd63198fb8c7c62c731d140 (commit) via 44bd254c674be8324affca02bd29674371c36f16 (commit) via 10dfb491b13b4e11460cd10f3bbca21016002d20 (commit) via 1235b1f144bc93676acf3e8703bb308a3c60629e (commit) via 5e4262245e8166717b7d44dedebbf1c903d03181 (commit) via 77fa792f93c8363d8199c02ec0b752639fe3ecec (commit) via 3bf58b324c24be0a43b15a55304958b6e02937fb (commit) via d006af40db7fdc48afe034d316aae045087a7569 (commit) via e3cbe60f5d46bbef7e4e257fbbae5a49f91d06df (commit) via 2fff11756f9c81b3e8d861107e1b074695ff6dff (commit) via 392e08af8d94fd5db193415e667a980f0a97a799 (commit) via 5df2abeb3c5b3b89fb467f5f420c7ef554a5d334 (commit) via 7c475cd6e18ff57a065e3bcad00122dc1d948969 (commit) via 5daad7f6b25683d8fb893c7f9baaf1678b40f266 (commit) via dfa68452bedf80f82a20abc824a611d9a55ba3cb (commit) via 0f5c5ce72d42a236a44bcd45ed8aa718c596aca3 (commit) via 36d44213e93fadcd3fac982f14bacc61f4ce977d (commit) via 125b6fcd66a2eb42ae773f66811c89959c7a2b77 (commit) via a211fee393fc05119710f9db83511085786010f1 (commit) via cdb725da872d076f3731537bfd2f4a435f01feb1 (commit) via 1108a15cc6d6da291fa6039ae92b3922dd8a2577 (commit) via 7d7740a46769d6a45668182cebb86275960f212a (commit) via e7c5b9dabb9dbd724b04b01a627573727c6d23f2 (commit) via 4bc91affe00eb06142c914ac9f1686f2473cf471 (commit) via 159c55c5c89938ade27c0fcabc21e40da0e1a122 (commit) via c581b670ef383fe566075abe0a7df300b7da537c (commit) via f3511161525d125621467ee2cc7b1319fc07cb83 (commit) via 501e7b8654263f6758e273162f09183661d40303 (commit) via da9e4e8ed90aae3fc6100bd21cd49804fca6c9bf (commit) via a1219d9600a5c17255e5c656e10860ccddc49c6f (commit) via f69446d2fa5fc519c223faeb9506842e191e46ca (commit) via f4e869ffb42c717167478fc75b993f9903298e15 (commit) via d2b1aa09df81e7a26cf831fe54a6d6282075ca0d (commit) via 62667a709f9ed5e996e43ebb38bd11ff9e6b559f (commit) via a25a2c3190cb841af64d10f1e7197011c0aac969 (commit) via 64feb1fcc848d0dd8bd7a52dd61b9ec96e95b0b7 (commit) via e7f5c0465ba009549aeb3c61627e26984db576f8 (commit) via 6450609d749c0a8e16e12000675bb79bdb8da3ff (commit) via 8ec868ab22199856b01ac0f172be1323a86bc5f1 (commit) via f444583042c2d4de34be1e4ab9dfc18790e88702 (commit) via 7d7d5092d3a17ec38f3a8baa5a214075dc269ed3 (commit) via 41e2c149a52c602ca1e5a7c9439e4e0d630620c0 (commit) via 59b081c2a14a015fe47a5f32f169cf7b85fdca4b (commit) via 1c38ad92a274423e36e085b69bea0951889d35b4 (commit) via f17f51e87361efe5c687690e0614636384657b9d (commit) via e360e50ac4cf04717281344382d5ee243091bb50 (commit) via 2cce1559f2da9b986a4288159478b1b999710457 (commit) via c0e8224d1c176a1df13db0a2a506c9cdea4058a8 (commit) via b8101c50ea58cc6a6bc76fe472826af7b7f33271 (commit) via 97461f500bc755bb4bd0158b0bd4df5f1fc226f5 (commit) via af789b69a81bd028c0d07d5aaa4cee96f37a31b8 (commit) via f74ea48125233bc2a06f2f25f2c44e110bbaefd2 (commit) via 2b4593b27f802a0a75ab8939a35d6a972b970d90 (commit) via 8e27b3ca86497fc1843749dcfb1f3eecf5a6afbd (commit) via 6d72ff77e1f58fc7f0d6d4122ed231c47c5cdf13 (commit) via fe30713604357bf8e7d62aa7e0d4c39402699938 (commit) via 808465682327a3e8d3dd8e6a3ae247d36751041f (commit) via 178df99a871760cfa773543f3258c04c76fc5d6f (commit) via 15b023b97944802aae90982511de103310496c31 (commit) via 1c72742bca7e8e5e6151c77481e9110f6b8a1cf4 (commit) via c924c7d1d19da6863ec6de9352c1d6d50f35502f (commit) via 4a23c55b0dbf07d4a4449ef1ad637acc076fc67c (commit) via abff56f062a1bb09eecc755e61fc7d3e0e37d702 (commit) via 3704887e8edb3a286e30ff3216d845a62c47bb5d (commit) via d8656c914e11a04aaa64f73a21a1e2f5552dc292 (commit) via 73794dad879be8c3533030f229e269123ed2a51a (commit) via c2bf88c1a4dd030fd8838cc8388e265f1e748a29 (commit) via 2af817938546f4994967a171cc35ff3460ebdfef (commit) via 167e6ec7a8d68f1c87833d77e2e290230c0399e0 (commit) via a20395a645d73a74825693e8d9cbb411a5b3cfcf (commit) via 3ebf8d1b011d7b4346306e150b2cda21c28ceea5 (commit) via ff740a733c7374010e10afb63dbba45c8a7ba042 (commit) via 69954630b8718af7ccb3f17259f1d3cd9b54dbcb (commit) via a6acaa34cc9890f1abe3610135e403bff46096a1 (commit) via 4f26ff7f66a1973ed0cea142d9599073e22bddcf (commit) via 11a47ed33b0cd16036e490d0cf01cc5ec76e3b83 (commit) via c4d883f9e5c640512c680ed9c5e1e1e3441d8ec0 (commit) via 1dd6ae72d95ee2d6ab2ad67bb7f01a05af17d4be (commit) via 8af8d5d127f91c19795fff9661615f7a0332e800 (commit) via dabf764ee2df21b55594a3c2fcb8fb40dceef01c (commit) via 0dff6b5b85e1bf30b33bc7d02da36c7c33dc3997 (commit) via c724c483e00b325b9b1ab98b9c8ad427ca31c41a (commit) via 45455cbe1cd1c7e95e9c5986490a4b7eec5a3629 (commit) via fc466a563f2a5694213077680407d1f60a735421 (commit) via 64474e3939e3d17fb80d64be614d97d07c9c7f43 (commit) via b23dd8b769d1a3775b3a7fc1ae9461f0e7e3c13a (commit) via 4944049ea4ea306ffd762da0ebdd81cae4653386 (commit) via b1be2de786d913b406792dc0ff30bfa794f30023 (commit) via 11e012ef666e8c4d2af865db02756398929c35cd (commit) via 726e688235f91da4309437abba84c8943a9367fa (commit) via b985d3160ae2367d773ed96d155ad7348d9ffbf1 (commit) via 21b9f5dccd880d07790e56041f9763d51782d92d (commit) via 3cba134fa88e94d62c5d14d862c60642d5a37240 (commit) via 7ab6a8536cb653b8c096ac67b87eaa3ddf228e12 (commit) via 73372ed4e6b573c4a1078b771df4f6623fc79927 (commit) via f1eb69d672ae21db7c314bcbab1bbd2e9b4c7c5a (commit) via e239818642bef43c2d62b54f8961e326951ccba8 (commit) via 98f3d9b58113a48163bda0b03044a4a49935d8d0 (commit) via fa37e705d96ae4b09e357dd869c5911b66b7b4d7 (commit) via a7cd6a4a1113f358fe1e496b164e77bae797429e (commit) via 9d3c6622e253b427be224296e6e1a54335b0f956 (commit) via 1a9effa942695d48c2b6c40d5a1075f891fa8865 (commit) via d42f38e0336584e6159d77dd57b0499db31d4ba3 (commit) via e66d300a43f3effecb740042acad80ff0b3284a1 (commit) via 5bdefccbbc18f604b39305a84d238d13988b9a78 (commit) via 0cd7141da9eec4d1cbb6a1b6e980cfa28cdfdd8e (commit) via 3827d1f6bf2c6b01080bc44ae41009ead9bbcfc7 (commit) via d334d7cb47ad4b55a24d54ff7f7081e9bb60ed1c (commit) via 146636ae7863022e2bdddccac9ef75b8c58d79e0 (commit) via 057652c5e548c5e0b0e4e07559c21b7916335af9 (commit) via 48cc0e123ac601d0deada6f1feeeb2bae0f6631a (commit) via b872585fda0d01156c20d813413e1b0321aa374b (commit) via 86661c9ed081424e45a4af1b60d937de463df4da (commit) via cad228f74c10521919dae36192430ed372d08ca8 (commit) via ad9799d20c32946bf5471d533a7961876028717a (commit) via 6fe7d6799fd682056dd7900ac1fad17e6de194fa (commit) via 192d43080e3026701b8de77d8b4ae2bf507c993b (commit) via 240acdfd875b2c143e2ef95e2100382c4b6d0569 (commit) via 37c84696a2c0eecda7bed87bea042018469c4120 (commit) via 0053269b90ed2902506fc46d9eaa3cc9472d7ccd (commit) via 917ee261019ef78e8cc5a681fa2abf55c8999e18 (commit) via c27850183cce88fa26024be063a71a002bca5111 (commit) via 89df55b65049b4a5b408d409a5a00f5986e24c29 (commit) via ba83f4b9ef340a6f07c0bf8b9400e53faf2fab23 (commit) via 62ae8b79151f66a8a8d3b7bd788ce02407c01079 (commit) via 055ed1ffc99100f7c209aa96f1787325be9063c8 (commit) via 03e7b65b0173ae1ee9e3a5f326eef04596da3b14 (commit) via 15e38431b97baeada58f279b62a0cbfb609230a7 (commit) via f56c0f6c774a442da3f85ec590bb75632abd5dca (commit) via 8a7976468d6f6a14edeee5edbc54186d307815ec (commit) via 5ac5194b89f57d13516fc8e812ea3d4b48e345f3 (commit) via f5f71c79b7168cc90b5b7fb19a7bda47f3b7bfab (commit) via d99f0ff8c620a7fa832354d403cf701120273d40 (commit) via 2a127986dc90b9449d5e69c388b15efb851b5980 (commit) via bfaa69562a5a0d9a57c3a374d967da9875ff77be (commit) via 5a906c11ecc29e00180508f835e308af1e6f8615 (commit) via 9d38669861117bc30253483cd314ff6ed563ff02 (commit) via 8e7137264bdfae87367a7414d07a054eb7c58c7c (commit) via bf5e1c4c52828c48d6c51b6830f9d696be261877 (commit) via dd62fd25cde358524861fdd8e20aed1a83c6a6da (commit) via 595e89a87745e8f1f202d86a7dd0e9e2f1cb4783 (commit) via 9ac43fb9e197e47df7ff9b14d9ba80eca592d9f2 (commit) via 8b64b1b64eaeb7efd0ae7ffe5d2b9076164c2a84 (commit) via fd75e5e75cef7fdc2a94c1c0f6b1aba4e6958589 (commit) via 07e9a1357dadb1a2b40d0d85aa956331eaa6b537 (commit) via c05738b25e4a76ca73ee58dba71a7d93d2907318 (commit) via dfb08084ba25b03f27ca41c04f0a0f1e2dace6d5 (commit) via e11f536252fe1f4317c47c121f5026b9a458a311 (commit) via e1a51ebb851be156104d3971b85f2572fc7eeb73 (commit) via b8e2d10888412cbe37b0614e88fc739732305c79 (commit) via 4ec728f840372f61d61c5019d766f453231eb706 (commit) via ad33c5fd5988835a5fe78bb2ce4cf5187c899e4d (commit) via 50da765d7ffd150cb6d3baf37dcdb956cd2b6c3a (commit) via dc3c6687c9c78f7e94f06f6c327d8f14777da179 (commit) via b7aff3d7143174d379570319aaad65afabbf76d3 (commit) via 621e8d148b27125db48f50f0b11bd75454d909bb (commit) via e9e998099e2b82dd84062a0d2d9ce24bdc7a294c (commit) via 30491c6ac70ce55d4bfbcec5aee6096808b3c193 (commit) via b5890e73693cb323b115cf5245964177cb902f64 (commit) via 412a1f43ce7a91ef891a18991bbd865bfe150e4b (commit) via 9c9c9cb6134918b8a09bf35e6f01225ad8e39566 (commit) via d0c91170ca82e919432c56c13cc5b494a4e30693 (commit) via 7fbb77189640acfe14e77772e95fbea48c902353 (commit) via 1ada718c392cfdbe6c989ee44c15188f7f639f7b (commit) via 68e89a2f2828084bbe7a8fa15a16ae9626d4c74e (commit) via 0f9894afa1e2c534f671c87efac4a1ec9997d637 (commit) via 8c252e6aa83f0a45d248dc59ae2bbc2ca717b229 (commit) via 7d44bfeef1614ca2ae0e60ddd020f004a3f3b071 (commit) via f536ab266173dd7d6ec5ddd984e0a458c1aedbc2 (commit) via aeefcc9caa329cfd1ca8b8cdafdc845aab7507b2 (commit) via 82f7d1b4d8f2d504ed750da549416a1110814cc6 (commit) via 2d0e29fcfb429f057901b2799fc88bb30a3be2f0 (commit) via f64223d9ec9f2b0aa57ab4fae8680039de212d30 (commit) via 3547adad97669b65c9b11eb69aa36fd41a2484d0 (commit) via 986ba0d12789e4a91d3cfb923822e2f366c9070a (commit) via 2a747e37a86f44c5da8dbf67c4135772df29f24e (commit) via 7514fe47f6b2caf5a1dfc80de3a539975b753b21 (commit) via 2505d2763efef1c2339f84f8130594c0ee7feaec (commit) via c82aa2ec9e0dee2d3ed1b5f3ca3c8fc158404228 (commit) via fcd014e0afcb8370106ab0044a9911f9ce7c225a (commit) via b7e621e1b1e3575ce5b10edfc6b99314c75864a0 (commit) via e3d82d27a0e3f8ed83cbaeca2166c53d9eede5f1 (commit) via 6f5487d711a868f116618b1b1d7d7be74a23637f (commit) via a9344b774b54495dcdd811f5854a0f2f640bb06c (commit) via 38d3b742e70306d88795d25916f443a1b8d4932d (commit) via 57ba5e812641d5bcd94e3e1bf55a7af375de853c (commit) via d00b3548852f478a566ffa6dc9dc4b89e86c58a3 (commit) via 4d74a20df062b9449fc4bda89da7d2e8ace49552 (commit) via 3932f02ba33e0f0b7686db4bd6f4609ae7e3d370 (commit) via 9efba5f773a19b0b402bd7b4454d911f304e7d3b (commit) via 6fc0703674ad8f77445e1e997ddd990b24123854 (commit) via 73ede29f00320a187c49f2708e37aaea70bc1b8c (commit) via c8ee899dbc37aee41df8298bdf3fb5102cd89b27 (commit) via 5b579ad60c2bfed1e451ba096880734061e81e9f (commit) via 77a516cd6a74a7bfdf069a6fe0586f59594c04fd (commit) via f9a3c1c8c9d8068f4b8d7e1d3f4e732195553b52 (commit) via bc8ecbd6ae95d54ef0d9e99d564e09265e97bc9a (commit) via 62f34bba1e6b8814a584f371199ad567f9944fa5 (commit) via 7cc8a0e526d20b2bf75a68ff208a3dbf0723c552 (commit) via dfcb2b9f9af53947ab6bfb8ad51e2a30ea034045 (commit) via 5ef70cca5dc565fd8521cdae7e995763f9bcb60f (commit) via 2aaa32f72786004ef4a5eff2c0bd018691606085 (commit) via ec5a7d21f63e0132ae97368bd269cf257530022e (commit) via f7edf97ae7044ff6d2fe25d3863c04d559197cbe (commit) via 0afd84931ea1a0712fafb85aac8976069b465c90 (commit) via 86048afb5a45fdb0a39051bcefd80edbbd52b8a9 (commit) via cc37572cf7f17795c07c546bef0f731c1b3c4db3 (commit) via bfe4320c6b9b5065db13008753a8d5e48c6eacd7 (commit) via b84989af49f116d25d039b46ce825c0f98a06ee4 (commit) via ff92ff172269bbf8bed44a1f7cf36891d7843352 (commit) via 0a644b4a04bbba6e94a8f5afed8eeca028fd6de3 (commit) via 84394ec6dd2512e12b46b1546e4b2dae721457a8 (commit) via e084eea001b33fd4e16924c5caf7dc4742036670 (commit) via 0da15c03d707ae58bd12b62a389b5970d4e57ce4 (commit) via a9d40c03dbd5f486e0efba0c1a0fa406a15b78e9 (commit) via 4ede29562fce127f88c20cec3bcdf9c6ac5bb988 (commit) via 4b74791b5da0a95fa9cef99faf2eea467985dce8 (commit) via 55f084930912949f0d841cb2143d884d436c02d9 (commit) via 748cfb0b8f5daba5cc0e6655ab93f0d32d3232b5 (commit) via 9063a04e94587fc38f410ec2234275417de201ad (commit) via df5a6ef76f2fad5aa08ec2959348f9eed9a48d70 (commit) via 4e36e1791f368d6e612bc70bc5a5d6ffe1692338 (commit) via 943a96faed4fb515259c18d04b330ba622490b7b (commit) via 9b574b13de88735968287db83bf1936087f9e59a (commit) via 0008a2d7566f88d83aa75cdd8c2f35909475a69c (commit) via 33c56b4f5853524a2c8dabc4d36ff602d6bf6314 (commit) via 2106b71eb555e29ff85d9bab0d1312642b730f59 (commit) via 4ed7ef4620637d6047edc4fd713e753d3a7f254e (commit) via 918bacacbd707105f0c49f5fa0917d011bde0a7f (commit) via 010ea13643caa3aac57e7b9829273cb27bf93198 (commit) via 96cbae14d7ad23028eea2701210a312003d4b199 (commit) via 921d7f2c3d51b8f49cf4a2db88c50b01a7949513 (commit) via 2d0e4dd2ef2340d8036f7e9e24c79730ee6a8c8c (commit) via 4bf6a597fead7f5bf3d868593be4d9e366a1f3e8 (commit) via 043cfbc01fb23eb3f64fd290043fd3bfd21eb263 (commit) via 30aef1726ce7d9e0b8241cabcc30e7904c31b12a (commit) via 4c2910e91b036dbb58109681bed0facd49cb3f26 (commit) via e9850821d41da0ee5a524d85d01b1809e1b3af7a (commit) via 99bfa85c8936a503a01402b1d7251a80d2fc5497 (commit) via fd6299ba8a493e1394d8fac8c1b8a26e51b444f8 (commit) via d9a0d20113711a83a1a12845e81fe0144f22d330 (commit) via f76b104cf3d3be62ebc7c3e38734e6ab0c6d5e2c (commit) via a51528487b0d04de80f4e79555595445de9d23cc (commit) via efca40b5cc923da6fc169d3bb2eaa2f39708330b (commit) via 31d488a4f688903fd27269a18bdb84d53e9ef6d6 (commit) via 961f3dbcd8675f8b62ecd2404a709e47ec2ae343 (commit) via 4250f386ce7b1d66a87fed6fcfa84ac65471be48 (commit) via 9d1058a434c0047843b21e420622087bf00cc208 (commit) via e602416f94ba818557644647bb6f55503e33ccf1 (commit) via bf7746ef83f0afeb6764b23336783e4a0e221eff (commit) via f5e106c42ab1fcb54f2d4c2605dfbe213b5b792a (commit) via af8750fdc2c974899c35114a7340f51a09516bd9 (commit) via d2d87f2ca06349f63d025e12dafda1b910956e40 (commit) via 4ad0b5b680e7d72f391434a9bad0a2dfc61fee92 (commit) via afd5d8f76e725ac910c238e94f2282f78bce5da7 (commit) via 277060a472c826541885b40392e0d5a96ba1cf97 (commit) via b0cffde30e2451500555853fe4acde983ab7735f (commit) via 91a81810e8395c84ba223e7d744e3a770facafc4 (commit) via c380ac83d3fe8f1fe4e73bbb2a63238f43ad0581 (commit) via 26922c33eb91951c79c5b6a5e959a5adbf20bc9b (commit) via c7edc1c70a5565cbb28a87c650b7cbb735923300 (commit) via 623758aa652d6b6066ea01e5f6e12378e7504ba8 (commit) via 0317493a26a8da8e87a3c39ad69122aa6f008261 (commit) via cff7f5a19ad66d3bdb9ee22df5b0ba3eb4639cc7 (commit) via ce8c87bdf710ba0ef8942f64558448817bf64029 (commit) via 52ca3c809334e1ab6bd5a75f2f66d2c49f7e228f (commit) via 09eb51c98575d4aea2a11aed7a6fd682ded38d77 (commit) via 633b0df5eed38a34ea165589f8906714f6c7b76d (commit) via 783bf6afa5f4dcd7d12f563cc1eef6ac841353d5 (commit) via 902a15be1df0b63b10f1b8e7fbdc7779650a0e65 (commit) via 8d28e3d092f85a8cdb57ebab5a5532a0b1df96f2 (commit) via fda1f52ff3b2e031700f92af71a72a00ce41d992 (commit) via cbb3a8f91e2e7aa220b5bc9e9773fa4547f0ce85 (commit) via 4e156911cc45c2788bfa7e04561e2a7e550c68b8 (commit) via 5ca9ea6a28511653ca1c6d42725c15723ef89104 (commit) via ce7c5249bfbad7b5a1ac6106621cc27a75d3ad4c (commit) via 1fbb415adad359bb9d07467214af904dc0e4b422 (commit) via 3bdc1a4e426950914554fbe97e0d8ecf8d529d5c (commit) via 49da7d797547095ee8a13b079c63661e8e4aa1ad (commit) via 95e9415ada2cd29399eec02c2748ca22792ec0a4 (commit) via 73cb6627fc3d44ecade787f3fd80cc91d53a42f8 (commit) via d0f8bbc13e5d1158b86a58c1744a81e36c899aa8 (commit) via f4d5310decf8cd8f16d92bfe0457cc8fb87fc663 (commit) via f0dc00d80f0b97059df52b624e1a982a6dad5bcd (commit) via 9566c8f52cd96ae3dee000f72028eb80a31bca16 (commit) via f4b373993fb60809901e7c45d690f569b0d8867c (commit) via 75474c3c493c3f2f4a4ab793910557fffc4182d3 (commit) via 9027a25d92afbbb4486c17deac66b4c439e80520 (commit) via 4234ca5d64f8e34c40ee48c58599f00cb3a15862 (commit) via 0051027b79220c17a8eb5e05dcf79e1549c94489 (commit) via 935f311ed9dc4c67d7e603f6b08a45d1225422c8 (commit) via 8a39dd30e3d7f8386d15db6960926d75148610be (commit) via fe9f7588151c5f98a73f5718cd19b1743ff1d6c2 (commit) via dd2ef3b2370e89a79dc01ada8aa1f00d8f0615ee (commit) via 121628ea689844c3e6618d0e7ae4b83f8b3cbea6 (commit) via 3f653a29ae0e030a36fe4a49652fc0411eed782c (commit) via f14e224b1c98924dd46f50fa3539c7b799ebc35d (commit) via 802d795488a1387e8b564201894d3db39681d08b (commit) via b3f7b96824062f9fa3d9222a4b7e117ae20c949f (commit) via a4b9426b0f5f965128fc745013e26b3d1cd316a9 (commit) via ff972c82761ab198819dc268b154b7b4cc0b06df (commit) via c3f00878dded2e80bfaba67627d2826ad8d49f89 (commit) via 697a4d5217b10429a40a5224ac65b680485dc080 (commit) via f880f8a22528ff0e896eb2a3e1bfdaa676493966 (commit) via 926241aea24a60dce858c863aac39d6be83b23df (commit) via eb6389d09de11b2aad940d5bbacb5e2a28ce79fa (commit) via 865c76157580b18551df1033781fbf3b8fccc8e6 (commit) via ceda40f2bcd67c7e0b3215e0c32eec21ca59811c (commit) via af731c7dc5e4d947893bcd1427d14195665bcb4f (commit) via 1dc44471365cccef7ab2b3ec766c0d0c26f86475 (commit) via 63e3da5935ee846b9e1e29f624bd299518194d35 (commit) via 22fc183e08240d59230459c9bca1004e27c7e381 (commit) via 651d442ecfe233b2a07773a606f49acf12991184 (commit) via d72a820484dae4d4118e345537795bc69b20b8ac (commit) via 660f97283578616426bac2333a14c527770c2c0f (commit) via 36f101c73350fbfc736ecddb741a514927dd980e (commit) via 8e8fb1dada5cf710ffc4199f436618e4a2664e41 (commit) via b7d9509c3aebab95d559a3a7ad64f9d9655a3c07 (commit) via 1dbe439b83315f413c94f7c1726cdd44d7f2f838 (commit) via 33a1b286084cf0745aced5f17c86e39b41859c40 (commit) via fd71513f75bfe0af6cb1e69ccb8df75957d131da (commit) via 349b93f67401d79548620da0bd9f695a36ae2823 (commit) via ba263fbbb9d10ceab94ffe6640e164e7c9423e51 (commit) via 481988c68d1380d918f42cb109a72c854826ffc7 (commit) via aa8512fac63ff7451392d3d8d8114a286ec638e9 (commit) via f7165e5aed61866f8d82141c9ac152468a964f4c (commit) via 33c4c29b5e32c818e1c0fc925424950f8cd613f6 (commit) via 3d2c3affcd2992461fac5bba54dbff551eaafb72 (commit) via a538898a469237653e1f0ada0238e7f4168a1991 (commit) via 63efc01c84a5f559858d0d46cb7c5a2212486567 (commit) via dfe0a20def8732831647dfe551551f7c85c14f27 (commit) via ec8c14746c56ec725896d94663ba844260d9c0f2 (commit) via 8dafd717bcbbc22d27d365134f31d9007a11111e (commit) via 0206795e57d0b0f0caabec7de4efe54fff1bc6b5 (commit) via 230eeac04df6b58407d087a211d9d4a096e0b97b (commit) via 6db53091a36311e217188cb4ede6a2add82070c2 (commit) via 66aeb7b5042c7188fedc66abea1e224c39836ed2 (commit) via 55e16317fd80f4fe4d4e46180bfb8b50cccde44a (commit) via 5c3da078b3deb53b001a4bc91f50216807ab9bcc (commit) via 2f90f73a98e0f8649fb51028a152f994d815c715 (commit) via 37677cf0d1f3306316e08d9244b4e8184d6d2876 (commit) via 12f8cdd5895b4b87342c93247299984df5ef9a45 (commit) via 0f90adc0aa54d8a79b2a0b6061bcbf5ff5c98422 (commit) via 4176a1badace1fd2c06c375f9c2d7562edee870a (commit) via 4c7fe35f9edfe8e4626195758fb6774bdc418d04 (commit) via bb234c63ef0fd15a68044db3b172247884cbaa34 (commit) via dcbb8e4f41d6541663ae64f00a05b66e5e01f7cc (commit) via 0dc552342b48c1737f20e4a591b21b9812f0c624 (commit) via 03f02bcd20f9e5c1cb0743bfe88ba02c6ad01dac (commit) via 71f51934d73bc5d252a46776cbb9ce76a5398fb3 (commit) via 8298e1ddc3089e21d3643199148b558be6716079 (commit) via 632e0a3e5ecad92110fcb114bfa20e607b853dcb (commit) via 1ad5c2fa0713024dce7c14c7b5bd008e3f128cf3 (commit) via 8ecb64505dc79a02c6599bd728f8393eb1146da9 (commit) via 8789de86786951f4a6e8f625a4f8ebdb5b6727c4 (commit) via c0f99754df9ad6cbdc4675d5568ac94a6ede20c3 (commit) via 454d47a9944ae5ef1e9206b76b92ac931af0333d (commit) via 33230038e9071622f150102c5615c6e1db478311 (commit) via f7075c3a3798475a00a86ad0c12a7a8ca6e2ddc5 (commit) via 30f68903d339fdb2e1a0b3ff62b6b770fee9ca36 (commit) via 562e14b01f02f811ed4c5c98e563aa2de2d9caf4 (commit) via 3c037075d0f6c296225500651d89b03b3c65d9e2 (commit) via a8b113e73d9e8b71eb57621109d7c4a6b46c34e2 (commit) via 5f037986b7b1b1f3b012ea0c50e44c77e92cfef2 (commit) via 484269ceacaad3deb817e1e9dc0af444633d1400 (commit) via ce2dbe92ce5f0655670d38502a65c0c53542e361 (commit) via dd6c9bb9c3c9031358aa61b629bf38b568d96676 (commit) via 724908c6802b0750fcb96891e14a0e79c786dc9f (commit) via 2b230b77f5710aae3a8bf345b31d76d51c747829 (commit) via 0c41633ee1379d6646f04f53ab015992892132b2 (commit) via d24c586a953bb14e293fda10928759a4a0ca62fd (commit) via 14ef7de4399c294f5eea5e8a1ac74946d01c2bc0 (commit) via 0520e6a5d0030f0cc153d070e424dc4f4f69e47a (commit) via 83d8e3a6db7a1519e855f668917f4ba927b9111e (commit) via 9bfde8ed40d238df4c1ab9195531f8b5e22d65a2 (commit) via 8a5ef45f1520cd947c02b5dbbafb22163ec6c098 (commit) via e3181add8e3c5cc5c37ee67e0d1053e79557c382 (commit) via 3fc43cd15b10fd13b9c4abc7d5dd159fa1d5343b (commit) via b2c242219166e1e45704b7d8dafe910d728f6327 (commit) via 30f08bcf80c4c016cdc1f025cc2fbd5533ef20b9 (commit) via fac3861429d1b4c57c18ff13236d363d87fd31c0 (commit) via 39962c6e3d83f88f63587f0ce2c1fb8c8cd7f2e1 (commit) via 33e64584dd14decbeec39f0bdd4f4b2029b45e9b (commit) via 7506baa2ebd5a6ceb92596f463f493f45a97661c (commit) via 7d5e022df4b37f157f8528cbce892e273f1b4836 (commit) via 3a162dc14f98444dd91493285c677dc295aa4c4f (commit) via 5d4d41b18c80f236b4dc796e1394ef0035cb034d (commit) via e39ac92dd298fee0e546638c36f568978398a5f1 (commit) via be33adfb3d958259695d8b8ce2803181fbf78be2 (commit) via 50ce309b6ab17dc61648e7d6654117d5e1661cd7 (commit) via fe2bae3b747530a37cbe37247aa1d974f15f51a6 (commit) via a8ec686f17764d2c4e62692e7ffc94ad9cbdff53 (commit) via 3a3759c625c593e70a7bea479c11834152681565 (commit) via 8a2cf24a1f5de1e236d5514863b1f57cdd343f27 (commit) via 82b837cff888157358cfbfbf1a29e3dce5956ca9 (commit) via 342a91ae257e461d3d0fe3a2da51a724c6f99a20 (commit) via 784098e4db6b4aca11b4b39d0fec17f8a2d3ad0c (commit) via 0c733ab7502e5eb10e5ecbd4f9ad4196670fe175 (commit) via 2be048cedc75c8e09233a819d3eae5107a4ab452 (commit) via 02cb636c8b0abfeb8805d058e29d1a3f8d53ce9a (commit) via 5558ca2a9614c8d4393dc9287e4c0e7f7f014a95 (commit) via cdb3536bc82e410b4678a4740c198ecf74ec8bd3 (commit) via 09efb767f43718512311357a5634d00c8ad8c32e (commit) via ea04338b4d3702faf7619b0ed08d8441bbc9d60e (commit) via 0037264780e516ef1cd85c1a73b178097b3201d6 (commit) via e99dcbdbab9ae7a301d8a4871c18bc81fe5469c8 (commit) via 35ca8e0203c4d94178f2186d0c0b73f8ec48bc50 (commit) via 27d4d4817e29bee8b8afb33bfda767be3587b31f (commit) via a8ccb45cb78acf76e7d9518254f5d363605fc823 (commit) via 44ed2a42f02738b7955614461f868eda655eebbd (commit) via 504fc5af26cb3e208e2f9f60b1eae98ade71d751 (commit) via 385394fefaf5e8455ef114964d1813322b7ea938 (commit) via 1350598261d8f5d6b040e0fb9d30cb89f260dadb (commit) via d30819033d52eea130bde7d118255d9606654bf8 (commit) via 0fc392d65d513df573573dec57ccf06af2c29a9f (commit) via 5702b0cee557ec11ecda43a2482f72f212bffa84 (commit) via a5d81233a3a6638f6138c21d6174f73f99eb93fe (commit) via 147446202ff649e7371cc45d040626d7ab262cf4 (commit) via 80469a89354a686b5fc56066828ed763f81e55a4 (commit) via b474c1ca151c323ae5f8a4b402960cfa0f21c6cf (commit) via 5c3fa3223a4de6eb3a62d1c97c52f1762faa07f4 (commit) via 35e188494d9723b977c010eedbac98820e7176a6 (commit) via ba109afd0d551909be86bb11d797f1db80ce56f6 (commit) via 1ee33ddadf2737588ea50326bbc5995e93864aa3 (commit) via 6ee9053548341eceba9e0126a8e903872384a961 (commit) via 1187d46e65e9938fab90fb463a8c3ee15e4a646a (commit) via 9659f59a86ebe76e860370cb7480198ea4323e71 (commit) via 6f0fd5e1789e59ec1aad25bea560494c5750a4b9 (commit) via d0d3fe9d266c265697250dabba0bfdac316314ff (commit) via 7d3b1f7eafe2122c3b9cc0c46448846158a6abf7 (commit) via 7db6ad6acb8ba4339cb26970bf261942e90b65c0 (commit) via 49192c7b313d0fae39f16479594c06ca06684060 (commit) via 14bcb9a23d6d96fedaf0d5d71f65a8e7a8e6a4eb (commit) via a15f7d0dd53d686bd77e5a94eadc0ea9853feace (commit) via d8afe3e2c0690899e2efa6742b13a619c4f92298 (commit) via dd4796fbea96922f3bf58bcf866cf9ea7aaa70f0 (commit) via ac14b325e03276f9e17e334b03a3d3129903bac7 (commit) via 340a567eae8e9a1be908c13e67626d278f32224c (commit) via cbc6219852bbb1162469e5a002e1c923e7e4fad9 (commit) via f8cbcb7c8ac944c54c57023fe7951ac1770941c2 (commit) via 7b82bee7c4886652ef64f639fd877daa727d1348 (commit) via 84ac1131b1789de9c0ff76a24190b508c4101806 (commit) via ab4876ad4221acad2e62bbb7fe7f92ba45099806 (commit) via 89f8ad0e9966e0d78cbafcb6eedce4ed7bd4b133 (commit) via cb92b363cf92326475df69ccee1684f3ae47b997 (commit) via 12b901f84668f0b4bfd9e3376547e644a83a6126 (commit) via 11ab2c7d9a5b91cbc3092defe1a32572acd0ba6d (commit) via 68f6312ac54728c20c08d1f100bc948e6f6a689e (commit) via c03d4a5e8a37c6fcbee55c5b7efa8930f9c98351 (commit) via bee56a2d5d1d901b93b2a72d5d855a2b3bb49f2b (commit) via 2a6e9ae967cd13e136cb563622236c979ba788c6 (commit) via e9a056234592750a42ff82c12e858069b32ab82e (commit) via daf400fa4d61a02eb17e24d29be01d2bbaa35f31 (commit) via 85860aff263c41a74ff274fca2998e941b9134f6 (commit) via 47a83092b5a6f2fa13d1c95de75b7bea4eb90da2 (commit) via 69460bba8037c6e8663a03eb93e35ce63df08939 (commit) via 901aa8b943e6442e4b3540a73fe7c79c9a9cd419 (commit) via cd1f97623535245443576e293da49c8ed0618b88 (commit) via 8b69a1135ec1d68e83e62b336266770148a5c45f (commit) via cc9a325708fa2efb9063758ce1bed05c6958b65b (commit) via 663e748907b0cf5fd854e4a4f4417db554708797 (commit) via 39e360b26c3815adfb32ead9ea5e782898ca97c2 (commit) via 9c89c64de19f43d77e2bc720fef2b58486472878 (commit) via b91712acc50b41b654c60f2754245cfe0c3751a8 (commit) via f3604e1192ef09ef43537d55d49cfc635d5d6f88 (commit) via 16e27e9acb53d78d2f9c631ee4f32fccf29791d8 (commit) via 64c5bbc453a4ca7419d8ab795efd7ab38d1885d0 (commit) via 85f129fe3cac3f5161a6451e137084d91282472a (commit) via 8039a71099eafbec9fb280ce9caff2c069bdff7f (commit) via 6d8eb5dec7bf36f9b1bd53c9354d980aea315d89 (commit) via 6921f0ea0a62b09fd3bb9772ffc50b86b49bef97 (commit) via 11760a707510a5173f41c58551e03438043f36d6 (commit) via b161bfa8683402036e0d3e08159aafda5d4c4310 (commit) via f0befbc3782b2a68fa96bb2e6534f0f6fa6af7f3 (commit) via 8cdfbf5aeb365378deb2ff2b5f18a83a2fcfe82c (commit) via 1da42d53f71991f27603b220e33ac49368410949 (commit) via 4e6ae999c6740a38876fdbf3b2bd6f4f51d23051 (commit) via 989d0fd7172efa96382a10cb1ee16e608355af29 (commit) via 4a75efa5a79a81a9f459e9dc113e474cd2e53df6 (commit) via 2d5447bb1b9eed087c1f18a25c15e9370e62408e (commit) via 0e43079789de38841b822b591dbff3be8cd37228 (commit) via 0eadfdad4a4031c28f5811b4b80ceba8865b17a0 (commit) via 6bcb5ffe56238dc7e4107f3deba8d1b943253250 (commit) via 93e0855b6f0fbf51bf2ae8a59b74cf713d4e970e (commit) via 85d6e8a91011d06cf0a913b7c204e522e6a62c77 (commit) via 278280da9606d394ec7c39127ffadc26a5a3d3d0 (commit) via add7654e19ba28b6e7e3a38bf7ddbecd77909551 (commit) via d8d7dd3bd8aa6b849dd191588e63947aa4444007 (commit) via ba338177a02f6c95f938c76b886a970ebd977456 (commit) via d50ef220b67c53688eaf1cc08ff8cd7f4fc4bbf5 (commit) via 0c7d0c0883fd0fd6ab45fe1657074f9a8d99b562 (commit) via f18c38312cb4156858fad253f84d66cfe01811da (commit) via c9493d6c4f307954c7280f5d31c46d6e352b2893 (commit) via 8777989d464a11f6f538ec22c2463d0c9c18c7ad (commit) via 86a921ee47cc1bd24ff01139b4867dc577c3e564 (commit) via fda8c915d66a8cabe813cc05afc1f2d560e74fab (commit) via 79bb8c75f29a5321692ae0f02b7b2ca3cbe2d94c (commit) via 769185b58ec52fcc9eaedab5df42b1b25057d0c7 (commit) via a1e89f481d13a59a38854a3921f3c0d85a26f4dd (commit) via b64c3fc8a3cc9f789348d331d1e4ba78a032f612 (commit) via 9f35ee8aec9805103c64305e0d4ea7b70c201d9d (commit) via 64d2fbd918240bc5c7d0bb7e3e7394892447a50a (commit) via 0b1b223aa097c3de563c67b36cc84d8ad6dca6da (commit) via f99356520c523e101d4010be6cd3d07f4cb34cbf (commit) via ec6fd189ee94eb5fb8f969ff71b9ffae9e13a37c (commit) via a5cb9aca7838837e41f34b5d29c3584f708444f0 (commit) via afe4656c72c71715bb264ef63849826e3bc0a399 (commit) via 290c9cf89b07f4d873bc098f2160ae6008b4bab0 (commit) via fa9ef0a616a8c5f536c9f6f5d9a10a088bea5488 (commit) via 0b7f6aa4d9d0f6c17d668620000c4496eb96e34c (commit) via 568438067cfef263b683f97b9350776f62396e04 (commit) via 11bc3c64204db4115ccb7c086faeb8ff233e45ba (commit) via 5b0bc4ca3d5609bed04a34284b5f746616f768f1 (commit) via 2dcea58cc2faf39bd170cef7366f05e940c62751 (commit) via 1293811896219e090e48e1bc5a5a1dfdde1ee839 (commit) via 555637d15601156dcbd0eb20a2e77014c6b504ea (commit) via 2b875b3985b17e2fa316825dbd490a94e0de74d6 (commit) via 52e54c1c9a0f530edca461da31279113647fe787 (commit) via 42ec14cf2b98fd599fbeb16a67a1dd7f4fb3e558 (commit) via ab89cb2253f0a46cc05e239afbb62155dfd47fd1 (commit) via 6b6ef098ae40a7a2dc8df4b0ffd700cf0cf7527d (commit) via 30a4e8278711dec69f3ca41b46038cff1cc9f2c9 (commit) via bfc84eb1537ff5f495da2e540d9a62867a05ae0c (commit) via 3af3ecd319bdcf8db27e9ca14af72383b4754567 (commit) via 433b7aa8e95f4b075fd259257c61c96a29e03830 (commit) via 64e822fb45db06af7a7e7ddc94961840d5bd1158 (commit) via 90f8339a42506ca95dacb820914881bc922f19db (commit) via 6e62882de69ad42efcb4c3c2097abb5d5c54666c (commit) via 58bda09b683311db948fb5be06b1521386286f03 (commit) via 95c86656e70af668d25f0a33afb3913ee5e2ded0 (commit) via 1a3dbe91b2456323c1fe53797da673b4d0f87e17 (commit) via 2e053370ab64a3f516fc7f9e4897c5b48eae580d (commit) via b128fe7e69304ee26a293d508e31bd7f63c12f2d (commit) via d039a7e99e00c349fd9ac934121097aca1c8f2f4 (commit) via e6e9a8117677eca8319982ce56aa72e93c9b407e (commit) via 73c39dd4bda322d7d9240651c6db003bff477670 (commit) via 5c86caac7d382baf69b1731611e81a2b88750f2b (commit) via 6b0d7d6bc3e5870a8f0ada33e2ab3170f942db9e (commit) via 4598f16cfddf949149f4b00f554d8991a192a84f (commit) via 08facb3b223363379e0077989cc44fe85a6e1552 (commit) via 196539512a8458c5b4b9d2b499d0ec36beacc561 (commit) via ba25f014b2a1c2132cead53511f8adad9f6ef896 (commit) via 5ae3072a47b8c2296d3b6bd25516284bf97b3cdc (commit) via b3cc5fbdb9f800b809c3bcd2f1d72fdd5c2b7e62 (commit) via 9f6da934a3b635f5c9f96ab737977dad2582e498 (commit) via b4f94285ff8ef9b347ee6f3e6fdb53e998ef63dd (commit) via 71ed067612b0819e3708b5565ada17888594b357 (commit) via ee1d2d13eec82becb9df17e511672682a27feae2 (commit) via f7bb003150fc1d4fba360224b31314629737ec2f (commit) via 7a302dd0fe1487d764bc30ee2479713d2288040a (commit) via 0203401cf5dcd2fc005eb33a593b625f56258463 (commit) via f29eb7ec93f05b553f4bb168b30827ff06de11c4 (commit) via 03dd9a2949d953e15bdaceab07af5649bfb21bd5 (commit) via a1fdbdac799c8b65f6e38465d76d4fc34847ad8f (commit) via 9b966c6a0bb6c889aac3b07aae08973014334c24 (commit) via 78403883e23271c9a7ab2bdfeeaf64cc20fd11b4 (commit) via a4c7bf6b73e5a2faae948188591d50cedbf18de3 (commit) via 40d505ea08931038fba56ee3a8da5053ad7ed389 (commit) via 5b6acb88c607b2b9a46365281e611706c0c12109 (commit) via ad5338015f68bca7bb5987c7e44218fe21377dad (commit) via f93635e375efaae2c8077d467e8811128325142b (commit) via 7f46e14b81e701cf3c37b3dd6c058942ed83b84d (commit) via bcd9852e2ee73b741f5996ecc05ba3758d330fb8 (commit) via 753bb74ce55d5107d3e8001ed5c15f462261aab3 (commit) via 2ad3c084eef6d82a8690e5d488d84c61e892ef4e (commit) via ec36876e6ade2e04d29963d8dcfab5d5bf580a99 (commit) via 7603ec4e1620aeaf0f2b102af887b4c3c022677c (commit) via 285de10662731bb67e946e7e112bb4cf892173bf (commit) via 4c27368a7bc135dc4443711c4eeabec0885ce1ff (commit) via 42e4fa805ec8c3bbc085d2d9d8746afd97062009 (commit) via d02853e73cd65332ebeda9490e3306931ebd7406 (commit) via 065c9931acf1296f287e9f783ec0a4668289c886 (commit) via e2eb09157ee4e40b383319cfcf16ad69fc5d73d5 (commit) via 0d655f6cd52ceada1e5bb6e157b22eb0280e71ee (commit) via 3bb77d08a689ef0b4ebaa88f48a684fe85ec580d (commit) via 16ba0c00d0d7b223682ab161c23af71315f6826a (commit) via fadcfb73203c97e7062828eb77360b4382555943 (commit) via 6adacba0552880f002b892796ce44467dd413c21 (commit) via a0a5efd7684e90f8dd8e465f1b54ec4fd043ae4d (commit) via 83dfa1d7b2e5946a9405a27dba9b3a81d958baee (commit) via 26b34186b3788b9ee58246e5b09748ea7b6df6b3 (commit) via 70c11aa670816d5cba6cd8e8cb89079e52b8fd2c (commit) via c9f6beac597ed25f7174bed63c24221fdf0d1346 (commit) via d0a1fbbe550aeabef272d841d58fc050bb9475e0 (commit) via 71670b91cccc3500d03605673f3966d669c93d70 (commit) via 439d2a5743d68a7b6108a8db2db91aefd9fac37c (commit) via 1accb4ad4cfaad4ef1af7cf7da1435de21a91698 (commit) via 96711574bec47c5ffec3bd26c0b4056e07d2ef0e (commit) via 6233483ba7d92b83a80e5a4759f83248198eb2f2 (commit) via 318685daf4a9d404a98b24f2175e505525547b31 (commit) via 2aeb4b256eb99c8971da60a5dff6bd3929270798 (commit) via c4979a81c8d27fed69b4f360cc67845bac85549a (commit) via 99093fa51667deb09c2ca4dd9cbad1d3469d738a (commit) via b0c1baa588d38afe11314c931ae62ee02047125f (commit) via 5a9e26d83150750f8a7d1420007752df2639fb65 (commit) via 76479e2746eacd39fa6548a21aacada19d112476 (commit) via 5a038beb35666e5e5a030481130766b5e832ef23 (commit) via e24a59271eb7b1a9ce5b2169acf408ddc5c22270 (commit) via f0fbffeb3af455f52fedc58050aff714127c05ea (commit) via 309783b9d569e30c9ecc7c76e2e1c2aef57b981b (commit) via 65e77163342164e18d115f8dfa550f07dd216869 (commit) via c2741b14ef385f334d2afdb67e5ec70f19cc2418 (commit) via ec9f81be0cee42529ac57c4f106144dfc1a934ec (commit) via 0a379f8fe60459b0d1234fe724c1af802beffbb3 (commit) via db045705a7e58166040f9c6ac8e7ca364bc051b8 (commit) via 68c2cbedf02c33787a03f83b6f102249183d3824 (commit) via 90e4ec2a88ac967600b8c692f7001314ca6d14c3 (commit) via 035ace2cbb99efe4873f77a34bd151f8d78ce21d (commit) via 5a6804a2472af03dd6744bb3385408d369659931 (commit) via 7284262a5e94fa4cc15742fa7c7a3a0252d9e9ee (commit) via d1a84dd38dd404018bfb418ee49b7605574090c5 (commit) via 4accbf93699f6fd76079eb3d75ca82039e01012c (commit) via 93d772a59e671d2d4fa8bd58a9de0fa5bb9b43f1 (commit) via 1a78fe5e2dd19a6c7959ec52e175ee7a70cc29e8 (commit) via 4fa404af2a60ab9faf760e087f9d267f7707dae3 (commit) via 6a5c29e7507385451b5ba27deb0fa95398c728b5 (commit) via 305a7b38889a50d9288e6c28b61612952f640d8f (commit) via cd0fc28d5152c4bfe35ac1cb7b7d615b60e4ef5f (commit) via 7676ceba65ca2f190ee4bde1b54618fd69eb1d6a (commit) via 865f26ac3242fb39c6b83b19a7a52d83e7a91dfc (commit) via ff441c487d7fc99a20d06dc6d6e99ea4f7c10c69 (commit) via 5494904e15e19596c097c2522f1d2d17908823fb (commit) via 8d862ed59a04ccac2b95384932f881e60e65d76b (commit) via defd8d008f9f28a3b91964b6fb7a4bfd11ace778 (commit) via d94384214e360013d4b43c6a32125d18d9f275ad (commit) via ff6f40b1f52970e0ba0c78942c1ae728b62e04bd (commit) via 0ec5f231e48a95758debda6f25a703d9140bd880 (commit) via 095cbf430f983bdde07187169566997d8285f32d (commit) via f8b12375c7667d6895ff6d9d2178e0abefbd3b90 (commit) via 303c90a4c16cbc4f1453b4b1a8fa4c47449830a7 (commit) via 27ba58fb46cc5c91618d6c5e70d521b0a381afe8 (commit) via d69bf6191aaae1a92ff7dd6012135b15509bc7b4 (commit) via 409cd018c51fc4b866b2c8ae78597bc88c3b5c17 (commit) via 270c0c0ef03de6b912aeee63d117df6fb64a37e4 (commit) via 716ddc41d3eee198a11f6da1d168d9c4226b4f2c (commit) via f2ce8e838fc8dbaeede744d8704240e3ab02036c (commit) via 7419447856e77681e49ba0808d0e3039800a9abc (commit) via e5acf30472378efba41c02638323d371315292bd (commit) via 7b906cb23ae0220adb9916cad34c2d90dbb7bdca (commit) via a0010abd6f0f6ced89c35e7c9e6780d6f32243fd (commit) via 2b59ba3c87c24dee693be35be00b7bb2ccd26813 (commit) via a72fac881bf4181f487e3edcc356b5dea74ed7ca (commit) via d7fcd5daa3addc8916a7c6be78c449a6ced6c3b3 (commit) via d5a11b8405bc93f516fa0449f26dd1246fed131f (commit) via 35f95ba741115576b9d5d695183d24f8b9523327 (commit) via 8e9a041324f2d9197c06e4053864e77a9e9cc799 (commit) via 52c5ec837f1b8ebbb93d1477dcb345ea921b84a7 (commit) via 3ad23ee1d98c45520122c32bfeb92ef80a2e612a (commit) via 15ffeb1bdd298d8f525a11352489d8c84dc9fffb (commit) via f1defee0b31798b403bb07c72d9dab54f70f2086 (commit) via 6f1467d7b13400b9d3d849d7956c0d3c100dc0f2 (commit) via a0e8bf8f365b7d24f622a8250da4a67948b946bb (commit) via daa3a950046faa04f88f988a42165b1f9b59ffe2 (commit) via 4234cbe2ef4d9a1313e08c34a46d61242486fdad (commit) via d33aa4523bd69c06d632fa3bc8710c048a8e25dd (commit) via e2b79cd11e413ab74126a2475f7de46a331da865 (commit) via a1a94abed1f608a1cb906471c740e6011ec27f61 (commit) via 19ba0366261403217c533b21e27e74f1a60af4a4 (commit) via 2fce30e6a80d48eeef528853bfdf995b06eb0c92 (commit) via 26f185ecc1e3a4f8afc0a8490de0441295b20a30 (commit) via cf4d6bb76cd51b978ef84a570c3766e7d43a3d16 (commit) via 8d0aa7108271be3a3e7cfb99e3b1b560cbab9b07 (commit) via 949d5c527a9a41e0ddb4a339d84ef48904c3da98 (commit) via 2ac39db92e9b6117d64940f8b0572a24afa07b33 (commit) via 30156b054ef332d8b1ece6fc5d9e0cdbc947ca14 (commit) via 80759d65f4a14e69b80b2afa9336c92991390b4b (commit) via fc621876dc2a994ab5b1d3aeef8c55e6430b511e (commit) via fd69d6f6dc9e41d9c2484152cb976a245f27e604 (commit) via c0b99a4cedf534fa1cdc1437a74a66b73afe3346 (commit) via bb5f0bf8f323014563b944086913756a28a43427 (commit) via 12f5ace887f4d040a22749a753b349df9f32e023 (commit) via 811a52519104150ebe845f391d936f83b4001135 (commit) via 5c2146b3c81677877bdf4648a24d4afe932027d8 (commit) via 2d708949db00588d1a50739d1f9586c4a2192a80 (commit) via 8f8b00b326f9c25fedeb0054702f44ac4e91a038 (commit) via b751cd7a4cce6e4c71b7c1dee41c71760be65137 (commit) via eb95ce89a8effefa0c6aa27bf6f048926d21fed0 (commit) via b119578f023df75a015505239751246c23f9a523 (commit) via 0c2cf9e2145737cc6af6f6147f322d9ce60465f6 (commit) via f195a8d763c82635bc1458bd9cd8d13cf45c95a2 (commit) via 4f585d559f2bea5002cdb57f171732cfd8675bec (commit) via 5bee9a9df5739810da488bf5bf71da4fe82be484 (commit) via dc21519f683d5bb0f7e5a9dfcfb4806afb895217 (commit) via ddc492dd30283a3108d1436f849abedad345d6b5 (commit) via 990b0904f3ab0b7562832bad825c915af6939a09 (commit) via f06d592af1fb93744dca80fbd23efdd0de7c60e4 (commit) via caca013c1165230eea388ed4a770f6663ad5608e (commit) via 3027c6bb963cc8f736aca51bc99391bbd00c677f (commit) via 8c60701a4f856689e5bfae2ff2b6c5b7c0f0fdad (commit) via f78d627af390360e60e9878c274bf7ef1855ef71 (commit) via debe3af56492731d6589a9005de8516e3037f88f (commit) via 34aa915f08448c558311a630150c17283d7fe2ad (commit) via 776a1761d0ec5cb1d28e8a546bc6af818892183a (commit) via 9168da6fcc7af41f347ca9fa374500db90994458 (commit) via 29ae57a7fe60cb345fbebb80f76e52c31b5cd163 (commit) via 987b75bcd497233d7f4588efcc6af5c78236caec (commit) via ab4fe66fc95d7e048e44accf5d7750d8bbf03555 (commit) via 43215686ce938ebacf037d14edba46817cf470c2 (commit) via 93c2de1c663566438a15cfeae0c03028201b8690 (commit) via 653a71b9514dc8a88e7d2247d1d709245afe748c (commit) via 6143bc300e2d83a7ed9b7c6a1d8bf019d62a8ae1 (commit) via 357b3fe80df5e54fd327ebb543fd56de859f0c4b (commit) via 4affc3e88997fd395f7b9be00b2cc51539d19122 (commit) via cb051c577c4da9f42c0235383f2455c020bcab51 (commit) via 34f30c5f926e1ca90451cc42d72af230f66406ea (commit) via 2e99ab8bf8a1dc79d1c411281bd82a19acf1c9dc (commit) via b88c88291bc62a7e8bc1ed784182a158d425a11f (commit) via 1ca546126e98aa23155de0238e929e446ac40d94 (commit) via 6584a984a0b149715b9f51451ab82216f42d0e0c (commit) via 595a90f00334fba2c10518998244ac157b76d8f6 (commit) via f8bf364f0d758902de954f8e43bf372d3259929e (commit) via e1efb8199d378a6e8461b11f1ce748492e48bcca (commit) via bb12dd7b69825c7dfa88a4353e0bb39d179ae7a2 (commit) via 47cd046aede256dccbd844dc1e580b47d3dd4c45 (commit) via d5f1422d81ea54a1b56e57dcb4aadde95611111d (commit) via 51ab1de143a9bfcbc15c4d8bf7a6689e44a607b7 (commit) via 815eaff433559a26418be66f6400929d8ce3f0ef (commit) via 1e5553305203cee8b5b83dab82da16ac7b9f8713 (commit) via 3b9a23ce076e25548f4affde5b61eb37f71442fe (commit) via afc611d448aee8eaaefa018dfb6acd4c6d6227a1 (commit) via c0359d6dfbba1124c5b2da60bc56947e7f21769a (commit) via b85d2a9819e5708b1716976c112b6043abe49881 (commit) via 7326051edb1ebec404e0b81bd85292285d7a5b6b (commit) via 4d2e7a35d9592cd2ddae0467b5a0f036fa105476 (commit) via a648546338f22138b5fe26c19b25a5686d23b0b9 (commit) via 7f25a65fc1d53178453ad8cb820a9251a8755402 (commit) via e17121fee73ba9adcc2d102d0127695613b780e8 (commit) via b044bb056937ea59df3b9e244d9d01540fed869e (commit) via fc83b09d437a0137b2c2db6ec07b4bdb8f98b051 (commit) via 72586f0ff0bad5d1e9f75ab02dfc3e7595b47ded (commit) via f1934a05ad64ae5dd78568eece018cdb452b2326 (commit) via cb4439f3943662742f8010d41aff47ac06bb1804 (commit) via d4cb89d2d111e219520f4e1294e2e0985f918dac (commit) via 43d8be093c2dcad28164745d451f8d2351b9b95f (commit) via 1a8fde0e845eab654aeee6dc5b780c3e4596cb4d (commit) via a0fb1099efded1fe13a7e7fb51a97097776a06a8 (commit) via 2af92cf5acf6d3b0ef52528a0e83a29353ff3c83 (commit) via ac9e77e3ba748c96c670f1215abb4c5bdebe66b4 (commit) via 0ac6c61d3770cbc1fd19e3c5332ab76124cd643f (commit) via f557ea1e596033a79ab1f6df4d57fd90c15a2271 (commit) via c12392c0ef3aa71cda43fe38cfd22e4afab5cc5e (commit) via 4f3bd0ca20de32b0020f9be926254d2a201d226a (commit) via 8442c93764a38c903fe683ae9533a4d906a2b038 (commit) via 60607a6c75730e94b115cd2351c910bf022648dc (commit) via 3f09f5309c82ebf8b8518a16aedea8e0aad5e66e (commit) via 3b2ad4a1bddd2185da6bd500be39ee19694399a7 (commit) via 533a2da388be0f83732a07b5a40ec2792fd2fad5 (commit) via 674f4e9d515233f5356fc502c862b28829736fde (commit) via ff4770c79ba800a03fea65ffd5153f75e63cf2b8 (commit) via fb0ce57589a8ba724d3c446b612181f6d7f3b8c5 (commit) via e41b651b4a3b79bb072ac94835e96432ac1968dd (commit) via d9b691e18e59323e14dd37428fe9857ab95246b4 (commit) via 8762442c4ece6aaf6b863a7c86aaefb9e47c8be3 (commit) via ed9ab82c61464a3a719f9662416b58cc83dbf4fd (commit) via 690b0bd7618c2b0e7284beaebcf771c02daced1d (commit) via d2c4a3cab92b07ebf0a01dc745d642429efd8159 (commit) via 2181b55552b061ad76dd4126a0c6a0f15de0b288 (commit) via 05d4f131e9f96a27249f1e833923ba2790dbd49a (commit) via c31f18b6a901bf02dc9e5e1c8474487a23e4c71e (commit) via 7c50b0483420028e1dc5f9b75ea0510b6c775567 (commit) via e1eef9d53e80503c97f86587d1f8e0fb99195a96 (commit) via 4682d02723a3650847c74e1fbfe8d38b75474cec (commit) via bac7013b21485ce8a6263bd19a7ba65440ec3336 (commit) via c400fe4c84dbb3c32e38d961f24275b29bc73d8f (commit) via cb6148989124a4df35fe4ab256b03106a5121357 (commit) via 6fab5bca2a3fc22aa08e7b6691e9f81a259d35ca (commit) via 3e79f33fc28e1f33a1b7599205ab86ae455d44c8 (commit) via 04abd8d95822b660e65cc1a85dac55f2791ae27f (commit) via eff2dbf8336c3935535a5f5565bfc27c4fccd4bb (commit) via e3c589276a90cfd67070e5e3f8007fc7ead6058f (commit) via 139a1ab9475c73f4c773d83de17346aca2e4eb8c (commit) via 6945e46310ca87cd42ca537293db33a77dc35dbe (commit) via 931e1fed53d8b5b74dbf2c2bedafc0399cccc7fe (commit) via dc82656bf97fef330f5f34ee237426fb53d86708 (commit) via aff15defbc1ade178a1fbbf1fa1b592033d4fb77 (commit) via 53f4c74d9bd0eebf70b4540b688be6d6c3e556ab (commit) via 9468a6f71372b680f642cc2c71466db8ce30a186 (commit) via ed31c098f5306caf1bf0abefaf7814ccb6636362 (commit) via be9be7cb5bf598e7d0781559ecd88ad702b58db2 (commit) via 94ea1f03464ab9434189ec270baa83fc2f2dcadd (commit) via 6f348fcb9d96d8372fbfca50675736e81eec6661 (commit) via 08e1c65d856ef4931dd641cdffe75ff75238e286 (commit) via 98cee89f94b5a7eedbfeaef1a4f1dcbc2c0c73d5 (commit) via ed618226bb7f03b3a12155d8f2d1bcdb58adb566 (commit) via d526a95bf105e787d8432af4bf9d4ba1f165d781 (commit) via bc912c6e0c34bfd81a915b3f2774fc6b848990ff (commit) via e09884e04f0aab0c9b4f2f3d22f9f653e93d0cb9 (commit) via f7e649ddfbd915136ae5acdad388d0b517e5ea85 (commit) via a60dbb4b6aef3c4753f3206812ff80d34235e066 (commit) via 829697d076d1b74a2499bd3bda6b70cfa56d6b49 (commit) via 6be32fe50454ded7ecbec877db3a05bd87bdcc05 (commit) via 28640b7365b6bcd73fd760300c1f994a331fc993 (commit) via 82e136591e5dbe3366f2a8d3f9129b98603ad620 (commit) via f0da8d53d02633030dafe6ad301488e8946ffccd (commit) via 218b3341b6fd9da564ee876c08d8bf2c1b0ec78d (commit) via fb61ec6715f8bcf9005477563a6449f51725f286 (commit) via 8343fd125091b3530a76609e8ec17dbf9f63ed69 (commit) via f833ef4660862fce522799582957a64b2159ea72 (commit) via 54d6863787ca89d11e59efc1e9d345fd5b9a5eb9 (commit) via 6b681c40d2d1cf9f0a1d6b8cedcce90809680e1d (commit) via 93b75f31ad920a2aa96206c2053b70affa135a42 (commit) via 6397b6e78974f316d9358841120f8e8bb34007f3 (commit) via e800ca53b20429a09054c8113517061279258ab8 (commit) via 9efd8d1c7eb134c71465396a1bdcc5ae52497d80 (commit) via a6edca5a899eca09c3ccd8cd22c2b7a3223fcdd3 (commit) via 2669161dab909e57a6642c2dea8d5a70900f4f12 (commit) via ddcec9d339162ee49d7973f815e03d8da5e973cd (commit) via f2ab6fba4afa7bc13a7549fade339eebc63c537b (commit) via bedb72f3d42cf71be128cf7c803baa53495af6e3 (commit) via 05612a544bf60d233704be5995241d2354dbde91 (commit) via d58677779f0a678a5495a4b198fc4dfd2fcc6893 (commit) via fccf52cf7eb362d88dca279b4fd4464dba92d6ce (commit) via 21b9a50c68d9c42e56a525c9745f638266469a39 (commit) via 472136c9271f162ab65b224225fe3e478a77ccb4 (commit) via ef6f983b1724f9b3ac4d5d4f5ba45288985c44fc (commit) via a0f267b92c63d8f1ac374073847766873e5fc445 (commit) via c773075074acff71cb574f67fd450f86bf7f6dc1 (commit) via f69ea1c7c59cdeb664cbc93eae60a538191ed44b (commit) via 7874d8200d10669bc7ab8c69c119fa62cbc8c69c (commit) via f38e0c4de02235f31fbff715af6dde0fcd62a78f (commit) via b3f4a4efcf1c8dae2804a879b7f59559935f4b26 (commit) via 8cb1afc817acdf6228a13ed097b514c4ed4cfb6c (commit) via a7d7f5a3da6ed8905c01c7987acaeadbdca9aa5c (commit) via dc33c23b1fa602ab80e7b0b4422ca2019caa24fc (commit) via 36e9534f244f05b93119f4b6ddae47717acdc062 (commit) via a9b3ae26a3e158c3c94cdb169ae55b6af4eb40d4 (commit) via d47bb8a1adbaadcc1e50231be850853f2d097249 (commit) via dafaa4142779c7f9a63b481f23df4cec95c5f03c (commit) via fd4d137dbe29bab16761f5fa90ee200a6725fe19 (commit) via 443a6e8a5f95fbea7dbb9efe254f166be7e38b35 (commit) via ec329c069981d096bc38a1787ca1b04722dc40ed (commit) via 97e2e7b4b72dc635f3b8cb79d16198ad4a966f50 (commit) via 223d3b1dca93f96ed104990bd256a664150360e5 (commit) via a615cab30e57f39cc891d75a195e1df4bf4e21f3 (commit) via d998784149c62299aa7c417b7a7919c3d9abdcf7 (commit) via 8013bd0ac28ac8daee7bae5ebcfe4c9fd8154310 (commit) via 92e4ae9db1334acf481a60656004b289b0accf80 (commit) via 88f18201c74a911303b8ba023830c5e068794a21 (commit) via e2619c15215a9f86773e3bb84056b1f651261ec6 (commit) via 770140a7bfb302261d1e79d3b9add20be6b2b7ed (commit) via 3f8d9da3000a6f2268fc2c3c9b724d593a079f8e (commit) via 5b375ca7e640361701497ae451a4892e7ec5334e (commit) via 3f6bba6dbb92a41ccbe5f63753c98cb6658e06bf (commit) via 25dd450cbae6159727dfeff231da9573a075b4f9 (commit) via 31fef6cc2d8c19fb7b5a86529b4b98bc2d4fd85f (commit) via d603d1dee0376f6816e9643c8a332780cd112d93 (commit) via 5aa8edf6f794691843e13f0febfb29ee0ccf18d7 (commit) via 515863e299fd11273cf06cc3d2a5ecd673553a1f (commit) via 30d80ed42a716aa35c5827a4ec513e2925638da9 (commit) via f83227921516681f642ce29e4f9121d6341e1d99 (commit) via 6ca0b0f5fbfdfe4875a38b7ffc47d2af56efd9ec (commit) via af768a7e80bb8fb3b25bfd8f13a4a0561927f9e2 (commit) via 96502a5a67692ae5fb06b9a83799c64040ced1df (commit) via 289d82ad6e87b8b22b6cb90d3b16fb1a6721734c (commit) via ba6f69f76943a83fece4a12fb632f9ad166edff3 (commit) via d9a4000ba84beb88853a43a7301633b590c79abb (commit) via e638799b12ce108b6a13cfb3e8a180c56f4d3b9c (commit) via 1031c2e4a919e510e09dc975ce1567493841d2c5 (commit) via e28356b92834e75f09756de76e3cb139e9b72e9c (commit) via 562d24b8169ac043b2ab4ebf160862b25e88097e (commit) via 5dd84c259d95ee2fc2967326388d5cc73af4eabc (commit) via 12a43202a6fb6a9b80664ebcf01792928c57c016 (commit) via b324de14db6c48823e570a285c91bb18593f02ff (commit) via 15add1c8afbbc8eed5dd9d9649049109dbce8d58 (commit) via 7bf83f9d39d3101ac096b42d0fc43a8caef97c5e (commit) via 6128ded855eefc07abc6904490cfed055e35647b (commit) via f80db6a4ceb985e14a5bc85134bafbd0b3c34416 (commit) via be5698ef6688c770f422011875b2d6451af017d8 (commit) via e5a058c131806586e53c44d5ecca7e1d4a926f84 (commit) via 046d88c2d0f5718a8efbd5cbee5e2f4e1b5f4dbd (commit) via c178bf21c1e6d68be2fca6763e8e4b8493304d32 (commit) via d928d79566cd802f85cd38bcd8bd76f4bb112547 (commit) via 6563800485c11292341c931ccf8aadb281eaa2c8 (commit) via e3580608b3cd6695980e2ace6eae4f969d71e070 (commit) via d0815ce43f84bf53f31f2a51ba4fb768d6c12e4d (commit) via 0b54aaede3702dcaf76e3d4b50fd5ca591e8fe13 (commit) via aa8647835d948bf7261fb49ba26054b8789b61d8 (commit) via 35fb91640a78eb4c58c0ecab50f317d8bd4341da (commit) via 4e62b47f3371f261d3a295faab9083063b5fbad1 (commit) via 5d7faa4518d894f90218c216bb2fb86e69f46b2a (commit) via d7127db8fb715f13b87cbce980137c2879a1d64e (commit) via c7043621fc4cf73f30749d21310a8569fbf1c78f (commit) via 6ba1cd4ceba9d4b343e5afb47e206e7a507f226c (commit) via 3f8fe51ef093987c5633a9564648b1d3fe2e5087 (commit) via d13a936349b048eb5515699fea46c7242b9c95ac (commit) via 2cee24627a50955ee1ab6b1414ce9d5aa7feeb2c (commit) via 6c8699612cdb1fec557f02b2e4ee22750e7b1ff7 (commit) via cd9d9d8a13405e380ad0422d2b47f48d9ef1f8a4 (commit) via 12dcfbbdbe38f8b81a3969f70516511ec779d011 (commit) via 8f204435d41f19c0e79b3ab0fb364606b8eb1522 (commit) via 0918e51633a3c1582ce075b6e6dc71d0a07566be (commit) via 5de39dea9c1ebbdf7c2a9407dafd3900677ac9db (commit) via 13e5dda402cac2e441d029459e152750c2493e7f (commit) via 5e9707230693d7f3e180ec6a711f54dd0c224ab7 (commit) via bfac6bd4dc79788c16d66b29b84d3ecb6d105653 (commit) via ed73b87ece9ecefd829dde86cc3a559172d3bbcd (commit) via 0013abb07c6dda5f4a67ec2a2025e8d1007c4417 (commit) via bfee206c989a77ae56701aec25a435262dcda1ee (commit) via 5edf47ffbac2f7a8a668c8b64addd767c3df306b (commit) via 7772ae734e9bc926c19adfbd9333471cdf300f6f (commit) via fb70d3d54035db1c7427f8d42570980199455190 (commit) via 937d4e0892956a054f012f9f6d4ce5b1e03227f0 (commit) via 20c00d4bdf1114b983c71d2557dcdb0b067e87e0 (commit) via d6bdebd47d1c163dae1fbde6b6758d58ec66d67b (commit) via 8f1634ffbc7b3d039088bf80c85c3bcf2eeaf56c (commit) via 53f3a4c82dcbcc95118635bf89e67876ccb79206 (commit) via 2b9460abfa947eb91b391e4e97daa95ee7bc87fc (commit) via 0b14d3d9b14ee36a01a67d83591ede814cc9f92d (commit) via 5b7ed8bbae95651ff9098b90466bb815d2361f5f (commit) via 6adcf1569cf30ca399ae0aacb9e86c06fff4ffc6 (commit) via e974ced8c5a280554d4034e60647188e109fe9a1 (commit) via 210ee67b5354f513a71a74df2633e2d3e0ddad95 (commit) via 7bd9d462de4035d508b108ab0bedc3fda87e1326 (commit) via 0f869e32d4ea1f56e84cb61578964adf6eec7659 (commit) via 85dc70c746cd8fe0b602c0e98f2cc4b2232507ec (commit) via 70d38e5089fcd9de5a595dc5e08563104eba65ea (commit) via e3afaf8890558beb5e399efe2f8fa6cbd9123b91 (commit) via f1ec713da7db766dc3593c99b9b5c5cbc6efdb86 (commit) via f3fb9b64ac9a15703827454e7f67bc6754af9c5c (commit) via 47a40c972633d9e817d58d5f0212ba47006b4973 (commit) via 45cfd811310ad839d8cc6b7358cd9074bf43ae80 (commit) via a57a5709a40580f68c4b2ecfd13d3a989ad7d4da (commit) via 4b147d950b148500c5ec04a9f13e04f8b2e1ad96 (commit) via ed62bbfb521de113f824228fed88f2f8f962035a (commit) via 04f24153fcb06d29411569d19784430e16eee237 (commit) via 8d1beadce31786cc87afc01880d731c8a19e120f (commit) via 3b81fad442d9078bc9131e731ce2034656bcb165 (commit) via 5238a8719d75273e5e52f083c0c10cbe9e3ea312 (commit) via 5a9fd5dbd1af37c5ecf3608333486716cf43354b (commit) via 25c4997947301c3be6407fece18e4ef652e59285 (commit) via 61068ee1a4b6d4c029da662f4d8f3bcfa1734909 (commit) via 43902ae5a274e33f0e0bd14787bac49aa827bcc8 (commit) via 9edb1d7a8e5e70c1ebe3d8f4197770e1c1c5d4e3 (commit) via 879462965387442e12cbade08cc20e3498c7672a (commit) via 99e698d03387f4ad40db1d2bd737c0d6cdc55a23 (commit) via 93a5f4a5821f92be219be12696de86ff8641395c (commit) via 8b3dd79147c3804e5f8944eef5c22380788ac348 (commit) via 8f0b047b4ba13521dfd782d0d164a2efec12cba1 (commit) via e0800c21db6316f0a41461f2e02fc7565d7c1a49 (commit) via cf576a12e54b51f563dccc77b783fce7de6b5768 (commit) via 99e5d97623e86562756166eba2cb8e504fad3646 (commit) via d7dc9718d31def634485a1b975a8a8e2a4c8bd4f (commit) via 8910ee647c5aaae0d05e61ca61939a7cfb60ac83 (commit) via 2833f5678e79bdd178d71edf947c5b37f5ccc6d7 (commit) via 27f4a6b159d9b040feffa8b06784fc71965fac2e (commit) via af49e3672351be5c1bad9958dfbd70bb638ffb45 (commit) via bcbf1b8ebe50b470c8ad6e63cb9519c3fea37499 (commit) via 7f9d1c39693c49b767a40dd226b47adf83ffbef1 (commit) via 36196d0d6439f83e8aaff92f186dba32f8f47eeb (commit) via bc3297257288edb70f77c74009669ddb901492ff (commit) via 9ee07ee5d2744bb7a55769bc6afb9ce21addb853 (commit) via d1f01304ffd334ee6ccf42a62f20de72ccc2bbde (commit) via e44fa0792b3d40b482da5213ebb1c3a9f00f7965 (commit) via 02da9f7bafcfc563b2d15b8741145631ea9c6a45 (commit) via 68ae5e591c993092e7f8f20abffb7d7d328ed1b1 (commit) via 992394d55cd19659a6717f2917e27d5a93a73e37 (commit) via 275a92e800636d0ba00daeb65b432d1dcf6c7bed (commit) via 1aec05a64e69852338ffd6e1b49e0d9beb9e5fda (commit) via 2da264ec63eb3091704a6b71cc7f83dc6f07a892 (commit) via 8dc23ff4fcc6b9f07cdd48abe7991419d255d363 (commit) via 8139398721023908ae3145d18839d2712ce522c8 (commit) via 54cb7ff0199cc9a7833038597fee4bfc7dbfeab5 (commit) via b526909163c325956f16fdd90287465aa78ffd17 (commit) via b9648e583305cc03907e9dde6c459fd8ba71cd0c (commit) via 485aac63955b1171f5f74525f345fdc4f94663fd (commit) via bbc14c234d62afe1cd8b0730265d5c3a57111744 (commit) via 9dafa928db040447cd888d6cd901130bdecfaebd (commit) via 62fc8511664c6646d706aa42927bac53ac6a5b5f (commit) via af8bc0d0a8c6a93277d9bfb6ef959f2cc8005b7d (commit) via fd10a52ca2860678368d162ce6b52b8c1cf25d0e (commit) via c0ec19967e4dc75b6e719177af6e258a7b4fd858 (commit) via 3d016366b8c38ed77038f4c1178d8b7afa466115 (commit) via 92788c464b2129302c4fa8b1b3dfec2f329bafdd (commit) via 7f5b2820698c2249b3d8496ec80315be86617f0a (commit) via 74e7001436c27096cd035452bd051a88795ef04f (commit) via 6be0579b189df15a1e6775462c0945c41043801b (commit) via e534554162a34ae47d135f3df251caac14502628 (commit) via 9bdb6b504536142e57acf9d967dc29aea47f09cf (commit) via adf41e6f3733955207801ef06665272aaddefd90 (commit) via c04f132d4947c6fbd41f9c18bc6590bd647e1786 (commit) via 231499fcc85bfb6ae4fbb03fbaca2873984be103 (commit) via d24a34cbdc529fcb9122ed7f99bc48c4a83263bb (commit) via 55674e0d3877ac07f71e26e0d07dacc6baf5759f (commit) via 14f7cb87b993267a1d76098ab9fa088533af1e18 (commit) via 2a81ab0d7701a7afd049d3ca5a28dc4e0fbffd20 (commit) via 111c99ddfa3632a8c2788b9c6d70c5e6d8a1dfd4 (commit) from 42dbdb2088b7877ad1626d19db47089e07996b37 (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit ea219d3a0f77a4d45cf42d8e7d3ee9dc3db63bbc Author: Arne Fitzenreiter arne_f@ipfire.org Date: Fri Mar 28 18:16:31 2014 +0100
set version to IPFire 2.15 rc1.
commit 70c926e75bc83d60490d5c1ce9d8d62ed64d284b Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Mar 27 15:08:17 2014 +0100
firewall: Create mangle chain NAT_DESTINATION to silence error messages when updating.
commit a3f2459f8fb71a49935902f167de08bbd8b85fd3 Author: Alexander Marx alexander.marx@ipfire.org Date: Thu Mar 27 11:58:48 2014 +0100
Firewall: fix Update from core 75 to 76
commit 1e4b7130e1e0a05ae5c939122d6f88708bbf8531 Merge: 38ca33d 90b0389 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Mar 27 15:07:26 2014 +0100
Merge branch 'next' of ssh://git.ipfire.org/pub/git/ipfire-2.x into next
commit 38ca33d110b4516f927e866a37db59e596f4b6a4 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Mar 27 11:36:12 2014 +0100
cups: Fix rootfile.
Basically, include just everything.
commit 90b0389a90b58695a05e419e9098b96cac66e003 Merge: 82f5dd8 8fcb925 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Thu Mar 27 07:30:56 2014 +0100
Merge branch 'next' of ssh://git.ipfire.org/pub/git/ipfire-2.x into next
commit 82f5dd85cd96a5b60aa9df58449bd8a5c0673d26 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Thu Mar 27 07:29:19 2014 +0100
rpi-firmware: update to 18a7921.
commit 5734dd105ceb331ca74140e4bea5acdf16226062 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Thu Mar 27 07:25:24 2014 +0100
kernel: update RPi patchset to dea8280.
commit 8fcb92530e4ddd8146d0d82e380a161cc85413e4 Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Mar 26 23:47:14 2014 +0100
ipsecctrl: Fix compiler warning.
commit 7add463e51039d0409545f7279d43a66eba1d532 Merge: 36d809e 513c321 Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Mar 26 23:35:18 2014 +0100
Merge branch 'next' of ssh://git.ipfire.org/pub/git/ipfire-2.x into next
commit 36d809efb637c618359f40c1ecd8d820fcb2c882 Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Mar 26 23:34:58 2014 +0100
media.cgi: Fix typo 'writen'.
commit 513c321ebedcf0865863b95ccd453f155f7703ed Author: Arne Fitzenreiter arne_f@ipfire.org Date: Wed Mar 26 08:35:00 2014 +0100
wlanap.cgi: fix missing line from wlan info.
commit 6a79396ce6dba66f4f8cce26a743be3496a8902c Author: Arne Fitzenreiter arne_f@ipfire.org Date: Tue Mar 25 19:11:03 2014 +0100
hostapd: change setting of the regdomain.
the regdomain is only updated if it was really changed but after boot the system believe it is "00" World but it is not correctly set at some cards. So we set a region and set it back to "00" before the real region was set.
commit 91eb94ee2f95c8d0e5ca709ea8e1480959581f7c Author: Arne Fitzenreiter arne_f@ipfire.org Date: Tue Mar 25 13:15:43 2014 +0100
wlanap: fix typo.
commit 57c209d558e0b410d5f42493d328d2c06cef20ac Author: Arne Fitzenreiter arne_f@ipfire.org Date: Tue Mar 25 13:03:56 2014 +0100
wlanap.cgi: fix detection of not useable channels.
commit 5c8167f5766250bdc3b57e6242e487fb467f895f Author: Arne Fitzenreiter arne_f@ipfire.org Date: Tue Mar 25 12:59:37 2014 +0100
iwlwifi: use noibss flags only on radar detection channels.
commit f763ff3224dec67963bd47ef176085d7dd310fc0 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Mon Mar 24 13:28:29 2014 +0100
kernel: update to 3.10.34.
commit af433268e063cbcb435b4770027906d897d9bb6f Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sun Mar 23 17:39:47 2014 +0100
graphs.pl: fix links position in chrome for android.
commit 51cf3f8be548e3bb3bff19bab7c27dbb56e6e426 Author: Michael Tremer michael.tremer@ipfire.org Date: Fri Mar 21 13:39:03 2014 +0100
firewall: rules.pl: Honour time constraints for NAT rules as well.
commit f98bb538e59279bb0768a15fc7d95267f4d61c74 Author: Michael Tremer michael.tremer@ipfire.org Date: Fri Mar 21 13:33:08 2014 +0100
firewall: rules.pl: Catch invalid configurations.
commit c0ce920610c15e9a3639dbaadb29feea1747ac34 Author: Michael Tremer michael.tremer@ipfire.org Date: Fri Mar 21 13:28:00 2014 +0100
firewall: rules.pl: Allow REDIRECT rules.
commit 896eb2d69354221b2a13770b60a61c5b454126a7 Author: Alexander Marx alexander.marx@ipfire.org Date: Fri Mar 21 12:54:12 2014 +0100
Firewall: Allow DNAT with target firewall
commit c71499d8d9296124cd08467efa938375e0bccb20 Author: Alexander Marx alexander.marx@ipfire.org Date: Fri Mar 21 12:20:50 2014 +0100
Firewall: Rename defaultNetworks to netsettings
commit fd169d0adc87c82253b0655d94ea8213e9aaabe4 Author: Alexander Marx alexander.marx@ipfire.org Date: Fri Mar 21 08:28:24 2014 +0100
Firewall: DNAT - Show right DNAT interface in ruletable
Now: When using a hostgroup as source there are all corresponding DNAT interfaces shown in ruletable depending on the entries in the group.
When in DNAT area "-automatic" is selected, the DNAT interfaces are shown as IP-Addresses, else they are shown as "ORANGE","GREEN","BLUE"...
BUGFIX: When there is a MAC address used in a sourcegroup, the rules could not be set. Now MAC addresses get allways the public interface as DNAT
commit 4e54e3c6f531f356424c366c6c886efeceb5b8ae Author: Alexander Marx alexander.marx@ipfire.org Date: Thu Mar 20 17:27:53 2014 +0100
Firewall: Move some functions from rules.pl to firewall-lib.pl
commit d7a14d01e120d7350f449a2694eb10feedede2d6 Author: Michael Tremer michael.tremer@ipfire.org Date: Fri Mar 21 12:40:55 2014 +0100
firewall: rules.pl: Fix rules with other NAT port.
commit 0d0df35ca260e5934f66ac79247dd9682f20795f Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Mar 20 23:07:26 2014 +0100
Update translations.
commit 95cda2592498ead2cc02364b6d9ea6522bd562a6 Author: Alexander Marx alexander.marx@ipfire.org Date: Thu Mar 20 16:23:47 2014 +0100
Firewall: DNAT - always show right red address in dropdown.
Edited language String in DNAT area: external ip address is now Firewall Interface
commit cec275c9dfd9f614c94f10c636bdbeba09427272 Merge: b3c0c61 dea9e71 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Wed Mar 19 19:07:27 2014 +0100
Merge branch 'next' of git.ipfire.org:/pub/git/ipfire-2.x into next
commit b3c0c61132512367cf30c8286880f01d0cb81ace Author: Arne Fitzenreiter arne_f@ipfire.org Date: Wed Mar 19 19:03:22 2014 +0100
hostapd: enable CONFIG_ACS for dfs channels.
commit 0f0d6a5a7d4c8a8ac4c01b4f99c030a47cf56e41 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Wed Mar 19 19:00:47 2014 +0100
hostapd: change channellist and status for dfs channels.
commit dea9e7193c8c5ab9b480f8af9711099576c28919 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Wed Mar 19 09:05:37 2014 +0100
core76: add wpa_supplicant to update.
commit ece72ab98f2379caa3299647f2088a2ec6d4f1c6 Merge: f89678d b0d9fad Author: Arne Fitzenreiter arne_f@ipfire.org Date: Wed Mar 19 07:23:40 2014 +0100
Merge branch 'next' of git.ipfire.org:/pub/git/ipfire-2.x into next
commit f89678de2fe1b9b1fa711bcd72c1e2d771a059d7 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Wed Mar 19 07:22:49 2014 +0100
hostapd: update to 2.1.
commit b0d9fad3f94fb73b1686c5e6a948066497638d26 Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Mar 18 23:49:23 2014 +0100
firewall: rules.pl: Add support for auto selection of NAT addresses.
commit cc77ac2364436f6dff5fa31bbe6fb0dd1f92c4fd Author: Alexander Marx alexander.marx@ipfire.org Date: Tue Mar 18 15:13:02 2014 +0100
Firewall: select right value in DNAT Dropdown
commit 1aa5439cf14c881043dddf685a528fabf33305af Author: Alexander Marx alexander.marx@ipfire.org Date: Tue Mar 18 15:02:55 2014 +0100
Firewall: extend DNAT dropdown with auto,BLUE,ORANGE,GREEN
commit bb0618287b9c10fac2fd1a8386128386fa667f20 Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Mar 18 18:03:14 2014 +0100
openssh: Update to 6.6p1.
commit df1f687b28c28b1b6721cd3f02ce043e9d433bfc Merge: 5561ea4 be0d100 Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Mar 18 18:00:42 2014 +0100
Merge branch 'next' of ssh://git.ipfire.org/pub/git/ipfire-2.x into next
commit be0d1005fdad24d7c0eb1d16411c99048caf7fcf Author: Arne Fitzenreiter arne_f@ipfire.org Date: Tue Mar 18 07:28:13 2014 +0100
core76: add tzdata to update.
commit 4f92fd2aebf81cdc64b2e024593341dbaeb76611 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Tue Mar 18 07:20:41 2014 +0100
tzdata: fix rootfile.
commit fff24766e384c0245f2c660a7e4a422db2ee6e7b Author: Arne Fitzenreiter arne_f@ipfire.org Date: Tue Mar 18 00:25:08 2014 +0100
initskripts: add pcengines apu support to leds.
commit 607c9d3ae05eaa5de02c51aa5923505f7c5026c3 Merge: e583643 da7a220 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Tue Mar 18 00:22:24 2014 +0100
Merge branch 'next' of git.ipfire.org:/pub/git/ipfire-2.x into next
commit e583643a25e2249bcc3583bdae9aed7b57663fbe Author: Arne Fitzenreiter arne_f@ipfire.org Date: Tue Mar 18 00:21:38 2014 +0100
kernel: add pcengines apu led support.
commit 5561ea4a71350e0c851534bed430bc5ef60547ad Merge: 4ebd383 da7a220 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Mar 17 22:04:48 2014 +0100
Merge branch 'next' of ssh://git.ipfire.org/pub/git/ipfire-2.x into next
commit 4ebd3831fab6949542f0d2a9d6e444c5f8619ad1 Merge: 2a07aa9 3a60bf3 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Mar 17 22:04:44 2014 +0100
Merge remote-tracking branch 'alfh/feature_firewalllog_centergraph' into next
commit da7a2208d3a3c4143ce9029665ad9d738e70d3b1 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Mar 17 18:03:00 2014 +0100
firewall: rules.pl: Code cleanup.
commit 5cf8c8c12382d77b07fbcb1b8916d78d2806cc74 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Mar 17 17:39:47 2014 +0100
firewall: Fix DNAT rules between internal zones.
commit c2a1af7545c52edc9354e778acecb6370ea15d48 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Mar 17 15:47:28 2014 +0100
firewall: rules.pl: Sanitise source and destination IP addresses.
Those variables are now empty if source or destination are unspecified.
commit 2a07aa9d9c4c1968a1072147107d889a1a8aae5e Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Mar 17 14:17:44 2014 +0100
dialctrl: Remove defunct script.
commit a72ae687c6779a280fe2da176550471b8b3b1771 Author: Alexander Marx alexander.marx@ipfire.org Date: Mon Mar 17 07:22:24 2014 +0100
Firewall: Bugfix: Remark in hostgroups and servicegroups was not changeable
Another Bugfix: Layout of hostgroups was broken when more than 1 vpn connection is defined. There where dropdownboxes for every vpn connection instead of only one
commit 17eabb6587e53570f518aa968e0f935dd5b3bb12 Author: Ersan Yildirim yakazan@gmail.com Date: Mon Mar 17 12:38:22 2014 +0100
Update Turkish translation.
commit 835a1e2863fac9065690b5a79c0ca120f398e533 Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Mar 16 16:02:18 2014 +0100
tzdata: Update to 2014a.
commit d5e94f72f6fe617f5b1653eaa24fbe0fdc3dde3b Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Mar 15 15:08:37 2014 +0100
sudo: Update to 1.8.10p1.
commit 3a60bf3483d0f40deba348c120df3e75da7b3ce0 Merge: 326a764 2b6c5f2 Author: Alf HÞgemark alf@i100.no Date: Sat Mar 15 08:47:56 2014 +0100
Merge branch 'next' of https://github.com/ipfire/ipfire-2.x into feature_firewalllog_centergraph
commit 2b6c5f257980b0f9e4d31f26ac1945092a45df6a Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Mar 13 15:43:52 2014 +0100
ipfire theme: Fix default setting for hostname in title.
commit dadffbf738474d649b7177d56acedbad51d6e603 Author: Alexander Marx alexander.marx@ipfire.org Date: Thu Mar 13 15:35:14 2014 +0100
fwhost.cgi: disable "use warnings"
commit fd24071f657fff2dfa8f878b8eef5d6a1dcf20d8 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Mar 13 15:37:05 2014 +0100
Update translations.
commit 7e7788ea0bf73e122b71f56e972565d910a1e302 Merge: 9d870c4 03b08c0 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Mar 13 15:32:00 2014 +0100
Merge remote-tracking branch 'amarx/BETA3' into next
commit 9d870c49eb75331f75bd84daeb6bed658d8a1b90 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Mar 13 15:29:53 2014 +0100
entropy graph: Remove trend line.
commit 84004f0538945215dda2b52fe2f664274dc884ce Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Mar 13 15:27:14 2014 +0100
Add link to entropy page and show if there is hardware support available.
commit 03b08c08f0be261f47335ebf6e608b4b5d6d153a Author: Alexander Marx alexander.marx@ipfire.org Date: Thu Mar 13 15:27:01 2014 +0100
VPN Checksubnets: Buttons are now Language Strings
commit 4d81e0f3812fc272b2515a631a2e98c4ae76a42b Author: Alexander Marx alexander.marx@ipfire.org Date: Thu Mar 13 15:09:01 2014 +0100
VPN Checksubnets: Now the remote subnets (OpenVPN/IPSec) are checked. If they are defined elsewhere, there's a warningmessage displayed
commit c6df357fd4fefe2a8285ec92e38bd40361fe788e Author: Alexander Marx alexander.marx@ipfire.org Date: Thu Mar 13 13:53:39 2014 +0100
Firewall: When delting an OpenVPN or IPSec connection, the rules are only colored yellow and the firewallrules are reloaded automatically
commit b3c53248d97ee083fcf43cc5ff745396be06ca1a Author: Alexander Marx alexander.marx@ipfire.org Date: Thu Mar 13 13:53:39 2014 +0100
Firewall: When delting an OpenVPN or IPSec connection, the rules are only colored yellow and the firewallrules are reloaded automatically
commit 38cacce21b42d9e7c079e646096e486ac706e546 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Thu Mar 13 12:45:56 2014 +0100
samba: update to 3.6.23.
commit 09d7ae9471547ea9ab42a77339666a3e5353caf3 Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Mar 11 21:47:16 2014 +0100
linux: Remove disabling of loading the pcspkr module.
commit 014b284e5f3dc1eb87b1198e717cffa28dc70771 Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Mar 11 18:03:59 2014 +0100
beep: Update to 1.3.
commit 826c22d66c3eae74bb4c7287cdd81478a5341e01 Merge: e9b5ba4 e553347 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Mar 10 21:35:15 2014 +0100
Merge remote-tracking branch 'amarx/INDEX' into next
commit e9b5ba417924d00309736ca045997c5dec7ce4d3 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Mar 10 19:40:20 2014 +0100
firewall: Add auxiliary rules for firewall access.
Rules for accessing the firewall are added when access to networks (GREEN, BLUE, ...) the firewall resides in is allowed.
commit cbb88df1548953beeca06d462c9d3006a15dc9ef Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Mar 10 16:11:50 2014 +0100
vpnmain.cgi: Remove left-over </td> tag.
commit e55334753d7dc49db0b5530b78b8d0f15ca03e9c Author: Alexander Marx alexander.marx@ipfire.org Date: Mon Mar 10 12:54:06 2014 +0100
graphs.pl : fixed layout on Nexus 7 devices "hour-Day-week-month-year" now on top of graph
commit 5ef260ae4192d644d621f82bfb0a8f514088cc0c Author: Alexander Marx alexander.marx@ipfire.org Date: Mon Mar 10 12:22:32 2014 +0100
index.cgi: fix colors and tables for vpn connections
commit d7050fc04a06f0decd8faf12c559e899b3848191 Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Mar 8 17:29:47 2014 +0100
ipsec: Allow to create firewall rules for IPsec input as well.
commit 9a5050b4c5e9a2635f859cae14820827742dfcf4 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sat Mar 8 14:03:08 2014 +0100
Set version to 2.15 beta3.
commit 59124eeb2aacdee2229b68e128cfa8c738ee1a68 Merge: dc98645 3c3f0b6 Author: Michael Tremer michael.tremer@ipfire.org Date: Fri Mar 7 16:33:42 2014 +0100
Merge branch 'next' of ssh://git.ipfire.org/pub/git/ipfire-2.x into next
commit dc98645fd42873dfeda01188243565e2f977f4a9 Author: Michael Tremer michael.tremer@ipfire.org Date: Fri Mar 7 16:33:03 2014 +0100
setddns.pl: Use GetDyndnsRedIP from general-functions.pl.
http://forum.ipfire.org/index.php?topic=7504.msg63721#msg63721
commit 3c3f0b664eb09375e084e969038154899fecf162 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Fri Mar 7 09:29:20 2014 +0100
kernel: update to 3.10.33.
commit 91dd042b20210df0bb0461ebf09791e3c028ea86 Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Mar 5 23:53:21 2014 +0100
gpl.cgi: Fix proper redirection so that the agreement has only to be accepted once.
commit 63f2fb7fda9112d9e39414328e5d4fab28809c63 Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Mar 5 14:07:23 2014 +0100
firewall: Filter logging of broadcasts from the internal networks.
commit 323923d912cb86fd2e89326aa61bad06bf05d6dd Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Mar 5 13:59:28 2014 +0100
firewall: Allow remarks in Unicode.
commit 32c6ebdced9682fdbdbe54059de25a036557d3b0 Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Mar 5 12:31:36 2014 +0100
firewall: Make ICMP ratelimiting a bit saner again.
commit 6e9cf9ad860616468a0d1367e345dd24a3664c17 Merge: 9c3bcb9 65c9b3a Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Mar 5 12:25:12 2014 +0100
Merge remote-tracking branch 'amarx/beta3' into next
commit 65c9b3a50815587bc212160465c92b6150e6fb77 Author: Alexander Marx alexander.marx@ipfire.org Date: Wed Mar 5 08:13:04 2014 +0100
Firewall: Remarkcheck should now support old firewallrules from converter
commit 2610f3930ab91a3b7ba79a80ac9e6f6d0ea3c724 Author: Alexander Marx alexander.marx@ipfire.org Date: Wed Mar 5 08:02:05 2014 +0100
Firewall: When no manual ip is given on rulecreation and rule is added, there's automatically std_networks "ALL" selected
commit b062a11bbe730454c48c2c45ff0b1e0eec454471 Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Mar 4 14:26:55 2014 +0100
firewall: Don't colourise MAC addresses.
Fixes #10491.
commit 13e3cf285e32334e2de1a23a916fa941994fdd23 Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Mar 4 14:14:54 2014 +0100
firewall: Extend rate limiting for ICMP error messages.
Fixes #10489.
commit 179deb37d02efbb6c180568ef361a7caf3ede70e Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Mar 4 12:38:13 2014 +0100
firewall: Add chain name to logged rules.
This helps us to debug faster where a packet has been dropped.
commit 5f050d607c11a875564916de98cb3c3f2c2ce390 Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Mar 4 12:36:52 2014 +0100
firewall: Add rate limiting for LOG messages.
Fixes #10488.
commit 9c3bcb9f00fc09c86312b382bfb594c08fabc9ed Author: Alexander Marx alexander.marx@ipfire.org Date: Tue Mar 4 16:00:14 2014 +0100
Firewall: Now it is possible to just change the remark in input and outgoing
commit 9556a0fb95e2a7c5458ea2dcaecc29c2a71c5f86 Author: Alexander Marx alexander.marx@ipfire.org Date: Tue Mar 4 16:11:35 2014 +0100
Firewall: When no manual ip is given, standard networks "all" is selected
commit 5a09c99a89fdeed47e0fa9ea0b3623b08422ca26 Author: Alexander Marx alexander.marx@ipfire.org Date: Tue Mar 4 16:00:14 2014 +0100
Firewall: Now it is possible to just change the remark in input and outgoing
commit abb3cfcc9ef1ffec5235ead3b9cad4014c141aa9 Author: Alexander Marx alexander.marx@ipfire.org Date: Tue Mar 4 15:44:02 2014 +0100
Firewall: FIX allowed chars in remark
commit 2ed474684d5f7152e34ef606d282798561e5c35f Merge: 0ba66e9 90c2ce0 Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Mar 4 14:54:06 2014 +0100
Merge remote-tracking branch 'amarx/beta3' into next
commit 90c2ce0c20c8b0cdb027220f5363b51dd9195d83 Author: Alexander Marx alexander.marx@ipfire.org Date: Tue Mar 4 14:51:20 2014 +0100
Firewall: get rid of /32 subnetz when using manual ip addresses
commit 40962f9760ce8da23ebd5c723d75775e7853943d Author: Alexander Marx alexander.marx@ipfire.org Date: Tue Mar 4 14:40:59 2014 +0100
Firewall: Bugfix - when creating a new hostgroup, the system checked for existing name in servicegroups instead of hostgroups
commit 0ba66e9293e106469894d84268b997a67f71e105 Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Mar 4 14:26:55 2014 +0100
firewall: Don't colourise MAC addresses.
Fixes #10491.
commit fa8229546b11ac356ff1df733a0b17eb045559ee Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Mar 4 14:14:54 2014 +0100
firewall: Extend rate limiting for ICMP error messages.
Fixes #10489.
commit fbd8ac3c8c06c5cf6b262e98af17c85b1609cecc Merge: 8225c4f 7429ee7 Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Mar 4 14:14:45 2014 +0100
Merge remote-tracking branch 'amarx/beta3' into next
commit 8225c4fc98da65f37e4fe1535dee46a27522ac3a Merge: 0bda23f 36c92ab Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Mar 4 14:14:36 2014 +0100
Merge branch 'next' of ssh://git.ipfire.org/pub/git/ipfire-2.x into next
commit 7429ee78b62e5b248a646a02dbc198db57412291 Author: Alexander Marx alexander.marx@ipfire.org Date: Tue Mar 4 14:07:04 2014 +0100
Firewall: Fix oversized Textfields
commit 0bda23f5a1bc182592f4ac1aa9d9929769877835 Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Mar 4 12:38:13 2014 +0100
firewall: Add chain name to logged rules.
This helps us to debug faster where a packet has been dropped.
commit 3bb4bb3fa136224792e7dbbcf8b4f801a5565284 Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Mar 4 12:36:52 2014 +0100
firewall: Add rate limiting for LOG messages.
Fixes #10488.
commit f620fa34dfe915c2e30d74614e6aeee1c99e2c59 Author: Alexander Marx alexander.marx@ipfire.org Date: Tue Mar 4 11:37:58 2014 +0100
Firewall: Fix Bug 10490 and broken colorization of tables in firewall groups
commit 36c92ab00dd7d5a778199217bffe4c52c94d77ec Author: Arne Fitzenreiter arne_f@ipfire.org Date: Tue Mar 4 07:07:31 2014 +0100
kernel: arm-multi: add marvel and allwinner support.
commit c39413f2d59c04f2d6051d737abbb2c89e203ec1 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Mar 3 16:41:13 2014 +0100
vdr: Add eepg plugin.
commit d1dee6c1a1190868a8f6b21f1b63d45a73917f41 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Mar 3 16:31:27 2014 +0100
vdr: Add DVBAPI plugin.
commit ece4c8cdc3146b39797c01241a8355be54f31888 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Mar 3 16:28:51 2014 +0100
vdr: Update to 2.0.5.
Stupid outdated websites...
commit fa49910fa8cb713c9df965891aff257e6fd2832e Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Mar 3 13:50:37 2014 +0100
vdr: Update to 2.0.4.
commit fb5132aa57e40e52aa0571020d26c12236f48310 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Mar 3 12:27:09 2014 +0100
strongswan: Update to 5.1.2.
http://www.strongswan.org/blog/2014/03/03/strongswan-5.1.2-released.html
commit 824dc93601e03f14d6acaffe11fb578fe2667394 Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Mar 2 22:50:29 2014 +0100
firewall: Add a trailing space to all log prefixes for better readability.
commit 9f80e810729347d23386ae9837927bb2c8b9f1fe Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Mar 2 22:46:17 2014 +0100
firewall: rules.pl: Remove unused variable $time_constraints.
commit d98aa95a55254a1c220390cf7ae389e68ea1f2c0 Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Mar 2 22:44:26 2014 +0100
firewall: rules.pl: Replace some hardcoded chain names.
commit 7bb66417fa6908750cf083e90805d7e498ff161e Merge: 1c3044d cbc492f Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Mar 2 22:38:09 2014 +0100
Merge branch 'next' of ssh://git.ipfire.org/pub/git/ipfire-2.x into next
commit 1c3044d72c4097227a63754c7673c485320230d2 Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Mar 2 22:35:27 2014 +0100
firewall: Resurrect port forwardings with different external ports.
commit 292cad90f72fa27cbd8417c89a75097d8cec6e3b Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Mar 2 20:48:58 2014 +0100
firewall: Telnet uses TCP
commit 0e53d8a991af6cfb1b2982c20a663a5aa0fedc84 Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Mar 2 20:40:00 2014 +0100
firewall: Make OpenVPN access also possible when INPUT policy is REJECT.
commit 6e87f0aa53e12c4849ae36ec6c11f718b9d297f0 Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Mar 2 20:37:44 2014 +0100
firewall: Allow accessing port forwardings from internal networks.
commit cbc492f516c0dc8077b2e41f336776aca552e256 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sun Mar 2 19:44:26 2014 +0100
apache2: update to 2.2.26.
commit 239f8188e22bec5ea0820dd0e566fc8dcbd3e3c1 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sun Mar 2 19:39:42 2014 +0100
rootfile updates.
commit 8f4f4634df1057e99b35a127ccb22a343d1f2274 Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Mar 2 18:23:28 2014 +0100
firewall: rules.pl: Refactored entire script.
commit b05ec50ac97ef1d29190aab983284d2e1444ddda Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Mar 1 20:20:56 2014 +0100
firewall: rules.pl: Cleanup time constraints generation.
commit 6178953be5c93975c069314cfe3b20cd2d684746 Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Mar 1 19:54:14 2014 +0100
firewall: rules.pl: Cleanup rule generation.
Various perl coding errors that have been suppressed by "no warnings uninitialized" have been fixed and lots of helper variables have been introduced to make it much more clearer what the code is actually doing.
commit a2b3eba9f5a16e8a7042f6e2029c377db5da7e9a Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Mar 1 18:23:52 2014 +0100
general-functions.pl: Fix wrong perl syntax.
commit 1f9e7b53b74a139cf10a95c40995f887cfb24407 Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Mar 1 18:18:40 2014 +0100
firewall: rules.pl: Remove $command and introduce $IPTABLES.
commit 8531b94ae07f0f9d6897d2a03f5cf713131b2b13 Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Mar 1 18:07:39 2014 +0100
firewall: rules.pl: Remove command line args parsing and rest from old debugging mode.
commit 68d1eb101713a381788a2f566156131c91095275 Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Mar 1 18:03:58 2014 +0100
firewall: rules.pl: Introduce a more slink debugging mode.
commit 97ab0569bd6d7a421771175fa75bf064826cc3c1 Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Mar 1 17:54:22 2014 +0100
firewall: rules.pl: Fix some coding style.
commit b57edbd8ecc9ee86f3a4f9df4608d962add492b2 Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Mar 1 17:49:22 2014 +0100
firewall: rules.pl: Remove totally bloated debug mode.
commit 13585cc922d6836d2a908ff4a9f0a7024b086876 Merge: 5c3de12 d0ff84a Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Mar 1 16:59:32 2014 +0100
Merge branch 'next' of ssh://git.ipfire.org/pub/git/ipfire-2.x into next
commit 5c3de120aabfaf150aa7303c4c3c92e3072da809 Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Mar 1 16:51:03 2014 +0100
openvpnctrl: Allow ICMP error messages to pass the transfer net.
commit a0a5c14f8525a2885e985b56d8ac360358b4c726 Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Mar 1 16:44:05 2014 +0100
firewall: Make sure that only packets that go through the tunnel are passing OVPNBLOCK.
commit 2513ae737d195c220aa82f08945c67ba6fdb6c1e Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Mar 1 16:04:01 2014 +0100
firewall: Allow access to the entire GREEN/BLUE/ORANGE subnets.
This includes the firewall itself as well.
commit d0ff84a67542250eac49661ff97dfaf1c6181b1c Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sat Mar 1 16:01:11 2014 +0100
red: change mac address of nas0 device.
Traverse Technology has reported that ppp over atm-bridge is not working because there is a bogus mac address at the virtual nas0 device.
commit bb3834231ec78a2d7b0bc4201906467c47ea7aa4 Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Mar 1 15:02:42 2014 +0100
firewall: Sort order in which chains are initialized.
This has been some real trouble because multiple rules could not be properly inserted into the rule chains in the kernel because the chains did not exist, yet.
commit 60fb533157f92fdfe630fd8e76d2ca5f4644ad5d Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Mar 1 15:01:58 2014 +0100
firewall: rules.pl: Don't reload custom firewall rules here.
commit 326a764de66971d2c78d2e45225d8985ca4ac3be Author: Alf HÞgemark alf@i100.no Date: Sat Mar 1 14:32:52 2014 +0100
firewalllog*.cgi and country.cgi: Use language strings, and align graphs
Put the piechart for firewalllog* in the center of the page horisontally, this looks visually better. Add language string for count and details submit button.
Add language strings for country.cgi. Make html validate for country.cgi.
commit 1db04adbef997af2fba8356ef14e31db252a5cc2 Merge: 3e5e8a4 c6f9675 Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Mar 1 14:19:26 2014 +0100
Merge branch 'next' of ssh://git.ipfire.org/pub/git/ipfire-2.x into next
commit c6f96750ba3131a58f3cd998f73b5c1ad9bc903c Author: Arne Fitzenreiter arne_f@ipfire.org Date: Fri Feb 28 16:09:45 2014 +0100
ffmpeg: prevent executable stack.
commit 26685b07425ed4090ff7ba66f37adcccc77ae298 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Fri Feb 28 16:09:04 2014 +0100
libmad: prevent executable stack.
commit 82a4a102f3eaa4d1d706a654cb940596714871d2 Merge: 6887597 800077a Author: Arne Fitzenreiter arne_f@ipfire.org Date: Fri Feb 28 07:04:45 2014 +0100
Merge branch 'next' of git.ipfire.org:/pub/git/ipfire-2.x into next
commit 6887597c0465fb7ae3bbc1bb812151e6dd2eb7a7 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Fri Feb 28 07:02:14 2014 +0100
kernel: enable rts5139 driver.
commit 3e5e8a4a88727c3ab3871fa683b97beb0e307684 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Feb 27 20:53:25 2014 +0100
firewall: Fix firewall policy table if only RED, GREEN + BLUE are present.
commit 800077a68916409bd0aa3b5a240bd9f70ec27655 Author: Alexander Marx alexander.marx@ipfire.org Date: Thu Feb 27 13:38:40 2014 +0100
Firewall: Skip rules on boot when red has no ip
commit 5a7491ffd6023019d605aa773c1f6d8e3fb2ff17 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Feb 27 19:39:18 2014 +0100
QoS: Actually accept subnets everywhere.
commit 5eee5a607e213c25b350926c5234d2230cfc6e29 Author: Alexander Marx alexander.marx@ipfire.org Date: Wed Feb 26 16:07:02 2014 +0100
QOS: IP-Addresses can now be simple IP-Address or IP-Address and subnet
commit b18dba57de09607a047c75a5a704c48c060b7c3c Merge: 015e243 e06986e Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Feb 27 13:37:53 2014 +0100
Merge remote-tracking branch 'alfh/feature_graph_constant_color' into next
commit 015e243b0dba4fb493fc92068eea3e97f37d3a0c Merge: df6b9eb 480f354 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Feb 27 13:36:38 2014 +0100
Merge remote-tracking branch 'alfh/bugfix_openbox_center' into next
commit df6b9ebfbc36dd14de9159af1fbeab963c6dd7c9 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Feb 27 13:32:13 2014 +0100
openvpn: Provide a basic set of configuration settings.
These are the defaults as in the CGI script, but when you don't set up the roadwarrior server, the configuration file remains empty and the openvpnctrl binary will end itself because it cannot read a proper configuration.
commit c9cd26f2000a0f2218defca31faf6652740f9617 Merge: 55a5bca 906d293 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Feb 27 13:14:02 2014 +0100
Merge branch 'next' of ssh://git.ipfire.org/pub/git/ipfire-2.x into next
commit 906d293b05874db62532b35b10e3fe2b8784c361 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Thu Feb 27 12:46:14 2014 +0100
flash-images: work around a pandaboard uboot bug.
uboot does not find the kernel if it was copied to late to the fat partition.
commit b3aa7a123136f35392cea2d37c91ffce1f416094 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Thu Feb 27 08:22:11 2014 +0100
ntp: wait only if wpa_supplicant is running.
commit 55a5bcae74bfd12cd5610508e4cd77d08970399e Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Feb 26 20:03:32 2014 +0100
firewall: Call firewallctrl with full path.
commit a8d1d049c6b152b5dc8aa3184abfcaa46203ee8f Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Feb 26 20:02:24 2014 +0100
Revert "Firewall: Fix errormessages on rulecreation when red has no IP"
This reverts commit f942937c29ca76a7f153fc16ea13157eb4cf05cc.
This completely destroys external access rules and is therefore reverted.
commit e06986e85347213f20c48df8cdaf9c9eeb0b2359 Author: Alf HÞgemark alf@i100.no Date: Sat Feb 22 18:05:26 2014 +0100
qos and process graphs: avoid random colors
For the graphs for qos classes, and for process count and memory usage, the colors change on each page reload, since the colors are currently totally random.
This change uses defined color indexes, 15 different ones, that should be enough for qos at least, and is enough for processes on my setup. This makes the colors consistent between page loads, so it makes it easier to monitor changes.
Perhaps one should define 30 different colors meant to be used for graphing, then one could avoid random colors also for the sensor graphs, and make it less likely to get color collision for the process graphs as well. Defining 30 such colors is not part of this change.
commit 480f354d894e212e9dd6f66936c2ca592e1c549b Author: Alf HÞgemark alf@i100.no Date: Wed Feb 26 18:37:57 2014 +0100
ipfire theme: Use div align for center
Revert change to make openbox produce validating html, when center alignment for box is wanted.
I have not been able to find css solution for properly aligning the div horisontally.
commit 329e9c465ad41fd102ab5a59169e6ac569da7edf Author: Arne Fitzenreiter arne_f@ipfire.org Date: Wed Feb 26 18:06:49 2014 +0100
kernel: enable cgroups and fix some accounting settings.
commit ce81f1eb3ebeb2169a0781b7dcf177796226e463 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Wed Feb 26 18:00:44 2014 +0100
kernel: enable pci modules in arm multiarch kernel.
commit adce3f96fc5c0b817d2742eed6065706aef9e210 Merge: 78f10ea 69776cc Author: Arne Fitzenreiter arne_f@ipfire.org Date: Wed Feb 26 17:59:53 2014 +0100
Merge branch 'next' of ssh://git.ipfire.org/pub/git/ipfire-2.x into next
commit 69776cc42fdf9f77307e4ff7c58d5a5360991dd4 Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Feb 26 15:01:29 2014 +0100
apache: Update cipher suite that is used for the web user interface.
Taken from here with exception of RC4. https://wiki.mozilla.org/Security/Server_Side_TLS#Apache
commit 78f10eafe07b317f784d7e41487645672681109b Author: Arne Fitzenreiter arne_f@ipfire.org Date: Wed Feb 26 09:37:12 2014 +0100
strongswan: no padlock on arm.
commit c101827318705aca4ffc9ae955d921f3b92d98b4 Author: Alf HÞgemark alf@i100.no Date: Sat Feb 22 17:47:12 2014 +0100
firewalllogs*.dat: Reduce amount of code to set row bgcolor
Replace 10 if statements with duplicated code for print and setting background color by using a variable and one if statement.
commit 25bd6edaaf0158ece48f4f3732ff8933bc188028 Merge: f2b8668 c010871 Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Feb 25 22:02:34 2014 +0100
Merge remote-tracking branch 'alfh/feature_html_validating' into next
commit f2b8668fc8d3590e426d716068b3b59f0f58a3a1 Merge: 50294f9 be7534e Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Feb 25 22:01:34 2014 +0100
Merge remote-tracking branch 'alfh/feature_qos_description' into next
commit 50294f93c21d7a8c9bad7bfde953856d45040999 Merge: 4e7c311 8b40eca Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Feb 25 22:01:14 2014 +0100
Merge remote-tracking branch 'alfh/feature_htmlclean_removefont' into next
commit 4e7c3114cade2f653d703d8a64db7bc4f15f18eb Author: Erik Kapfer erik.kapfer@ipfire.org Date: Sat Feb 22 08:04:24 2014 +0100
index.cgi: Add /red/local-ipaddress query.
Fixes# 10480. Added if loop for local-ipaddress query.
commit 52ecb188bcc2fd922fca816f80b6db609d89002a Merge: 66f6b27 a7c5afa Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Feb 25 12:23:33 2014 +0100
Merge branch 'next' of ssh://git.ipfire.org/pub/git/ipfire-2.x into next
commit 66f6b279b0622aa2244ace040bdb8848831d06e0 Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Feb 25 12:23:09 2014 +0100
Reload all firewall rules when /etc/init.d/firewall reload is executed.
commit a7c5afa453e30622de900bcac55fada19e470faa Author: Arne Fitzenreiter arne_f@ipfire.org Date: Mon Feb 24 22:25:15 2014 +0100
kernel: update to 3.10.32.
commit 22fd89c656d3a36a881a1ed2a02a544b91876e47 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Feb 24 21:36:15 2014 +0100
sshd: Fix warning that oom_adj is deprecated.
Also make startup faster.
commit f942937c29ca76a7f153fc16ea13157eb4cf05cc Author: Alexander Marx alexander.marx@ipfire.org Date: Mon Feb 24 14:11:02 2014 +0100
Firewall: Fix errormessages on rulecreation when red has no IP
commit 46a6d6c7fcf5037bcb57ca2d1c6508b8d702ffed Author: Alexander Marx alexander.marx@ipfire.org Date: Mon Feb 24 15:00:40 2014 +0100
Firewall: fix error when editing a rule and changing remark with invalid chars the rule was destroyed
commit 97bf45e51628acbe7129b49d84dd4560dda14c13 Author: Alexander Marx alexander.marx@ipfire.org Date: Mon Feb 24 16:03:10 2014 +0100
Firewall: delete -i red0 from DNAT rules
commit ec56a5393fd698a98f4549918c95a52daae5c41f Author: Alexander Marx alexander.marx@ipfire.org Date: Mon Feb 24 16:20:21 2014 +0100
Firewall: fixed padding-right of lastrule table in ruleoverview
commit 585df65af1a0af6c7c263b5dd476b00508774c44 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Feb 24 19:37:20 2014 +0100
Fix relocating NTP binaries.
commit 525204e00fc28fa3fe9971c4fb31c61279b10bbb Author: Alexander Marx amarx@ipfire.org Date: Mon Feb 24 11:48:41 2014 +0100
Firewall: modified DNAT and SNAT rulecreation
commit 37013b3a47523e8fa3317e1ef20340c27a15f451 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Sun Feb 23 22:05:57 2014 +0100
Add missing default values for firewall options of the new firewall.
The new firewall uses some new options which can be configured on the optionsfw page in the WUI. In the past these settings where missing on updated systems.
commit 0a79ec45053014034d3ec947d625463ebdf956db Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sun Feb 23 18:28:34 2014 +0100
ntp: check/wait for onlineconnection.
commit c010871ab16111a57d518406c188e43837799600 Author: Alf HÞgemark alf@i100.no Date: Sat Feb 22 15:23:39 2014 +0100
index.cgi: Make html valid, and improve dialup and vpn display
Make the html validate. One part of the changes is to move style from using deprecated attributes to using style attribute on tag. The other part is to make sure that tables, rows and cells are properly closed and nested.
Use a table for showing output from the dialctrl script.
commit 429c1a3fc9b169f4fe26c163129b907ed473dbe1 Author: Alf HÞgemark alf@i100.no Date: Sat Feb 22 12:38:41 2014 +0100
connections.cgi: Make the html pass html validation
commit d7fe5d797070741cf0c211b65305861dd4f28071 Author: Alf HÞgemark alf@i100.no Date: Sat Feb 22 12:03:35 2014 +0100
aliases.cgi: Make the html pass html validation
commit 0f43165084d0e9ee74c7f8b06fafb997ca37fd39 Author: Alf HÞgemark alf@i100.no Date: Sat Feb 22 12:14:41 2014 +0100
ipfire theme: Fix align on div, and fix javascript tag
Remove align attribute on div for openbox, rather use style attribute with text-align, since align attribute causes html validation warnings, since it is deprecated.
Remove deprecated and useless attribute on javascript tag.
commit 8b40eca59ec98f19544e68342db7ee24d5983aa6 Author: Alf HÞgemark alf@i100.no Date: Sat Feb 22 11:59:55 2014 +0100
cgi-bin: Remove font tags with no effect, and style tags
The font tag is deprecated, so clean up html by removing font tags that have no effect.
For font tags that have an effect, move the styling to the tag controlling the text output.
The aim is to get one step further towards validating html.
commit be7534e3fa84649724195a452404155044ed30fb Author: Alf HÞgemark alf@i100.no Date: Sat Feb 22 07:07:57 2014 +0100
qos.cgi: Show class description in listing, and graph description
When listing the defined qos classes when qos.cgi is initially displayed, include the description of the class.
Add upload heading for red graph and download graph for imq graph, since it is not obvious what the graphs means.
commit 582fa1555574ac0b6abc0a4daee906d1a9a091ef Merge: 27b2adb fffb777 Author: Michael Tremer michael.tremer@ipfire.org Date: Fri Feb 21 11:56:52 2014 +0100
Merge branch 'next' of ssh://git.ipfire.org/pub/git/ipfire-2.x into next
commit 27b2adbf4f962fce13d5f66bc55dae2c86aeb685 Author: Michael Tremer michael.tremer@ipfire.org Date: Fri Feb 21 11:54:14 2014 +0100
ntp: Update to 4.2.6p5.
commit c2f7250b231494ad2bbfd24c5d40cb08285e131d Author: Michael Tremer michael.tremer@ipfire.org Date: Fri Feb 21 11:35:05 2014 +0100
firewall: Remove even more redundant rules.
commit fffb777ee6f9c62f29966677045a6bdc705aece0 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Fri Feb 21 09:48:33 2014 +0100
Intel-lan: updated e1000 and igb vendor driver.
igb v5.0.6 and e1000e v2.5.4
commit 1b8327f50e2d4daf7860bc39a864c1bdeea0a4ae Author: Arne Fitzenreiter arne_f@ipfire.org Date: Thu Feb 20 23:37:22 2014 +0100
kernel: update to 3.10.31.
commit cc21b588df77bfc807720c1456f901614e98e382 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Feb 20 13:03:28 2014 +0100
firewall: Remove rule that allows access to everything.
commit bcf1a62476de2dc720426aafe1e893f06608b9d5 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Feb 20 13:01:48 2014 +0100
firewall: Fix proper check for BLUE and ORANGE devices.
commit 29201ca84b722e08aaaf6b6dee0b622bf393f143 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Feb 20 13:01:36 2014 +0100
firewall: Remove redundant rule.
commit 317638e7534c995fd3866467fab17b057e28f76a Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Feb 20 10:55:08 2014 +0100
index.cgi: Change display of DNS servers.
Add missing colon and put them into one column in the table.
commit 5e1ee0e6e688da9623c27e27574395fefe8a33e3 Merge: 2f65e28 f8aa067 Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Feb 19 20:49:38 2014 +0100
Merge remote-tracking branch 'alfh/bugfix_htmlclean' into next
commit 2f65e28425ca2a446cfb1ab511ae1e1546a4031c Merge: 3fb3a3b a636a76 Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Feb 19 20:48:12 2014 +0100
Merge remote-tracking branch 'alfh/bugfix_missing_swapvisibility' into next
commit 3fb3a3b02188ac7e74bbbb882083f6aeba1923f0 Merge: 1271a8b db30961 Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Feb 19 20:47:54 2014 +0100
Merge remote-tracking branch 'alfh/bugfix_menu_touch' into next
commit 1271a8b45eb8ed3970beabba33fd4b0519db3565 Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Feb 19 20:47:12 2014 +0100
core76: Add update accelerator script to updater.
commit bbb3a931fa3b11a0d2374595cbe0d1c981e9b5e4 Merge: bc05155 1235b1f Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Feb 19 20:46:21 2014 +0100
Merge remote-tracking branch 'alfh/feature_updxlrator' into next
commit f8aa06792fde9b29e0c81c1ce2fb4490e9b645a8 Author: Alf HÞgemark alf@i100.no Date: Wed Feb 19 18:31:02 2014 +0100
cgi-bin: Add title attribute to input type image where missing
Almost all of <input type="image"... has both an alt and a title attribute, but some are missing title, and when the icon is not very clear, it makes it harder to understand what the icon does. By adding title, the browser displays text when mouse pointer is over the icon.
Also add missing quotes for alt and title attributes where needed.
commit a636a76016fe214e840cce8856a4fc8a74fba8a7 Author: Alf HÞgemark alf@i100.no Date: Wed Feb 19 18:05:55 2014 +0100
ipfire theme: Add missing swapVisibility javascript function
qos.cgi and media.cgi depend on swapVisibility function, this is defined in each theme, but was missing from the new theme.
Add the function, and implement it using jquery, since jquery is always present in the new theme.
commit db3096173d9118718c6191c48f581f1c0076dc2a Author: Alf HÞgemark alf@i100.no Date: Wed Feb 19 17:30:49 2014 +0100
webgui menus: Make top menu item clickable on mobile safari
The menus in the new default theme does not work properly on ipad and I guess other devices using mobile safari.
The reason is that <a> tags without href is not marked as clickable by ios, and therefore no css hover effect is applied.
The fix is either to add a href="#" attribute or a onclick="return true;" atribute on the <a> tag. I prefer the href solution, since it is a no javascript solution.
commit 153cf6406ccff186696926d3ad84103a4b496ba8 Author: Alf HÞgemark alf@i100.no Date: Tue Feb 18 18:48:57 2014 +0100
cgi-bin: Use readonly="readonly" attribute on html input elements
The proper way to mark readonly is to use readonly="readonly", not readonly="true", like it was done some places.
commit bc05155ac099925796a862e1a1cd1b50ff9e6b1d Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Feb 18 15:16:08 2014 +0100
strongswan: Update to 5.1.2rc1.
commit b21d47c804407458aee20b5609ca99ec63f710f8 Author: Ersan Yildirim yakazan@gmail.com Date: Mon Feb 17 17:24:14 2014 +0100
firewall: Import Turkish translation.
commit e670f6250e8233557a4dbe31a36121c32add8204 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Feb 17 16:40:14 2014 +0100
Update translations.
commit 5ee7500e597d88199b82195f1301712f9179466b Merge: 6d3c825 631b67b Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Feb 17 16:33:38 2014 +0100
Merge remote-tracking branch 'alfh/feature_htmlcleanup' into next
Conflicts: html/cgi-bin/logs.cgi/firewalllogip.dat html/cgi-bin/logs.cgi/firewalllogport.dat html/cgi-bin/media.cgi
commit 6d3c8250fe1e6ef297d01bcc7a19672adfff70e6 Merge: bd4db47 491957a Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Feb 17 16:28:23 2014 +0100
Merge remote-tracking branch 'alfh/feature_langfixes' into next
commit bd4db4708547cafea8ca2a13d35b6b15bd3b40fa Merge: b631481 44bd254 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Feb 17 16:24:41 2014 +0100
Merge remote-tracking branch 'alfh/feature_firewalllog_first_last' into next
commit b631481bc5cbe022c7994fc110699affadca1243 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Feb 17 16:17:45 2014 +0100
Revert "perl-PDF-Create: New package"
This reverts commit e7f5c0465ba009549aeb3c61627e26984db576f8.
commit 4c9ea85490de5459960f251b2db4dc3fc664477a Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sun Feb 16 08:47:31 2014 +0100
Set version to 2.15 beta2.
commit 631b67b7cd4c5fa00417cbe9e843892cae6f0ff6 Author: Alf HÞgemark alf@i100.no Date: Sat Feb 15 16:54:38 2014 +0100
cgi-bin: HTML cleanup, add quotes for attribute values
commit 2c01f467d976dddfab89841946ff419802a70947 Author: Alf HÞgemark alf@i100.no Date: Tue Feb 11 19:42:35 2014 +0100
cgi-bin and themes: Remove language attribute on script tag
commit b740cdd7bfe402e6f1a98bb3936d3a9f33546492 Author: Alf HÞgemark alf@i100.no Date: Tue Feb 11 19:06:32 2014 +0100
logs.cgi: htmlcleanup, change html tags from uppercase to lowercase
commit 6161430626905c7bf37a5236a7163aacd86306ba Author: Alf HÞgemark alf@i100.no Date: Sun Feb 9 12:45:53 2014 +0100
pppsetup.cgi: htmlcleanup, change html tags from uppercase to lowercase
commit 52ee27b200e19a8a11a8b2a8c83f18e31a517b55 Author: Alf HÞgemark alf@i100.no Date: Sun Feb 9 12:45:31 2014 +0100
iptables.cgi: htmlcleanup, change html tags from uppercase to lowercase
commit d2d0d6313948680e16469ff318fc69b9a6384cc5 Author: Alf HÞgemark alf@i100.no Date: Sun Feb 9 12:44:58 2014 +0100
gui.cgi: htmlcleanup, change html tags from uppercase to lowercase
commit df261521358ec0e4b7e2b8ee02c0b7e5c6ee49b7 Author: Alf HÞgemark alf@i100.no Date: Sun Feb 9 12:23:50 2014 +0100
services.cgi: htmlcleanup, change html tags from uppercase to lowercase
commit c1a07263bd37f94aa15b313e3f825af9e67630b4 Author: Alf HÞgemark alf@i100.no Date: Sun Feb 9 12:23:06 2014 +0100
remote.cgi: htmlcleanup, change html tags from uppercase to lowercase
commit 71cc3202c058fa368adc93b2453741ecebb9cc85 Author: Alf HÞgemark alf@i100.no Date: Sun Feb 9 12:22:46 2014 +0100
pppsetup.cgi: htmlcleanup, change html tags from uppercase to lowercase
commit 973f711ad1f4c97906ed9f4dae4db37e31de8e03 Author: Alf HÞgemark alf@i100.no Date: Sun Feb 9 12:20:35 2014 +0100
ovpnmain.cgi: htmlcleanup, change html tags from uppercase to lowercase
commit 56914f126f4fca922ae297fc833f4ac68e9f820a Author: Alf HÞgemark alf@i100.no Date: Sun Feb 9 12:17:35 2014 +0100
fireinfo.cgi: htmlcleanup, change html tags from uppercase to lowercase
commit e6d8a42109651b5054eec7a9b613f732bf8d323f Author: Alf HÞgemark alf@i100.no Date: Sun Feb 9 11:54:56 2014 +0100
ids.cgi: htmlcleanup, change html tags from uppercase to lowercase
commit a4455e73a62c5795dd9f9aae605f0052815fb1a8 Author: Alf HÞgemark alf@i100.no Date: Sun Feb 9 11:51:34 2014 +0100
media.cgi: htmlcleanup, change <B> tag to <b>, and fix attribute quotation
commit 491957ac2d6dd770764d9e410cfc4309545a94f1 Author: Alf HÞgemark alf@i100.no Date: Sat Feb 15 15:43:56 2014 +0100
qos.cgi: Use Language string for legend in graph
commit 57426d2d2114f2b469b01ebd675d41ee77b39f6e Author: Alf HÞgemark alf@i100.no Date: Tue Feb 11 20:19:11 2014 +0100
firewalllog.dat: Use language string keys already defined
commit f702a98d69664aff36d93111ab521a8946e3a438 Author: Alf HÞgemark alf@i100.no Date: Tue Feb 11 20:11:10 2014 +0100
firewalllogport.dat: Use language string keys already defined
commit c42f809c90dadf9ca4cf3f0930b9c19bf3846467 Author: Alf HÞgemark alf@i100.no Date: Tue Feb 11 20:10:40 2014 +0100
firewalllogip.dat: Use language string keys already defined
commit 534943c67516c9288962fdf86e2ba5d6fa969a69 Author: Alf HÞgemark alf@i100.no Date: Tue Feb 11 20:10:03 2014 +0100
country.cgi: Use language string keys already defined
commit 1560bc6e1fd09349016115572b92a5902bf3da85 Author: Alf HÞgemark alf@i100.no Date: Sun Feb 9 11:19:58 2014 +0100
ovpnmain.cgi: Use language string keys already defined
commit 597005f5c6897c85b2c8174c6a94d4f3f0d14944 Author: Alf HÞgemark alf@i100.no Date: Sun Feb 9 11:19:19 2014 +0100
qos.cgi: Use language string keys already defined
commit 11231162077b948e6e375ba665d9891b25947bf7 Author: Alf HÞgemark alf@i100.no Date: Sun Feb 9 11:03:04 2014 +0100
media.cgi: Use language string keys already defined
commit 2d26c5755f207c538bd63198fb8c7c62c731d140 Author: Alf HÞgemark alf@i100.no Date: Sun Feb 9 10:45:55 2014 +0100
index.cgi: Use language string keys already defined
commit 44bd254c674be8324affca02bd29674371c36f16 Author: Alf HÞgemark alf@i100.no Date: Sat Feb 15 15:16:06 2014 +0100
firewalllog.dat: Use language string for First and Last text
commit 10dfb491b13b4e11460cd10f3bbca21016002d20 Merge: a1219d9 e3cbe60 Author: Alf HÞgemark alf@i100.no Date: Sat Feb 15 15:13:16 2014 +0100
Merge branch 'next' of https://github.com/ipfire/ipfire-2.x into feature_firewalllog_first_last
commit 1235b1f144bc93676acf3e8703bb308a3c60629e Author: Alf HÞgemark alf@i100.no Date: Sat Feb 15 10:01:51 2014 +0100
updxlrator: Add support for tar.xz files
commit 5e4262245e8166717b7d44dedebbf1c903d03181 Author: Alf HÞgemark alf@i100.no Date: Wed Feb 5 20:02:44 2014 +0100
updxlrator: Handle colon in filenames in updatexlrator.cgi
The updatexlrator.cgi is assuming that colon is not part of any filenames downloaded by updxlrator. Fix this by fixing regular expression used for listing pending download files, and by fixing regular expression used to listing files in maintenance view.
The fix for listing in maintenance is not very nice, I just use ":separator:" as field separator instead of just ":", which was used earlier. This should make it very unlikely to collide with a part of the filename.
Also make the files in download be sorted using lower case, like it is done for files in the vendor path.
The problem can be reproduced by downloading http://mirror.us.leaseweb.net/archlinux/community/os/x86_64/ docker-1:0.7.6-1-x86_64.pkg.tar.xz, after pkg.tar.xz files support has been added to updxlrator.
commit 77fa792f93c8363d8199c02ec0b752639fe3ecec Author: Alf HÞgemark alf@i100.no Date: Wed Feb 5 19:03:35 2014 +0100
updxlrator: Add support for ArchLinux pkg.tar.xz files
Add support for caching package files for ArchLinux in updxlrator, by adding pkg.tar.xz to the regular expression for Linux vendor.
commit a1219d9600a5c17255e5c656e10860ccddc49c6f Author: Alf HÞgemark alf@i100.no Date: Wed Feb 12 21:26:26 2014 +0100
firewalllog.dat: Use language string for First and Last links
commit f69446d2fa5fc519c223faeb9506842e191e46ca Author: Alf HÞgemark alf@i100.no Date: Sat Feb 8 08:12:53 2014 +0100
firewalllog.dat: Add First and Last links, for fast navigation in log lines
Add two links for navigating in log pages, one for going to the first page and one for goint to the last page.
Introduce variable which points to the first log line to display on the last possible page.
The commit contains hardcoded text for Last and First, and I am also uncertain how spaces between links should be handled. So this should be improved based on feedback.
-----------------------------------------------------------------------
Summary of changes: config/avahi/avahi | 2 +- config/backup/backup.pl | 64 +- config/backup/exclude | 1 + config/backup/include | 9 +- config/backup/includes/mysql | 2 + config/cfgroot/ethernet-vlans | 18 +- config/cfgroot/general-functions.pl | 262 +- config/cfgroot/graphs.pl | 95 +- config/cfgroot/header.pl | 55 +- config/cfgroot/p2protocols | 9 - config/collectd/collectd.conf | 6 +- config/cron/crontab | 7 +- config/etc/fstab | 5 - config/etc/inittab | 2 +- config/etc/modprobe.d/{cfg80211 => cfg80211.conf} | 0 .../etc/modprobe.d/{pcspeaker => pcspeaker.conf} | 0 config/etc/sysctl.conf | 6 + config/firewall/convert-dmz | 202 + config/firewall/convert-outgoingfw | 704 ++ config/firewall/convert-portfw | 176 + config/firewall/convert-xtaccess | 152 + config/firewall/firewall-lib.pl | 527 ++ config/firewall/firewall-policy | 150 + config/firewall/p2protocols | 9 + config/firewall/rules.pl | 673 ++ config/fwhosts/customservices | 34 + config/fwhosts/icmp-types | 36 + config/guardian/guardian.pl | 6 +- config/hostapd/config | 7 + config/httpd/vhosts.d/ipfire-interface-ssl.conf | 3 +- .../kernel/kernel.config.armv5tel-ipfire-kirkwood | 3649 ++++++---- config/kernel/kernel.config.armv5tel-ipfire-multi | 5573 +++++++++++++++ config/kernel/kernel.config.armv5tel-ipfire-omap | 3582 ---------- config/kernel/kernel.config.armv5tel-ipfire-rpi | 2201 ++++-- config/kernel/kernel.config.i586-ipfire | 3927 +++++++---- config/kernel/kernel.config.i586-ipfire-pae | 3948 +++++++---- config/kernel/kernel.config.i586-ipfire-xen | 3749 ---------- config/menu/10-system.menu | 6 + config/menu/20-status.menu | 6 + config/menu/40-services.menu | 2 +- config/menu/50-firewall.menu | 64 +- config/outgoingfw/defaultservices | 34 - config/outgoingfw/outgoingfw.pl | 286 - config/ovpn/settings | 6 + config/rootfiles/common/Net_SSLeay | 2 + config/rootfiles/common/apache2 | 16 +- config/rootfiles/common/armv5tel/dracut | 7 +- config/rootfiles/common/armv5tel/glibc | 4 +- config/rootfiles/common/armv5tel/initscripts | 10 +- config/rootfiles/common/armv5tel/installer | 3 - config/rootfiles/common/armv5tel/linux | 6 +- config/rootfiles/common/armv5tel/linux-headers | 64 +- config/rootfiles/common/armv5tel/linux-kirkwood | 1540 +++-- config/rootfiles/common/armv5tel/linux-multi | 2433 +++++++ config/rootfiles/common/armv5tel/linux-omap | 1479 ---- config/rootfiles/common/armv5tel/linux-rpi | 851 ++- config/rootfiles/common/armv5tel/lm_sensors | 2 +- config/rootfiles/common/armv5tel/rpi-firmware | 7 +- config/rootfiles/common/armv5tel/u-boot | 14 +- config/rootfiles/common/armv5tel/util-linux | 223 +- config/rootfiles/common/as86 | 5 - config/rootfiles/common/compat-drivers | 2 - config/rootfiles/common/configroot | 57 +- config/rootfiles/common/cyrus-sasl | 92 +- config/rootfiles/common/dosfstools | 3 + config/rootfiles/common/dvb-firmwares | 1 + config/rootfiles/common/eject | 14 - config/rootfiles/common/fireinfo | 14 +- config/rootfiles/common/fstrim | 2 - config/rootfiles/common/i586/dracut | 3 +- config/rootfiles/common/i586/glibc | 4 +- config/rootfiles/common/i586/initscripts | 10 +- config/rootfiles/common/i586/linux | 1631 +++-- config/rootfiles/common/i586/linux-headers | 63 +- config/rootfiles/common/i586/lm_sensors | 2 +- config/rootfiles/common/i586/mISDN | 23 - config/rootfiles/common/i586/strongswan-padlock | 1 + config/rootfiles/common/i586/util-linux | 234 +- config/rootfiles/common/iptables | 53 +- config/rootfiles/common/jquery | 1 + config/rootfiles/common/kmod | 13 + config/rootfiles/common/libnl | 3 +- config/rootfiles/common/libusbx | 8 + config/rootfiles/common/libxml2 | 428 +- config/rootfiles/common/linux-firmware | 277 +- config/rootfiles/common/lzo | 8 + config/rootfiles/common/mbr | 2 - config/rootfiles/common/misc-progs | 6 +- config/rootfiles/common/module-init-tools | 21 - config/rootfiles/common/mpage | 9 + config/rootfiles/common/mysql | 280 - config/rootfiles/common/mysql-libs | 10 + config/rootfiles/common/ntp | 30 +- config/rootfiles/common/openssh | 2 + config/rootfiles/common/openssl | 1116 +-- config/rootfiles/common/openssl-compat | 2 + config/rootfiles/common/pakfire | 3 - config/rootfiles/common/paxctl | 2 + config/rootfiles/common/rng-tools | 4 + config/rootfiles/common/stage2 | 16 +- config/rootfiles/common/strongswan | 109 + config/rootfiles/common/sudo | 79 +- config/rootfiles/common/tzdata | 32 +- config/rootfiles/common/udev | 96 +- config/rootfiles/common/usb_modeswitch | 1 + config/rootfiles/common/usb_modeswitch_data | 22 +- config/rootfiles/common/usbutils | 13 +- config/rootfiles/common/vim | 2522 +++---- config/rootfiles/common/wget | 7 +- config/rootfiles/common/xz | 2 +- config/rootfiles/core/76/exclude | 20 + .../{oldcore/32 => core/76}/filelists/Net_SSLeay | 0 .../{oldcore/44 => core/76}/filelists/apache2 | 0 .../66 => core/76}/filelists/armv5tel/binutils | 0 .../66 => core/76}/filelists/armv5tel/dracut | 0 .../{oldcore/66 => core/76}/filelists/armv5tel/gcc | 0 .../66 => core/76}/filelists/armv5tel/glibc | 0 .../core/76/filelists/armv5tel/initscripts | 1 + .../76}/filelists/armv5tel/linux-kirkwood | 0 .../core/76/filelists/armv5tel/linux-multi | 1 + .../66 => core/76}/filelists/armv5tel/linux-rpi | 0 .../core/76/filelists/armv5tel/lm_sensors | 1 + .../66 => core/76}/filelists/armv5tel/rpi-firmware | 0 .../66 => core/76}/filelists/armv5tel/u-boot | 0 .../66 => core/76}/filelists/armv5tel/util-linux | 0 config/rootfiles/core/76/filelists/beep | 1 + .../{oldcore/66 => core/76}/filelists/bridge-utils | 0 .../{oldcore/66 => core/76}/filelists/coreutils | 0 .../{oldcore/36 => core/76}/filelists/cyrus-sasl | 0 .../{oldcore/38 => core/76}/filelists/dosfstools | 0 .../66 => core/76}/filelists/dvb-firmwares | 0 .../{oldcore/38 => core/76}/filelists/e2fsprogs | 0 config/rootfiles/core/76/filelists/files | 32 + .../{oldcore/44 => core/76}/filelists/fireinfo | 0 config/rootfiles/core/76/filelists/firewall | 14 + .../66 => core/76}/filelists/i586/binutils | 0 .../{oldcore/66 => core/76}/filelists/i586/dracut | 0 .../{oldcore/53 => core/76}/filelists/i586/gcc | 0 .../{oldcore/53 => core/76}/filelists/i586/glibc | 0 .../{oldcore/66 => core/76}/filelists/i586/grub | 0 .../rootfiles/core/76/filelists/i586/initscripts | 1 + .../{oldcore/66 => core/76}/filelists/i586/linux | 0 config/rootfiles/core/76/filelists/i586/lm_sensors | 1 + .../76}/filelists/i586/strongswan-padlock | 0 .../66 => core/76}/filelists/i586/util-linux | 0 .../{oldcore/28 => core/76}/filelists/iptables | 0 .../rootfiles/{oldcore/28 => core/76}/filelists/iw | 0 config/rootfiles/core/76/filelists/jquery | 1 + config/rootfiles/core/76/filelists/kmod | 1 + .../{oldcore/28 => core/76}/filelists/libnl | 0 config/rootfiles/core/76/filelists/libusbx | 1 + config/rootfiles/core/76/filelists/libxml2 | 1 + .../28 => core/76}/filelists/linux-firmware | 0 config/rootfiles/core/76/filelists/lzo | 1 + .../{oldcore/66 => core/76}/filelists/misc-progs | 0 config/rootfiles/core/76/filelists/mysql-libs | 1 + config/rootfiles/core/76/filelists/net-tools | 1 + config/rootfiles/core/76/filelists/ntp | 15 + .../{oldcore/36 => core/76}/filelists/openssh | 0 .../{oldcore/28 => core/76}/filelists/openssl | 0 config/rootfiles/core/76/filelists/openssl-compat | 1 + .../{oldcore/53 => core/76}/filelists/openvpn | 0 config/rootfiles/core/76/filelists/pakfire | 4 + config/rootfiles/core/76/filelists/paxctl | 1 + .../{oldcore/47 => core/76}/filelists/php | 0 config/rootfiles/core/76/filelists/rng-tools | 1 + .../{oldcore/66 => core/76}/filelists/setup | 0 .../{oldcore/72 => core/76}/filelists/strongswan | 0 .../{oldcore/54 => core/76}/filelists/tzdata | 0 .../{oldcore/28 => core/76}/filelists/udev | 0 .../34 => core/76}/filelists/usb_modeswitch | 0 .../44 => core/76}/filelists/usb_modeswitch_data | 0 .../{oldcore/66 => core/76}/filelists/usbutils | 0 .../{oldcore/44 => core/76}/filelists/vim | 0 .../{oldcore/66 => core/76}/filelists/wget | 0 .../28 => core/76}/filelists/wpa_supplicant | 0 .../rootfiles/{oldcore/38 => core/76}/filelists/xz | 0 config/rootfiles/core/{75 => 76}/meta | 0 config/rootfiles/core/76/update.sh | 522 ++ config/rootfiles/installer/eject | 1 - config/rootfiles/installer/libidn | 1 + config/rootfiles/installer/parted | 1 + config/rootfiles/oldcore/66/filelists/files | 1 - config/rootfiles/packages/armv5tel/vdr_dvbapi | 3 + config/rootfiles/packages/clamav | 8 +- config/rootfiles/packages/cups | 1496 ++-- config/rootfiles/packages/foomatic | 4077 ++++++++++- config/rootfiles/packages/git | 37 +- config/rootfiles/packages/gutenprint | 55 +- config/rootfiles/packages/i586/vdr_dvbapi | 4 + config/rootfiles/packages/iotop | 20 + config/rootfiles/packages/linux-pae | 1638 +++-- config/rootfiles/packages/linux-xen | 1946 ------ config/rootfiles/packages/mysql | 97 +- config/rootfiles/packages/nfs | 3 +- config/rootfiles/packages/perl-DBD-SQLite | 15 + config/rootfiles/packages/perl-DBI | 21 +- config/rootfiles/packages/perl-File-ReadBackwards | 5 + config/rootfiles/packages/sslh | 4 +- config/rootfiles/packages/vdr_eepg | 2 + config/rpi-firmware/config.txt | 1 - config/u-boot/boot.scr | Bin 290 -> 453 bytes config/u-boot/boot.script | 11 +- config/udev/90-hwrng.rules | 1 + config/udev/{blacklist => blacklist.conf} | 0 config/udev/udev.conf | 4 + config/updxlrator/updxlrator | 4 +- config/vdr/etc/setup.conf | 2 - config/vim/vimrc | 42 + config/w_scan/w_scan_start | 10 +- config/xen-image/README | 13 +- config/xen-image/ipfire.cfg | 2 +- config/xen-image/xen-image-maker.sh | 196 + doc/language_issues.de | 135 +- doc/language_issues.en | 132 +- doc/language_issues.es | 294 +- doc/language_issues.fr | 294 +- doc/language_issues.nl | 294 +- doc/language_issues.pl | 294 +- doc/language_issues.ru | 294 +- doc/language_issues.tr | 156 +- doc/language_missings | 929 +++ html/cgi-bin/aliases.cgi | 50 +- html/cgi-bin/atm-status.cgi | 23 + html/cgi-bin/backup.cgi | 6 +- html/cgi-bin/connections.cgi | 144 +- html/cgi-bin/connscheduler.cgi | 57 +- html/cgi-bin/country.cgi | 82 +- html/cgi-bin/credits.cgi | 6 +- html/cgi-bin/ddns.cgi | 53 +- html/cgi-bin/dhcp.cgi | 53 +- html/cgi-bin/dmzholes.cgi | 446 -- html/cgi-bin/dnsforward.cgi | 44 +- html/cgi-bin/{atm-status.cgi => entropy.cgi} | 94 +- html/cgi-bin/extrahd.cgi | 8 +- html/cgi-bin/fireinfo.cgi | 4 +- html/cgi-bin/firewall.cgi | 2860 ++++++++ html/cgi-bin/fwhosts.cgi | 2662 ++++++++ html/cgi-bin/{mdstat.cgi => gpl.cgi} | 64 +- html/cgi-bin/gui.cgi | 75 +- html/cgi-bin/hosts.cgi | 35 +- html/cgi-bin/ids.cgi | 50 +- html/cgi-bin/imspector.cgi | 2 +- html/cgi-bin/index.cgi | 679 +- html/cgi-bin/iptables.cgi | 14 +- html/cgi-bin/logs.cgi/firewalllog.dat | 58 +- html/cgi-bin/logs.cgi/firewalllogip.dat | 110 +- html/cgi-bin/logs.cgi/firewalllogport.dat | 99 +- html/cgi-bin/logs.cgi/log.dat | 18 +- html/cgi-bin/logs.cgi/proxylog.dat | 27 +- html/cgi-bin/logs.cgi/showrequestfromip.dat | 38 +- html/cgi-bin/logs.cgi/showrequestfromport.dat | 38 +- html/cgi-bin/logs.cgi/urlfilter.dat | 33 +- html/cgi-bin/mac.cgi | 10 +- html/cgi-bin/mdstat.cgi | 2 +- html/cgi-bin/media.cgi | 8 +- html/cgi-bin/netexternal.cgi | 4 +- html/cgi-bin/optionsfw.cgi | 155 +- html/cgi-bin/outgoingfw.cgi | 849 --- html/cgi-bin/outgoinggrp.cgi | 466 -- html/cgi-bin/ovpnmain.cgi | 467 +- html/cgi-bin/p2p-block.cgi | 154 + html/cgi-bin/pakfire.cgi | 18 +- html/cgi-bin/portfw.cgi | 1177 ---- html/cgi-bin/pppsetup.cgi | 10 +- html/cgi-bin/proxy.cgi | 8 +- html/cgi-bin/qos.cgi | 75 +- html/cgi-bin/remote.cgi | 9 +- html/cgi-bin/routing.cgi | 35 +- html/cgi-bin/samba.cgi | 30 +- html/cgi-bin/services.cgi | 75 +- html/cgi-bin/shutdown.cgi | 88 + html/cgi-bin/speed.cgi | 5 +- html/cgi-bin/time.cgi | 21 +- html/cgi-bin/tor.cgi | 8 +- html/cgi-bin/tripwire.cgi | 10 +- html/cgi-bin/updatexlrator.cgi | 9 +- html/cgi-bin/upnp.cgi | 15 +- html/cgi-bin/urlfilter.cgi | 4 +- html/cgi-bin/vpnmain.cgi | 667 +- html/cgi-bin/wakeonlan.cgi | 42 +- html/cgi-bin/wireless.cgi | 73 +- html/cgi-bin/wirelessclient.cgi | 24 +- html/cgi-bin/wlanap.cgi | 222 +- html/cgi-bin/xtaccess.cgi | 377 - html/html/include/jquery-1.9.1.min.js | 5 - html/html/index.cgi | 10 +- .../themes/{maniac => darkdos}/images/IPFire.png | Bin html/html/themes/darkdos/images/b1.gif | Bin 0 -> 2446 bytes html/html/themes/darkdos/images/b2.gif | Bin 0 -> 1124 bytes html/html/themes/darkdos/images/b3.gif | Bin 0 -> 839 bytes html/html/themes/darkdos/images/b4.gif | Bin 0 -> 839 bytes html/html/themes/{maniac => darkdos}/images/b5.gif | Bin html/html/themes/{maniac => darkdos}/images/b6.gif | Bin .../themes/{ipfire => darkdos}/images/spacer.gif | Bin html/html/themes/darkdos/include/colors.txt | 25 + .../{maniac => darkdos}/include/functions.pl | 14 +- .../themes/{ipfire => darkdos}/include/style.css | 79 +- .../themes/{ipfire => ipfire-legacy}/images/n1.gif | Bin .../themes/{ipfire => ipfire-legacy}/images/n2.gif | Bin .../themes/{ipfire => ipfire-legacy}/images/n3.gif | Bin .../themes/{ipfire => ipfire-legacy}/images/n4.gif | Bin .../themes/{ipfire => ipfire-legacy}/images/n5.gif | Bin .../themes/{ipfire => ipfire-legacy}/images/n6.gif | Bin .../{ipfire => ipfire-legacy}/images/spacer.gif | Bin .../{ipfire => ipfire-legacy}/include/colors.txt | 0 .../{ipfire => ipfire-legacy}/include/functions.pl | 14 +- .../{ipfire => ipfire-legacy}/include/style.css | 14 +- html/html/themes/ipfire/images/tux2.png | Bin 0 -> 9640 bytes .../themes/ipfire/include/css/style-rounded.css | 82 + html/html/themes/ipfire/include/css/style.css | 326 + html/html/themes/ipfire/include/functions.pl | 538 +- .../themes/ipfire/include/js/refreshInetInfo.js | 69 + html/html/themes/maniac/include/functions.pl | 16 +- langs/de/cgi-bin/de.pl | 305 +- langs/de/install/lang_de.c | 6 + langs/en/cgi-bin/en.pl | 312 +- langs/en/install/lang_en.c | 6 + langs/es/cgi-bin/es.pl | 6 +- langs/es/install/lang_es.c | 6 + langs/fr/cgi-bin/fr.pl | 4 +- langs/fr/install/lang_fr.c | 6 + langs/nl/cgi-bin/nl.pl | 4 +- langs/nl/install/lang_nl.c | 6 + langs/pl/cgi-bin/pl.pl | 4 +- langs/pl/install/lang_pl.c | 6 + langs/ru/cgi-bin/ru.pl | 4 +- langs/ru/install/lang_ru.c | 6 + langs/tr/cgi-bin/tr.pl | 440 +- langs/tr/install/lang_tr.c | 6 + lfs/Config | 2 +- lfs/Net_SSLeay | 9 +- lfs/apache2 | 11 +- lfs/avahi | 22 +- lfs/beep | 4 +- lfs/binutils | 8 +- lfs/bluetooth | 3 + lfs/bridge-utils | 2 + lfs/cdrom | 5 + lfs/clamav | 22 +- lfs/configroot | 76 +- lfs/cpufrequtils | 2 + lfs/cups | 20 +- lfs/cyrus-sasl | 3 +- lfs/dracut | 11 +- lfs/e1000e | 13 +- lfs/eject | 77 - lfs/fetchmail | 21 +- lfs/ffmpeg | 5 +- lfs/ffmpeg-libs | 2 +- lfs/fireinfo | 14 +- lfs/flash-images | 58 +- lfs/foomatic | 57 +- lfs/gcc | 3 + lfs/git | 13 +- lfs/glibc | 40 +- lfs/grub | 3 + lfs/guardian | 2 +- lfs/gutenprint | 7 +- lfs/hostapd | 12 +- lfs/igb | 15 +- lfs/imspector | 10 +- lfs/initrd | 4 +- lfs/initscripts | 15 +- lfs/{as86 => iotop} | 19 +- lfs/iptables | 40 +- lfs/iw | 6 +- lfs/{iw => jquery} | 16 +- lfs/keepalived | 3 +- lfs/{keepalived => kmod} | 39 +- lfs/libmad | 4 +- lfs/libnl | 11 +- lfs/{fstrim => libusbx} | 16 +- lfs/libxml2 | 6 +- lfs/linux | 183 +- lfs/linux-firmware | 11 +- lfs/linux-xen | 32 - lfs/linux2 | 252 - lfs/lm_sensors | 6 +- lfs/lzo | 4 +- lfs/mISDN | 4 +- lfs/memtest | 12 +- lfs/miniupnpd | 6 +- lfs/{beep => mpage} | 13 +- lfs/mysql | 11 +- lfs/net-tools | 4 +- lfs/nginx | 20 +- lfs/ntp | 25 +- lfs/openssh | 4 +- lfs/openssl | 69 +- lfs/{openssl => openssl-compat} | 32 +- lfs/openvmtools | 2 + lfs/pakfire | 1 - lfs/{iw => paxctl} | 15 +- lfs/{perl-DBI => perl-DBD-SQLite} | 14 +- lfs/perl-DBI | 4 +- lfs/{perl-DBI => perl-File-ReadBackwards} | 14 +- lfs/{mbr => rng-tools} | 13 +- lfs/rpi-firmware | 6 +- lfs/rsync | 8 +- lfs/samba | 8 +- lfs/sslh | 6 +- lfs/stage2 | 27 +- lfs/strongswan | 10 +- lfs/sudo | 18 +- lfs/tor | 6 +- lfs/transmission | 2 + lfs/tzdata | 34 +- lfs/u-boot | 58 +- lfs/udev | 57 +- lfs/usb-stick | 101 - lfs/usb_modeswitch | 6 +- lfs/usb_modeswitch_data | 6 +- lfs/usbutils | 16 +- lfs/util-linux | 19 +- lfs/vdr | 12 +- lfs/{hostapd => vdr_dvbapi} | 75 +- lfs/{transmission => vdr_eepg} | 49 +- lfs/vim | 27 +- lfs/w_scan | 6 +- lfs/wget | 23 +- lfs/wpa_supplicant | 6 +- lfs/xen-image | 147 +- lfs/xz | 8 +- make.sh | 167 +- src/initscripts/init.d/apache | 7 +- src/initscripts/init.d/collectd | 8 +- src/initscripts/init.d/firewall | 521 +- src/initscripts/init.d/firstsetup | 13 +- src/initscripts/init.d/hostapd | 5 +- src/initscripts/init.d/leds | 31 + src/initscripts/init.d/mountfs | 7 +- src/initscripts/init.d/mountkernfs | 9 +- src/initscripts/init.d/network | 38 - src/initscripts/init.d/network-vlans | 14 +- src/initscripts/init.d/networking/red | 8 + src/initscripts/init.d/ntp | 26 +- src/initscripts/init.d/partresize | 17 +- src/initscripts/init.d/random | 4 +- src/initscripts/init.d/rngd | 59 + src/initscripts/init.d/sshd | 39 +- src/initscripts/init.d/sslh | 23 +- src/initscripts/init.d/tor | 7 + src/initscripts/init.d/udev | 26 +- src/initscripts/init.d/udev_retry | 2 +- src/install+setup/install/main.c | 13 +- src/install+setup/install/probenic.sh | 6 + src/install+setup/libsmooth/libsmooth.h | 2 +- src/install+setup/libsmooth/netstuff.c | 19 +- src/install+setup/setup/networking.c | 2 + src/misc-progs/Makefile | 19 +- src/misc-progs/backupctrl.c | 39 +- src/misc-progs/fireinfoctrl.c | 46 +- .../{outgoingfwctrl.c => firewallctrl.c} | 17 +- src/misc-progs/getconntracktable.c | 62 +- src/misc-progs/iowrap.c | 88 +- src/misc-progs/ipfiredeath.c | 50 +- src/misc-progs/ipfirerebirth.c | 50 +- src/misc-progs/ipfirereboot.c | 234 +- src/misc-progs/ipsecctrl.c | 18 +- src/misc-progs/netutil.h | 48 + src/misc-progs/openvpnctrl.c | 218 +- src/misc-progs/pakfire.c | 14 +- src/misc-progs/rebuildhosts.c | 2 + src/misc-progs/setaliases.c | 6 +- src/misc-progs/setdmzholes.c | 162 - src/misc-progs/setportfw.c | 369 - src/misc-progs/setuid.c | 373 +- src/misc-progs/setuid.h | 50 +- src/misc-progs/setxtaccess.c | 168 - src/misc-progs/smartctrl.c | 29 +- src/misc-progs/syslogdctrl.c | 2 + src/misc-progs/wirelessctrl.c | 311 +- src/paks/avahi/install.sh | 7 + src/paks/linux-pae/install.sh | 8 +- src/paks/linux-xen/install.sh | 80 - src/paks/mysql/install.sh | 10 +- src/paks/mysql/uninstall.sh | 9 + src/paks/mysql/update.sh | 28 +- src/paks/{default => tor}/install.sh | 0 src/paks/{cacti => tor}/uninstall.sh | 0 src/paks/{linux-xen => tor}/update.sh | 11 + .../binutils-2.22-pt-pax-flags-20111121.patch | 1859 +++++ src/patches/bridge-utils-1.5-compile-fix-1.patch | 31 + src/patches/coreutils-5.96-uname-1.patch | 58 +- src/patches/dracut-006_add_run_dir.patch | 13 + src/patches/dracut-006_remove_scsi_wait.patch | 12 + ...o-0001-Exclude-some-more-invalid-patterns.patch | 55 + src/patches/gcc-4.4.7-texinfo-5.patch | 89 + src/patches/glibc/glibc-rh804630.patch | 23 - src/patches/glibc/glibc-rh804686.patch | 87 + src/patches/glibc/glibc-rh806404.patch | 12 + src/patches/glibc/glibc-rh809726.patch | 89 + src/patches/glibc/glibc-rh823909.patch | 25 + src/patches/glibc/glibc-rh826149.patch | 80 + src/patches/glibc/glibc-rh827362.patch | 250 + src/patches/glibc/glibc-rh830127.patch | 403 ++ src/patches/glibc/glibc-rh832516.patch | 19 + src/patches/glibc/glibc-rh832694.patch | 22 + .../{glibc-rh833716.patch => glibc-rh833717.patch} | 0 src/patches/glibc/glibc-rh837026.patch | 30 - src/patches/glibc/glibc-rh837695.patch | 54 + src/patches/glibc/glibc-rh837918.patch | 7183 ++++++++++++++++++++ src/patches/glibc/glibc-rh841787.patch | 42 + src/patches/glibc/glibc-rh843673.patch | 31 + src/patches/glibc/glibc-rh846342.patch | 48 + src/patches/glibc/glibc-rh847932.patch | 364 + src/patches/glibc/glibc-rh848082.patch | 88 + src/patches/glibc/glibc-rh849203.patch | 195 + src/patches/glibc/glibc-rh849651.patch | 343 + src/patches/glibc/glibc-rh852445.patch | 105 + src/patches/glibc/glibc-rh861167.patch | 86 + src/patches/glibc/glibc-rh863453.patch | 81 + src/patches/glibc/glibc-rh864322.patch | 12 + src/patches/glibc/glibc-rh886968.patch | 33 + src/patches/glibc/glibc-rh905575.patch | 72 + src/patches/glibc/glibc-rh905874.patch | 174 + src/patches/glibc/glibc-rh916986.patch | 123 + src/patches/glibc/glibc-rh928318.patch | 31 + src/patches/glibc/glibc-rh929388.patch | 21 + src/patches/glibc/glibc-rh947882.patch | 63 + src/patches/glibc/glibc-rh952422.patch | 127 + src/patches/glibc/glibc-rh966775.patch | 177 + src/patches/glibc/glibc-rh966778.patch | 54 + src/patches/glibc/glibc-rh970090.patch | 24 + src/patches/glibc/glibc-rh970992.patch | 190 + src/patches/glibc/glibc-rh989558-2.patch | 107 + src/patches/glibc/glibc-rh989558.patch | 181 + src/patches/imspector-20101008-ssl.patch | 11 + ...wl-common-Add-default-power-configuration.patch | 88 + ...1-omap3isp-Use-the-common-clock-framework.patch | 444 ++ .../omap/3isp/0002-mt9m032-Fix-PLL-setup.patch | 91 + ...03-mt9m032-Define-MT9M032_READ_MODE1-bits.patch | 55 + .../0004-mt9p031-Use-devm_-managed-helpers.patch | 62 + .../0005-mt9p031-Add-support-for-regulators.patch | 82 + ...06-mt9p031-Use-the-common-clock-framework.patch | 110 + ...b-add-Toshiba-LTA070B220F-800x480-support.patch | 30 + ...ght-Add-TLC59108-backlight-control-driver.patch | 217 + ...003-tlc59108-adjust-for-beagleboard-uLCD7.patch | 124 + .../omap/beagle/0004-zeroMAP-Open-your-eyes.patch | 31 + ...P-Beagle-use-TWL4030-generic-reset-script.patch | 29 + .../0006-DSS2-use-DSI-PLL-for-DPI-with-OMAP3.patch | 28 + ...nsion-add-buddy-param-for-expansionboard-.patch | 63 + .../0002-Beagle-expansion-add-zippy.patch | 242 + .../0003-Beagle-expansion-add-zippy2.patch | 86 + .../0004-Beagle-expansion-add-trainer.patch | 55 + ...agle-expansion-add-CircuitCo-ulcd-Support.patch | 285 + .../expansion/0006-Beagle-expansion-add-wifi.patch | 180 + .../0007-Beagle-expansion-add-beaglefpga.patch | 117 + .../0008-Beagle-expansion-add-spidev.patch | 35 + ...Beagle-expansion-add-Aptina-li5m03-camera.patch | 217 + ...gle-expansion-add-LSR-COM6L-Adapter-Board.patch | 123 + ...nsion-LSR-COM6L-Adapter-Board-also-initia.patch | 73 + ...P-Beagle-expansion-extend-spidev-to-uart2.patch | 43 + .../panda/0001-panda-fix-wl12xx-regulator.patch | 27 + .../0002-ti-st-st-kim-fixing-firmware-path.patch | 36 + .../panda/0003-Panda-expansion-add-spidev.patch | 112 + ...andaES-disable-cpufreq-so-board-will-boot.patch | 38 + ...kpoint-Enable-debug-powerdown-only-if-sys.patch | 122 + ...gulator-twl-Remove-TWL6030_FIXED_RESOURCE.patch | 39 + ...lator-twl-Remove-another-unused-variable-.patch | 34 + ...lator-twl-Remove-references-to-the-twl403.patch | 28 + ...lator-twl-Remove-references-to-32kHz-cloc.patch | 49 + .../panda/0011-panda-spidev-setup-pinmux.patch | 50 + ...MAP-DSS2-add-bootarg-for-selecting-svideo.patch | 78 + .../sakoman/0002-video-add-timings-for-hd720.patch | 28 + ...cache-flush-management-symbols-when-MULTI.patch | 34 + .../linux-3.10-compulab-utilite-support.patch | 96 + .../dts/0001-imx6qdl-wandboard-dts-backport.patch | 6354 +++++++++++++++++ ...6qdl-wandboard-add-gpio-lines-to-wandboar.patch | 41 + ...ts-imx6qdl-wandboard-Add-support-for-i2c1.patch | 33 + ...dboard-add-binding-for-wand-rfkill-driver.patch | 52 + ...0005-ARM-dts-imx6qdl-add-pcie-device-node.patch | 38 + .../wandboard/imx/0001-i2c-imx-retry-on-NAK.patch | 38 + ...002-i.MX6-Wandboard-add-CKO1-clock-output.patch | 29 + ...03-thermal-add-imx-thermal-driver-support.patch | 489 ++ ...i.MX6-Wandboard-add-wifi-bt-rfkill-driver.patch | 341 + .../imx/0005-Add-IMX6Q-AHCI-support.patch | 85 + .../imx/0006-imx-Add-IMX53-AHCI-support.patch | 25 + ...mx6-enable-sata-clk-if-SATA_AHCI_PLATFORM.patch | 33 + ...update-the-sata-bits-definitions-of-gpr13.patch | 150 + ...mx-add-ahci-sata-support-on-imx-platforms.patch | 316 + ...0010-ahci_imx-depend-on-CONFIG_MFD_SYSCON.patch | 24 + .../wandboard/imx/0011-add-pcie-designware.patch | 636 ++ .../wandboard/imx/0012-pcie-backport-fixes.patch | 17 + ...ide-support-for-parsing-PCI-DT-ranges-pro.patch | 194 + ...6q-Add-PCIe-bits-to-GPR-syscon-definition.patch | 37 + ...mx6-Add-support-for-i.MX6-PCIe-controller.patch | 616 ++ .../wandboard/imx/0016-imx6-pci-tweaks.patch | 24 + ...Add-LVDS-general-purpose-clocks-to-i.MX6Q.patch | 70 + ...clock-and-Kconfig-update-for-PCIe-support.patch | 38 + src/patches/linux-2.6-silence-acpi-blacklist.patch | 25 + src/patches/linux-3.10-apu_leds.patch | 215 + src/patches/linux-3.10-ipp2p-0.8.2-ipfire.patch | 1039 +++ .../linux-3.10-smsc95xx-add_mac_addr_param.patch | 82 + .../linux-3.10.10-arm_kirkwood_setups.patch | 704 ++ ...3.10.10-mv_cesa_disable_failing_hmac_sha1.patch | 19 + ...omic64-operand-requires-impossible-reload.patch | 11 + src/patches/linux-3.10.30-imq.patch | 3304 +++++++++ ...x-3.10.30_cs5535audio_fix_logspam_on_geos.patch | 27 + ...3.10.34-iwlwifi-noibss_only_on_radar_chan.patch | 23 + src/patches/linux-3.10.9-ledtrig-netdev-1.patch | 478 ++ src/patches/linux-3.7-disable-compat_vdso.patch | 46 + src/patches/linux-3.9-dvbsky-wot2.patch | 6161 +++++++++++++++++ src/patches/mpage25-config.patch | 46 + src/patches/net-tools-1.60-kernel_headers-3.patch | 55 + ..._layer7_2.22_kernel3.10-no_proc_interface.patch | 2166 ++++++ src/patches/openssl-1.0.0-beta5-enginesdir.patch | 52 + src/patches/openssl-1.0.1-beta2-build.patch | 109 + src/patches/openssl-1.0.1e-cryptodev.patch | 712 ++ .../openssl-1.0.1e-fix_parallel_build-1.patch | 340 + src/patches/openssl-1.0.1e-weak-ciphers.patch | 12 + ..._ipfire.patch => strongswan-5.0.2_ipfire.patch} | 82 +- src/patches/strongswan-5.1.1-delay-dpd.patch | 35 - src/patches/udev-208_remove_systemd_log.patch | 12 + src/patches/util-linux-2.12r-cramfs-1.patch | 93 - .../util-linux-2.12r-umount-no-special.patch | 11 - src/patches/util-linux-buildfix.patch | 272 - src/patches/vim-7.2-fixes-4.patch | 5414 --------------- src/patches/vim-7.2-mandir-1.patch | 82 - src/patches/wget-1.14-texi2pod-1.patch | 32 + src/scripts/dialctrl.pl | 199 - src/scripts/setddns.pl | 71 +- .../uninstall.sh => scripts/timezone-transition} | 21 +- tools/langdiff.pl | 57 + tools/make-functions | 21 +- 626 files changed, 89153 insertions(+), 38025 deletions(-) create mode 100644 config/backup/includes/mysql delete mode 100644 config/cfgroot/p2protocols rename config/etc/modprobe.d/{cfg80211 => cfg80211.conf} (100%) rename config/etc/modprobe.d/{pcspeaker => pcspeaker.conf} (100%) create mode 100755 config/firewall/convert-dmz create mode 100755 config/firewall/convert-outgoingfw create mode 100755 config/firewall/convert-portfw create mode 100755 config/firewall/convert-xtaccess create mode 100755 config/firewall/firewall-lib.pl create mode 100755 config/firewall/firewall-policy create mode 100644 config/firewall/p2protocols create mode 100755 config/firewall/rules.pl create mode 100644 config/fwhosts/customservices create mode 100755 config/fwhosts/icmp-types create mode 100644 config/kernel/kernel.config.armv5tel-ipfire-multi delete mode 100644 config/kernel/kernel.config.armv5tel-ipfire-omap delete mode 100644 config/kernel/kernel.config.i586-ipfire-xen delete mode 100644 config/outgoingfw/defaultservices delete mode 100644 config/outgoingfw/outgoingfw.pl delete mode 100644 config/rootfiles/common/armv5tel/installer create mode 100644 config/rootfiles/common/armv5tel/linux-multi delete mode 100644 config/rootfiles/common/armv5tel/linux-omap delete mode 100644 config/rootfiles/common/as86 delete mode 100644 config/rootfiles/common/compat-drivers delete mode 100644 config/rootfiles/common/eject delete mode 100644 config/rootfiles/common/fstrim delete mode 100644 config/rootfiles/common/i586/mISDN create mode 100644 config/rootfiles/common/jquery create mode 100644 config/rootfiles/common/kmod create mode 100644 config/rootfiles/common/libusbx delete mode 100644 config/rootfiles/common/mbr delete mode 100644 config/rootfiles/common/module-init-tools create mode 100644 config/rootfiles/common/mpage delete mode 100644 config/rootfiles/common/mysql create mode 100644 config/rootfiles/common/mysql-libs create mode 100644 config/rootfiles/common/openssl-compat create mode 100644 config/rootfiles/common/paxctl create mode 100644 config/rootfiles/common/rng-tools create mode 100644 config/rootfiles/core/76/exclude copy config/rootfiles/{oldcore/32 => core/76}/filelists/Net_SSLeay (100%) copy config/rootfiles/{oldcore/44 => core/76}/filelists/apache2 (100%) copy config/rootfiles/{oldcore/66 => core/76}/filelists/armv5tel/binutils (100%) copy config/rootfiles/{oldcore/66 => core/76}/filelists/armv5tel/dracut (100%) copy config/rootfiles/{oldcore/66 => core/76}/filelists/armv5tel/gcc (100%) copy config/rootfiles/{oldcore/66 => core/76}/filelists/armv5tel/glibc (100%) create mode 120000 config/rootfiles/core/76/filelists/armv5tel/initscripts copy config/rootfiles/{oldcore/66 => core/76}/filelists/armv5tel/linux-kirkwood (100%) create mode 120000 config/rootfiles/core/76/filelists/armv5tel/linux-multi copy config/rootfiles/{oldcore/66 => core/76}/filelists/armv5tel/linux-rpi (100%) create mode 120000 config/rootfiles/core/76/filelists/armv5tel/lm_sensors copy config/rootfiles/{oldcore/66 => core/76}/filelists/armv5tel/rpi-firmware (100%) copy config/rootfiles/{oldcore/66 => core/76}/filelists/armv5tel/u-boot (100%) copy config/rootfiles/{oldcore/66 => core/76}/filelists/armv5tel/util-linux (100%) create mode 120000 config/rootfiles/core/76/filelists/beep copy config/rootfiles/{oldcore/66 => core/76}/filelists/bridge-utils (100%) copy config/rootfiles/{oldcore/66 => core/76}/filelists/coreutils (100%) copy config/rootfiles/{oldcore/36 => core/76}/filelists/cyrus-sasl (100%) copy config/rootfiles/{oldcore/38 => core/76}/filelists/dosfstools (100%) copy config/rootfiles/{oldcore/66 => core/76}/filelists/dvb-firmwares (100%) copy config/rootfiles/{oldcore/38 => core/76}/filelists/e2fsprogs (100%) create mode 100644 config/rootfiles/core/76/filelists/files copy config/rootfiles/{oldcore/44 => core/76}/filelists/fireinfo (100%) create mode 100644 config/rootfiles/core/76/filelists/firewall copy config/rootfiles/{oldcore/66 => core/76}/filelists/i586/binutils (100%) copy config/rootfiles/{oldcore/66 => core/76}/filelists/i586/dracut (100%) copy config/rootfiles/{oldcore/53 => core/76}/filelists/i586/gcc (100%) copy config/rootfiles/{oldcore/53 => core/76}/filelists/i586/glibc (100%) copy config/rootfiles/{oldcore/66 => core/76}/filelists/i586/grub (100%) create mode 120000 config/rootfiles/core/76/filelists/i586/initscripts copy config/rootfiles/{oldcore/66 => core/76}/filelists/i586/linux (100%) create mode 120000 config/rootfiles/core/76/filelists/i586/lm_sensors copy config/rootfiles/{oldcore/66 => core/76}/filelists/i586/strongswan-padlock (100%) copy config/rootfiles/{oldcore/66 => core/76}/filelists/i586/util-linux (100%) copy config/rootfiles/{oldcore/28 => core/76}/filelists/iptables (100%) copy config/rootfiles/{oldcore/28 => core/76}/filelists/iw (100%) create mode 120000 config/rootfiles/core/76/filelists/jquery create mode 120000 config/rootfiles/core/76/filelists/kmod copy config/rootfiles/{oldcore/28 => core/76}/filelists/libnl (100%) create mode 120000 config/rootfiles/core/76/filelists/libusbx create mode 120000 config/rootfiles/core/76/filelists/libxml2 copy config/rootfiles/{oldcore/28 => core/76}/filelists/linux-firmware (100%) create mode 120000 config/rootfiles/core/76/filelists/lzo copy config/rootfiles/{oldcore/66 => core/76}/filelists/misc-progs (100%) create mode 120000 config/rootfiles/core/76/filelists/mysql-libs create mode 120000 config/rootfiles/core/76/filelists/net-tools create mode 100644 config/rootfiles/core/76/filelists/ntp copy config/rootfiles/{oldcore/36 => core/76}/filelists/openssh (100%) copy config/rootfiles/{oldcore/28 => core/76}/filelists/openssl (100%) create mode 120000 config/rootfiles/core/76/filelists/openssl-compat copy config/rootfiles/{oldcore/53 => core/76}/filelists/openvpn (100%) create mode 100644 config/rootfiles/core/76/filelists/pakfire create mode 120000 config/rootfiles/core/76/filelists/paxctl copy config/rootfiles/{oldcore/47 => core/76}/filelists/php (100%) create mode 120000 config/rootfiles/core/76/filelists/rng-tools copy config/rootfiles/{oldcore/66 => core/76}/filelists/setup (100%) rename config/rootfiles/{oldcore/72 => core/76}/filelists/strongswan (100%) copy config/rootfiles/{oldcore/54 => core/76}/filelists/tzdata (100%) copy config/rootfiles/{oldcore/28 => core/76}/filelists/udev (100%) copy config/rootfiles/{oldcore/34 => core/76}/filelists/usb_modeswitch (100%) copy config/rootfiles/{oldcore/44 => core/76}/filelists/usb_modeswitch_data (100%) copy config/rootfiles/{oldcore/66 => core/76}/filelists/usbutils (100%) copy config/rootfiles/{oldcore/44 => core/76}/filelists/vim (100%) copy config/rootfiles/{oldcore/66 => core/76}/filelists/wget (100%) copy config/rootfiles/{oldcore/28 => core/76}/filelists/wpa_supplicant (100%) copy config/rootfiles/{oldcore/38 => core/76}/filelists/xz (100%) copy config/rootfiles/core/{75 => 76}/meta (100%) create mode 100644 config/rootfiles/core/76/update.sh delete mode 120000 config/rootfiles/installer/eject create mode 120000 config/rootfiles/installer/libidn create mode 120000 config/rootfiles/installer/parted create mode 100644 config/rootfiles/packages/armv5tel/vdr_dvbapi create mode 100644 config/rootfiles/packages/i586/vdr_dvbapi create mode 100644 config/rootfiles/packages/iotop delete mode 100644 config/rootfiles/packages/linux-xen create mode 100644 config/rootfiles/packages/perl-DBD-SQLite create mode 100644 config/rootfiles/packages/perl-File-ReadBackwards create mode 100644 config/rootfiles/packages/vdr_eepg create mode 100644 config/udev/90-hwrng.rules rename config/udev/{blacklist => blacklist.conf} (100%) create mode 100644 config/udev/udev.conf create mode 100644 config/vim/vimrc create mode 100644 config/xen-image/xen-image-maker.sh delete mode 100644 html/cgi-bin/dmzholes.cgi copy html/cgi-bin/{atm-status.cgi => entropy.cgi} (54%) create mode 100644 html/cgi-bin/firewall.cgi create mode 100644 html/cgi-bin/fwhosts.cgi copy html/cgi-bin/{mdstat.cgi => gpl.cgi} (52%) delete mode 100644 html/cgi-bin/outgoingfw.cgi delete mode 100644 html/cgi-bin/outgoinggrp.cgi create mode 100644 html/cgi-bin/p2p-block.cgi delete mode 100644 html/cgi-bin/portfw.cgi create mode 100644 html/cgi-bin/shutdown.cgi mode change 100755 => 100644 html/cgi-bin/tor.cgi delete mode 100644 html/cgi-bin/xtaccess.cgi delete mode 100644 html/html/include/jquery-1.9.1.min.js copy html/html/themes/{maniac => darkdos}/images/IPFire.png (100%) create mode 100644 html/html/themes/darkdos/images/b1.gif create mode 100644 html/html/themes/darkdos/images/b2.gif create mode 100644 html/html/themes/darkdos/images/b3.gif create mode 100644 html/html/themes/darkdos/images/b4.gif copy html/html/themes/{maniac => darkdos}/images/b5.gif (100%) copy html/html/themes/{maniac => darkdos}/images/b6.gif (100%) copy html/html/themes/{ipfire => darkdos}/images/spacer.gif (100%) create mode 100644 html/html/themes/darkdos/include/colors.txt copy html/html/themes/{maniac => darkdos}/include/functions.pl (95%) copy html/html/themes/{ipfire => darkdos}/include/style.css (76%) rename html/html/themes/{ipfire => ipfire-legacy}/images/n1.gif (100%) copy html/html/themes/{ipfire => ipfire-legacy}/images/n2.gif (100%) copy html/html/themes/{ipfire => ipfire-legacy}/images/n3.gif (100%) rename html/html/themes/{ipfire => ipfire-legacy}/images/n4.gif (100%) copy html/html/themes/{ipfire => ipfire-legacy}/images/n5.gif (100%) copy html/html/themes/{ipfire => ipfire-legacy}/images/n6.gif (100%) rename html/html/themes/{ipfire => ipfire-legacy}/images/spacer.gif (100%) copy html/html/themes/{ipfire => ipfire-legacy}/include/colors.txt (100%) copy html/html/themes/{ipfire => ipfire-legacy}/include/functions.pl (96%) rename html/html/themes/{ipfire => ipfire-legacy}/include/style.css (91%) create mode 100644 html/html/themes/ipfire/images/tux2.png create mode 100644 html/html/themes/ipfire/include/css/style-rounded.css create mode 100644 html/html/themes/ipfire/include/css/style.css create mode 100644 html/html/themes/ipfire/include/js/refreshInetInfo.js delete mode 100644 lfs/eject rename lfs/{as86 => iotop} (91%) copy lfs/{iw => jquery} (89%) copy lfs/{keepalived => kmod} (83%) rename lfs/{fstrim => libusbx} (90%) delete mode 100644 lfs/linux-xen delete mode 100644 lfs/linux2 copy lfs/{beep => mpage} (90%) copy lfs/{openssl => openssl-compat} (84%) copy lfs/{iw => paxctl} (91%) copy lfs/{perl-DBI => perl-DBD-SQLite} (94%) copy lfs/{perl-DBI => perl-File-ReadBackwards} (94%) rename lfs/{mbr => rng-tools} (91%) delete mode 100644 lfs/usb-stick copy lfs/{hostapd => vdr_dvbapi} (63%) copy lfs/{transmission => vdr_eepg} (75%) create mode 100644 src/initscripts/init.d/rngd rename src/misc-progs/{outgoingfwctrl.c => firewallctrl.c} (57%) create mode 100644 src/misc-progs/netutil.h delete mode 100644 src/misc-progs/setdmzholes.c delete mode 100644 src/misc-progs/setportfw.c delete mode 100644 src/misc-progs/setxtaccess.c delete mode 100644 src/paks/linux-xen/install.sh copy src/paks/{default => tor}/install.sh (100%) copy src/paks/{cacti => tor}/uninstall.sh (100%) rename src/paks/{linux-xen => tor}/update.sh (87%) create mode 100644 src/patches/binutils-2.22-pt-pax-flags-20111121.patch create mode 100644 src/patches/bridge-utils-1.5-compile-fix-1.patch create mode 100644 src/patches/dracut-006_add_run_dir.patch create mode 100644 src/patches/dracut-006_remove_scsi_wait.patch create mode 100644 src/patches/fireinfo-0001-Exclude-some-more-invalid-patterns.patch create mode 100644 src/patches/gcc-4.4.7-texinfo-5.patch delete mode 100644 src/patches/glibc/glibc-rh804630.patch create mode 100644 src/patches/glibc/glibc-rh804686.patch create mode 100644 src/patches/glibc/glibc-rh806404.patch create mode 100644 src/patches/glibc/glibc-rh809726.patch create mode 100644 src/patches/glibc/glibc-rh823909.patch create mode 100644 src/patches/glibc/glibc-rh826149.patch create mode 100644 src/patches/glibc/glibc-rh827362.patch create mode 100644 src/patches/glibc/glibc-rh830127.patch create mode 100644 src/patches/glibc/glibc-rh832516.patch create mode 100644 src/patches/glibc/glibc-rh832694.patch rename src/patches/glibc/{glibc-rh833716.patch => glibc-rh833717.patch} (100%) delete mode 100644 src/patches/glibc/glibc-rh837026.patch create mode 100644 src/patches/glibc/glibc-rh837695.patch create mode 100644 src/patches/glibc/glibc-rh837918.patch create mode 100644 src/patches/glibc/glibc-rh841787.patch create mode 100644 src/patches/glibc/glibc-rh843673.patch create mode 100644 src/patches/glibc/glibc-rh846342.patch create mode 100644 src/patches/glibc/glibc-rh847932.patch create mode 100644 src/patches/glibc/glibc-rh848082.patch create mode 100644 src/patches/glibc/glibc-rh849203.patch create mode 100644 src/patches/glibc/glibc-rh849651.patch create mode 100644 src/patches/glibc/glibc-rh852445.patch create mode 100644 src/patches/glibc/glibc-rh861167.patch create mode 100644 src/patches/glibc/glibc-rh863453.patch create mode 100644 src/patches/glibc/glibc-rh864322.patch create mode 100644 src/patches/glibc/glibc-rh886968.patch create mode 100644 src/patches/glibc/glibc-rh905575.patch create mode 100644 src/patches/glibc/glibc-rh905874.patch create mode 100644 src/patches/glibc/glibc-rh916986.patch create mode 100644 src/patches/glibc/glibc-rh928318.patch create mode 100644 src/patches/glibc/glibc-rh929388.patch create mode 100644 src/patches/glibc/glibc-rh947882.patch create mode 100644 src/patches/glibc/glibc-rh952422.patch create mode 100644 src/patches/glibc/glibc-rh966775.patch create mode 100644 src/patches/glibc/glibc-rh966778.patch create mode 100644 src/patches/glibc/glibc-rh970090.patch create mode 100644 src/patches/glibc/glibc-rh970992.patch create mode 100644 src/patches/glibc/glibc-rh989558-2.patch create mode 100644 src/patches/glibc/glibc-rh989558.patch create mode 100644 src/patches/imspector-20101008-ssl.patch create mode 100644 src/patches/kernel/omap/0002-omap2-twl-common-Add-default-power-configuration.patch create mode 100644 src/patches/kernel/omap/3isp/0001-omap3isp-Use-the-common-clock-framework.patch create mode 100644 src/patches/kernel/omap/3isp/0002-mt9m032-Fix-PLL-setup.patch create mode 100644 src/patches/kernel/omap/3isp/0003-mt9m032-Define-MT9M032_READ_MODE1-bits.patch create mode 100644 src/patches/kernel/omap/3isp/0004-mt9p031-Use-devm_-managed-helpers.patch create mode 100644 src/patches/kernel/omap/3isp/0005-mt9p031-Add-support-for-regulators.patch create mode 100644 src/patches/kernel/omap/3isp/0006-mt9p031-Use-the-common-clock-framework.patch create mode 100644 src/patches/kernel/omap/beagle/0001-meego-modedb-add-Toshiba-LTA070B220F-800x480-support.patch create mode 100644 src/patches/kernel/omap/beagle/0002-backlight-Add-TLC59108-backlight-control-driver.patch create mode 100644 src/patches/kernel/omap/beagle/0003-tlc59108-adjust-for-beagleboard-uLCD7.patch create mode 100644 src/patches/kernel/omap/beagle/0004-zeroMAP-Open-your-eyes.patch create mode 100644 src/patches/kernel/omap/beagle/0005-ARM-OMAP-Beagle-use-TWL4030-generic-reset-script.patch create mode 100644 src/patches/kernel/omap/beagle/0006-DSS2-use-DSI-PLL-for-DPI-with-OMAP3.patch create mode 100644 src/patches/kernel/omap/beagle/expansion/0001-Beagle-expansion-add-buddy-param-for-expansionboard-.patch create mode 100644 src/patches/kernel/omap/beagle/expansion/0002-Beagle-expansion-add-zippy.patch create mode 100644 src/patches/kernel/omap/beagle/expansion/0003-Beagle-expansion-add-zippy2.patch create mode 100644 src/patches/kernel/omap/beagle/expansion/0004-Beagle-expansion-add-trainer.patch create mode 100644 src/patches/kernel/omap/beagle/expansion/0005-Beagle-expansion-add-CircuitCo-ulcd-Support.patch create mode 100644 src/patches/kernel/omap/beagle/expansion/0006-Beagle-expansion-add-wifi.patch create mode 100644 src/patches/kernel/omap/beagle/expansion/0007-Beagle-expansion-add-beaglefpga.patch create mode 100644 src/patches/kernel/omap/beagle/expansion/0008-Beagle-expansion-add-spidev.patch create mode 100644 src/patches/kernel/omap/beagle/expansion/0009-Beagle-expansion-add-Aptina-li5m03-camera.patch create mode 100644 src/patches/kernel/omap/beagle/expansion/0010-Beagle-expansion-add-LSR-COM6L-Adapter-Board.patch create mode 100644 src/patches/kernel/omap/beagle/expansion/0011-Beagle-expansion-LSR-COM6L-Adapter-Board-also-initia.patch create mode 100644 src/patches/kernel/omap/beagle/expansion/0011-WIP-Beagle-expansion-extend-spidev-to-uart2.patch create mode 100644 src/patches/kernel/omap/panda/0001-panda-fix-wl12xx-regulator.patch create mode 100644 src/patches/kernel/omap/panda/0002-ti-st-st-kim-fixing-firmware-path.patch create mode 100644 src/patches/kernel/omap/panda/0003-Panda-expansion-add-spidev.patch create mode 100644 src/patches/kernel/omap/panda/0004-HACK-PandaES-disable-cpufreq-so-board-will-boot.patch create mode 100644 src/patches/kernel/omap/panda/0006-ARM-hw_breakpoint-Enable-debug-powerdown-only-if-sys.patch create mode 100644 src/patches/kernel/omap/panda/0007-Revert-regulator-twl-Remove-TWL6030_FIXED_RESOURCE.patch create mode 100644 src/patches/kernel/omap/panda/0008-Revert-regulator-twl-Remove-another-unused-variable-.patch create mode 100644 src/patches/kernel/omap/panda/0009-Revert-regulator-twl-Remove-references-to-the-twl403.patch create mode 100644 src/patches/kernel/omap/panda/0010-Revert-regulator-twl-Remove-references-to-32kHz-cloc.patch create mode 100644 src/patches/kernel/omap/panda/0011-panda-spidev-setup-pinmux.patch create mode 100644 src/patches/kernel/omap/sakoman/0001-OMAP-DSS2-add-bootarg-for-selecting-svideo.patch create mode 100644 src/patches/kernel/omap/sakoman/0002-video-add-timings-for-hd720.patch create mode 100644 src/patches/kernel/omap/sgx/0001-arm-Export-cache-flush-management-symbols-when-MULTI.patch create mode 100644 src/patches/kernel/utilite/linux-3.10-compulab-utilite-support.patch create mode 100644 src/patches/kernel/wandboard/dts/0001-imx6qdl-wandboard-dts-backport.patch create mode 100644 src/patches/kernel/wandboard/dts/0002-ARM-dts-imx6qdl-wandboard-add-gpio-lines-to-wandboar.patch create mode 100644 src/patches/kernel/wandboard/dts/0003-ARM-dts-imx6qdl-wandboard-Add-support-for-i2c1.patch create mode 100644 src/patches/kernel/wandboard/dts/0004-ARM-dts-wandboard-add-binding-for-wand-rfkill-driver.patch create mode 100644 src/patches/kernel/wandboard/dts/0005-ARM-dts-imx6qdl-add-pcie-device-node.patch create mode 100644 src/patches/kernel/wandboard/imx/0001-i2c-imx-retry-on-NAK.patch create mode 100644 src/patches/kernel/wandboard/imx/0002-i.MX6-Wandboard-add-CKO1-clock-output.patch create mode 100644 src/patches/kernel/wandboard/imx/0003-thermal-add-imx-thermal-driver-support.patch create mode 100644 src/patches/kernel/wandboard/imx/0004-ARM-i.MX6-Wandboard-add-wifi-bt-rfkill-driver.patch create mode 100644 src/patches/kernel/wandboard/imx/0005-Add-IMX6Q-AHCI-support.patch create mode 100644 src/patches/kernel/wandboard/imx/0006-imx-Add-IMX53-AHCI-support.patch create mode 100644 src/patches/kernel/wandboard/imx/0007-imx6-enable-sata-clk-if-SATA_AHCI_PLATFORM.patch create mode 100644 src/patches/kernel/wandboard/imx/0008-ARM-imx6q-update-the-sata-bits-definitions-of-gpr13.patch create mode 100644 src/patches/kernel/wandboard/imx/0009-ahci_imx-add-ahci-sata-support-on-imx-platforms.patch create mode 100644 src/patches/kernel/wandboard/imx/0010-ahci_imx-depend-on-CONFIG_MFD_SYSCON.patch create mode 100644 src/patches/kernel/wandboard/imx/0011-add-pcie-designware.patch create mode 100644 src/patches/kernel/wandboard/imx/0012-pcie-backport-fixes.patch create mode 100644 src/patches/kernel/wandboard/imx/0013-of-pci-Provide-support-for-parsing-PCI-DT-ranges-pro.patch create mode 100644 src/patches/kernel/wandboard/imx/0014-ARM-imx6q-Add-PCIe-bits-to-GPR-syscon-definition.patch create mode 100644 src/patches/kernel/wandboard/imx/0015-PCI-imx6-Add-support-for-i.MX6-PCIe-controller.patch create mode 100644 src/patches/kernel/wandboard/imx/0016-imx6-pci-tweaks.patch create mode 100644 src/patches/kernel/wandboard/imx/0017-ARM-imx-Add-LVDS-general-purpose-clocks-to-i.MX6Q.patch create mode 100644 src/patches/kernel/wandboard/imx/0018-ARM-imx6q-clock-and-Kconfig-update-for-PCIe-support.patch create mode 100644 src/patches/linux-2.6-silence-acpi-blacklist.patch create mode 100644 src/patches/linux-3.10-apu_leds.patch create mode 100644 src/patches/linux-3.10-ipp2p-0.8.2-ipfire.patch create mode 100644 src/patches/linux-3.10-smsc95xx-add_mac_addr_param.patch create mode 100644 src/patches/linux-3.10.10-arm_kirkwood_setups.patch create mode 100644 src/patches/linux-3.10.10-mv_cesa_disable_failing_hmac_sha1.patch create mode 100644 src/patches/linux-3.10.27-fs-exec-atomic64-operand-requires-impossible-reload.patch create mode 100644 src/patches/linux-3.10.30-imq.patch create mode 100644 src/patches/linux-3.10.30_cs5535audio_fix_logspam_on_geos.patch create mode 100644 src/patches/linux-3.10.34-iwlwifi-noibss_only_on_radar_chan.patch create mode 100644 src/patches/linux-3.10.9-ledtrig-netdev-1.patch create mode 100644 src/patches/linux-3.7-disable-compat_vdso.patch create mode 100644 src/patches/linux-3.9-dvbsky-wot2.patch create mode 100644 src/patches/mpage25-config.patch create mode 100644 src/patches/net-tools-1.60-kernel_headers-3.patch create mode 100644 src/patches/netfilter_layer7_2.22_kernel3.10-no_proc_interface.patch create mode 100644 src/patches/openssl-1.0.0-beta5-enginesdir.patch create mode 100644 src/patches/openssl-1.0.1-beta2-build.patch create mode 100644 src/patches/openssl-1.0.1e-cryptodev.patch create mode 100644 src/patches/openssl-1.0.1e-fix_parallel_build-1.patch create mode 100644 src/patches/openssl-1.0.1e-weak-ciphers.patch rename src/patches/{strongswan-4.5.3_ipfire.patch => strongswan-5.0.2_ipfire.patch} (88%) delete mode 100644 src/patches/strongswan-5.1.1-delay-dpd.patch create mode 100644 src/patches/udev-208_remove_systemd_log.patch delete mode 100644 src/patches/util-linux-2.12r-cramfs-1.patch delete mode 100644 src/patches/util-linux-2.12r-umount-no-special.patch delete mode 100644 src/patches/util-linux-buildfix.patch delete mode 100644 src/patches/vim-7.2-fixes-4.patch delete mode 100644 src/patches/vim-7.2-mandir-1.patch create mode 100644 src/patches/wget-1.14-texi2pod-1.patch delete mode 100644 src/scripts/dialctrl.pl rename src/{paks/linux-xen/uninstall.sh => scripts/timezone-transition} (79%) create mode 100755 tools/langdiff.pl
Difference in files: diff --git a/config/avahi/avahi b/config/avahi/avahi index 206146a..7413f56 100755 --- a/config/avahi/avahi +++ b/config/avahi/avahi @@ -18,7 +18,7 @@ case "$1" in
stop) boot_mesg "Stopping avahi..." - killproc /usr/sbin/avahi-daemon -k + /usr/sbin/avahi-daemon -k ;;
reload) diff --git a/config/backup/backup.pl b/config/backup/backup.pl index fd62672..f4823fc 100644 --- a/config/backup/backup.pl +++ b/config/backup/backup.pl @@ -2,7 +2,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2014 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -22,7 +22,7 @@ require '/var/ipfire/general-functions.pl'; require "${General::swroot}/lang.pl"; require "${General::swroot}/header.pl"; - +use File::Path; my $debug = 1; my @include = ""; my ($Sekunden, $Minuten, $Stunden, $Monatstag, $Monat, $Jahr, $Wochentag, $Jahrestag, $Sommerzeit) = localtime(time); @@ -64,6 +64,66 @@ elsif ($ARGV[0] eq 'restore') { system("cd / && tar -xvz -p -f /tmp/restore.ipf"); #Here some converter scripts to correct old Backups (before core 65) system("/usr/sbin/ovpn-ccd-convert"); + #OUTGOINGFW CONVERTER + if( -d "${General::swroot}/outgoing"){ + if( -f "${General::swroot}/firewall/config" ){ + unlink("${General::swroot}/firewall/config"); + system("touch ${General::swroot}/firewall/config"); + chown 99,99,"${General::swroot}/firewall/config"; + } + if( -f "${General::swroot}/firewall/outgoing" ){ + unlink("${General::swroot}/firewall/outgoing"); + system("touch ${General::swroot}/firewall/outgoing"); + chown 99,99,"${General::swroot}/firewall/outgoing"; + } + unlink("${General::swroot}/fwhosts/customgroups"); + unlink("${General::swroot}/fwhosts/customhosts"); + unlink("${General::swroot}/fwhosts/customgroups"); + unlink("${General::swroot}/fwhosts/customnetworks"); + unlink("${General::swroot}/fwhosts/customservicegrp"); + unlink("${General::swroot}/fwhosts/customnetworks"); + system("touch ${General::swroot}/fwhosts/customgroups"); + system("touch ${General::swroot}/fwhosts/customhosts"); + system("touch ${General::swroot}/fwhosts/customnetworks"); + system("touch ${General::swroot}/fwhosts/customservicegrp"); + #START CONVERTER "OUTGOINGFW" + system("/usr/sbin/convert-outgoingfw"); + chown 99,99,"${General::swroot}/fwhosts/customgroups"; + chown 99,99,"${General::swroot}/fwhosts/customhosts"; + chown 99,99,"${General::swroot}/fwhosts/customnetworks"; + chown 99,99,"${General::swroot}/fwhosts/customservicegrp"; + #START CONVERTER "OUTGOINGFW" + rmtree("${General::swroot}/outgoing"); + } + #XTACCESS CONVERTER + if( -d "${General::swroot}/xtaccess"){ + if( -f "${General::swroot}/firewall/input" ){ + unlink("${General::swroot}/firewall/input"); + system("touch ${General::swroot}/firewall/input"); + } + #START CONVERTER "XTACCESS" + system("/usr/sbin/convert-xtaccess"); + chown 99,99,"${General::swroot}/firewall/input"; + rmtree("${General::swroot}/xtaccess"); + } + #DMZ-HOLES CONVERTER + if( -d "${General::swroot}/dmzholes" || -d "${General::swroot}/portfw"){ + if( -f "${General::swroot}/firewall/config" ){ + unlink("${General::swroot}/firewall/config"); + system("touch ${General::swroot}/firewall/config"); + } + #START CONVERTER "DMZ-HOLES" + system("/usr/sbin/convert-dmz"); + chown 99,99,"${General::swroot}/firewall/config"; + rmtree("${General::swroot}/dmzholes"); + } + #PORTFORWARD CONVERTER + if( -d "${General::swroot}/portfw"){ + #START CONVERTER "PORTFW" + system("/usr/sbin/convert-portfw"); + rmtree("${General::swroot}/portfw"); + } + system("/usr/local/bin/firewallctrl");
# Convert old OpenVPN CCD files (CN change, core 75). system("/usr/local/bin/convert-ovpn"); diff --git a/config/backup/exclude b/config/backup/exclude index 8103bb9..83db234 100644 --- a/config/backup/exclude +++ b/config/backup/exclude @@ -1,5 +1,6 @@ *.tmp /var/ipfire/ethernet/settings +/var/ipfire/firewall/bin/* /var/ipfire/proxy/calamaris/bin/* /var/ipfire/qos/bin/qos.pl /var/ipfire/urlfilter/blacklists/*/*.db diff --git a/config/backup/include b/config/backup/include index c863a0e..1d55e4a 100644 --- a/config/backup/include +++ b/config/backup/include @@ -15,14 +15,9 @@ /var/ipfire/auth/users /var/ipfire/dhcp/* /var/ipfire/dnsforward/* +/var/ipfire/firewall +/var/ipfire/fwhosts /var/ipfire/main/* -/var/ipfire/outgoing/groups -/var/ipfire/outgoing/macgroups -/var/ipfire/outgoing/rules -/var/ipfire/outgoing/p2protocols -/var/ipfire/dmzholes -/var/ipfire/xtaccess -/var/ipfire/portfw /var/ipfire/ovpn /var/ipfire/ppp /var/ipfire/proxy diff --git a/config/backup/includes/mysql b/config/backup/includes/mysql new file mode 100644 index 0000000..bcb837c --- /dev/null +++ b/config/backup/includes/mysql @@ -0,0 +1,2 @@ +/etc/my.cnf +/srv/mysql diff --git a/config/cfgroot/ethernet-vlans b/config/cfgroot/ethernet-vlans index 08cb36a..88a38e3 100644 --- a/config/cfgroot/ethernet-vlans +++ b/config/cfgroot/ethernet-vlans @@ -1,9 +1,9 @@ -#GREEN_PARENT_DEV="eth0" -#GREEN_VLAN_ID=20 -#GREEN_MAC_ADDRESS="00:11:22:33:44:55" -#BLUE_PARENT_DEV="green0" -#BLUE_VLAN_ID=30 -#BLUE_MAC_ADDRESS="00:22:33:44:55:66" -#ORANGE_PARENT_DEV="green0" -#ORANGE_VLAN_ID=40 -#ORANGE_MAC_ADDRESS="00:33:44:55:66:77" +GREEN_PARENT_DEV= +GREEN_VLAN_ID= +GREEN_MAC_ADDRESS= +BLUE_PARENT_DEV= +BLUE_VLAN_ID= +BLUE_MAC_ADDRESS= +ORANGE_PARENT_DEV= +ORANGE_VLAN_ID= +ORANGE_MAC_ADDRESS= diff --git a/config/cfgroot/general-functions.pl b/config/cfgroot/general-functions.pl index 41643d8..adfba54 100644 --- a/config/cfgroot/general-functions.pl +++ b/config/cfgroot/general-functions.pl @@ -39,6 +39,96 @@ sub log $logmessage = $1; system('logger', '-t', $tag, $logmessage); } +sub setup_default_networks +{ + my %netsettings=(); + my $defaultNetworks = shift; + + &readhash("/var/ipfire/ethernet/settings", %netsettings); + + # Get current defined networks (Red, Green, Blue, Orange) + $defaultNetworks->{$Lang::tr{'fwhost any'}}{'IPT'} = "0.0.0.0/0.0.0.0"; + $defaultNetworks->{$Lang::tr{'fwhost any'}}{'NAME'} = "ALL"; + + $defaultNetworks->{$Lang::tr{'green'}}{'IPT'} = "$netsettings{'GREEN_NETADDRESS'}/$netsettings{'GREEN_NETMASK'}"; + $defaultNetworks->{$Lang::tr{'green'}}{'NET'} = "$netsettings{'GREEN_ADDRESS'}"; + $defaultNetworks->{$Lang::tr{'green'}}{'NAME'} = "GREEN"; + + if ($netsettings{'RED_DEV'} ne ''){ + $defaultNetworks->{$Lang::tr{'fwdfw red'}}{'IPT'} = "$netsettings{'RED_NETADDRESS'}/$netsettings{'RED_NETMASK'}"; + $defaultNetworks->{$Lang::tr{'fwdfw red'}}{'NET'} = "$netsettings{'RED_ADDRESS'}"; + $defaultNetworks->{$Lang::tr{'fwdfw red'}}{'NAME'} = "RED"; + } + if ($netsettings{'ORANGE_DEV'} ne ''){ + $defaultNetworks->{$Lang::tr{'orange'}}{'IPT'} = "$netsettings{'ORANGE_NETADDRESS'}/$netsettings{'ORANGE_NETMASK'}"; + $defaultNetworks->{$Lang::tr{'orange'}}{'NET'} = "$netsettings{'ORANGE_ADDRESS'}"; + $defaultNetworks->{$Lang::tr{'orange'}}{'NAME'} = "ORANGE"; + } + + if ($netsettings{'BLUE_DEV'} ne ''){ + $defaultNetworks->{$Lang::tr{'blue'}}{'IPT'} = "$netsettings{'BLUE_NETADDRESS'}/$netsettings{'BLUE_NETMASK'}"; + $defaultNetworks->{$Lang::tr{'blue'}}{'NET'} = "$netsettings{'BLUE_ADDRESS'}"; + $defaultNetworks->{$Lang::tr{'blue'}}{'NAME'} = "BLUE"; + } + + #IPFire himself + $defaultNetworks->{'IPFire'}{'NAME'} = "IPFire"; + + # OpenVPN + if(-e "${General::swroot}/ovpn/settings") + { + my %ovpnSettings = (); + &readhash("${General::swroot}/ovpn/settings", %ovpnSettings); + + # OpenVPN on Red? + if(defined($ovpnSettings{'DOVPN_SUBNET'})) + { + my ($ip,$sub) = split(///,$ovpnSettings{'DOVPN_SUBNET'}); + $sub=&General::iporsubtocidr($sub); + my @tempovpnsubnet = split("/", $ovpnSettings{'DOVPN_SUBNET'}); + $defaultNetworks->{'OpenVPN ' ."($ip/$sub)"}{'ADR'} = $tempovpnsubnet[0]; + $defaultNetworks->{'OpenVPN ' ."($ip/$sub)"}{'NAME'} = "OpenVPN-Dyn"; + } + } # end OpenVPN + # IPsec RW NET + if(-e "${General::swroot}/vpn/settings") + { + my %ipsecsettings = (); + &readhash("${General::swroot}/vpn/settings", %ipsecsettings); + if($ipsecsettings{'RW_NET'} ne '') + { + my ($ip,$sub) = split(///,$ipsecsettings{'RW_NET'}); + $sub=&General::iporsubtocidr($sub); + my @tempipsecsubnet = split("/", $ipsecsettings{'RW_NET'}); + $defaultNetworks->{'IPsec RW (' .$ip."/".$sub.")"}{'ADR'} = $tempipsecsubnet[0]; + $defaultNetworks->{'IPsec RW (' .$ip."/".$sub.")"}{'NAME'} = "IPsec RW"; + $defaultNetworks->{'IPsec RW (' .$ip."/".$sub.")"}{'NET'} = &getnextip($ip); + } + } +} +sub get_aliases +{ + + my $defaultNetworks = shift; + open(FILE, "${General::swroot}/ethernet/aliases") or die 'Unable to open aliases file.'; + my @current = <FILE>; + close(FILE); + my $ctr = 0; + foreach my $line (@current) + { + if ($line ne ''){ + chomp($line); + my @temp = split(/,/,$line); + if ($temp[2] eq '') { + $temp[2] = "Alias $ctr : $temp[0]"; + } + $defaultNetworks->{$temp[2]}{'IPT'} = "$temp[0]"; + $defaultNetworks->{$temp[2]}{'NET'} = "$temp[0]"; + + $ctr++; + } + } +}
sub readhash { @@ -139,68 +229,36 @@ sub writehashpart close FILE; }
-sub age -{ +sub age { my ($dev, $ino, $mode, $nlink, $uid, $gid, $rdev, $size, - $atime, $mtime, $ctime, $blksize, $blocks) = stat $_[0]; - my $now = time; - my $timestring = ''; - my $dset = 0; # Day is set, when > 0 - my $hset = 0; # Hour is set, when > 0 - my $mset = 0; # Minute is set, when > 0 - - my $totalsecs = $now - $mtime; - my $days = int($totalsecs / 86400); - my $totalhours = int($totalsecs / 3600); - my $hours = $totalhours % 24; - my $totalmins = int($totalsecs / 60); - my $mins = $totalmins % 60; - my $secs = $totalsecs % 60; + $atime, $mtime, $ctime, $blksize, $blocks) = stat $_[0]; + my $totalsecs = time() - $mtime; + my @s = ();
- if ($days > 1) { - ${timestring} .= ${days}.' '.$Lang::tr{'days'}.', '; - $dset = 1; - } - elsif ($days == 1) { - ${timestring} .= ${days}.' '.$Lang::tr{'day'}.', '; - $dset = 1; + my $secs = $totalsecs % 60; + $totalsecs /= 60; + if ($secs > 0) { + push(@s, "${secs}s"); }
- if (($hours > 1) && !($dset)) { - ${timestring} .= ${hours}.' '.$Lang::tr{'hours'}.', '; - $hset = 1; - } - elsif (($hours == 1) && !($dset)) { - ${timestring} .= ${hours}.' '.$Lang::tr{'hour'}.', '; - $hset = 1; - } - elsif ($dset) { - ${timestring} .= ${hours}.' '.$Lang::tr{'age shour'}.', '; - $hset = 1; + my $min = $totalsecs % 60; + $totalsecs /= 60; + if ($min > 0) { + push(@s, "${min}m"); }
- if ((($mins > 1) || ($mins == 0)) && !($dset || $hset)) { - ${timestring} .= ${mins}.' '.$Lang::tr{'minutes'}.', '; - $mset = 1; - } - elsif (($mins == 1) && !($dset || $hset)) { - ${timestring} .= ${mins}.' '.$Lang::tr{'minute'}.', '; - $mset = 1; - } - else { - ${timestring} .= ${mins}.' '.$Lang::tr{'age sminute'}.', '; - $mset = 1; + my $hrs = $totalsecs % 24; + $totalsecs /= 24; + if ($hrs > 0) { + push(@s, "${hrs}h"); }
- if ((($secs > 1) || ($secs == 0)) && !($dset || $hset || $mset)) { - ${timestring} .= ${secs}.' '.$Lang::tr{'age seconds'}; + my $days = int($totalsecs); + if ($days > 0) { + push(@s, "${days}d"); } - elsif (($secs == 1) && !($dset || $hset || $mset)) { - ${timestring} .= $secs.' '.$Lang::tr{'age second'}; - } - else { ${timestring} .= $secs.' '.$Lang::tr{'age ssecond'}; }
- return ${timestring}; + return join(" ", reverse(@s)); }
sub validip @@ -448,24 +506,46 @@ sub validipandmask
sub checksubnets { - my %ccdconfhash=(); - my @ccdconf=(); - my $ccdname=$_[0]; - my $ccdnet=$_[1]; + my %ccdconfhash=(); + my %ovpnconfhash=(); + my %vpnconf=(); + my %ipsecconf=(); + my %ownnet=(); + my %ovpnconf=(); + my @ccdconf=(); + my $ccdname=$_[0]; + my $ccdnet=$_[1]; + my $ownnet=$_[2]; my $errormessage; my ($ip,$cidr)=split(///,$ccdnet); $cidr=&iporsubtocidr($cidr); + #get OVPN-Subnet (dynamic range) - my %ovpnconf=(); &readhash("${General::swroot}/ovpn/settings", %ovpnconf); my ($ovpnip,$ovpncidr)= split (///,$ovpnconf{'DOVPN_SUBNET'}); $ovpncidr=&iporsubtocidr($ovpncidr); + #check if we try to use same network as ovpn server if ("$ip/$cidr" eq "$ovpnip/$ovpncidr") { $errormessage=$errormessage.$Lang::tr{'ccd err isovpnnet'}."<br>"; return $errormessage; } - #check if we use a network-name/subnet that already exists + + #check if we try to use same network as another ovpn N2N + if($ownnet ne 'ovpn'){ + &readhasharray("${General::swroot}/ovpn/ovpnconfig", %ovpnconfhash); + foreach my $key (keys %ovpnconfhash) { + if ($ovpnconfhash{$key}[3] eq 'net'){ + my @ovpnnet=split (///,$ovpnconfhash{$key}[11]); + if (&IpInSubnet($ip,$ovpnnet[0],&iporsubtodec($ovpnnet[1]))){ + $errormessage=$errormessage.$Lang::tr{'ccd err isovpnn2n'}." $ovpnconfhash{$key}[1] <br>"; + return $errormessage; + } + } + } + } + + #check if we use a network-name/subnet (static-ovpn) that already exists &readhasharray("${General::swroot}/ovpn/ccd.conf", %ccdconfhash); foreach my $key (keys %ccdconfhash) { @ccdconf=split(///,$ccdconfhash{$key}[1]); @@ -477,32 +557,45 @@ sub checksubnets my ($newip,$newsub) = split(///,$ccdnet); if (&IpInSubnet($newip,$ccdconf[0],&iporsubtodec($ccdconf[1]))) { - $errormessage=$errormessage.$Lang::tr{'ccd err issubnet'}."<br>"; + $errormessage=$errormessage.$Lang::tr{'ccd err issubnet'}." $ccdconfhash{$key}[0]<br>"; return $errormessage; } } + #check if we use a ipsec right network which is already defined - my %ipsecconf=(); - &General::readhasharray("${General::swroot}/vpn/config", %ipsecconf); - foreach my $key (keys %ipsecconf){ - if ($ipsecconf{$key}[11] ne ''){ - my ($ipsecip,$ipsecsub) = split (///, $ipsecconf{$key}[11]); - $ipsecsub=&iporsubtodec($ipsecsub); - if($ipsecconf{$key}[1] ne $ccdname){ - if ( &IpInSubnet ($ip,$ipsecip,$ipsecsub) ){ - $errormessage=$Lang::tr{'ccd err isipsecnet'}." Name: $ipsecconf{$key}[1]"; - return $errormessage; + if($ownnet ne 'ipsec'){ + &General::readhasharray("${General::swroot}/vpn/config", %ipsecconf); + foreach my $key (keys %ipsecconf){ + if ($ipsecconf{$key}[11] ne ''){ + my ($ipsecip,$ipsecsub) = split (///, $ipsecconf{$key}[11]); + $ipsecsub=&iporsubtodec($ipsecsub); + if($ipsecconf{$key}[1] ne $ccdname){ + if ( &IpInSubnet ($ip,$ipsecip,$ipsecsub) ){ + $errormessage=$Lang::tr{'ccd err isipsecnet'}." Name: $ipsecconf{$key}[1]"; + return $errormessage; + } } } } } + + #check if we use the ipsec RW Network (if defined) + &readhash("${General::swroot}/vpn/settings", %vpnconf); + if ($vpnconf{'RW_NET'} ne ''){ + my ($ipsecrwnet,$ipsecrwsub)=split (///, $vpnconf{'RW_NET'}); + if (&IpInSubnet($ip,$ipsecrwnet,&iporsubtodec($ipsecrwsub))) + { + $errormessage=$errormessage.$Lang::tr{'ccd err isipsecrw'}."<br>"; + return $errormessage; + } + } + #check if we use one of ipfire's networks (green,orange,blue) - my %ownnet=(); &readhash("${General::swroot}/ethernet/settings", %ownnet); - if (($ownnet{'GREEN_NETADDRESS'} ne '' && $ownnet{'GREEN_NETADDRESS'} ne '0.0.0.0') && &IpInSubnet($ownnet{'GREEN_NETADDRESS'},$ip,&iporsubtodec($cidr))){ $errormessage=$Lang::tr{'ccd err green'};return $errormessage;} - if (($ownnet{'ORANGE_NETADDRESS'} ne '' && $ownnet{'ORANGE_NETADDRESS'} ne '0.0.0.0') && &IpInSubnet($ownnet{'ORANGE_NETADDRESS'},$ip,&iporsubtodec($cidr))){ $errormessage=$Lang::tr{'ccd err orange'};return $errormessage;} - if (($ownnet{'BLUE_NETADDRESS'} ne '' && $ownnet{'BLUE_NETADDRESS'} ne '0.0.0.0') && &IpInSubnet($ownnet{'BLUE_NETADDRESS'},$ip,&iporsubtodec($cidr))){ $errormessage=$Lang::tr{'ccd err blue'};return $errormessage;} - if (($ownnet{'RED_NETADDRESS'} ne '' && $ownnet{'RED_NETADDRESS'} ne '0.0.0.0') && &IpInSubnet($ownnet{'RED_NETADDRESS'},$ip,&iporsubtodec($cidr))){ $errormessage=$Lang::tr{'ccd err red'};return $errormessage;} + if (($ownnet{'GREEN_NETADDRESS'} ne '' && $ownnet{'GREEN_NETADDRESS'} ne '0.0.0.0') && &IpInSubnet($ip,$ownnet{'GREEN_NETADDRESS'},&iporsubtodec($ownnet{'GREEN_NETMASK'}))){ $errormessage=$Lang::tr{'ccd err green'};return $errormessage;} + if (($ownnet{'ORANGE_NETADDRESS'} ne '' && $ownnet{'ORANGE_NETADDRESS'} ne '0.0.0.0') && &IpInSubnet($ip,$ownnet{'ORANGE_NETADDRESS'},&iporsubtodec($ownnet{'ORANGE_NETMASK'}))){ $errormessage=$Lang::tr{'ccd err orange'};return $errormessage;} + if (($ownnet{'BLUE_NETADDRESS'} ne '' && $ownnet{'BLUE_NETADDRESS'} ne '0.0.0.0') && &IpInSubnet($ip,$ownnet{'BLUE_NETADDRESS'},&iporsubtodec($ownnet{'BLUE_NETMASK'}))){ $errormessage=$Lang::tr{'ccd err blue'};return $errormessage;} + if (($ownnet{'RED_NETADDRESS'} ne '' && $ownnet{'RED_NETADDRESS'} ne '0.0.0.0') && &IpInSubnet($ip,$ownnet{'RED_NETADDRESS'},&iporsubtodec($ownnet{'RED_NETMASK'}))){ $errormessage=$Lang::tr{'ccd err red'};return $errormessage;} }
@@ -981,7 +1074,7 @@ sub GetIcmpDescription ($) { 'SKIP', 'Photur', #40 'Experimental'); - if ($index>41) {return 'unknown'} else {return @icmp_description[$index]}; + if ($index>41) {return 'unknown'} else {return $icmp_description[$index]}; }
sub GetCoreUpdateVersion() { @@ -1053,4 +1146,23 @@ sub write_file_utf8 ($) { return; }
+my $FIREWALL_RELOAD_INDICATOR = "${General::swroot}/firewall/reread"; + +sub firewall_config_changed() { + open FILE, ">$FIREWALL_RELOAD_INDICATOR" or die "Could not open $FIREWALL_RELOAD_INDICATOR"; + close FILE; +} + +sub firewall_needs_reload() { + if (-e "$FIREWALL_RELOAD_INDICATOR") { + return 1; + } + + return 0; +} + +sub firewall_reload() { + system("/usr/local/bin/firewallctrl"); +} + 1; diff --git a/config/cfgroot/graphs.pl b/config/cfgroot/graphs.pl index c51e882..487a4dd 100644 --- a/config/cfgroot/graphs.pl +++ b/config/cfgroot/graphs.pl @@ -92,8 +92,8 @@ sub makegraphbox { print "<a href='".$_[0]."?".$_[1]."?month' target='".$_[1]."box'><b>".$Lang::tr{'month'}."</b></a>"; print " - "; print "<a href='".$_[0]."?".$_[1]."?year' target='".$_[1]."box'><b>".$Lang::tr{'year'}."</b></a>"; + print "<br></center>"; print "<iframe src='".$_[0]."?".$_[1]."?".$_[2]."' width='".$width."' height='".$height."' scrolling='no' frameborder='no' marginheight='0' name='".$_[1]."box'></iframe>"; - print "</center>"; }
# Generate the CPU Graph for the current period of time for values given by @@ -422,12 +422,15 @@ sub updateprocessescpugraph {
push(@command,"COMMENT:".$Lang::tr{'caption'}."\j");
+ my $colorIndex = 0; foreach(@processesgraph){ + my $colorIndex = 10 + $count % 15; + my $color="$color{"color$colorIndex"}"; chomp($_);my @name=split(/-/,$_);chop($name[1]); if ($count eq "0"){ - push(@command,"AREA:".$name[1].random_hex_color(6)."A0:".$name[1]); + push(@command,"AREA:".$name[1].$color."A0:".$name[1]); }else{ - push(@command,"STACK:".$name[1].random_hex_color(6)."A0:".$name[1]); + push(@command,"STACK:".$name[1].$color."A0:".$name[1]); } $count++; } @@ -471,12 +474,15 @@ sub updateprocessesmemorygraph {
push(@command,"COMMENT:".$Lang::tr{'caption'}."\j");
+ my $colorIndex = 0; foreach(@processesgraph){ chomp($_);my @name=split(/-/,$_);chop($name[1]); + my $colorIndex = 10 + $count % 15; + my $color="$color{"color$colorIndex"}"; if ($count eq "0"){ - push(@command,"AREA:".$name[1].random_hex_color(6)."A0:".$name[1]); + push(@command,"AREA:".$name[1].$color."A0:".$name[1]); }else{ - push(@command,"STACK:".$name[1].random_hex_color(6)."A0:".$name[1]); + push(@command,"STACK:".$name[1].$color."A0:".$name[1]); } $count++; } @@ -602,22 +608,37 @@ sub updatefwhitsgraph { "--color=SHADEA".$color{"color19"}, "--color=SHADEB".$color{"color19"}, "--color=BACK".$color{"color21"}, - "DEF:output=".$mainsettings{'RRDLOG'}."/collectd/localhost/iptables-filter-FORWARD/ipt_bytes-DROP_OUTPUT.rrd:value:AVERAGE", - "DEF:input=".$mainsettings{'RRDLOG'}."/collectd/localhost/iptables-filter-INPUT/ipt_bytes-DROP_INPUT.rrd:value:AVERAGE", + "DEF:output=".$mainsettings{'RRDLOG'}."/collectd/localhost/iptables-filter-POLICYOUT/ipt_bytes-DROP_OUTPUT.rrd:value:AVERAGE", + "DEF:input=".$mainsettings{'RRDLOG'}."/collectd/localhost/iptables-filter-POLICYIN/ipt_bytes-DROP_INPUT.rrd:value:AVERAGE", + "DEF:forward=".$mainsettings{'RRDLOG'}."/collectd/localhost/iptables-filter-POLICYFWD/ipt_bytes-DROP_FORWARD.rrd:value:AVERAGE", "DEF:newnotsyn=".$mainsettings{'RRDLOG'}."/collectd/localhost/iptables-filter-NEWNOTSYN/ipt_bytes-DROP_NEWNOTSYN.rrd:value:AVERAGE", "DEF:portscan=".$mainsettings{'RRDLOG'}."/collectd/localhost/iptables-filter-PSCAN/ipt_bytes-DROP_PScan.rrd:value:AVERAGE", - "CDEF:amount=output,input,newnotsyn,+,+", - "COMMENT:".sprintf("%-20s",$Lang::tr{'caption'}), + "COMMENT:".sprintf("%-26s",$Lang::tr{'caption'}), "COMMENT:".sprintf("%15s",$Lang::tr{'maximal'}), "COMMENT:".sprintf("%15s",$Lang::tr{'average'}), - "COMMENT:".sprintf("%15s",$Lang::tr{'minimal'}), + "COMMENT:".sprintf("%14s",$Lang::tr{'minimal'}), "COMMENT:".sprintf("%15s",$Lang::tr{'current'})."\j", - "AREA:amount".$color{"color24"}."A0:".sprintf("%-20s",$Lang::tr{'firewallhits'}), - "GPRINT:amount:MAX:%8.1lf %sBps", - "GPRINT:amount:AVERAGE:%8.1lf %sBps", - "GPRINT:amount:MIN:%8.1lf %sBps", - "GPRINT:amount:LAST:%8.1lf %sBps\j", - "STACK:portscan".$color{"color25"}."A0:".sprintf("%-20s",$Lang::tr{'portscans'}), + "AREA:output".$color{"color25"}."A0:".sprintf("%-25s",$Lang::tr{'firewallhits'}."-OUTPUT"), + "GPRINT:output:MAX:%8.1lf %sBps", + "GPRINT:output:AVERAGE:%8.1lf %sBps", + "GPRINT:output:MIN:%8.1lf %sBps", + "GPRINT:output:LAST:%8.1lf %sBps\j", + "STACK:forward".$color{"color23"}."A0:".sprintf("%-25s",$Lang::tr{'firewallhits'}."-FORWARD"), + "GPRINT:forward:MAX:%8.1lf %sBps", + "GPRINT:forward:AVERAGE:%8.1lf %sBps", + "GPRINT:forward:MIN:%8.1lf %sBps", + "GPRINT:forward:LAST:%8.1lf %sBps\j", + "STACK:input".$color{"color24"}."A0:".sprintf("%-25s",$Lang::tr{'firewallhits'}."-INPUT"), + "GPRINT:input:MAX:%8.1lf %sBps", + "GPRINT:input:AVERAGE:%8.1lf %sBps", + "GPRINT:input:MIN:%8.1lf %sBps", + "GPRINT:input:LAST:%8.1lf %sBps\j", + "STACK:newnotsyn".$color{"color14"}."A0:".sprintf("%-25s","NewNotSyn"), + "GPRINT:newnotsyn:MAX:%8.1lf %sBps", + "GPRINT:newnotsyn:MIN:%8.1lf %sBps", + "GPRINT:newnotsyn:AVERAGE:%8.1lf %sBps", + "GPRINT:newnotsyn:LAST:%8.1lf %sBps\j", + "STACK:portscan".$color{"color16"}."A0:".sprintf("%-25s",$Lang::tr{'portscans'}), "GPRINT:portscan:MAX:%8.1lf %sBps", "GPRINT:portscan:MIN:%8.1lf %sBps", "GPRINT:portscan:AVERAGE:%8.1lf %sBps", @@ -968,17 +989,18 @@ sub updateqosgraph { @classes = <FILE>; close FILE;
+ my $colorIndex = 0; foreach $classentry (sort @classes){ @classline = split( /;/, $classentry ); if ( $classline[0] eq $qossettings{'DEV'} ){ - $color=random_hex_color(6); + my $colorIndex = 10 + $count % 15; + $color="$color{"color$colorIndex"}"; push(@command, "DEF:$classline[1]=$mainsettings{'RRDLOG'}/class_$qossettings{'CLASSPRFX'}-$classline[1]_$qossettings{'DEV'}.rrd:bytes:AVERAGE");
if ($count eq "1") { - push(@command, "AREA:$classline[1]$color:Klasse $classline[1] -".sprintf("%15s",$classline[8])); + push(@command, "AREA:$classline[1]$color:$Lang::tr{'Class'} $classline[1] -".sprintf("%15s",$classline[8])); } else { - push(@command, "STACK:$classline[1]$color:Klasse $classline[1] -".sprintf("%15s",$classline[8])); - + push(@command, "STACK:$classline[1]$color:$Lang::tr{'Class'} $classline[1] -".sprintf("%15s",$classline[8])); }
push(@command, "GPRINT:$classline[1]:MAX:%8.1lf %sBps" @@ -1099,3 +1121,36 @@ sub getprocesses { my @processesgraph = `ls -dA $mainsettings{'RRDLOG'}/collectd/localhost/processes-*/ 2>/dev/null`; return @processesgraph; } + +sub updateentropygraph { + my $period = $_[0]; + my @command = ( + "-", + "--start", + "-1".$period, + "-aPNG", + "-i", + "-z", + "-W www.ipfire.org", + "--alt-y-grid", + "-w 600", + "-h 225", + "-r", + "--lower-limit","0", + "-t $Lang::tr{'entropy'}", + "-v $Lang::tr{'bit'}", + "DEF:entropy=$mainsettings{'RRDLOG'}/collectd/localhost/entropy/entropy.rrd:entropy:AVERAGE", + "LINE3:entropy#ff0000:" . sprintf("%-15s", $Lang::tr{'entropy'}), + "VDEF:entrmin=entropy,MINIMUM", + "VDEF:entrmax=entropy,MAXIMUM", + "VDEF:entravg=entropy,AVERAGE", + "GPRINT:entrmax:" . sprintf("%12s\: %%5.0lf", $Lang::tr{'maximum'}), + "GPRINT:entrmin:" . sprintf("%12s\: %%5.0lf", $Lang::tr{'minimum'}), + "GPRINT:entravg:" . sprintf("%12s\: %%5.0lf", $Lang::tr{'average'}) . "\n", + ); + + RRDs::graph (@command); + $ERROR = RRDs::error; + + print "Error in RRD::graph for entropy: ".$ERROR."\n" if $ERROR; +} diff --git a/config/cfgroot/header.pl b/config/cfgroot/header.pl index 9129c68..39472a8 100644 --- a/config/cfgroot/header.pl +++ b/config/cfgroot/header.pl @@ -12,6 +12,7 @@ package Header;
use CGI(); +use File::Basename; use HTML::Entities(); use Socket; use Time::Local; @@ -88,18 +89,11 @@ if ( -d "/var/ipfire/langs/${language}/" ) { }; };
-### Read IPFire Buildversion -$FIREBUILD = "File not found: firebuild\n"; -if (open(MYFile, "<${swroot}/firebuild")) { - $FIREBUILD = <MYFile>; - chomp($FIREBUILD); - $FIREBUILD = "(Build: $FIREBUILD)"; - close(MYFile); -}; +our $THEME_NAME = $settings{'THEME'};
require "${swroot}/langs/en.pl"; require "${swroot}/langs/${language}.pl"; -eval `/bin/cat /srv/web/ipfire/html/themes/$settings{'THEME'}/include/functions.pl`; +eval `/bin/cat /srv/web/ipfire/html/themes/$THEME_NAME/include/functions.pl`;
sub orange_used () { if ($ethsettings{'CONFIG_TYPE'} =~ /^[24]$/) { @@ -149,11 +143,8 @@ sub genmenu { eval `/bin/cat /var/ipfire/menu.d/*.menu`; eval `/bin/cat /var/ipfire/menu.d/*.main`;
- if (! blue_used() && ! orange_used()) { - $menu->{'05.firewall'}{'subMenu'}->{'40.dmz'}{'enabled'} = 0; - } if (! blue_used()) { - $menu->{'05.firewall'}{'subMenu'}->{'30.wireless'}{'enabled'} = 0; + $menu->{'05.firewall'}{'subMenu'}->{'60.wireless'}{'enabled'} = 0; } if ( $ethsettings{'CONFIG_TYPE'} =~ /^(1|2|3|4)$/ && $ethsettings{'RED_TYPE'} eq 'STATIC' ) { $menu->{'03.network'}{'subMenu'}->{'70.aliases'}{'enabled'} = 1; @@ -167,7 +158,6 @@ sub genmenu { sub showhttpheaders { print "Cache-control: private\n"; - print "Connection: close\n"; print "Content-type: text/html; charset=UTF-8\n\n"; }
@@ -376,16 +366,16 @@ sub PrintActualLeases { &openbox('100%', 'left', $tr{'current dynamic leases'}); print <<END -<table width='100%'> +<table width='100%' class='tbl'> <tr> -<td width='25%' align='center'><a href='$ENV{'SCRIPT_NAME'}?IPADDR'><b>$tr{'ip address'}</b></a></td> -<td width='25%' align='center'><a href='$ENV{'SCRIPT_NAME'}?ETHER'><b>$tr{'mac address'}</b></a></td> -<td width='20%' align='center'><a href='$ENV{'SCRIPT_NAME'}?HOSTNAME'><b>$tr{'hostname'}</b></a></td> -<td width='25%' align='center'><a href='$ENV{'SCRIPT_NAME'}?ENDTIME'><b>$tr{'lease expires'} (local time d/m/y)</b></a></td> -<td width='5%' align='center'><b>Add to fix leases<b></td> +<th width='25%' align='center'><a href='$ENV{'SCRIPT_NAME'}?IPADDR'><b>$tr{'ip address'}</b></a></th> +<th width='25%' align='center'><a href='$ENV{'SCRIPT_NAME'}?ETHER'><b>$tr{'mac address'}</b></a></th> +<th width='20%' align='center'><a href='$ENV{'SCRIPT_NAME'}?HOSTNAME'><b>$tr{'hostname'}</b></a></th> +<th width='25%' align='center'><a href='$ENV{'SCRIPT_NAME'}?ENDTIME'><b>$tr{'lease expires'} (local time d/m/y)</b></a></th> +<th width='5%' align='center'><b>Add to fix leases<b></th> </tr> END - ; +;
open(LEASES,"/var/state/dhcp/dhcpd.leases") or die "Can't open dhcpd.leases"; while ($line = <LEASES>) { @@ -427,24 +417,27 @@ END close(LEASES);
my $id = 0; + my $col=""; foreach my $key (sort leasesort keys %entries) { print "<form method='post' action='/cgi-bin/dhcp.cgi'>\n"; my $hostname = &cleanhtml($entries{$key}->{HOSTNAME},"y");
if ($id % 2) { - print "<tr bgcolor='$table1colour'>"; + print "<tr>"; + $col="bgcolor='$table1colour'"; } else { - print "<tr bgcolor='$table2colour'>"; + print "<tr>"; + $col="bgcolor='$table2colour'"; }
print <<END -<td align='center'><input type='hidden' name='FIX_ADDR' value='$entries{$key}->{IPADDR}' />$entries{$key}->{IPADDR}</td> -<td align='center'><input type='hidden' name='FIX_MAC' value='$entries{$key}->{ETHER}' />$entries{$key}->{ETHER}</td> -<td align='center'><input type='hidden' name='FIX_REMARK' value='$hostname' /> $hostname</td> -<td align='center'><input type='hidden' name='FIX_ENABLED' value='on' /> +<td align='center' $col><input type='hidden' name='FIX_ADDR' value='$entries{$key}->{IPADDR}' />$entries{$key}->{IPADDR}</td> +<td align='center' $col><input type='hidden' name='FIX_MAC' value='$entries{$key}->{ETHER}' />$entries{$key}->{ETHER}</td> +<td align='center' $col><input type='hidden' name='FIX_REMARK' value='$hostname' /> $hostname</td> +<td align='center' $col><input type='hidden' name='FIX_ENABLED' value='on' /> END - ; +;
($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $dst) = localtime ($entries{$key}->{ENDTIME}); $enddate = sprintf ("%02d/%02d/%d %02d:%02d:%02d",$mday,$mon+1,$year+1900,$hour,$min,$sec); @@ -455,10 +448,10 @@ END print "$enddate"; } print <<END -<td><input type='hidden' name='ACTION' value='$Lang::tr{'add'}2' /><input type='submit' name='SUBMIT' value='$Lang::tr{'add'}' /> -</td></td></tr></form> +</td><td $col><input type='hidden' name='ACTION' value='$Lang::tr{'add'}2' /><input type='submit' name='SUBMIT' value='$Lang::tr{'add'}' /> +</td></tr></form> END - ; +; $id++; }
diff --git a/config/cfgroot/p2protocols b/config/cfgroot/p2protocols deleted file mode 100644 index 78c6101..0000000 --- a/config/cfgroot/p2protocols +++ /dev/null @@ -1,9 +0,0 @@ -Bittorrent;bit;on; -Edonkey;edk;on; -KaZaA;kazaa;on; -Gnutella;gnu;on; -DirectConnect;dc;on; -Applejuice;apple;on; -WinMX;winmx;on; -SoulSeek;soul;on; -Ares;ares;on; \ No newline at end of file diff --git a/config/collectd/collectd.conf b/config/collectd/collectd.conf index 67d9e19..61327bf 100644 --- a/config/collectd/collectd.conf +++ b/config/collectd/collectd.conf @@ -15,6 +15,7 @@ ReadThreads 1 LoadPlugin cpu #LoadPlugin cpufreq LoadPlugin disk +LoadPlugin entropy LoadPlugin interface LoadPlugin iptables LoadPlugin load @@ -45,10 +46,11 @@ include "/etc/collectd.precache" </Plugin>
<Plugin iptables> - Chain filter INPUT DROP_INPUT - Chain filter FORWARD DROP_OUTPUT Chain filter PSCAN DROP_PScan Chain filter NEWNOTSYN DROP_NEWNOTSYN + Chain filter POLICYFWD DROP_FORWARD + Chain filter POLICYOUT DROP_OUTPUT + Chain filter POLICYIN DROP_INPUT </Plugin>
#<Plugin logfile> diff --git a/config/cron/crontab b/config/cron/crontab index ad90b07..92c3a78 100644 --- a/config/cron/crontab +++ b/config/cron/crontab @@ -50,11 +50,12 @@ HOME=/ %weekly * 3-5 /var/ipfire/updatexlrator/autocheck/cron.weekly %monthly * 3-5 * /var/ipfire/updatexlrator/autocheck/cron.monthly
-# Reset Dialup Statistics -&bootrun 0 0 1 * * /usr/local/bin/dialctrl.pl reset - # fireinfo %nightly,random * 23-4 /usr/bin/sendprofile >/dev/null 2>&1
# pakfire %nightly,random * 23-4 /usr/local/bin/pakfire update >/dev/null 2>&1 + +# Re-read firewall rules every Sunday in March, October and November to take care of daylight saving time +00 3 * 3 0 /usr/local/bin/timezone-transition /usr/local/bin/firewallctrl +00 2 * 10-11 0 /usr/local/bin/timezone-transition /usr/local/bin/firewallctrl diff --git a/config/etc/fstab b/config/etc/fstab index 4860d6f..0cd30eb 100644 --- a/config/etc/fstab +++ b/config/etc/fstab @@ -5,10 +5,5 @@ DEVICE1 /boot ext2 defaults 1 2 DEVICE2 swap swap pri=1 0 0 DEVICE3 / FSTYPE defaults 1 1 DEVICE4 /var FSTYPE defaults 1 1 -proc /proc proc defaults 0 0 -sysfs /sys sysfs defaults 0 0 -devpts /dev/pts devpts gid=4,mode=620 0 0 -#none /tmp tmpfs defaults 0 0 none /var/log/rrd tmpfs defaults,size=64M 0 0 none /var/lock tmpfs defaults,size=8M 0 0 -none /var/run tmpfs defaults,size=2M 0 0 diff --git a/config/etc/inittab b/config/etc/inittab index ea5ae99..5f7d0a6 100644 --- a/config/etc/inittab +++ b/config/etc/inittab @@ -19,7 +19,7 @@ ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
su:S016:once:/sbin/sulogin
-1:2345:respawn:/sbin/agetty tty1 9600 +1:2345:respawn:/sbin/agetty tty1 9600 --noclear 2:2345:respawn:/sbin/agetty tty2 9600 3:2345:respawn:/sbin/agetty tty3 9600 4:2345:respawn:/sbin/agetty tty4 9600 diff --git a/config/etc/modprobe.d/cfg80211 b/config/etc/modprobe.d/cfg80211 deleted file mode 100644 index e72bedd..0000000 --- a/config/etc/modprobe.d/cfg80211 +++ /dev/null @@ -1 +0,0 @@ -blacklist ieee80211 diff --git a/config/etc/modprobe.d/cfg80211.conf b/config/etc/modprobe.d/cfg80211.conf new file mode 100644 index 0000000..e72bedd --- /dev/null +++ b/config/etc/modprobe.d/cfg80211.conf @@ -0,0 +1 @@ +blacklist ieee80211 diff --git a/config/etc/modprobe.d/pcspeaker b/config/etc/modprobe.d/pcspeaker deleted file mode 100644 index d4e7e94..0000000 --- a/config/etc/modprobe.d/pcspeaker +++ /dev/null @@ -1 +0,0 @@ -blacklist snd_pcsp diff --git a/config/etc/modprobe.d/pcspeaker.conf b/config/etc/modprobe.d/pcspeaker.conf new file mode 100644 index 0000000..d4e7e94 --- /dev/null +++ b/config/etc/modprobe.d/pcspeaker.conf @@ -0,0 +1 @@ +blacklist snd_pcsp diff --git a/config/etc/sysctl.conf b/config/etc/sysctl.conf index df3ef5f..e2e3d81 100644 --- a/config/etc/sysctl.conf +++ b/config/etc/sysctl.conf @@ -1,7 +1,10 @@ net.ipv4.ip_forward = 1 net.ipv4.ip_dynaddr = 1 + net.ipv4.icmp_echo_ignore_broadcasts = 1 net.ipv4.icmp_ignore_bogus_error_responses = 1 +net.ipv4.icmp_ratelimit = 1000 +net.ipv4.icmp_ratemask = 6168
net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_fin_timeout = 30 @@ -28,3 +31,6 @@ vm.min_free_kbytes = 8192 # Disable IPv6 by default. net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 + +# Enable netfilter accounting +net.netfilter.nf_conntrack_acct=1 diff --git a/config/firewall/convert-dmz b/config/firewall/convert-dmz new file mode 100755 index 0000000..7b77045 --- /dev/null +++ b/config/firewall/convert-dmz @@ -0,0 +1,202 @@ +#!/usr/bin/perl + +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2013 Alexander Marx amarx@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### +# # +# This script converts old dmz holes rules from old firewall # +# to the new one. This is a 2-step process. # +# STEP1: read old config and normalize settings # +# STEP2: check valid ip and save valid rules to new firewall # +# # +############################################################################### +my @current=(); +my @alias=(); +my %configdmz=(); +my %ifaces=(); +my %configfwdfw=(); +require '/var/ipfire/general-functions.pl'; +my $dmzconfig = "${General::swroot}/dmzholes/config"; +my $fwdfwconfig = "${General::swroot}/firewall/config"; +my $ifacesettings = "${General::swroot}/ethernet/settings"; +my $field0 = 'ACCEPT'; +my $field1 = 'FORWARDFW'; +my $field2 = ''; #ON or emtpy +my $field3 = ''; #std_net_src or src_addr +my $field4 = ''; #ALL or IP-Address with /32 +my $field5 = ''; #std_net_tgt or tgt_addr +my $field6 = ''; #IP or network name +my $field11 = 'ON'; #use target port +my $field12 = ''; #TCP or UDP +my $field13 = 'All ICMP-Types'; +my $field14 = 'TGT_PORT'; +my $field15 = ''; #Port Number +my $field16 = ''; #remark +my $field26 = '00:00'; +my $field27 = '00:00'; +my $field28 = ''; +my $field29 = 'ALL'; +my $field30 = ''; +my $field31 = 'dnat'; + +if (! -e "$dmzconfig") { + print "DMZ config file not found. Exiting!\n"; + exit(1); +} + +if (! -s "$dmzconfig") { + print "Empty DMZ configuration file. Nothing to do. Exiting...\n"; + exit(0); +} + +open(FILE, $dmzconfig) or die 'Unable to open config file.'; +my @current = <FILE>; +close(FILE); +#open LOGFILE +open (LOG, ">/var/log/converters/dmz-convert.log") or die $!; +&General::readhash($ifacesettings, %ifaces); +&General::readhasharray($fwdfwconfig,%configfwdfw); +&process_rules; +sub process_rules{ + foreach my $line (@current){ + my $now=localtime; + #get values from old configfile + my ($a,$b,$c,$d,$e,$f,$g,$h) = split (",",$line); + $h =~ s/\s*\n//gi; + print LOG "$now Processing A: $a B: $b C: $c D: $d E: $e F: $f G: $g H: $h\n"; + #Now convert values and check ip addresses + $a=uc($a); + $e=uc($e); + $field2=$e if($e eq 'ON'); + #SOURCE IP-check + $b=&check_ip($b); + if (&General::validipandmask($b)){ + #When ip valid, check if we have a network + my ($ip,$subnet) = split ("/",$b); + if ($f eq 'orange' && $ip eq $ifaces{'ORANGE_NETADDRESS'}){ + $field3='std_net_src'; + $field4='ORANGE'; + }elsif($f eq 'blue' && $ip eq $ifaces{'BLUE_NETADDRESS'}){ + $field3='std_net_src'; + $field4='BLUE'; + }elsif($f eq 'orange' && &General::IpInSubnet($ip,$ifaces{'ORANGE_NETADDRESS'},$ifaces{'ORANGE_NETMASK'})){ + $field3='src_addr'; + $field4=$b; + }elsif($f eq 'blue' && &General::IpInSubnet($ip,$ifaces{'BLUE_NETADDRESS'},$ifaces{'BLUE_NETMASK'})){ + $field3='src_addr'; + $field4=$b; + }else{ + print LOG "$now ->NOT Converted, source ip $b not part of source network $f \n\n"; + next; + } + }else{ + print LOG "$now -> SOURCE IP INVALID. \n\n"; + next; + } + #TARGET IP-check + $c=&check_ip($c); + if (&General::validipandmask($c)){ + my $now=localtime; + #When ip valid, check if we have a network + my ($ip,$subnet) = split ("/",$c); + if ($g eq 'green' && $ip eq $ifaces{'GREEN_NETADDRESS'}){ + $field5='std_net_tgt'; + $field6='GREEN'; + }elsif($g eq 'blue' && $ip eq $ifaces{'BLUE_NETADDRESS'}){ + $field5='std_net_tgt'; + $field6='BLUE'; + }elsif($g eq 'green' && &General::IpInSubnet($ip,$ifaces{'GREEN_NETADDRESS'},$ifaces{'GREEN_NETMASK'})){ + $field5='tgt_addr'; + $field6=$c; + }elsif($g eq 'blue' && &General::IpInSubnet($ip,$ifaces{'BLUE_NETADDRESS'},$ifaces{'BLUE_NETMASK'})){ + $field5='tgt_addr'; + $field6=$c; + }else{ + print LOG "$now ->NOT Converted, target ip $c not part of target network $g \n\n"; + next; + } + }else{ + print LOG "$now -> TARGET IP INVALID. \n\n"; + next; + } + $field12=$a; + #convert portrange + $d =~ tr/-/:/; + $field15=$d; + $field16=$h; + my $key = &General::findhasharraykey (%configfwdfw); + foreach my $i (0 .. 27) { $configfwdfw{$key}[$i] = "";} + $configfwdfw{$key}[0] = $field0; + $configfwdfw{$key}[1] = $field1; + $configfwdfw{$key}[2] = $field2; + $configfwdfw{$key}[3] = $field3; + $configfwdfw{$key}[4] = $field4; + $configfwdfw{$key}[5] = $field5; + $configfwdfw{$key}[6] = $field6; + $configfwdfw{$key}[7] = ''; + $configfwdfw{$key}[8] = $field12; + $configfwdfw{$key}[9] = ''; + $configfwdfw{$key}[10] = ''; + $configfwdfw{$key}[11] = $field11; + $configfwdfw{$key}[12] = ''; + $configfwdfw{$key}[13] = ''; + $configfwdfw{$key}[14] = $field14; + $configfwdfw{$key}[15] = $field15; + $configfwdfw{$key}[16] = $field16; + $configfwdfw{$key}[17] = ''; + $configfwdfw{$key}[18] = ''; + $configfwdfw{$key}[19] = ''; + $configfwdfw{$key}[20] = ''; + $configfwdfw{$key}[21] = ''; + $configfwdfw{$key}[22] = ''; + $configfwdfw{$key}[23] = ''; + $configfwdfw{$key}[24] = ''; + $configfwdfw{$key}[25] = ''; + $configfwdfw{$key}[26] = $field26; + $configfwdfw{$key}[27] = $field27; + $configfwdfw{$key}[28] = $field28; + $configfwdfw{$key}[29] = $field29; + $configfwdfw{$key}[30] = $field30; + $configfwdfw{$key}[31] = $field31; + print LOG "$Now -> Converted to $field0,$field1,$field2,$field3,$field4,$field5,$field6,,$field12,,,$field11,,,$field14,$field15,$field16,,,,,,,,,,$field26,$field27,$field28,$field29,$field30,$field31\n"; + } + &General::writehasharray($fwdfwconfig,%configfwdfw); +close (LOG); +} + +sub check_ip +{ + my $adr=shift; + my $a; + #ip with subnet in decimal + if($adr =~ m/^(\d\d?\d?).(\d\d?\d?).(\d\d?\d?).(\d\d?\d?)/(\d{1,2})$/){ + $adr=int($1).".".int($2).".".int($3).".".int($4); + my $b = &General::iporsubtodec($5); + $a=$adr."/".$b; + }elsif($adr =~ /^(\d{1,3}).(\d{1,3}).(\d{1,3}).(\d{1,3})$/){ + $adr=int($1).".".int($2).".".int($3).".".int($4); + if(&General::validip($adr)){ + $a=$adr."/32"; + } + } + if(&General::validipandmask($adr)){ + $a=&General::iporsubtodec($adr); + } + return $a; +} diff --git a/config/firewall/convert-outgoingfw b/config/firewall/convert-outgoingfw new file mode 100755 index 0000000..2f9b74c --- /dev/null +++ b/config/firewall/convert-outgoingfw @@ -0,0 +1,704 @@ +#!/usr/bin/perl +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2013 Alexander Marx amarx@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### +# # +# This script converts old groups and firewallrules # +# to the new one. This is a 3-step process. # +# STEP1: convert groups ->LOG /var/log/converters # +# STEP2: convert rules ->LOG /var/log/converters # +# STEP3: convert P2P rules # +# # +############################################################################### + +require '/var/ipfire/general-functions.pl'; +require "${General::swroot}/lang.pl"; + +use Socket; +use File::Path; +use File::Copy; + +my $ipgrouppath = "${General::swroot}/outgoing/groups/ipgroups/"; +my $macgrouppath = "${General::swroot}/outgoing/groups/macgroups/"; +my $outgoingrules = "${General::swroot}/outgoing/rules"; +my $outfwsettings = "${General::swroot}/outgoing/settings"; +my $host = "Converted "; +my $confighosts = "${General::swroot}/fwhosts/customhosts"; +my $confignets = "${General::swroot}/fwhosts/customnetworks"; +my $configgroups = "${General::swroot}/fwhosts/customgroups"; +my $ovpnsettings = "${General::swroot}/ovpn/settings"; +my $ovpnconfig = "${General::swroot}/ovpn/ovpnconfig"; +my $ccdconfig = "${General::swroot}/ovpn/ccd.conf"; +my $fwdfwconfig = "${General::swroot}/firewall/config"; +my $outfwconfig = "${General::swroot}/firewall/outgoing"; +my $fwdfwsettings = "${General::swroot}/firewall/settings"; +my @ipgroups = qx(ls $ipgrouppath 2>/dev/null); +my @macgroups = qx(ls $macgrouppath 2>/dev/null); +my @hostarray=(); +my %outsettings=(); +my %hosts=(); +my %nets=(); +my %groups=(); +my %settingsovpn=(); +my %configovpn=(); +my %ccdconf=(); +my %fwconfig=(); +my %fwconfigout=(); +my %fwdsettings=(); +my %ownnet=(); +my %ovpnSettings = (); +my @active= ('Aktiv', 'aktiv', 'Active', 'Activo', 'Actif', 'Actief', 'Aktywne', 'ÐкÑОвеМ', 'Aktif'); +&General::readhash("${General::swroot}/ovpn/settings", %ovpnSettings); +&General::readhash("${General::swroot}/ethernet/settings", %ownnet); + +if (-e "$outfwsettings") { + &General::readhash($outfwsettings,%outsettings); +} +else +{ + print "Config file for outgoing-firewall not found. Exiting!\n"; + exit(1); +} + +if (! -s "$outfwsettings") { + print "Empty DMZ configuration file. Nothing to do. Exiting...\n"; + #Fill the firewall settings file + open (SETTINGS, ">/var/ipfire/firewall/settings"); + print SETTINGS "POLICY=MODE2\n"; + print SETTINGS "POLICY1=MODE2\n"; + close (SETTINGS); + exit(0); +} + +#ONLY RUN if /var/ipfire/outgoing exists +if ( -d "/var/ipfire/outgoing"){ + &process_groups; + &process_rules; + &process_p2p; +} +else +{ + print "/var/ipfire/outgoing not found. Exiting!\n"; + exit 1 +} + +system("/usr/local/bin/firewallctrl"); + +sub process_groups +{ + if(! -d "/var/log/converters"){ mkdir("/var/log/converters");} + if( -f "/var/log/converters/groups-convert.log"){rmtree("var/log/converters");} + open (LOG, ">/var/log/converters/groups-convert.log") or die $!; + #IP Group processing + foreach my $group (@ipgroups){ + my $now=localtime; + chomp $group; + print LOG "\n$now Processing IP-GROUP: $group...\n"; + open (DATEI, "<$ipgrouppath/$group"); + my @zeilen = <DATEI>; + foreach my $ip (@zeilen){ + chomp($ip); + $ip =~ s/\s//gi; + print LOG "$now Check IP $ip from Group $group "; + my $val=&check_ip($ip); + if($val){ + push(@hostarray,$val.",ip"); + print LOG "$now -> OK\n"; + } + else{ + print LOG "$now -> IP "$ip" from group $group not converted (invalid IP) \n"; + } + $val=''; + } + &new_hostgrp($group,'ip'); + @hostarray=(); + } + $group=''; + @zeilen=(); + @hostarray=(); + #MAC Group processing + foreach my $group (@macgroups){ + chomp $group; + print LOG "\nProcessing MAC-GROUP: $group...\n"; + open (DATEI, "<$macgrouppath/$group") or die 'Unable to open config file.'; + my @zeilen = <DATEI>; + foreach my $mac (@zeilen){ + chomp($mac); + $mac =~ s/\s//gi; + print LOG "$now Checking MAC $mac from group $group "; + #MAC checking + if(&General::validmac($mac)){ + $val=$mac; + } + if($val){ + push(@hostarray,$val.",mac"); + print LOG "$now -> OK\n"; + } + else{ + print LOG "$now -> Mac $mac from group $group not converted (invalid MAC)\n"; + } + $val=''; + } + &new_hostgrp($group,'mac'); + @hostarray=(); + @zeilen=(); + } + close (LOG); +} +sub check_ip +{ + my $adr=shift; + my $a; + #ip with subnet in decimal + if($adr =~ m/^(\d\d?\d?).(\d\d?\d?).(\d\d?\d?).(\d\d?\d?)/(\d{1,2})$/){ + $adr=int($1).".".int($2).".".int($3).".".int($4); + my $b = &General::iporsubtodec($5); + $a=$adr."/".$b; + }elsif($adr =~ /^(\d{1,3}).(\d{1,3}).(\d{1,3}).(\d{1,3})$/){ + $adr=int($1).".".int($2).".".int($3).".".int($4); + if(&General::validip($adr)){ + $a=$adr."/255.255.255.255"; + } + } + if(&General::validipandmask($adr)){ + $a=&General::iporsubtodec($adr); + } + return $a; +} +sub new_hostgrp +{ + &General::readhasharray($confighosts,%hosts); + &General::readhasharray($confignets,%nets); + &General::readhasharray($configgroups,%groups); + my $grp=shift; + my $run=shift; + my $name; #"converted" + my $name2; + my $name3; #custom host/custom net + my $mac2; + foreach my $adr (@hostarray){ + if($run eq 'ip'){ + my ($ip,$type) = split(",",$adr); + my ($ippart,$subnet) = split("/",$ip); + my ($byte1,$byte2,$byte3,$byte4) = split(/./,$subnet); + if($byte4 eq '255'){ + print LOG "Processing SINGLE HOST $ippart/$subnet from group $grp\n"; + if(!&check_host($ip)){ + my $key = &General::findhasharraykey(%hosts); + $name="host "; + $name2=$name.$ippart; + $name3="Custom Host"; + $hosts{$key}[0] = $name2; + $hosts{$key}[1] = $type; + $hosts{$key}[2] = $ip; + $hosts{$key}[3] = ''; + print LOG "->Host (IP) $ip added to custom hosts\n" + }else{ + print LOG "->Host (IP) $ip already exists in custom hosts\n"; + $name="host "; + $name2=$name.$ippart; + $name="host "; + $name2=$name.$ippart; + $name3="Custom Host"; + } + }elsif($byte4 < '255'){ + print LOG "Processing NETWORK $ippart/$subnet from Group $grp\n"; + if(!&check_net($ippart,$subnet)){ + #Check if this network is one one of IPFire internal networks + if (($ownnet{'GREEN_NETADDRESS'} ne '' && $ownnet{'GREEN_NETADDRESS'} ne '0.0.0.0') && &General::IpInSubnet($ippart,$ownnet{'GREEN_NETADDRESS'},$ownnet{'GREEN_NETMASK'})) + { + $name2='GREEN'; + $name3='Standard Network'; + }elsif (($ownnet{'ORANGE_NETADDRESS'} ne '' && $ownnet{'ORANGE_NETADDRESS'} ne '0.0.0.0') && &General::IpInSubnet($ippart,$ownnet{'ORANGE_NETADDRESS'},$ownnet{'ORANGE_NETMASK'})) + { + $name2='ORANGE'; + $name3='Standard Network'; + }elsif (($ownnet{'BLUE_NETADDRESS'} ne '' && $ownnet{'BLUE_NETADDRESS'} ne '0.0.0.0') && &General::IpInSubnet($ippart,$ownnet{'BLUE_NETADDRESS'},$ownnet{'BLUE_NETMASK'})) + { + $name2='BLUE'; + $name3='Standard Network'; + }elsif ($ippart eq '0.0.0.0') + { + $name2='ALL'; + $name3='Standard Network'; + }elsif(defined($ovpnSettings{'DOVPN_SUBNET'}) && "$ippart/".&General::iporsubtodec($subnet) eq $ovpnSettings{'DOVPN_SUBNET'}) + { + $name2='OpenVPN-Dyn'; + $name3='Standard Network'; + }else{ + my $netkey = &General::findhasharraykey(%nets); + $name="net "; + $name2=$name.$ippart; + $name3="Custom Network"; + $nets{$netkey}[0] = $name2; + $nets{$netkey}[1] = $ippart; + $nets{$netkey}[2] = $subnet; + $nets{$netkey}[3] = ''; + print LOG "->Network $ippart/$subnet added to custom networks\n"; + } + }else{ + print LOG "Network $ippart already exists in custom networks\n"; + $name="net "; + $name2=$name.$ippart; + $name="net "; + $name2=$name.$ippart; + $name3="Custom Network"; + } + } + if($name2 && !&check_grp($grp,$name2)){ + my $grpkey = &General::findhasharraykey(%groups); + $groups{$grpkey}[0] = $grp; + $groups{$grpkey}[1] = ''; + $groups{$grpkey}[2] = $name2; + $groups{$grpkey}[3] = $name3; + print LOG "->$name2 added to group $grp\n"; + } + }elsif($run eq 'mac'){ + #MACRUN + my ($mac,$type) = split(",",$adr); + print LOG "Processing HOST (MAC) $mac\n"; + if(!&check_host($mac)){ + my $key = &General::findhasharraykey(%hosts); + $name="host "; + $mac2=$mac; + $mac2 =~ s/:/-/g; + $name2=$name.$mac2; + $name3="Custom Host"; + $hosts{$key}[0] = $name2; + $hosts{$key}[1] = $type; + $hosts{$key}[2] = $mac; + print LOG "->Host (MAC) $mac added to custom hosts\n"; + }else{ + $mac2=mac; + $mac2 =~ s/:/-/g; + print LOG "->Host (MAC) $mac already exists in custom hosts \n"; + $name="host "; + $name2=$name.$mac2; + $name3="Custom Host"; + } + if($name2 && !&check_grp($grp,$name2)){ + my $grpkey = &General::findhasharraykey(%groups); + $groups{$grpkey}[0] = $grp; + $groups{$grpkey}[1] = ''; + $groups{$grpkey}[2] = $name2; + $groups{$grpkey}[3] = $name3; + print LOG "->$name2 added to group $grp\n"; + } + } + } + @hostarray=(); + &General::writehasharray($confighosts,%hosts); + &General::writehasharray($configgroups,%groups); + &General::writehasharray($confignets,%nets); + +} +sub check_host +{ + my $ip=shift; + foreach my $key (sort keys %hosts) + { + if($hosts{$key}[2] eq $ip) + { + return 1; + } + } + return 0; +} +sub check_net +{ + my $ip=shift; + my $sub=shift; + foreach my $key (sort keys %nets) + { + if($nets{$key}[1] eq $ip && $nets{$key}[2] eq $sub) + { + return 1; + } + } + return 0; +} +sub check_grp +{ + my $grp=shift; + my $value=shift; + foreach my $key (sort keys %groups) + { + if($groups{$key}[0] eq $grp && $groups{$key}[2] eq $value) + { + return 1; + } + } + return 0; +} +sub process_rules +{ + my ($type,$action,$active,$grp1,$source,$grp2,$useport,$port,$prot,$grp3,$target,$remark,$log,$time,$time_mon,$time_tue,$time_wed,$time_thu,$time_fri,$time_sat,$time_sun,$time_from,$time_to); + #open LOG + if( -f "/var/log/converters/outgoingfw-convert.log"){unlink ("/var/log/converters/outgoingfw-convert.log");} + open (LOG, ">/var/log/converters/outgoingfw-convert.log") or die $!; + + &General::readhash($fwdfwsettings,%fwdsettings); + if ($outsettings{'POLICY'} eq 'MODE1'){ + $fwdsettings{'POLICY'}='MODE1'; + $fwdsettings{'POLICY1'}='MODE2'; + $type='ALLOW'; + $action='ACCEPT'; + }else{ + $fwdsettings{'POLICY'}='MODE2'; + $fwdsettings{'POLICY1'}='MODE2'; + $type='DENY'; + $action='DROP'; + } + &General::writehash($fwdfwsettings,%fwdsettings); + open (DATEI, "<$outgoingrules"); + my @lines = <DATEI>; + foreach my $rule (@lines) + { + &General::readhasharray($fwdfwconfig,%fwconfig); + &General::readhasharray($outfwconfig,%fwconfigout); + my $now=localtime; + chomp($rule); + $port=''; + print LOG "$now processing: $rule\n"; + my @configline=(); + @configline = split( /;/, $rule ); + my @prot=(); + if($configline[0] eq $type){ + #some variables we can use from old config + if($configline[1] eq 'on'){ $active='ON';}else{$active='';} + if($configline[3] eq 'all' && $configline[8] ne ''){ + push(@prot,"TCP"); + push(@prot,"UDP"); + }elsif($configline[3] eq 'all' && $configline[8] eq ''){ + push(@prot,""); + }else{ + push(@prot,$configline[3]); + } + if($configline[4] ne ''){ + $configline[4] =~ s/,/;/g; + $remark = $configline[4]; + }else{$remark = '';} + #find all "active" tags in all language files and check them against the old config + my $logging='0'; + foreach (@active){ + $logging='1' if ($_ eq $configline[9]); + } + if($logging eq '1' ){ $log='ON';}else{$log='';} + if($configline[10] eq 'on' && $configline[11] eq 'on' && $configline[12] eq 'on' && $configline[13] eq 'on' && $configline[14] eq 'on' && $configline[15] eq 'on' && $configline[16] eq 'on'){ + if($configline[17] eq '00:00' && $configline[18] eq '00:00'){ + $time=''; + }else{ + $time='ON'; + } + }else{ + $time='ON'; + } + $time_mon=$configline[10]; + $time_tue=$configline[11]; + $time_wed=$configline[12]; + $time_thu=$configline[13]; + $time_fri=$configline[14]; + $time_sat=$configline[15]; + $time_sun=$configline[16]; + $time_from=$configline[17]; + $time_to=$configline[18]; + ############################################################ + #sourcepart + if ($configline[2] eq 'green') { + $grp1='std_net_src'; + $source='GREEN'; + }elsif ($configline[2] eq 'orange') { + $grp1='std_net_src'; + $source='ORANGE'; + }elsif ($configline[2] eq 'red') { + $grp1='std_net_src'; + $source='IPFire'; + &General::readhash($fwdfwsettings,%fwdsettings); + $fwdsettings{'POLICY1'}=$outsettings{'POLICY'}; + $fwdsettings{'POLICY'}=$outsettings{'POLICY'}; + &General::writehash($fwdfwsettings,%fwdsettings); + }elsif ($configline[2] eq 'blue') { + $grp1='std_net_src'; + $source='BLUE'; + }elsif ($configline[2] eq 'ipsec') { + print LOG "$now -> Rule not converted, ipsec+ interface is obsolet since IPFire 2.7 \n"; + next; + }elsif ($configline[2] eq 'ovpn') { + print LOG "$now ->Creating networks/groups for OpenVPN...\n"; + &build_ovpn_grp; + $grp1='cust_grp_src'; + $source='ovpn' + }elsif ($configline[2] eq 'ip') { + my $z=&check_ip($configline[5]); + if($z){ + my ($ipa,$subn) = split("/",$z); + $subn=&General::iporsubtocidr($subn); + $grp1='src_addr'; + $source="$ipa/$subn"; + }else{ + print LOG "$now -> Rule not converted, missing/invalid source ip "$configline[5]"\n"; + next; + } + }elsif ($configline[2] eq 'mac') { + if(&General::validmac($configline[6])){ + $grp1='src_addr'; + $source=$configline[6]; + }else{ + print LOG"$now -> Rule not converted, invalid MAC "$configline[6]" \n"; + next; + } + }elsif ($configline[2] eq 'all') { + $grp1='std_net_src'; + $source='ALL'; + }else{ + foreach my $key (sort keys %groups){ + if($groups{$key}[0] eq $configline[2]){ + $grp1='cust_grp_src'; + $source=$configline[2]; + } + } + if ($grp1 eq '' || $source eq ''){ + print LOG "$now -> Rule not converted, no valid source recognised\n"; + } + } + ############################################################ + #destinationpart + if($configline[7] ne '' && $configline[7] ne '0.0.0.0'){ + my $address=&check_ip($configline[7]); + if($address){ + my ($dip,$dsub) = split("/",$address); + $dsub=&General::iporsubtocidr($dsub); + $grp2='tgt_addr'; + $target="$dip/$dsub"; + }elsif(!$address){ + my $getwebsiteip=&get_ip_from_domain($configline[7]); + if ($getwebsiteip){ + $grp2='tgt_addr'; + $target=$getwebsiteip; + $remark.=" $configline[7]"; + }else{ + print LOG "$now -> Rule not converted, invalid domain "$configline[7]"\n"; + next; + } + } + }else{ + $grp2='std_net_tgt'; + $target='ALL'; + } + if($configline[8] ne '' && $configline[3] ne 'gre' && $configline[3] ne 'esp'){ + my @values=(); + my @parts=split(",",$configline[8]); + foreach (@parts){ + $_=~ tr/-/:/; + if (!($_ =~ /^(\d+):(\d+)$/)) { + if(&General::validport($_)){ + $useport='ON'; + push (@values,$_); + $grp3='TGT_PORT'; + }else{ + print LOG "$now -> Rule not converted, invalid destination Port "$configline[8]"\n"; + next; + } + }else{ + my ($a1,$a2) = split(/:/,$_); + if (&General::validport($a1) && &General::validport($a2) && $a1 < $a2){ + $useport='ON'; + push (@values,"$a1:$a2"); + $grp3='TGT_PORT'; + }else{ + print LOG "$now -> Rule not converted, invalid destination Port "$configline[8]"\n"; + next; + } + } + } + $port=join("|",@values); + @values=(); + @parts=(); + } + }else{ + print LOG "-> Rule not converted because not for Firewall mode $outsettings{'POLICY'} (we are only converting for actual mode)\n"; + } + my $check; + my $chain; + foreach my $protocol (@prot){ + my $now=localtime; + if ($source eq 'IPFire'){ + $chain='OUTGOINGFW'; + }else{ + $chain='FORWARDFW'; + } + $protocol=uc($protocol); + print LOG "$now -> Converted: $action,$chain,$active,$grp1,$source,$grp2,$target,,$protocol,,,$useport,,,$grp3,$port,$remark,$log,$time,$time_mon,$time_tue,$time_wed,$time_thu,$time_fri,$time_sat,$time_sun,$time_from,$time_to\n"; + #Put rules into system.... + ########################### + #check for double rules + foreach my $key (sort keys %fwconfig){ + if("$action,$chain,$active,$grp1,$source,$grp2,$target,$protocol,$useport,$grp3,$port,$remark,$log,$time,$time_mon,$time_tue,$time_wed,$time_thu,$time_fri,$time_sat,$time_sun,$time_from,$time_to" + eq "$fwconfig{$key}[0],$fwconfig{$key}[1],$fwconfig{$key}[2],$fwconfig{$key}[3],$fwconfig{$key}[4],$fwconfig{$key}[5],$fwconfig{$key}[6],$fwconfig{$key}[8],$fwconfig{$key}[11],$fwconfig{$key}[14],$fwconfig{$key}[15],$fwconfig{$key}[16],$fwconfig{$key}[17],$fwconfig{$key}[18],$fwconfig{$key}[19],$fwconfig{$key}[20],$fwconfig{$key}[21],$fwconfig{$key}[22],$fwconfig{$key}[23],$fwconfig{$key}[24],$fwconfig{$key}[25],$fwconfig{$key}[26],$fwconfig{$key}[27]"){ + $check='on'; + next; + } + } + if($check ne 'on'){ + if ($chain eq 'FORWARDFW'){ + my $key = &General::findhasharraykey(%fwconfig); + $fwconfig{$key}[0] = $action; + $fwconfig{$key}[1] = $chain; + $fwconfig{$key}[2] = $active; + $fwconfig{$key}[3] = $grp1; + $fwconfig{$key}[4] = $source; + $fwconfig{$key}[5] = $grp2; + $fwconfig{$key}[6] = $target; + $fwconfig{$key}[8] = $protocol; + $fwconfig{$key}[11] = $useport; + $fwconfig{$key}[14] = $grp3; + $fwconfig{$key}[15] = $port; + $fwconfig{$key}[16] = $remark; + $fwconfig{$key}[17] = $log; + $fwconfig{$key}[18] = $time; + $fwconfig{$key}[19] = $time_mon; + $fwconfig{$key}[20] = $time_tue; + $fwconfig{$key}[21] = $time_wed; + $fwconfig{$key}[22] = $time_thu; + $fwconfig{$key}[23] = $time_fri; + $fwconfig{$key}[24] = $time_sat; + $fwconfig{$key}[25] = $time_sun; + $fwconfig{$key}[26] = $time_from; + $fwconfig{$key}[27] = $time_to; + $fwconfig{$key}[28] = ''; + $fwconfig{$key}[29] = 'ALL'; + $fwconfig{$key}[30] = ''; + $fwconfig{$key}[31] = 'dnat'; + &General::writehasharray($fwdfwconfig,%fwconfig); + }else{ + my $key = &General::findhasharraykey(%fwconfigout); + $fwconfigout{$key}[0] = $action; + $fwconfigout{$key}[1] = $chain; + $fwconfigout{$key}[2] = $active; + $fwconfigout{$key}[3] = $grp1; + $fwconfigout{$key}[4] = $source; + $fwconfigout{$key}[5] = $grp2; + $fwconfigout{$key}[6] = $target; + $fwconfigout{$key}[8] = $protocol; + $fwconfigout{$key}[11] = $useport; + $fwconfigout{$key}[14] = $grp3; + $fwconfigout{$key}[15] = $port; + $fwconfigout{$key}[16] = $remark; + $fwconfigout{$key}[17] = $log; + $fwconfigout{$key}[18] = $time; + $fwconfigout{$key}[19] = $time_mon; + $fwconfigout{$key}[20] = $time_tue; + $fwconfigout{$key}[21] = $time_wed; + $fwconfigout{$key}[22] = $time_thu; + $fwconfigout{$key}[23] = $time_fri; + $fwconfigout{$key}[24] = $time_sat; + $fwconfigout{$key}[25] = $time_sun; + $fwconfigout{$key}[26] = $time_from; + $fwconfigout{$key}[27] = $time_to; + $fwconfigout{$key}[28] = ''; + $fwconfigout{$key}[29] = 'ALL'; + $fwconfigout{$key}[30] = ''; + $fwconfigout{$key}[31] = 'dnat'; + &General::writehasharray($outfwconfig,%fwconfigout); + } + } + } + @prot=(); + } + close(LOG); + @lines=(); +} +sub get_ip_from_domain +{ + $web=shift; + my $resolvedip; + my $checked; + my ($name,$aliases,$addrtype,$length,@addrs) = gethostbyname($web); + if(@addrs){ + $resolvedip=inet_ntoa($addrs[0]); + return $resolvedip; + } + return; +} +sub build_ovpn_grp +{ + my $now=localtime; + &General::readhasharray($confighosts,%hosts); + &General::readhasharray($confignets,%nets); + &General::readhasharray($configgroups,%groups); + &General::readhasharray($ovpnconfig,%configovpn); + &General::readhasharray($ccdconfig,%ccdconf); + &General::readhash($ovpnsettings,%settingsovpn); + #get ovpn nets + my @ovpnnets=(); + if($settingsovpn{'DOVPN_SUBNET'}){ + my ($net,$subnet)=split("/",$settingsovpn{'DOVPN_SUBNET'}); + push (@ovpnnets,"$net,$subnet,dynamic"); + print LOG "$now ->found dynamic OpenVPN net\n"; + } + foreach my $key (sort keys %ccdconf){ + my ($net,$subnet)=split("/",$ccdconf{$key}[1]); + $subnet=&General::iporsubtodec($subnet); + push (@ovpnnets,"$net,$subnet,$ccdconf{$key}[0]"); + print LOG "$now ->found OpenVPN static net $net/$subnet\n"; + } + foreach my $key (sort keys %configovpn){ + if ($configovpn{$key}[3] eq 'net'){ + my ($net,$subnet)=split("/",$configovpn{$key}[27]); + push (@ovpnnets,"$net,$subnet,$configovpn{$key}[2]"); + print LOG "$now ->found OpenVPN $net/$subnet $configovpn{$key}[2]\n"; + } + } + #add ovpn nets to customnetworks/groups + foreach my $line (@ovpnnets){ + my $now=localtime; + my ($net,$subnet,$name) = split(",",$line); + if (!&check_net($net,$subnet)){ + my $netkey = &General::findhasharraykey(%nets); + $name2=$name."(ovpn)".$net; + $name3="Custom Network"; + $nets{$netkey}[0] = $name2; + $nets{$netkey}[1] = $net; + $nets{$netkey}[2] = $subnet; + $nets{$netkey}[3] = ''; + print LOG "$now ->added $name2 $net/$subnet to customnetworks\n"; + }else{ + print LOG "-> Custom Network with same IP already exist "$net/$subnet" (you can ignore this, if this run was manual from shell)\n"; + } + if($name2){ + my $grpkey = &General::findhasharraykey(%groups); + $groups{$grpkey}[0] = "ovpn"; + $groups{$grpkey}[1] = ''; + $groups{$grpkey}[2] = $name2; + $groups{$grpkey}[3] = "Custom Network"; + print LOG "$now ->added $name2 to customgroup ovpn\n"; + } + $name2=''; + } + @ovpnnets=(); + &General::writehasharray($confighosts,%hosts); + &General::writehasharray($configgroups,%groups); + &General::writehasharray($confignets,%nets); + print LOG "$now ->finished OVPN\n"; +} +sub process_p2p +{ + copy("/var/ipfire/outgoing/p2protocols","/var/ipfire/firewall/p2protocols"); + chown 99, 99, '/var/ipfire/firewall/p2protocols'; +} diff --git a/config/firewall/convert-portfw b/config/firewall/convert-portfw new file mode 100755 index 0000000..fedddee --- /dev/null +++ b/config/firewall/convert-portfw @@ -0,0 +1,176 @@ +#!/usr/bin/perl +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2013 Alexander Marx amarx@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### +# # +# This script converts old portforwarding rules from old Firewall # +# to the new one. This is a 3-step process. # +# STEP1: read old config and normalize settings # +# STEP2: create new rules from old ones # +# STEP3: check if rule already exists, when not, put it into # +# /var/ipfire/firewall/config # +############################################################################### +require '/var/ipfire/general-functions.pl'; +my @values=(); +my @built_rules=(); +my %nat=(); +my $portfwconfig = "${General::swroot}/portfw/config"; +my $confignat = "${General::swroot}/firewall/config"; +my ($key,$flag,$prot,$ipfireport,$target,$targetport,$active,$alias,$source,$remark); +my ($key1,$flag1,$prot1,$ipfireport1,$target1,$targetport1,$active1,$alias1,$source1,$remark1); +my $count=0; +my $jump; + +if (! -e "$portfwconfig") { + print "Config file for portforward not found. Exiting!\n"; + exit(1); +} + +if (! -s "$portfwconfig") { + print "Empty portforward configuration file. Nothing to do. Exiting...\n"; + exit(0); +} + +if(! -d "/var/log/converters"){ mkdir("/var/log/converters");} +open(FILE, $portfwconfig) or die 'Unable to open config file.'; +my @current = <FILE>; +close(FILE); +open (LOG, ">/var/log/converters/portfw-convert.log") or die $!; +open(ALIAS, "${General::swroot}/ethernet/aliases") or die 'Unable to open aliases file.'; +my @alias = <ALIAS>; +close(ALIAS); +&get_config; +&build_rules; +&write_rules; +sub get_config +{ + print LOG "STEP 1: Get config from old portforward\n#########################################\n"; + foreach my $line (@current){ + if($jump eq '1'){ + $jump=''; + $count++; + next; + } + my $u=$count+1; + ($key,$flag,$prot,$ipfireport,$target,$targetport,$active,$alias,$source,$remark) = split(",",$line); + ($key1,$flag1,$prot1,$ipfireport1,$target1,$targetport1,$active1,$alias1,$source1,$remark1) = split(",",$current[$u]); + if ($flag1 eq '1'){ + $source=$source1; + $jump='1'; + } + my $now=localtime; + chomp($remark); + print LOG "$now processing-> KEY: $key FLAG: $flag PROT: $prot FIREPORT: $ipfireport TARGET: $target TGTPORT: $targetport ACTIVE: $active ALIAS: $alias SOURCE: $source REM: $remark Doublerule: $jump\n"; + push (@values,$prot.",".$ipfireport.",".$target.",".$targetport.",".$active.",".$alias.",".$source.",".$remark); + $count++; + } +} +sub build_rules +{ + print LOG "\nSTEP 2: Convert old portforwardrules in a useable format\n########################################################\n"; + my $src; + my $src1; + my $ipfireip; + my $count=0; + my $stop; + #build rules for new firewall + foreach my $line (@values){ + chomp ($line); + ($prot,$ipfireport,$target,$targetport,$active,$alias,$source,$remark)=split(",",$line); + $count++; + #get sourcepart + if($source eq '0.0.0.0/0'){ + $src = 'std_net_src'; + $src1 = 'ALL'; + }else{ + $src = 'src_addr'; + my ($a,$b) = split("/",$source); + $src1 = $a."/32"; + } + #get ipfire ip + if($alias eq '0.0.0.0'){ + $alias='ALL'; + }else{ + foreach my $ali (@alias){ + my ($alias_ip,$alias_active,$alias_name) = split (",",$ali); + if($alias eq $alias_ip){ + chomp($alias_name); + $alias=$alias_name; + } + } + } + $active = uc $active; + $prot = uc $prot; + chomp($remark); + push (@built_rules,"ACCEPT,FORWARDFW,$active,$src,$src1,tgt_addr,$target/32,,$prot,,TGT_PORT,$targetport,$remark,00:00,00:00,ON,$alias,$ipfireport,dnat"); + my $now=localtime; + print LOG "$now Converted-> KEY: $count ACCEPT,FORWARDFW,$active,$src,$src1,tgt_addr,$target/32,*,$prot,,TGT_PORT,$targetport,$remark,00:00,00:00,ON,$alias,$ipfireport,dnat\n"; + } +} +sub write_rules +{ + my $skip=''; + my $id; + print LOG "\nSTEP 3: Create DNAT rules in new firewall\n#########################################\n"; + &General::readhasharray($confignat,%nat); + foreach my $line (@built_rules){ + $skip=''; + my ($action,$chain,$active,$src,$src1,$tgt,$tgt1,$dummy,$prot,$dummy,$tgt_port,$tgt_port1,$remark,$from,$to,$use_port,$alias,$ipfireport,$dnat) = split (",",$line); + foreach my $key (sort keys %nat){ + if ($line eq "$nat{$key}[0],$nat{$key}[1],$nat{$key}[2],$nat{$key}[3],$nat{$key}[4],$nat{$key}[5],$nat{$key}[6],$nat{$key}[7],$nat{$key}[8],$nat{$key}[11],$nat{$key}[14],$nat{$key}[15],$nat{$key}[16],$nat{$key}[26],$nat{$key}[27],$nat{$key}[28],$nat{$key}[29],$nat{$key}[30],$nat{$key}[31]"){ + my $now=localtime; + print LOG "$now SKIP-> Rule $nat{$key}[0],$nat{$key}[1],$nat{$key}[2],$nat{$key}[3],$nat{$key}[4],$nat{$key}[5],$nat{$key}[6],$nat{$key}[7],$nat{$key}[8],$nat{$key}[11],$nat{$key}[14],$nat{$key}[15],$nat{$key}[16],$nat{$key}[26],$nat{$key}[27],$nat{$key}[28],$nat{$key}[29],$nat{$key}[30],$nat{$key}[31] ->EXISTS\n"; + $skip='1'; + } + } + if ($skip ne '1'){ + if ( $prot eq 'GRE'){ + $tgt_port=''; + $tgt_port1=''; + $use_port=''; + $ipfireport=''; + $use_prot=''; + } + $id = &General::findhasharraykey(%nat); + $nat{$id}[0] = $action; + $nat{$id}[1] = $chain; + $nat{$id}[2] = $active; + $nat{$id}[3] = $src; + $nat{$id}[4] = $src1; + $nat{$id}[5] = $tgt; + $nat{$id}[6] = $tgt1; + $nat{$id}[7] = $dummy; + $nat{$id}[8] = $prot; + $nat{$id}[11] = $use_port; + $nat{$id}[14] = $tgt_port; + $nat{$id}[15] = $tgt_port1; + $nat{$id}[16] = $remark; + $nat{$id}[26] = $from; + $nat{$id}[27] = $to; + $nat{$id}[28] = $use_port; + $nat{$id}[29] = $alias; + $nat{$id}[30] = $ipfireport; + $nat{$id}[31] = $dnat; + my $now=localtime; + print LOG "$now NEW RULE-> Rule $nat{$id}[0],$nat{$id}[1],$nat{$id}[2],$nat{$id}[3],$nat{$id}[4],$nat{$id}[5],$nat{$id}[6],$nat{$id}[11],$nat{$id}[12],$nat{$id}[13],$nat{$id}[14],$nat{$id}[15],$nat{$id}[16],$nat{$id}[26],$nat{$id}[27],$nat{$id}[28],$nat{$id}[29],$nat{$id}[30],$nat{$id}[31]\n"; + } + } + &General::writehasharray($confignat,%nat); +} +close (LOG); diff --git a/config/firewall/convert-xtaccess b/config/firewall/convert-xtaccess new file mode 100755 index 0000000..d11e09c --- /dev/null +++ b/config/firewall/convert-xtaccess @@ -0,0 +1,152 @@ +#!/usr/bin/perl +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2013 Alexander Marx amarx@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### +# # +#This script converts old xtaccess rules to new firewall # +#Logfiles are created under /var/log/converters # +# # +############################################################################### +my @current=(); +my @alias=(); +my %configinputfw=(); +require '/var/ipfire/general-functions.pl'; +my $xtaccessconfig = "${General::swroot}/xtaccess/config"; +my $inputfwconfig = "${General::swroot}/firewall/input"; +my $aliasconfig = "${General::swroot}/ethernet/aliases"; +my $field0='ACCEPT'; +my $field1='INPUTFW'; +my $field2=''; #ON or emtpy +my $field3=''; #std_net_src or src_addr +my $field4=''; #ALL or IP-Address with /32 +my $field5='ipfire'; +my $field6=''; #Default IP or alias name +my $field11='ON'; #use target port +my $field12=''; #TCP or UDP +my $field13='All ICMP-Types'; +my $field14='TGT_PORT'; +my $field15=''; #Port Number +my $field16=''; #remark +my $field26='00:00'; +my $field27='00:00'; +my $field28 = ''; +my $field29 = 'ALL'; +my $field30 = ''; +my $field31 = 'dnat'; + +if (! -e "$xtaccessconfig") { + print "Config file for external access not found. Exiting!\n"; + exit(1); +} + +if (! -s "$xtaccessconfig") { + print "Empty external access configuration file. Nothing to do. Exiting...\n"; + exit(0); +} + +open(FILE, $xtaccessconfig) or die 'Unable to open config file.'; +my @current = <FILE>; +close(FILE); +open(FILE1, $aliasconfig) or die 'Unable to open config file.'; +my @alias = <FILE1>; +close(FILE1); +&General::readhasharray($inputfwconfig,%configinputfw); + +foreach my $line (@current){ + my ($a,$b,$c,$d,$e,$f) = split (",",$line); + $e =~ s/\R//g; + if ($f gt ''){ + $f =~ s/\R//g; + $field16=$f; + } + #active or not + $field2=uc($d); + #get protocol + if ($a eq 'tcp'){ $field12 ='TCP';}else{$field12='UDP';} + #check source address + if ($b eq '0.0.0.0/0'){ + $field3='std_net_src'; + $field4='ALL'; + }elsif($b =~/^(\d{1,3}).(\d{1,3}).(\d{1,3}).(\d{1,3})$/){ + $field3='src_addr'; + $field4=$b."/32"; + }elsif ($b =~ /^(.*?)/(.*?)$/) { + $field3='src_addr'; + $field4=$b; + }else{ + print "Regel konnte nicht konvertiert werden!\n"; + } + #check ipfire address + if ($e eq '0.0.0.0'){ + $field6 = 'RED1'; + }else{ + foreach my $line (@alias){ + my ($ip,$state,$aliasname) = split (",",$line); + if ($ip eq $e){ + $aliasname =~ s/\R//g; + $field6 = $aliasname; + } + } + } + #get target port + $c=~ s/\R//g; + $c=~ tr/-/:/; + if ($c =~ /^(\D):(\d+)$/) { + $c = "1:$2"; + } + if ($c =~ /^(\d+):(\D)$/) { + $c = "$1:65535"; + } + $field15=$c; + my $key = &General::findhasharraykey (%configinputfw); + foreach my $i (0 .. 31) { $configinputfw{$key}[$i] = "";} + $configinputfw{$key}[0] = $field0; + $configinputfw{$key}[1] = $field1; + $configinputfw{$key}[2] = $field2; + $configinputfw{$key}[3] = $field3; + $configinputfw{$key}[4] = $field4; + $configinputfw{$key}[5] = $field5; + $configinputfw{$key}[6] = $field6; + $configinputfw{$key}[7] = ''; + $configinputfw{$key}[8] = $field12; + $configinputfw{$key}[9] = ''; + $configinputfw{$key}[10] = ''; + $configinputfw{$key}[11] = $field11; + $configinputfw{$key}[12] = ''; + $configinputfw{$key}[13] = ''; + $configinputfw{$key}[14] = $field14; + $configinputfw{$key}[15] = $field15; + $configinputfw{$key}[16] = $field16; + $configinputfw{$key}[17] = ''; + $configinputfw{$key}[18] = ''; + $configinputfw{$key}[19] = ''; + $configinputfw{$key}[20] = ''; + $configinputfw{$key}[21] = ''; + $configinputfw{$key}[22] = ''; + $configinputfw{$key}[23] = ''; + $configinputfw{$key}[24] = ''; + $configinputfw{$key}[25] = ''; + $configinputfw{$key}[26] = $field26; + $configinputfw{$key}[27] = $field27; + $configinputfw{$key}[28] = $field28; + $configinputfw{$key}[29] = $field29; + $configinputfw{$key}[30] = $field30; + $configinputfw{$key}[31] = $field31; + &General::writehasharray($inputfwconfig,%configinputfw); +} diff --git a/config/firewall/firewall-lib.pl b/config/firewall/firewall-lib.pl new file mode 100755 index 0000000..ae2a462 --- /dev/null +++ b/config/firewall/firewall-lib.pl @@ -0,0 +1,527 @@ +#!/usr/bin/perl +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2013 Alexander Marx amarx@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +use strict; +no warnings 'uninitialized'; + +package fwlib; + +my %customnetwork=(); +my %customhost=(); +my %customgrp=(); +my %customservice=(); +my %customservicegrp=(); +my %ccdnet=(); +my %ccdhost=(); +my %ipsecconf=(); +my %ipsecsettings=(); +my %netsettings=(); +my %ovpnsettings=(); +my %aliases=(); + +require '/var/ipfire/general-functions.pl'; + +my $confignet = "${General::swroot}/fwhosts/customnetworks"; +my $confighost = "${General::swroot}/fwhosts/customhosts"; +my $configgrp = "${General::swroot}/fwhosts/customgroups"; +my $configsrv = "${General::swroot}/fwhosts/customservices"; +my $configsrvgrp = "${General::swroot}/fwhosts/customservicegrp"; +my $configccdnet = "${General::swroot}/ovpn/ccd.conf"; +my $configccdhost = "${General::swroot}/ovpn/ovpnconfig"; +my $configipsec = "${General::swroot}/vpn/config"; +my $configovpn = "${General::swroot}/ovpn/settings"; +my $val; +my $field; +my $netsettings = "${General::swroot}/ethernet/settings"; + +&General::readhash("/var/ipfire/ethernet/settings", %netsettings); +&General::readhash("${General::swroot}/ovpn/settings", %ovpnsettings); +&General::readhash("${General::swroot}/vpn/settings", %ipsecsettings); + +&General::readhasharray("$confignet", %customnetwork); +&General::readhasharray("$confighost", %customhost); +&General::readhasharray("$configgrp", %customgrp); +&General::readhasharray("$configccdnet", %ccdnet); +&General::readhasharray("$configccdhost", %ccdhost); +&General::readhasharray("$configipsec", %ipsecconf); +&General::readhasharray("$configsrv", %customservice); +&General::readhasharray("$configsrvgrp", %customservicegrp); + +sub get_srv_prot +{ + my $val=shift; + foreach my $key (sort {$a <=> $b} keys %customservice){ + if($customservice{$key}[0] eq $val){ + if ($customservice{$key}[0] eq $val){ + return $customservice{$key}[2]; + } + } + } +} +sub get_srvgrp_prot +{ + my $val=shift; + my @ips=(); + my $tcp; + my $udp; + my $icmp; + foreach my $key (sort {$a <=> $b} keys %customservicegrp){ + if($customservicegrp{$key}[0] eq $val){ + if (&get_srv_prot($customservicegrp{$key}[2]) eq 'TCP'){ + $tcp=1; + }elsif(&get_srv_prot($customservicegrp{$key}[2]) eq 'UDP'){ + $udp=1; + }elsif(&get_srv_prot($customservicegrp{$key}[2]) eq 'ICMP'){ + $icmp=1; + }else{ + #Protocols used in servicegroups + push (@ips,$customservicegrp{$key}[2]); + } + } + } + if ($tcp eq '1'){push (@ips,'TCP');} + if ($udp eq '1'){push (@ips,'UDP');} + if ($icmp eq '1'){push (@ips,'ICMP');} + my $back=join(",",@ips); + return $back; + +} +sub get_srv_port +{ + my $val=shift; + my $field=shift; + my $prot=shift; + foreach my $key (sort {$a <=> $b} keys %customservice){ + if($customservice{$key}[0] eq $val && $customservice{$key}[2] eq $prot){ + return $customservice{$key}[$field]; + } + } +} +sub get_srvgrp_port +{ + my $val=shift; + my $prot=shift; + my $back; + my $value; + my @ips=(); + foreach my $key (sort {$a <=> $b} keys %customservicegrp){ + if($customservicegrp{$key}[0] eq $val){ + if ($prot ne 'ICMP'){ + $value=&get_srv_port($customservicegrp{$key}[2],1,$prot); + }elsif ($prot eq 'ICMP'){ + $value=&get_srv_port($customservicegrp{$key}[2],3,$prot); + } + push (@ips,$value) if ($value ne '') ; + } + } + if($prot ne 'ICMP'){ + if ($#ips gt 0){$back="-m multiport --dports ";}else{$back="--dport ";} + }elsif ($prot eq 'ICMP'){ + $back="--icmp-type "; + } + + $back.=join(",",@ips); + return $back; +} +sub get_ipsec_net_ip +{ + my $val=shift; + my $field=shift; + foreach my $key (sort {$a <=> $b} keys %ipsecconf){ + if($ipsecconf{$key}[1] eq $val){ + return $ipsecconf{$key}[$field]; + } + } +} +sub get_ipsec_host_ip +{ + my $val=shift; + my $field=shift; + foreach my $key (sort {$a <=> $b} keys %ipsecconf){ + if($ipsecconf{$key}[1] eq $val){ + return $ipsecconf{$key}[$field]; + } + } +} +sub get_ovpn_n2n_ip +{ + my $val=shift; + my $field=shift; + foreach my $key (sort {$a <=> $b} keys %ccdhost){ + if($ccdhost{$key}[1] eq $val){ + return $ccdhost{$key}[$field]; + } + } +} +sub get_ovpn_host_ip +{ + my $val=shift; + my $field=shift; + foreach my $key (sort {$a <=> $b} keys %ccdhost){ + if($ccdhost{$key}[1] eq $val){ + return $ccdhost{$key}[$field]; + } + } +} +sub get_ovpn_net_ip +{ + + my $val=shift; + my $field=shift; + foreach my $key (sort {$a <=> $b} keys %ccdnet){ + if($ccdnet{$key}[0] eq $val){ + return $ccdnet{$key}[$field]; + } + } +} +sub get_grp_ip +{ + my $val=shift; + my $src=shift; + foreach my $key (sort {$a <=> $b} keys %customgrp){ + if ($customgrp{$key}[0] eq $val){ + &get_address($customgrp{$key}[3],$src); + } + } + +} +sub get_std_net_ip +{ + my $val=shift; + my $con=shift; + if ($val eq 'ALL'){ + return "0.0.0.0/0.0.0.0"; + }elsif($val eq 'GREEN'){ + return "$netsettings{'GREEN_NETADDRESS'}/$netsettings{'GREEN_NETMASK'}"; + }elsif($val eq 'ORANGE'){ + return "$netsettings{'ORANGE_NETADDRESS'}/$netsettings{'ORANGE_NETMASK'}"; + }elsif($val eq 'BLUE'){ + return "$netsettings{'BLUE_NETADDRESS'}/$netsettings{'BLUE_NETMASK'}"; + }elsif($val eq 'RED'){ + return "0.0.0.0/0 -o $con"; + }elsif($val =~ /OpenVPN/i){ + return "$ovpnsettings{'DOVPN_SUBNET'}"; + }elsif($val =~ /IPsec/i){ + return "$ipsecsettings{'RW_NET'}"; + }elsif($val eq 'IPFire'){ + return ; + } +} +sub get_net_ip +{ + my $val=shift; + foreach my $key (sort {$a <=> $b} keys %customnetwork){ + if($customnetwork{$key}[0] eq $val){ + return "$customnetwork{$key}[1]/$customnetwork{$key}[2]"; + } + } +} +sub get_host_ip +{ + my $val=shift; + my $src=shift; + foreach my $key (sort {$a <=> $b} keys %customhost){ + if($customhost{$key}[0] eq $val){ + if ($customhost{$key}[1] eq 'mac' && $src eq 'src'){ + return "-m mac --mac-source $customhost{$key}[2]"; + }elsif($customhost{$key}[1] eq 'ip' && $src eq 'src'){ + return "$customhost{$key}[2]"; + }elsif($customhost{$key}[1] eq 'ip' && $src eq 'tgt'){ + return "$customhost{$key}[2]"; + }elsif($customhost{$key}[1] eq 'mac' && $src eq 'tgt'){ + return "none"; + } + } + } +} +sub get_addresses +{ + my $hash = shift; + my $key = shift; + my $type = shift; + + my @addresses = (); + my $addr_type; + my $value; + my $group_name; + + if ($type eq "src") { + $addr_type = $$hash{$key}[3]; + $value = $$hash{$key}[4]; + + } elsif ($type eq "tgt") { + $addr_type = $$hash{$key}[5]; + $value = $$hash{$key}[6]; + } + + if ($addr_type ~~ ["cust_grp_src", "cust_grp_tgt"]) { + foreach my $grp (sort {$a <=> $b} keys %customgrp) { + if ($customgrp{$grp}[0] eq $value) { + my @address = &get_address($customgrp{$grp}[3], $customgrp{$grp}[2], $type); + + if (@address) { + push(@addresses, @address); + } + } + } + } else { + my @address = &get_address($addr_type, $value, $type); + + if (@address) { + push(@addresses, @address); + } + } + + return @addresses; +} +sub get_address +{ + my $key = shift; + my $value = shift; + my $type = shift; + + my @ret = (); + + # If the user manually typed an address, we just check if it is a MAC + # address. Otherwise, we assume that it is an IP address. + if ($key ~~ ["src_addr", "tgt_addr"]) { + if (&General::validmac($value)) { + push(@ret, "-m mac --mac-source $value"); + } else { + push(@ret, $value); + } + + # If a default network interface (GREEN, BLUE, etc.) is selected, we + # try to get the corresponding address of the network. + } elsif ($key ~~ ["std_net_src", "std_net_tgt", "Standard Network"]) { + my $external_interface = &get_external_interface(); + + my $network_address = &get_std_net_ip($value, $external_interface); + if ($network_address) { + push(@ret, $network_address); + } + + # Custom networks. + } elsif ($key ~~ ["cust_net_src", "cust_net_tgt", "Custom Network"]) { + my $network_address = &get_net_ip($value); + if ($network_address) { + push(@ret, $network_address); + } + + # Custom hosts. + } elsif ($key ~~ ["cust_host_src", "cust_host_tgt", "Custom Host"]) { + my $host_address = &get_host_ip($value, $type); + if ($host_address) { + push(@ret, $host_address); + } + + # OpenVPN networks. + } elsif ($key ~~ ["ovpn_net_src", "ovpn_net_tgt", "OpenVPN static network"]) { + my $network_address = &get_ovpn_net_ip($value, 1); + if ($network_address) { + push(@ret, $network_address); + } + + # OpenVPN hosts. + } elsif ($key ~~ ["ovpn_host_src", "ovpn_host_tgt", "OpenVPN static host"]) { + my $host_address = &get_ovpn_host_ip($value, 33); + if ($host_address) { + push(@ret, $host_address); + } + + # OpenVPN N2N. + } elsif ($key ~~ ["ovpn_n2n_src", "ovpn_n2n_tgt", "OpenVPN N-2-N"]) { + my $network_address = &get_ovpn_n2n_ip($value, 11); + if ($network_address) { + push(@ret, $network_address); + } + + # IPsec networks. + } elsif ($key ~~ ["ipsec_net_src", "ipsec_net_tgt", "IpSec Network"]) { + my $network_address = &get_ipsec_net_ip($value, 11); + if ($network_address) { + push(@ret, $network_address); + } + + # The firewall's own IP addresses. + } elsif ($key ~~ ["ipfire", "ipfire_src"]) { + # ALL + if ($value eq "ALL") { + push(@ret, "0/0"); + + # GREEN + } elsif ($value eq "GREEN") { + push(@ret, $netsettings{"GREEN_ADDRESS"}); + + # BLUE + } elsif ($value eq "BLUE") { + push(@ret, $netsettings{"BLUE_ADDRESS"}); + + # ORANGE + } elsif ($value eq "ORANGE") { + push(@ret, $netsettings{"ORANGE_ADDRESS"}); + + # RED + } elsif ($value ~~ ["RED", "RED1"]) { + my $address = &get_external_address(); + if ($address) { + push(@ret, $address); + } + + # Aliases + } else { + my %alias = &get_alias($value); + if (%alias) { + push(@ret, $alias{"IPT"}); + } + } + + # If nothing was selected, we assume "any". + } else { + push(@ret, "0/0"); + } + + return @ret; +} +sub get_external_interface() +{ + open(IFACE, "/var/ipfire/red/iface") or return ""; + my $iface = <IFACE>; + close(IFACE); + + return $iface; +} +sub get_external_address() +{ + open(ADDR, "/var/ipfire/red/local-ipaddress") or return ""; + my $address = <ADDR>; + close(ADDR); + + return $address; +} +sub get_alias +{ + my $id = shift; + + foreach my $alias (sort keys %aliases) { + if ($id eq $alias) { + return $aliases{$alias}; + } + } +} +sub get_nat_address +{ + my $zone = shift; + my $source = shift; + + # Any static address of any zone. + if ($zone eq "AUTO") { + if ($source && ($source !~ m/mac/i )) { + my $firewall_ip = &get_internal_firewall_ip_address($source, 1); + if ($firewall_ip) { + return $firewall_ip; + } + + $firewall_ip = &get_matching_firewall_address($source, 1); + if ($firewall_ip) { + return $firewall_ip; + } + } + + return &get_external_address(); + + } elsif ($zone eq "RED" || $zone eq "GREEN" || $zone eq "ORANGE" || $zone eq "BLUE") { + return $netsettings{$zone . "_ADDRESS"}; + + } elsif ($zone eq "Default IP") { + return &get_external_address(); + + } else { + return &get_alias($zone); + } + + print_error("Could not find NAT address"); +} +sub get_internal_firewall_ip_addresses +{ + my $use_orange = shift; + + my @zones = ("GREEN", "BLUE"); + if ($use_orange) { + push(@zones, "ORANGE"); + } + + my @addresses = (); + for my $zone (@zones) { + next unless (exists $netsettings{$zone . "_ADDRESS"}); + + my $zone_address = $netsettings{$zone . "_ADDRESS"}; + push(@addresses, $zone_address); + } + + return @addresses; +} +sub get_matching_firewall_address +{ + my $addr = shift; + my $use_orange = shift; + + my ($address, $netmask) = split("/", $addr); + + my @zones = ("GREEN", "BLUE"); + if ($use_orange) { + push(@zones, "ORANGE"); + } + + foreach my $zone (@zones) { + next unless (exists $netsettings{$zone . "_ADDRESS"}); + + my $zone_subnet = $netsettings{$zone . "_NETADDRESS"}; + my $zone_mask = $netsettings{$zone . "_NETMASK"}; + + if (&General::IpInSubnet($address, $zone_subnet, $zone_mask)) { + return $netsettings{$zone . "_ADDRESS"}; + } + } + + return 0; +} +sub get_internal_firewall_ip_address +{ + my $subnet = shift; + my $use_orange = shift; + + my ($net_address, $net_mask) = split("/", $subnet); + if ((!$net_mask) || ($net_mask ~~ ["32", "255.255.255.255"])) { + return 0; + } + + my @addresses = &get_internal_firewall_ip_addresses($use_orange); + foreach my $zone_address (@addresses) { + if (&General::IpInSubnet($zone_address, $net_address, $net_mask)) { + return $zone_address; + } + } + + return 0; +} + +return 1; diff --git a/config/firewall/firewall-policy b/config/firewall/firewall-policy new file mode 100755 index 0000000..2c583c5 --- /dev/null +++ b/config/firewall/firewall-policy @@ -0,0 +1,150 @@ +#!/bin/sh +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2013 Alexander Marx amarx@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings) +eval $(/usr/local/bin/readhash /var/ipfire/firewall/settings) +eval $(/usr/local/bin/readhash /var/ipfire/optionsfw/settings) + +function iptables() { + /sbin/iptables --wait "$@" +} + +iptables -F POLICYFWD +iptables -F POLICYOUT +iptables -F POLICYIN + +if [ -f "/var/ipfire/red/iface" ]; then + IFACE="$(</var/ipfire/red/iface)" +fi + +# Figure out what devices are configured. +HAVE_BLUE="false" +HAVE_ORANGE="false" + +case "${CONFIG_TYPE}" in + 2) + HAVE_ORANGE="true" + ;; + 3) + HAVE_BLUE="true" + ;; + 4) + HAVE_BLUE="true" + HAVE_ORANGE="true" + ;; +esac + +HAVE_IPSEC="true" +HAVE_OPENVPN="true" + +# INPUT + +# IPsec INPUT +case "${HAVE_IPSEC},${POLICY}" in + true,MODE1) ;; + true,*) + iptables -A POLICYIN -m policy --pol ipsec --dir in -j ACCEPT + ;; +esac + +# OpenVPN INPUT +# Allow direct access to the internal IP addresses of the firewall +# from remote subnets if forward policy is allowed. +case "${HAVE_OPENVPN},${POLICY}" in + true,MODE1) ;; + true,*) + iptables -A POLICYIN -i tun+ -j ACCEPT + ;; +esac + +case "${FWPOLICY2}" in + REJECT) + if [ "${DROPINPUT}" = "on" ]; then + iptables -A POLICYIN -m limit --limit 10/minute -j LOG --log-prefix "REJECT_INPUT " + fi + iptables -A POLICYIN -j REJECT --reject-with icmp-host-unreachable -m comment --comment "DROP_INPUT" + ;; + *) # DROP + if [ "${DROPINPUT}" = "on" ]; then + iptables -A POLICYIN -m limit --limit 10/minute -j LOG --log-prefix "DROP_INPUT " + fi + iptables -A POLICYIN -j DROP -m comment --comment "DROP_INPUT" + ;; +esac + +# FORWARD +case "${POLICY}" in + MODE1) + case "${FWPOLICY}" in + REJECT) + if [ "${DROPFORWARD}" = "on" ]; then + iptables -A POLICYFWD -m limit --limit 10/minute -j LOG --log-prefix "REJECT_FORWARD " + fi + iptables -A POLICYFWD -j REJECT --reject-with icmp-host-unreachable -m comment --comment "DROP_FORWARD" + ;; + *) # DROP + if [ "${DROPFORWARD}" = "on" ]; then + iptables -A POLICYFWD -m limit --limit 10/minute -j LOG --log-prefix "DROP_FORWARD " + fi + iptables -A POLICYFWD -j DROP -m comment --comment "DROP_FORWARD" + ;; + esac + ;; + + *) + if [ -n "${IFACE}" ]; then + if [ "${HAVE_BLUE}" = "true" ] && [ -n "${BLUE_DEV}" ]; then + iptables -A POLICYFWD -i "${BLUE_DEV}" ! -o "${IFACE}" -j DROP + fi + if [ "${HAVE_ORANGE}" = "true" ] && [ -n "${ORANGE_DEV}" ]; then + iptables -A POLICYFWD -i "${ORANGE_DEV}" ! -o "${IFACE}" -j DROP + fi + fi + iptables -A POLICYFWD -j ACCEPT + iptables -A POLICYFWD -m comment --comment "DROP_FORWARD" -j DROP + ;; +esac + +# OUTGOING +case "${POLICY1}" in + MODE1) + case "${FWPOLICY1}" in + REJECT) + if [ "${DROPOUTGOING}" = "on" ]; then + iptables -A POLICYOUT -m limit --limit 10/minute -j LOG --log-prefix "REJECT_OUTPUT " + fi + iptables -A POLICYOUT -j REJECT --reject-with icmp-host-unreachable -m comment --comment "DROP_OUTPUT" + ;; + *) # DROP + if [ "${DROPOUTGOING}" == "on" ]; then + iptables -A POLICYOUT -m limit --limit 10/minute -j LOG --log-prefix "DROP_OUTPUT " + fi + iptables -A POLICYOUT -j DROP -m comment --comment "DROP_OUTPUT" + ;; + esac + ;; + *) + iptables -A POLICYOUT -j ACCEPT + iptables -A POLICYOUT -m comment --comment "DROP_OUTPUT" -j DROP + ;; +esac + +exit 0 diff --git a/config/firewall/p2protocols b/config/firewall/p2protocols new file mode 100644 index 0000000..7000581 --- /dev/null +++ b/config/firewall/p2protocols @@ -0,0 +1,9 @@ +Applejuice;apple;off; +Ares;ares;off; +Bittorrent;bit;off; +DirectConnect;dc;off; +Edonkey;edk;off; +Gnutella;gnu;off; +KaZaA;kazaa;off; +SoulSeek;soul;off; +WinMX;winmx;off; diff --git a/config/firewall/rules.pl b/config/firewall/rules.pl new file mode 100755 index 0000000..f25983c --- /dev/null +++ b/config/firewall/rules.pl @@ -0,0 +1,673 @@ +#!/usr/bin/perl -w +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2013 Alexander Marx amarx@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +use strict; + +require '/var/ipfire/general-functions.pl'; +require "${General::swroot}/lang.pl"; +require "/usr/lib/firewall/firewall-lib.pl"; + +# Set to one to enable debugging mode. +my $DEBUG = 0; + +my $IPTABLES = "iptables --wait"; + +# iptables chains +my $CHAIN_INPUT = "INPUTFW"; +my $CHAIN_FORWARD = "FORWARDFW"; +my $CHAIN_OUTPUT = "OUTGOINGFW"; +my $CHAIN = $CHAIN_FORWARD; +my $CHAIN_NAT_SOURCE = "NAT_SOURCE"; +my $CHAIN_NAT_DESTINATION = "NAT_DESTINATION"; +my $CHAIN_MANGLE_NAT_DESTINATION_FIX = "NAT_DESTINATION"; +my @VALID_CHAINS = ($CHAIN_INPUT, $CHAIN_FORWARD, $CHAIN_OUTPUT); +my @ANY_ADDRESSES = ("0.0.0.0/0.0.0.0", "0.0.0.0/0", "0/0"); + +my @PROTOCOLS = ("tcp", "udp", "icmp", "igmp", "ah", "esp", "gre", "ipv6", "ipip"); +my @PROTOCOLS_WITH_PORTS = ("tcp", "udp"); + +my @VALID_TARGETS = ("ACCEPT", "DROP", "REJECT"); + +my %fwdfwsettings=(); +my %defaultNetworks=(); +my %configfwdfw=();; +my %customgrp=(); +my %configinputfw=(); +my %configoutgoingfw=(); +my %confignatfw=(); +my %aliases=(); +my @p2ps=(); + +my $configfwdfw = "${General::swroot}/firewall/config"; +my $configinput = "${General::swroot}/firewall/input"; +my $configoutgoing = "${General::swroot}/firewall/outgoing"; +my $p2pfile = "${General::swroot}/firewall/p2protocols"; +my $configgrp = "${General::swroot}/fwhosts/customgroups"; +my $netsettings = "${General::swroot}/ethernet/settings"; + +&General::readhash("${General::swroot}/firewall/settings", %fwdfwsettings); +&General::readhash("$netsettings", %defaultNetworks); +&General::readhasharray($configfwdfw, %configfwdfw); +&General::readhasharray($configinput, %configinputfw); +&General::readhasharray($configoutgoing, %configoutgoingfw); +&General::readhasharray($configgrp, %customgrp); +&General::get_aliases(%aliases); + +my @log_limit_options = &make_log_limit_options(); + +# MAIN +&main(); + +sub main { + # Flush all chains. + &flush(); + + # Reload firewall rules. + &preparerules(); + + # Load P2P block rules. + &p2pblock(); + + # Reload firewall policy. + run("/usr/sbin/firewall-policy"); +} + +sub run { + # Executes or prints the given shell command. + my $command = shift; + + if ($DEBUG) { + print "$command\n"; + } else { + system "$command"; + + if ($?) { + print_error("ERROR: $command"); + } + } +} + +sub print_error { + my $message = shift; + + print STDERR "$message\n"; +} + +sub print_rule { + my $hash = shift; + + print "\nRULE:"; + + my $i = 0; + foreach (@$hash) { + printf(" %2d: %s", $i++, $_); + } + print "\n"; +} + +sub flush { + run("$IPTABLES -F $CHAIN_INPUT"); + run("$IPTABLES -F $CHAIN_FORWARD"); + run("$IPTABLES -F $CHAIN_OUTPUT"); + run("$IPTABLES -t nat -F $CHAIN_NAT_SOURCE"); + run("$IPTABLES -t nat -F $CHAIN_NAT_DESTINATION"); + run("$IPTABLES -t mangle -F $CHAIN_MANGLE_NAT_DESTINATION_FIX"); +} + +sub preparerules { + if (! -z "${General::swroot}/firewall/config"){ + &buildrules(%configfwdfw); + } + if (! -z "${General::swroot}/firewall/input"){ + &buildrules(%configinputfw); + } + if (! -z "${General::swroot}/firewall/outgoing"){ + &buildrules(%configoutgoingfw); + } +} + +sub buildrules { + my $hash = shift; + + foreach my $key (sort {$a <=> $b} keys %$hash) { + # Skip disabled rules. + next unless ($$hash{$key}[2] eq 'ON'); + + if ($DEBUG) { + print_rule($$hash{$key}); + } + + # Check if the target is valid. + my $target = $$hash{$key}[0]; + if (!$target ~~ @VALID_TARGETS) { + print_error("Invalid target '$target' for rule $key"); + next; + } + + # Check if the chain is valid. + my $chain = $$hash{$key}[1]; + if (!$chain ~~ @VALID_CHAINS) { + print_error("Invalid chain '$chain' in rule $key"); + next; + } + + # Collect all sources. + my @sources = &fwlib::get_addresses($hash, $key, "src"); + + # Collect all destinations. + my @destinations = &fwlib::get_addresses($hash, $key, "tgt"); + + # True if the destination is the firewall itself. + my $destination_is_firewall = ($$hash{$key}[5] eq "ipfire"); + + # Check if logging should be enabled. + my $LOG = ($$hash{$key}[17] eq 'ON'); + + # Check if NAT is enabled and initialize variables, that we use for that. + my $NAT = ($$hash{$key}[28] eq 'ON'); + my $NAT_MODE; + if ($NAT) { + $NAT_MODE = uc($$hash{$key}[31]); + } + + # Set up time constraints. + my @time_options = (); + if ($$hash{$key}[18] eq 'ON') { + push(@time_options, ("-m", "time")); + + # Select all days of the week this match is active. + my @weekdays = (); + if ($$hash{$key}[19] ne '') { + push (@weekdays, "Mon"); + } + if ($$hash{$key}[20] ne '') { + push (@weekdays, "Tue"); + } + if ($$hash{$key}[21] ne '') { + push (@weekdays, "Wed"); + } + if ($$hash{$key}[22] ne '') { + push (@weekdays, "Thu"); + } + if ($$hash{$key}[23] ne '') { + push (@weekdays, "Fri"); + } + if ($$hash{$key}[24] ne '') { + push (@weekdays, "Sat"); + } + if ($$hash{$key}[25] ne '') { + push (@weekdays, "Sun"); + } + if (@weekdays) { + push(@time_options, ("--weekdays", join(",", @weekdays))); + } + + # Convert start time. + my $time_start = &format_time($$hash{$key}[26]); + if ($time_start) { + push(@time_options, ("--timestart", $time_start)); + } + + # Convert end time. + my $time_stop = &format_time($$hash{$key}[27]); + if ($time_stop) { + push(@time_options, ("--timestop", $time_stop)); + } + } + + # Check which protocols are used in this rule and so that we can + # later group rules by protocols. + my @protocols = &get_protocols($hash, $key); + if (!@protocols) { + print_error("Invalid protocol configuration for rule $key"); + next; + } + + foreach my $protocol (@protocols) { + # Check if the given protocol is supported. + if (($protocol ne "all") && (!$protocol ~~ @PROTOCOLS)) { + print_error("Protocol $protocol is not supported (rule $key)"); + next; + } + + # Prepare protocol options (like ICMP types, ports, etc...). + my @protocol_options = &get_protocol_options($hash, $key, $protocol, 0); + + # Check if this protocol knows ports. + my $protocol_has_ports = ($protocol ~~ @PROTOCOLS_WITH_PORTS); + + foreach my $source (@sources) { + foreach my $destination (@destinations) { + # Skip invalid rules. + next if (!$source || !$destination || ($destination eq "none")); + + # Sanitize source. + if ($source ~~ @ANY_ADDRESSES) { + $source = ""; + } + + # Sanitize destination. + if ($destination ~~ @ANY_ADDRESSES) { + $destination = ""; + } + + # Array with iptables arguments. + my @options = (); + + # Append protocol. + if ($protocol ne "all") { + push(@options, @protocol_options); + } + + # Prepare source options. + my @source_options = (); + if ($source =~ /mac/) { + push(@source_options, $source); + } elsif ($source) { + push(@source_options, ("-s", $source)); + } + + # Prepare destination options. + my @destination_options = (); + if ($destination) { + push(@destination_options, ("-d", $destination)); + } + + # Add time constraint options. + push(@options, @time_options); + + my $firewall_is_in_source_subnet = 0; + if ($source) { + $firewall_is_in_source_subnet = &firewall_is_in_subnet($source); + } + + # Process NAT rules. + if ($NAT) { + my $nat_address = &fwlib::get_nat_address($$hash{$key}[29], $source); + + # Skip NAT rules if the NAT address is unknown + # (i.e. no internet connection has been established, yet). + next unless ($nat_address); + + # Destination NAT + if ($NAT_MODE eq "DNAT") { + # Make port-forwardings useable from the internal networks. + my @internal_addresses = &fwlib::get_internal_firewall_ip_addresses(1); + unless ($nat_address ~~ @internal_addresses) { + &add_dnat_mangle_rules($nat_address, @options); + } + + my @nat_options = (); + if ($protocol ne "all") { + my @nat_protocol_options = &get_protocol_options($hash, $key, $protocol, 1); + push(@nat_options, @nat_protocol_options); + } + push(@nat_options, @source_options); + push(@nat_options, ("-d", $nat_address)); + push(@nat_options, @time_options); + + my $dnat_port; + if ($protocol_has_ports) { + $dnat_port = &get_dnat_target_port($hash, $key); + } + + my @nat_action_options = (); + + # Use iptables REDIRECT + my $use_redirect = ($destination_is_firewall && !$destination && $protocol_has_ports && $dnat_port); + if ($use_redirect) { + push(@nat_action_options, ("-j", "REDIRECT", "--to-ports", $dnat_port)); + + # Use iptables DNAT + } else { + if ($destination_is_firewall && !$destination) { + $destination = &fwlib::get_external_address(); + } + next unless ($destination); + + my ($dnat_address, $dnat_mask) = split("/", $destination); + @destination_options = ("-d", $dnat_address); + + if ($protocol_has_ports) { + my $dnat_port = &get_dnat_target_port($hash, $key); + + if ($dnat_port) { + $dnat_address .= ":$dnat_port"; + } + } + + push(@nat_action_options, ("-j", "DNAT", "--to-destination", $dnat_address)); + } + + if ($LOG) { + run("$IPTABLES -t nat -A $CHAIN_NAT_DESTINATION @nat_options @log_limit_options -j LOG --log-prefix 'DNAT '"); + } + run("$IPTABLES -t nat -A $CHAIN_NAT_DESTINATION @nat_options @nat_action_options"); + + # Source NAT + } elsif ($NAT_MODE eq "SNAT") { + my @nat_options = @options; + + push(@nat_options, @source_options); + push(@nat_options, @destination_options); + + if ($LOG) { + run("$IPTABLES -t nat -A $CHAIN_NAT_SOURCE @nat_options @log_limit_options -j LOG --log-prefix 'SNAT '"); + } + run("$IPTABLES -t nat -A $CHAIN_NAT_SOURCE @nat_options -j SNAT --to-source $nat_address"); + } + } + + push(@options, @source_options); + + if ($firewall_is_in_source_subnet && ($fwdfwsettings{"POLICY"} eq "MODE1") && ($chain eq $CHAIN_FORWARD)) { + if ($LOG && !$NAT) { + run("$IPTABLES -A $CHAIN_INPUT @options @log_limit_options -j LOG --log-prefix '$CHAIN_INPUT '"); + } + run("$IPTABLES -A $CHAIN_INPUT @options -j $target"); + } + + push(@options, @destination_options); + + # Insert firewall rule. + if ($LOG && !$NAT) { + run("$IPTABLES -A $chain @options @log_limit_options -j LOG --log-prefix '$chain '"); + } + run("$IPTABLES -A $chain @options -j $target"); + } + } + } + } +} + +# Formats the given timestamp into the iptables format which is "hh:mm" UTC. +sub format_time { + my $val = shift; + + # Convert the given time into minutes. + my $minutes = &time_convert_to_minutes($val); + + # Move the timestamp into UTC. + $minutes += &time_utc_offset(); + + # Make sure $minutes is between 00:00 and 23:59. + if ($minutes < 0) { + $minutes += 1440; + } + + if ($minutes > 1440) { + $minutes -= 1440; + } + + # Format as hh:mm. + return sprintf("%02d:%02d", $minutes / 60, $minutes % 60); +} + +# Calculates the offsets in minutes from the local timezone to UTC. +sub time_utc_offset { + my @localtime = localtime(time); + my @gmtime = gmtime(time); + + return ($gmtime[2] * 60 + $gmtime[1] % 60) - ($localtime[2] * 60 + $localtime[1] % 60); +} + +# Takes a timestamp like "14:00" and converts it into minutes since midnight. +sub time_convert_to_minutes { + my ($hrs, $min) = split(":", shift); + + return ($hrs * 60) + $min; +} + +sub p2pblock { + my $P2PSTRING = ""; + my $DO; + open( FILE, "< $p2pfile" ) or die "Unable to read $p2pfile"; + @p2ps = <FILE>; + close FILE; + my $CMD = "-m ipp2p"; + foreach my $p2pentry (sort @p2ps) { + my @p2pline = split( /;/, $p2pentry ); + if ( $fwdfwsettings{'POLICY'} eq 'MODE1' ) { + $DO = "ACCEPT"; + if ("$p2pline[2]" eq "on") { + $P2PSTRING = "$P2PSTRING --$p2pline[1]"; + } + }else { + $DO = "RETURN"; + if ("$p2pline[2]" eq "off") { + $P2PSTRING = "$P2PSTRING --$p2pline[1]"; + } + } + } + + if($P2PSTRING) { + run("$IPTABLES -A FORWARDFW $CMD $P2PSTRING -j $DO"); + } +} + +sub get_protocols { + my $hash = shift; + my $key = shift; + + my $uses_source_ports = ($$hash{$key}[7] eq "ON"); + my $uses_services = ($$hash{$key}[11] eq "ON"); + + my @protocols = (); + + # Rules which don't have source ports or services (like ICMP, ESP, ...). + if (!$uses_source_ports && !$uses_services) { + push(@protocols, $$hash{$key}[8]); + + # Rules which either use ports or services. + } elsif ($uses_source_ports || $uses_services) { + # Check if service group or service + if ($$hash{$key}[14] eq 'cust_srv') { + push(@protocols, &fwlib::get_srv_prot($$hash{$key}[15])); + + } elsif($$hash{$key}[14] eq 'cust_srvgrp'){ + my $protos = &fwlib::get_srvgrp_prot($$hash{$key}[15]); + push(@protocols, split(",", $protos)); + + } else { + # Fetch the protocol for this rule. + my $protocol = lc($$hash{$key}[8]); + + # Fetch source and destination ports for this rule. + my $source_ports = $$hash{$key}[10]; + my $destination_ports = $$hash{$key}[15]; + + # Check if ports are set for protocols which do not support ports. + if (!($protocol ~~ @PROTOCOLS_WITH_PORTS) && ($source_ports || $destination_ports)) { + print_error("$protocol does not support ports"); + return (); + } + + push(@protocols, $protocol); + } + } + + # Remove all empty elements + @protocols = map { $_ ? $_ : () } @protocols; + + # If no protocol has been defined, we assume "all". + if (!@protocols) { + push(@protocols, "all"); + } + + # Make all protocol names lowercase. + @protocols = map { lc } @protocols; + + return @protocols; +} + +sub get_protocol_options { + my $hash = shift; + my $key = shift; + my $protocol = shift; + my $nat_options_wanted = shift; + my @options = (); + + # Nothing to do if no protocol is specified. + if ($protocol eq "all") { + return @options; + } else { + push(@options, ("-p", $protocol)); + } + + # Process source ports. + my $use_src_ports = ($$hash{$key}[7] eq "ON"); + my $src_ports = $$hash{$key}[10]; + + if ($use_src_ports && $src_ports) { + push(@options, &format_ports($src_ports, "src")); + } + + # Process destination ports. + my $use_dst_ports = ($$hash{$key}[11] eq "ON"); + my $use_dnat = (($$hash{$key}[28] eq "ON") && ($$hash{$key}[31] eq "dnat")); + + if ($use_dst_ports) { + my $dst_ports_mode = $$hash{$key}[14]; + my $dst_ports = $$hash{$key}[15]; + + if (($dst_ports_mode eq "TGT_PORT") && $dst_ports) { + if ($nat_options_wanted && $use_dnat && $$hash{$key}[30]) { + $dst_ports = $$hash{$key}[30]; + } + push(@options, &format_ports($dst_ports, "dst")); + + } elsif ($dst_ports_mode eq "cust_srv") { + if ($protocol eq "ICMP") { + push(@options, ("--icmp-type", &fwlib::get_srv_port($dst_ports, 3, "ICMP"))); + } else { + $dst_ports = &fwlib::get_srv_port($dst_ports, 1, uc($protocol)); + push(@options, &format_ports($dst_ports, "dst")); + } + + } elsif ($dst_ports_mode eq "cust_srvgrp") { + push(@options, &fwlib::get_srvgrp_port($dst_ports, uc($protocol))); + } + } + + # Check if a single ICMP type is selected. + if (!$use_src_ports && !$use_dst_ports && $protocol eq "icmp") { + my $icmp_type = $$hash{$key}[9]; + + if (($icmp_type ne "All ICMP-Types") && $icmp_type) { + push(@options, ("--icmp-type", $icmp_type)); + } + } + + return @options; +} + +sub format_ports { + my $ports = shift; + my $type = shift; + + my $arg; + if ($type eq "src") { + $arg = "--sport"; + } elsif ($type eq "dst") { + $arg = "--dport"; + } + + my @options = (); + + if ($ports =~ /|/) { + $ports =~ s/|/,/g; + push(@options, ("-m", "multiport")); + } + + if ($ports) { + push(@options, ($arg, $ports)); + } + + return @options; +} + +sub get_dnat_target_port { + my $hash = shift; + my $key = shift; + + if ($$hash{$key}[14] eq "TGT_PORT") { + my $port = $$hash{$key}[15]; + my $external_port = $$hash{$key}[30]; + + if ($external_port && ($port ne $external_port)) { + return $$hash{$key}[15]; + } + } +} + +sub add_dnat_mangle_rules { + my $nat_address = shift; + my @options = @_; + + my $mark = 0; + foreach my $zone ("GREEN", "BLUE", "ORANGE") { + $mark++; + + # Skip rule if not all required information exists. + next unless (exists $defaultNetworks{$zone . "_NETADDRESS"}); + next unless (exists $defaultNetworks{$zone . "_NETMASK"}); + + my @mangle_options = @options; + + my $netaddress = $defaultNetworks{$zone . "_NETADDRESS"}; + $netaddress .= "/" . $defaultNetworks{$zone . "_NETMASK"}; + + push(@mangle_options, ("-s", $netaddress, "-d", $nat_address)); + push(@mangle_options, ("-j", "MARK", "--set-mark", $mark)); + + run("$IPTABLES -t mangle -A $CHAIN_MANGLE_NAT_DESTINATION_FIX @mangle_options"); + } +} + +sub make_log_limit_options { + my @options = ("-m", "limit"); + + # Maybe we should get this from the configuration. + my $limit = 10; + + # We limit log messages to $limit messages per minute. + push(@options, ("--limit", "$limit/min")); + + # And we allow bursts of 2x $limit. + push(@options, ("--limit-burst", $limit * 2)); + + return @options; +} + +sub firewall_is_in_subnet { + my $subnet = shift; + + # ORANGE is missing here, because nothing may ever access + # the firewall from this network. + my $address = &fwlib::get_internal_firewall_ip_address($subnet, 0); + + if ($address) { + return 1; + } + + return 0; +} + diff --git a/config/fwhosts/customservices b/config/fwhosts/customservices new file mode 100644 index 0000000..9b25a72 --- /dev/null +++ b/config/fwhosts/customservices @@ -0,0 +1,34 @@ +32,rsync,873,TCP,BLANK,0 +33,DNS (UDP),53,UDP,,0 +21,IMAPS,993,TCP,BLANK,0 +7,WINS,42,TCP,BLANK,0 +26,LPD,515,TCP,BLANK,0 +2,FTP-control,21,TCP,BLANK,0 +17,IRC,194,TCP,BLANK,0 +1,FTP-data,20,TCP,BLANK,0 +18,HTTPS,443,TCP,BLANK,0 +30,NFS,2049,TCP,BLANK,0 +16,SNMP,161,UDP,BLANK,0 +27,JetDirect,9100,TCP,BLANK,0 +25,IPP (UDP),631,UDP,BLANK,0 +28,LDAP,389,TCP,BLANK,0 +14,NetBIOS Session Service,139,TCP,BLANK,0 +20,FTPS control,990,TCP,BLANK,0 +24,IPP (TCP),631,TCP,BLANK,0 +10,SFTP,115,TCP,BLANK,0 +31,Radius,1812,TCP,BLANK,0 +11,NTP,123,UDP,BLANK,0 +22,POP3S,995,TCP,BLANK,0 +23,RDP,3389,TCP,BLANK,0 +13,NetBIOS Datagram Service,138,TCP,BLANK,0 +29,LDAPS,636,TCP,BLANK,0 +6,Time,37,TCP,BLANK,0 +3,SSH,22,TCP,BLANK,0 +9,POP3,110,TCP,BLANK,0 +12,NetBIOS Name Service,137,TCP,BLANK,0 +15,IMAP,143,TCP,BLANK,0 +8,HTTP,80,TCP,BLANK,0 +4,Telnet,23,TCP,BLANK,0 +34,DNS (TCP),53,TCP,,0 +19,FTPS data,989,TCP,BLANK,0 +5,SMTP,25,TCP,BLANK,0 diff --git a/config/fwhosts/icmp-types b/config/fwhosts/icmp-types new file mode 100755 index 0000000..a9066a8 --- /dev/null +++ b/config/fwhosts/icmp-types @@ -0,0 +1,36 @@ +0,echo-reply,0 +1,destination-unreachable,3 +2,network-unreachable,3/0 +3,host-unreachable,3/1 +4,protocol-unreachable,3/2 +5,port-unreachable,3/3 +6,fragmentation-needed,3/4 +7,source-route-failed,3/5 +8,network-unknown,3/6 +9,host-unknown,3/7 +10,network-prohibited,3/9 +11,host-prohibited,3/10 +12,TOS-network-unreachable,3/11 +13,TOS-host-unreachable,3/12 +14,communication-prohibited,3/13 +15,host-precedence-violation,3/14 +16,precedence-cutoff,3/15 +17,source-quench,4 +18,redirect,5 +19,network-redirect,5/0 +20,host-redirect,5/1 +21,TOS-network-redirect,5/2 +22,TOS-host-redirect,5/3 +23,echo-request,8 +24,router-advertisement,9 +25,router-solicitation,10 +26,time-exceeded,11 +27,ttl-zero-during-transit,11/0 +28,ttl-zero-during-reassembly,11/1 +29,parameter-problem,12 +30,ip-header-bad,12/0 +31,required-option-missing,12/1 +32,timestamp-request,13 +33,timestamp-reply,14 +34,address-mask-request,17 +35,address-mask-reply,18 diff --git a/config/guardian/guardian.pl b/config/guardian/guardian.pl index 86d93fe..34546b7 100644 --- a/config/guardian/guardian.pl +++ b/config/guardian/guardian.pl @@ -106,6 +106,10 @@ for (;;) { $temp = $array[11]; } &checkssh ($temp, "possible SSH-Bruteforce Attack");} + + # This should catch Bruteforce Attacks with enabled preauth + if ($_ =~ /.*sshd.*Received disconnect from (\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}):.*[preauth]/) { + &checkssh ($1, "possible SSH-Bruteforce Attack, failed preauth");} } }
@@ -424,4 +428,4 @@ sub get_aliases { }
print "done \n"; -} \ No newline at end of file +} diff --git a/config/hostapd/config b/config/hostapd/config index 6158e2c..1cd7676 100644 --- a/config/hostapd/config +++ b/config/hostapd/config @@ -142,3 +142,10 @@ CONFIG_IEEE80211N=y # This can be used to reduce the size of the hostapd considerably if debugging # code is not needed. CONFIG_NO_STDOUT_DEBUG=y + +# IEEE 802.11ac (Very High Throughput) support +CONFIG_IEEE80211AC=y + +# Enable AUTO_CHANNEL_SELECTION +# This is needed for dfs (radar detection) channels +CONFIG_ACS=y diff --git a/config/httpd/vhosts.d/ipfire-interface-ssl.conf b/config/httpd/vhosts.d/ipfire-interface-ssl.conf index cc3cb1d..dc6bb21 100644 --- a/config/httpd/vhosts.d/ipfire-interface-ssl.conf +++ b/config/httpd/vhosts.d/ipfire-interface-ssl.conf @@ -9,7 +9,8 @@ TransferLog /var/log/httpd/access_log SSLEngine on SSLProtocol all -SSLv2 - SSLCipherSuite ALL:!ADH:!EXPORT56:!eNULL:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW:+EXP + SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128:AES256:HIGH:!RC4:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK + SSLHonorCipherOrder on SSLCertificateFile /etc/httpd/server.crt SSLCertificateKeyFile /etc/httpd/server.key
diff --git a/config/kernel/kernel.config.armv5tel-ipfire-kirkwood b/config/kernel/kernel.config.armv5tel-ipfire-kirkwood index 70a7e23..5245a7f 100644 --- a/config/kernel/kernel.config.armv5tel-ipfire-kirkwood +++ b/config/kernel/kernel.config.armv5tel-ipfire-kirkwood @@ -1,38 +1,28 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm 3.2.47 Kernel Configuration +# Linux/arm 3.10.27-ipfire-kirkwood Kernel Configuration # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y -CONFIG_HAVE_SCHED_CLOCK=y -CONFIG_GENERIC_GPIO=y -# CONFIG_ARCH_USES_GETTIMEOFFSET is not set -CONFIG_GENERIC_CLOCKEVENTS=y -CONFIG_KTIME_SCALAR=y CONFIG_HAVE_PROC_CPU=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_HAVE_LATENCYTOP_SUPPORT=y CONFIG_LOCKDEP_SUPPORT=y CONFIG_TRACE_IRQFLAGS_SUPPORT=y -CONFIG_HARDIRQS_SW_RESEND=y -CONFIG_GENERIC_IRQ_PROBE=y CONFIG_RWSEM_GENERIC_SPINLOCK=y -CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_VECTORS_BASE=0xffff0000 -# CONFIG_ARM_PATCH_PHYS_VIRT is not set -CONFIG_PHYS_OFFSET=0x0 +CONFIG_ARM_PATCH_PHYS_VIRT=y CONFIG_GENERIC_BUG=y CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" -CONFIG_HAVE_IRQ_WORK=y CONFIG_IRQ_WORK=y +CONFIG_BUILDTIME_EXTABLE_SORT=y
# # General setup # -CONFIG_EXPERIMENTAL=y CONFIG_BROKEN_ON_SMP=y CONFIG_INIT_ENV_ARG_LIMIT=32 CONFIG_CROSS_COMPILE="" @@ -40,9 +30,11 @@ CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_HAVE_KERNEL_GZIP=y CONFIG_HAVE_KERNEL_LZMA=y +CONFIG_HAVE_KERNEL_XZ=y CONFIG_HAVE_KERNEL_LZO=y # CONFIG_KERNEL_GZIP is not set -CONFIG_KERNEL_LZMA=y +# CONFIG_KERNEL_LZMA is not set +CONFIG_KERNEL_XZ=y # CONFIG_KERNEL_LZO is not set CONFIG_DEFAULT_HOSTNAME="(none)" CONFIG_SWAP=y @@ -50,43 +42,83 @@ CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE_SYSCTL=y -CONFIG_BSD_PROCESS_ACCT=y -CONFIG_BSD_PROCESS_ACCT_V3=y -# CONFIG_FHANDLE is not set -# CONFIG_TASKSTATS is not set +CONFIG_FHANDLE=y CONFIG_AUDIT=y +CONFIG_AUDITSYSCALL=y +CONFIG_AUDIT_WATCH=y +CONFIG_AUDIT_TREE=y +CONFIG_AUDIT_LOGINUID_IMMUTABLE=y CONFIG_HAVE_GENERIC_HARDIRQS=y
# # IRQ subsystem # CONFIG_GENERIC_HARDIRQS=y -CONFIG_HAVE_SPARSE_IRQ=y +CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_HARDIRQS_SW_RESEND=y CONFIG_GENERIC_IRQ_CHIP=y CONFIG_IRQ_DOMAIN=y -CONFIG_SPARSE_IRQ=y +# CONFIG_IRQ_DOMAIN_DEBUG is not set +CONFIG_KTIME_SCALAR=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y + +# +# Timers subsystem +# +CONFIG_TICK_ONESHOT=y +CONFIG_NO_HZ_COMMON=y +# CONFIG_HZ_PERIODIC is not set +CONFIG_NO_HZ_IDLE=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y + +# +# CPU/Task time and stats accounting +# +CONFIG_TICK_CPU_ACCOUNTING=y +# CONFIG_IRQ_TIME_ACCOUNTING is not set +CONFIG_BSD_PROCESS_ACCT=y +# CONFIG_BSD_PROCESS_ACCT_V3 is not set +CONFIG_TASKSTATS=y +CONFIG_TASK_DELAY_ACCT=y +CONFIG_TASK_XACCT=y +CONFIG_TASK_IO_ACCOUNTING=y
# # RCU Subsystem # CONFIG_TINY_RCU=y # CONFIG_PREEMPT_RCU is not set -# CONFIG_RCU_TRACE is not set +# CONFIG_RCU_STALL_COMMON is not set # CONFIG_TREE_RCU_TRACE is not set # CONFIG_IKCONFIG is not set -CONFIG_LOG_BUF_SHIFT=19 -# CONFIG_CGROUPS is not set +CONFIG_LOG_BUF_SHIFT=18 +CONFIG_CGROUPS=y +# CONFIG_CGROUP_DEBUG is not set +CONFIG_CGROUP_FREEZER=y +CONFIG_CGROUP_DEVICE=y +CONFIG_CPUSETS=y +CONFIG_PROC_PID_CPUSET=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_RESOURCE_COUNTERS=y +# CONFIG_MEMCG is not set +CONFIG_CGROUP_PERF=y +CONFIG_CGROUP_SCHED=y +CONFIG_FAIR_GROUP_SCHED=y +# CONFIG_CFS_BANDWIDTH is not set +CONFIG_RT_GROUP_SCHED=y +CONFIG_BLK_CGROUP=y +# CONFIG_DEBUG_BLK_CGROUP is not set CONFIG_NAMESPACES=y CONFIG_UTS_NS=y CONFIG_IPC_NS=y -# CONFIG_USER_NS is not set -# CONFIG_PID_NS is not set -# CONFIG_NET_NS is not set -# CONFIG_SCHED_AUTOGROUP is not set -CONFIG_SYSFS_DEPRECATED=y -CONFIG_SYSFS_DEPRECATED_V2=y -# CONFIG_RELAY is not set +CONFIG_PID_NS=y +CONFIG_NET_NS=y +CONFIG_SCHED_AUTOGROUP=y +# CONFIG_SYSFS_DEPRECATED is not set +CONFIG_RELAY=y CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" CONFIG_RD_GZIP=y @@ -97,12 +129,13 @@ CONFIG_RD_LZO=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_SYSCTL=y CONFIG_ANON_INODES=y -# CONFIG_EXPERT is not set +CONFIG_HAVE_UID16=y +CONFIG_HOTPLUG=y +CONFIG_EXPERT=y CONFIG_UID16=y # CONFIG_SYSCTL_SYSCALL is not set CONFIG_KALLSYMS=y -# CONFIG_KALLSYMS_ALL is not set -CONFIG_HOTPLUG=y +CONFIG_KALLSYMS_ALL=y CONFIG_PRINTK=y CONFIG_BUG=y CONFIG_ELF_CORE=y @@ -114,7 +147,8 @@ CONFIG_TIMERFD=y CONFIG_EVENTFD=y CONFIG_SHMEM=y CONFIG_AIO=y -# CONFIG_EMBEDDED is not set +CONFIG_PCI_QUIRKS=y +CONFIG_EMBEDDED=y CONFIG_HAVE_PERF_EVENTS=y CONFIG_PERF_USE_VMALLOC=y
@@ -122,25 +156,45 @@ CONFIG_PERF_USE_VMALLOC=y # Kernel Performance Events And Counters # CONFIG_PERF_EVENTS=y -# CONFIG_PERF_COUNTERS is not set # CONFIG_DEBUG_PERF_USE_VMALLOC is not set CONFIG_VM_EVENT_COUNTERS=y -CONFIG_PCI_QUIRKS=y CONFIG_SLUB_DEBUG=y # CONFIG_COMPAT_BRK is not set # CONFIG_SLAB is not set CONFIG_SLUB=y +# CONFIG_SLOB is not set # CONFIG_PROFILING is not set +CONFIG_TRACEPOINTS=y CONFIG_HAVE_OPROFILE=y # CONFIG_KPROBES is not set +CONFIG_JUMP_LABEL=y +# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +CONFIG_HAVE_DMA_ATTRS=y +CONFIG_HAVE_DMA_CONTIGUOUS=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_GENERIC_IDLE_POLL_SETUP=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_CLK=y CONFIG_HAVE_DMA_API_DEBUG=y +CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y +CONFIG_HAVE_ARCH_SECCOMP_FILTER=y +CONFIG_SECCOMP_FILTER=y +CONFIG_HAVE_CONTEXT_TRACKING=y +CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y +CONFIG_HAVE_MOD_ARCH_SPECIFIC=y +CONFIG_MODULES_USE_ELF_REL=y +CONFIG_CLONE_BACKWARDS=y +CONFIG_OLD_SIGSUSPEND3=y +CONFIG_OLD_SIGACTION=y
# # GCOV-based kernel profiling # +# CONFIG_GCOV_KERNEL is not set CONFIG_HAVE_GENERIC_DMA_COHERENT=y CONFIG_SLABINFO=y CONFIG_RT_MUTEXES=y @@ -148,14 +202,40 @@ CONFIG_BASE_SMALL=0 CONFIG_MODULES=y # CONFIG_MODULE_FORCE_LOAD is not set CONFIG_MODULE_UNLOAD=y -CONFIG_MODULE_FORCE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set # CONFIG_MODVERSIONS is not set -# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_MODULE_SRCVERSION_ALL=y +# CONFIG_MODULE_SIG is not set +CONFIG_STOP_MACHINE=y CONFIG_BLOCK=y CONFIG_LBDAF=y CONFIG_BLK_DEV_BSG=y CONFIG_BLK_DEV_BSGLIB=y -# CONFIG_BLK_DEV_INTEGRITY is not set +CONFIG_BLK_DEV_INTEGRITY=y +CONFIG_BLK_DEV_THROTTLING=y + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +# CONFIG_MAC_PARTITION is not set +CONFIG_MSDOS_PARTITION=y +# CONFIG_BSD_DISKLABEL is not set +# CONFIG_MINIX_SUBPARTITION is not set +# CONFIG_SOLARIS_X86_PARTITION is not set +# CONFIG_UNIXWARE_DISKLABEL is not set +CONFIG_LDM_PARTITION=y +# CONFIG_LDM_DEBUG is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +# CONFIG_KARMA_PARTITION is not set +CONFIG_EFI_PARTITION=y +# CONFIG_SYSV68_PARTITION is not set
# # IO Schedulers @@ -163,136 +243,121 @@ CONFIG_BLK_DEV_BSGLIB=y CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_DEADLINE=y CONFIG_IOSCHED_CFQ=y +CONFIG_CFQ_GROUP_IOSCHED=y # CONFIG_DEFAULT_DEADLINE is not set CONFIG_DEFAULT_CFQ=y # CONFIG_DEFAULT_NOOP is not set CONFIG_DEFAULT_IOSCHED="cfq" -# CONFIG_INLINE_SPIN_TRYLOCK is not set -# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set -# CONFIG_INLINE_SPIN_LOCK is not set -# CONFIG_INLINE_SPIN_LOCK_BH is not set -# CONFIG_INLINE_SPIN_LOCK_IRQ is not set -# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set -CONFIG_INLINE_SPIN_UNLOCK=y -# CONFIG_INLINE_SPIN_UNLOCK_BH is not set +CONFIG_ASN1=m CONFIG_INLINE_SPIN_UNLOCK_IRQ=y -# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set -# CONFIG_INLINE_READ_TRYLOCK is not set -# CONFIG_INLINE_READ_LOCK is not set -# CONFIG_INLINE_READ_LOCK_BH is not set -# CONFIG_INLINE_READ_LOCK_IRQ is not set -# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set CONFIG_INLINE_READ_UNLOCK=y -# CONFIG_INLINE_READ_UNLOCK_BH is not set CONFIG_INLINE_READ_UNLOCK_IRQ=y -# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set -# CONFIG_INLINE_WRITE_TRYLOCK is not set -# CONFIG_INLINE_WRITE_LOCK is not set -# CONFIG_INLINE_WRITE_LOCK_BH is not set -# CONFIG_INLINE_WRITE_LOCK_IRQ is not set -# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set CONFIG_INLINE_WRITE_UNLOCK=y -# CONFIG_INLINE_WRITE_UNLOCK_BH is not set CONFIG_INLINE_WRITE_UNLOCK_IRQ=y -# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set -# CONFIG_MUTEX_SPIN_ON_OWNER is not set -# CONFIG_FREEZER is not set +CONFIG_FREEZER=y
# # System Type # CONFIG_MMU=y +# CONFIG_ARCH_MULTIPLATFORM is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_REALVIEW is not set # CONFIG_ARCH_VERSATILE is not set -# CONFIG_ARCH_VEXPRESS is not set # CONFIG_ARCH_AT91 is not set -# CONFIG_ARCH_BCMRING is not set -# CONFIG_ARCH_HIGHBANK is not set # CONFIG_ARCH_CLPS711X is not set -# CONFIG_ARCH_CNS3XXX is not set # CONFIG_ARCH_GEMINI is not set -# CONFIG_ARCH_PRIMA2 is not set # CONFIG_ARCH_EBSA110 is not set # CONFIG_ARCH_EP93XX is not set # CONFIG_ARCH_FOOTBRIDGE is not set -# CONFIG_ARCH_MXC is not set -# CONFIG_ARCH_MXS is not set # CONFIG_ARCH_NETX is not set -# CONFIG_ARCH_H720X is not set # CONFIG_ARCH_IOP13XX is not set # CONFIG_ARCH_IOP32X is not set # CONFIG_ARCH_IOP33X is not set -# CONFIG_ARCH_IXP23XX is not set -# CONFIG_ARCH_IXP2000 is not set # CONFIG_ARCH_IXP4XX is not set # CONFIG_ARCH_DOVE is not set CONFIG_ARCH_KIRKWOOD=y -# CONFIG_ARCH_LPC32XX is not set # CONFIG_ARCH_MV78XX0 is not set # CONFIG_ARCH_ORION5X is not set # CONFIG_ARCH_MMP is not set # CONFIG_ARCH_KS8695 is not set # CONFIG_ARCH_W90X900 is not set -# CONFIG_ARCH_TEGRA is not set -# CONFIG_ARCH_PICOXCELL is not set -# CONFIG_ARCH_PNX4008 is not set +# CONFIG_ARCH_LPC32XX is not set # CONFIG_ARCH_PXA is not set # CONFIG_ARCH_MSM is not set # CONFIG_ARCH_SHMOBILE is not set # CONFIG_ARCH_RPC is not set # CONFIG_ARCH_SA1100 is not set -# CONFIG_ARCH_S3C2410 is not set +# CONFIG_ARCH_S3C24XX is not set # CONFIG_ARCH_S3C64XX is not set # CONFIG_ARCH_S5P64X0 is not set # CONFIG_ARCH_S5PC100 is not set # CONFIG_ARCH_S5PV210 is not set # CONFIG_ARCH_EXYNOS is not set # CONFIG_ARCH_SHARK is not set -# CONFIG_ARCH_TCC_926 is not set # CONFIG_ARCH_U300 is not set -# CONFIG_ARCH_U8500 is not set -# CONFIG_ARCH_NOMADIK is not set # CONFIG_ARCH_DAVINCI is not set -# CONFIG_ARCH_OMAP is not set -# CONFIG_PLAT_SPEAR is not set -# CONFIG_ARCH_VT8500 is not set -# CONFIG_ARCH_ZYNQ is not set -CONFIG_GPIO_PCA953X=m -CONFIG_KEYBOARD_GPIO_POLLED=m +# CONFIG_ARCH_OMAP1 is not set +# CONFIG_GPIO_PCA953X is not set +CONFIG_KEYBOARD_GPIO_POLLED=y
# # Marvell Kirkwood Implementations # +CONFIG_MACH_D2NET_V2=y CONFIG_MACH_DB88F6281_BP=y -CONFIG_MACH_RD88F6192_NAS=y -CONFIG_MACH_RD88F6281=y -CONFIG_MACH_MV88F6281GTW_GE=y -CONFIG_MACH_SHEEVAPLUG=y +CONFIG_MACH_DOCKSTAR=y CONFIG_MACH_ESATA_SHEEVAPLUG=y CONFIG_MACH_GURUPLUG=y -CONFIG_MACH_DREAMPLUG=y -CONFIG_MACH_TS219=y -CONFIG_MACH_TS41X=y -CONFIG_MACH_DOCKSTAR=y +CONFIG_MACH_INETSPACE_V2=y +CONFIG_MACH_MV88F6281GTW_GE=y +CONFIG_MACH_NET2BIG_V2=y +CONFIG_MACH_NET5BIG_V2=y +CONFIG_MACH_NETSPACE_MAX_V2=y +CONFIG_MACH_NETSPACE_V2=y CONFIG_MACH_OPENRD=y CONFIG_MACH_OPENRD_BASE=y CONFIG_MACH_OPENRD_CLIENT=y CONFIG_MACH_OPENRD_ULTIMATE=y -CONFIG_MACH_NETSPACE_V2=y -CONFIG_MACH_INETSPACE_V2=y -CONFIG_MACH_NETSPACE_MAX_V2=y -CONFIG_MACH_D2NET_V2=y -CONFIG_MACH_NET2BIG_V2=y -CONFIG_MACH_NET5BIG_V2=y +CONFIG_MACH_RD88F6192_NAS=y +CONFIG_MACH_RD88F6281=y +CONFIG_MACH_SHEEVAPLUG=y CONFIG_MACH_T5325=y -CONFIG_MACH_ICONNECT=y -CONFIG_MACH_NAS6210=y +CONFIG_MACH_DREAMPLUG=y +CONFIG_MACH_TS219=y +CONFIG_MACH_TS41X=y
# -# System MMU -# +# Device tree entries +# +CONFIG_ARCH_KIRKWOOD_DT=y +CONFIG_MACH_CLOUDBOX_DT=y +CONFIG_MACH_DLINK_KIRKWOOD_DT=y +CONFIG_MACH_DOCKSTAR_DT=y +CONFIG_MACH_DREAMPLUG_DT=y +CONFIG_MACH_GOFLEXNET_DT=y +CONFIG_MACH_GURUPLUG_DT=y +CONFIG_MACH_IB62X0_DT=y +CONFIG_MACH_ICONNECT_DT=y +CONFIG_MACH_INETSPACE_V2_DT=y +CONFIG_MACH_IOMEGA_IX2_200_DT=y +CONFIG_MACH_KM_KIRKWOOD_DT=y +CONFIG_MACH_LSXL_DT=y +CONFIG_MACH_MPLCEC4_DT=y +CONFIG_MACH_NETSPACE_LITE_V2_DT=y +CONFIG_MACH_NETSPACE_MAX_V2_DT=y +CONFIG_MACH_NETSPACE_MINI_V2_DT=y +CONFIG_MACH_NETSPACE_V2_DT=y +CONFIG_MACH_NSA310_DT=y +CONFIG_MACH_OPENBLOCKS_A6_DT=y +CONFIG_MACH_READYNAS_DT=y +CONFIG_MACH_TOPKICK_DT=y +CONFIG_MACH_TS219_DT=y +CONFIG_MACH_ICONNECT=y +CONFIG_MACH_NAS6210=y +# CONFIG_PLAT_SPEAR is not set CONFIG_PLAT_ORION=y +CONFIG_PLAT_ORION_LEGACY=y
# # Processor Type @@ -312,29 +377,33 @@ CONFIG_CPU_USE_DOMAINS=y # # Processor Features # +# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set CONFIG_ARM_THUMB=y # CONFIG_CPU_ICACHE_DISABLE is not set # CONFIG_CPU_DCACHE_DISABLE is not set +CONFIG_NEED_KUSER_HELPERS=y +CONFIG_KUSER_HELPERS=y CONFIG_OUTER_CACHE=y CONFIG_CACHE_FEROCEON_L2=y # CONFIG_CACHE_FEROCEON_L2_WRITETHROUGH is not set +# CONFIG_CACHE_L2X0 is not set CONFIG_ARM_L1_CACHE_SHIFT=5 +CONFIG_ARM_NR_BANKS=8
# # Bus support # CONFIG_PCI=y CONFIG_PCI_SYSCALL=y -# CONFIG_ARCH_SUPPORTS_MSI is not set # CONFIG_PCI_DEBUG is not set -CONFIG_PCI_STUB=m +# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set +CONFIG_PCI_STUB=y CONFIG_PCI_ATS=y CONFIG_PCI_IOV=y -CONFIG_PCI_PRI=y +# CONFIG_PCI_PRI is not set # CONFIG_PCI_PASID is not set CONFIG_PCCARD=m -CONFIG_PCMCIA=m -CONFIG_PCMCIA_LOAD_CIS=y +# CONFIG_PCMCIA is not set CONFIG_CARDBUS=y
# @@ -346,25 +415,20 @@ CONFIG_YENTA_RICOH=y CONFIG_YENTA_TI=y CONFIG_YENTA_ENE_TUNE=y CONFIG_YENTA_TOSHIBA=y -CONFIG_PD6729=m -CONFIG_I82092=m -CONFIG_PCCARD_NONSTATIC=y
# # Kernel Features # -CONFIG_TICK_ONESHOT=y -CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y -CONFIG_GENERIC_CLOCKEVENTS_BUILD=y CONFIG_VMSPLIT_3G=y # CONFIG_VMSPLIT_2G is not set # CONFIG_VMSPLIT_1G is not set CONFIG_PAGE_OFFSET=0xC0000000 +CONFIG_ARCH_NR_GPIO=0 CONFIG_PREEMPT_NONE=y # CONFIG_PREEMPT_VOLUNTARY is not set # CONFIG_PREEMPT is not set CONFIG_HZ=100 +CONFIG_SCHED_HRTICK=y CONFIG_AEABI=y # CONFIG_OABI_COMPAT is not set # CONFIG_ARCH_SPARSEMEM_DEFAULT is not set @@ -372,48 +436,57 @@ CONFIG_AEABI=y CONFIG_HAVE_ARCH_PFN_VALID=y CONFIG_HIGHMEM=y # CONFIG_HIGHPTE is not set -CONFIG_SELECT_MEMORY_MODEL=y -CONFIG_FLATMEM_MANUAL=y +CONFIG_HW_PERF_EVENTS=y CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y CONFIG_HAVE_MEMBLOCK=y +# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set CONFIG_PAGEFLAGS_EXTENDED=y CONFIG_SPLIT_PTLOCK_CPUS=999999 -# CONFIG_COMPACTION is not set +CONFIG_COMPACTION=y +CONFIG_MIGRATION=y # CONFIG_PHYS_ADDR_T_64BIT is not set CONFIG_ZONE_DMA_FLAG=0 CONFIG_BOUNCE=y -CONFIG_VIRT_TO_BUS=y CONFIG_KSM=y -CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 +CONFIG_DEFAULT_MMAP_MIN_ADDR=32768 +CONFIG_CROSS_MEMORY_ATTACH=y CONFIG_NEED_PER_CPU_KM=y -# CONFIG_CLEANCACHE is not set +CONFIG_CLEANCACHE=y +# CONFIG_FRONTSWAP is not set CONFIG_FORCE_MAX_ZONEORDER=11 CONFIG_ALIGNMENT_TRAP=y -CONFIG_UACCESS_WITH_MEMCPY=y +# CONFIG_UACCESS_WITH_MEMCPY is not set CONFIG_SECCOMP=y CONFIG_CC_STACKPROTECTOR=y -# CONFIG_DEPRECATED_PARAM_STRUCT is not set
# # Boot options # CONFIG_USE_OF=y -CONFIG_ZBOOT_ROM_TEXT=0x0 -CONFIG_ZBOOT_ROM_BSS=0x0 -# CONFIG_ARM_APPENDED_DTB is not set -CONFIG_CMDLINE="" +CONFIG_ATAGS=y +# CONFIG_DEPRECATED_PARAM_STRUCT is not set +CONFIG_ZBOOT_ROM_TEXT=0 +CONFIG_ZBOOT_ROM_BSS=0 +CONFIG_ARM_APPENDED_DTB=y +CONFIG_ARM_ATAG_DTB_COMPAT=y +CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER=y +# CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND is not set +CONFIG_CMDLINE="console=ttyAM0,115200 root=/dev/sda1 rootdelay=20" +CONFIG_CMDLINE_FROM_BOOTLOADER=y +# CONFIG_CMDLINE_EXTEND is not set +# CONFIG_CMDLINE_FORCE is not set # CONFIG_XIP_KERNEL is not set -# CONFIG_KEXEC is not set -# CONFIG_CRASH_DUMP is not set +CONFIG_KEXEC=y +CONFIG_ATAGS_PROC=y +CONFIG_CRASH_DUMP=y CONFIG_AUTO_ZRELADDR=y
# # CPU Power Management # -CONFIG_CPU_IDLE=y -CONFIG_CPU_IDLE_GOV_LADDER=y -CONFIG_CPU_IDLE_GOV_MENU=y +# CONFIG_CPU_IDLE is not set +# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
# # Floating point emulation @@ -422,16 +495,18 @@ CONFIG_CPU_IDLE_GOV_MENU=y # # At least one emulation must be selected # -# CONFIG_VFP is not set +CONFIG_VFP=y
# # Userspace binary formats # CONFIG_BINFMT_ELF=y -# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set -CONFIG_HAVE_AOUT=y -# CONFIG_BINFMT_AOUT is not set -# CONFIG_BINFMT_MISC is not set +CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y +CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y +CONFIG_BINFMT_SCRIPT=y +# CONFIG_HAVE_AOUT is not set +CONFIG_BINFMT_MISC=y +CONFIG_COREDUMP=y
# # Power management options @@ -439,8 +514,8 @@ CONFIG_HAVE_AOUT=y CONFIG_PM_RUNTIME=y CONFIG_PM=y # CONFIG_PM_DEBUG is not set -# CONFIG_APM_EMULATION is not set -CONFIG_CPU_PM=y +CONFIG_APM_EMULATION=y +CONFIG_PM_CLK=y # CONFIG_ARM_CPU_SUSPEND is not set CONFIG_NET=y
@@ -448,10 +523,13 @@ CONFIG_NET=y # Networking options # CONFIG_PACKET=y +CONFIG_PACKET_DIAG=y CONFIG_UNIX=y +CONFIG_UNIX_DIAG=m CONFIG_XFRM=y -CONFIG_XFRM_USER=m -# CONFIG_XFRM_SUB_POLICY is not set +CONFIG_XFRM_ALGO=y +CONFIG_XFRM_USER=y +CONFIG_XFRM_SUB_POLICY=y CONFIG_XFRM_MIGRATE=y CONFIG_XFRM_STATISTICS=y CONFIG_XFRM_IPCOMP=m @@ -460,7 +538,7 @@ CONFIG_NET_KEY_MIGRATE=y CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y -# CONFIG_IP_FIB_TRIE_STATS is not set +CONFIG_IP_FIB_TRIE_STATS=y CONFIG_IP_MULTIPLE_TABLES=y CONFIG_IP_ROUTE_MULTIPATH=y CONFIG_IP_ROUTE_VERBOSE=y @@ -468,28 +546,31 @@ CONFIG_IP_ROUTE_CLASSID=y # CONFIG_IP_PNP is not set CONFIG_NET_IPIP=m CONFIG_NET_IPGRE_DEMUX=m +CONFIG_NET_IP_TUNNEL=m CONFIG_NET_IPGRE=m CONFIG_NET_IPGRE_BROADCAST=y CONFIG_IP_MROUTE=y -# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set +CONFIG_IP_MROUTE_MULTIPLE_TABLES=y CONFIG_IP_PIMSM_V1=y CONFIG_IP_PIMSM_V2=y -CONFIG_ARPD=y +# CONFIG_ARPD is not set CONFIG_SYN_COOKIES=y +CONFIG_NET_IPVTI=m CONFIG_INET_AH=m CONFIG_INET_ESP=m CONFIG_INET_IPCOMP=m CONFIG_INET_XFRM_TUNNEL=m CONFIG_INET_TUNNEL=m -CONFIG_INET_XFRM_MODE_TRANSPORT=y -CONFIG_INET_XFRM_MODE_TUNNEL=y -CONFIG_INET_XFRM_MODE_BEET=y +CONFIG_INET_XFRM_MODE_TRANSPORT=m +CONFIG_INET_XFRM_MODE_TUNNEL=m +CONFIG_INET_XFRM_MODE_BEET=m CONFIG_INET_LRO=y CONFIG_INET_DIAG=m CONFIG_INET_TCP_DIAG=m +CONFIG_INET_UDP_DIAG=m CONFIG_TCP_CONG_ADVANCED=y CONFIG_TCP_CONG_BIC=m -CONFIG_TCP_CONG_CUBIC=m +CONFIG_TCP_CONG_CUBIC=y CONFIG_TCP_CONG_WESTWOOD=m CONFIG_TCP_CONG_HTCP=m CONFIG_TCP_CONG_HSTCP=m @@ -500,13 +581,15 @@ CONFIG_TCP_CONG_LP=m CONFIG_TCP_CONG_VENO=m CONFIG_TCP_CONG_YEAH=m CONFIG_TCP_CONG_ILLINOIS=m -CONFIG_DEFAULT_RENO=y -CONFIG_DEFAULT_TCP_CONG="reno" -# CONFIG_TCP_MD5SIG is not set +CONFIG_DEFAULT_CUBIC=y +# CONFIG_DEFAULT_RENO is not set +CONFIG_DEFAULT_TCP_CONG="cubic" +CONFIG_TCP_MD5SIG=y CONFIG_IPV6=y -# CONFIG_IPV6_PRIVACY is not set -# CONFIG_IPV6_ROUTER_PREF is not set -# CONFIG_IPV6_OPTIMISTIC_DAD is not set +CONFIG_IPV6_PRIVACY=y +CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_ROUTE_INFO=y +CONFIG_IPV6_OPTIMISTIC_DAD=y CONFIG_INET6_AH=m CONFIG_INET6_ESP=m CONFIG_INET6_IPCOMP=m @@ -518,14 +601,18 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m CONFIG_INET6_XFRM_MODE_BEET=m CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m CONFIG_IPV6_SIT=m -# CONFIG_IPV6_SIT_6RD is not set +CONFIG_IPV6_SIT_6RD=y CONFIG_IPV6_NDISC_NODETYPE=y CONFIG_IPV6_TUNNEL=m +CONFIG_IPV6_GRE=m CONFIG_IPV6_MULTIPLE_TABLES=y -# CONFIG_IPV6_SUBTREES is not set -# CONFIG_IPV6_MROUTE is not set -# CONFIG_NETWORK_SECMARK is not set -CONFIG_NETWORK_PHY_TIMESTAMPING=y +CONFIG_IPV6_SUBTREES=y +CONFIG_IPV6_MROUTE=y +CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y +CONFIG_IPV6_PIMSM_V2=y +# CONFIG_NETLABEL is not set +CONFIG_NETWORK_SECMARK=y +# CONFIG_NETWORK_PHY_TIMESTAMPING is not set CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set CONFIG_NETFILTER_ADVANCED=y @@ -535,13 +622,18 @@ CONFIG_BRIDGE_NETFILTER=y # Core Netfilter Configuration # CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_NETLINK_ACCT=m CONFIG_NETFILTER_NETLINK_QUEUE=m CONFIG_NETFILTER_NETLINK_LOG=m -CONFIG_NF_CONNTRACK=m +CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y -# CONFIG_NF_CONNTRACK_ZONES is not set +CONFIG_NF_CONNTRACK_SECMARK=y +CONFIG_NF_CONNTRACK_ZONES=y +CONFIG_NF_CONNTRACK_PROCFS=y CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CONNTRACK_TIMEOUT=y CONFIG_NF_CONNTRACK_TIMESTAMP=y +CONFIG_NF_CONNTRACK_LABELS=y CONFIG_NF_CT_PROTO_DCCP=m CONFIG_NF_CT_PROTO_GRE=m CONFIG_NF_CT_PROTO_SCTP=m @@ -558,14 +650,28 @@ CONFIG_NF_CONNTRACK_SANE=m CONFIG_NF_CONNTRACK_SIP=m CONFIG_NF_CONNTRACK_TFTP=m CONFIG_NF_CT_NETLINK=m +CONFIG_NF_CT_NETLINK_TIMEOUT=m +CONFIG_NF_CT_NETLINK_HELPER=m +CONFIG_NETFILTER_NETLINK_QUEUE_CT=y +CONFIG_NF_NAT=m +CONFIG_NF_NAT_NEEDED=y +CONFIG_NF_NAT_PROTO_DCCP=m +CONFIG_NF_NAT_PROTO_UDPLITE=m +CONFIG_NF_NAT_PROTO_SCTP=m +CONFIG_NF_NAT_AMANDA=m +CONFIG_NF_NAT_FTP=m +CONFIG_NF_NAT_IRC=m +CONFIG_NF_NAT_SIP=m +CONFIG_NF_NAT_TFTP=m CONFIG_NETFILTER_TPROXY=m -CONFIG_NETFILTER_XTABLES=m +CONFIG_NETFILTER_XTABLES=y
# # Xtables combined modules # CONFIG_NETFILTER_XT_MARK=m CONFIG_NETFILTER_XT_CONNMARK=m +CONFIG_NETFILTER_XT_SET=m
# # Xtables targets @@ -574,20 +680,26 @@ CONFIG_NETFILTER_XT_TARGET_AUDIT=m CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m CONFIG_NETFILTER_XT_TARGET_CONNMARK=m +CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m CONFIG_NETFILTER_XT_TARGET_CT=m CONFIG_NETFILTER_XT_TARGET_DSCP=m CONFIG_NETFILTER_XT_TARGET_HL=m +CONFIG_NETFILTER_XT_TARGET_HMARK=m CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m CONFIG_NETFILTER_XT_TARGET_LED=m +CONFIG_NETFILTER_XT_TARGET_LOG=m CONFIG_NETFILTER_XT_TARGET_IMQ=m CONFIG_NETFILTER_XT_TARGET_MARK=m +CONFIG_NETFILTER_XT_TARGET_NETMAP=m CONFIG_NETFILTER_XT_TARGET_NFLOG=m CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m CONFIG_NETFILTER_XT_TARGET_NOTRACK=m CONFIG_NETFILTER_XT_TARGET_RATEEST=m +CONFIG_NETFILTER_XT_TARGET_REDIRECT=m CONFIG_NETFILTER_XT_TARGET_TEE=m CONFIG_NETFILTER_XT_TARGET_TPROXY=m CONFIG_NETFILTER_XT_TARGET_TRACE=m +CONFIG_NETFILTER_XT_TARGET_SECMARK=m CONFIG_NETFILTER_XT_TARGET_TCPMSS=m CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
@@ -595,9 +707,11 @@ CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m # Xtables matches # CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m +CONFIG_NETFILTER_XT_MATCH_BPF=m CONFIG_NETFILTER_XT_MATCH_CLUSTER=m CONFIG_NETFILTER_XT_MATCH_COMMENT=m CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m +CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m CONFIG_NETFILTER_XT_MATCH_CONNMARK=m CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m @@ -605,17 +719,19 @@ CONFIG_NETFILTER_XT_MATCH_CPU=m CONFIG_NETFILTER_XT_MATCH_DCCP=m CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m CONFIG_NETFILTER_XT_MATCH_DSCP=m +CONFIG_NETFILTER_XT_MATCH_ECN=m CONFIG_NETFILTER_XT_MATCH_ESP=m CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m CONFIG_NETFILTER_XT_MATCH_HELPER=m CONFIG_NETFILTER_XT_MATCH_HL=m CONFIG_NETFILTER_XT_MATCH_IPRANGE=m -CONFIG_NETFILTER_XT_MATCH_IPVS=m +# CONFIG_NETFILTER_XT_MATCH_IPVS is not set CONFIG_NETFILTER_XT_MATCH_LENGTH=m CONFIG_NETFILTER_XT_MATCH_LIMIT=m CONFIG_NETFILTER_XT_MATCH_MAC=m CONFIG_NETFILTER_XT_MATCH_MARK=m CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_NFACCT=m CONFIG_NETFILTER_XT_MATCH_OSF=m CONFIG_NETFILTER_XT_MATCH_OWNER=m CONFIG_NETFILTER_XT_MATCH_POLICY=m @@ -635,7 +751,19 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m CONFIG_NETFILTER_XT_MATCH_TCPMSS=m CONFIG_NETFILTER_XT_MATCH_TIME=m CONFIG_NETFILTER_XT_MATCH_U32=m -# CONFIG_IP_SET is not set +CONFIG_IP_SET=m +CONFIG_IP_SET_MAX=256 +CONFIG_IP_SET_BITMAP_IP=m +CONFIG_IP_SET_BITMAP_IPMAC=m +CONFIG_IP_SET_BITMAP_PORT=m +CONFIG_IP_SET_HASH_IP=m +CONFIG_IP_SET_HASH_IPPORT=m +CONFIG_IP_SET_HASH_IPPORTIP=m +CONFIG_IP_SET_HASH_IPPORTNET=m +CONFIG_IP_SET_HASH_NET=m +CONFIG_IP_SET_HASH_NETPORT=m +CONFIG_IP_SET_HASH_NETIFACE=m +CONFIG_IP_SET_LIST_SET=m CONFIG_IP_VS=m CONFIG_IP_VS_IPV6=y # CONFIG_IP_VS_DEBUG is not set @@ -666,6 +794,11 @@ CONFIG_IP_VS_SED=m CONFIG_IP_VS_NQ=m
# +# IPVS SH scheduler +# +CONFIG_IP_VS_SH_TAB_BITS=8 + +# # IPVS application helper # CONFIG_IP_VS_FTP=m @@ -675,40 +808,31 @@ CONFIG_IP_VS_PE_SIP=m # # IP: Netfilter Configuration # -CONFIG_NF_DEFRAG_IPV4=m -CONFIG_NF_CONNTRACK_IPV4=m -CONFIG_NF_CONNTRACK_PROC_COMPAT=y -CONFIG_IP_NF_QUEUE=m -CONFIG_IP_NF_IPTABLES=m +CONFIG_NF_DEFRAG_IPV4=y +CONFIG_NF_CONNTRACK_IPV4=y +# CONFIG_NF_CONNTRACK_PROC_COMPAT is not set +CONFIG_IP_NF_IPTABLES=y CONFIG_IP_NF_MATCH_AH=m CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_RPFILTER=m CONFIG_IP_NF_MATCH_TTL=m CONFIG_IP_NF_FILTER=m CONFIG_IP_NF_TARGET_REJECT=m -CONFIG_IP_NF_TARGET_LOG=m -CONFIG_IP_NF_TARGET_ULOG=m -CONFIG_NF_NAT=m -CONFIG_NF_NAT_NEEDED=y +# CONFIG_IP_NF_TARGET_ULOG is not set +CONFIG_NF_NAT_IPV4=m CONFIG_IP_NF_TARGET_MASQUERADE=m CONFIG_IP_NF_TARGET_NETMAP=m CONFIG_IP_NF_TARGET_REDIRECT=m CONFIG_NF_NAT_SNMP_BASIC=m -CONFIG_NF_NAT_PROTO_DCCP=m CONFIG_NF_NAT_PROTO_GRE=m -CONFIG_NF_NAT_PROTO_UDPLITE=m -CONFIG_NF_NAT_PROTO_SCTP=m -CONFIG_NF_NAT_FTP=m -CONFIG_NF_NAT_IRC=m -CONFIG_NF_NAT_TFTP=m -CONFIG_NF_NAT_AMANDA=m CONFIG_NF_NAT_PPTP=m CONFIG_NF_NAT_H323=m -CONFIG_NF_NAT_SIP=m CONFIG_IP_NF_MANGLE=m CONFIG_IP_NF_TARGET_CLUSTERIP=m CONFIG_IP_NF_TARGET_ECN=m CONFIG_IP_NF_TARGET_TTL=m CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_SECURITY=m CONFIG_IP_NF_ARPTABLES=m CONFIG_IP_NF_ARPFILTER=m CONFIG_IP_NF_ARP_MANGLE=m @@ -717,10 +841,9 @@ CONFIG_IP_NF_MATCH_IPP2P=m # # IPv6: Netfilter Configuration # -CONFIG_NF_DEFRAG_IPV6=m -CONFIG_NF_CONNTRACK_IPV6=m -CONFIG_IP6_NF_QUEUE=m -CONFIG_IP6_NF_IPTABLES=m +CONFIG_NF_DEFRAG_IPV6=y +CONFIG_NF_CONNTRACK_IPV6=y +CONFIG_IP6_NF_IPTABLES=y CONFIG_IP6_NF_MATCH_AH=m CONFIG_IP6_NF_MATCH_EUI64=m CONFIG_IP6_NF_MATCH_FRAG=m @@ -728,13 +851,17 @@ CONFIG_IP6_NF_MATCH_OPTS=m CONFIG_IP6_NF_MATCH_HL=m CONFIG_IP6_NF_MATCH_IPV6HEADER=m CONFIG_IP6_NF_MATCH_MH=m +CONFIG_IP6_NF_MATCH_RPFILTER=m CONFIG_IP6_NF_MATCH_RT=m CONFIG_IP6_NF_TARGET_HL=m -CONFIG_IP6_NF_TARGET_LOG=m CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_TARGET_REJECT=m CONFIG_IP6_NF_MANGLE=m CONFIG_IP6_NF_RAW=m +CONFIG_IP6_NF_SECURITY=m +CONFIG_NF_NAT_IPV6=m +CONFIG_IP6_NF_TARGET_MASQUERADE=m +CONFIG_IP6_NF_TARGET_NPT=m CONFIG_BRIDGE_NF_EBTABLES=m CONFIG_BRIDGE_EBT_BROUTE=m CONFIG_BRIDGE_EBT_T_FILTER=m @@ -755,49 +882,52 @@ CONFIG_BRIDGE_EBT_MARK_T=m CONFIG_BRIDGE_EBT_REDIRECT=m CONFIG_BRIDGE_EBT_SNAT=m CONFIG_BRIDGE_EBT_LOG=m -CONFIG_BRIDGE_EBT_ULOG=m +# CONFIG_BRIDGE_EBT_ULOG is not set CONFIG_BRIDGE_EBT_NFLOG=m # CONFIG_IP_DCCP is not set -# CONFIG_IP_SCTP is not set +CONFIG_IP_SCTP=m +# CONFIG_SCTP_DBG_MSG is not set +# CONFIG_SCTP_DBG_OBJCNT is not set +# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set +CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y +# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set +CONFIG_SCTP_COOKIE_HMAC_MD5=y +CONFIG_SCTP_COOKIE_HMAC_SHA1=y # CONFIG_RDS is not set # CONFIG_TIPC is not set CONFIG_ATM=m CONFIG_ATM_CLIP=m -CONFIG_ATM_CLIP_NO_ICMP=y +# CONFIG_ATM_CLIP_NO_ICMP is not set # CONFIG_ATM_LANE is not set CONFIG_ATM_BR2684=m # CONFIG_ATM_BR2684_IPFILTER is not set CONFIG_L2TP=m +# CONFIG_L2TP_DEBUGFS is not set CONFIG_L2TP_V3=y CONFIG_L2TP_IP=m CONFIG_L2TP_ETH=m -CONFIG_STP=m +CONFIG_STP=y CONFIG_GARP=m -CONFIG_BRIDGE=m +CONFIG_BRIDGE=y CONFIG_BRIDGE_IGMP_SNOOPING=y +CONFIG_BRIDGE_VLAN_FILTERING=y +CONFIG_HAVE_NET_DSA=y CONFIG_NET_DSA=y CONFIG_NET_DSA_TAG_DSA=y CONFIG_NET_DSA_TAG_EDSA=y CONFIG_NET_DSA_TAG_TRAILER=y -CONFIG_NET_DSA_MV88E6XXX=y -CONFIG_NET_DSA_MV88E6060=y -CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y -CONFIG_NET_DSA_MV88E6131=y -CONFIG_NET_DSA_MV88E6123_61_65=y CONFIG_VLAN_8021Q=m CONFIG_VLAN_8021Q_GVRP=y +# CONFIG_VLAN_8021Q_MVRP is not set # CONFIG_DECNET is not set -CONFIG_LLC=m +CONFIG_LLC=y # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set -# CONFIG_ECONET is not set -# CONFIG_WAN_ROUTER is not set # CONFIG_PHONET is not set -CONFIG_IEEE802154=m -CONFIG_IEEE802154_6LOWPAN=m +# CONFIG_IEEE802154 is not set CONFIG_NET_SCHED=y
# @@ -821,7 +951,10 @@ CONFIG_NET_SCH_DRR=m CONFIG_NET_SCH_MQPRIO=m CONFIG_NET_SCH_CHOKE=m CONFIG_NET_SCH_QFQ=m +CONFIG_NET_SCH_CODEL=m +CONFIG_NET_SCH_FQ_CODEL=m CONFIG_NET_SCH_INGRESS=m +CONFIG_NET_SCH_PLUG=m
# # Classification @@ -837,6 +970,7 @@ CONFIG_CLS_U32_MARK=y CONFIG_NET_CLS_RSVP=m CONFIG_NET_CLS_RSVP6=m CONFIG_NET_CLS_FLOW=m +CONFIG_NET_CLS_CGROUP=m CONFIG_NET_EMATCH=y CONFIG_NET_EMATCH_STACK=32 CONFIG_NET_EMATCH_CMP=m @@ -844,6 +978,7 @@ CONFIG_NET_EMATCH_NBYTE=m CONFIG_NET_EMATCH_U32=m CONFIG_NET_EMATCH_META=m CONFIG_NET_EMATCH_TEXT=m +CONFIG_NET_EMATCH_IPSET=m CONFIG_NET_CLS_ACT=y CONFIG_NET_ACT_POLICE=m CONFIG_NET_ACT_GACT=m @@ -860,59 +995,27 @@ CONFIG_NET_SCH_FIFO=y # CONFIG_DCB is not set CONFIG_DNS_RESOLVER=y CONFIG_BATMAN_ADV=m +CONFIG_BATMAN_ADV_BLA=y +CONFIG_BATMAN_ADV_DAT=y +CONFIG_BATMAN_ADV_NC=y # CONFIG_BATMAN_ADV_DEBUG is not set +CONFIG_OPENVSWITCH=m +CONFIG_VSOCKETS=m +CONFIG_NETLINK_MMAP=y +CONFIG_NETLINK_DIAG=m +CONFIG_NETPRIO_CGROUP=m +CONFIG_BQL=y +CONFIG_BPF_JIT=y
# # Network testing # # CONFIG_NET_PKTGEN is not set +# CONFIG_NET_DROP_MONITOR is not set # CONFIG_HAMRADIO is not set # CONFIG_CAN is not set -CONFIG_IRDA=m - -# -# IrDA protocols -# -CONFIG_IRLAN=m -CONFIG_IRNET=m -CONFIG_IRCOMM=m -# CONFIG_IRDA_ULTRA is not set - -# -# IrDA options -# -# CONFIG_IRDA_CACHE_LAST_LSAP is not set -# CONFIG_IRDA_FAST_RR is not set -# CONFIG_IRDA_DEBUG is not set - -# -# Infrared-port device drivers -# - -# -# SIR device drivers -# -CONFIG_IRTTY_SIR=m - -# -# Dongle support -# -# CONFIG_DONGLE is not set -CONFIG_KINGSUN_DONGLE=m -CONFIG_KSDAZZLE_DONGLE=m -CONFIG_KS959_DONGLE=m - -# -# FIR device drivers -# -CONFIG_USB_IRDA=m -CONFIG_SIGMATEL_FIR=m -# CONFIG_TOSHIBA_FIR is not set -CONFIG_VLSI_FIR=m -CONFIG_MCS_FIR=m +# CONFIG_IRDA is not set CONFIG_BT=m -CONFIG_BT_L2CAP=y -CONFIG_BT_SCO=y CONFIG_BT_RFCOMM=m CONFIG_BT_RFCOMM_TTY=y CONFIG_BT_BNEP=m @@ -931,21 +1034,16 @@ CONFIG_BT_HCIUART_H4=y CONFIG_BT_HCIUART_BCSP=y CONFIG_BT_HCIUART_ATH3K=y CONFIG_BT_HCIUART_LL=y +CONFIG_BT_HCIUART_3WIRE=y CONFIG_BT_HCIBCM203X=m CONFIG_BT_HCIBPA10X=m CONFIG_BT_HCIBFUSB=m -CONFIG_BT_HCIDTL1=m -CONFIG_BT_HCIBT3C=m -CONFIG_BT_HCIBLUECARD=m -CONFIG_BT_HCIBTUART=m CONFIG_BT_HCIVHCI=m CONFIG_BT_MRVL=m CONFIG_BT_MRVL_SDIO=m CONFIG_BT_ATH3K=m CONFIG_BT_WILINK=m -CONFIG_AF_RXRPC=m -# CONFIG_AF_RXRPC_DEBUG is not set -CONFIG_RXKAD=m +# CONFIG_AF_RXRPC is not set CONFIG_FIB_RULES=y CONFIG_WIRELESS=y CONFIG_WIRELESS_EXT=y @@ -957,10 +1055,11 @@ CONFIG_CFG80211=m # CONFIG_NL80211_TESTMODE is not set # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set # CONFIG_CFG80211_REG_DEBUG is not set -# CONFIG_CFG80211_DEFAULT_PS is not set +# CONFIG_CFG80211_CERTIFICATION_ONUS is not set +CONFIG_CFG80211_DEFAULT_PS=y +# CONFIG_CFG80211_DEBUGFS is not set # CONFIG_CFG80211_INTERNAL_REGDB is not set CONFIG_CFG80211_WEXT=y -CONFIG_WIRELESS_EXT_SYSFS=y CONFIG_LIB80211=m CONFIG_LIB80211_CRYPT_WEP=m CONFIG_LIB80211_CRYPT_CCMP=m @@ -968,24 +1067,27 @@ CONFIG_LIB80211_CRYPT_TKIP=m # CONFIG_LIB80211_DEBUG is not set CONFIG_MAC80211=m CONFIG_MAC80211_HAS_RC=y +# CONFIG_MAC80211_RC_PID is not set CONFIG_MAC80211_RC_MINSTREL=y CONFIG_MAC80211_RC_MINSTREL_HT=y CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" CONFIG_MAC80211_MESH=y CONFIG_MAC80211_LEDS=y +# CONFIG_MAC80211_DEBUGFS is not set +# CONFIG_MAC80211_MESSAGE_TRACING is not set # CONFIG_MAC80211_DEBUG_MENU is not set # CONFIG_WIMAX is not set CONFIG_RFKILL=m CONFIG_RFKILL_LEDS=y CONFIG_RFKILL_INPUT=y CONFIG_RFKILL_REGULATOR=m +# CONFIG_RFKILL_GPIO is not set # CONFIG_NET_9P is not set # CONFIG_CAIF is not set -CONFIG_CEPH_LIB=m -# CONFIG_CEPH_LIB_PRETTYDEBUG is not set -# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set +# CONFIG_CEPH_LIB is not set # CONFIG_NFC is not set +CONFIG_HAVE_BPF_JIT=y
# # Device Drivers @@ -994,39 +1096,51 @@ CONFIG_CEPH_LIB=m # # Generic Driver Options # -CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -# CONFIG_DEVTMPFS is not set -# CONFIG_STANDALONE is not set -# CONFIG_PREVENT_FIRMWARE_BUILD is not set +CONFIG_UEVENT_HELPER_PATH="" +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y # CONFIG_FIRMWARE_IN_KERNEL is not set CONFIG_EXTRA_FIRMWARE="" +CONFIG_FW_LOADER_USER_HELPER=y # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set # CONFIG_SYS_HYPERVISOR is not set +# CONFIG_GENERIC_CPU_DEVICES is not set CONFIG_REGMAP=y -CONFIG_REGMAP_I2C=m -CONFIG_CONNECTOR=m -CONFIG_MTD=m -CONFIG_MTD_TESTS=m +CONFIG_REGMAP_I2C=y +CONFIG_REGMAP_IRQ=y +CONFIG_DMA_SHARED_BUFFER=y +# CONFIG_CMA is not set + +# +# Bus devices +# +CONFIG_MVEBU_MBUS=y +CONFIG_CONNECTOR=y +CONFIG_PROC_EVENTS=y +CONFIG_MTD=y +# CONFIG_MTD_TESTS is not set # CONFIG_MTD_REDBOOT_PARTS is not set +CONFIG_MTD_CMDLINE_PARTS=y # CONFIG_MTD_AFS_PARTS is not set -CONFIG_MTD_OF_PARTS=m -CONFIG_MTD_AR7_PARTS=m +CONFIG_MTD_OF_PARTS=y +# CONFIG_MTD_AR7_PARTS is not set
# # User Modules And Translation Layers # -CONFIG_MTD_CHAR=m -CONFIG_MTD_BLKDEVS=m -CONFIG_MTD_BLOCK=m +# CONFIG_MTD_BLKDEVS is not set +# CONFIG_MTD_BLOCK is not set # CONFIG_MTD_BLOCK_RO is not set # CONFIG_FTL is not set # CONFIG_NFTL is not set # CONFIG_INFTL is not set # CONFIG_RFD_FTL is not set # CONFIG_SSFDC is not set -CONFIG_SM_FTL=m +# CONFIG_SM_FTL is not set # CONFIG_MTD_OOPS is not set # CONFIG_MTD_SWAP is not set
@@ -1053,8 +1167,6 @@ CONFIG_MTD_CFI_I2=y # Mapping drivers for chip access # # CONFIG_MTD_COMPLEX_MAPPINGS is not set -CONFIG_MTD_PHYSMAP=m -# CONFIG_MTD_PHYSMAP_COMPAT is not set # CONFIG_MTD_INTEL_VR_NOR is not set # CONFIG_MTD_PLATRAM is not set
@@ -1070,39 +1182,34 @@ CONFIG_MTD_PHYSMAP=m # # Disk-On-Chip Device Drivers # -# CONFIG_MTD_DOC2000 is not set -# CONFIG_MTD_DOC2001 is not set -# CONFIG_MTD_DOC2001PLUS is not set # CONFIG_MTD_DOCG3 is not set -CONFIG_MTD_NAND_ECC=m +CONFIG_MTD_NAND_ECC=y # CONFIG_MTD_NAND_ECC_SMC is not set -CONFIG_MTD_NAND=m -# CONFIG_MTD_NAND_VERIFY_WRITE is not set +CONFIG_MTD_NAND=y # CONFIG_MTD_NAND_ECC_BCH is not set # CONFIG_MTD_SM_COMMON is not set -# CONFIG_MTD_NAND_MUSEUM_IDS is not set # CONFIG_MTD_NAND_DENALI is not set # CONFIG_MTD_NAND_GPIO is not set -CONFIG_MTD_NAND_IDS=m +CONFIG_MTD_NAND_IDS=y # CONFIG_MTD_NAND_RICOH is not set # CONFIG_MTD_NAND_DISKONCHIP is not set +# CONFIG_MTD_NAND_DOCG4 is not set # CONFIG_MTD_NAND_CAFE is not set # CONFIG_MTD_NAND_NANDSIM is not set -CONFIG_MTD_NAND_PLATFORM=m +# CONFIG_MTD_NAND_PLATFORM is not set # CONFIG_MTD_ALAUDA is not set -CONFIG_MTD_NAND_ORION=m +CONFIG_MTD_NAND_ORION=y # CONFIG_MTD_ONENAND is not set
# # LPDDR flash memory drivers # -CONFIG_MTD_LPDDR=m -CONFIG_MTD_QINFO_PROBE=m -CONFIG_MTD_UBI=m +# CONFIG_MTD_LPDDR is not set +CONFIG_MTD_UBI=y CONFIG_MTD_UBI_WL_THRESHOLD=4096 -CONFIG_MTD_UBI_BEB_RESERVE=1 +CONFIG_MTD_UBI_BEB_LIMIT=20 +# CONFIG_MTD_UBI_FASTMAP is not set # CONFIG_MTD_UBI_GLUEBI is not set -# CONFIG_MTD_UBI_DEBUG is not set CONFIG_DTC=y CONFIG_OF=y
@@ -1110,71 +1217,84 @@ CONFIG_OF=y # Device Tree and Open Firmware support # CONFIG_PROC_DEVICETREE=y +# CONFIG_OF_SELFTEST is not set CONFIG_OF_FLATTREE=y CONFIG_OF_EARLY_FLATTREE=y CONFIG_OF_ADDRESS=y CONFIG_OF_IRQ=y CONFIG_OF_DEVICE=y -CONFIG_OF_GPIO=y CONFIG_OF_I2C=y CONFIG_OF_NET=y CONFIG_OF_MDIO=y CONFIG_OF_PCI=y CONFIG_OF_PCI_IRQ=y +CONFIG_OF_MTD=y CONFIG_PARPORT=m -# CONFIG_PARPORT_PC is not set +CONFIG_PARPORT_PC=m +CONFIG_PARPORT_SERIAL=m +# CONFIG_PARPORT_PC_FIFO is not set +# CONFIG_PARPORT_PC_SUPERIO is not set # CONFIG_PARPORT_GSC is not set -CONFIG_PARPORT_AX88796=m +# CONFIG_PARPORT_AX88796 is not set CONFIG_PARPORT_1284=y CONFIG_PARPORT_NOT_PC=y CONFIG_BLK_DEV=y -CONFIG_BLK_CPQ_DA=m +# CONFIG_PARIDE is not set +# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set CONFIG_BLK_CPQ_CISS_DA=m # CONFIG_CISS_SCSI_TAPE is not set CONFIG_BLK_DEV_DAC960=m -# CONFIG_BLK_DEV_UMEM is not set +CONFIG_BLK_DEV_UMEM=m # CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 CONFIG_BLK_DEV_CRYPTOLOOP=m # CONFIG_BLK_DEV_DRBD is not set -CONFIG_BLK_DEV_NBD=m -CONFIG_BLK_DEV_OSD=m +# CONFIG_BLK_DEV_NBD is not set +CONFIG_BLK_DEV_NVME=m +# CONFIG_BLK_DEV_OSD is not set CONFIG_BLK_DEV_SX8=m -# CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_COUNT=8 +CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=16384 # CONFIG_BLK_DEV_XIP is not set # CONFIG_CDROM_PKTCDVD is not set -CONFIG_ATA_OVER_ETH=m -CONFIG_MG_DISK=m -CONFIG_MG_DISK_RES=0 -CONFIG_BLK_DEV_RBD=m -CONFIG_SENSORS_LIS3LV02D=m -CONFIG_MISC_DEVICES=y +# CONFIG_ATA_OVER_ETH is not set +# CONFIG_MG_DISK is not set +# CONFIG_BLK_DEV_RBD is not set +CONFIG_BLK_DEV_RSXX=m + +# +# Misc devices +# +# CONFIG_SENSORS_LIS3LV02D is not set # CONFIG_AD525X_DPOT is not set +# CONFIG_ATMEL_PWM is not set +CONFIG_DUMMY_IRQ=m # CONFIG_PHANTOM is not set # CONFIG_INTEL_MID_PTI is not set # CONFIG_SGI_IOC4 is not set CONFIG_TIFM_CORE=m CONFIG_TIFM_7XX1=m CONFIG_ICS932S401=m +# CONFIG_ATMEL_SSC is not set CONFIG_ENCLOSURE_SERVICES=m CONFIG_HP_ILO=m -CONFIG_APDS9802ALS=m -CONFIG_ISL29003=m -CONFIG_ISL29020=m -CONFIG_SENSORS_TSL2550=m -CONFIG_SENSORS_BH1780=m -CONFIG_SENSORS_BH1770=m -CONFIG_SENSORS_APDS990X=m -CONFIG_HMC6352=m +# CONFIG_APDS9802ALS is not set +# CONFIG_ISL29003 is not set +# CONFIG_ISL29020 is not set +# CONFIG_SENSORS_TSL2550 is not set +# CONFIG_SENSORS_BH1780 is not set +# CONFIG_SENSORS_BH1770 is not set +# CONFIG_SENSORS_APDS990X is not set +# CONFIG_HMC6352 is not set CONFIG_DS1682=m -CONFIG_BMP085=m +CONFIG_BMP085=y +CONFIG_BMP085_I2C=m CONFIG_PCH_PHUB=m CONFIG_USB_SWITCH_FSA9480=m -CONFIG_C2PORT=m +# CONFIG_SRAM is not set +# CONFIG_C2PORT is not set
# # EEPROM support @@ -1186,62 +1306,60 @@ CONFIG_EEPROM_93CX6=m CONFIG_CB710_CORE=m # CONFIG_CB710_DEBUG is not set CONFIG_CB710_DEBUG_ASSUMPTIONS=y -CONFIG_IWMC3200TOP=m -# CONFIG_IWMC3200TOP_DEBUG is not set -# CONFIG_IWMC3200TOP_DEBUGFS is not set
# # Texas Instruments shared transport line discipline # CONFIG_TI_ST=m -CONFIG_SENSORS_LIS3_I2C=m +# CONFIG_SENSORS_LIS3_I2C is not set
# # Altera FPGA firmware download module # -# CONFIG_ALTERA_STAPL is not set +CONFIG_ALTERA_STAPL=m CONFIG_HAVE_IDE=y # CONFIG_IDE is not set
# # SCSI device support # -CONFIG_SCSI_MOD=m +CONFIG_SCSI_MOD=y CONFIG_RAID_ATTRS=m -CONFIG_SCSI=m +CONFIG_SCSI=y CONFIG_SCSI_DMA=y -# CONFIG_SCSI_TGT is not set +CONFIG_SCSI_TGT=m CONFIG_SCSI_NETLINK=y CONFIG_SCSI_PROC_FS=y
# # SCSI support type (disk, tape, CD-ROM) # -CONFIG_BLK_DEV_SD=m -# CONFIG_CHR_DEV_ST is not set -# CONFIG_CHR_DEV_OSST is not set -CONFIG_BLK_DEV_SR=m +CONFIG_BLK_DEV_SD=y +CONFIG_CHR_DEV_ST=m +CONFIG_CHR_DEV_OSST=m +CONFIG_BLK_DEV_SR=y CONFIG_BLK_DEV_SR_VENDOR=y -CONFIG_CHR_DEV_SG=m +CONFIG_CHR_DEV_SG=y CONFIG_CHR_DEV_SCH=m CONFIG_SCSI_ENCLOSURE=m CONFIG_SCSI_MULTI_LUN=y -# CONFIG_SCSI_CONSTANTS is not set -# CONFIG_SCSI_LOGGING is not set -# CONFIG_SCSI_SCAN_ASYNC is not set -CONFIG_SCSI_WAIT_SCAN=m +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_SCAN_ASYNC=y
# # SCSI Transports # CONFIG_SCSI_SPI_ATTRS=m CONFIG_SCSI_FC_ATTRS=m +CONFIG_SCSI_FC_TGT_ATTRS=y CONFIG_SCSI_ISCSI_ATTRS=m CONFIG_SCSI_SAS_ATTRS=m CONFIG_SCSI_SAS_LIBSAS=m CONFIG_SCSI_SAS_ATA=y CONFIG_SCSI_SAS_HOST_SMP=y CONFIG_SCSI_SRP_ATTRS=m +CONFIG_SCSI_SRP_TGT_ATTRS=y CONFIG_SCSI_LOWLEVEL=y CONFIG_ISCSI_TCP=m CONFIG_ISCSI_BOOT_SYSFS=m @@ -1257,28 +1375,24 @@ CONFIG_SCSI_3W_SAS=m # CONFIG_SCSI_ACARD is not set CONFIG_SCSI_AACRAID=m CONFIG_SCSI_AIC7XXX=m -CONFIG_AIC7XXX_CMDS_PER_DEVICE=253 -CONFIG_AIC7XXX_RESET_DELAY_MS=15000 -# CONFIG_AIC7XXX_BUILD_FIRMWARE is not set -# CONFIG_AIC7XXX_DEBUG_ENABLE is not set +CONFIG_AIC7XXX_CMDS_PER_DEVICE=32 +CONFIG_AIC7XXX_RESET_DELAY_MS=5000 +CONFIG_AIC7XXX_DEBUG_ENABLE=y CONFIG_AIC7XXX_DEBUG_MASK=0 -# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set +CONFIG_AIC7XXX_REG_PRETTY_PRINT=y # CONFIG_SCSI_AIC7XXX_OLD is not set CONFIG_SCSI_AIC79XX=m CONFIG_AIC79XX_CMDS_PER_DEVICE=32 -CONFIG_AIC79XX_RESET_DELAY_MS=15000 -# CONFIG_AIC79XX_BUILD_FIRMWARE is not set +CONFIG_AIC79XX_RESET_DELAY_MS=4000 # CONFIG_AIC79XX_DEBUG_ENABLE is not set CONFIG_AIC79XX_DEBUG_MASK=0 # CONFIG_AIC79XX_REG_PRETTY_PRINT is not set CONFIG_SCSI_AIC94XX=m # CONFIG_AIC94XX_DEBUG is not set CONFIG_SCSI_MVSAS=m -CONFIG_SCSI_MVSAS_DEBUG=y -# CONFIG_SCSI_MVSAS_TASKLET is not set -CONFIG_SCSI_MVUMI=m -CONFIG_SCSI_DPT_I2O=m -# CONFIG_SCSI_ADVANSYS is not set +# CONFIG_SCSI_MVSAS_DEBUG is not set +CONFIG_SCSI_MVSAS_TASKLET=y +# CONFIG_SCSI_MVUMI is not set CONFIG_SCSI_ARCMSR=m CONFIG_MEGARAID_NEWGEN=y CONFIG_MEGARAID_MM=m @@ -1288,6 +1402,12 @@ CONFIG_MEGARAID_SAS=m CONFIG_SCSI_MPT2SAS=m CONFIG_SCSI_MPT2SAS_MAX_SGE=128 # CONFIG_SCSI_MPT2SAS_LOGGING is not set +CONFIG_SCSI_MPT3SAS=m +CONFIG_SCSI_MPT3SAS_MAX_SGE=128 +# CONFIG_SCSI_MPT3SAS_LOGGING is not set +CONFIG_SCSI_UFSHCD=m +CONFIG_SCSI_UFSHCD_PCI=m +CONFIG_SCSI_UFSHCD_PLATFORM=m CONFIG_SCSI_HPTIOP=m CONFIG_LIBFC=m CONFIG_LIBFCOE=m @@ -1297,6 +1417,10 @@ CONFIG_SCSI_FUTURE_DOMAIN=m CONFIG_SCSI_IPS=m CONFIG_SCSI_INITIO=m CONFIG_SCSI_INIA100=m +CONFIG_SCSI_PPA=m +CONFIG_SCSI_IMM=m +# CONFIG_SCSI_IZIP_EPP16 is not set +# CONFIG_SCSI_IZIP_SLOW_CTR is not set CONFIG_SCSI_STEX=m CONFIG_SCSI_SYM53C8XX_2=m CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 @@ -1310,6 +1434,7 @@ CONFIG_SCSI_QLOGIC_1280=m CONFIG_SCSI_QLA_FC=m CONFIG_SCSI_QLA_ISCSI=m CONFIG_SCSI_LPFC=m +# CONFIG_SCSI_LPFC_DEBUG_FS is not set CONFIG_SCSI_DC395x=m CONFIG_SCSI_DC390T=m # CONFIG_SCSI_NSP32 is not set @@ -1318,13 +1443,8 @@ CONFIG_SCSI_PMCRAID=m CONFIG_SCSI_PM8001=m # CONFIG_SCSI_SRP is not set CONFIG_SCSI_BFA_FC=m -CONFIG_SCSI_LOWLEVEL_PCMCIA=y -CONFIG_PCMCIA_AHA152X=m -CONFIG_PCMCIA_FDOMAIN=m -CONFIG_PCMCIA_NINJA_SCSI=m -CONFIG_PCMCIA_QLOGIC=m -CONFIG_PCMCIA_SYM53C500=m -CONFIG_SCSI_DH=m +CONFIG_SCSI_CHELSIO_FCOE=m +CONFIG_SCSI_DH=y CONFIG_SCSI_DH_RDAC=m CONFIG_SCSI_DH_HP_SW=m CONFIG_SCSI_DH_EMC=m @@ -1333,7 +1453,7 @@ CONFIG_SCSI_OSD_INITIATOR=m CONFIG_SCSI_OSD_ULD=m CONFIG_SCSI_OSD_DPRINT_SENSE=1 # CONFIG_SCSI_OSD_DEBUG is not set -CONFIG_ATA=m +CONFIG_ATA=y # CONFIG_ATA_NONSTANDARD is not set CONFIG_ATA_VERBOSE_ERROR=y CONFIG_SATA_PMP=y @@ -1341,7 +1461,7 @@ CONFIG_SATA_PMP=y # # Controllers with non-SFF native interface # -CONFIG_SATA_AHCI=m +CONFIG_SATA_AHCI=y CONFIG_SATA_AHCI_PLATFORM=m CONFIG_SATA_INIC162X=m CONFIG_SATA_ACARD_AHCI=m @@ -1359,7 +1479,8 @@ CONFIG_ATA_BMDMA=y # # SATA SFF controllers with BMDMA # -CONFIG_ATA_PIIX=m +CONFIG_ATA_PIIX=y +CONFIG_SATA_HIGHBANK=m CONFIG_SATA_MV=m CONFIG_SATA_NV=m CONFIG_SATA_PROMISE=m @@ -1389,7 +1510,7 @@ CONFIG_PATA_HPT366=m CONFIG_PATA_HPT37X=m CONFIG_PATA_HPT3X2N=m CONFIG_PATA_HPT3X3=m -CONFIG_PATA_HPT3X3_DMA=y +# CONFIG_PATA_HPT3X3_DMA is not set CONFIG_PATA_IT8213=m CONFIG_PATA_IT821X=m CONFIG_PATA_JMICRON=m @@ -1401,9 +1522,9 @@ CONFIG_PATA_OLDPIIX=m CONFIG_PATA_OPTIDMA=m CONFIG_PATA_PDC2027X=m CONFIG_PATA_PDC_OLD=m -CONFIG_PATA_RADISYS=m +# CONFIG_PATA_RADISYS is not set CONFIG_PATA_RDC=m -CONFIG_PATA_SC1200=m +# CONFIG_PATA_SC1200 is not set CONFIG_PATA_SCH=m CONFIG_PATA_SERVERWORKS=m CONFIG_PATA_SIL680=m @@ -1420,82 +1541,97 @@ CONFIG_PATA_CMD640_PCI=m CONFIG_PATA_MPIIX=m CONFIG_PATA_NS87410=m CONFIG_PATA_OPTI=m -CONFIG_PATA_PCMCIA=m +# CONFIG_PATA_PLATFORM is not set CONFIG_PATA_RZ1000=m
# # Generic fallback / legacy drivers # CONFIG_ATA_GENERIC=m -CONFIG_PATA_LEGACY=m +# CONFIG_PATA_LEGACY is not set CONFIG_MD=y -CONFIG_BLK_DEV_MD=m +CONFIG_BLK_DEV_MD=y +CONFIG_MD_AUTODETECT=y CONFIG_MD_LINEAR=m CONFIG_MD_RAID0=m CONFIG_MD_RAID1=m CONFIG_MD_RAID10=m CONFIG_MD_RAID456=m CONFIG_MD_MULTIPATH=m -# CONFIG_MD_FAULTY is not set -CONFIG_BLK_DEV_DM=m +CONFIG_MD_FAULTY=m +CONFIG_BCACHE=m +# CONFIG_BCACHE_DEBUG is not set +# CONFIG_BCACHE_EDEBUG is not set +# CONFIG_BCACHE_CLOSURES_DEBUG is not set +CONFIG_BLK_DEV_DM=y # CONFIG_DM_DEBUG is not set CONFIG_DM_BUFIO=m +CONFIG_DM_BIO_PRISON=m CONFIG_DM_PERSISTENT_DATA=m CONFIG_DM_CRYPT=m -CONFIG_DM_SNAPSHOT=m -CONFIG_DM_THIN_PROVISIONING=m -# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set -# CONFIG_DM_DEBUG_SPACE_MAPS is not set -CONFIG_DM_MIRROR=m +CONFIG_DM_SNAPSHOT=y +# CONFIG_DM_THIN_PROVISIONING is not set +CONFIG_DM_CACHE=m +CONFIG_DM_CACHE_MQ=m +CONFIG_DM_CACHE_CLEANER=m +CONFIG_DM_MIRROR=y CONFIG_DM_RAID=m CONFIG_DM_LOG_USERSPACE=m -CONFIG_DM_ZERO=m +CONFIG_DM_ZERO=y CONFIG_DM_MULTIPATH=m CONFIG_DM_MULTIPATH_QL=m CONFIG_DM_MULTIPATH_ST=m -CONFIG_DM_DELAY=m +# CONFIG_DM_DELAY is not set CONFIG_DM_UEVENT=y -CONFIG_DM_FLAKEY=m +# CONFIG_DM_FLAKEY is not set +CONFIG_DM_VERITY=m # CONFIG_TARGET_CORE is not set CONFIG_FUSION=y CONFIG_FUSION_SPI=m CONFIG_FUSION_FC=m CONFIG_FUSION_SAS=m -CONFIG_FUSION_MAX_SGE=128 +CONFIG_FUSION_MAX_SGE=40 CONFIG_FUSION_CTL=m -# CONFIG_FUSION_LOGGING is not set +CONFIG_FUSION_LOGGING=y
# # IEEE 1394 (FireWire) support # CONFIG_FIREWIRE=m CONFIG_FIREWIRE_OHCI=m -CONFIG_FIREWIRE_OHCI_DEBUG=y CONFIG_FIREWIRE_SBP2=m -CONFIG_FIREWIRE_NET=m +# CONFIG_FIREWIRE_NET is not set # CONFIG_FIREWIRE_NOSY is not set -# CONFIG_I2O is not set +CONFIG_I2O=m +# CONFIG_I2O_LCT_NOTIFY_ON_CHANGES is not set +CONFIG_I2O_EXT_ADAPTEC=y +CONFIG_I2O_BUS=m +CONFIG_I2O_BLOCK=m +CONFIG_I2O_SCSI=m +CONFIG_I2O_PROC=m CONFIG_NETDEVICES=y CONFIG_NET_CORE=y CONFIG_BONDING=m CONFIG_DUMMY=m -CONFIG_EQUALIZER=m +# CONFIG_EQUALIZER is not set +# CONFIG_NET_FC is not set +CONFIG_MII=m +CONFIG_IFB=m +# CONFIG_NET_TEAM is not set +CONFIG_MACVLAN=m +CONFIG_MACVTAP=m +CONFIG_VXLAN=m +CONFIG_NETCONSOLE=m +CONFIG_NETCONSOLE_DYNAMIC=y +CONFIG_NETPOLL=y +CONFIG_NETPOLL_TRAP=y +CONFIG_NET_POLL_CONTROLLER=y CONFIG_IMQ=m # CONFIG_IMQ_BEHAVIOR_AA is not set CONFIG_IMQ_BEHAVIOR_AB=y # CONFIG_IMQ_BEHAVIOR_BA is not set # CONFIG_IMQ_BEHAVIOR_BB is not set CONFIG_IMQ_NUM_DEVS=2 -# CONFIG_NET_FC is not set -CONFIG_MII=m -CONFIG_IEEE802154_DRIVERS=m -CONFIG_IEEE802154_FAKEHARD=m -CONFIG_IFB=m -CONFIG_MACVLAN=m -CONFIG_MACVTAP=m -# CONFIG_NETCONSOLE is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set CONFIG_TUN=m CONFIG_VETH=m # CONFIG_ARCNET is not set @@ -1504,47 +1640,35 @@ CONFIG_ATM_DRIVERS=y CONFIG_ATM_TCP=m CONFIG_ATM_LANAI=m CONFIG_ATM_ENI=m -CONFIG_ATM_ENI_DEBUG=y -CONFIG_ATM_ENI_TUNE_BURST=y -CONFIG_ATM_ENI_BURST_TX_16W=y -CONFIG_ATM_ENI_BURST_TX_8W=y -CONFIG_ATM_ENI_BURST_TX_4W=y -CONFIG_ATM_ENI_BURST_TX_2W=y -CONFIG_ATM_ENI_BURST_RX_16W=y -CONFIG_ATM_ENI_BURST_RX_8W=y -CONFIG_ATM_ENI_BURST_RX_4W=y -CONFIG_ATM_ENI_BURST_RX_2W=y -CONFIG_ATM_FIRESTREAM=m -CONFIG_ATM_ZATM=m -# CONFIG_ATM_ZATM_DEBUG is not set +# CONFIG_ATM_ENI_DEBUG is not set +# CONFIG_ATM_ENI_TUNE_BURST is not set CONFIG_ATM_NICSTAR=m -CONFIG_ATM_NICSTAR_USE_SUNI=y -CONFIG_ATM_NICSTAR_USE_IDT77105=y +# CONFIG_ATM_NICSTAR_USE_SUNI is not set +# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set CONFIG_ATM_IDT77252=m # CONFIG_ATM_IDT77252_DEBUG is not set # CONFIG_ATM_IDT77252_RCV_ALL is not set CONFIG_ATM_IDT77252_USE_SUNI=y -CONFIG_ATM_AMBASSADOR=m -# CONFIG_ATM_AMBASSADOR_DEBUG is not set -CONFIG_ATM_HORIZON=m -# CONFIG_ATM_HORIZON_DEBUG is not set -CONFIG_ATM_IA=m -# CONFIG_ATM_IA_DEBUG is not set -CONFIG_ATM_FORE200E=m -CONFIG_ATM_FORE200E_USE_TASKLET=y -CONFIG_ATM_FORE200E_TX_RETRY=16 -CONFIG_ATM_FORE200E_DEBUG=0 +# CONFIG_ATM_IA is not set +# CONFIG_ATM_FORE200E is not set # CONFIG_ATM_HE is not set CONFIG_ATM_SOLOS=m
# # CAIF transport drivers # + +# +# Distributed Switch Architecture drivers +# +CONFIG_NET_DSA_MV88E6XXX=y +CONFIG_NET_DSA_MV88E6060=y +CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y +CONFIG_NET_DSA_MV88E6131=y +CONFIG_NET_DSA_MV88E6123_61_65=y CONFIG_ETHERNET=y CONFIG_MDIO=m CONFIG_NET_VENDOR_3COM=y -CONFIG_PCMCIA_3C574=m -CONFIG_PCMCIA_3C589=m CONFIG_VORTEX=m CONFIG_TYPHOON=m CONFIG_NET_VENDOR_ADAPTEC=y @@ -1555,12 +1679,15 @@ CONFIG_ACENIC=m CONFIG_NET_VENDOR_AMD=y CONFIG_AMD8111_ETH=m CONFIG_PCNET32=m -CONFIG_PCMCIA_NMCLAN=m CONFIG_NET_VENDOR_ATHEROS=y CONFIG_ATL2=m CONFIG_ATL1=m CONFIG_ATL1E=m CONFIG_ATL1C=m +CONFIG_ALX=m +CONFIG_NET_CADENCE=y +CONFIG_ARM_AT91_ETHER=m +CONFIG_MACB=m CONFIG_NET_VENDOR_BROADCOM=y CONFIG_B44=m CONFIG_B44_PCI_AUTOSELECT=y @@ -1570,14 +1697,19 @@ CONFIG_BNX2=m CONFIG_CNIC=m CONFIG_TIGON3=m CONFIG_BNX2X=m +CONFIG_BNX2X_SRIOV=y CONFIG_NET_VENDOR_BROCADE=y CONFIG_BNA=m +CONFIG_NET_CALXEDA_XGMAC=m CONFIG_NET_VENDOR_CHELSIO=y CONFIG_CHELSIO_T1=m CONFIG_CHELSIO_T1_1G=y CONFIG_CHELSIO_T3=m CONFIG_CHELSIO_T4=m CONFIG_CHELSIO_T4VF=m +CONFIG_NET_VENDOR_CIRRUS=y +CONFIG_CS89x0=m +CONFIG_CS89x0_PLATFORM=y CONFIG_NET_VENDOR_CISCO=y CONFIG_ENIC=m CONFIG_DM9000=m @@ -1589,16 +1721,14 @@ CONFIG_DE2104X=m CONFIG_DE2104X_DSL=0 CONFIG_TULIP=m # CONFIG_TULIP_MWI is not set -# CONFIG_TULIP_MMIO is not set -# CONFIG_TULIP_NAPI is not set -CONFIG_DE4X5=m +CONFIG_TULIP_MMIO=y +CONFIG_TULIP_NAPI=y +CONFIG_TULIP_NAPI_HW_MITIGATION=y CONFIG_WINBOND_840=m CONFIG_DM9102=m CONFIG_ULI526X=m CONFIG_PCMCIA_XIRCOM=m CONFIG_NET_VENDOR_DLINK=y -CONFIG_DE600=m -CONFIG_DE620=m CONFIG_DL2K=m CONFIG_SUNDANCE=m # CONFIG_SUNDANCE_MMIO is not set @@ -1611,8 +1741,6 @@ CONFIG_VXGE=m CONFIG_NET_VENDOR_FARADAY=y # CONFIG_FTMAC100 is not set # CONFIG_FTGMAC100 is not set -CONFIG_NET_VENDOR_FUJITSU=y -CONFIG_PCMCIA_FMVJ18X=m CONFIG_NET_VENDOR_HP=y CONFIG_HP100=m CONFIG_NET_VENDOR_INTEL=y @@ -1620,24 +1748,28 @@ CONFIG_E100=m CONFIG_E1000=m CONFIG_E1000E=m CONFIG_IGB=m +CONFIG_IGB_HWMON=y CONFIG_IGBVF=m CONFIG_IXGB=m CONFIG_IXGBE=m +CONFIG_IXGBE_HWMON=y CONFIG_NET_VENDOR_I825XX=y CONFIG_IP1000=m CONFIG_JME=m CONFIG_NET_VENDOR_MARVELL=y CONFIG_MV643XX_ETH=m +CONFIG_MVMDIO=m CONFIG_SKGE=m +# CONFIG_SKGE_DEBUG is not set CONFIG_SKGE_GENESIS=y CONFIG_SKY2=m +# CONFIG_SKY2_DEBUG is not set CONFIG_NET_VENDOR_MELLANOX=y -CONFIG_MLX4_EN=m -CONFIG_MLX4_CORE=m -CONFIG_MLX4_DEBUG=y +# CONFIG_MLX4_EN is not set +# CONFIG_MLX4_CORE is not set CONFIG_NET_VENDOR_MICREL=y -CONFIG_KS8842=m -CONFIG_KS8851_MLL=m +# CONFIG_KS8842 is not set +# CONFIG_KS8851_MLL is not set CONFIG_KSZ884X_PCI=m CONFIG_NET_VENDOR_MYRI=y CONFIG_MYRI10GE=m @@ -1646,36 +1778,32 @@ CONFIG_NET_VENDOR_NATSEMI=y CONFIG_NATSEMI=m CONFIG_NS83820=m CONFIG_NET_VENDOR_8390=y -CONFIG_PCMCIA_AXNET=m CONFIG_AX88796=m CONFIG_AX88796_93CX6=y CONFIG_NE2K_PCI=m -CONFIG_PCMCIA_PCNET=m CONFIG_NET_VENDOR_NVIDIA=y CONFIG_FORCEDETH=m CONFIG_NET_VENDOR_OKI=y CONFIG_PCH_GBE=m CONFIG_ETHOC=m -CONFIG_NET_PACKET_ENGINE=y -CONFIG_HAMACHI=m -CONFIG_YELLOWFIN=m +# CONFIG_NET_PACKET_ENGINE is not set CONFIG_NET_VENDOR_QLOGIC=y CONFIG_QLA3XXX=m CONFIG_QLCNIC=m +CONFIG_QLCNIC_SRIOV=y CONFIG_QLGE=m CONFIG_NETXEN_NIC=m CONFIG_NET_VENDOR_REALTEK=y CONFIG_8139CP=m CONFIG_8139TOO=m # CONFIG_8139TOO_PIO is not set -CONFIG_8139TOO_TUNE_TWISTER=y +# CONFIG_8139TOO_TUNE_TWISTER is not set CONFIG_8139TOO_8129=y # CONFIG_8139_OLD_RX_RESET is not set CONFIG_R8169=m CONFIG_NET_VENDOR_RDC=y CONFIG_R6040=m CONFIG_NET_VENDOR_SEEQ=y -CONFIG_SEEQ8005=m CONFIG_NET_VENDOR_SILAN=y CONFIG_SC92031=m CONFIG_NET_VENDOR_SIS=y @@ -1683,9 +1811,10 @@ CONFIG_SIS900=m CONFIG_SIS190=m CONFIG_SFC=m CONFIG_SFC_MTD=y +CONFIG_SFC_MCDI_MON=y +CONFIG_SFC_SRIOV=y CONFIG_NET_VENDOR_SMSC=y CONFIG_SMC91X=m -CONFIG_PCMCIA_SMC91C92=m CONFIG_EPIC100=m CONFIG_SMC911X=m CONFIG_SMSC911X=m @@ -1693,9 +1822,10 @@ CONFIG_SMSC911X=m CONFIG_SMSC9420=m CONFIG_NET_VENDOR_STMICRO=y CONFIG_STMMAC_ETH=m +CONFIG_STMMAC_PLATFORM=y +CONFIG_STMMAC_PCI=y +# CONFIG_STMMAC_DEBUG_FS is not set # CONFIG_STMMAC_DA is not set -CONFIG_STMMAC_RING=y -# CONFIG_STMMAC_CHAINED is not set CONFIG_NET_VENDOR_SUN=y CONFIG_HAPPYMEAL=m # CONFIG_SUNGEM is not set @@ -1709,8 +1839,12 @@ CONFIG_NET_VENDOR_VIA=y CONFIG_VIA_RHINE=m CONFIG_VIA_RHINE_MMIO=y CONFIG_VIA_VELOCITY=m -CONFIG_NET_VENDOR_XIRCOM=y -CONFIG_PCMCIA_XIRC2PS=m +CONFIG_NET_VENDOR_WIZNET=y +CONFIG_WIZNET_W5100=m +CONFIG_WIZNET_W5300=m +# CONFIG_WIZNET_BUS_DIRECT is not set +# CONFIG_WIZNET_BUS_INDIRECT is not set +CONFIG_WIZNET_BUS_ANY=y # CONFIG_FDDI is not set # CONFIG_HIPPI is not set CONFIG_PHYLIB=y @@ -1718,6 +1852,8 @@ CONFIG_PHYLIB=y # # MII PHY device drivers # +CONFIG_AT803X_PHY=m +CONFIG_AMD_PHY=m CONFIG_MARVELL_PHY=m CONFIG_DAVICOM_PHY=m CONFIG_QSEMI_PHY=m @@ -1726,15 +1862,19 @@ CONFIG_CICADA_PHY=m CONFIG_VITESSE_PHY=m CONFIG_SMSC_PHY=m CONFIG_BROADCOM_PHY=m +CONFIG_BCM87XX_PHY=m CONFIG_ICPLUS_PHY=m CONFIG_REALTEK_PHY=m CONFIG_NATIONAL_PHY=m CONFIG_STE10XP=m CONFIG_LSI_ET1011C_PHY=m CONFIG_MICREL_PHY=m -# CONFIG_FIXED_PHY is not set +CONFIG_FIXED_PHY=y CONFIG_MDIO_BITBANG=m -CONFIG_MDIO_GPIO=m +# CONFIG_MDIO_GPIO is not set +CONFIG_MDIO_BUS_MUX=m +CONFIG_MDIO_BUS_MUX_GPIO=m +CONFIG_MDIO_BUS_MUX_MMIOREG=m # CONFIG_PLIP is not set CONFIG_PPP=m CONFIG_PPP_BSDCOMP=m @@ -1748,12 +1888,8 @@ CONFIG_PPTP=m CONFIG_PPPOL2TP=m CONFIG_PPP_ASYNC=m CONFIG_PPP_SYNC_TTY=m -CONFIG_SLIP=m +# CONFIG_SLIP is not set CONFIG_SLHC=m -CONFIG_SLIP_COMPRESSED=y -CONFIG_SLIP_SMART=y -CONFIG_SLIP_MODE_SLIP6=y -# CONFIG_TR is not set
# # USB Network Adapters @@ -1762,11 +1898,14 @@ CONFIG_USB_CATC=m CONFIG_USB_KAWETH=m CONFIG_USB_PEGASUS=m CONFIG_USB_RTL8150=m +CONFIG_USB_RTL8152=m CONFIG_USB_USBNET=m CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_AX88179_178A=m CONFIG_USB_NET_CDCETHER=m CONFIG_USB_NET_CDC_EEM=m CONFIG_USB_NET_CDC_NCM=m +CONFIG_USB_NET_CDC_MBIM=m CONFIG_USB_NET_DM9601=m CONFIG_USB_NET_SMSC75XX=m CONFIG_USB_NET_SMSC95XX=m @@ -1785,82 +1924,171 @@ CONFIG_USB_KC2190=y CONFIG_USB_NET_ZAURUS=m CONFIG_USB_NET_CX82310_ETH=m CONFIG_USB_NET_KALMIA=m +CONFIG_USB_NET_QMI_WWAN=m CONFIG_USB_HSO=m CONFIG_USB_NET_INT51X1=m -# CONFIG_USB_IPHETH is not set +CONFIG_USB_IPHETH=m CONFIG_USB_SIERRA_NET=m CONFIG_USB_VL600=m CONFIG_WLAN=y -CONFIG_PCMCIA_RAYCS=m -# CONFIG_LIBERTAS_THINFIRM is not set +CONFIG_LIBERTAS_THINFIRM=m +# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set +CONFIG_LIBERTAS_THINFIRM_USB=m CONFIG_ATMEL=m CONFIG_PCI_ATMEL=m -CONFIG_PCMCIA_ATMEL=m CONFIG_AT76C50X_USB=m -CONFIG_AIRO_CS=m -CONFIG_PCMCIA_WL3501=m # CONFIG_PRISM54 is not set CONFIG_USB_ZD1201=m CONFIG_USB_NET_RNDIS_WLAN=m -# CONFIG_RTL8180 is not set -# CONFIG_RTL8187 is not set -# CONFIG_ADM8211 is not set -# CONFIG_MAC80211_HWSIM is not set -# CONFIG_MWL8K is not set -# CONFIG_ATH_COMMON is not set -# CONFIG_B43 is not set -# CONFIG_B43LEGACY is not set +CONFIG_RTL8180=m +CONFIG_RTL8187=m +CONFIG_RTL8187_LEDS=y +CONFIG_ADM8211=m +CONFIG_MAC80211_HWSIM=m +CONFIG_MWL8K=m +CONFIG_ATH_COMMON=m +CONFIG_ATH_CARDS=m +# CONFIG_ATH_DEBUG is not set +CONFIG_ATH5K=m +CONFIG_ATH5K_DEBUG=y +# CONFIG_ATH5K_TRACER is not set +CONFIG_ATH5K_PCI=y +CONFIG_ATH9K_HW=m +CONFIG_ATH9K_COMMON=m +CONFIG_ATH9K_BTCOEX_SUPPORT=y +CONFIG_ATH9K=m +CONFIG_ATH9K_PCI=y +CONFIG_ATH9K_AHB=y +# CONFIG_ATH9K_DEBUGFS is not set +# CONFIG_ATH9K_LEGACY_RATE_CONTROL is not set +CONFIG_ATH9K_HTC=m +# CONFIG_ATH9K_HTC_DEBUGFS is not set +CONFIG_CARL9170=m +CONFIG_CARL9170_LEDS=y +CONFIG_CARL9170_WPC=y +# CONFIG_CARL9170_HWRNG is not set +# CONFIG_ATH6KL is not set +CONFIG_AR5523=m +CONFIG_WIL6210=m +CONFIG_WIL6210_ISR_COR=y +CONFIG_B43=m +CONFIG_B43_SSB=y +CONFIG_B43_PCI_AUTOSELECT=y +CONFIG_B43_PCICORE_AUTOSELECT=y +CONFIG_B43_SDIO=y +CONFIG_B43_PIO=y +CONFIG_B43_PHY_N=y +CONFIG_B43_PHY_LP=y +CONFIG_B43_LEDS=y +CONFIG_B43_HWRNG=y +# CONFIG_B43_DEBUG is not set +CONFIG_B43LEGACY=m +CONFIG_B43LEGACY_PCI_AUTOSELECT=y +CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y +CONFIG_B43LEGACY_LEDS=y +CONFIG_B43LEGACY_HWRNG=y +# CONFIG_B43LEGACY_DEBUG is not set +CONFIG_B43LEGACY_DMA=y +CONFIG_B43LEGACY_PIO=y +CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y +# CONFIG_B43LEGACY_DMA_MODE is not set +# CONFIG_B43LEGACY_PIO_MODE is not set # CONFIG_BRCMFMAC is not set CONFIG_HOSTAP=m CONFIG_HOSTAP_FIRMWARE=y -# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set +CONFIG_HOSTAP_FIRMWARE_NVRAM=y CONFIG_HOSTAP_PLX=m CONFIG_HOSTAP_PCI=m -CONFIG_HOSTAP_CS=m -# CONFIG_IPW2100 is not set -# CONFIG_IPW2200 is not set +CONFIG_IPW2100=m +CONFIG_IPW2100_MONITOR=y +# CONFIG_IPW2100_DEBUG is not set +CONFIG_IPW2200=m +CONFIG_IPW2200_MONITOR=y +CONFIG_IPW2200_RADIOTAP=y +CONFIG_IPW2200_PROMISCUOUS=y +CONFIG_IPW2200_QOS=y +# CONFIG_IPW2200_DEBUG is not set +CONFIG_LIBIPW=m +# CONFIG_LIBIPW_DEBUG is not set # CONFIG_IWLWIFI is not set -# CONFIG_IWL4965 is not set -# CONFIG_IWL3945 is not set -# CONFIG_IWM is not set -# CONFIG_LIBERTAS is not set -# CONFIG_HERMES is not set -# CONFIG_P54_COMMON is not set -# CONFIG_RT2X00 is not set -# CONFIG_RTL8192CE is not set -# CONFIG_RTL8192SE is not set -# CONFIG_RTL8192DE is not set -# CONFIG_RTL8192CU is not set -# CONFIG_WL1251 is not set -# CONFIG_WL12XX_MENU is not set -# CONFIG_ZD1211RW is not set -# CONFIG_MWIFIEX is not set +CONFIG_IWLEGACY=m +CONFIG_IWL4965=m +CONFIG_IWL3945=m + +# +# iwl3945 / iwl4965 Debugging Options +# +# CONFIG_IWLEGACY_DEBUG is not set +CONFIG_LIBERTAS=m +CONFIG_LIBERTAS_USB=m +CONFIG_LIBERTAS_SDIO=m +# CONFIG_LIBERTAS_DEBUG is not set +CONFIG_LIBERTAS_MESH=y +CONFIG_HERMES=m +# CONFIG_HERMES_PRISM is not set +CONFIG_HERMES_CACHE_FW_ON_INIT=y +CONFIG_PLX_HERMES=m +CONFIG_TMD_HERMES=m +CONFIG_NORTEL_HERMES=m +CONFIG_ORINOCO_USB=m +CONFIG_P54_COMMON=m +CONFIG_P54_USB=m +CONFIG_P54_PCI=m +CONFIG_P54_LEDS=y +CONFIG_RT2X00=m +CONFIG_RT2400PCI=m +CONFIG_RT2500PCI=m +CONFIG_RT61PCI=m +CONFIG_RT2800PCI=m +CONFIG_RT2800PCI_RT33XX=y +CONFIG_RT2800PCI_RT35XX=y +CONFIG_RT2800PCI_RT53XX=y +CONFIG_RT2800PCI_RT3290=y +CONFIG_RT2500USB=m +CONFIG_RT73USB=m +CONFIG_RT2800USB=m +CONFIG_RT2800USB_RT33XX=y +CONFIG_RT2800USB_RT35XX=y +CONFIG_RT2800USB_RT53XX=y +CONFIG_RT2800USB_RT55XX=y +CONFIG_RT2800USB_UNKNOWN=y +CONFIG_RT2800_LIB=m +CONFIG_RT2X00_LIB_MMIO=m +CONFIG_RT2X00_LIB_PCI=m +CONFIG_RT2X00_LIB_USB=m +CONFIG_RT2X00_LIB=m +CONFIG_RT2X00_LIB_FIRMWARE=y +CONFIG_RT2X00_LIB_CRYPTO=y +CONFIG_RT2X00_LIB_LEDS=y +# CONFIG_RT2X00_DEBUG is not set +CONFIG_RTLWIFI=m +# CONFIG_RTLWIFI_DEBUG is not set +CONFIG_RTL8192CE=m +CONFIG_RTL8192SE=m +CONFIG_RTL8192DE=m +CONFIG_RTL8723AE=m +CONFIG_RTL8188EE=m +CONFIG_RTL8192CU=m +CONFIG_RTL8192C_COMMON=m +CONFIG_WL_TI=y +CONFIG_WL1251=m +CONFIG_WL1251_SDIO=m +CONFIG_WL12XX=m +CONFIG_WL18XX=m +CONFIG_WLCORE=m +CONFIG_WLCORE_SDIO=m +CONFIG_WILINK_PLATFORM_DATA=y +CONFIG_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set +CONFIG_MWIFIEX=m +CONFIG_MWIFIEX_SDIO=m +# CONFIG_MWIFIEX_PCIE is not set +CONFIG_MWIFIEX_USB=m
# # Enable WiMAX (Networking options) to see the WiMAX drivers # -CONFIG_WAN=y -CONFIG_LANMEDIA=m -CONFIG_HDLC=m -CONFIG_HDLC_RAW=m -CONFIG_HDLC_RAW_ETH=m -CONFIG_HDLC_CISCO=m -CONFIG_HDLC_FR=m -CONFIG_HDLC_PPP=m - -# -# X.25/LAPB support is disabled -# -CONFIG_PCI200SYN=m -CONFIG_WANXL=m -# CONFIG_WANXL_BUILD_FIRMWARE is not set -CONFIG_PC300TOO=m -CONFIG_FARSYNC=m -CONFIG_DSCC4=m -CONFIG_DSCC4_PCISYNC=y -CONFIG_DSCC4_PCI_RST=y -CONFIG_DLCI=m -CONFIG_DLCI_MAX=8 +# CONFIG_WAN is not set CONFIG_VMXNET3=m CONFIG_ISDN=y CONFIG_ISDN_I4L=m @@ -1892,9 +2120,9 @@ CONFIG_ISDN_DRV_HISAX=m # CONFIG_HISAX_EURO=y CONFIG_DE_AOC=y -# CONFIG_HISAX_NO_SENDCOMPLETE is not set -# CONFIG_HISAX_NO_LLC is not set -# CONFIG_HISAX_NO_KEYPAD is not set +CONFIG_HISAX_NO_SENDCOMPLETE=y +CONFIG_HISAX_NO_LLC=y +CONFIG_HISAX_NO_KEYPAD=y CONFIG_HISAX_1TR6=y CONFIG_HISAX_NI1=y CONFIG_HISAX_MAX_CARDS=8 @@ -1910,8 +2138,6 @@ CONFIG_HISAX_AVM_A1_PCMCIA=y CONFIG_HISAX_ELSA=y CONFIG_HISAX_DIEHLDIVA=y CONFIG_HISAX_SEDLBAUER=y -CONFIG_HISAX_NETJET=y -CONFIG_HISAX_NETJET_U=y CONFIG_HISAX_NICCY=y CONFIG_HISAX_BKM_A4T=y CONFIG_HISAX_SCT_QUADRO=y @@ -1919,16 +2145,11 @@ CONFIG_HISAX_GAZEL=y CONFIG_HISAX_HFC_PCI=y CONFIG_HISAX_W6692=y CONFIG_HISAX_HFC_SX=y -CONFIG_HISAX_ENTERNOW_PCI=y -CONFIG_HISAX_DEBUG=y +# CONFIG_HISAX_DEBUG is not set
# # HiSax PCMCIA card service modules # -CONFIG_HISAX_SEDLBAUER_CS=m -CONFIG_HISAX_ELSA_CS=m -CONFIG_HISAX_AVM_A1_CS=m -CONFIG_HISAX_TELES_CS=m
# # HiSax sub driver modules @@ -1954,8 +2175,6 @@ CONFIG_ISDN_CAPI_CAPIDRV=m CONFIG_CAPI_AVM=y CONFIG_ISDN_DRV_AVMB1_B1PCI=m CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y -CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m -CONFIG_ISDN_DRV_AVMB1_AVM_CS=m CONFIG_ISDN_DRV_AVMB1_T1PCI=m CONFIG_ISDN_DRV_AVMB1_C4=m CONFIG_CAPI_EICON=y @@ -1965,43 +2184,20 @@ CONFIG_ISDN_DIVAS_PRIPCI=y CONFIG_ISDN_DIVAS_DIVACAPI=m CONFIG_ISDN_DIVAS_USERIDI=m CONFIG_ISDN_DIVAS_MAINT=m -CONFIG_ISDN_DRV_GIGASET=m -CONFIG_GIGASET_CAPI=y -# CONFIG_GIGASET_I4L is not set -# CONFIG_GIGASET_DUMMYLL is not set -CONFIG_GIGASET_BASE=m -CONFIG_GIGASET_M105=m -CONFIG_GIGASET_M101=m -# CONFIG_GIGASET_DEBUG is not set +# CONFIG_ISDN_DRV_GIGASET is not set CONFIG_HYSDN=m CONFIG_HYSDN_CAPI=y -CONFIG_MISDN=m -CONFIG_MISDN_DSP=m -CONFIG_MISDN_L1OIP=m - -# -# mISDN hardware drivers -# -CONFIG_MISDN_HFCPCI=m -CONFIG_MISDN_HFCMULTI=m -CONFIG_MISDN_HFCUSB=m -CONFIG_MISDN_AVMFRITZ=m -CONFIG_MISDN_SPEEDFAX=m -CONFIG_MISDN_INFINEON=m -CONFIG_MISDN_W6692=m -CONFIG_MISDN_NETJET=m -CONFIG_MISDN_IPAC=m -CONFIG_MISDN_ISAR=m +# CONFIG_MISDN is not set CONFIG_ISDN_HDLC=m -# CONFIG_PHONE is not set
# # Input device support # CONFIG_INPUT=y -CONFIG_INPUT_FF_MEMLESS=m -CONFIG_INPUT_POLLDEV=m +# CONFIG_INPUT_FF_MEMLESS is not set +CONFIG_INPUT_POLLDEV=y CONFIG_INPUT_SPARSEKMAP=m +CONFIG_INPUT_MATRIXKMAP=m
# # Userland interfaces @@ -2011,53 +2207,78 @@ CONFIG_INPUT_MOUSEDEV=y CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 # CONFIG_INPUT_JOYDEV is not set -# CONFIG_INPUT_EVDEV is not set +CONFIG_INPUT_EVDEV=y # CONFIG_INPUT_EVBUG is not set +# CONFIG_INPUT_APMPOWER is not set
# # Input Device Drivers # CONFIG_INPUT_KEYBOARD=y -CONFIG_KEYBOARD_ADP5588=m -CONFIG_KEYBOARD_ADP5589=m +# CONFIG_KEYBOARD_ADP5588 is not set +# CONFIG_KEYBOARD_ADP5589 is not set CONFIG_KEYBOARD_ATKBD=y -CONFIG_KEYBOARD_QT1070=m -CONFIG_KEYBOARD_QT2160=m -CONFIG_KEYBOARD_LKKBD=m -CONFIG_KEYBOARD_GPIO=m -CONFIG_KEYBOARD_TCA6416=m -CONFIG_KEYBOARD_MATRIX=m -CONFIG_KEYBOARD_LM8323=m -CONFIG_KEYBOARD_MAX7359=m -CONFIG_KEYBOARD_MCS=m -CONFIG_KEYBOARD_MPR121=m -CONFIG_KEYBOARD_NEWTON=m -CONFIG_KEYBOARD_OPENCORES=m -CONFIG_KEYBOARD_STOWAWAY=m -CONFIG_KEYBOARD_SUNKBD=m -CONFIG_KEYBOARD_XTKBD=m -# CONFIG_INPUT_MOUSE is not set +# CONFIG_KEYBOARD_QT1070 is not set +# CONFIG_KEYBOARD_QT2160 is not set +# CONFIG_KEYBOARD_LKKBD is not set +CONFIG_KEYBOARD_GPIO=y +# CONFIG_KEYBOARD_TCA6416 is not set +# CONFIG_KEYBOARD_TCA8418 is not set +# CONFIG_KEYBOARD_MATRIX is not set +# CONFIG_KEYBOARD_LM8323 is not set +CONFIG_KEYBOARD_LM8333=m +# CONFIG_KEYBOARD_MAX7359 is not set +# CONFIG_KEYBOARD_MCS is not set +# CONFIG_KEYBOARD_MPR121 is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_OPENCORES is not set +# CONFIG_KEYBOARD_SAMSUNG is not set +# CONFIG_KEYBOARD_STOWAWAY is not set +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set +CONFIG_INPUT_MOUSE=y +CONFIG_MOUSE_PS2=m +CONFIG_MOUSE_PS2_ALPS=y +CONFIG_MOUSE_PS2_LOGIPS2PP=y +CONFIG_MOUSE_PS2_SYNAPTICS=y +CONFIG_MOUSE_PS2_CYPRESS=y +CONFIG_MOUSE_PS2_TRACKPOINT=y +CONFIG_MOUSE_PS2_ELANTECH=y +CONFIG_MOUSE_PS2_SENTELIC=y +CONFIG_MOUSE_PS2_TOUCHKIT=y +CONFIG_MOUSE_SERIAL=m +CONFIG_MOUSE_APPLETOUCH=m +CONFIG_MOUSE_BCM5974=m +CONFIG_MOUSE_CYAPA=m +CONFIG_MOUSE_VSXXXAA=m +# CONFIG_MOUSE_GPIO is not set +CONFIG_MOUSE_SYNAPTICS_I2C=m +CONFIG_MOUSE_SYNAPTICS_USB=m # CONFIG_INPUT_JOYSTICK is not set # CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set CONFIG_INPUT_MISC=y -CONFIG_INPUT_88PM860X_ONKEY=m -CONFIG_INPUT_AD714X=m -CONFIG_INPUT_AD714X_I2C=m -CONFIG_INPUT_BMA150=m +# CONFIG_INPUT_88PM860X_ONKEY is not set +# CONFIG_INPUT_88PM80X_ONKEY is not set +# CONFIG_INPUT_AD714X is not set +# CONFIG_INPUT_BMA150 is not set # CONFIG_INPUT_MMA8450 is not set # CONFIG_INPUT_MPU3050 is not set +# CONFIG_INPUT_GP2A is not set +# CONFIG_INPUT_GPIO_TILT_POLLED is not set CONFIG_INPUT_ATI_REMOTE2=m CONFIG_INPUT_KEYSPAN_REMOTE=m # CONFIG_INPUT_KXTJ9 is not set CONFIG_INPUT_POWERMATE=m CONFIG_INPUT_YEALINK=m CONFIG_INPUT_CM109=m -# CONFIG_INPUT_UINPUT is not set -CONFIG_INPUT_PCF50633_PMU=m -CONFIG_INPUT_PCF8574=m +CONFIG_INPUT_RETU_PWRBUTTON=m +CONFIG_INPUT_UINPUT=m +# CONFIG_INPUT_PCF8574 is not set +CONFIG_INPUT_PWM_BEEPER=m CONFIG_INPUT_GPIO_ROTARY_ENCODER=m # CONFIG_INPUT_ADXL34X is not set +# CONFIG_INPUT_IMS_PCU is not set # CONFIG_INPUT_CMA3000 is not set
# @@ -2068,100 +2289,104 @@ CONFIG_SERIO_SERPORT=y # CONFIG_SERIO_PARKBD is not set # CONFIG_SERIO_PCIPS2 is not set CONFIG_SERIO_LIBPS2=y -# CONFIG_SERIO_RAW is not set +CONFIG_SERIO_RAW=m CONFIG_SERIO_ALTERA_PS2=m -CONFIG_SERIO_PS2MULT=m +# CONFIG_SERIO_PS2MULT is not set +CONFIG_SERIO_ARC_PS2=m +CONFIG_SERIO_APBPS2=m # CONFIG_GAMEPORT is not set
# # Character devices # +CONFIG_TTY=y CONFIG_VT=y CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_VT_CONSOLE=y CONFIG_HW_CONSOLE=y -# CONFIG_VT_HW_CONSOLE_BINDING is not set +CONFIG_VT_HW_CONSOLE_BINDING=y CONFIG_UNIX98_PTYS=y -# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set +CONFIG_DEVPTS_MULTIPLE_INSTANCES=y # CONFIG_LEGACY_PTYS is not set -# CONFIG_SERIAL_NONSTANDARD is not set +CONFIG_SERIAL_NONSTANDARD=y +CONFIG_ROCKETPORT=m +CONFIG_CYCLADES=m +# CONFIG_CYZ_INTR is not set +# CONFIG_MOXA_INTELLIO is not set +# CONFIG_MOXA_SMARTIO is not set +CONFIG_SYNCLINKMP=m +CONFIG_SYNCLINK_GT=m CONFIG_NOZOMI=m +# CONFIG_ISI is not set +CONFIG_N_HDLC=m CONFIG_N_GSM=m # CONFIG_TRACE_SINK is not set -CONFIG_DEVKMEM=y +# CONFIG_DEVKMEM is not set +# CONFIG_STALDRV is not set
# # Serial drivers # CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_DMA=y CONFIG_SERIAL_8250_PCI=y -CONFIG_SERIAL_8250_CS=m CONFIG_SERIAL_8250_NR_UARTS=4 CONFIG_SERIAL_8250_RUNTIME_UARTS=4 CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_MANY_PORTS=y CONFIG_SERIAL_8250_SHARE_IRQ=y -CONFIG_SERIAL_8250_DETECT_IRQ=y +# CONFIG_SERIAL_8250_DETECT_IRQ is not set CONFIG_SERIAL_8250_RSA=y -CONFIG_SERIAL_8250_DW=m +# CONFIG_SERIAL_8250_DW is not set +# CONFIG_SERIAL_8250_EM is not set
# # Non-8250 serial port support # -CONFIG_SERIAL_MFD_HSU=m -CONFIG_SERIAL_UARTLITE=m +# CONFIG_SERIAL_MFD_HSU is not set CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y -# CONFIG_SERIAL_JSM is not set +CONFIG_SERIAL_JSM=m CONFIG_SERIAL_OF_PLATFORM=y -CONFIG_SERIAL_TIMBERDALE=m -CONFIG_SERIAL_ALTERA_JTAGUART=m -CONFIG_SERIAL_ALTERA_UART=m -CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4 -CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200 -CONFIG_SERIAL_PCH_UART=m -CONFIG_SERIAL_XILINX_PS_UART=m +CONFIG_SERIAL_SCCNXP=m +# CONFIG_SERIAL_TIMBERDALE is not set +# CONFIG_SERIAL_ALTERA_JTAGUART is not set +# CONFIG_SERIAL_ALTERA_UART is not set +# CONFIG_SERIAL_PCH_UART is not set +# CONFIG_SERIAL_XILINX_PS_UART is not set +CONFIG_SERIAL_ARC=m +CONFIG_SERIAL_ARC_NR_PORTS=1 +CONFIG_SERIAL_RP2=m +CONFIG_SERIAL_RP2_NR_UARTS=32 +# CONFIG_TTY_PRINTK is not set CONFIG_PRINTER=m -# CONFIG_LP_CONSOLE is not set +CONFIG_LP_CONSOLE=y CONFIG_PPDEV=m # CONFIG_HVC_DCC is not set CONFIG_IPMI_HANDLER=m -CONFIG_IPMI_PANIC_EVENT=y -# CONFIG_IPMI_PANIC_STRING is not set +# CONFIG_IPMI_PANIC_EVENT is not set CONFIG_IPMI_DEVICE_INTERFACE=m CONFIG_IPMI_SI=m CONFIG_IPMI_WATCHDOG=m CONFIG_IPMI_POWEROFF=m -CONFIG_HW_RANDOM=m +CONFIG_HW_RANDOM=y CONFIG_HW_RANDOM_TIMERIOMEM=m -CONFIG_NVRAM=m -# CONFIG_R3964 is not set +CONFIG_HW_RANDOM_ATMEL=m +CONFIG_HW_RANDOM_EXYNOS=m +CONFIG_NVRAM=y +CONFIG_R3964=m # CONFIG_APPLICOM is not set - -# -# PCMCIA character devices -# -CONFIG_SYNCLINK_CS=m -# CONFIG_CARDMAN_4000 is not set -# CONFIG_CARDMAN_4040 is not set -CONFIG_IPWIRELESS=m -# CONFIG_RAW_DRIVER is not set +CONFIG_RAW_DRIVER=y +CONFIG_MAX_RAW_DEVS=8192 # CONFIG_TCG_TPM is not set CONFIG_DEVPORT=y -# CONFIG_RAMOOPS is not set CONFIG_I2C=y CONFIG_I2C_BOARDINFO=y CONFIG_I2C_COMPAT=y CONFIG_I2C_CHARDEV=m -CONFIG_I2C_MUX=m - -# -# Multiplexer I2C Chip support -# -CONFIG_I2C_MUX_GPIO=m -CONFIG_I2C_MUX_PCA9541=m -CONFIG_I2C_MUX_PCA954x=m +# CONFIG_I2C_MUX is not set CONFIG_I2C_HELPER_AUTO=y CONFIG_I2C_SMBUS=m CONFIG_I2C_ALGOBIT=m @@ -2192,17 +2417,18 @@ CONFIG_I2C_VIAPRO=m # # I2C system bus drivers (mostly embedded / system-on-chip) # -CONFIG_I2C_DESIGNWARE_CORE=m -CONFIG_I2C_DESIGNWARE_PCI=m +CONFIG_I2C_CBUS_GPIO=m +# CONFIG_I2C_DESIGNWARE_PLATFORM is not set +# CONFIG_I2C_DESIGNWARE_PCI is not set +# CONFIG_I2C_EG20T is not set CONFIG_I2C_GPIO=m -CONFIG_I2C_INTEL_MID=m +# CONFIG_I2C_INTEL_MID is not set CONFIG_I2C_MV64XXX=y -CONFIG_I2C_OCORES=m +# CONFIG_I2C_OCORES is not set CONFIG_I2C_PCA_PLATFORM=m # CONFIG_I2C_PXA_PCI is not set CONFIG_I2C_SIMTEC=m -CONFIG_I2C_XILINX=m -CONFIG_I2C_EG20T=m +# CONFIG_I2C_XILINX is not set
# # External I2C/SMBus adapter drivers @@ -2210,8 +2436,9 @@ CONFIG_I2C_EG20T=m CONFIG_I2C_DIOLAN_U2C=m CONFIG_I2C_PARPORT=m CONFIG_I2C_PARPORT_LIGHT=m -CONFIG_I2C_TAOS_EVM=m +# CONFIG_I2C_TAOS_EVM is not set CONFIG_I2C_TINY_USB=m +CONFIG_I2C_VIPERBOARD=m
# # Other I2C/SMBus bus drivers @@ -2223,6 +2450,18 @@ CONFIG_I2C_STUB=m # CONFIG_SPI is not set
# +# Qualcomm MSM SSBI bus support +# +# CONFIG_SSBI is not set +CONFIG_HSI=m +CONFIG_HSI_BOARDINFO=y + +# +# HSI clients +# +CONFIG_HSI_CHAR=m + +# # PPS support # CONFIG_PPS=m @@ -2244,37 +2483,61 @@ CONFIG_PPS=m # PTP clock support # CONFIG_PTP_1588_CLOCK=m -CONFIG_DP83640_PHY=m + +# +# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. +# +CONFIG_PTP_1588_CLOCK_PCH=m +CONFIG_PINCTRL=y + +# +# Pin controllers +# +CONFIG_PINMUX=y +CONFIG_PINCONF=y +CONFIG_GENERIC_PINCONF=y +# CONFIG_DEBUG_PINCTRL is not set +CONFIG_PINCTRL_SINGLE=m +# CONFIG_PINCTRL_EXYNOS is not set +# CONFIG_PINCTRL_EXYNOS5440 is not set +CONFIG_PINCTRL_MVEBU=y +CONFIG_PINCTRL_KIRKWOOD=y +CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y CONFIG_ARCH_REQUIRE_GPIOLIB=y +CONFIG_GPIO_DEVRES=y CONFIG_GPIOLIB=y +CONFIG_OF_GPIO=y # CONFIG_DEBUG_GPIO is not set CONFIG_GPIO_SYSFS=y -CONFIG_GPIO_GENERIC=m -CONFIG_GPIO_MAX730X=m +CONFIG_GPIO_GENERIC=y
# # Memory mapped GPIO drivers: # -CONFIG_GPIO_GENERIC_PLATFORM=m -CONFIG_GPIO_IT8761E=m -CONFIG_GPIO_VX855=m +CONFIG_GPIO_GENERIC_PLATFORM=y +# CONFIG_GPIO_EM is not set +CONFIG_GPIO_MVEBU=y +# CONFIG_GPIO_RCAR is not set +CONFIG_GPIO_TS5500=m +# CONFIG_GPIO_VX855 is not set +# CONFIG_GPIO_GRGPIO is not set
# # I2C GPIO expanders: # -CONFIG_GPIO_MAX7300=m -CONFIG_GPIO_MAX732X=m -CONFIG_GPIO_PCF857X=m +# CONFIG_GPIO_MAX7300 is not set +# CONFIG_GPIO_MAX732X is not set +# CONFIG_GPIO_PCF857X is not set # CONFIG_GPIO_SX150X is not set -CONFIG_GPIO_ADP5588=m +# CONFIG_GPIO_ADP5588 is not set +CONFIG_GPIO_ADNP=m
# # PCI GPIO expanders: # -# CONFIG_GPIO_BT8XX is not set -CONFIG_GPIO_ML_IOH=m -# CONFIG_GPIO_TIMBERDALE is not set -CONFIG_GPIO_RDC321X=m +# CONFIG_GPIO_AMD8111 is not set +# CONFIG_GPIO_ML_IOH is not set +# CONFIG_GPIO_RDC321X is not set
# # SPI GPIO expanders: @@ -2284,23 +2547,26 @@ CONFIG_GPIO_MCP23S08=m # # AC97 GPIO expanders: # -# CONFIG_GPIO_UCB1400 is not set
# # MODULbus GPIO expanders: # -CONFIG_GPIO_JANZ_TTL=m + +# +# USB GPIO expanders: +# +CONFIG_GPIO_VIPERBOARD=m CONFIG_W1=m CONFIG_W1_CON=y
# # 1-wire Bus Masters # -CONFIG_W1_MASTER_MATROX=m +# CONFIG_W1_MASTER_MATROX is not set CONFIG_W1_MASTER_DS2490=m CONFIG_W1_MASTER_DS2482=m CONFIG_W1_MASTER_DS1WM=m -CONFIG_W1_MASTER_GPIO=m +# CONFIG_W1_MASTER_GPIO is not set
# # 1-wire Slaves @@ -2308,29 +2574,46 @@ CONFIG_W1_MASTER_GPIO=m CONFIG_W1_SLAVE_THERM=m CONFIG_W1_SLAVE_SMEM=m CONFIG_W1_SLAVE_DS2408=m +CONFIG_W1_SLAVE_DS2408_READBACK=y +CONFIG_W1_SLAVE_DS2413=m CONFIG_W1_SLAVE_DS2423=m CONFIG_W1_SLAVE_DS2431=m CONFIG_W1_SLAVE_DS2433=m CONFIG_W1_SLAVE_DS2433_CRC=y CONFIG_W1_SLAVE_DS2760=m CONFIG_W1_SLAVE_DS2780=m +CONFIG_W1_SLAVE_DS2781=m +CONFIG_W1_SLAVE_DS28E04=m CONFIG_W1_SLAVE_BQ27000=m CONFIG_POWER_SUPPLY=y # CONFIG_POWER_SUPPLY_DEBUG is not set # CONFIG_PDA_POWER is not set +# CONFIG_APM_POWER is not set +CONFIG_GENERIC_ADC_BATTERY=m # CONFIG_TEST_POWER is not set +CONFIG_BATTERY_88PM860X=m # CONFIG_BATTERY_DS2760 is not set # CONFIG_BATTERY_DS2780 is not set +# CONFIG_BATTERY_DS2781 is not set # CONFIG_BATTERY_DS2782 is not set -# CONFIG_BATTERY_BQ20Z75 is not set +# CONFIG_BATTERY_SBS is not set # CONFIG_BATTERY_BQ27x00 is not set # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set -# CONFIG_CHARGER_PCF50633 is not set -# CONFIG_CHARGER_ISP1704 is not set +CONFIG_CHARGER_88PM860X=m # CONFIG_CHARGER_MAX8903 is not set +# CONFIG_CHARGER_LP8727 is not set # CONFIG_CHARGER_GPIO is not set -CONFIG_HWMON=m +# CONFIG_CHARGER_MANAGER is not set +# CONFIG_CHARGER_BQ2415X is not set +# CONFIG_CHARGER_SMB347 is not set +# CONFIG_BATTERY_GOLDFISH is not set +CONFIG_POWER_RESET=y +CONFIG_POWER_RESET_GPIO=y +CONFIG_POWER_RESET_QNAP=y +CONFIG_POWER_RESET_RESTART=y +CONFIG_POWER_AVS=y +CONFIG_HWMON=y CONFIG_HWMON_VID=m # CONFIG_HWMON_DEBUG_CHIP is not set
@@ -2345,6 +2628,8 @@ CONFIG_SENSORS_ADM1026=m CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM9240=m +CONFIG_SENSORS_ADT7X10=m +CONFIG_SENSORS_ADT7410=m CONFIG_SENSORS_ADT7411=m CONFIG_SENSORS_ADT7462=m CONFIG_SENSORS_ADT7470=m @@ -2360,13 +2645,15 @@ CONFIG_SENSORS_F75375S=m CONFIG_SENSORS_G760A=m CONFIG_SENSORS_GL518SM=m CONFIG_SENSORS_GL520SM=m -CONFIG_SENSORS_GPIO_FAN=m +# CONFIG_SENSORS_GPIO_FAN is not set +CONFIG_SENSORS_HIH6130=m CONFIG_SENSORS_IBMAEM=m CONFIG_SENSORS_IBMPEX=m +# CONFIG_SENSORS_IIO_HWMON is not set CONFIG_SENSORS_IT87=m -CONFIG_SENSORS_JC42=m +# CONFIG_SENSORS_JC42 is not set CONFIG_SENSORS_LINEAGE=m -CONFIG_SENSORS_LM63=m +CONFIG_SENSORS_LM63=y CONFIG_SENSORS_LM73=m CONFIG_SENSORS_LM75=m CONFIG_SENSORS_LM77=m @@ -2382,14 +2669,19 @@ CONFIG_SENSORS_LTC4151=m CONFIG_SENSORS_LTC4215=m CONFIG_SENSORS_LTC4245=m CONFIG_SENSORS_LTC4261=m +CONFIG_SENSORS_LM95234=m CONFIG_SENSORS_LM95241=m CONFIG_SENSORS_LM95245=m CONFIG_SENSORS_MAX16065=m CONFIG_SENSORS_MAX1619=m CONFIG_SENSORS_MAX1668=m +CONFIG_SENSORS_MAX197=m CONFIG_SENSORS_MAX6639=m CONFIG_SENSORS_MAX6642=m CONFIG_SENSORS_MAX6650=m +CONFIG_SENSORS_MAX6697=m +CONFIG_SENSORS_MCP3021=m +CONFIG_SENSORS_NCT6775=m CONFIG_SENSORS_NTC_THERMISTOR=m CONFIG_SENSORS_PC87360=m CONFIG_SENSORS_PC87427=m @@ -2398,20 +2690,20 @@ CONFIG_PMBUS=m CONFIG_SENSORS_PMBUS=m CONFIG_SENSORS_ADM1275=m CONFIG_SENSORS_LM25066=m -CONFIG_SENSORS_LTC2978=m +# CONFIG_SENSORS_LTC2978 is not set CONFIG_SENSORS_MAX16064=m CONFIG_SENSORS_MAX34440=m CONFIG_SENSORS_MAX8688=m CONFIG_SENSORS_UCD9000=m CONFIG_SENSORS_UCD9200=m -CONFIG_SENSORS_ZL6100=m +# CONFIG_SENSORS_ZL6100 is not set CONFIG_SENSORS_SHT15=m CONFIG_SENSORS_SHT21=m CONFIG_SENSORS_SIS5595=m -CONFIG_SENSORS_SMM665=m +# CONFIG_SENSORS_SMM665 is not set CONFIG_SENSORS_DME1737=m CONFIG_SENSORS_EMC1403=m -CONFIG_SENSORS_EMC2103=m +# CONFIG_SENSORS_EMC2103 is not set CONFIG_SENSORS_EMC6W201=m CONFIG_SENSORS_SMSC47M1=m CONFIG_SENSORS_SMSC47M192=m @@ -2422,6 +2714,8 @@ CONFIG_SENSORS_SCH5636=m CONFIG_SENSORS_ADS1015=m CONFIG_SENSORS_ADS7828=m CONFIG_SENSORS_AMC6821=m +CONFIG_SENSORS_INA209=m +CONFIG_SENSORS_INA2XX=m CONFIG_SENSORS_THMC50=m CONFIG_SENSORS_TMP102=m CONFIG_SENSORS_TMP401=m @@ -2440,17 +2734,29 @@ CONFIG_SENSORS_W83L786NG=m CONFIG_SENSORS_W83627HF=m CONFIG_SENSORS_W83627EHF=m CONFIG_THERMAL=y +CONFIG_THERMAL_HWMON=y +CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y +# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set +# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set +CONFIG_THERMAL_GOV_FAIR_SHARE=y +CONFIG_THERMAL_GOV_STEP_WISE=y +CONFIG_THERMAL_GOV_USER_SPACE=y +CONFIG_THERMAL_EMULATION=y +CONFIG_KIRKWOOD_THERMAL=m CONFIG_WATCHDOG=y CONFIG_WATCHDOG_CORE=y -# CONFIG_WATCHDOG_NOWAYOUT is not set +CONFIG_WATCHDOG_NOWAYOUT=y
# # Watchdog Device Drivers # CONFIG_SOFT_WATCHDOG=m +# CONFIG_DW_WATCHDOG is not set CONFIG_ORION_WATCHDOG=m -CONFIG_MAX63XX_WATCHDOG=m +# CONFIG_MAX63XX_WATCHDOG is not set +CONFIG_RETU_WATCHDOG=m CONFIG_ALIM7101_WDT=m +CONFIG_I6300ESB_WDT=m
# # PCI-based Watchdog Cards @@ -2469,397 +2775,665 @@ CONFIG_SSB_POSSIBLE=y # CONFIG_SSB=m CONFIG_SSB_SPROM=y +CONFIG_SSB_BLOCKIO=y CONFIG_SSB_PCIHOST_POSSIBLE=y CONFIG_SSB_PCIHOST=y -# CONFIG_SSB_B43_PCI_BRIDGE is not set -CONFIG_SSB_PCMCIAHOST_POSSIBLE=y -CONFIG_SSB_PCMCIAHOST=y +CONFIG_SSB_B43_PCI_BRIDGE=y CONFIG_SSB_SDIOHOST_POSSIBLE=y CONFIG_SSB_SDIOHOST=y +# CONFIG_SSB_SILENT is not set # CONFIG_SSB_DEBUG is not set CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y CONFIG_SSB_DRIVER_PCICORE=y +CONFIG_SSB_DRIVER_GPIO=y CONFIG_BCMA_POSSIBLE=y
# # Broadcom specific AMBA # -CONFIG_BCMA=m -CONFIG_BCMA_HOST_PCI_POSSIBLE=y -# CONFIG_BCMA_HOST_PCI is not set -# CONFIG_BCMA_DEBUG is not set +# CONFIG_BCMA is not set
# # Multifunction device drivers # CONFIG_MFD_CORE=y -CONFIG_MFD_88PM860X=y -CONFIG_MFD_SM501=m -# CONFIG_MFD_SM501_GPIO is not set +# CONFIG_MFD_AS3711 is not set +# CONFIG_PMIC_ADP5520 is not set +# CONFIG_MFD_AAT2870_CORE is not set +# CONFIG_MFD_CROS_EC is not set # CONFIG_MFD_ASIC3 is not set +# CONFIG_PMIC_DA903X is not set +# CONFIG_MFD_DA9052_I2C is not set +# CONFIG_MFD_DA9055 is not set +# CONFIG_MFD_MC13XXX_I2C is not set # CONFIG_HTC_EGPIO is not set -CONFIG_HTC_PASIC3=m +# CONFIG_HTC_PASIC3 is not set # CONFIG_HTC_I2CPLD is not set -CONFIG_UCB1400_CORE=m -CONFIG_TPS6105X=m -CONFIG_TPS65010=m -CONFIG_TPS6507X=m +CONFIG_LPC_ICH=m +CONFIG_LPC_SCH=m +# CONFIG_MFD_JANZ_CMODIO is not set +CONFIG_MFD_88PM800=y +CONFIG_MFD_88PM805=y +CONFIG_MFD_88PM860X=y +# CONFIG_MFD_MAX77686 is not set +# CONFIG_MFD_MAX77693 is not set +# CONFIG_MFD_MAX8907 is not set +# CONFIG_MFD_MAX8925 is not set +# CONFIG_MFD_MAX8997 is not set +# CONFIG_MFD_MAX8998 is not set +CONFIG_MFD_VIPERBOARD=m +CONFIG_MFD_RETU=m +# CONFIG_MFD_PCF50633 is not set +# CONFIG_UCB1400_CORE is not set +# CONFIG_MFD_RDC321X is not set +CONFIG_MFD_RTSX_PCI=m +# CONFIG_MFD_RC5T583 is not set +# CONFIG_MFD_SEC_CORE is not set +# CONFIG_MFD_SI476X_CORE is not set +CONFIG_MFD_SM501=m +CONFIG_MFD_SM501_GPIO=y +# CONFIG_MFD_SMSC is not set +# CONFIG_ABX500_CORE is not set +# CONFIG_MFD_STMPE is not set +# CONFIG_MFD_SYSCON is not set +# CONFIG_MFD_TI_AM335X_TSCADC is not set +# CONFIG_MFD_LP8788 is not set +# CONFIG_MFD_PALMAS is not set +# CONFIG_TPS6105X is not set +# CONFIG_TPS65010 is not set +# CONFIG_TPS6507X is not set +# CONFIG_MFD_TPS65090 is not set +# CONFIG_MFD_TPS65217 is not set # CONFIG_MFD_TPS6586X is not set # CONFIG_MFD_TPS65910 is not set +# CONFIG_MFD_TPS65912 is not set # CONFIG_MFD_TPS65912_I2C is not set +# CONFIG_MFD_TPS80031 is not set # CONFIG_TWL4030_CORE is not set -# CONFIG_MFD_STMPE is not set +# CONFIG_TWL6040_CORE is not set +CONFIG_MFD_WL1273_CORE=m +CONFIG_MFD_LM3533=m +# CONFIG_MFD_TIMBERDALE is not set # CONFIG_MFD_TC3589X is not set # CONFIG_MFD_TMIO is not set +# CONFIG_MFD_T7L66XB is not set +# CONFIG_MFD_TC6387XB is not set # CONFIG_MFD_TC6393XB is not set -# CONFIG_PMIC_DA903X is not set -# CONFIG_PMIC_ADP5520 is not set -# CONFIG_MFD_MAX8925 is not set -# CONFIG_MFD_MAX8997 is not set -# CONFIG_MFD_MAX8998 is not set -CONFIG_MFD_WM8400=m +CONFIG_MFD_VX855=m +# CONFIG_MFD_ARIZONA_I2C is not set +# CONFIG_MFD_WM8400 is not set # CONFIG_MFD_WM831X_I2C is not set # CONFIG_MFD_WM8350_I2C is not set # CONFIG_MFD_WM8994 is not set -CONFIG_MFD_PCF50633=m -CONFIG_PCF50633_ADC=m -CONFIG_PCF50633_GPIO=m -# CONFIG_ABX500_CORE is not set -CONFIG_MFD_TIMBERDALE=m -CONFIG_LPC_SCH=m -CONFIG_MFD_RDC321X=m -CONFIG_MFD_JANZ_CMODIO=m -CONFIG_MFD_VX855=m -CONFIG_MFD_WL1273_CORE=m -# CONFIG_MFD_AAT2870_CORE is not set CONFIG_REGULATOR=y # CONFIG_REGULATOR_DEBUG is not set # CONFIG_REGULATOR_DUMMY is not set -CONFIG_REGULATOR_FIXED_VOLTAGE=m +CONFIG_REGULATOR_FIXED_VOLTAGE=y # CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set # CONFIG_REGULATOR_USERSPACE_CONSUMER is not set -CONFIG_REGULATOR_GPIO=m -# CONFIG_REGULATOR_BQ24022 is not set +# CONFIG_REGULATOR_GPIO is not set +# CONFIG_REGULATOR_AD5398 is not set +# CONFIG_REGULATOR_FAN53555 is not set +# CONFIG_REGULATOR_ISL6271A is not set +CONFIG_REGULATOR_88PM8607=y # CONFIG_REGULATOR_MAX1586 is not set # CONFIG_REGULATOR_MAX8649 is not set # CONFIG_REGULATOR_MAX8660 is not set # CONFIG_REGULATOR_MAX8952 is not set -# CONFIG_REGULATOR_WM8400 is not set -# CONFIG_REGULATOR_PCF50633 is not set +# CONFIG_REGULATOR_MAX8973 is not set # CONFIG_REGULATOR_LP3971 is not set # CONFIG_REGULATOR_LP3972 is not set -# CONFIG_REGULATOR_TPS6105X is not set +# CONFIG_REGULATOR_LP872X is not set +CONFIG_REGULATOR_LP8755=m +# CONFIG_REGULATOR_TPS51632 is not set +# CONFIG_REGULATOR_TPS62360 is not set # CONFIG_REGULATOR_TPS65023 is not set # CONFIG_REGULATOR_TPS6507X is not set -# CONFIG_REGULATOR_88PM8607 is not set -# CONFIG_REGULATOR_ISL6271A is not set -# CONFIG_REGULATOR_AD5398 is not set -CONFIG_MEDIA_SUPPORT=m +CONFIG_MEDIA_SUPPORT=y
# # Multimedia core support # +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_ANALOG_TV_SUPPORT=y +CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y +# CONFIG_MEDIA_RADIO_SUPPORT is not set +CONFIG_MEDIA_RC_SUPPORT=y CONFIG_MEDIA_CONTROLLER=y -CONFIG_VIDEO_DEV=m -CONFIG_VIDEO_V4L2_COMMON=m +CONFIG_VIDEO_DEV=y CONFIG_VIDEO_V4L2_SUBDEV_API=y -CONFIG_DVB_CORE=m +CONFIG_VIDEO_V4L2=y +# CONFIG_VIDEO_ADV_DEBUG is not set +# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set +CONFIG_VIDEO_TUNER=m +CONFIG_V4L2_MEM2MEM_DEV=m +CONFIG_VIDEOBUF_GEN=m +CONFIG_VIDEOBUF_DMA_SG=m +CONFIG_VIDEOBUF_VMALLOC=m +CONFIG_VIDEOBUF_DMA_CONTIG=m +CONFIG_VIDEOBUF_DVB=m +CONFIG_VIDEOBUF2_CORE=m +CONFIG_VIDEOBUF2_MEMOPS=m +CONFIG_VIDEOBUF2_DMA_CONTIG=m +CONFIG_VIDEOBUF2_VMALLOC=m +CONFIG_VIDEO_V4L2_INT_DEVICE=m +CONFIG_DVB_CORE=y CONFIG_DVB_NET=y -CONFIG_VIDEO_MEDIA=m +CONFIG_TTPCI_EEPROM=m +CONFIG_DVB_MAX_ADAPTERS=8 +CONFIG_DVB_DYNAMIC_MINORS=y
# -# Multimedia drivers +# Media drivers # -CONFIG_RC_CORE=m -CONFIG_LIRC=m +CONFIG_RC_CORE=y CONFIG_RC_MAP=m -# CONFIG_IR_NEC_DECODER is not set -# CONFIG_IR_RC5_DECODER is not set -# CONFIG_IR_RC6_DECODER is not set -# CONFIG_IR_JVC_DECODER is not set -# CONFIG_IR_SONY_DECODER is not set -# CONFIG_IR_RC5_SZ_DECODER is not set -# CONFIG_IR_MCE_KBD_DECODER is not set -# CONFIG_IR_LIRC_CODEC is not set +CONFIG_RC_DECODERS=y +CONFIG_LIRC=m +CONFIG_IR_LIRC_CODEC=m +CONFIG_IR_NEC_DECODER=m +CONFIG_IR_RC5_DECODER=m +CONFIG_IR_RC6_DECODER=m +CONFIG_IR_JVC_DECODER=m +CONFIG_IR_SONY_DECODER=m +CONFIG_IR_RC5_SZ_DECODER=m +CONFIG_IR_SANYO_DECODER=m +CONFIG_IR_MCE_KBD_DECODER=m +CONFIG_RC_DEVICES=y # CONFIG_RC_ATI_REMOTE is not set -# CONFIG_IR_IMON is not set -# CONFIG_IR_MCEUSB is not set -# CONFIG_IR_REDRAT3 is not set -# CONFIG_IR_STREAMZAP is not set -# CONFIG_RC_LOOPBACK is not set -CONFIG_MEDIA_ATTACH=y -CONFIG_MEDIA_TUNER=m -# CONFIG_MEDIA_TUNER_CUSTOMISE is not set -CONFIG_MEDIA_TUNER_SIMPLE=m -CONFIG_MEDIA_TUNER_TDA8290=m -CONFIG_MEDIA_TUNER_TDA827X=m -CONFIG_MEDIA_TUNER_TDA18271=m -CONFIG_MEDIA_TUNER_TDA9887=m -CONFIG_MEDIA_TUNER_TEA5761=m -CONFIG_MEDIA_TUNER_TEA5767=m -CONFIG_MEDIA_TUNER_MT20XX=m -CONFIG_MEDIA_TUNER_XC2028=m -CONFIG_MEDIA_TUNER_XC5000=m -CONFIG_MEDIA_TUNER_XC4000=m -CONFIG_MEDIA_TUNER_MC44S803=m -CONFIG_VIDEO_V4L2=m -CONFIG_VIDEO_CAPTURE_DRIVERS=y -# CONFIG_VIDEO_ADV_DEBUG is not set -# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set -# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set -CONFIG_VIDEO_IR_I2C=m - -# -# Encoders, decoders, sensors and other helper chips -# - -# -# Audio decoders, processors and mixers -# -# CONFIG_VIDEO_TVAUDIO is not set -# CONFIG_VIDEO_TDA7432 is not set -# CONFIG_VIDEO_TDA9840 is not set -# CONFIG_VIDEO_TEA6415C is not set -# CONFIG_VIDEO_TEA6420 is not set -# CONFIG_VIDEO_MSP3400 is not set -# CONFIG_VIDEO_CS5345 is not set -# CONFIG_VIDEO_CS53L32A is not set -# CONFIG_VIDEO_TLV320AIC23B is not set -# CONFIG_VIDEO_WM8775 is not set -# CONFIG_VIDEO_WM8739 is not set -# CONFIG_VIDEO_VP27SMPX is not set +CONFIG_IR_IMON=m +CONFIG_IR_MCEUSB=m +CONFIG_IR_REDRAT3=m +CONFIG_IR_STREAMZAP=m +CONFIG_IR_IGUANA=m +CONFIG_IR_TTUSBIR=m +CONFIG_RC_LOOPBACK=m +CONFIG_IR_GPIO_CIR=m +CONFIG_MEDIA_USB_SUPPORT=y
# -# RDS decoders -# -# CONFIG_VIDEO_SAA6588 is not set - -# -# Video decoders -# -# CONFIG_VIDEO_ADV7180 is not set -# CONFIG_VIDEO_BT819 is not set -# CONFIG_VIDEO_BT856 is not set -# CONFIG_VIDEO_BT866 is not set -# CONFIG_VIDEO_KS0127 is not set -# CONFIG_VIDEO_SAA7110 is not set -# CONFIG_VIDEO_SAA711X is not set -# CONFIG_VIDEO_SAA7191 is not set -# CONFIG_VIDEO_TVP514X is not set -# CONFIG_VIDEO_TVP5150 is not set -# CONFIG_VIDEO_TVP7002 is not set -# CONFIG_VIDEO_VPX3220 is not set - +# Webcam devices # -# Video and audio decoders -# -# CONFIG_VIDEO_SAA717X is not set -# CONFIG_VIDEO_CX25840 is not set - -# -# MPEG video encoders -# -# CONFIG_VIDEO_CX2341X is not set - -# -# Video encoders -# -# CONFIG_VIDEO_SAA7127 is not set -# CONFIG_VIDEO_SAA7185 is not set -# CONFIG_VIDEO_ADV7170 is not set -# CONFIG_VIDEO_ADV7175 is not set -# CONFIG_VIDEO_ADV7343 is not set -# CONFIG_VIDEO_AK881X is not set - -# -# Camera sensor devices -# -# CONFIG_VIDEO_OV7670 is not set -# CONFIG_VIDEO_MT9P031 is not set -# CONFIG_VIDEO_MT9T001 is not set -# CONFIG_VIDEO_MT9V011 is not set -# CONFIG_VIDEO_MT9V032 is not set -# CONFIG_VIDEO_TCM825X is not set -# CONFIG_VIDEO_SR030PC30 is not set -# CONFIG_VIDEO_NOON010PC30 is not set -# CONFIG_VIDEO_M5MOLS is not set -# CONFIG_VIDEO_S5K6AA is not set - -# -# Flash devices -# -# CONFIG_VIDEO_ADP1653 is not set +CONFIG_USB_VIDEO_CLASS=m +CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y +CONFIG_USB_GSPCA=m +CONFIG_USB_M5602=m +CONFIG_USB_STV06XX=m +CONFIG_USB_GL860=m +CONFIG_USB_GSPCA_BENQ=m +CONFIG_USB_GSPCA_CONEX=m +CONFIG_USB_GSPCA_CPIA1=m +CONFIG_USB_GSPCA_ETOMS=m +CONFIG_USB_GSPCA_FINEPIX=m +CONFIG_USB_GSPCA_JEILINJ=m +CONFIG_USB_GSPCA_JL2005BCD=m +CONFIG_USB_GSPCA_KINECT=m +CONFIG_USB_GSPCA_KONICA=m +CONFIG_USB_GSPCA_MARS=m +CONFIG_USB_GSPCA_MR97310A=m +CONFIG_USB_GSPCA_NW80X=m +CONFIG_USB_GSPCA_OV519=m +CONFIG_USB_GSPCA_OV534=m +CONFIG_USB_GSPCA_OV534_9=m +CONFIG_USB_GSPCA_PAC207=m +CONFIG_USB_GSPCA_PAC7302=m +CONFIG_USB_GSPCA_PAC7311=m +CONFIG_USB_GSPCA_SE401=m +CONFIG_USB_GSPCA_SN9C2028=m +CONFIG_USB_GSPCA_SN9C20X=m +CONFIG_USB_GSPCA_SONIXB=m +CONFIG_USB_GSPCA_SONIXJ=m +CONFIG_USB_GSPCA_SPCA500=m +CONFIG_USB_GSPCA_SPCA501=m +CONFIG_USB_GSPCA_SPCA505=m +CONFIG_USB_GSPCA_SPCA506=m +CONFIG_USB_GSPCA_SPCA508=m +CONFIG_USB_GSPCA_SPCA561=m +CONFIG_USB_GSPCA_SPCA1528=m +CONFIG_USB_GSPCA_SQ905=m +CONFIG_USB_GSPCA_SQ905C=m +CONFIG_USB_GSPCA_SQ930X=m +CONFIG_USB_GSPCA_STK014=m +CONFIG_USB_GSPCA_STV0680=m +CONFIG_USB_GSPCA_SUNPLUS=m +CONFIG_USB_GSPCA_T613=m +# CONFIG_USB_GSPCA_TOPRO is not set +CONFIG_USB_GSPCA_TV8532=m +CONFIG_USB_GSPCA_VC032X=m +CONFIG_USB_GSPCA_VICAM=m +CONFIG_USB_GSPCA_XIRLINK_CIT=m +CONFIG_USB_GSPCA_ZC3XX=m +CONFIG_USB_PWC=m +# CONFIG_USB_PWC_DEBUG is not set +CONFIG_USB_PWC_INPUT_EVDEV=y +CONFIG_VIDEO_CPIA2=m +CONFIG_USB_ZR364XX=m +CONFIG_USB_STKWEBCAM=m +CONFIG_USB_S2255=m +CONFIG_USB_SN9C102=m + +# +# Analog TV USB devices +# +CONFIG_VIDEO_PVRUSB2=m +CONFIG_VIDEO_PVRUSB2_SYSFS=y +CONFIG_VIDEO_PVRUSB2_DVB=y +# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set +CONFIG_VIDEO_HDPVR=m +CONFIG_VIDEO_TLG2300=m +CONFIG_VIDEO_USBVISION=m +CONFIG_VIDEO_STK1160=m +# CONFIG_VIDEO_STK1160_AC97 is not set + +# +# Analog/digital TV USB devices +# +CONFIG_VIDEO_AU0828=m +CONFIG_VIDEO_AU0828_V4L2=y +CONFIG_VIDEO_CX231XX=m +CONFIG_VIDEO_CX231XX_RC=y +CONFIG_VIDEO_CX231XX_ALSA=m +CONFIG_VIDEO_CX231XX_DVB=m +CONFIG_VIDEO_TM6000=m +CONFIG_VIDEO_TM6000_ALSA=m +CONFIG_VIDEO_TM6000_DVB=m + +# +# Digital TV USB devices +# +CONFIG_DVB_USB=m +# CONFIG_DVB_USB_DEBUG is not set +CONFIG_DVB_USB_A800=m +CONFIG_DVB_USB_DIBUSB_MB=m +CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y +CONFIG_DVB_USB_DIBUSB_MC=m +CONFIG_DVB_USB_DIB0700=m +CONFIG_DVB_USB_UMT_010=m +CONFIG_DVB_USB_CXUSB=m +CONFIG_DVB_USB_M920X=m +CONFIG_DVB_USB_DIGITV=m +CONFIG_DVB_USB_VP7045=m +CONFIG_DVB_USB_VP702X=m +CONFIG_DVB_USB_GP8PSK=m +CONFIG_DVB_USB_NOVA_T_USB2=m +CONFIG_DVB_USB_TTUSB2=m +CONFIG_DVB_USB_DTT200U=m +CONFIG_DVB_USB_OPERA1=m +CONFIG_DVB_USB_AF9005=m +CONFIG_DVB_USB_AF9005_REMOTE=m +CONFIG_DVB_USB_PCTV452E=m +CONFIG_DVB_USB_DW2102=m +CONFIG_DVB_USB_CINERGY_T2=m +CONFIG_DVB_USB_DTV5100=m +CONFIG_DVB_USB_FRIIO=m +CONFIG_DVB_USB_AZ6027=m +CONFIG_DVB_USB_TECHNISAT_USB2=m +CONFIG_DVB_USB_V2=m +CONFIG_DVB_USB_AF9015=m +CONFIG_DVB_USB_AF9035=m +CONFIG_DVB_USB_ANYSEE=m +CONFIG_DVB_USB_AU6610=m +CONFIG_DVB_USB_AZ6007=m +CONFIG_DVB_USB_CE6230=m +CONFIG_DVB_USB_EC168=m +CONFIG_DVB_USB_GL861=m +CONFIG_DVB_USB_IT913X=m +CONFIG_DVB_USB_LME2510=m +CONFIG_DVB_USB_MXL111SF=m +CONFIG_DVB_USB_RTL28XXU=m +CONFIG_DVB_USB_DVBSKY=m +CONFIG_DVB_TTUSB_BUDGET=m +CONFIG_DVB_TTUSB_DEC=m +CONFIG_SMS_USB_DRV=m +CONFIG_DVB_B2C2_FLEXCOP_USB=m +# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set + +# +# Webcam, TV (analog/digital) USB devices +# +CONFIG_VIDEO_EM28XX=m +CONFIG_VIDEO_EM28XX_ALSA=m +CONFIG_VIDEO_EM28XX_DVB=m +CONFIG_VIDEO_EM28XX_RC=m +CONFIG_MEDIA_PCI_SUPPORT=y + +# +# Media capture support +# + +# +# Media capture/analog TV support +# +CONFIG_VIDEO_IVTV=m +CONFIG_VIDEO_IVTV_ALSA=m +CONFIG_VIDEO_FB_IVTV=m +CONFIG_VIDEO_HEXIUM_GEMINI=m +CONFIG_VIDEO_HEXIUM_ORION=m +CONFIG_VIDEO_MXB=m + +# +# Media capture/analog/hybrid TV support +# +CONFIG_VIDEO_CX18=m +CONFIG_VIDEO_CX18_ALSA=m +CONFIG_VIDEO_CX23885=m +CONFIG_MEDIA_ALTERA_CI=m +CONFIG_VIDEO_CX25821=m +CONFIG_VIDEO_CX25821_ALSA=m +CONFIG_VIDEO_CX88=m +CONFIG_VIDEO_CX88_ALSA=m +CONFIG_VIDEO_CX88_BLACKBIRD=m +CONFIG_VIDEO_CX88_DVB=m +CONFIG_VIDEO_CX88_VP3054=m +CONFIG_VIDEO_CX88_MPEG=m +CONFIG_VIDEO_BT848=m +CONFIG_DVB_BT8XX=m +CONFIG_VIDEO_SAA7134=m +CONFIG_VIDEO_SAA7134_ALSA=m +CONFIG_VIDEO_SAA7134_RC=y +CONFIG_VIDEO_SAA7134_DVB=m +CONFIG_VIDEO_SAA7164=m + +# +# Media digital TV PCI Adapters +# +CONFIG_DVB_AV7110=m +CONFIG_DVB_AV7110_OSD=y +CONFIG_DVB_BUDGET_CORE=m +CONFIG_DVB_BUDGET=m +CONFIG_DVB_BUDGET_CI=m +CONFIG_DVB_BUDGET_AV=m +CONFIG_DVB_BUDGET_PATCH=m +CONFIG_DVB_B2C2_FLEXCOP_PCI=m +# CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG is not set +CONFIG_DVB_PLUTO2=m +CONFIG_DVB_DM1105=m +CONFIG_DVB_PT1=m +CONFIG_MANTIS_CORE=m +CONFIG_DVB_MANTIS=m +CONFIG_DVB_HOPPER=m +CONFIG_DVB_NGENE=m +# CONFIG_DVB_DDBRIDGE is not set +CONFIG_V4L_PLATFORM_DRIVERS=y +CONFIG_VIDEO_CAFE_CCIC=m +CONFIG_VIDEO_TIMBERDALE=m +CONFIG_SOC_CAMERA=m +CONFIG_SOC_CAMERA_PLATFORM=m +# CONFIG_VIDEO_SH_MOBILE_CSI2 is not set +# CONFIG_VIDEO_SH_MOBILE_CEU is not set +CONFIG_V4L_MEM2MEM_DRIVERS=y +CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m +CONFIG_VIDEO_SH_VEU=m +# CONFIG_V4L_TEST_DRIVERS is not set
# -# Video improvement chips +# Supported MMC/SDIO adapters # -# CONFIG_VIDEO_UPD64031A is not set -# CONFIG_VIDEO_UPD64083 is not set +# CONFIG_SMS_SDIO_DRV is not set +# CONFIG_MEDIA_PARPORT_SUPPORT is not set
# -# Miscelaneous helper chips -# -# CONFIG_VIDEO_THS7303 is not set -# CONFIG_VIDEO_M52790 is not set -# CONFIG_VIDEO_VIVI is not set -# CONFIG_VIDEO_BT848 is not set -# CONFIG_VIDEO_BWQCAM is not set -# CONFIG_VIDEO_CQCAM is not set -# CONFIG_VIDEO_W9966 is not set -# CONFIG_VIDEO_CPIA2 is not set -# CONFIG_VIDEO_ZORAN is not set -# CONFIG_VIDEO_SAA7134 is not set -# CONFIG_VIDEO_MXB is not set -# CONFIG_VIDEO_HEXIUM_ORION is not set -# CONFIG_VIDEO_HEXIUM_GEMINI is not set -# CONFIG_VIDEO_TIMBERDALE is not set -# CONFIG_VIDEO_CX88 is not set -# CONFIG_VIDEO_CX23885 is not set -# CONFIG_VIDEO_CX25821 is not set -# CONFIG_VIDEO_AU0828 is not set -# CONFIG_VIDEO_IVTV is not set -# CONFIG_VIDEO_CX18 is not set -# CONFIG_VIDEO_SAA7164 is not set -# CONFIG_VIDEO_CAFE_CCIC is not set -# CONFIG_SOC_CAMERA is not set -CONFIG_V4L_USB_DRIVERS=y -# CONFIG_USB_VIDEO_CLASS is not set -CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y -# CONFIG_USB_GSPCA is not set -# CONFIG_VIDEO_PVRUSB2 is not set -# CONFIG_VIDEO_HDPVR is not set -# CONFIG_VIDEO_EM28XX is not set -# CONFIG_VIDEO_TLG2300 is not set -# CONFIG_VIDEO_CX231XX is not set -# CONFIG_VIDEO_TM6000 is not set -# CONFIG_VIDEO_USBVISION is not set -# CONFIG_USB_ET61X251 is not set -# CONFIG_USB_SN9C102 is not set -# CONFIG_USB_PWC is not set -# CONFIG_USB_ZR364XX is not set -# CONFIG_USB_STKWEBCAM is not set -# CONFIG_USB_S2255 is not set -# CONFIG_V4L_MEM2MEM_DRIVERS is not set -CONFIG_RADIO_ADAPTERS=y -# CONFIG_RADIO_MAXIRADIO is not set -# CONFIG_I2C_SI4713 is not set -# CONFIG_RADIO_SI4713 is not set -# CONFIG_USB_DSBR is not set -# CONFIG_RADIO_SI470X is not set -# CONFIG_USB_MR800 is not set -# CONFIG_RADIO_TEA5764 is not set -# CONFIG_RADIO_SAA7706H is not set -# CONFIG_RADIO_TEF6862 is not set -# CONFIG_RADIO_TIMBERDALE is not set -# CONFIG_RADIO_WL1273 is not set - -# -# Texas Instruments WL128x FM driver (ST based) -# -# CONFIG_RADIO_WL128X is not set -CONFIG_DVB_MAX_ADAPTERS=8 -# CONFIG_DVB_DYNAMIC_MINORS is not set -CONFIG_DVB_CAPTURE_DRIVERS=y - -# -# Supported SAA7146 based PCI Adapters +# Supported FireWire (IEEE 1394) Adapters # -# CONFIG_TTPCI_EEPROM is not set -# CONFIG_DVB_AV7110 is not set -# CONFIG_DVB_BUDGET_CORE is not set +CONFIG_DVB_FIREDTV=m +CONFIG_DVB_FIREDTV_INPUT=y +CONFIG_MEDIA_COMMON_OPTIONS=y
# -# Supported USB Adapters +# common driver options # -# CONFIG_DVB_USB is not set -# CONFIG_DVB_TTUSB_BUDGET is not set -# CONFIG_DVB_TTUSB_DEC is not set -# CONFIG_SMS_SIANO_MDTV is not set +CONFIG_VIDEO_CX2341X=m +CONFIG_VIDEO_BTCX=m +CONFIG_VIDEO_TVEEPROM=m +CONFIG_CYPRESS_FIRMWARE=m +CONFIG_DVB_B2C2_FLEXCOP=m +CONFIG_VIDEO_SAA7146=m +CONFIG_VIDEO_SAA7146_VV=m +CONFIG_SMS_SIANO_MDTV=m +CONFIG_SMS_SIANO_RC=y +# CONFIG_SMS_SIANO_DEBUGFS is not set
# -# Supported FlexCopII (B2C2) Adapters +# Media ancillary drivers (tuners, sensors, i2c, frontends) # -# CONFIG_DVB_B2C2_FLEXCOP is not set +CONFIG_MEDIA_SUBDRV_AUTOSELECT=y +CONFIG_MEDIA_ATTACH=y +CONFIG_VIDEO_IR_I2C=y
# -# Supported BT878 Adapters +# Audio decoders, processors and mixers # +CONFIG_VIDEO_TVAUDIO=m +CONFIG_VIDEO_TDA7432=m +CONFIG_VIDEO_TDA9840=m +CONFIG_VIDEO_TEA6415C=m +CONFIG_VIDEO_TEA6420=m +CONFIG_VIDEO_MSP3400=m +CONFIG_VIDEO_CS5345=m +CONFIG_VIDEO_CS53L32A=m +CONFIG_VIDEO_WM8775=m +CONFIG_VIDEO_WM8739=m +CONFIG_VIDEO_VP27SMPX=m
# -# Supported Pluto2 Adapters +# RDS decoders # -# CONFIG_DVB_PLUTO2 is not set +CONFIG_VIDEO_SAA6588=m
# -# Supported SDMC DM1105 Adapters +# Video decoders # -# CONFIG_DVB_DM1105 is not set +CONFIG_VIDEO_ADV7180=m +CONFIG_VIDEO_SAA711X=m +CONFIG_VIDEO_TVP5150=m
# -# Supported FireWire (IEEE 1394) Adapters +# Video and audio decoders # -# CONFIG_DVB_FIREDTV is not set +CONFIG_VIDEO_SAA717X=m +CONFIG_VIDEO_CX25840=m
# -# Supported Earthsoft PT1 Adapters +# Video encoders # -# CONFIG_DVB_PT1 is not set +CONFIG_VIDEO_SAA7127=m
# -# Supported Mantis Adapters +# Camera sensor devices # -# CONFIG_MANTIS_CORE is not set +CONFIG_VIDEO_OV7670=m +CONFIG_VIDEO_MT9V011=m
# -# Supported nGene Adapters +# Flash devices # -# CONFIG_DVB_NGENE is not set
# -# Supported ddbridge ('Octopus') Adapters +# Video improvement chips # -# CONFIG_DVB_DDBRIDGE is not set +CONFIG_VIDEO_UPD64031A=m +CONFIG_VIDEO_UPD64083=m
# -# Supported DVB Frontends +# Miscelaneous helper chips # -# CONFIG_DVB_FE_CUSTOMISE is not set +CONFIG_VIDEO_M52790=m + +# +# Sensors used on soc_camera driver +# + +# +# soc_camera sensor drivers +# +CONFIG_SOC_CAMERA_IMX074=m +CONFIG_SOC_CAMERA_MT9M001=m +CONFIG_SOC_CAMERA_MT9M111=m +CONFIG_SOC_CAMERA_MT9T031=m +CONFIG_SOC_CAMERA_MT9T112=m +CONFIG_SOC_CAMERA_MT9V022=m +CONFIG_SOC_CAMERA_OV2640=m +CONFIG_SOC_CAMERA_OV5642=m +CONFIG_SOC_CAMERA_OV6650=m +CONFIG_SOC_CAMERA_OV772X=m +CONFIG_SOC_CAMERA_OV9640=m +CONFIG_SOC_CAMERA_OV9740=m +CONFIG_SOC_CAMERA_RJ54N1=m +CONFIG_SOC_CAMERA_TW9910=m +CONFIG_MEDIA_TUNER=y +CONFIG_MEDIA_TUNER_SIMPLE=y +CONFIG_MEDIA_TUNER_TDA8290=y +CONFIG_MEDIA_TUNER_TDA827X=y +CONFIG_MEDIA_TUNER_TDA18271=y +CONFIG_MEDIA_TUNER_TDA9887=y +CONFIG_MEDIA_TUNER_MT20XX=y +CONFIG_MEDIA_TUNER_MT2060=m +CONFIG_MEDIA_TUNER_MT2063=m +CONFIG_MEDIA_TUNER_MT2266=m +CONFIG_MEDIA_TUNER_MT2131=m +CONFIG_MEDIA_TUNER_QT1010=m +CONFIG_MEDIA_TUNER_XC2028=y +CONFIG_MEDIA_TUNER_XC5000=y +CONFIG_MEDIA_TUNER_XC4000=y +CONFIG_MEDIA_TUNER_MXL5005S=m +CONFIG_MEDIA_TUNER_MXL5007T=m +CONFIG_MEDIA_TUNER_MC44S803=y +CONFIG_MEDIA_TUNER_MAX2165=m +CONFIG_MEDIA_TUNER_TDA18218=m +CONFIG_MEDIA_TUNER_FC0011=m +CONFIG_MEDIA_TUNER_FC0012=m +CONFIG_MEDIA_TUNER_FC0013=m +CONFIG_MEDIA_TUNER_TDA18212=m +CONFIG_MEDIA_TUNER_E4000=m +CONFIG_MEDIA_TUNER_FC2580=m +CONFIG_MEDIA_TUNER_TUA9001=m +CONFIG_MEDIA_TUNER_IT913X=m +CONFIG_MEDIA_TUNER_R820T=m
# # Multistandard (satellite) frontends # +CONFIG_DVB_STB0899=m +CONFIG_DVB_STB6100=m +CONFIG_DVB_STV090x=m +CONFIG_DVB_STV6110x=m
# # Multistandard (cable + terrestrial) frontends # +CONFIG_DVB_DRXK=m +CONFIG_DVB_TDA18271C2DD=m
# # DVB-S (satellite) frontends # +CONFIG_DVB_CX24110=m +CONFIG_DVB_CX24123=m +CONFIG_DVB_MT312=m +CONFIG_DVB_ZL10036=m +CONFIG_DVB_ZL10039=m +CONFIG_DVB_S5H1420=m +CONFIG_DVB_STV0288=m +CONFIG_DVB_STB6000=m +CONFIG_DVB_STV0299=m +CONFIG_DVB_STV6110=m +CONFIG_DVB_STV0900=m +CONFIG_DVB_TDA8083=m +CONFIG_DVB_TDA10086=m +CONFIG_DVB_TDA8261=m +CONFIG_DVB_VES1X93=m +CONFIG_DVB_TUNER_ITD1000=m +CONFIG_DVB_TUNER_CX24113=m +CONFIG_DVB_TDA826X=m +CONFIG_DVB_TUA6100=m +CONFIG_DVB_CX24116=m +CONFIG_DVB_M88DS3103=m +CONFIG_DVB_M88DC2800=m +CONFIG_DVB_SI21XX=m +CONFIG_DVB_TS2020=m +CONFIG_DVB_DS3000=m +CONFIG_DVB_MB86A16=m +CONFIG_DVB_TDA10071=m
# # DVB-T (terrestrial) frontends # +CONFIG_DVB_SP8870=m +CONFIG_DVB_SP887X=m +CONFIG_DVB_CX22700=m +CONFIG_DVB_CX22702=m +CONFIG_DVB_DRXD=m +CONFIG_DVB_L64781=m +CONFIG_DVB_TDA1004X=m +CONFIG_DVB_NXT6000=m +CONFIG_DVB_MT352=m +CONFIG_DVB_ZL10353=m +CONFIG_DVB_DIB3000MB=m +CONFIG_DVB_DIB3000MC=m +CONFIG_DVB_DIB7000M=m +CONFIG_DVB_DIB7000P=m +CONFIG_DVB_TDA10048=m +CONFIG_DVB_AF9013=m +CONFIG_DVB_EC100=m +CONFIG_DVB_STV0367=m +CONFIG_DVB_CXD2820R=m +CONFIG_DVB_RTL2830=m +CONFIG_DVB_RTL2832=m
# # DVB-C (cable) frontends # +CONFIG_DVB_VES1820=m +CONFIG_DVB_TDA10021=m +CONFIG_DVB_TDA10023=m +CONFIG_DVB_STV0297=m
# # ATSC (North American/Korean Terrestrial/Cable DTV) frontends # +CONFIG_DVB_NXT200X=m +CONFIG_DVB_OR51211=m +CONFIG_DVB_OR51132=m +CONFIG_DVB_BCM3510=m +CONFIG_DVB_LGDT330X=m +CONFIG_DVB_LGDT3305=m +CONFIG_DVB_LG2160=m +CONFIG_DVB_S5H1409=m +CONFIG_DVB_AU8522=m +CONFIG_DVB_AU8522_DTV=m +CONFIG_DVB_AU8522_V4L=m +CONFIG_DVB_S5H1411=m
# # ISDB-T (terrestrial) frontends # +CONFIG_DVB_S921=m +CONFIG_DVB_DIB8000=m +CONFIG_DVB_MB86A20S=m
# # Digital terrestrial only tuners/PLL # +CONFIG_DVB_PLL=m +CONFIG_DVB_TUNER_DIB0070=m +CONFIG_DVB_TUNER_DIB0090=m
# # SEC control devices for DVB-S # +CONFIG_DVB_LNBP21=m +CONFIG_DVB_LNBP22=m +CONFIG_DVB_ISL6405=m +CONFIG_DVB_ISL6421=m +CONFIG_DVB_ISL6423=m +CONFIG_DVB_A8293=m +CONFIG_DVB_LGS8GXX=m +CONFIG_DVB_ATBM8830=m +CONFIG_DVB_TDA665x=m +CONFIG_DVB_IX2505V=m +CONFIG_DVB_IT913X_FE=m +CONFIG_DVB_M88RS2000=m +CONFIG_DVB_AF9033=m
# # Tools to develop new frontends @@ -2872,119 +3446,107 @@ CONFIG_DVB_CAPTURE_DRIVERS=y CONFIG_VGA_ARB=y CONFIG_VGA_ARB_MAX_GPUS=16 CONFIG_DRM=m -CONFIG_DRM_TTM=m -CONFIG_DRM_TDFX=m -CONFIG_DRM_R128=m +CONFIG_DRM_USB=m +CONFIG_DRM_KMS_HELPER=m +# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set + +# +# I2C encoder or helper chips +# +CONFIG_DRM_I2C_CH7006=m +CONFIG_DRM_I2C_SIL164=m +CONFIG_DRM_I2C_NXP_TDA998X=m +# CONFIG_DRM_TDFX is not set +# CONFIG_DRM_R128 is not set # CONFIG_DRM_RADEON is not set -CONFIG_DRM_MGA=m -CONFIG_DRM_VIA=m -CONFIG_DRM_SAVAGE=m -CONFIG_DRM_VMWGFX=m -CONFIG_STUB_POULSBO=m -CONFIG_VGASTATE=m -CONFIG_VIDEO_OUTPUT_CONTROL=m +# CONFIG_DRM_NOUVEAU is not set +# CONFIG_DRM_MGA is not set +# CONFIG_DRM_VIA is not set +# CONFIG_DRM_SAVAGE is not set +# CONFIG_DRM_VMWGFX is not set +CONFIG_DRM_UDL=m +# CONFIG_DRM_AST is not set +# CONFIG_DRM_MGAG200 is not set +# CONFIG_DRM_CIRRUS_QEMU is not set +# CONFIG_DRM_TILCDC is not set +# CONFIG_DRM_QXL is not set +# CONFIG_VGASTATE is not set +# CONFIG_VIDEO_OUTPUT_CONTROL is not set +CONFIG_HDMI=y CONFIG_FB=y -CONFIG_FIRMWARE_EDID=y -CONFIG_FB_DDC=m +# CONFIG_FIRMWARE_EDID is not set +# CONFIG_FB_DDC is not set # CONFIG_FB_BOOT_VESA_SUPPORT is not set -CONFIG_FB_CFB_FILLRECT=y -CONFIG_FB_CFB_COPYAREA=y -CONFIG_FB_CFB_IMAGEBLIT=y +CONFIG_FB_CFB_FILLRECT=m +CONFIG_FB_CFB_COPYAREA=m +CONFIG_FB_CFB_IMAGEBLIT=m # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set CONFIG_FB_SYS_FILLRECT=m CONFIG_FB_SYS_COPYAREA=m CONFIG_FB_SYS_IMAGEBLIT=m # CONFIG_FB_FOREIGN_ENDIAN is not set CONFIG_FB_SYS_FOPS=m -# CONFIG_FB_WMT_GE_ROPS is not set CONFIG_FB_DEFERRED_IO=y -CONFIG_FB_SVGALIB=m +# CONFIG_FB_SVGALIB is not set # CONFIG_FB_MACMODES is not set -CONFIG_FB_BACKLIGHT=y +# CONFIG_FB_BACKLIGHT is not set CONFIG_FB_MODE_HELPERS=y -CONFIG_FB_TILEBLITTING=y +# CONFIG_FB_TILEBLITTING is not set
# # Frame buffer hardware drivers # -CONFIG_FB_CIRRUS=m -CONFIG_FB_PM2=m -CONFIG_FB_PM2_FIFO_DISCONNECT=y -CONFIG_FB_CYBER2000=m -CONFIG_FB_CYBER2000_DDC=y -CONFIG_FB_ASILIANT=y +# CONFIG_FB_CIRRUS is not set +# CONFIG_FB_PM2 is not set +# CONFIG_FB_CYBER2000 is not set +# CONFIG_FB_ASILIANT is not set # CONFIG_FB_IMSTT is not set -CONFIG_FB_UVESA=m +# CONFIG_FB_UVESA is not set # CONFIG_FB_S1D13XXX is not set -CONFIG_FB_NVIDIA=m -CONFIG_FB_NVIDIA_I2C=y -# CONFIG_FB_NVIDIA_DEBUG is not set -CONFIG_FB_NVIDIA_BACKLIGHT=y -CONFIG_FB_RIVA=m -CONFIG_FB_RIVA_I2C=y -# CONFIG_FB_RIVA_DEBUG is not set -CONFIG_FB_RIVA_BACKLIGHT=y -CONFIG_FB_MATROX=m -CONFIG_FB_MATROX_MILLENIUM=y -CONFIG_FB_MATROX_MYSTIQUE=y -CONFIG_FB_MATROX_G=y -CONFIG_FB_MATROX_I2C=m -CONFIG_FB_MATROX_MAVEN=m -CONFIG_FB_RADEON=m -CONFIG_FB_RADEON_I2C=y -CONFIG_FB_RADEON_BACKLIGHT=y -# CONFIG_FB_RADEON_DEBUG is not set -CONFIG_FB_ATY128=m -CONFIG_FB_ATY128_BACKLIGHT=y -CONFIG_FB_ATY=m -CONFIG_FB_ATY_CT=y -# CONFIG_FB_ATY_GENERIC_LCD is not set -CONFIG_FB_ATY_GX=y -CONFIG_FB_ATY_BACKLIGHT=y -CONFIG_FB_S3=m -CONFIG_FB_S3_DDC=y +# CONFIG_FB_NVIDIA is not set +# CONFIG_FB_RIVA is not set +# CONFIG_FB_I740 is not set +# CONFIG_FB_MATROX is not set +# CONFIG_FB_RADEON is not set +# CONFIG_FB_ATY128 is not set +# CONFIG_FB_ATY is not set +# CONFIG_FB_S3 is not set # CONFIG_FB_SAVAGE is not set -CONFIG_FB_SIS=m -CONFIG_FB_SIS_300=y -CONFIG_FB_SIS_315=y -CONFIG_FB_NEOMAGIC=m -CONFIG_FB_KYRO=m -CONFIG_FB_3DFX=m -CONFIG_FB_3DFX_ACCEL=y -CONFIG_FB_3DFX_I2C=y -CONFIG_FB_VOODOO1=m -CONFIG_FB_VT8623=m -CONFIG_FB_TRIDENT=m -CONFIG_FB_ARK=m -CONFIG_FB_PM3=m +# CONFIG_FB_SIS is not set +# CONFIG_FB_NEOMAGIC is not set +# CONFIG_FB_KYRO is not set +# CONFIG_FB_3DFX is not set +# CONFIG_FB_VOODOO1 is not set +# CONFIG_FB_VT8623 is not set +# CONFIG_FB_TRIDENT is not set +# CONFIG_FB_ARK is not set +# CONFIG_FB_PM3 is not set # CONFIG_FB_CARMINE is not set -CONFIG_FB_TMIO=m -CONFIG_FB_TMIO_ACCELL=y -CONFIG_FB_SM501=m +# CONFIG_FB_TMIO is not set +# CONFIG_FB_SM501 is not set CONFIG_FB_SMSCUFX=m # CONFIG_FB_UDL is not set +# CONFIG_FB_GOLDFISH is not set # CONFIG_FB_VIRTUAL is not set -CONFIG_FB_METRONOME=m +# CONFIG_FB_METRONOME is not set # CONFIG_FB_MB862XX is not set # CONFIG_FB_BROADSHEET is not set +# CONFIG_FB_AUO_K190X is not set +# CONFIG_FB_SIMPLE is not set +# CONFIG_EXYNOS_VIDEO is not set CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_LCD_CLASS_DEVICE=m CONFIG_LCD_PLATFORM=m CONFIG_BACKLIGHT_CLASS_DEVICE=y -CONFIG_BACKLIGHT_GENERIC=m -CONFIG_BACKLIGHT_ADP8860=m -CONFIG_BACKLIGHT_ADP8870=m -CONFIG_BACKLIGHT_88PM860X=m -CONFIG_BACKLIGHT_PCF50633=m - -# -# Display device support -# -CONFIG_DISPLAY_SUPPORT=m - -# -# Display hardware drivers -# +# CONFIG_BACKLIGHT_GENERIC is not set +# CONFIG_BACKLIGHT_LM3533 is not set +# CONFIG_BACKLIGHT_PWM is not set +# CONFIG_BACKLIGHT_ADP8860 is not set +# CONFIG_BACKLIGHT_ADP8870 is not set +# CONFIG_BACKLIGHT_88PM860X is not set +# CONFIG_BACKLIGHT_LM3630 is not set +# CONFIG_BACKLIGHT_LM3639 is not set +# CONFIG_BACKLIGHT_LP855X is not set
# # Console display driver support @@ -2997,9 +3559,10 @@ CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y CONFIG_LOGO=y -CONFIG_LOGO_LINUX_MONO=y -CONFIG_LOGO_LINUX_VGA16=y +# CONFIG_LOGO_LINUX_MONO is not set +# CONFIG_LOGO_LINUX_VGA16 is not set CONFIG_LOGO_LINUX_CLUT224=y +CONFIG_FB_SSD1307=m CONFIG_SOUND=m CONFIG_SOUND_OSS_CORE=y CONFIG_SOUND_OSS_CORE_PRECLAIM=y @@ -3008,6 +3571,7 @@ CONFIG_SND_TIMER=m CONFIG_SND_PCM=m CONFIG_SND_HWDEP=m CONFIG_SND_RAWMIDI=m +CONFIG_SND_COMPRESS_OFFLOAD=m CONFIG_SND_JACK=y CONFIG_SND_SEQUENCER=m CONFIG_SND_SEQ_DUMMY=m @@ -3021,9 +3585,12 @@ CONFIG_SND_SEQ_HRTIMER_DEFAULT=y CONFIG_SND_DYNAMIC_MINORS=y # CONFIG_SND_SUPPORT_OLD_API is not set CONFIG_SND_VERBOSE_PROCFS=y -# CONFIG_SND_VERBOSE_PRINTK is not set -# CONFIG_SND_DEBUG is not set +CONFIG_SND_VERBOSE_PRINTK=y +CONFIG_SND_DEBUG=y +# CONFIG_SND_DEBUG_VERBOSE is not set +CONFIG_SND_PCM_XRUN_DEBUG=y CONFIG_SND_VMASTER=y +CONFIG_SND_KCTL_JACK=y CONFIG_SND_RAWMIDI_SEQ=m CONFIG_SND_OPL3_LIB_SEQ=m # CONFIG_SND_OPL4_LIB_SEQ is not set @@ -3043,12 +3610,12 @@ CONFIG_SND_SERIAL_U16550=m CONFIG_SND_MPU401=m CONFIG_SND_PORTMAN2X4=m CONFIG_SND_AC97_POWER_SAVE=y -CONFIG_SND_AC97_POWER_SAVE_DEFAULT=60 +CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0 CONFIG_SND_TEA575X=m CONFIG_SND_PCI=y CONFIG_SND_AD1889=m CONFIG_SND_ALS300=m -# CONFIG_SND_ALI5451 is not set +CONFIG_SND_ALI5451=m CONFIG_SND_ATIIXP=m CONFIG_SND_ATIIXP_MODEM=m CONFIG_SND_AU8810=m @@ -3096,11 +3663,10 @@ CONFIG_SND_HDA_PREALLOC_SIZE=64 CONFIG_SND_HDA_HWDEP=y CONFIG_SND_HDA_RECONFIG=y CONFIG_SND_HDA_INPUT_BEEP=y -CONFIG_SND_HDA_INPUT_BEEP_MODE=2 +CONFIG_SND_HDA_INPUT_BEEP_MODE=1 CONFIG_SND_HDA_INPUT_JACK=y -CONFIG_SND_HDA_PATCH_LOADER=y +# CONFIG_SND_HDA_PATCH_LOADER is not set CONFIG_SND_HDA_CODEC_REALTEK=y -CONFIG_SND_HDA_ENABLE_REALTEK_QUIRKS=y CONFIG_SND_HDA_CODEC_ANALOG=y CONFIG_SND_HDA_CODEC_SIGMATEL=y CONFIG_SND_HDA_CODEC_VIA=y @@ -3109,11 +3675,11 @@ CONFIG_SND_HDA_CODEC_CIRRUS=y CONFIG_SND_HDA_CODEC_CONEXANT=y CONFIG_SND_HDA_CODEC_CA0110=y CONFIG_SND_HDA_CODEC_CA0132=y +# CONFIG_SND_HDA_CODEC_CA0132_DSP is not set CONFIG_SND_HDA_CODEC_CMEDIA=y CONFIG_SND_HDA_CODEC_SI3054=y CONFIG_SND_HDA_GENERIC=y -CONFIG_SND_HDA_POWER_SAVE=y -CONFIG_SND_HDA_POWER_SAVE_DEFAULT=60 +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 CONFIG_SND_HDSP=m CONFIG_SND_HDSPM=m CONFIG_SND_ICE1712=m @@ -3149,12 +3715,11 @@ CONFIG_SND_USB_6FIRE=m CONFIG_SND_FIREWIRE=y CONFIG_SND_FIREWIRE_LIB=m CONFIG_SND_FIREWIRE_SPEAKERS=m -CONFIG_SND_ISIGHT=m -CONFIG_SND_PCMCIA=y -CONFIG_SND_VXPOCKET=m -CONFIG_SND_PDAUDIOCF=m +# CONFIG_SND_ISIGHT is not set +# CONFIG_SND_SCS1X is not set CONFIG_SND_SOC=m -CONFIG_SND_SOC_CACHE_LZO=y +CONFIG_SND_ATMEL_SOC=m +CONFIG_SND_DESIGNWARE_I2S=m CONFIG_SND_KIRKWOOD_SOC=m CONFIG_SND_KIRKWOOD_SOC_I2S=m CONFIG_SND_KIRKWOOD_SOC_OPENRD=m @@ -3163,98 +3728,105 @@ CONFIG_SND_SOC_I2C_AND_SPI=m # CONFIG_SND_SOC_ALL_CODECS is not set CONFIG_SND_SOC_ALC5623=m CONFIG_SND_SOC_CS42L51=m +CONFIG_SND_SIMPLE_CARD=m # CONFIG_SOUND_PRIME is not set CONFIG_AC97_BUS=m -CONFIG_HID_SUPPORT=y -CONFIG_HID=y -# CONFIG_HIDRAW is not set
# -# USB Input Devices +# HID support # -CONFIG_USB_HID=m -# CONFIG_HID_PID is not set -CONFIG_USB_HIDDEV=y +CONFIG_HID=y +# CONFIG_HID_BATTERY_STRENGTH is not set +CONFIG_HIDRAW=y +# CONFIG_UHID is not set +CONFIG_HID_GENERIC=y
# # Special HID drivers # -CONFIG_HID_A4TECH=m -CONFIG_HID_ACRUX=m -# CONFIG_HID_ACRUX_FF is not set -CONFIG_HID_APPLE=m -CONFIG_HID_BELKIN=m -CONFIG_HID_CHERRY=m -CONFIG_HID_CHICONY=m -CONFIG_HID_PRODIKEYS=m -CONFIG_HID_CYPRESS=m -CONFIG_HID_DRAGONRISE=m -# CONFIG_DRAGONRISE_FF is not set +CONFIG_HID_A4TECH=y +# CONFIG_HID_ACRUX is not set +CONFIG_HID_APPLE=y +# CONFIG_HID_APPLEIR is not set +CONFIG_HID_AUREAL=m +CONFIG_HID_BELKIN=y +CONFIG_HID_CHERRY=y +CONFIG_HID_CHICONY=y +# CONFIG_HID_PRODIKEYS is not set +CONFIG_HID_CYPRESS=y +# CONFIG_HID_DRAGONRISE is not set # CONFIG_HID_EMS_FF is not set -CONFIG_HID_ELECOM=m -CONFIG_HID_EZKEY=m -CONFIG_HID_HOLTEK=m -# CONFIG_HOLTEK_FF is not set +# CONFIG_HID_ELECOM is not set +CONFIG_HID_EZKEY=y +# CONFIG_HID_HOLTEK is not set CONFIG_HID_KEYTOUCH=m -CONFIG_HID_KYE=m -CONFIG_HID_UCLOGIC=m -CONFIG_HID_WALTOP=m +CONFIG_HID_KYE=y +# CONFIG_HID_UCLOGIC is not set +# CONFIG_HID_WALTOP is not set CONFIG_HID_GYRATION=m +# CONFIG_HID_ICADE is not set CONFIG_HID_TWINHAN=m -CONFIG_HID_KENSINGTON=m +CONFIG_HID_KENSINGTON=y CONFIG_HID_LCPOWER=m -CONFIG_HID_LOGITECH=m +CONFIG_HID_LENOVO_TPKBD=m +CONFIG_HID_LOGITECH=y CONFIG_HID_LOGITECH_DJ=m # CONFIG_LOGITECH_FF is not set # CONFIG_LOGIRUMBLEPAD2_FF is not set # CONFIG_LOGIG940_FF is not set # CONFIG_LOGIWHEELS_FF is not set -CONFIG_HID_MAGICMOUSE=m -CONFIG_HID_MICROSOFT=m -CONFIG_HID_MONTEREY=m -CONFIG_HID_MULTITOUCH=m -CONFIG_HID_NTRIG=m +# CONFIG_HID_MAGICMOUSE is not set +CONFIG_HID_MICROSOFT=y +CONFIG_HID_MONTEREY=y +# CONFIG_HID_MULTITOUCH is not set +# CONFIG_HID_NTRIG is not set CONFIG_HID_ORTEK=m -CONFIG_HID_PANTHERLORD=m -# CONFIG_PANTHERLORD_FF is not set +# CONFIG_HID_PANTHERLORD is not set CONFIG_HID_PETALYNX=m CONFIG_HID_PICOLCD=m CONFIG_HID_PICOLCD_FB=y CONFIG_HID_PICOLCD_BACKLIGHT=y CONFIG_HID_PICOLCD_LCD=y CONFIG_HID_PICOLCD_LEDS=y -CONFIG_HID_PRIMAX=m -CONFIG_HID_QUANTA=m +CONFIG_HID_PICOLCD_CIR=y +# CONFIG_HID_PRIMAX is not set +# CONFIG_HID_PS3REMOTE is not set CONFIG_HID_ROCCAT=m -CONFIG_HID_ROCCAT_COMMON=m -CONFIG_HID_ROCCAT_ARVO=m -CONFIG_HID_ROCCAT_KONE=m -CONFIG_HID_ROCCAT_KONEPLUS=m -CONFIG_HID_ROCCAT_KOVAPLUS=m -CONFIG_HID_ROCCAT_PYRA=m +CONFIG_HID_SAITEK=m CONFIG_HID_SAMSUNG=m -CONFIG_HID_SONY=m +# CONFIG_HID_SONY is not set CONFIG_HID_SPEEDLINK=m +# CONFIG_HID_STEELSERIES is not set CONFIG_HID_SUNPLUS=m -CONFIG_HID_GREENASIA=m -# CONFIG_GREENASIA_FF is not set -CONFIG_HID_SMARTJOYPLUS=m -# CONFIG_SMARTJOYPLUS_FF is not set +# CONFIG_HID_GREENASIA is not set +# CONFIG_HID_SMARTJOYPLUS is not set +CONFIG_HID_TIVO=m CONFIG_HID_TOPSEED=m -CONFIG_HID_THRUSTMASTER=m -# CONFIG_THRUSTMASTER_FF is not set -CONFIG_HID_WACOM=m -# CONFIG_HID_WACOM_POWER_SUPPLY is not set -CONFIG_HID_WIIMOTE=m -CONFIG_HID_ZEROPLUS=m -# CONFIG_ZEROPLUS_FF is not set +CONFIG_HID_THINGM=m +# CONFIG_HID_THRUSTMASTER is not set +# CONFIG_HID_WACOM is not set +# CONFIG_HID_WIIMOTE is not set +# CONFIG_HID_ZEROPLUS is not set CONFIG_HID_ZYDACRON=m -CONFIG_USB_SUPPORT=y -CONFIG_USB_COMMON=y -CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_HID_SENSOR_HUB=m + +# +# USB HID support +# +CONFIG_USB_HID=y +CONFIG_HID_PID=y +CONFIG_USB_HIDDEV=y + +# +# I2C HID support +# +CONFIG_I2C_HID=m CONFIG_USB_ARCH_HAS_OHCI=y CONFIG_USB_ARCH_HAS_EHCI=y CONFIG_USB_ARCH_HAS_XHCI=y +CONFIG_USB_SUPPORT=y +CONFIG_USB_COMMON=y +CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB=y # CONFIG_USB_DEBUG is not set CONFIG_USB_ANNOUNCE_NEW_DEVICES=y @@ -3262,14 +3834,12 @@ CONFIG_USB_ANNOUNCE_NEW_DEVICES=y # # Miscellaneous USB options # -CONFIG_USB_DEVICEFS=y -CONFIG_USB_DEVICE_CLASS=y -CONFIG_USB_DYNAMIC_MINORS=y -CONFIG_USB_SUSPEND=y +CONFIG_USB_DEFAULT_PERSIST=y +# CONFIG_USB_DYNAMIC_MINORS is not set # CONFIG_USB_OTG is not set -CONFIG_USB_DWC3=m -# CONFIG_USB_DWC3_DEBUG is not set -# CONFIG_USB_MON is not set +# CONFIG_USB_OTG_WHITELIST is not set +# CONFIG_USB_OTG_BLACKLIST_HUB is not set +CONFIG_USB_MON=m CONFIG_USB_WUSB=m CONFIG_USB_WUSB_CBAF=m # CONFIG_USB_WUSB_CBAF_DEBUG is not set @@ -3278,27 +3848,32 @@ CONFIG_USB_WUSB_CBAF=m # USB Host Controller Drivers # # CONFIG_USB_C67X00_HCD is not set -CONFIG_USB_XHCI_HCD=m +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_XHCI_PLATFORM=m # CONFIG_USB_XHCI_HCD_DEBUGGING is not set CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_ROOT_HUB_TT=y CONFIG_USB_EHCI_TT_NEWSCHED=y -CONFIG_USB_OXU210HP_HCD=m -CONFIG_USB_ISP116X_HCD=m +CONFIG_USB_EHCI_PCI=y +CONFIG_USB_EHCI_HCD_ORION=y +CONFIG_USB_EHCI_HCD_PLATFORM=y +# CONFIG_USB_OXU210HP_HCD is not set +# CONFIG_USB_ISP116X_HCD is not set # CONFIG_USB_ISP1760_HCD is not set CONFIG_USB_ISP1362_HCD=m CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_HCD_PLATFORM=y # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set CONFIG_USB_OHCI_LITTLE_ENDIAN=y CONFIG_USB_UHCI_HCD=y -CONFIG_USB_U132_HCD=m +# CONFIG_USB_U132_HCD is not set CONFIG_USB_SL811_HCD=m -# CONFIG_USB_SL811_HCD_ISO is not set -# CONFIG_USB_SL811_CS is not set -CONFIG_USB_R8A66597_HCD=m +CONFIG_USB_SL811_HCD_ISO=y +# CONFIG_USB_R8A66597_HCD is not set CONFIG_USB_WHCI_HCD=m CONFIG_USB_HWA_HCD=m +CONFIG_USB_HCD_SSB=m
# # USB Device Class drivers @@ -3315,7 +3890,7 @@ CONFIG_USB_TMC=m # # also be needed; see USB_STORAGE Help for more info # -CONFIG_USB_STORAGE=m +CONFIG_USB_STORAGE=y # CONFIG_USB_STORAGE_DEBUG is not set CONFIG_USB_STORAGE_REALTEK=m CONFIG_REALTEK_AUTOPM=y @@ -3331,21 +3906,24 @@ CONFIG_USB_STORAGE_ONETOUCH=m CONFIG_USB_STORAGE_KARMA=m CONFIG_USB_STORAGE_CYPRESS_ATACB=m CONFIG_USB_STORAGE_ENE_UB6250=m -CONFIG_USB_UAS=m -# CONFIG_USB_LIBUSUAL is not set
# # USB Imaging devices # -# CONFIG_USB_MDC800 is not set -# CONFIG_USB_MICROTEK is not set +CONFIG_USB_MDC800=m +CONFIG_USB_MICROTEK=m +CONFIG_USB_DWC3=m +CONFIG_USB_DWC3_HOST=y +# CONFIG_USB_DWC3_DEBUG is not set +CONFIG_USB_CHIPIDEA=m +# CONFIG_USB_CHIPIDEA_HOST is not set +# CONFIG_USB_CHIPIDEA_DEBUG is not set
# # USB port drivers # CONFIG_USB_USS720=m CONFIG_USB_SERIAL=m -CONFIG_USB_EZUSB=y CONFIG_USB_SERIAL_GENERIC=y CONFIG_USB_SERIAL_AIRCABLE=m CONFIG_USB_SERIAL_ARK3116=m @@ -3355,7 +3933,7 @@ CONFIG_USB_SERIAL_WHITEHEAT=m CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m CONFIG_USB_SERIAL_CP210X=m CONFIG_USB_SERIAL_CYPRESS_M8=m -CONFIG_USB_SERIAL_EMPEG=m +# CONFIG_USB_SERIAL_EMPEG is not set CONFIG_USB_SERIAL_FTDI_SIO=m CONFIG_USB_SERIAL_FUNSOFT=m CONFIG_USB_SERIAL_VISOR=m @@ -3363,16 +3941,18 @@ CONFIG_USB_SERIAL_IPAQ=m CONFIG_USB_SERIAL_IR=m CONFIG_USB_SERIAL_EDGEPORT=m CONFIG_USB_SERIAL_EDGEPORT_TI=m -CONFIG_USB_SERIAL_GARMIN=m +CONFIG_USB_SERIAL_F81232=m +# CONFIG_USB_SERIAL_GARMIN is not set CONFIG_USB_SERIAL_IPW=m CONFIG_USB_SERIAL_IUU=m -# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set +CONFIG_USB_SERIAL_KEYSPAN_PDA=m # CONFIG_USB_SERIAL_KEYSPAN is not set -# CONFIG_USB_SERIAL_KLSI is not set +CONFIG_USB_SERIAL_KLSI=m # CONFIG_USB_SERIAL_KOBIL_SCT is not set CONFIG_USB_SERIAL_MCT_U232=m +# CONFIG_USB_SERIAL_METRO is not set CONFIG_USB_SERIAL_MOS7720=m -# CONFIG_USB_SERIAL_MOS7715_PARPORT is not set +CONFIG_USB_SERIAL_MOS7715_PARPORT=y CONFIG_USB_SERIAL_MOS7840=m CONFIG_USB_SERIAL_MOTOROLA=m # CONFIG_USB_SERIAL_NAVMAN is not set @@ -3381,22 +3961,25 @@ CONFIG_USB_SERIAL_OTI6858=m CONFIG_USB_SERIAL_QCAUX=m CONFIG_USB_SERIAL_QUALCOMM=m CONFIG_USB_SERIAL_SPCP8X5=m -CONFIG_USB_SERIAL_HP4X=m -CONFIG_USB_SERIAL_SAFE=m -# CONFIG_USB_SERIAL_SAFE_PADDED is not set +# CONFIG_USB_SERIAL_HP4X is not set +# CONFIG_USB_SERIAL_SAFE is not set CONFIG_USB_SERIAL_SIEMENS_MPI=m CONFIG_USB_SERIAL_SIERRAWIRELESS=m -CONFIG_USB_SERIAL_SYMBOL=m -CONFIG_USB_SERIAL_TI=m +# CONFIG_USB_SERIAL_SYMBOL is not set +# CONFIG_USB_SERIAL_TI is not set # CONFIG_USB_SERIAL_CYBERJACK is not set CONFIG_USB_SERIAL_XIRCOM=m CONFIG_USB_SERIAL_WWAN=m CONFIG_USB_SERIAL_OPTION=m # CONFIG_USB_SERIAL_OMNINET is not set -CONFIG_USB_SERIAL_OPTICON=m -CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m -CONFIG_USB_SERIAL_ZIO=m +# CONFIG_USB_SERIAL_OPTICON is not set +# CONFIG_USB_SERIAL_VIVOPAY_SERIAL is not set +# CONFIG_USB_SERIAL_XSENS_MT is not set +# CONFIG_USB_SERIAL_ZIO is not set +# CONFIG_USB_SERIAL_WISHBONE is not set +CONFIG_USB_SERIAL_ZTE=m CONFIG_USB_SERIAL_SSU100=m +CONFIG_USB_SERIAL_QT2=m # CONFIG_USB_SERIAL_DEBUG is not set
# @@ -3404,14 +3987,14 @@ CONFIG_USB_SERIAL_SSU100=m # CONFIG_USB_EMI62=m CONFIG_USB_EMI26=m -# CONFIG_USB_ADUTUX is not set +CONFIG_USB_ADUTUX=m CONFIG_USB_SEVSEG=m # CONFIG_USB_RIO500 is not set # CONFIG_USB_LEGOTOWER is not set CONFIG_USB_LCD=m CONFIG_USB_LED=m -CONFIG_USB_CYPRESS_CY7C63=m -CONFIG_USB_CYTHERM=m +# CONFIG_USB_CYPRESS_CY7C63 is not set +# CONFIG_USB_CYTHERM is not set # CONFIG_USB_IDMOUSE is not set CONFIG_USB_FTDI_ELAN=m # CONFIG_USB_APPLEDISPLAY is not set @@ -3421,27 +4004,22 @@ CONFIG_USB_SISUSBVGA_CON=y # CONFIG_USB_TRANCEVIBRATOR is not set CONFIG_USB_IOWARRIOR=m # CONFIG_USB_TEST is not set -CONFIG_USB_ISIGHTFW=m +# CONFIG_USB_ISIGHTFW is not set CONFIG_USB_YUREX=m +CONFIG_USB_EZUSB_FX2=m +CONFIG_USB_HSIC_USB3503=m CONFIG_USB_ATM=m CONFIG_USB_SPEEDTOUCH=m CONFIG_USB_CXACRU=m CONFIG_USB_UEAGLEATM=m CONFIG_USB_XUSBATM=m +# CONFIG_USB_PHY is not set # CONFIG_USB_GADGET is not set - -# -# OTG and related infrastructure -# -CONFIG_USB_OTG_UTILS=y -CONFIG_USB_GPIO_VBUS=m -# CONFIG_USB_ULPI is not set -CONFIG_NOP_USB_XCEIV=m CONFIG_UWB=m CONFIG_UWB_HWA=m CONFIG_UWB_WHCI=m CONFIG_UWB_I1480U=m -CONFIG_MMC=m +CONFIG_MMC=y # CONFIG_MMC_DEBUG is not set # CONFIG_MMC_UNSAFE_RESUME is not set # CONFIG_MMC_CLKGATE is not set @@ -3449,28 +4027,33 @@ CONFIG_MMC=m # # MMC/SD/SDIO Card Drivers # -CONFIG_MMC_BLOCK=m +CONFIG_MMC_BLOCK=y CONFIG_MMC_BLOCK_MINORS=8 CONFIG_MMC_BLOCK_BOUNCE=y -CONFIG_SDIO_UART=m -CONFIG_MMC_TEST=m +# CONFIG_SDIO_UART is not set +# CONFIG_MMC_TEST is not set
# # MMC/SD/SDIO Host Controller Drivers # CONFIG_MMC_SDHCI=m CONFIG_MMC_SDHCI_PCI=m -# CONFIG_MMC_RICOH_MMC is not set +CONFIG_MMC_RICOH_MMC=y CONFIG_MMC_SDHCI_PLTFM=m +CONFIG_MMC_SDHCI_PXAV3=m +CONFIG_MMC_SDHCI_PXAV2=m CONFIG_MMC_TIFM_SD=m -CONFIG_MMC_MVSDIO=m -CONFIG_MMC_SDRICOH_CS=m +CONFIG_MMC_MVSDIO=y CONFIG_MMC_CB710=m CONFIG_MMC_VIA_SDMMC=m CONFIG_MMC_DW=m # CONFIG_MMC_DW_IDMAC is not set +CONFIG_MMC_DW_PLTFM=m +CONFIG_MMC_DW_EXYNOS=m +CONFIG_MMC_DW_PCI=m CONFIG_MMC_VUB300=m CONFIG_MMC_USHC=m +CONFIG_MMC_REALTEK_PCI=m CONFIG_MEMSTICK=m # CONFIG_MEMSTICK_DEBUG is not set
@@ -3486,46 +4069,63 @@ CONFIG_MSPRO_BLOCK=m CONFIG_MEMSTICK_TIFM_MS=m CONFIG_MEMSTICK_JMICRON_38X=m CONFIG_MEMSTICK_R592=m +CONFIG_MEMSTICK_REALTEK_PCI=m CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=y
# # LED drivers # -CONFIG_LEDS_88PM860X=m +CONFIG_LEDS_88PM860X=y CONFIG_LEDS_LM3530=m -CONFIG_LEDS_PCA9532=m -CONFIG_LEDS_PCA9532_GPIO=y -CONFIG_LEDS_GPIO=m +CONFIG_LEDS_LM3533=m +CONFIG_LEDS_LM3642=m +# CONFIG_LEDS_PCA9532 is not set +CONFIG_LEDS_GPIO=y CONFIG_LEDS_LP3944=m +CONFIG_LEDS_LP55XX_COMMON=m CONFIG_LEDS_LP5521=m CONFIG_LEDS_LP5523=m -CONFIG_LEDS_PCA955X=m +CONFIG_LEDS_LP5562=m +# CONFIG_LEDS_PCA955X is not set +CONFIG_LEDS_PCA9633=m +CONFIG_LEDS_PWM=m CONFIG_LEDS_REGULATOR=m -CONFIG_LEDS_BD2802=m +# CONFIG_LEDS_BD2802 is not set CONFIG_LEDS_LT3593=m -CONFIG_LEDS_NS2=y -CONFIG_LEDS_NETXBIG=y -CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_NS2=m +CONFIG_LEDS_NETXBIG=m +# CONFIG_LEDS_RENESAS_TPU is not set +CONFIG_LEDS_TCA6507=m +CONFIG_LEDS_LM355x=m +CONFIG_LEDS_OT200=m +CONFIG_LEDS_BLINKM=m
# # LED Triggers # +CONFIG_LEDS_TRIGGERS=y CONFIG_LEDS_TRIGGER_TIMER=m +CONFIG_LEDS_TRIGGER_ONESHOT=m CONFIG_LEDS_TRIGGER_HEARTBEAT=m CONFIG_LEDS_TRIGGER_BACKLIGHT=m +CONFIG_LEDS_TRIGGER_CPU=y CONFIG_LEDS_TRIGGER_GPIO=m CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
# # iptables trigger is under Netfilter config (LED target) # +CONFIG_LEDS_TRIGGER_TRANSIENT=m +CONFIG_LEDS_TRIGGER_CAMERA=m CONFIG_LEDS_TRIGGER_NETDEV=m # CONFIG_ACCESSIBILITY is not set # CONFIG_INFINIBAND is not set +# CONFIG_EDAC is not set CONFIG_RTC_LIB=y CONFIG_RTC_CLASS=y CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_SYSTOHC=y CONFIG_RTC_HCTOSYS_DEVICE="rtc0" # CONFIG_RTC_DEBUG is not set
@@ -3541,7 +4141,8 @@ CONFIG_RTC_INTF_DEV=y # # I2C RTC drivers # -CONFIG_RTC_DRV_88PM860X=y +CONFIG_RTC_DRV_88PM860X=m +CONFIG_RTC_DRV_88PM80X=m CONFIG_RTC_DRV_DS1307=m CONFIG_RTC_DRV_DS1374=m CONFIG_RTC_DRV_DS1672=m @@ -3551,12 +4152,13 @@ CONFIG_RTC_DRV_RS5C372=m CONFIG_RTC_DRV_ISL1208=m CONFIG_RTC_DRV_ISL12022=m CONFIG_RTC_DRV_X1205=m +CONFIG_RTC_DRV_PCF8523=m CONFIG_RTC_DRV_PCF8563=m CONFIG_RTC_DRV_PCF8583=m CONFIG_RTC_DRV_M41T80=m CONFIG_RTC_DRV_M41T80_WDT=y CONFIG_RTC_DRV_BQ32K=m -CONFIG_RTC_DRV_S35390A=m +# CONFIG_RTC_DRV_S35390A is not set CONFIG_RTC_DRV_FM3130=m CONFIG_RTC_DRV_RX8581=m CONFIG_RTC_DRV_RX8025=m @@ -3570,25 +4172,31 @@ CONFIG_RTC_DRV_RV3029C2=m # # Platform RTC drivers # -CONFIG_RTC_DRV_CMOS=m +CONFIG_RTC_DRV_CMOS=y CONFIG_RTC_DRV_DS1286=m CONFIG_RTC_DRV_DS1511=m CONFIG_RTC_DRV_DS1553=m CONFIG_RTC_DRV_DS1742=m CONFIG_RTC_DRV_STK17TA8=m -CONFIG_RTC_DRV_M48T86=m +# CONFIG_RTC_DRV_M48T86 is not set CONFIG_RTC_DRV_M48T35=m CONFIG_RTC_DRV_M48T59=m CONFIG_RTC_DRV_MSM6242=m CONFIG_RTC_DRV_BQ4802=m CONFIG_RTC_DRV_RP5C01=m CONFIG_RTC_DRV_V3020=m -CONFIG_RTC_DRV_PCF50633=m +CONFIG_RTC_DRV_DS2404=m
# # on-CPU RTC drivers # CONFIG_RTC_DRV_MV=y +CONFIG_RTC_DRV_SNVS=m + +# +# HID Sensor RTC drivers +# +CONFIG_RTC_DRV_HID_SENSOR_TIME=m CONFIG_DMADEVICES=y # CONFIG_DMADEVICES_DEBUG is not set
@@ -3596,32 +4204,38 @@ CONFIG_DMADEVICES=y # DMA Devices # CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH=y +# CONFIG_DW_DMAC is not set CONFIG_MV_XOR=y -# CONFIG_TIMB_DMA is not set +CONFIG_TIMB_DMA=m CONFIG_DMA_ENGINE=y +CONFIG_DMA_OF=y
# # DMA Clients # -# CONFIG_NET_DMA is not set CONFIG_ASYNC_TX_DMA=y -CONFIG_DMATEST=m +# CONFIG_DMATEST is not set # CONFIG_AUXDISPLAY is not set CONFIG_UIO=m -CONFIG_UIO_CIF=m -CONFIG_UIO_PDRV=m -CONFIG_UIO_PDRV_GENIRQ=m +# CONFIG_UIO_CIF is not set +# CONFIG_UIO_PDRV is not set +# CONFIG_UIO_PDRV_GENIRQ is not set +# CONFIG_UIO_DMEM_GENIRQ is not set CONFIG_UIO_AEC=m CONFIG_UIO_SERCOS3=m CONFIG_UIO_PCI_GENERIC=m -CONFIG_UIO_NETX=m +# CONFIG_UIO_NETX is not set +CONFIG_VIRT_DRIVERS=y
# # Virtio drivers # # CONFIG_VIRTIO_PCI is not set -# CONFIG_VIRTIO_BALLOON is not set # CONFIG_VIRTIO_MMIO is not set + +# +# Microsoft Hyper-V guest support +# CONFIG_STAGING=y CONFIG_ET131X=m CONFIG_USBIP_CORE=m @@ -3631,35 +4245,96 @@ CONFIG_USBIP_HOST=m # CONFIG_W35UND is not set # CONFIG_PRISM2_USB is not set # CONFIG_ECHO is not set +# CONFIG_COMEDI is not set # CONFIG_ASUS_OLED is not set # CONFIG_PANEL is not set # CONFIG_R8187SE is not set # CONFIG_RTL8192U is not set -# CONFIG_RTL8192E is not set +# CONFIG_RTLLIB is not set # CONFIG_R8712U is not set -# CONFIG_RTS_PSTOR is not set -# CONFIG_RTS5139 is not set +CONFIG_RTS5139=m +# CONFIG_RTS5139_DEBUG is not set # CONFIG_TRANZPORT is not set -# CONFIG_POHMELFS is not set -CONFIG_IDE_PHISON=m +# CONFIG_IDE_PHISON is not set # CONFIG_LINE6_USB is not set -# CONFIG_DRM_NOUVEAU is not set # CONFIG_USB_SERIAL_QUATECH2 is not set -# CONFIG_USB_SERIAL_QUATECH_USB2 is not set # CONFIG_VT6655 is not set # CONFIG_VT6656 is not set -# CONFIG_VME_BUS is not set # CONFIG_DX_SEP is not set -# CONFIG_IIO is not set -# CONFIG_XVMALLOC is not set -# CONFIG_ZRAM is not set -# CONFIG_WLAGS49_H2 is not set -# CONFIG_WLAGS49_H25 is not set + +# +# IIO staging drivers +# + +# +# Accelerometers +# + +# +# Analog to digital converters +# +# CONFIG_AD7291 is not set +# CONFIG_AD7606 is not set +# CONFIG_AD799X is not set + +# +# Analog digital bi-direction converters +# +# CONFIG_ADT7316 is not set + +# +# Capacitance to digital converters +# +# CONFIG_AD7150 is not set +# CONFIG_AD7152 is not set +# CONFIG_AD7746 is not set + +# +# Direct Digital Synthesis +# + +# +# Digital gyroscope sensors +# + +# +# Network Analyzer, Impedance Converters +# +# CONFIG_AD5933 is not set + +# +# Light sensors +# +# CONFIG_SENSORS_ISL29018 is not set +# CONFIG_SENSORS_ISL29028 is not set +# CONFIG_TSL2583 is not set +# CONFIG_TSL2x7x is not set + +# +# Magnetometer sensors +# +# CONFIG_SENSORS_HMC5843 is not set + +# +# Active energy metering IC +# +# CONFIG_ADE7854 is not set + +# +# Resolver to digital converters +# + +# +# Triggers - standalone +# +# CONFIG_IIO_PERIODIC_RTC_TRIGGER is not set +# CONFIG_IIO_GPIO_TRIGGER is not set +# CONFIG_IIO_SYSFS_TRIGGER is not set +# CONFIG_IIO_SIMPLE_DUMMY is not set +# CONFIG_ZSMALLOC is not set # CONFIG_FB_SM7XX is not set # CONFIG_CRYSTALHD is not set -# CONFIG_CXT1E1 is not set # CONFIG_FB_XGI is not set -# CONFIG_SBE_2T3E3 is not set # CONFIG_USB_ENESTORAGE is not set # CONFIG_BCM_WIMAX is not set # CONFIG_FT1000 is not set @@ -3673,12 +4348,134 @@ CONFIG_IDE_PHISON=m # CONFIG_STAGING_MEDIA is not set
# +# Android +# +# CONFIG_ANDROID is not set +# CONFIG_USB_WPAN_HCD is not set +# CONFIG_WIMAX_GDM72XX is not set +# CONFIG_CSR_WIFI is not set +CONFIG_NET_VENDOR_SILICOM=y +CONFIG_SBYPASS=m +CONFIG_BPCTL=m +CONFIG_CED1401=m +# CONFIG_DGRP is not set +CONFIG_FIREWIRE_SERIAL=m +CONFIG_CLKDEV_LOOKUP=y +CONFIG_HAVE_CLK_PREPARE=y +CONFIG_COMMON_CLK=y + +# +# Common Clock Framework +# +# CONFIG_COMMON_CLK_DEBUG is not set +CONFIG_COMMON_CLK_SI5351=m +CONFIG_MVEBU_CLK_CORE=y +CONFIG_MVEBU_CLK_GATING=y + +# # Hardware Spinlock drivers # CONFIG_CLKSRC_MMIO=y +CONFIG_MAILBOX=y CONFIG_IOMMU_SUPPORT=y -# CONFIG_VIRT_DRIVERS is not set +CONFIG_OF_IOMMU=y + +# +# Remoteproc drivers +# +# CONFIG_STE_MODEM_RPROC is not set + +# +# Rpmsg drivers +# # CONFIG_PM_DEVFREQ is not set +# CONFIG_EXTCON is not set +CONFIG_MEMORY=y +CONFIG_IIO=m +CONFIG_IIO_BUFFER=y +CONFIG_IIO_BUFFER_CB=y +CONFIG_IIO_KFIFO_BUF=m +CONFIG_IIO_TRIGGER=y +CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 + +# +# Accelerometers +# +# CONFIG_HID_SENSOR_ACCEL_3D is not set +# CONFIG_IIO_ST_ACCEL_3AXIS is not set + +# +# Analog to digital converters +# +# CONFIG_EXYNOS_ADC is not set +# CONFIG_MAX1363 is not set +# CONFIG_TI_ADC081C is not set +# CONFIG_VIPERBOARD_ADC is not set + +# +# Amplifiers +# + +# +# Hid Sensor IIO Common +# +CONFIG_HID_SENSOR_IIO_COMMON=m +CONFIG_HID_SENSOR_IIO_TRIGGER=m +# CONFIG_HID_SENSOR_ENUM_BASE_QUIRKS is not set + +# +# Digital to analog converters +# +# CONFIG_AD5064 is not set +# CONFIG_AD5380 is not set +# CONFIG_AD5446 is not set +# CONFIG_MAX517 is not set +# CONFIG_MCP4725 is not set + +# +# Frequency Synthesizers DDS/PLL +# + +# +# Clock Generator/Distribution +# + +# +# Phase-Locked Loop (PLL) frequency synthesizers +# + +# +# Digital gyroscope sensors +# +# CONFIG_HID_SENSOR_GYRO_3D is not set +# CONFIG_IIO_ST_GYRO_3AXIS is not set +# CONFIG_ITG3200 is not set + +# +# Inertial measurement units +# +# CONFIG_INV_MPU6050_IIO is not set + +# +# Light sensors +# +# CONFIG_ADJD_S311 is not set +# CONFIG_SENSORS_LM3533 is not set +# CONFIG_SENSORS_TSL2563 is not set +# CONFIG_VCNL4000 is not set +# CONFIG_HID_SENSOR_ALS is not set + +# +# Magnetometer sensors +# +# CONFIG_AK8975 is not set +# CONFIG_HID_SENSOR_MAGNETOMETER_3D is not set +# CONFIG_IIO_ST_MAGN_3AXIS is not set +# CONFIG_VME_BUS is not set +CONFIG_PWM=y +CONFIG_IRQCHIP=y +# CONFIG_IPACK_BUS is not set +# CONFIG_RESET_CONTROLLER is not set
# # File systems @@ -3687,11 +4484,11 @@ CONFIG_IOMMU_SUPPORT=y # CONFIG_EXT3_FS is not set CONFIG_EXT4_FS=y CONFIG_EXT4_USE_FOR_EXT23=y -CONFIG_EXT4_FS_XATTR=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y # CONFIG_EXT4_DEBUG is not set CONFIG_JBD2=y +# CONFIG_JBD2_DEBUG is not set CONFIG_FS_MBCACHE=y CONFIG_REISERFS_FS=m # CONFIG_REISERFS_CHECK is not set @@ -3699,43 +4496,47 @@ CONFIG_REISERFS_PROC_INFO=y CONFIG_REISERFS_FS_XATTR=y CONFIG_REISERFS_FS_POSIX_ACL=y CONFIG_REISERFS_FS_SECURITY=y -CONFIG_JFS_FS=m -CONFIG_JFS_POSIX_ACL=y -CONFIG_JFS_SECURITY=y -# CONFIG_JFS_DEBUG is not set -CONFIG_JFS_STATISTICS=y +# CONFIG_JFS_FS is not set CONFIG_XFS_FS=m CONFIG_XFS_QUOTA=y CONFIG_XFS_POSIX_ACL=y -# CONFIG_XFS_RT is not set +CONFIG_XFS_RT=y +# CONFIG_XFS_WARN is not set # CONFIG_XFS_DEBUG is not set # CONFIG_GFS2_FS is not set -# CONFIG_BTRFS_FS is not set +# CONFIG_OCFS2_FS is not set +CONFIG_BTRFS_FS=m +CONFIG_BTRFS_FS_POSIX_ACL=y +# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set +# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set +# CONFIG_BTRFS_DEBUG is not set # CONFIG_NILFS2_FS is not set CONFIG_FS_POSIX_ACL=y -CONFIG_EXPORTFS=m +CONFIG_EXPORTFS=y CONFIG_FILE_LOCKING=y CONFIG_FSNOTIFY=y CONFIG_DNOTIFY=y CONFIG_INOTIFY_USER=y CONFIG_FANOTIFY=y +CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y CONFIG_QUOTA=y CONFIG_QUOTA_NETLINK_INTERFACE=y -CONFIG_PRINT_QUOTA_WARNING=y +# CONFIG_PRINT_QUOTA_WARNING is not set # CONFIG_QUOTA_DEBUG is not set -CONFIG_QUOTA_TREE=m -CONFIG_QFMT_V1=m -CONFIG_QFMT_V2=m +CONFIG_QUOTA_TREE=y +# CONFIG_QFMT_V1 is not set +CONFIG_QFMT_V2=y CONFIG_QUOTACTL=y -CONFIG_AUTOFS4_FS=m +CONFIG_AUTOFS4_FS=y CONFIG_FUSE_FS=m CONFIG_CUSE=m +CONFIG_GENERIC_ACL=y
# # Caches # CONFIG_FSCACHE=m -# CONFIG_FSCACHE_STATS is not set +CONFIG_FSCACHE_STATS=y # CONFIG_FSCACHE_HISTOGRAM is not set # CONFIG_FSCACHE_DEBUG is not set # CONFIG_FSCACHE_OBJECT_LIST is not set @@ -3746,7 +4547,7 @@ CONFIG_CACHEFILES=m # # CD-ROM/DVD Filesystems # -CONFIG_ISO9660_FS=m +CONFIG_ISO9660_FS=y CONFIG_JOLIET=y CONFIG_ZISOFS=y CONFIG_UDF_FS=m @@ -3756,10 +4557,10 @@ CONFIG_UDF_NLS=y # DOS/FAT/NT Filesystems # CONFIG_FAT_FS=m -# CONFIG_MSDOS_FS is not set +CONFIG_MSDOS_FS=m CONFIG_VFAT_FS=m -CONFIG_FAT_DEFAULT_CODEPAGE=850 -CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="ascii" # CONFIG_NTFS_FS is not set
# @@ -3767,37 +4568,22 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" # CONFIG_PROC_FS=y CONFIG_PROC_SYSCTL=y -CONFIG_PROC_PAGE_MONITOR=y CONFIG_SYSFS=y CONFIG_TMPFS=y -# CONFIG_TMPFS_POSIX_ACL is not set +CONFIG_TMPFS_POSIX_ACL=y CONFIG_TMPFS_XATTR=y # CONFIG_HUGETLB_PAGE is not set -# CONFIG_CONFIGFS_FS is not set +CONFIG_CONFIGFS_FS=m CONFIG_MISC_FILESYSTEMS=y # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set -CONFIG_ECRYPT_FS=m +# CONFIG_ECRYPT_FS is not set # CONFIG_HFS_FS is not set # CONFIG_HFSPLUS_FS is not set # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set -CONFIG_JFFS2_FS=m -CONFIG_JFFS2_FS_DEBUG=0 -CONFIG_JFFS2_FS_WRITEBUFFER=y -# CONFIG_JFFS2_FS_WBUF_VERIFY is not set -# CONFIG_JFFS2_SUMMARY is not set -# CONFIG_JFFS2_FS_XATTR is not set -CONFIG_JFFS2_COMPRESSION_OPTIONS=y -CONFIG_JFFS2_ZLIB=y -# CONFIG_JFFS2_LZO is not set -CONFIG_JFFS2_RTIME=y -CONFIG_JFFS2_RUBIN=y -# CONFIG_JFFS2_CMODE_NONE is not set -CONFIG_JFFS2_CMODE_PRIORITY=y -# CONFIG_JFFS2_CMODE_SIZE is not set -# CONFIG_JFFS2_CMODE_FAVOURLZO is not set +# CONFIG_JFFS2_FS is not set # CONFIG_UBIFS_FS is not set # CONFIG_LOGFS is not set # CONFIG_CRAMFS is not set @@ -3807,113 +4593,116 @@ CONFIG_JFFS2_CMODE_PRIORITY=y # CONFIG_OMFS_FS is not set # CONFIG_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set +# CONFIG_QNX6FS_FS is not set # CONFIG_ROMFS_FS is not set -# CONFIG_PSTORE is not set +CONFIG_PSTORE=y +# CONFIG_PSTORE_CONSOLE is not set +# CONFIG_PSTORE_FTRACE is not set +# CONFIG_PSTORE_RAM is not set # CONFIG_SYSV_FS is not set -CONFIG_UFS_FS=m -# CONFIG_UFS_FS_WRITE is not set -# CONFIG_UFS_DEBUG is not set +# CONFIG_UFS_FS is not set # CONFIG_EXOFS_FS is not set +# CONFIG_F2FS_FS is not set +CONFIG_ORE=m CONFIG_NETWORK_FILESYSTEMS=y CONFIG_NFS_FS=m -CONFIG_NFS_V3=y +CONFIG_NFS_V2=m +CONFIG_NFS_V3=m CONFIG_NFS_V3_ACL=y -CONFIG_NFS_V4=y -# CONFIG_NFS_V4_1 is not set -# CONFIG_NFS_FSCACHE is not set +CONFIG_NFS_V4=m +# CONFIG_NFS_SWAP is not set +CONFIG_NFS_V4_1=y +CONFIG_PNFS_FILE_LAYOUT=m +CONFIG_PNFS_BLOCK=m +CONFIG_PNFS_OBJLAYOUT=m +CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="ipfire.org" +CONFIG_NFS_FSCACHE=y # CONFIG_NFS_USE_LEGACY_DNS is not set CONFIG_NFS_USE_KERNEL_DNS=y -# CONFIG_NFS_USE_NEW_IDMAPPER is not set CONFIG_NFSD=m CONFIG_NFSD_V2_ACL=y CONFIG_NFSD_V3=y CONFIG_NFSD_V3_ACL=y CONFIG_NFSD_V4=y +# CONFIG_NFSD_FAULT_INJECTION is not set CONFIG_LOCKD=m CONFIG_LOCKD_V4=y CONFIG_NFS_ACL_SUPPORT=m CONFIG_NFS_COMMON=y CONFIG_SUNRPC=m CONFIG_SUNRPC_GSS=m +CONFIG_SUNRPC_BACKCHANNEL=y CONFIG_RPCSEC_GSS_KRB5=m +# CONFIG_SUNRPC_DEBUG is not set # CONFIG_CEPH_FS is not set CONFIG_CIFS=m CONFIG_CIFS_STATS=y -CONFIG_CIFS_STATS2=y +# CONFIG_CIFS_STATS2 is not set # CONFIG_CIFS_WEAK_PW_HASH is not set # CONFIG_CIFS_UPCALL is not set CONFIG_CIFS_XATTR=y CONFIG_CIFS_POSIX=y -# CONFIG_CIFS_DEBUG2 is not set -# CONFIG_CIFS_DFS_UPCALL is not set -# CONFIG_CIFS_FSCACHE is not set CONFIG_CIFS_ACL=y +# CONFIG_CIFS_DEBUG is not set +CONFIG_CIFS_DFS_UPCALL=y +CONFIG_CIFS_SMB2=y +CONFIG_CIFS_FSCACHE=y # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set - -# -# Partition Types -# -CONFIG_PARTITION_ADVANCED=y -# CONFIG_ACORN_PARTITION is not set -# CONFIG_OSF_PARTITION is not set -# CONFIG_AMIGA_PARTITION is not set -# CONFIG_ATARI_PARTITION is not set -# CONFIG_MAC_PARTITION is not set -CONFIG_MSDOS_PARTITION=y -CONFIG_BSD_DISKLABEL=y -# CONFIG_MINIX_SUBPARTITION is not set -# CONFIG_SOLARIS_X86_PARTITION is not set -# CONFIG_UNIXWARE_DISKLABEL is not set -CONFIG_LDM_PARTITION=y -# CONFIG_LDM_DEBUG is not set -# CONFIG_SGI_PARTITION is not set -# CONFIG_ULTRIX_PARTITION is not set -# CONFIG_SUN_PARTITION is not set -# CONFIG_KARMA_PARTITION is not set -CONFIG_EFI_PARTITION=y -# CONFIG_SYSV68_PARTITION is not set CONFIG_NLS=y -CONFIG_NLS_DEFAULT="cp850" -# CONFIG_NLS_CODEPAGE_437 is not set -# CONFIG_NLS_CODEPAGE_737 is not set -# CONFIG_NLS_CODEPAGE_775 is not set -CONFIG_NLS_CODEPAGE_850=y -# CONFIG_NLS_CODEPAGE_852 is not set -# CONFIG_NLS_CODEPAGE_855 is not set -# CONFIG_NLS_CODEPAGE_857 is not set -# CONFIG_NLS_CODEPAGE_860 is not set -# CONFIG_NLS_CODEPAGE_861 is not set -# CONFIG_NLS_CODEPAGE_862 is not set -# CONFIG_NLS_CODEPAGE_863 is not set -# CONFIG_NLS_CODEPAGE_864 is not set -# CONFIG_NLS_CODEPAGE_865 is not set -# CONFIG_NLS_CODEPAGE_866 is not set -# CONFIG_NLS_CODEPAGE_869 is not set -# CONFIG_NLS_CODEPAGE_936 is not set -# CONFIG_NLS_CODEPAGE_950 is not set -# CONFIG_NLS_CODEPAGE_932 is not set -# CONFIG_NLS_CODEPAGE_949 is not set -# CONFIG_NLS_CODEPAGE_874 is not set -# CONFIG_NLS_ISO8859_8 is not set -# CONFIG_NLS_CODEPAGE_1250 is not set -# CONFIG_NLS_CODEPAGE_1251 is not set -# CONFIG_NLS_ASCII is not set -CONFIG_NLS_ISO8859_1=y -# CONFIG_NLS_ISO8859_2 is not set -# CONFIG_NLS_ISO8859_3 is not set -# CONFIG_NLS_ISO8859_4 is not set -# CONFIG_NLS_ISO8859_5 is not set -# CONFIG_NLS_ISO8859_6 is not set -# CONFIG_NLS_ISO8859_7 is not set -# CONFIG_NLS_ISO8859_9 is not set -# CONFIG_NLS_ISO8859_13 is not set -# CONFIG_NLS_ISO8859_14 is not set -# CONFIG_NLS_ISO8859_15 is not set -# CONFIG_NLS_KOI8_R is not set -# CONFIG_NLS_KOI8_U is not set -CONFIG_NLS_UTF8=y +CONFIG_NLS_DEFAULT="utf-8" +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_CODEPAGE_737=m +CONFIG_NLS_CODEPAGE_775=m +CONFIG_NLS_CODEPAGE_850=m +CONFIG_NLS_CODEPAGE_852=m +CONFIG_NLS_CODEPAGE_855=m +CONFIG_NLS_CODEPAGE_857=m +CONFIG_NLS_CODEPAGE_860=m +CONFIG_NLS_CODEPAGE_861=m +CONFIG_NLS_CODEPAGE_862=m +CONFIG_NLS_CODEPAGE_863=m +CONFIG_NLS_CODEPAGE_864=m +CONFIG_NLS_CODEPAGE_865=m +CONFIG_NLS_CODEPAGE_866=m +CONFIG_NLS_CODEPAGE_869=m +CONFIG_NLS_CODEPAGE_936=m +CONFIG_NLS_CODEPAGE_950=m +CONFIG_NLS_CODEPAGE_932=m +CONFIG_NLS_CODEPAGE_949=m +CONFIG_NLS_CODEPAGE_874=m +CONFIG_NLS_ISO8859_8=m +CONFIG_NLS_CODEPAGE_1250=m +CONFIG_NLS_CODEPAGE_1251=m +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=m +CONFIG_NLS_ISO8859_2=m +CONFIG_NLS_ISO8859_3=m +CONFIG_NLS_ISO8859_4=m +CONFIG_NLS_ISO8859_5=m +CONFIG_NLS_ISO8859_6=m +CONFIG_NLS_ISO8859_7=m +CONFIG_NLS_ISO8859_9=m +CONFIG_NLS_ISO8859_13=m +CONFIG_NLS_ISO8859_14=m +CONFIG_NLS_ISO8859_15=m +CONFIG_NLS_KOI8_R=m +CONFIG_NLS_KOI8_U=m +CONFIG_NLS_MAC_ROMAN=m +CONFIG_NLS_MAC_CELTIC=m +CONFIG_NLS_MAC_CENTEURO=m +CONFIG_NLS_MAC_CROATIAN=m +CONFIG_NLS_MAC_CYRILLIC=m +CONFIG_NLS_MAC_GAELIC=m +CONFIG_NLS_MAC_GREEK=m +CONFIG_NLS_MAC_ICELAND=m +CONFIG_NLS_MAC_INUIT=m +CONFIG_NLS_MAC_ROMANIAN=m +CONFIG_NLS_MAC_TURKISH=m +CONFIG_NLS_UTF8=m +CONFIG_DLM=m +# CONFIG_DLM_DEBUG is not set
# # Kernel hacking @@ -3922,27 +4711,29 @@ CONFIG_NLS_UTF8=y CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4 # CONFIG_ENABLE_WARN_DEPRECATED is not set CONFIG_ENABLE_MUST_CHECK=y -CONFIG_FRAME_WARN=1024 +CONFIG_FRAME_WARN=2048 # CONFIG_MAGIC_SYSRQ is not set CONFIG_STRIP_ASM_SYMS=y +# CONFIG_READABLE_ASM is not set # CONFIG_UNUSED_SYMBOLS is not set -# CONFIG_DEBUG_FS is not set -# CONFIG_HEADERS_CHECK is not set +CONFIG_DEBUG_FS=y +CONFIG_HEADERS_CHECK=y # CONFIG_DEBUG_SECTION_MISMATCH is not set CONFIG_DEBUG_KERNEL=y -# CONFIG_DEBUG_SHIRQ is not set -# CONFIG_LOCKUP_DETECTOR is not set -# CONFIG_HARDLOCKUP_DETECTOR is not set -CONFIG_DETECT_HUNG_TASK=y -CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 -# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set -CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 +CONFIG_DEBUG_SHIRQ=y +CONFIG_LOCKUP_DETECTOR=y +# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set +CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 +# CONFIG_PANIC_ON_OOPS is not set +CONFIG_PANIC_ON_OOPS_VALUE=0 +# CONFIG_DETECT_HUNG_TASK is not set CONFIG_SCHED_DEBUG=y -# CONFIG_SCHEDSTATS is not set +CONFIG_SCHEDSTATS=y CONFIG_TIMER_STATS=y # CONFIG_DEBUG_OBJECTS is not set # CONFIG_SLUB_DEBUG_ON is not set # CONFIG_SLUB_STATS is not set +CONFIG_HAVE_DEBUG_KMEMLEAK=y # CONFIG_DEBUG_KMEMLEAK is not set # CONFIG_DEBUG_RT_MUTEXES is not set # CONFIG_RT_MUTEX_TESTER is not set @@ -3950,10 +4741,10 @@ CONFIG_TIMER_STATS=y # CONFIG_DEBUG_MUTEXES is not set # CONFIG_DEBUG_LOCK_ALLOC is not set # CONFIG_PROVE_LOCKING is not set -# CONFIG_SPARSE_RCU_POINTER is not set # CONFIG_LOCK_STAT is not set # CONFIG_DEBUG_ATOMIC_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +CONFIG_STACKTRACE=y # CONFIG_DEBUG_STACK_USAGE is not set # CONFIG_DEBUG_KOBJECT is not set # CONFIG_DEBUG_HIGHMEM is not set @@ -3962,53 +4753,247 @@ CONFIG_DEBUG_BUGVERBOSE=y # CONFIG_DEBUG_VM is not set # CONFIG_DEBUG_WRITECOUNT is not set CONFIG_DEBUG_MEMORY_INIT=y -# CONFIG_DEBUG_LIST is not set +CONFIG_DEBUG_LIST=y # CONFIG_TEST_LIST_SORT is not set # CONFIG_DEBUG_SG is not set # CONFIG_DEBUG_NOTIFIERS is not set # CONFIG_DEBUG_CREDENTIALS is not set CONFIG_FRAME_POINTER=y # CONFIG_BOOT_PRINTK_DELAY is not set + +# +# RCU Debugging +# +# CONFIG_SPARSE_RCU_POINTER is not set # CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_RCU_TRACE is not set # CONFIG_BACKTRACE_SELF_TEST is not set # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +# CONFIG_LKDTM is not set +# CONFIG_NOTIFIER_ERROR_INJECTION is not set # CONFIG_FAULT_INJECTION is not set -# CONFIG_LATENCYTOP is not set -# CONFIG_SYSCTL_SYSCALL_CHECK is not set # CONFIG_DEBUG_PAGEALLOC is not set +CONFIG_NOP_TRACER=y CONFIG_HAVE_FUNCTION_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_TRACER_MAX_TRACE=y +CONFIG_TRACE_CLOCK=y +CONFIG_RING_BUFFER=y +CONFIG_EVENT_TRACING=y +CONFIG_CONTEXT_SWITCH_TRACER=y +CONFIG_TRACING=y +CONFIG_GENERIC_TRACER=y CONFIG_TRACING_SUPPORT=y -# CONFIG_FTRACE is not set -# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set +CONFIG_FTRACE=y +CONFIG_FUNCTION_TRACER=y +CONFIG_FUNCTION_GRAPH_TRACER=y +# CONFIG_IRQSOFF_TRACER is not set +CONFIG_SCHED_TRACER=y +# CONFIG_FTRACE_SYSCALLS is not set +CONFIG_TRACER_SNAPSHOT=y +# CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP is not set +CONFIG_BRANCH_PROFILE_NONE=y +# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set +# CONFIG_PROFILE_ALL_BRANCHES is not set +CONFIG_STACK_TRACER=y +CONFIG_BLK_DEV_IO_TRACE=y +# CONFIG_PROBE_EVENTS is not set +CONFIG_DYNAMIC_FTRACE=y +CONFIG_FUNCTION_PROFILER=y +CONFIG_FTRACE_MCOUNT_RECORD=y +# CONFIG_FTRACE_STARTUP_TEST is not set +CONFIG_RING_BUFFER_BENCHMARK=m +# CONFIG_RING_BUFFER_STARTUP_TEST is not set +CONFIG_RBTREE_TEST=m +# CONFIG_INTERVAL_TREE_TEST is not set +# CONFIG_BUILD_DOCSRC is not set +CONFIG_DYNAMIC_DEBUG=y # CONFIG_DMA_API_DEBUG is not set # CONFIG_ATOMIC64_SELFTEST is not set CONFIG_ASYNC_RAID6_TEST=m # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y # CONFIG_KGDB is not set +# CONFIG_TEST_STRING_HELPERS is not set # CONFIG_TEST_KSTRTOX is not set -# CONFIG_STRICT_DEVMEM is not set -# CONFIG_ARM_UNWIND is not set +CONFIG_STRICT_DEVMEM=y +CONFIG_ARM_UNWIND=y +CONFIG_OLD_MCOUNT=y # CONFIG_DEBUG_USER is not set CONFIG_DEBUG_LL=y CONFIG_DEBUG_LL_UART_NONE=y # CONFIG_DEBUG_ICEDCC is not set +# CONFIG_DEBUG_SEMIHOSTING is not set +CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S" +CONFIG_UNCOMPRESS_INCLUDE="mach/uncompress.h" CONFIG_EARLY_PRINTK=y
# # Security options # + +# +# Grsecurity +# +CONFIG_PAX_USERCOPY_SLABS=y +CONFIG_GRKERNSEC=y +# CONFIG_GRKERNSEC_CONFIG_AUTO is not set +CONFIG_GRKERNSEC_CONFIG_CUSTOM=y + +# +# Customize Configuration +# + +# +# PaX +# +CONFIG_PAX=y + +# +# PaX Control +# +# CONFIG_PAX_SOFTMODE is not set +CONFIG_PAX_EI_PAX=y +CONFIG_PAX_PT_PAX_FLAGS=y +# CONFIG_PAX_XATTR_PAX_FLAGS is not set +# CONFIG_PAX_NO_ACL_FLAGS is not set +CONFIG_PAX_HAVE_ACL_FLAGS=y +# CONFIG_PAX_HOOK_ACL_FLAGS is not set + +# +# Non-executable pages +# +CONFIG_PAX_KERNEXEC_PLUGIN_METHOD="" + +# +# Address Space Layout Randomization +# +CONFIG_PAX_ASLR=y +CONFIG_PAX_RANDUSTACK=y +CONFIG_PAX_RANDMMAP=y + +# +# Miscellaneous hardening features +# +CONFIG_PAX_MEMORY_SANITIZE=y +CONFIG_PAX_MEMORY_STRUCTLEAK=y +CONFIG_PAX_USERCOPY=y +# CONFIG_PAX_LATENT_ENTROPY is not set + +# +# Memory Protections +# +# CONFIG_GRKERNSEC_KMEM is not set +CONFIG_GRKERNSEC_JIT_HARDEN=y +# CONFIG_GRKERNSEC_PERF_HARDEN is not set +CONFIG_GRKERNSEC_RAND_THREADSTACK=y +CONFIG_GRKERNSEC_PROC_MEMMAP=y +CONFIG_GRKERNSEC_BRUTE=y +CONFIG_GRKERNSEC_MODHARDEN=y +CONFIG_GRKERNSEC_HIDESYM=y +CONFIG_GRKERNSEC_KERN_LOCKOUT=y + +# +# Role Based Access Control Options +# +CONFIG_GRKERNSEC_NO_RBAC=y +# CONFIG_GRKERNSEC_ACL_HIDEKERN is not set +CONFIG_GRKERNSEC_ACL_MAXTRIES=3 +CONFIG_GRKERNSEC_ACL_TIMEOUT=30 + +# +# Filesystem Protections +# +# CONFIG_GRKERNSEC_PROC is not set +CONFIG_GRKERNSEC_LINK=y +# CONFIG_GRKERNSEC_SYMLINKOWN is not set +CONFIG_GRKERNSEC_FIFO=y +# CONFIG_GRKERNSEC_SYSFS_RESTRICT is not set +# CONFIG_GRKERNSEC_ROFS is not set +CONFIG_GRKERNSEC_DEVICE_SIDECHANNEL=y +CONFIG_GRKERNSEC_CHROOT=y +# CONFIG_GRKERNSEC_CHROOT_MOUNT is not set +CONFIG_GRKERNSEC_CHROOT_DOUBLE=y +CONFIG_GRKERNSEC_CHROOT_PIVOT=y +CONFIG_GRKERNSEC_CHROOT_CHDIR=y +# CONFIG_GRKERNSEC_CHROOT_CHMOD is not set +CONFIG_GRKERNSEC_CHROOT_FCHDIR=y +# CONFIG_GRKERNSEC_CHROOT_MKNOD is not set +CONFIG_GRKERNSEC_CHROOT_SHMAT=y +CONFIG_GRKERNSEC_CHROOT_UNIX=y +CONFIG_GRKERNSEC_CHROOT_FINDTASK=y +CONFIG_GRKERNSEC_CHROOT_NICE=y +CONFIG_GRKERNSEC_CHROOT_SYSCTL=y +# CONFIG_GRKERNSEC_CHROOT_CAPS is not set +CONFIG_GRKERNSEC_CHROOT_INITRD=y + +# +# Kernel Auditing +# +# CONFIG_GRKERNSEC_AUDIT_GROUP is not set +# CONFIG_GRKERNSEC_EXECLOG is not set +CONFIG_GRKERNSEC_RESLOG=y +# CONFIG_GRKERNSEC_CHROOT_EXECLOG is not set +# CONFIG_GRKERNSEC_AUDIT_PTRACE is not set +# CONFIG_GRKERNSEC_AUDIT_CHDIR is not set +# CONFIG_GRKERNSEC_AUDIT_MOUNT is not set +CONFIG_GRKERNSEC_SIGNAL=y +CONFIG_GRKERNSEC_FORKFAIL=y +# CONFIG_GRKERNSEC_TIME is not set +CONFIG_GRKERNSEC_PROC_IPADDR=y + +# +# Executable Protections +# +CONFIG_GRKERNSEC_DMESG=y +CONFIG_GRKERNSEC_HARDEN_PTRACE=y +CONFIG_GRKERNSEC_PTRACE_READEXEC=y +CONFIG_GRKERNSEC_SETXID=y +# CONFIG_GRKERNSEC_TPE is not set + +# +# Network Protections +# +CONFIG_GRKERNSEC_RANDNET=y +CONFIG_GRKERNSEC_BLACKHOLE=y +CONFIG_GRKERNSEC_NO_SIMULT_CONNECT=y +# CONFIG_GRKERNSEC_SOCKET is not set + +# +# Physical Protections +# +# CONFIG_GRKERNSEC_DENYUSB is not set + +# +# Sysctl Support +# +# CONFIG_GRKERNSEC_SYSCTL is not set + +# +# Logging Options +# +CONFIG_GRKERNSEC_FLOODTIME=10 +CONFIG_GRKERNSEC_FLOODBURST=6 CONFIG_KEYS=y # CONFIG_ENCRYPTED_KEYS is not set -# CONFIG_KEYS_DEBUG_PROC_KEYS is not set -# CONFIG_SECURITY_DMESG_RESTRICT is not set -# CONFIG_SECURITY is not set -# CONFIG_SECURITYFS is not set +CONFIG_KEYS_DEBUG_PROC_KEYS=y +CONFIG_SECURITY_DMESG_RESTRICT=y +CONFIG_SECURITY=y +CONFIG_SECURITYFS=y +CONFIG_SECURITY_NETWORK=y +CONFIG_SECURITY_NETWORK_XFRM=y +# CONFIG_SECURITY_PATH is not set +# CONFIG_SECURITY_SELINUX is not set +# CONFIG_SECURITY_SMACK is not set +# CONFIG_SECURITY_TOMOYO is not set +# CONFIG_SECURITY_APPARMOR is not set +# CONFIG_IMA is not set +# CONFIG_EVM is not set CONFIG_DEFAULT_SECURITY_DAC=y CONFIG_DEFAULT_SECURITY="" CONFIG_XOR_BLOCKS=m @@ -4022,43 +5007,44 @@ CONFIG_CRYPTO=y # # Crypto core or helper # +CONFIG_CRYPTO_FIPS=y CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_ALGAPI2=y -CONFIG_CRYPTO_AEAD=m +CONFIG_CRYPTO_AEAD=y CONFIG_CRYPTO_AEAD2=y -CONFIG_CRYPTO_BLKCIPHER=m +CONFIG_CRYPTO_BLKCIPHER=y CONFIG_CRYPTO_BLKCIPHER2=y CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_HASH2=y -CONFIG_CRYPTO_RNG=m +CONFIG_CRYPTO_RNG=y CONFIG_CRYPTO_RNG2=y CONFIG_CRYPTO_PCOMP=m CONFIG_CRYPTO_PCOMP2=y CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y -CONFIG_CRYPTO_USER=m -CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y +# CONFIG_CRYPTO_USER is not set +# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set CONFIG_CRYPTO_GF128MUL=m -# CONFIG_CRYPTO_NULL is not set +CONFIG_CRYPTO_NULL=m CONFIG_CRYPTO_WORKQUEUE=y -CONFIG_CRYPTO_CRYPTD=m +CONFIG_CRYPTO_CRYPTD=y CONFIG_CRYPTO_AUTHENC=m -# CONFIG_CRYPTO_TEST is not set +CONFIG_CRYPTO_TEST=m
# # Authenticated Encryption with Associated Data # CONFIG_CRYPTO_CCM=m CONFIG_CRYPTO_GCM=m -CONFIG_CRYPTO_SEQIV=m +CONFIG_CRYPTO_SEQIV=y
# # Block modes # -CONFIG_CRYPTO_CBC=m -CONFIG_CRYPTO_CTR=m +CONFIG_CRYPTO_CBC=y +CONFIG_CRYPTO_CTR=y CONFIG_CRYPTO_CTS=m -CONFIG_CRYPTO_ECB=m +CONFIG_CRYPTO_ECB=y CONFIG_CRYPTO_LRW=m CONFIG_CRYPTO_PCBC=m CONFIG_CRYPTO_XTS=m @@ -4066,6 +5052,7 @@ CONFIG_CRYPTO_XTS=m # # Hash modes # +CONFIG_CRYPTO_CMAC=m CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_XCBC=m CONFIG_CRYPTO_VMAC=m @@ -4073,17 +5060,19 @@ CONFIG_CRYPTO_VMAC=m # # Digest # -CONFIG_CRYPTO_CRC32C=m +CONFIG_CRYPTO_CRC32C=y +CONFIG_CRYPTO_CRC32=y CONFIG_CRYPTO_GHASH=m CONFIG_CRYPTO_MD4=m -CONFIG_CRYPTO_MD5=m +CONFIG_CRYPTO_MD5=y CONFIG_CRYPTO_MICHAEL_MIC=m CONFIG_CRYPTO_RMD128=m CONFIG_CRYPTO_RMD160=m CONFIG_CRYPTO_RMD256=m CONFIG_CRYPTO_RMD320=m -CONFIG_CRYPTO_SHA1=m -CONFIG_CRYPTO_SHA256=m +CONFIG_CRYPTO_SHA1=y +CONFIG_CRYPTO_SHA1_ARM=y +CONFIG_CRYPTO_SHA256=y CONFIG_CRYPTO_SHA512=m CONFIG_CRYPTO_TGR192=m CONFIG_CRYPTO_WP512=m @@ -4091,12 +5080,14 @@ CONFIG_CRYPTO_WP512=m # # Ciphers # -CONFIG_CRYPTO_AES=m +CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_AES_ARM=m CONFIG_CRYPTO_ANUBIS=m CONFIG_CRYPTO_ARC4=m CONFIG_CRYPTO_BLOWFISH=m CONFIG_CRYPTO_BLOWFISH_COMMON=m CONFIG_CRYPTO_CAMELLIA=m +CONFIG_CRYPTO_CAST_COMMON=m CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST6=m CONFIG_CRYPTO_DES=m @@ -4112,7 +5103,7 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m # # Compression # -CONFIG_CRYPTO_DEFLATE=y +CONFIG_CRYPTO_DEFLATE=m CONFIG_CRYPTO_ZLIB=m CONFIG_CRYPTO_LZO=m
@@ -4120,31 +5111,45 @@ CONFIG_CRYPTO_LZO=m # Random Number Generation # CONFIG_CRYPTO_ANSI_CPRNG=m -CONFIG_CRYPTO_USER_API=m -CONFIG_CRYPTO_USER_API_HASH=m -CONFIG_CRYPTO_USER_API_SKCIPHER=m +CONFIG_CRYPTO_USER_API=y +CONFIG_CRYPTO_USER_API_HASH=y +CONFIG_CRYPTO_USER_API_SKCIPHER=y CONFIG_CRYPTO_HW=y -CONFIG_CRYPTO_DEV_MV_CESA=m +CONFIG_CRYPTO_DEV_MV_CESA=y CONFIG_CRYPTO_DEV_HIFN_795X=m CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y -# CONFIG_BINARY_PRINTF is not set +CONFIG_ASYMMETRIC_KEY_TYPE=m +CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=m +CONFIG_PUBLIC_KEY_ALGO_RSA=m +CONFIG_X509_CERTIFICATE_PARSER=m +CONFIG_BINARY_PRINTF=y
# # Library routines # CONFIG_RAID6_PQ=m CONFIG_BITREVERSE=y -CONFIG_CRC_CCITT=m +CONFIG_RATIONAL=y +CONFIG_GENERIC_STRNCPY_FROM_USER=y +CONFIG_GENERIC_STRNLEN_USER=y +CONFIG_GENERIC_PCI_IOMAP=y +CONFIG_GENERIC_IO=y +CONFIG_CRC_CCITT=y CONFIG_CRC16=y -CONFIG_CRC_T10DIF=m +CONFIG_CRC_T10DIF=y CONFIG_CRC_ITU_T=m CONFIG_CRC32=y +# CONFIG_CRC32_SELFTEST is not set +CONFIG_CRC32_SLICEBY8=y +# CONFIG_CRC32_SLICEBY4 is not set +# CONFIG_CRC32_SARWATE is not set +# CONFIG_CRC32_BIT is not set CONFIG_CRC7=m CONFIG_LIBCRC32C=m CONFIG_CRC8=m CONFIG_AUDIT_GENERIC=y CONFIG_ZLIB_INFLATE=y -CONFIG_ZLIB_DEFLATE=y +CONFIG_ZLIB_DEFLATE=m CONFIG_LZO_COMPRESS=y CONFIG_LZO_DECOMPRESS=y CONFIG_XZ_DEC=y @@ -4169,7 +5174,19 @@ CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT=y CONFIG_HAS_DMA=y CONFIG_CHECK_SIGNATURE=y +CONFIG_DQL=y CONFIG_NLATTR=y CONFIG_GENERIC_ATOMIC64=y +CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y CONFIG_AVERAGE=y +CONFIG_CLZ_TAB=y CONFIG_CORDIC=m +# CONFIG_DDR is not set +CONFIG_MPILIB=m +CONFIG_OID_REGISTRY=m +CONFIG_VIRTUALIZATION=y +CONFIG_KVM_ARM_MAX_VCPUS=0 + +# +# Virtio drivers +# diff --git a/config/kernel/kernel.config.armv5tel-ipfire-multi b/config/kernel/kernel.config.armv5tel-ipfire-multi new file mode 100644 index 0000000..dcd3b08 --- /dev/null +++ b/config/kernel/kernel.config.armv5tel-ipfire-multi @@ -0,0 +1,5573 @@ +# +# Automatically generated file; DO NOT EDIT. +# Linux/arm 3.10.32 Kernel Configuration +# +CONFIG_ARM=y +CONFIG_MIGHT_HAVE_PCI=y +CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_HAVE_PROC_CPU=y +CONFIG_NO_IOPORT=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +CONFIG_ARCH_HAS_CPUFREQ=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_ZONE_DMA=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_ARM_PATCH_PHYS_VIRT=y +CONFIG_GENERIC_BUG=y +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" +CONFIG_IRQ_WORK=y +CONFIG_BUILDTIME_EXTABLE_SORT=y + +# +# General setup +# +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_CROSS_COMPILE="" +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_HAVE_KERNEL_GZIP=y +CONFIG_HAVE_KERNEL_LZMA=y +CONFIG_HAVE_KERNEL_XZ=y +CONFIG_HAVE_KERNEL_LZO=y +# CONFIG_KERNEL_GZIP is not set +# CONFIG_KERNEL_LZMA is not set +CONFIG_KERNEL_XZ=y +# CONFIG_KERNEL_LZO is not set +CONFIG_DEFAULT_HOSTNAME="(none)" +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +CONFIG_POSIX_MQUEUE=y +CONFIG_POSIX_MQUEUE_SYSCTL=y +CONFIG_FHANDLE=y +CONFIG_AUDIT=y +CONFIG_AUDITSYSCALL=y +CONFIG_AUDIT_WATCH=y +CONFIG_AUDIT_TREE=y +CONFIG_AUDIT_LOGINUID_IMMUTABLE=y +CONFIG_HAVE_GENERIC_HARDIRQS=y + +# +# IRQ subsystem +# +CONFIG_GENERIC_HARDIRQS=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_GENERIC_IRQ_CHIP=y +CONFIG_IRQ_DOMAIN=y +# CONFIG_IRQ_DOMAIN_DEBUG is not set +CONFIG_SPARSE_IRQ=y +CONFIG_KTIME_SCALAR=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +CONFIG_ARCH_HAS_TICK_BROADCAST=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y + +# +# Timers subsystem +# +CONFIG_TICK_ONESHOT=y +CONFIG_NO_HZ_COMMON=y +# CONFIG_HZ_PERIODIC is not set +CONFIG_NO_HZ_IDLE=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y + +# +# CPU/Task time and stats accounting +# +CONFIG_TICK_CPU_ACCOUNTING=y +# CONFIG_IRQ_TIME_ACCOUNTING is not set +CONFIG_BSD_PROCESS_ACCT=y +# CONFIG_BSD_PROCESS_ACCT_V3 is not set +CONFIG_TASKSTATS=y +CONFIG_TASK_DELAY_ACCT=y +CONFIG_TASK_XACCT=y +CONFIG_TASK_IO_ACCOUNTING=y + +# +# RCU Subsystem +# +CONFIG_TREE_RCU=y +# CONFIG_PREEMPT_RCU is not set +CONFIG_RCU_STALL_COMMON=y +CONFIG_CONTEXT_TRACKING=y +CONFIG_RCU_USER_QS=y +CONFIG_CONTEXT_TRACKING_FORCE=y +CONFIG_RCU_FANOUT=32 +CONFIG_RCU_FANOUT_LEAF=16 +CONFIG_RCU_FANOUT_EXACT=y +# CONFIG_RCU_FAST_NO_HZ is not set +# CONFIG_TREE_RCU_TRACE is not set +CONFIG_RCU_NOCB_CPU=y +# CONFIG_RCU_NOCB_CPU_NONE is not set +# CONFIG_RCU_NOCB_CPU_ZERO is not set +CONFIG_RCU_NOCB_CPU_ALL=y +# CONFIG_IKCONFIG is not set +CONFIG_LOG_BUF_SHIFT=18 +CONFIG_CGROUPS=y +# CONFIG_CGROUP_DEBUG is not set +CONFIG_CGROUP_FREEZER=y +CONFIG_CGROUP_DEVICE=y +CONFIG_CPUSETS=y +CONFIG_PROC_PID_CPUSET=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_RESOURCE_COUNTERS=y +CONFIG_MEMCG=y +CONFIG_MEMCG_SWAP=y +CONFIG_MEMCG_SWAP_ENABLED=y +CONFIG_MEMCG_KMEM=y +CONFIG_CGROUP_PERF=y +CONFIG_CGROUP_SCHED=y +CONFIG_FAIR_GROUP_SCHED=y +# CONFIG_CFS_BANDWIDTH is not set +CONFIG_RT_GROUP_SCHED=y +CONFIG_BLK_CGROUP=y +# CONFIG_DEBUG_BLK_CGROUP is not set +CONFIG_NAMESPACES=y +CONFIG_UTS_NS=y +CONFIG_IPC_NS=y +CONFIG_PID_NS=y +CONFIG_NET_NS=y +CONFIG_SCHED_AUTOGROUP=y +CONFIG_MM_OWNER=y +# CONFIG_SYSFS_DEPRECATED is not set +CONFIG_RELAY=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +CONFIG_RD_GZIP=y +CONFIG_RD_BZIP2=y +CONFIG_RD_LZMA=y +CONFIG_RD_XZ=y +CONFIG_RD_LZO=y +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_SYSCTL=y +CONFIG_ANON_INODES=y +CONFIG_HAVE_UID16=y +CONFIG_HOTPLUG=y +CONFIG_EXPERT=y +CONFIG_UID16=y +# CONFIG_SYSCTL_SYSCALL is not set +CONFIG_KALLSYMS=y +CONFIG_KALLSYMS_ALL=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_TIMERFD=y +CONFIG_EVENTFD=y +CONFIG_SHMEM=y +CONFIG_AIO=y +CONFIG_PCI_QUIRKS=y +CONFIG_EMBEDDED=y +CONFIG_HAVE_PERF_EVENTS=y +CONFIG_PERF_USE_VMALLOC=y + +# +# Kernel Performance Events And Counters +# +CONFIG_PERF_EVENTS=y +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set +CONFIG_VM_EVENT_COUNTERS=y +# CONFIG_SLUB_DEBUG is not set +# CONFIG_COMPAT_BRK is not set +# CONFIG_SLAB is not set +CONFIG_SLUB=y +# CONFIG_SLOB is not set +CONFIG_PROFILING=y +CONFIG_TRACEPOINTS=y +CONFIG_OPROFILE=m +CONFIG_HAVE_OPROFILE=y +# CONFIG_KPROBES is not set +CONFIG_JUMP_LABEL=y +# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set +CONFIG_HAVE_KPROBES=y +CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +CONFIG_HAVE_DMA_ATTRS=y +CONFIG_HAVE_DMA_CONTIGUOUS=y +CONFIG_USE_GENERIC_SMP_HELPERS=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_GENERIC_IDLE_POLL_SETUP=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_CLK=y +CONFIG_HAVE_DMA_API_DEBUG=y +CONFIG_HAVE_HW_BREAKPOINT=y +CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y +CONFIG_HAVE_ARCH_SECCOMP_FILTER=y +CONFIG_HAVE_CONTEXT_TRACKING=y +CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y +CONFIG_HAVE_MOD_ARCH_SPECIFIC=y +CONFIG_MODULES_USE_ELF_REL=y +CONFIG_CLONE_BACKWARDS=y +CONFIG_OLD_SIGSUSPEND3=y +CONFIG_OLD_SIGACTION=y + +# +# GCOV-based kernel profiling +# +# CONFIG_GCOV_KERNEL is not set +CONFIG_HAVE_GENERIC_DMA_COHERENT=y +CONFIG_RT_MUTEXES=y +CONFIG_BASE_SMALL=0 +CONFIG_MODULES=y +# CONFIG_MODULE_FORCE_LOAD is not set +CONFIG_MODULE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set +# CONFIG_MODVERSIONS is not set +CONFIG_MODULE_SRCVERSION_ALL=y +# CONFIG_MODULE_SIG is not set +CONFIG_STOP_MACHINE=y +CONFIG_BLOCK=y +CONFIG_LBDAF=y +CONFIG_BLK_DEV_BSG=y +CONFIG_BLK_DEV_BSGLIB=y +CONFIG_BLK_DEV_INTEGRITY=y +CONFIG_BLK_DEV_THROTTLING=y + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +# CONFIG_MAC_PARTITION is not set +CONFIG_MSDOS_PARTITION=y +# CONFIG_BSD_DISKLABEL is not set +# CONFIG_MINIX_SUBPARTITION is not set +# CONFIG_SOLARIS_X86_PARTITION is not set +# CONFIG_UNIXWARE_DISKLABEL is not set +CONFIG_LDM_PARTITION=y +# CONFIG_LDM_DEBUG is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +# CONFIG_KARMA_PARTITION is not set +CONFIG_EFI_PARTITION=y +# CONFIG_SYSV68_PARTITION is not set + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y +CONFIG_CFQ_GROUP_IOSCHED=y +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="cfq" +CONFIG_PADATA=y +CONFIG_ASN1=m +CONFIG_INLINE_SPIN_UNLOCK_IRQ=y +CONFIG_INLINE_READ_UNLOCK=y +CONFIG_INLINE_READ_UNLOCK_IRQ=y +CONFIG_INLINE_WRITE_UNLOCK=y +CONFIG_INLINE_WRITE_UNLOCK_IRQ=y +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_FREEZER=y + +# +# System Type +# +CONFIG_MMU=y +CONFIG_ARCH_MULTIPLATFORM=y +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_REALVIEW is not set +# CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_AT91 is not set +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_GEMINI is not set +# CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_EP93XX is not set +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_NETX is not set +# CONFIG_ARCH_IOP13XX is not set +# CONFIG_ARCH_IOP32X is not set +# CONFIG_ARCH_IOP33X is not set +# CONFIG_ARCH_IXP4XX is not set +# CONFIG_ARCH_DOVE is not set +# CONFIG_ARCH_KIRKWOOD is not set +# CONFIG_ARCH_MV78XX0 is not set +# CONFIG_ARCH_ORION5X is not set +# CONFIG_ARCH_MMP is not set +# CONFIG_ARCH_KS8695 is not set +# CONFIG_ARCH_W90X900 is not set +# CONFIG_ARCH_LPC32XX is not set +# CONFIG_ARCH_PXA is not set +# CONFIG_ARCH_MSM is not set +# CONFIG_ARCH_SHMOBILE is not set +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_SA1100 is not set +# CONFIG_ARCH_S3C24XX is not set +# CONFIG_ARCH_S3C64XX is not set +# CONFIG_ARCH_S5P64X0 is not set +# CONFIG_ARCH_S5PC100 is not set +# CONFIG_ARCH_S5PV210 is not set +# CONFIG_ARCH_EXYNOS is not set +# CONFIG_ARCH_SHARK is not set +# CONFIG_ARCH_U300 is not set +# CONFIG_ARCH_DAVINCI is not set +# CONFIG_ARCH_OMAP1 is not set + +# +# Multiple platform selection +# + +# +# CPU Core family selection +# +# CONFIG_ARCH_MULTI_V6 is not set +CONFIG_ARCH_MULTI_V7=y +CONFIG_ARCH_MULTI_V6_V7=y +# CONFIG_ARCH_MULTI_CPU_AUTO is not set +CONFIG_ARCH_MVEBU=y + +# +# Marvell SOC with device tree +# +CONFIG_MACH_ARMADA_370_XP=y +CONFIG_MACH_ARMADA_370=y +CONFIG_MACH_ARMADA_XP=y +# CONFIG_ARCH_BCM is not set +# CONFIG_GPIO_PCA953X is not set +CONFIG_KEYBOARD_GPIO_POLLED=m +# CONFIG_ARCH_HIGHBANK is not set +CONFIG_ARCH_MXC=y + +# +# Freescale i.MX support +# +# CONFIG_MXC_IRQ_PRIOR is not set +CONFIG_MXC_TZIC=y +# CONFIG_MXC_DEBUG_BOARD is not set +CONFIG_HAVE_IMX_ANATOP=y +CONFIG_HAVE_IMX_GPC=y +CONFIG_HAVE_IMX_MMDC=y +CONFIG_HAVE_IMX_SRC=y +CONFIG_ARCH_MXC_IOMUX_V3=y +CONFIG_SOC_IMX5=y +CONFIG_SOC_IMX51=y + +# +# i.MX51 machines: +# +CONFIG_MACH_IMX51_DT=y +# CONFIG_MACH_MX51_BABBAGE is not set +# CONFIG_MACH_EUKREA_CPUIMX51SD is not set + +# +# Device tree only +# +CONFIG_SOC_IMX53=y +CONFIG_SOC_IMX6Q=y +CONFIG_IMX_HAVE_PLATFORM_FEC=y +CONFIG_IMX_HAVE_PLATFORM_GPIO_KEYS=y +CONFIG_IMX_HAVE_PLATFORM_IMX2_WDT=y +CONFIG_WAND_RFKILL=m + +# +# TI OMAP Common Features +# + +# +# OMAP Feature Selections +# +# CONFIG_POWER_AVS_OMAP is not set +# CONFIG_OMAP_RESET_CLOCKS is not set +CONFIG_OMAP_MUX=y +# CONFIG_OMAP_MUX_DEBUG is not set +CONFIG_OMAP_MUX_WARNINGS=y +CONFIG_OMAP_32K_TIMER=y +# CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE is not set +CONFIG_OMAP_DM_TIMER=y +CONFIG_OMAP_PM_NOOP=y +CONFIG_MACH_OMAP_GENERIC=y +CONFIG_ARCH_OMAP=y +CONFIG_ARCH_OMAP2PLUS=y + +# +# TI OMAP2/3/4 Specific Features +# +CONFIG_ARCH_OMAP2PLUS_TYPICAL=y +CONFIG_SOC_HAS_OMAP2_SDRC=y +CONFIG_SOC_HAS_REALTIME_COUNTER=y +CONFIG_ARCH_OMAP3=y +CONFIG_ARCH_OMAP4=y +CONFIG_SOC_OMAP5=y +CONFIG_SOC_OMAP3430=y +CONFIG_SOC_TI81XX=y +CONFIG_SOC_AM33XX=y +CONFIG_OMAP_PACKAGE_CBB=y +CONFIG_OMAP_PACKAGE_CUS=y +CONFIG_OMAP_PACKAGE_CBP=y +CONFIG_OMAP_PACKAGE_CBL=y +CONFIG_OMAP_PACKAGE_CBS=y + +# +# OMAP Board Type +# +CONFIG_MACH_OMAP3_BEAGLE=y +CONFIG_MACH_DEVKIT8000=y +CONFIG_MACH_OMAP_LDP=y +CONFIG_MACH_OMAP3530_LV_SOM=y +CONFIG_MACH_OMAP3_TORPEDO=y +CONFIG_MACH_OVERO=y +CONFIG_MACH_OMAP3EVM=y +CONFIG_MACH_OMAP3517EVM=y +# CONFIG_MACH_CRANEBOARD is not set +CONFIG_MACH_OMAP3_PANDORA=y +CONFIG_MACH_TOUCHBOOK=y +CONFIG_MACH_OMAP_3430SDP=y +CONFIG_MACH_NOKIA_RM680=y +CONFIG_MACH_NOKIA_RX51=y +CONFIG_MACH_OMAP_ZOOM2=y +CONFIG_MACH_OMAP_ZOOM3=y +CONFIG_MACH_CM_T35=y +CONFIG_MACH_CM_T3517=y +CONFIG_MACH_CM_T3730=y +CONFIG_MACH_IGEP0020=y +CONFIG_MACH_IGEP0030=y +CONFIG_MACH_SBC3530=y +CONFIG_MACH_OMAP_3630SDP=y +CONFIG_MACH_TI8168EVM=y +CONFIG_MACH_TI8148EVM=y +CONFIG_MACH_OMAP_4430SDP=y +CONFIG_MACH_OMAP4_PANDA=y +# CONFIG_OMAP3_EMU is not set +# CONFIG_OMAP3_SDRC_AC_TIMING is not set +# CONFIG_ARCH_SOCFPGA is not set +# CONFIG_PLAT_SPEAR is not set +CONFIG_ARCH_SUNXI=y +# CONFIG_ARCH_SIRF is not set +# CONFIG_ARCH_TEGRA is not set +# CONFIG_ARCH_U8500 is not set +CONFIG_ARCH_VEXPRESS=y + +# +# Versatile Express platform type +# +CONFIG_ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA=y +CONFIG_ARCH_VEXPRESS_CA9X4=y +CONFIG_PLAT_VERSATILE_CLCD=y +CONFIG_PLAT_VERSATILE_SCHED_CLOCK=y +CONFIG_ARCH_VIRT=y +CONFIG_ARCH_VT8500=y +CONFIG_ARCH_WM8850=y +CONFIG_ARCH_ZYNQ=y +CONFIG_PLAT_ORION=y +CONFIG_PLAT_VERSATILE=y +CONFIG_ARM_TIMER_SP804=y + +# +# Processor Type +# +CONFIG_CPU_PJ4B=y +CONFIG_CPU_V7=y +CONFIG_CPU_32v6K=y +CONFIG_CPU_32v7=y +CONFIG_CPU_ABRT_EV7=y +CONFIG_CPU_PABRT_V7=y +CONFIG_CPU_CACHE_V7=y +CONFIG_CPU_CACHE_VIPT=y +CONFIG_CPU_COPY_V6=y +CONFIG_CPU_TLB_V7=y +CONFIG_CPU_HAS_ASID=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y + +# +# Processor Features +# +# CONFIG_ARM_LPAE is not set +# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set +CONFIG_ARM_THUMB=y +CONFIG_ARM_THUMBEE=y +CONFIG_ARM_VIRT_EXT=y +CONFIG_SWP_EMULATE=y +# CONFIG_CPU_ICACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_CPU_BPREDICT_DISABLE is not set +CONFIG_KUSER_HELPERS=y +CONFIG_OUTER_CACHE=y +CONFIG_OUTER_CACHE_SYNC=y +CONFIG_MIGHT_HAVE_CACHE_L2X0=y +CONFIG_CACHE_L2X0=y +CONFIG_CACHE_PL310=y +CONFIG_ARM_L1_CACHE_SHIFT_6=y +CONFIG_ARM_L1_CACHE_SHIFT=6 +CONFIG_ARM_DMA_MEM_BUFFERABLE=y +CONFIG_ARM_NR_BANKS=8 +CONFIG_MULTI_IRQ_HANDLER=y +CONFIG_PJ4B_ERRATA_4742=y +CONFIG_ARM_ERRATA_430973=y +CONFIG_PL310_ERRATA_588369=y +CONFIG_ARM_ERRATA_643719=y +CONFIG_ARM_ERRATA_720789=y +CONFIG_PL310_ERRATA_727915=y +CONFIG_PL310_ERRATA_753970=y +CONFIG_ARM_ERRATA_754322=y +CONFIG_ARM_ERRATA_754327=y +CONFIG_ARM_ERRATA_764369=y +CONFIG_PL310_ERRATA_769419=y +CONFIG_ARM_ERRATA_775420=y +# CONFIG_ARM_ERRATA_798181 is not set +CONFIG_ICST=y + +# +# Bus support +# +CONFIG_ARM_AMBA=y +CONFIG_PCI=y +CONFIG_PCI_DOMAINS=y +CONFIG_PCI_SYSCALL=y +# CONFIG_PCI_DEBUG is not set +# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set +# CONFIG_PCI_STUB is not set +# CONFIG_PCI_IOV is not set +# CONFIG_PCI_PRI is not set +# CONFIG_PCI_PASID is not set + +# +# PCI host controller drivers +# +CONFIG_PCIE_DW=y +CONFIG_PCI_IMX6=y +# CONFIG_PCCARD is not set + +# +# Kernel Features +# +CONFIG_HAVE_SMP=y +CONFIG_SMP=y +CONFIG_SMP_ON_UP=y +CONFIG_ARM_CPU_TOPOLOGY=y +CONFIG_SCHED_MC=y +CONFIG_SCHED_SMT=y +CONFIG_HAVE_ARM_SCU=y +CONFIG_HAVE_ARM_ARCH_TIMER=y +CONFIG_HAVE_ARM_TWD=y +# CONFIG_MCPM is not set +CONFIG_VMSPLIT_3G=y +# CONFIG_VMSPLIT_2G is not set +# CONFIG_VMSPLIT_1G is not set +CONFIG_PAGE_OFFSET=0xC0000000 +CONFIG_NR_CPUS=8 +CONFIG_HOTPLUG_CPU=y +CONFIG_ARM_PSCI=y +CONFIG_LOCAL_TIMERS=y +CONFIG_ARCH_NR_GPIO=512 +CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_VOLUNTARY is not set +# CONFIG_PREEMPT is not set +CONFIG_HZ=100 +CONFIG_SCHED_HRTICK=y +# CONFIG_THUMB2_KERNEL is not set +CONFIG_AEABI=y +# CONFIG_OABI_COMPAT is not set +CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y +# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set +# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set +CONFIG_HAVE_ARCH_PFN_VALID=y +CONFIG_HIGHMEM=y +CONFIG_HIGHPTE=y +CONFIG_HW_PERF_EVENTS=y +CONFIG_FLATMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +CONFIG_HAVE_MEMBLOCK=y +CONFIG_MEMORY_ISOLATION=y +# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set +CONFIG_PAGEFLAGS_EXTENDED=y +CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_COMPACTION=y +CONFIG_MIGRATION=y +# CONFIG_PHYS_ADDR_T_64BIT is not set +CONFIG_ZONE_DMA_FLAG=1 +CONFIG_BOUNCE=y +CONFIG_KSM=y +CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 +CONFIG_CROSS_MEMORY_ATTACH=y +CONFIG_CLEANCACHE=y +# CONFIG_FRONTSWAP is not set +CONFIG_FORCE_MAX_ZONEORDER=12 +CONFIG_ALIGNMENT_TRAP=y +# CONFIG_SECCOMP is not set +CONFIG_CC_STACKPROTECTOR=y +# CONFIG_XEN is not set + +# +# Boot options +# +CONFIG_USE_OF=y +CONFIG_ATAGS=y +# CONFIG_DEPRECATED_PARAM_STRUCT is not set +CONFIG_ZBOOT_ROM_TEXT=0 +CONFIG_ZBOOT_ROM_BSS=0 +CONFIG_ARM_APPENDED_DTB=y +CONFIG_ARM_ATAG_DTB_COMPAT=y +CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER=y +# CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND is not set +CONFIG_CMDLINE="console=ttyAM0,115200 root=/dev/sda1 rootdelay=20" +CONFIG_CMDLINE_FROM_BOOTLOADER=y +# CONFIG_CMDLINE_EXTEND is not set +# CONFIG_CMDLINE_FORCE is not set +# CONFIG_KEXEC is not set +CONFIG_CRASH_DUMP=y +CONFIG_AUTO_ZRELADDR=y + +# +# CPU Power Management +# + +# +# CPU Frequency scaling +# +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_TABLE=y +CONFIG_CPU_FREQ_GOV_COMMON=y +CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_FREQ_STAT_DETAILS=y +CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_GENERIC_CPUFREQ_CPU0=y + +# +# ARM CPU frequency scaling drivers +# +# CONFIG_ARM_BIG_LITTLE_CPUFREQ is not set +# CONFIG_ARM_EXYNOS4210_CPUFREQ is not set +# CONFIG_ARM_EXYNOS4X12_CPUFREQ is not set +# CONFIG_ARM_EXYNOS5250_CPUFREQ is not set +# CONFIG_ARM_EXYNOS5440_CPUFREQ is not set +CONFIG_ARM_IMX6Q_CPUFREQ=m +# CONFIG_ARM_KIRKWOOD_CPUFREQ is not set +CONFIG_ARM_OMAP2PLUS_CPUFREQ=y +# CONFIG_CPU_IDLE is not set +CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED=y + +# +# Floating point emulation +# + +# +# At least one emulation must be selected +# +CONFIG_VFP=y +CONFIG_VFPv3=y +CONFIG_NEON=y + +# +# Userspace binary formats +# +CONFIG_BINFMT_ELF=y +CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y +CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y +CONFIG_BINFMT_SCRIPT=y +# CONFIG_HAVE_AOUT is not set +CONFIG_BINFMT_MISC=y +CONFIG_COREDUMP=y + +# +# Power management options +# +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y +# CONFIG_PM_AUTOSLEEP is not set +# CONFIG_PM_WAKELOCKS is not set +CONFIG_PM_RUNTIME=y +CONFIG_PM=y +# CONFIG_PM_DEBUG is not set +CONFIG_APM_EMULATION=y +CONFIG_ARCH_HAS_OPP=y +CONFIG_PM_OPP=y +CONFIG_PM_CLK=y +CONFIG_CPU_PM=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_ARM_CPU_SUSPEND=y +CONFIG_NET=y + +# +# Networking options +# +CONFIG_PACKET=y +CONFIG_PACKET_DIAG=y +CONFIG_UNIX=y +CONFIG_UNIX_DIAG=m +CONFIG_XFRM=y +CONFIG_XFRM_ALGO=y +CONFIG_XFRM_USER=y +CONFIG_XFRM_SUB_POLICY=y +CONFIG_XFRM_MIGRATE=y +CONFIG_XFRM_STATISTICS=y +CONFIG_XFRM_IPCOMP=m +CONFIG_NET_KEY=m +CONFIG_NET_KEY_MIGRATE=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_IP_FIB_TRIE_STATS=y +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IP_ROUTE_MULTIPATH=y +CONFIG_IP_ROUTE_VERBOSE=y +CONFIG_IP_ROUTE_CLASSID=y +# CONFIG_IP_PNP is not set +CONFIG_NET_IPIP=m +CONFIG_NET_IPGRE_DEMUX=m +CONFIG_NET_IP_TUNNEL=m +CONFIG_NET_IPGRE=m +CONFIG_NET_IPGRE_BROADCAST=y +CONFIG_IP_MROUTE=y +CONFIG_IP_MROUTE_MULTIPLE_TABLES=y +CONFIG_IP_PIMSM_V1=y +CONFIG_IP_PIMSM_V2=y +# CONFIG_ARPD is not set +CONFIG_SYN_COOKIES=y +CONFIG_NET_IPVTI=m +CONFIG_INET_AH=m +CONFIG_INET_ESP=m +CONFIG_INET_IPCOMP=m +CONFIG_INET_XFRM_TUNNEL=m +CONFIG_INET_TUNNEL=m +CONFIG_INET_XFRM_MODE_TRANSPORT=m +CONFIG_INET_XFRM_MODE_TUNNEL=m +CONFIG_INET_XFRM_MODE_BEET=m +CONFIG_INET_LRO=y +CONFIG_INET_DIAG=m +CONFIG_INET_TCP_DIAG=m +CONFIG_INET_UDP_DIAG=m +CONFIG_TCP_CONG_ADVANCED=y +CONFIG_TCP_CONG_BIC=m +CONFIG_TCP_CONG_CUBIC=y +CONFIG_TCP_CONG_WESTWOOD=m +CONFIG_TCP_CONG_HTCP=m +CONFIG_TCP_CONG_HSTCP=m +CONFIG_TCP_CONG_HYBLA=m +CONFIG_TCP_CONG_VEGAS=m +CONFIG_TCP_CONG_SCALABLE=m +CONFIG_TCP_CONG_LP=m +CONFIG_TCP_CONG_VENO=m +CONFIG_TCP_CONG_YEAH=m +CONFIG_TCP_CONG_ILLINOIS=m +CONFIG_DEFAULT_CUBIC=y +# CONFIG_DEFAULT_RENO is not set +CONFIG_DEFAULT_TCP_CONG="cubic" +CONFIG_TCP_MD5SIG=y +CONFIG_IPV6=y +CONFIG_IPV6_PRIVACY=y +CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_ROUTE_INFO=y +CONFIG_IPV6_OPTIMISTIC_DAD=y +CONFIG_INET6_AH=m +CONFIG_INET6_ESP=m +CONFIG_INET6_IPCOMP=m +CONFIG_IPV6_MIP6=m +CONFIG_INET6_XFRM_TUNNEL=m +CONFIG_INET6_TUNNEL=m +CONFIG_INET6_XFRM_MODE_TRANSPORT=m +CONFIG_INET6_XFRM_MODE_TUNNEL=m +CONFIG_INET6_XFRM_MODE_BEET=m +CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m +CONFIG_IPV6_SIT=m +CONFIG_IPV6_SIT_6RD=y +CONFIG_IPV6_NDISC_NODETYPE=y +CONFIG_IPV6_TUNNEL=m +CONFIG_IPV6_GRE=m +CONFIG_IPV6_MULTIPLE_TABLES=y +CONFIG_IPV6_SUBTREES=y +CONFIG_IPV6_MROUTE=y +CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y +CONFIG_IPV6_PIMSM_V2=y +# CONFIG_NETLABEL is not set +CONFIG_NETWORK_SECMARK=y +# CONFIG_NETWORK_PHY_TIMESTAMPING is not set +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set +CONFIG_NETFILTER_ADVANCED=y +CONFIG_BRIDGE_NETFILTER=y + +# +# Core Netfilter Configuration +# +CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_NETLINK_ACCT=m +CONFIG_NETFILTER_NETLINK_QUEUE=m +CONFIG_NETFILTER_NETLINK_LOG=m +CONFIG_NF_CONNTRACK=y +CONFIG_NF_CONNTRACK_MARK=y +CONFIG_NF_CONNTRACK_SECMARK=y +CONFIG_NF_CONNTRACK_ZONES=y +CONFIG_NF_CONNTRACK_PROCFS=y +CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CONNTRACK_TIMEOUT=y +CONFIG_NF_CONNTRACK_TIMESTAMP=y +CONFIG_NF_CONNTRACK_LABELS=y +CONFIG_NF_CT_PROTO_DCCP=m +CONFIG_NF_CT_PROTO_GRE=m +CONFIG_NF_CT_PROTO_SCTP=m +CONFIG_NF_CT_PROTO_UDPLITE=m +CONFIG_NF_CONNTRACK_AMANDA=m +CONFIG_NF_CONNTRACK_FTP=m +CONFIG_NF_CONNTRACK_H323=m +CONFIG_NF_CONNTRACK_IRC=m +CONFIG_NF_CONNTRACK_BROADCAST=m +CONFIG_NF_CONNTRACK_NETBIOS_NS=m +CONFIG_NF_CONNTRACK_SNMP=m +CONFIG_NF_CONNTRACK_PPTP=m +CONFIG_NF_CONNTRACK_SANE=m +CONFIG_NF_CONNTRACK_SIP=m +CONFIG_NF_CONNTRACK_TFTP=m +CONFIG_NF_CT_NETLINK=m +CONFIG_NF_CT_NETLINK_TIMEOUT=m +CONFIG_NF_CT_NETLINK_HELPER=m +CONFIG_NETFILTER_NETLINK_QUEUE_CT=y +CONFIG_NF_NAT=m +CONFIG_NF_NAT_NEEDED=y +CONFIG_NF_NAT_PROTO_DCCP=m +CONFIG_NF_NAT_PROTO_UDPLITE=m +CONFIG_NF_NAT_PROTO_SCTP=m +CONFIG_NF_NAT_AMANDA=m +CONFIG_NF_NAT_FTP=m +CONFIG_NF_NAT_IRC=m +CONFIG_NF_NAT_SIP=m +CONFIG_NF_NAT_TFTP=m +CONFIG_NETFILTER_TPROXY=m +CONFIG_NETFILTER_XTABLES=y + +# +# Xtables combined modules +# +CONFIG_NETFILTER_XT_MARK=m +CONFIG_NETFILTER_XT_CONNMARK=m +CONFIG_NETFILTER_XT_SET=m + +# +# Xtables targets +# +CONFIG_NETFILTER_XT_TARGET_AUDIT=m +CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m +CONFIG_NETFILTER_XT_TARGET_CONNMARK=m +CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m +CONFIG_NETFILTER_XT_TARGET_CT=m +CONFIG_NETFILTER_XT_TARGET_DSCP=m +CONFIG_NETFILTER_XT_TARGET_HL=m +CONFIG_NETFILTER_XT_TARGET_HMARK=m +CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m +CONFIG_NETFILTER_XT_TARGET_LED=m +CONFIG_NETFILTER_XT_TARGET_LOG=m +CONFIG_NETFILTER_XT_TARGET_IMQ=m +CONFIG_NETFILTER_XT_TARGET_MARK=m +CONFIG_NETFILTER_XT_TARGET_NETMAP=m +CONFIG_NETFILTER_XT_TARGET_NFLOG=m +CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m +CONFIG_NETFILTER_XT_TARGET_NOTRACK=m +CONFIG_NETFILTER_XT_TARGET_RATEEST=m +CONFIG_NETFILTER_XT_TARGET_REDIRECT=m +CONFIG_NETFILTER_XT_TARGET_TEE=m +CONFIG_NETFILTER_XT_TARGET_TPROXY=m +CONFIG_NETFILTER_XT_TARGET_TRACE=m +CONFIG_NETFILTER_XT_TARGET_SECMARK=m +CONFIG_NETFILTER_XT_TARGET_TCPMSS=m +CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m + +# +# Xtables matches +# +CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m +CONFIG_NETFILTER_XT_MATCH_BPF=m +CONFIG_NETFILTER_XT_MATCH_CLUSTER=m +CONFIG_NETFILTER_XT_MATCH_COMMENT=m +CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m +CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m +CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m +CONFIG_NETFILTER_XT_MATCH_CONNMARK=m +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NETFILTER_XT_MATCH_CPU=m +CONFIG_NETFILTER_XT_MATCH_DCCP=m +CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m +CONFIG_NETFILTER_XT_MATCH_DSCP=m +CONFIG_NETFILTER_XT_MATCH_ECN=m +CONFIG_NETFILTER_XT_MATCH_ESP=m +CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m +CONFIG_NETFILTER_XT_MATCH_HELPER=m +CONFIG_NETFILTER_XT_MATCH_HL=m +CONFIG_NETFILTER_XT_MATCH_IPRANGE=m +# CONFIG_NETFILTER_XT_MATCH_IPVS is not set +CONFIG_NETFILTER_XT_MATCH_LENGTH=m +CONFIG_NETFILTER_XT_MATCH_LIMIT=m +CONFIG_NETFILTER_XT_MATCH_MAC=m +CONFIG_NETFILTER_XT_MATCH_MARK=m +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_NFACCT=m +CONFIG_NETFILTER_XT_MATCH_OSF=m +CONFIG_NETFILTER_XT_MATCH_OWNER=m +CONFIG_NETFILTER_XT_MATCH_POLICY=m +CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m +CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m +CONFIG_NETFILTER_XT_MATCH_QUOTA=m +CONFIG_NETFILTER_XT_MATCH_RATEEST=m +CONFIG_NETFILTER_XT_MATCH_REALM=m +CONFIG_NETFILTER_XT_MATCH_RECENT=m +CONFIG_NETFILTER_XT_MATCH_SCTP=m +CONFIG_NETFILTER_XT_MATCH_SOCKET=m +CONFIG_NETFILTER_XT_MATCH_STATE=m +CONFIG_NETFILTER_XT_MATCH_LAYER7=m +# CONFIG_NETFILTER_XT_MATCH_LAYER7_DEBUG is not set +CONFIG_NETFILTER_XT_MATCH_STATISTIC=m +CONFIG_NETFILTER_XT_MATCH_STRING=m +CONFIG_NETFILTER_XT_MATCH_TCPMSS=m +CONFIG_NETFILTER_XT_MATCH_TIME=m +CONFIG_NETFILTER_XT_MATCH_U32=m +CONFIG_IP_SET=m +CONFIG_IP_SET_MAX=256 +CONFIG_IP_SET_BITMAP_IP=m +CONFIG_IP_SET_BITMAP_IPMAC=m +CONFIG_IP_SET_BITMAP_PORT=m +CONFIG_IP_SET_HASH_IP=m +CONFIG_IP_SET_HASH_IPPORT=m +CONFIG_IP_SET_HASH_IPPORTIP=m +CONFIG_IP_SET_HASH_IPPORTNET=m +CONFIG_IP_SET_HASH_NET=m +CONFIG_IP_SET_HASH_NETPORT=m +CONFIG_IP_SET_HASH_NETIFACE=m +CONFIG_IP_SET_LIST_SET=m +CONFIG_IP_VS=m +CONFIG_IP_VS_IPV6=y +# CONFIG_IP_VS_DEBUG is not set +CONFIG_IP_VS_TAB_BITS=12 + +# +# IPVS transport protocol load balancing support +# +CONFIG_IP_VS_PROTO_TCP=y +CONFIG_IP_VS_PROTO_UDP=y +CONFIG_IP_VS_PROTO_AH_ESP=y +CONFIG_IP_VS_PROTO_ESP=y +CONFIG_IP_VS_PROTO_AH=y +CONFIG_IP_VS_PROTO_SCTP=y + +# +# IPVS scheduler +# +CONFIG_IP_VS_RR=m +CONFIG_IP_VS_WRR=m +CONFIG_IP_VS_LC=m +CONFIG_IP_VS_WLC=m +CONFIG_IP_VS_LBLC=m +CONFIG_IP_VS_LBLCR=m +CONFIG_IP_VS_DH=m +CONFIG_IP_VS_SH=m +CONFIG_IP_VS_SED=m +CONFIG_IP_VS_NQ=m + +# +# IPVS SH scheduler +# +CONFIG_IP_VS_SH_TAB_BITS=8 + +# +# IPVS application helper +# +CONFIG_IP_VS_FTP=m +CONFIG_IP_VS_NFCT=y +CONFIG_IP_VS_PE_SIP=m + +# +# IP: Netfilter Configuration +# +CONFIG_NF_DEFRAG_IPV4=y +CONFIG_NF_CONNTRACK_IPV4=y +# CONFIG_NF_CONNTRACK_PROC_COMPAT is not set +CONFIG_IP_NF_IPTABLES=y +CONFIG_IP_NF_MATCH_AH=m +CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_RPFILTER=m +CONFIG_IP_NF_MATCH_TTL=m +CONFIG_IP_NF_FILTER=m +CONFIG_IP_NF_TARGET_REJECT=m +# CONFIG_IP_NF_TARGET_ULOG is not set +CONFIG_NF_NAT_IPV4=m +CONFIG_IP_NF_TARGET_MASQUERADE=m +CONFIG_IP_NF_TARGET_NETMAP=m +CONFIG_IP_NF_TARGET_REDIRECT=m +CONFIG_NF_NAT_SNMP_BASIC=m +CONFIG_NF_NAT_PROTO_GRE=m +CONFIG_NF_NAT_PPTP=m +CONFIG_NF_NAT_H323=m +CONFIG_IP_NF_MANGLE=m +CONFIG_IP_NF_TARGET_CLUSTERIP=m +CONFIG_IP_NF_TARGET_ECN=m +CONFIG_IP_NF_TARGET_TTL=m +CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_SECURITY=m +CONFIG_IP_NF_ARPTABLES=m +CONFIG_IP_NF_ARPFILTER=m +CONFIG_IP_NF_ARP_MANGLE=m +CONFIG_IP_NF_MATCH_IPP2P=m + +# +# IPv6: Netfilter Configuration +# +CONFIG_NF_DEFRAG_IPV6=y +CONFIG_NF_CONNTRACK_IPV6=y +CONFIG_IP6_NF_IPTABLES=y +CONFIG_IP6_NF_MATCH_AH=m +CONFIG_IP6_NF_MATCH_EUI64=m +CONFIG_IP6_NF_MATCH_FRAG=m +CONFIG_IP6_NF_MATCH_OPTS=m +CONFIG_IP6_NF_MATCH_HL=m +CONFIG_IP6_NF_MATCH_IPV6HEADER=m +CONFIG_IP6_NF_MATCH_MH=m +CONFIG_IP6_NF_MATCH_RPFILTER=m +CONFIG_IP6_NF_MATCH_RT=m +CONFIG_IP6_NF_TARGET_HL=m +CONFIG_IP6_NF_FILTER=m +CONFIG_IP6_NF_TARGET_REJECT=m +CONFIG_IP6_NF_MANGLE=m +CONFIG_IP6_NF_RAW=m +CONFIG_IP6_NF_SECURITY=m +CONFIG_NF_NAT_IPV6=m +CONFIG_IP6_NF_TARGET_MASQUERADE=m +CONFIG_IP6_NF_TARGET_NPT=m +CONFIG_BRIDGE_NF_EBTABLES=m +CONFIG_BRIDGE_EBT_BROUTE=m +CONFIG_BRIDGE_EBT_T_FILTER=m +CONFIG_BRIDGE_EBT_T_NAT=m +CONFIG_BRIDGE_EBT_802_3=m +CONFIG_BRIDGE_EBT_AMONG=m +CONFIG_BRIDGE_EBT_ARP=m +CONFIG_BRIDGE_EBT_IP=m +CONFIG_BRIDGE_EBT_IP6=m +CONFIG_BRIDGE_EBT_LIMIT=m +CONFIG_BRIDGE_EBT_MARK=m +CONFIG_BRIDGE_EBT_PKTTYPE=m +CONFIG_BRIDGE_EBT_STP=m +CONFIG_BRIDGE_EBT_VLAN=m +CONFIG_BRIDGE_EBT_ARPREPLY=m +CONFIG_BRIDGE_EBT_DNAT=m +CONFIG_BRIDGE_EBT_MARK_T=m +CONFIG_BRIDGE_EBT_REDIRECT=m +CONFIG_BRIDGE_EBT_SNAT=m +CONFIG_BRIDGE_EBT_LOG=m +# CONFIG_BRIDGE_EBT_ULOG is not set +CONFIG_BRIDGE_EBT_NFLOG=m +# CONFIG_IP_DCCP is not set +CONFIG_IP_SCTP=m +# CONFIG_SCTP_DBG_MSG is not set +# CONFIG_SCTP_DBG_OBJCNT is not set +# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set +CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y +# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set +CONFIG_SCTP_COOKIE_HMAC_MD5=y +CONFIG_SCTP_COOKIE_HMAC_SHA1=y +# CONFIG_RDS is not set +# CONFIG_TIPC is not set +CONFIG_ATM=m +CONFIG_ATM_CLIP=m +# CONFIG_ATM_CLIP_NO_ICMP is not set +# CONFIG_ATM_LANE is not set +CONFIG_ATM_BR2684=m +# CONFIG_ATM_BR2684_IPFILTER is not set +CONFIG_L2TP=m +# CONFIG_L2TP_DEBUGFS is not set +CONFIG_L2TP_V3=y +CONFIG_L2TP_IP=m +CONFIG_L2TP_ETH=m +CONFIG_STP=y +CONFIG_GARP=m +CONFIG_BRIDGE=y +CONFIG_BRIDGE_IGMP_SNOOPING=y +CONFIG_BRIDGE_VLAN_FILTERING=y +CONFIG_HAVE_NET_DSA=y +CONFIG_NET_DSA=y +CONFIG_NET_DSA_TAG_DSA=y +CONFIG_NET_DSA_TAG_EDSA=y +CONFIG_NET_DSA_TAG_TRAILER=y +CONFIG_VLAN_8021Q=m +CONFIG_VLAN_8021Q_GVRP=y +# CONFIG_VLAN_8021Q_MVRP is not set +# CONFIG_DECNET is not set +CONFIG_LLC=y +# CONFIG_LLC2 is not set +# CONFIG_IPX is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_PHONET is not set +# CONFIG_IEEE802154 is not set +CONFIG_NET_SCHED=y + +# +# Queueing/Scheduling +# +CONFIG_NET_SCH_CBQ=m +CONFIG_NET_SCH_HTB=m +CONFIG_NET_SCH_HFSC=m +CONFIG_NET_SCH_ATM=m +CONFIG_NET_SCH_PRIO=m +CONFIG_NET_SCH_MULTIQ=m +CONFIG_NET_SCH_RED=m +CONFIG_NET_SCH_SFB=m +CONFIG_NET_SCH_SFQ=m +CONFIG_NET_SCH_TEQL=m +CONFIG_NET_SCH_TBF=m +CONFIG_NET_SCH_GRED=m +CONFIG_NET_SCH_DSMARK=m +CONFIG_NET_SCH_NETEM=m +CONFIG_NET_SCH_DRR=m +CONFIG_NET_SCH_MQPRIO=m +CONFIG_NET_SCH_CHOKE=m +CONFIG_NET_SCH_QFQ=m +CONFIG_NET_SCH_CODEL=m +CONFIG_NET_SCH_FQ_CODEL=m +CONFIG_NET_SCH_INGRESS=m +CONFIG_NET_SCH_PLUG=m + +# +# Classification +# +CONFIG_NET_CLS=y +CONFIG_NET_CLS_BASIC=m +CONFIG_NET_CLS_TCINDEX=m +CONFIG_NET_CLS_ROUTE4=m +CONFIG_NET_CLS_FW=m +CONFIG_NET_CLS_U32=m +CONFIG_CLS_U32_PERF=y +CONFIG_CLS_U32_MARK=y +CONFIG_NET_CLS_RSVP=m +CONFIG_NET_CLS_RSVP6=m +CONFIG_NET_CLS_FLOW=m +CONFIG_NET_CLS_CGROUP=m +CONFIG_NET_EMATCH=y +CONFIG_NET_EMATCH_STACK=32 +CONFIG_NET_EMATCH_CMP=m +CONFIG_NET_EMATCH_NBYTE=m +CONFIG_NET_EMATCH_U32=m +CONFIG_NET_EMATCH_META=m +CONFIG_NET_EMATCH_TEXT=m +CONFIG_NET_EMATCH_IPSET=m +CONFIG_NET_CLS_ACT=y +CONFIG_NET_ACT_POLICE=m +CONFIG_NET_ACT_GACT=m +CONFIG_GACT_PROB=y +CONFIG_NET_ACT_MIRRED=m +CONFIG_NET_ACT_IPT=m +CONFIG_NET_ACT_NAT=m +CONFIG_NET_ACT_PEDIT=m +CONFIG_NET_ACT_SIMP=m +CONFIG_NET_ACT_SKBEDIT=m +CONFIG_NET_ACT_CSUM=m +CONFIG_NET_CLS_IND=y +CONFIG_NET_SCH_FIFO=y +# CONFIG_DCB is not set +CONFIG_DNS_RESOLVER=y +CONFIG_BATMAN_ADV=m +CONFIG_BATMAN_ADV_BLA=y +CONFIG_BATMAN_ADV_DAT=y +CONFIG_BATMAN_ADV_NC=y +# CONFIG_BATMAN_ADV_DEBUG is not set +CONFIG_OPENVSWITCH=m +CONFIG_VSOCKETS=m +CONFIG_NETLINK_MMAP=y +CONFIG_NETLINK_DIAG=m +CONFIG_RPS=y +CONFIG_RFS_ACCEL=y +CONFIG_XPS=y +CONFIG_NETPRIO_CGROUP=m +CONFIG_BQL=y +CONFIG_BPF_JIT=y + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_NET_DROP_MONITOR is not set +# CONFIG_HAMRADIO is not set +# CONFIG_CAN is not set +# CONFIG_IRDA is not set +CONFIG_BT=m +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_CMTP=m +CONFIG_BT_HIDP=m + +# +# Bluetooth device drivers +# +CONFIG_BT_HCIBTUSB=m +CONFIG_BT_HCIBTSDIO=m +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIUART_ATH3K=y +CONFIG_BT_HCIUART_LL=y +CONFIG_BT_HCIUART_3WIRE=y +CONFIG_BT_HCIBCM203X=m +CONFIG_BT_HCIBPA10X=m +CONFIG_BT_HCIBFUSB=m +CONFIG_BT_HCIVHCI=m +CONFIG_BT_MRVL=m +CONFIG_BT_MRVL_SDIO=m +CONFIG_BT_ATH3K=m +CONFIG_BT_WILINK=m +# CONFIG_AF_RXRPC is not set +CONFIG_FIB_RULES=y +CONFIG_WIRELESS=y +CONFIG_WIRELESS_EXT=y +CONFIG_WEXT_CORE=y +CONFIG_WEXT_PROC=y +CONFIG_WEXT_SPY=y +CONFIG_WEXT_PRIV=y +CONFIG_CFG80211=m +# CONFIG_NL80211_TESTMODE is not set +# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set +# CONFIG_CFG80211_REG_DEBUG is not set +# CONFIG_CFG80211_CERTIFICATION_ONUS is not set +CONFIG_CFG80211_DEFAULT_PS=y +# CONFIG_CFG80211_DEBUGFS is not set +# CONFIG_CFG80211_INTERNAL_REGDB is not set +CONFIG_CFG80211_WEXT=y +CONFIG_LIB80211=m +CONFIG_LIB80211_CRYPT_WEP=m +CONFIG_LIB80211_CRYPT_CCMP=m +CONFIG_LIB80211_CRYPT_TKIP=m +# CONFIG_LIB80211_DEBUG is not set +CONFIG_MAC80211=m +CONFIG_MAC80211_HAS_RC=y +# CONFIG_MAC80211_RC_PID is not set +CONFIG_MAC80211_RC_MINSTREL=y +CONFIG_MAC80211_RC_MINSTREL_HT=y +CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y +CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" +CONFIG_MAC80211_MESH=y +CONFIG_MAC80211_LEDS=y +# CONFIG_MAC80211_DEBUGFS is not set +# CONFIG_MAC80211_MESSAGE_TRACING is not set +# CONFIG_MAC80211_DEBUG_MENU is not set +# CONFIG_WIMAX is not set +CONFIG_RFKILL=y +CONFIG_RFKILL_LEDS=y +CONFIG_RFKILL_INPUT=y +CONFIG_RFKILL_REGULATOR=m +# CONFIG_RFKILL_GPIO is not set +# CONFIG_NET_9P is not set +# CONFIG_CAIF is not set +# CONFIG_CEPH_LIB is not set +# CONFIG_NFC is not set +CONFIG_HAVE_BPF_JIT=y + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_UEVENT_HELPER_PATH="" +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_FW_LOADER=y +CONFIG_FIRMWARE_IN_KERNEL=y +CONFIG_EXTRA_FIRMWARE="" +CONFIG_FW_LOADER_USER_HELPER=y +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_SYS_HYPERVISOR is not set +# CONFIG_GENERIC_CPU_DEVICES is not set +CONFIG_SOC_BUS=y +CONFIG_REGMAP=y +CONFIG_REGMAP_I2C=y +CONFIG_REGMAP_MMIO=y +CONFIG_REGMAP_IRQ=y +CONFIG_DMA_SHARED_BUFFER=y +CONFIG_CMA=y +CONFIG_CMA_DEBUG=y + +# +# Default contiguous memory area size: +# +CONFIG_CMA_SIZE_MBYTES=16 +CONFIG_CMA_SIZE_SEL_MBYTES=y +# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set +# CONFIG_CMA_SIZE_SEL_MIN is not set +# CONFIG_CMA_SIZE_SEL_MAX is not set +CONFIG_CMA_ALIGNMENT=8 +CONFIG_CMA_AREAS=7 + +# +# Bus devices +# +CONFIG_MVEBU_MBUS=y +CONFIG_OMAP_OCP2SCP=y +CONFIG_OMAP_INTERCONNECT=y +CONFIG_CONNECTOR=y +CONFIG_PROC_EVENTS=y +CONFIG_MTD=y +# CONFIG_MTD_TESTS is not set +# CONFIG_MTD_REDBOOT_PARTS is not set +CONFIG_MTD_CMDLINE_PARTS=y +# CONFIG_MTD_AFS_PARTS is not set +CONFIG_MTD_OF_PARTS=y +# CONFIG_MTD_AR7_PARTS is not set + +# +# User Modules And Translation Layers +# +# CONFIG_MTD_BLKDEVS is not set +# CONFIG_MTD_BLOCK is not set +# CONFIG_MTD_BLOCK_RO is not set +# CONFIG_FTL is not set +# CONFIG_NFTL is not set +# CONFIG_INFTL is not set +# CONFIG_RFD_FTL is not set +# CONFIG_SSFDC is not set +# CONFIG_SM_FTL is not set +# CONFIG_MTD_OOPS is not set +# CONFIG_MTD_SWAP is not set + +# +# RAM/ROM/Flash chip drivers +# +# CONFIG_MTD_CFI is not set +# CONFIG_MTD_JEDECPROBE is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +# CONFIG_MTD_RAM is not set +# CONFIG_MTD_ROM is not set +# CONFIG_MTD_ABSENT is not set + +# +# Mapping drivers for chip access +# +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +# CONFIG_MTD_INTEL_VR_NOR is not set +# CONFIG_MTD_PLATRAM is not set + +# +# Self-contained MTD device drivers +# +# CONFIG_MTD_PMC551 is not set +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLOCK2MTD is not set + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOCG3 is not set +CONFIG_BCH_CONST_M=13 +CONFIG_BCH_CONST_T=8 +CONFIG_MTD_NAND_ECC=y +CONFIG_MTD_NAND_ECC_SMC=y +CONFIG_MTD_NAND=y +# CONFIG_MTD_NAND_ECC_BCH is not set +# CONFIG_MTD_SM_COMMON is not set +# CONFIG_MTD_NAND_DENALI is not set +# CONFIG_MTD_NAND_GPIO is not set +CONFIG_MTD_NAND_OMAP2=y +CONFIG_MTD_NAND_OMAP_BCH=m +CONFIG_MTD_NAND_OMAP_BCH8=y +# CONFIG_MTD_NAND_OMAP_BCH4 is not set +CONFIG_MTD_NAND_IDS=y +# CONFIG_MTD_NAND_RICOH is not set +# CONFIG_MTD_NAND_DISKONCHIP is not set +# CONFIG_MTD_NAND_DOCG4 is not set +# CONFIG_MTD_NAND_CAFE is not set +# CONFIG_MTD_NAND_NANDSIM is not set +CONFIG_MTD_NAND_GPMI_NAND=m +# CONFIG_MTD_NAND_PLATFORM is not set +# CONFIG_MTD_ALAUDA is not set +CONFIG_MTD_NAND_ORION=y +CONFIG_MTD_NAND_MXC=m +# CONFIG_MTD_ONENAND is not set + +# +# LPDDR flash memory drivers +# +# CONFIG_MTD_LPDDR is not set +CONFIG_MTD_UBI=y +CONFIG_MTD_UBI_WL_THRESHOLD=4096 +CONFIG_MTD_UBI_BEB_LIMIT=20 +# CONFIG_MTD_UBI_FASTMAP is not set +# CONFIG_MTD_UBI_GLUEBI is not set +CONFIG_DTC=y +CONFIG_OF=y + +# +# Device Tree and Open Firmware support +# +CONFIG_PROC_DEVICETREE=y +# CONFIG_OF_SELFTEST is not set +CONFIG_OF_FLATTREE=y +CONFIG_OF_EARLY_FLATTREE=y +CONFIG_OF_ADDRESS=y +CONFIG_OF_IRQ=y +CONFIG_OF_DEVICE=y +CONFIG_OF_I2C=y +CONFIG_OF_NET=y +CONFIG_OF_MDIO=y +CONFIG_OF_PCI=y +CONFIG_OF_PCI_IRQ=y +CONFIG_OF_MTD=y +CONFIG_PARPORT=m +# CONFIG_PARPORT_PC is not set +# CONFIG_PARPORT_GSC is not set +# CONFIG_PARPORT_AX88796 is not set +CONFIG_PARPORT_1284=y +CONFIG_PARPORT_NOT_PC=y +CONFIG_BLK_DEV=y +# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set +# CONFIG_BLK_CPQ_CISS_DA is not set +# CONFIG_BLK_DEV_DAC960 is not set +# CONFIG_BLK_DEV_UMEM is not set +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 +CONFIG_BLK_DEV_CRYPTOLOOP=m +# CONFIG_BLK_DEV_DRBD is not set +# CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_NVME is not set +# CONFIG_BLK_DEV_OSD is not set +# CONFIG_BLK_DEV_SX8 is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=16384 +# CONFIG_BLK_DEV_XIP is not set +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set +# CONFIG_MG_DISK is not set +# CONFIG_BLK_DEV_RBD is not set +# CONFIG_BLK_DEV_RSXX is not set + +# +# Misc devices +# +# CONFIG_SENSORS_LIS3LV02D is not set +# CONFIG_AD525X_DPOT is not set +# CONFIG_ATMEL_PWM is not set +CONFIG_DUMMY_IRQ=m +# CONFIG_PHANTOM is not set +# CONFIG_INTEL_MID_PTI is not set +# CONFIG_SGI_IOC4 is not set +# CONFIG_TIFM_CORE is not set +CONFIG_ICS932S401=m +# CONFIG_ATMEL_SSC is not set +CONFIG_ENCLOSURE_SERVICES=m +# CONFIG_HP_ILO is not set +# CONFIG_APDS9802ALS is not set +# CONFIG_ISL29003 is not set +# CONFIG_ISL29020 is not set +# CONFIG_SENSORS_TSL2550 is not set +# CONFIG_SENSORS_BH1780 is not set +# CONFIG_SENSORS_BH1770 is not set +# CONFIG_SENSORS_APDS990X is not set +# CONFIG_HMC6352 is not set +CONFIG_DS1682=m +CONFIG_ARM_CHARLCD=y +CONFIG_BMP085=y +CONFIG_BMP085_I2C=m +# CONFIG_PCH_PHUB is not set +CONFIG_USB_SWITCH_FSA9480=m +# CONFIG_SRAM is not set +# CONFIG_C2PORT is not set + +# +# EEPROM support +# +CONFIG_EEPROM_AT24=m +CONFIG_EEPROM_LEGACY=m +CONFIG_EEPROM_MAX6875=m +CONFIG_EEPROM_93CX6=m +# CONFIG_CB710_CORE is not set + +# +# Texas Instruments shared transport line discipline +# +CONFIG_TI_ST=m +# CONFIG_SENSORS_LIS3_I2C is not set + +# +# Altera FPGA firmware download module +# +CONFIG_ALTERA_STAPL=m +CONFIG_HAVE_IDE=y +# CONFIG_IDE is not set + +# +# SCSI device support +# +CONFIG_SCSI_MOD=y +CONFIG_RAID_ATTRS=m +CONFIG_SCSI=y +CONFIG_SCSI_DMA=y +CONFIG_SCSI_TGT=m +CONFIG_SCSI_NETLINK=y +CONFIG_SCSI_PROC_FS=y + +# +# SCSI support type (disk, tape, CD-ROM) +# +CONFIG_BLK_DEV_SD=y +CONFIG_CHR_DEV_ST=m +CONFIG_CHR_DEV_OSST=m +CONFIG_BLK_DEV_SR=y +CONFIG_BLK_DEV_SR_VENDOR=y +CONFIG_CHR_DEV_SG=y +CONFIG_CHR_DEV_SCH=m +CONFIG_SCSI_ENCLOSURE=m +CONFIG_SCSI_MULTI_LUN=y +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_SCAN_ASYNC=y + +# +# SCSI Transports +# +CONFIG_SCSI_SPI_ATTRS=m +CONFIG_SCSI_FC_ATTRS=m +CONFIG_SCSI_FC_TGT_ATTRS=y +CONFIG_SCSI_ISCSI_ATTRS=m +CONFIG_SCSI_SAS_ATTRS=m +CONFIG_SCSI_SAS_LIBSAS=m +CONFIG_SCSI_SAS_ATA=y +CONFIG_SCSI_SAS_HOST_SMP=y +CONFIG_SCSI_SRP_ATTRS=m +CONFIG_SCSI_SRP_TGT_ATTRS=y +CONFIG_SCSI_LOWLEVEL=y +CONFIG_ISCSI_TCP=m +CONFIG_ISCSI_BOOT_SYSFS=m +CONFIG_SCSI_CXGB3_ISCSI=m +CONFIG_SCSI_CXGB4_ISCSI=m +CONFIG_SCSI_BNX2_ISCSI=m +CONFIG_SCSI_BNX2X_FCOE=m +CONFIG_BE2ISCSI=m +CONFIG_BLK_DEV_3W_XXXX_RAID=m +CONFIG_SCSI_HPSA=m +CONFIG_SCSI_3W_9XXX=m +CONFIG_SCSI_3W_SAS=m +CONFIG_SCSI_ACARD=m +CONFIG_SCSI_AACRAID=m +CONFIG_SCSI_AIC7XXX=m +CONFIG_AIC7XXX_CMDS_PER_DEVICE=32 +CONFIG_AIC7XXX_RESET_DELAY_MS=5000 +CONFIG_AIC7XXX_DEBUG_ENABLE=y +CONFIG_AIC7XXX_DEBUG_MASK=0 +CONFIG_AIC7XXX_REG_PRETTY_PRINT=y +# CONFIG_SCSI_AIC7XXX_OLD is not set +CONFIG_SCSI_AIC79XX=m +CONFIG_AIC79XX_CMDS_PER_DEVICE=32 +CONFIG_AIC79XX_RESET_DELAY_MS=5000 +CONFIG_AIC79XX_DEBUG_ENABLE=y +CONFIG_AIC79XX_DEBUG_MASK=0 +CONFIG_AIC79XX_REG_PRETTY_PRINT=y +CONFIG_SCSI_AIC94XX=m +CONFIG_AIC94XX_DEBUG=y +CONFIG_SCSI_MVSAS=m +CONFIG_SCSI_MVSAS_DEBUG=y +# CONFIG_SCSI_MVSAS_TASKLET is not set +CONFIG_SCSI_MVUMI=m +CONFIG_SCSI_ARCMSR=m +CONFIG_MEGARAID_NEWGEN=y +# CONFIG_MEGARAID_MM is not set +CONFIG_MEGARAID_LEGACY=m +CONFIG_MEGARAID_SAS=m +CONFIG_SCSI_MPT2SAS=m +CONFIG_SCSI_MPT2SAS_MAX_SGE=128 +# CONFIG_SCSI_MPT2SAS_LOGGING is not set +CONFIG_SCSI_MPT3SAS=m +CONFIG_SCSI_MPT3SAS_MAX_SGE=128 +# CONFIG_SCSI_MPT3SAS_LOGGING is not set +CONFIG_SCSI_UFSHCD=m +CONFIG_SCSI_UFSHCD_PCI=m +CONFIG_SCSI_UFSHCD_PLATFORM=m +CONFIG_SCSI_HPTIOP=m +CONFIG_LIBFC=m +CONFIG_LIBFCOE=m +CONFIG_FCOE=m +CONFIG_SCSI_DMX3191D=m +CONFIG_SCSI_FUTURE_DOMAIN=m +CONFIG_SCSI_IPS=m +CONFIG_SCSI_INITIO=m +CONFIG_SCSI_INIA100=m +CONFIG_SCSI_STEX=m +CONFIG_SCSI_SYM53C8XX_2=m +CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 +CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 +CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 +CONFIG_SCSI_SYM53C8XX_MMIO=y +CONFIG_SCSI_IPR=m +# CONFIG_SCSI_IPR_TRACE is not set +# CONFIG_SCSI_IPR_DUMP is not set +CONFIG_SCSI_QLOGIC_1280=m +CONFIG_SCSI_QLA_FC=m +CONFIG_SCSI_QLA_ISCSI=m +CONFIG_SCSI_LPFC=m +CONFIG_SCSI_LPFC_DEBUG_FS=y +CONFIG_SCSI_DC395x=m +CONFIG_SCSI_DC390T=m +CONFIG_SCSI_NSP32=m +CONFIG_SCSI_DEBUG=m +CONFIG_SCSI_PMCRAID=m +CONFIG_SCSI_PM8001=m +CONFIG_SCSI_SRP=m +CONFIG_SCSI_BFA_FC=m +CONFIG_SCSI_CHELSIO_FCOE=m +CONFIG_SCSI_DH=y +CONFIG_SCSI_DH_RDAC=m +CONFIG_SCSI_DH_HP_SW=m +CONFIG_SCSI_DH_EMC=m +CONFIG_SCSI_DH_ALUA=m +CONFIG_SCSI_OSD_INITIATOR=m +CONFIG_SCSI_OSD_ULD=m +CONFIG_SCSI_OSD_DPRINT_SENSE=1 +# CONFIG_SCSI_OSD_DEBUG is not set +CONFIG_HAVE_PATA_PLATFORM=y +CONFIG_ATA=y +# CONFIG_ATA_NONSTANDARD is not set +CONFIG_ATA_VERBOSE_ERROR=y +CONFIG_SATA_PMP=y + +# +# Controllers with non-SFF native interface +# +# CONFIG_SATA_AHCI is not set +CONFIG_SATA_AHCI_PLATFORM=m +CONFIG_AHCI_IMX=m +# CONFIG_SATA_INIC162X is not set +# CONFIG_SATA_ACARD_AHCI is not set +# CONFIG_SATA_SIL24 is not set +CONFIG_ATA_SFF=y + +# +# SFF controllers with custom DMA interface +# +# CONFIG_PDC_ADMA is not set +# CONFIG_SATA_QSTOR is not set +# CONFIG_SATA_SX4 is not set +CONFIG_ATA_BMDMA=y + +# +# SATA SFF controllers with BMDMA +# +# CONFIG_ATA_PIIX is not set +CONFIG_SATA_HIGHBANK=m +CONFIG_SATA_MV=m +# CONFIG_SATA_NV is not set +# CONFIG_SATA_PROMISE is not set +# CONFIG_SATA_SIL is not set +# CONFIG_SATA_SIS is not set +# CONFIG_SATA_SVW is not set +# CONFIG_SATA_ULI is not set +# CONFIG_SATA_VIA is not set +# CONFIG_SATA_VITESSE is not set + +# +# PATA SFF controllers with BMDMA +# +# CONFIG_PATA_ALI is not set +# CONFIG_PATA_AMD is not set +CONFIG_PATA_ARASAN_CF=m +# CONFIG_PATA_ARTOP is not set +# CONFIG_PATA_ATIIXP is not set +# CONFIG_PATA_ATP867X is not set +# CONFIG_PATA_CMD64X is not set +# CONFIG_PATA_CS5520 is not set +# CONFIG_PATA_CS5530 is not set +# CONFIG_PATA_CS5536 is not set +# CONFIG_PATA_CYPRESS is not set +# CONFIG_PATA_EFAR is not set +# CONFIG_PATA_HPT366 is not set +# CONFIG_PATA_HPT37X is not set +# CONFIG_PATA_HPT3X2N is not set +# CONFIG_PATA_HPT3X3 is not set +CONFIG_PATA_IMX=m +# CONFIG_PATA_IT8213 is not set +# CONFIG_PATA_IT821X is not set +# CONFIG_PATA_JMICRON is not set +# CONFIG_PATA_MARVELL is not set +# CONFIG_PATA_NETCELL is not set +# CONFIG_PATA_NINJA32 is not set +# CONFIG_PATA_NS87415 is not set +# CONFIG_PATA_OLDPIIX is not set +# CONFIG_PATA_OPTIDMA is not set +# CONFIG_PATA_PDC2027X is not set +# CONFIG_PATA_PDC_OLD is not set +# CONFIG_PATA_RADISYS is not set +# CONFIG_PATA_RDC is not set +# CONFIG_PATA_SC1200 is not set +# CONFIG_PATA_SCH is not set +# CONFIG_PATA_SERVERWORKS is not set +# CONFIG_PATA_SIL680 is not set +# CONFIG_PATA_SIS is not set +# CONFIG_PATA_TOSHIBA is not set +# CONFIG_PATA_TRIFLEX is not set +# CONFIG_PATA_VIA is not set +# CONFIG_PATA_WINBOND is not set + +# +# PIO-only SFF controllers +# +# CONFIG_PATA_CMD640_PCI is not set +# CONFIG_PATA_MPIIX is not set +# CONFIG_PATA_NS87410 is not set +# CONFIG_PATA_OPTI is not set +# CONFIG_PATA_PLATFORM is not set +# CONFIG_PATA_RZ1000 is not set + +# +# Generic fallback / legacy drivers +# +# CONFIG_ATA_GENERIC is not set +# CONFIG_PATA_LEGACY is not set +CONFIG_MD=y +CONFIG_BLK_DEV_MD=y +CONFIG_MD_AUTODETECT=y +CONFIG_MD_LINEAR=m +CONFIG_MD_RAID0=m +CONFIG_MD_RAID1=m +CONFIG_MD_RAID10=m +CONFIG_MD_RAID456=m +CONFIG_MD_MULTIPATH=m +CONFIG_MD_FAULTY=m +CONFIG_BCACHE=m +# CONFIG_BCACHE_DEBUG is not set +# CONFIG_BCACHE_EDEBUG is not set +# CONFIG_BCACHE_CLOSURES_DEBUG is not set +CONFIG_BLK_DEV_DM_BUILTIN=y +CONFIG_BLK_DEV_DM=y +# CONFIG_DM_DEBUG is not set +CONFIG_DM_BUFIO=m +CONFIG_DM_BIO_PRISON=m +CONFIG_DM_PERSISTENT_DATA=m +CONFIG_DM_CRYPT=m +CONFIG_DM_SNAPSHOT=y +# CONFIG_DM_THIN_PROVISIONING is not set +CONFIG_DM_CACHE=m +CONFIG_DM_CACHE_MQ=m +CONFIG_DM_CACHE_CLEANER=m +CONFIG_DM_MIRROR=y +CONFIG_DM_RAID=m +CONFIG_DM_LOG_USERSPACE=m +CONFIG_DM_ZERO=y +CONFIG_DM_MULTIPATH=m +CONFIG_DM_MULTIPATH_QL=m +CONFIG_DM_MULTIPATH_ST=m +# CONFIG_DM_DELAY is not set +CONFIG_DM_UEVENT=y +# CONFIG_DM_FLAKEY is not set +CONFIG_DM_VERITY=m +# CONFIG_TARGET_CORE is not set +# CONFIG_FUSION is not set + +# +# IEEE 1394 (FireWire) support +# +CONFIG_FIREWIRE=m +CONFIG_FIREWIRE_OHCI=m +CONFIG_FIREWIRE_SBP2=m +# CONFIG_FIREWIRE_NET is not set +# CONFIG_FIREWIRE_NOSY is not set +# CONFIG_I2O is not set +CONFIG_NETDEVICES=y +CONFIG_NET_CORE=y +CONFIG_BONDING=m +CONFIG_DUMMY=m +# CONFIG_EQUALIZER is not set +# CONFIG_NET_FC is not set +CONFIG_MII=m +CONFIG_IFB=m +# CONFIG_NET_TEAM is not set +CONFIG_MACVLAN=m +CONFIG_MACVTAP=m +CONFIG_VXLAN=m +CONFIG_NETCONSOLE=m +CONFIG_NETCONSOLE_DYNAMIC=y +CONFIG_NETPOLL=y +CONFIG_NETPOLL_TRAP=y +CONFIG_NET_POLL_CONTROLLER=y +CONFIG_IMQ=m +# CONFIG_IMQ_BEHAVIOR_AA is not set +CONFIG_IMQ_BEHAVIOR_AB=y +# CONFIG_IMQ_BEHAVIOR_BA is not set +# CONFIG_IMQ_BEHAVIOR_BB is not set +CONFIG_IMQ_NUM_DEVS=2 +CONFIG_TUN=m +CONFIG_VETH=m +CONFIG_SUNGEM_PHY=m +# CONFIG_ARCNET is not set +CONFIG_ATM_DRIVERS=y +# CONFIG_ATM_DUMMY is not set +CONFIG_ATM_TCP=m +CONFIG_ATM_LANAI=m +CONFIG_ATM_ENI=m +# CONFIG_ATM_ENI_DEBUG is not set +# CONFIG_ATM_ENI_TUNE_BURST is not set +CONFIG_ATM_NICSTAR=m +# CONFIG_ATM_NICSTAR_USE_SUNI is not set +# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set +CONFIG_ATM_IDT77252=m +# CONFIG_ATM_IDT77252_DEBUG is not set +# CONFIG_ATM_IDT77252_RCV_ALL is not set +CONFIG_ATM_IDT77252_USE_SUNI=y +CONFIG_ATM_IA=m +# CONFIG_ATM_IA_DEBUG is not set +CONFIG_ATM_FORE200E=m +# CONFIG_ATM_FORE200E_USE_TASKLET is not set +CONFIG_ATM_FORE200E_TX_RETRY=16 +CONFIG_ATM_FORE200E_DEBUG=0 +CONFIG_ATM_HE=m +# CONFIG_ATM_HE_USE_SUNI is not set +CONFIG_ATM_SOLOS=m + +# +# CAIF transport drivers +# + +# +# Distributed Switch Architecture drivers +# +CONFIG_NET_DSA_MV88E6XXX=y +CONFIG_NET_DSA_MV88E6060=y +CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y +CONFIG_NET_DSA_MV88E6131=y +CONFIG_NET_DSA_MV88E6123_61_65=y +CONFIG_ETHERNET=y +CONFIG_MDIO=m +CONFIG_NET_VENDOR_3COM=y +CONFIG_TYPHOON=m +CONFIG_NET_VENDOR_ADAPTEC=y +CONFIG_ADAPTEC_STARFIRE=m +CONFIG_NET_VENDOR_ALTEON=y +CONFIG_ACENIC=m +# CONFIG_ACENIC_OMIT_TIGON_I is not set +CONFIG_NET_VENDOR_AMD=y +CONFIG_AMD8111_ETH=m +CONFIG_PCNET32=m +CONFIG_NET_VENDOR_ATHEROS=y +CONFIG_ATL2=m +CONFIG_ATL1=m +CONFIG_ATL1E=m +CONFIG_ATL1C=m +CONFIG_ALX=m +CONFIG_NET_CADENCE=y +CONFIG_ARM_AT91_ETHER=m +CONFIG_MACB=m +CONFIG_NET_VENDOR_BROADCOM=y +CONFIG_B44=m +CONFIG_B44_PCI_AUTOSELECT=y +CONFIG_B44_PCICORE_AUTOSELECT=y +CONFIG_B44_PCI=y +CONFIG_BNX2=m +CONFIG_CNIC=m +CONFIG_TIGON3=m +CONFIG_BNX2X=m +CONFIG_NET_VENDOR_BROCADE=y +CONFIG_BNA=m +CONFIG_NET_CALXEDA_XGMAC=m +CONFIG_NET_VENDOR_CHELSIO=y +CONFIG_CHELSIO_T1=m +# CONFIG_CHELSIO_T1_1G is not set +CONFIG_CHELSIO_T3=m +CONFIG_CHELSIO_T4=m +CONFIG_CHELSIO_T4VF=m +CONFIG_NET_VENDOR_CIRRUS=y +CONFIG_CS89x0=m +CONFIG_CS89x0_PLATFORM=y +CONFIG_NET_VENDOR_CISCO=y +CONFIG_ENIC=m +CONFIG_DM9000=m +# CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set +CONFIG_DNET=m +CONFIG_NET_VENDOR_DEC=y +CONFIG_NET_TULIP=y +CONFIG_DE2104X=m +CONFIG_DE2104X_DSL=0 +CONFIG_TULIP=m +CONFIG_TULIP_MWI=y +CONFIG_TULIP_MMIO=y +CONFIG_TULIP_NAPI=y +CONFIG_TULIP_NAPI_HW_MITIGATION=y +CONFIG_WINBOND_840=m +CONFIG_DM9102=m +CONFIG_ULI526X=m +CONFIG_NET_VENDOR_DLINK=y +CONFIG_DL2K=m +CONFIG_SUNDANCE=m +# CONFIG_SUNDANCE_MMIO is not set +CONFIG_NET_VENDOR_EMULEX=y +CONFIG_BE2NET=m +CONFIG_NET_VENDOR_EXAR=y +CONFIG_S2IO=m +CONFIG_VXGE=m +# CONFIG_VXGE_DEBUG_TRACE_ALL is not set +CONFIG_NET_VENDOR_FARADAY=y +CONFIG_FTMAC100=m +CONFIG_FTGMAC100=m +CONFIG_NET_VENDOR_FREESCALE=y +CONFIG_FEC=m +CONFIG_NET_VENDOR_HP=y +CONFIG_HP100=m +CONFIG_NET_VENDOR_INTEL=y +CONFIG_E100=m +CONFIG_E1000=m +CONFIG_E1000E=m +CONFIG_IGB=m +CONFIG_IGB_HWMON=y +CONFIG_IGBVF=m +CONFIG_IXGB=m +CONFIG_IXGBE=m +CONFIG_IXGBE_HWMON=y +CONFIG_NET_VENDOR_I825XX=y +CONFIG_IP1000=m +CONFIG_JME=m +CONFIG_NET_VENDOR_MARVELL=y +CONFIG_MV643XX_ETH=m +CONFIG_MVMDIO=m +CONFIG_MVNETA=m +CONFIG_SKGE=m +# CONFIG_SKGE_DEBUG is not set +CONFIG_SKGE_GENESIS=y +CONFIG_SKY2=m +# CONFIG_SKY2_DEBUG is not set +CONFIG_NET_VENDOR_MELLANOX=y +CONFIG_MLX4_EN=m +CONFIG_MLX4_CORE=m +CONFIG_MLX4_DEBUG=y +CONFIG_NET_VENDOR_MICREL=y +CONFIG_KS8842=m +CONFIG_KS8851_MLL=m +CONFIG_KSZ884X_PCI=m +CONFIG_NET_VENDOR_MYRI=y +CONFIG_MYRI10GE=m +CONFIG_FEALNX=m +CONFIG_NET_VENDOR_NATSEMI=y +CONFIG_NATSEMI=m +CONFIG_NS83820=m +CONFIG_NET_VENDOR_8390=y +CONFIG_AX88796=m +CONFIG_AX88796_93CX6=y +CONFIG_NE2K_PCI=m +CONFIG_NET_VENDOR_NVIDIA=y +CONFIG_FORCEDETH=m +CONFIG_NET_VENDOR_OKI=y +CONFIG_PCH_GBE=m +CONFIG_ETHOC=m +CONFIG_NET_PACKET_ENGINE=y +CONFIG_HAMACHI=m +CONFIG_YELLOWFIN=m +CONFIG_NET_VENDOR_QLOGIC=y +CONFIG_QLA3XXX=m +CONFIG_QLCNIC=m +CONFIG_QLGE=m +CONFIG_NETXEN_NIC=m +CONFIG_NET_VENDOR_REALTEK=y +CONFIG_8139CP=m +CONFIG_8139TOO=m +# CONFIG_8139TOO_PIO is not set +# CONFIG_8139TOO_TUNE_TWISTER is not set +CONFIG_8139TOO_8129=y +# CONFIG_8139_OLD_RX_RESET is not set +CONFIG_R8169=m +CONFIG_NET_VENDOR_RDC=y +CONFIG_R6040=m +CONFIG_NET_VENDOR_SEEQ=y +CONFIG_NET_VENDOR_SILAN=y +CONFIG_SC92031=m +CONFIG_NET_VENDOR_SIS=y +CONFIG_SIS900=m +CONFIG_SIS190=m +CONFIG_SFC=m +CONFIG_SFC_MTD=y +CONFIG_SFC_MCDI_MON=y +CONFIG_NET_VENDOR_SMSC=y +CONFIG_SMC91X=m +CONFIG_EPIC100=m +CONFIG_SMC911X=m +CONFIG_SMSC911X=m +# CONFIG_SMSC911X_ARCH_HOOKS is not set +CONFIG_SMSC9420=m +CONFIG_NET_VENDOR_STMICRO=y +CONFIG_STMMAC_ETH=m +CONFIG_STMMAC_PLATFORM=y +# CONFIG_STMMAC_PCI is not set +# CONFIG_STMMAC_DEBUG_FS is not set +# CONFIG_STMMAC_DA is not set +CONFIG_NET_VENDOR_SUN=y +CONFIG_HAPPYMEAL=m +CONFIG_SUNGEM=m +CONFIG_CASSINI=m +CONFIG_NIU=m +CONFIG_NET_VENDOR_TEHUTI=y +CONFIG_TEHUTI=m +CONFIG_NET_VENDOR_TI=y +CONFIG_TI_DAVINCI_EMAC=m +CONFIG_TI_DAVINCI_MDIO=m +CONFIG_TI_DAVINCI_CPDMA=m +CONFIG_TI_CPSW=m +CONFIG_TI_CPTS=y +CONFIG_TLAN=m +CONFIG_NET_VENDOR_VIA=y +CONFIG_VIA_RHINE=m +# CONFIG_VIA_RHINE_MMIO is not set +CONFIG_VIA_VELOCITY=m +CONFIG_NET_VENDOR_WIZNET=y +CONFIG_WIZNET_W5100=m +CONFIG_WIZNET_W5300=m +# CONFIG_WIZNET_BUS_DIRECT is not set +# CONFIG_WIZNET_BUS_INDIRECT is not set +CONFIG_WIZNET_BUS_ANY=y +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +CONFIG_PHYLIB=y + +# +# MII PHY device drivers +# +CONFIG_AT803X_PHY=m +CONFIG_AMD_PHY=m +CONFIG_MARVELL_PHY=m +CONFIG_DAVICOM_PHY=m +CONFIG_QSEMI_PHY=m +CONFIG_LXT_PHY=m +CONFIG_CICADA_PHY=m +CONFIG_VITESSE_PHY=m +CONFIG_SMSC_PHY=m +CONFIG_BROADCOM_PHY=m +CONFIG_BCM87XX_PHY=m +CONFIG_ICPLUS_PHY=m +CONFIG_REALTEK_PHY=m +CONFIG_NATIONAL_PHY=m +CONFIG_STE10XP=m +CONFIG_LSI_ET1011C_PHY=m +CONFIG_MICREL_PHY=m +CONFIG_FIXED_PHY=y +CONFIG_MDIO_BITBANG=m +# CONFIG_MDIO_GPIO is not set +CONFIG_MDIO_BUS_MUX=m +CONFIG_MDIO_BUS_MUX_GPIO=m +CONFIG_MDIO_BUS_MUX_MMIOREG=m +# CONFIG_PLIP is not set +CONFIG_PPP=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_FILTER=y +CONFIG_PPP_MPPE=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPPOATM=m +CONFIG_PPPOE=m +CONFIG_PPTP=m +CONFIG_PPPOL2TP=m +CONFIG_PPP_ASYNC=m +CONFIG_PPP_SYNC_TTY=m +# CONFIG_SLIP is not set +CONFIG_SLHC=m + +# +# USB Network Adapters +# +CONFIG_USB_CATC=m +CONFIG_USB_KAWETH=m +CONFIG_USB_PEGASUS=m +CONFIG_USB_RTL8150=m +CONFIG_USB_RTL8152=m +CONFIG_USB_USBNET=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_AX88179_178A=m +CONFIG_USB_NET_CDCETHER=m +CONFIG_USB_NET_CDC_EEM=m +CONFIG_USB_NET_CDC_NCM=m +CONFIG_USB_NET_CDC_MBIM=m +CONFIG_USB_NET_DM9601=m +CONFIG_USB_NET_SMSC75XX=m +CONFIG_USB_NET_SMSC95XX=m +CONFIG_USB_NET_GL620A=m +CONFIG_USB_NET_NET1080=m +CONFIG_USB_NET_PLUSB=m +CONFIG_USB_NET_MCS7830=m +CONFIG_USB_NET_RNDIS_HOST=m +CONFIG_USB_NET_CDC_SUBSET=m +CONFIG_USB_ALI_M5632=y +CONFIG_USB_AN2720=y +CONFIG_USB_BELKIN=y +CONFIG_USB_ARMLINUX=y +CONFIG_USB_EPSON2888=y +CONFIG_USB_KC2190=y +CONFIG_USB_NET_ZAURUS=m +CONFIG_USB_NET_CX82310_ETH=m +CONFIG_USB_NET_KALMIA=m +CONFIG_USB_NET_QMI_WWAN=m +CONFIG_USB_HSO=m +CONFIG_USB_NET_INT51X1=m +CONFIG_USB_IPHETH=m +CONFIG_USB_SIERRA_NET=m +CONFIG_USB_VL600=m +CONFIG_WLAN=y +CONFIG_LIBERTAS_THINFIRM=m +# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set +CONFIG_LIBERTAS_THINFIRM_USB=m +CONFIG_ATMEL=m +CONFIG_PCI_ATMEL=m +CONFIG_AT76C50X_USB=m +CONFIG_PRISM54=m +CONFIG_USB_ZD1201=m +CONFIG_USB_NET_RNDIS_WLAN=m +CONFIG_RTL8180=m +CONFIG_RTL8187=m +CONFIG_RTL8187_LEDS=y +CONFIG_ADM8211=m +CONFIG_MAC80211_HWSIM=m +CONFIG_MWL8K=m +CONFIG_ATH_COMMON=m +CONFIG_ATH_CARDS=m +# CONFIG_ATH_DEBUG is not set +# CONFIG_ATH5K is not set +# CONFIG_ATH5K_PCI is not set +CONFIG_ATH9K_HW=m +CONFIG_ATH9K_COMMON=m +CONFIG_ATH9K_BTCOEX_SUPPORT=y +CONFIG_ATH9K=m +CONFIG_ATH9K_PCI=y +CONFIG_ATH9K_AHB=y +# CONFIG_ATH9K_DEBUGFS is not set +# CONFIG_ATH9K_LEGACY_RATE_CONTROL is not set +CONFIG_ATH9K_HTC=m +# CONFIG_ATH9K_HTC_DEBUGFS is not set +CONFIG_CARL9170=m +CONFIG_CARL9170_LEDS=y +CONFIG_CARL9170_WPC=y +# CONFIG_CARL9170_HWRNG is not set +# CONFIG_ATH6KL is not set +CONFIG_AR5523=m +# CONFIG_WIL6210 is not set +CONFIG_B43=m +CONFIG_B43_SSB=y +CONFIG_B43_PCI_AUTOSELECT=y +CONFIG_B43_PCICORE_AUTOSELECT=y +CONFIG_B43_SDIO=y +CONFIG_B43_PIO=y +CONFIG_B43_PHY_N=y +CONFIG_B43_PHY_LP=y +CONFIG_B43_LEDS=y +CONFIG_B43_HWRNG=y +# CONFIG_B43_DEBUG is not set +CONFIG_B43LEGACY=m +CONFIG_B43LEGACY_PCI_AUTOSELECT=y +CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y +CONFIG_B43LEGACY_LEDS=y +CONFIG_B43LEGACY_HWRNG=y +# CONFIG_B43LEGACY_DEBUG is not set +CONFIG_B43LEGACY_DMA=y +CONFIG_B43LEGACY_PIO=y +CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y +# CONFIG_B43LEGACY_DMA_MODE is not set +# CONFIG_B43LEGACY_PIO_MODE is not set +CONFIG_BRCMUTIL=m +CONFIG_BRCMFMAC=m +CONFIG_BRCMFMAC_SDIO=y +# CONFIG_BRCMFMAC_USB is not set +# CONFIG_BRCM_TRACING is not set +# CONFIG_BRCMDBG is not set +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +CONFIG_HOSTAP_FIRMWARE_NVRAM=y +CONFIG_HOSTAP_PLX=m +CONFIG_HOSTAP_PCI=m +CONFIG_IPW2100=m +CONFIG_IPW2100_MONITOR=y +# CONFIG_IPW2100_DEBUG is not set +CONFIG_IPW2200=m +CONFIG_IPW2200_MONITOR=y +# CONFIG_IPW2200_RADIOTAP is not set +# CONFIG_IPW2200_PROMISCUOUS is not set +# CONFIG_IPW2200_QOS is not set +# CONFIG_IPW2200_DEBUG is not set +CONFIG_LIBIPW=m +# CONFIG_LIBIPW_DEBUG is not set +CONFIG_IWLWIFI=m +CONFIG_IWLDVM=m +CONFIG_IWLMVM=m +CONFIG_IWLWIFI_OPMODE_MODULAR=y + +# +# Debugging Options +# +# CONFIG_IWLWIFI_DEBUG is not set +# CONFIG_IWLWIFI_DEVICE_TRACING is not set +CONFIG_IWLWIFI_P2P=y +CONFIG_IWLEGACY=m +CONFIG_IWL4965=m +CONFIG_IWL3945=m + +# +# iwl3945 / iwl4965 Debugging Options +# +# CONFIG_IWLEGACY_DEBUG is not set +CONFIG_LIBERTAS=m +CONFIG_LIBERTAS_USB=m +CONFIG_LIBERTAS_SDIO=m +# CONFIG_LIBERTAS_DEBUG is not set +CONFIG_LIBERTAS_MESH=y +CONFIG_HERMES=m +# CONFIG_HERMES_PRISM is not set +CONFIG_HERMES_CACHE_FW_ON_INIT=y +CONFIG_PLX_HERMES=m +CONFIG_TMD_HERMES=m +CONFIG_NORTEL_HERMES=m +CONFIG_ORINOCO_USB=m +CONFIG_P54_COMMON=m +CONFIG_P54_USB=m +CONFIG_P54_PCI=m +CONFIG_P54_LEDS=y +CONFIG_RT2X00=m +# CONFIG_RT2400PCI is not set +# CONFIG_RT2500PCI is not set +# CONFIG_RT61PCI is not set +# CONFIG_RT2800PCI is not set +CONFIG_RT2500USB=m +CONFIG_RT73USB=m +CONFIG_RT2800USB=m +CONFIG_RT2800USB_RT33XX=y +CONFIG_RT2800USB_RT35XX=y +CONFIG_RT2800USB_RT53XX=y +CONFIG_RT2800USB_RT55XX=y +CONFIG_RT2800USB_UNKNOWN=y +CONFIG_RT2800_LIB=m +CONFIG_RT2X00_LIB_USB=m +CONFIG_RT2X00_LIB=m +CONFIG_RT2X00_LIB_FIRMWARE=y +CONFIG_RT2X00_LIB_CRYPTO=y +CONFIG_RT2X00_LIB_LEDS=y +# CONFIG_RT2X00_DEBUG is not set +CONFIG_RTLWIFI=m +# CONFIG_RTLWIFI_DEBUG is not set +CONFIG_RTL8192CE=m +CONFIG_RTL8192SE=m +CONFIG_RTL8192DE=m +CONFIG_RTL8723AE=m +CONFIG_RTL8188EE=m +CONFIG_RTL8192CU=m +CONFIG_RTL8192C_COMMON=m +CONFIG_WL_TI=y +CONFIG_WL1251=m +CONFIG_WL1251_SDIO=m +CONFIG_WL12XX=m +CONFIG_WL18XX=m +CONFIG_WLCORE=m +CONFIG_WLCORE_SDIO=m +CONFIG_WILINK_PLATFORM_DATA=y +CONFIG_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set +CONFIG_MWIFIEX=m +CONFIG_MWIFIEX_SDIO=m +CONFIG_MWIFIEX_PCIE=m +CONFIG_MWIFIEX_USB=m + +# +# Enable WiMAX (Networking options) to see the WiMAX drivers +# +# CONFIG_WAN is not set +CONFIG_VMXNET3=m +CONFIG_ISDN=y +CONFIG_ISDN_I4L=m +CONFIG_ISDN_PPP=y +CONFIG_ISDN_PPP_VJ=y +CONFIG_ISDN_MPP=y +CONFIG_IPPP_FILTER=y +CONFIG_ISDN_PPP_BSDCOMP=m +CONFIG_ISDN_AUDIO=y +CONFIG_ISDN_TTY_FAX=y + +# +# ISDN feature submodules +# +CONFIG_ISDN_DIVERSION=m + +# +# ISDN4Linux hardware drivers +# + +# +# Passive cards +# +CONFIG_ISDN_DRV_HISAX=m + +# +# D-channel protocol features +# +CONFIG_HISAX_EURO=y +CONFIG_DE_AOC=y +CONFIG_HISAX_NO_SENDCOMPLETE=y +CONFIG_HISAX_NO_LLC=y +CONFIG_HISAX_NO_KEYPAD=y +CONFIG_HISAX_1TR6=y +CONFIG_HISAX_NI1=y +CONFIG_HISAX_MAX_CARDS=8 + +# +# HiSax supported cards +# +CONFIG_HISAX_16_3=y +# CONFIG_HISAX_TELESPCI is not set +CONFIG_HISAX_S0BOX=y +CONFIG_HISAX_FRITZPCI=y +CONFIG_HISAX_AVM_A1_PCMCIA=y +CONFIG_HISAX_ELSA=y +CONFIG_HISAX_DIEHLDIVA=y +CONFIG_HISAX_SEDLBAUER=y +CONFIG_HISAX_NICCY=y +# CONFIG_HISAX_BKM_A4T is not set +# CONFIG_HISAX_SCT_QUADRO is not set +CONFIG_HISAX_GAZEL=y +# CONFIG_HISAX_HFC_PCI is not set +# CONFIG_HISAX_W6692 is not set +CONFIG_HISAX_HFC_SX=y +# CONFIG_HISAX_DEBUG is not set + +# +# HiSax PCMCIA card service modules +# + +# +# HiSax sub driver modules +# +CONFIG_HISAX_ST5481=m +CONFIG_HISAX_HFCUSB=m +CONFIG_HISAX_HFC4S8S=m +# CONFIG_HISAX_FRITZ_PCIPNP is not set + +# +# Active cards +# +CONFIG_ISDN_CAPI=m +CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y +CONFIG_CAPI_TRACE=y +CONFIG_ISDN_CAPI_MIDDLEWARE=y +CONFIG_ISDN_CAPI_CAPI20=m +CONFIG_ISDN_CAPI_CAPIDRV=m + +# +# CAPI hardware drivers +# +CONFIG_CAPI_AVM=y +# CONFIG_ISDN_DRV_AVMB1_B1PCI is not set +# CONFIG_ISDN_DRV_AVMB1_T1PCI is not set +# CONFIG_ISDN_DRV_AVMB1_C4 is not set +CONFIG_CAPI_EICON=y +# CONFIG_ISDN_DIVAS is not set +# CONFIG_ISDN_DRV_GIGASET is not set +# CONFIG_HYSDN is not set +# CONFIG_MISDN is not set +CONFIG_ISDN_HDLC=m + +# +# Input device support +# +CONFIG_INPUT=y +CONFIG_INPUT_FF_MEMLESS=m +CONFIG_INPUT_POLLDEV=m +CONFIG_INPUT_SPARSEKMAP=m +CONFIG_INPUT_MATRIXKMAP=m + +# +# Userland interfaces +# +CONFIG_INPUT_MOUSEDEV=y +# CONFIG_INPUT_MOUSEDEV_PSAUX is not set +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +# CONFIG_INPUT_JOYDEV is not set +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_EVBUG is not set +# CONFIG_INPUT_APMPOWER is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +# CONFIG_KEYBOARD_ADP5588 is not set +# CONFIG_KEYBOARD_ADP5589 is not set +CONFIG_KEYBOARD_ATKBD=y +# CONFIG_KEYBOARD_QT1070 is not set +# CONFIG_KEYBOARD_QT2160 is not set +# CONFIG_KEYBOARD_LKKBD is not set +CONFIG_KEYBOARD_GPIO=y +# CONFIG_KEYBOARD_TCA6416 is not set +# CONFIG_KEYBOARD_TCA8418 is not set +# CONFIG_KEYBOARD_MATRIX is not set +# CONFIG_KEYBOARD_LM8323 is not set +CONFIG_KEYBOARD_LM8333=m +# CONFIG_KEYBOARD_MAX7359 is not set +# CONFIG_KEYBOARD_MCS is not set +# CONFIG_KEYBOARD_MPR121 is not set +CONFIG_KEYBOARD_IMX=m +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_OPENCORES is not set +# CONFIG_KEYBOARD_SAMSUNG is not set +# CONFIG_KEYBOARD_STOWAWAY is not set +# CONFIG_KEYBOARD_SUNKBD is not set +CONFIG_KEYBOARD_OMAP4=m +CONFIG_KEYBOARD_TWL4030=m +# CONFIG_KEYBOARD_XTKBD is not set +CONFIG_INPUT_MOUSE=y +CONFIG_MOUSE_PS2=m +CONFIG_MOUSE_PS2_ALPS=y +CONFIG_MOUSE_PS2_LOGIPS2PP=y +CONFIG_MOUSE_PS2_SYNAPTICS=y +CONFIG_MOUSE_PS2_CYPRESS=y +CONFIG_MOUSE_PS2_TRACKPOINT=y +CONFIG_MOUSE_PS2_ELANTECH=y +CONFIG_MOUSE_PS2_SENTELIC=y +CONFIG_MOUSE_PS2_TOUCHKIT=y +CONFIG_MOUSE_SERIAL=m +CONFIG_MOUSE_APPLETOUCH=m +CONFIG_MOUSE_BCM5974=m +CONFIG_MOUSE_CYAPA=m +CONFIG_MOUSE_VSXXXAA=m +# CONFIG_MOUSE_GPIO is not set +CONFIG_MOUSE_SYNAPTICS_I2C=m +CONFIG_MOUSE_SYNAPTICS_USB=m +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TABLET is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +CONFIG_INPUT_MISC=y +# CONFIG_INPUT_88PM860X_ONKEY is not set +# CONFIG_INPUT_88PM80X_ONKEY is not set +# CONFIG_INPUT_AD714X is not set +# CONFIG_INPUT_BMA150 is not set +# CONFIG_INPUT_MMA8450 is not set +# CONFIG_INPUT_MPU3050 is not set +# CONFIG_INPUT_GP2A is not set +# CONFIG_INPUT_GPIO_TILT_POLLED is not set +CONFIG_INPUT_ATI_REMOTE2=m +CONFIG_INPUT_KEYSPAN_REMOTE=m +# CONFIG_INPUT_KXTJ9 is not set +CONFIG_INPUT_POWERMATE=m +CONFIG_INPUT_YEALINK=m +CONFIG_INPUT_CM109=m +CONFIG_INPUT_RETU_PWRBUTTON=m +CONFIG_INPUT_TWL4030_PWRBUTTON=m +CONFIG_INPUT_TWL4030_VIBRA=m +CONFIG_INPUT_UINPUT=m +# CONFIG_INPUT_PCF8574 is not set +CONFIG_INPUT_PWM_BEEPER=m +CONFIG_INPUT_GPIO_ROTARY_ENCODER=m +# CONFIG_INPUT_ADXL34X is not set +# CONFIG_INPUT_IMS_PCU is not set +# CONFIG_INPUT_CMA3000 is not set + +# +# Hardware I/O ports +# +CONFIG_SERIO=y +CONFIG_SERIO_SERPORT=y +# CONFIG_SERIO_PARKBD is not set +CONFIG_SERIO_AMBAKMI=m +# CONFIG_SERIO_PCIPS2 is not set +CONFIG_SERIO_LIBPS2=y +CONFIG_SERIO_RAW=m +CONFIG_SERIO_ALTERA_PS2=m +# CONFIG_SERIO_PS2MULT is not set +CONFIG_SERIO_ARC_PS2=m +CONFIG_SERIO_APBPS2=m +# CONFIG_GAMEPORT is not set + +# +# Character devices +# +CONFIG_TTY=y +CONFIG_VT=y +CONFIG_CONSOLE_TRANSLATIONS=y +CONFIG_VT_CONSOLE=y +CONFIG_VT_CONSOLE_SLEEP=y +CONFIG_HW_CONSOLE=y +CONFIG_VT_HW_CONSOLE_BINDING=y +CONFIG_UNIX98_PTYS=y +CONFIG_DEVPTS_MULTIPLE_INSTANCES=y +# CONFIG_LEGACY_PTYS is not set +CONFIG_SERIAL_NONSTANDARD=y +# CONFIG_ROCKETPORT is not set +# CONFIG_CYCLADES is not set +# CONFIG_MOXA_INTELLIO is not set +# CONFIG_MOXA_SMARTIO is not set +# CONFIG_SYNCLINKMP is not set +# CONFIG_SYNCLINK_GT is not set +# CONFIG_NOZOMI is not set +# CONFIG_ISI is not set +CONFIG_N_HDLC=m +CONFIG_N_GSM=m +# CONFIG_TRACE_SINK is not set +# CONFIG_DEVKMEM is not set +# CONFIG_STALDRV is not set + +# +# Serial drivers +# +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_DMA=y +CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_8250_NR_UARTS=4 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_MANY_PORTS=y +CONFIG_SERIAL_8250_SHARE_IRQ=y +# CONFIG_SERIAL_8250_DETECT_IRQ is not set +CONFIG_SERIAL_8250_RSA=y +# CONFIG_SERIAL_8250_DW is not set +# CONFIG_SERIAL_8250_EM is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_AMBA_PL010=y +CONFIG_SERIAL_AMBA_PL010_CONSOLE=y +CONFIG_SERIAL_AMBA_PL011=y +CONFIG_SERIAL_AMBA_PL011_CONSOLE=y +# CONFIG_SERIAL_MFD_HSU is not set +CONFIG_SERIAL_IMX=y +CONFIG_SERIAL_IMX_CONSOLE=y +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +# CONFIG_SERIAL_JSM is not set +# CONFIG_SERIAL_VT8500 is not set +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_SERIAL_OMAP=y +CONFIG_SERIAL_OMAP_CONSOLE=y +CONFIG_SERIAL_SCCNXP=m +# CONFIG_SERIAL_TIMBERDALE is not set +# CONFIG_SERIAL_ALTERA_JTAGUART is not set +# CONFIG_SERIAL_ALTERA_UART is not set +# CONFIG_SERIAL_PCH_UART is not set +# CONFIG_SERIAL_XILINX_PS_UART is not set +CONFIG_SERIAL_ARC=m +CONFIG_SERIAL_ARC_NR_PORTS=1 +# CONFIG_SERIAL_RP2 is not set +# CONFIG_TTY_PRINTK is not set +CONFIG_PRINTER=m +CONFIG_LP_CONSOLE=y +CONFIG_PPDEV=m +# CONFIG_HVC_DCC is not set +CONFIG_IPMI_HANDLER=m +# CONFIG_IPMI_PANIC_EVENT is not set +CONFIG_IPMI_DEVICE_INTERFACE=m +CONFIG_IPMI_SI=m +CONFIG_IPMI_WATCHDOG=m +CONFIG_IPMI_POWEROFF=m +CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_TIMERIOMEM=m +CONFIG_HW_RANDOM_ATMEL=m +CONFIG_HW_RANDOM_EXYNOS=m +CONFIG_NVRAM=y +CONFIG_R3964=m +# CONFIG_APPLICOM is not set +CONFIG_RAW_DRIVER=y +CONFIG_MAX_RAW_DEVS=8192 +# CONFIG_TCG_TPM is not set +CONFIG_DEVPORT=y +CONFIG_I2C=y +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_COMPAT=y +CONFIG_I2C_CHARDEV=m +# CONFIG_I2C_MUX is not set +CONFIG_I2C_HELPER_AUTO=y +CONFIG_I2C_SMBUS=m +CONFIG_I2C_ALGOBIT=m +CONFIG_I2C_ALGOPCA=m + +# +# I2C Hardware Bus support +# + +# +# PC SMBus host controller drivers +# +# CONFIG_I2C_ALI1535 is not set +# CONFIG_I2C_ALI1563 is not set +# CONFIG_I2C_ALI15X3 is not set +# CONFIG_I2C_AMD756 is not set +# CONFIG_I2C_AMD8111 is not set +# CONFIG_I2C_I801 is not set +# CONFIG_I2C_ISCH is not set +# CONFIG_I2C_PIIX4 is not set +# CONFIG_I2C_NFORCE2 is not set +# CONFIG_I2C_SIS5595 is not set +# CONFIG_I2C_SIS630 is not set +# CONFIG_I2C_SIS96X is not set +# CONFIG_I2C_VIA is not set +# CONFIG_I2C_VIAPRO is not set + +# +# I2C system bus drivers (mostly embedded / system-on-chip) +# +CONFIG_I2C_CBUS_GPIO=m +# CONFIG_I2C_DESIGNWARE_PLATFORM is not set +# CONFIG_I2C_DESIGNWARE_PCI is not set +# CONFIG_I2C_EG20T is not set +CONFIG_I2C_GPIO=m +CONFIG_I2C_IMX=m +# CONFIG_I2C_INTEL_MID is not set +CONFIG_I2C_MV64XXX=y +CONFIG_I2C_NOMADIK=y +# CONFIG_I2C_OCORES is not set +CONFIG_I2C_OMAP=y +CONFIG_I2C_PCA_PLATFORM=m +# CONFIG_I2C_PXA_PCI is not set +CONFIG_I2C_SIMTEC=m +CONFIG_I2C_VERSATILE=m +# CONFIG_I2C_XILINX is not set + +# +# External I2C/SMBus adapter drivers +# +CONFIG_I2C_DIOLAN_U2C=m +CONFIG_I2C_PARPORT=m +CONFIG_I2C_PARPORT_LIGHT=m +# CONFIG_I2C_TAOS_EVM is not set +CONFIG_I2C_TINY_USB=m +CONFIG_I2C_VIPERBOARD=m + +# +# Other I2C/SMBus bus drivers +# +CONFIG_I2C_STUB=m +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_SPI is not set + +# +# Qualcomm MSM SSBI bus support +# +# CONFIG_SSBI is not set +CONFIG_HSI=m +CONFIG_HSI_BOARDINFO=y + +# +# HSI clients +# +CONFIG_HSI_CHAR=m + +# +# PPS support +# +CONFIG_PPS=m +# CONFIG_PPS_DEBUG is not set + +# +# PPS clients support +# +# CONFIG_PPS_CLIENT_KTIMER is not set +# CONFIG_PPS_CLIENT_LDISC is not set +# CONFIG_PPS_CLIENT_PARPORT is not set +# CONFIG_PPS_CLIENT_GPIO is not set + +# +# PPS generators support +# + +# +# PTP clock support +# +CONFIG_PTP_1588_CLOCK=m + +# +# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. +# +CONFIG_PTP_1588_CLOCK_PCH=m +CONFIG_PINCTRL=y + +# +# Pin controllers +# +CONFIG_PINMUX=y +CONFIG_PINCONF=y +CONFIG_GENERIC_PINCONF=y +# CONFIG_DEBUG_PINCTRL is not set +CONFIG_PINCTRL_IMX=y +CONFIG_PINCTRL_IMX51=y +CONFIG_PINCTRL_IMX53=y +CONFIG_PINCTRL_IMX6Q=y +CONFIG_PINCTRL_SINGLE=y +CONFIG_PINCTRL_SUNXI=y +# CONFIG_PINCTRL_EXYNOS is not set +# CONFIG_PINCTRL_EXYNOS5440 is not set +CONFIG_PINCTRL_MVEBU=y +CONFIG_PINCTRL_ARMADA_370=y +CONFIG_PINCTRL_ARMADA_XP=y +CONFIG_PINCTRL_WMT=y +CONFIG_PINCTRL_WM8850=y +CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y +CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y +CONFIG_ARCH_REQUIRE_GPIOLIB=y +CONFIG_GPIO_DEVRES=y +CONFIG_GPIOLIB=y +CONFIG_OF_GPIO=y +# CONFIG_DEBUG_GPIO is not set +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_GENERIC=y + +# +# Memory mapped GPIO drivers: +# +CONFIG_GPIO_GENERIC_PLATFORM=y +# CONFIG_GPIO_EM is not set +CONFIG_GPIO_MVEBU=y +CONFIG_GPIO_MXC=y +CONFIG_GPIO_PL061=y +# CONFIG_GPIO_RCAR is not set +CONFIG_GPIO_TS5500=m +# CONFIG_GPIO_VX855 is not set +# CONFIG_GPIO_GRGPIO is not set + +# +# I2C GPIO expanders: +# +# CONFIG_GPIO_MAX7300 is not set +# CONFIG_GPIO_MAX732X is not set +# CONFIG_GPIO_PCF857X is not set +# CONFIG_GPIO_SX150X is not set +CONFIG_GPIO_TWL4030=y +# CONFIG_GPIO_ADP5588 is not set +CONFIG_GPIO_ADNP=m + +# +# PCI GPIO expanders: +# +# CONFIG_GPIO_AMD8111 is not set +# CONFIG_GPIO_ML_IOH is not set +# CONFIG_GPIO_RDC321X is not set + +# +# SPI GPIO expanders: +# +CONFIG_GPIO_MCP23S08=m + +# +# AC97 GPIO expanders: +# + +# +# MODULbus GPIO expanders: +# + +# +# USB GPIO expanders: +# +CONFIG_GPIO_VIPERBOARD=m +CONFIG_W1=m +CONFIG_W1_CON=y + +# +# 1-wire Bus Masters +# +# CONFIG_W1_MASTER_MATROX is not set +CONFIG_W1_MASTER_DS2490=m +CONFIG_W1_MASTER_DS2482=m +CONFIG_W1_MASTER_MXC=m +CONFIG_W1_MASTER_DS1WM=m +# CONFIG_W1_MASTER_GPIO is not set +# CONFIG_HDQ_MASTER_OMAP is not set + +# +# 1-wire Slaves +# +CONFIG_W1_SLAVE_THERM=m +CONFIG_W1_SLAVE_SMEM=m +CONFIG_W1_SLAVE_DS2408=m +CONFIG_W1_SLAVE_DS2408_READBACK=y +CONFIG_W1_SLAVE_DS2413=m +CONFIG_W1_SLAVE_DS2423=m +CONFIG_W1_SLAVE_DS2431=m +CONFIG_W1_SLAVE_DS2433=m +CONFIG_W1_SLAVE_DS2433_CRC=y +CONFIG_W1_SLAVE_DS2760=m +CONFIG_W1_SLAVE_DS2780=m +CONFIG_W1_SLAVE_DS2781=m +CONFIG_W1_SLAVE_DS28E04=m +CONFIG_W1_SLAVE_BQ27000=m +CONFIG_POWER_SUPPLY=y +# CONFIG_POWER_SUPPLY_DEBUG is not set +# CONFIG_PDA_POWER is not set +# CONFIG_APM_POWER is not set +CONFIG_GENERIC_ADC_BATTERY=m +# CONFIG_TEST_POWER is not set +CONFIG_BATTERY_88PM860X=m +# CONFIG_BATTERY_DS2760 is not set +# CONFIG_BATTERY_DS2780 is not set +# CONFIG_BATTERY_DS2781 is not set +# CONFIG_BATTERY_DS2782 is not set +# CONFIG_BATTERY_SBS is not set +# CONFIG_BATTERY_BQ27x00 is not set +# CONFIG_BATTERY_MAX17040 is not set +# CONFIG_BATTERY_MAX17042 is not set +CONFIG_CHARGER_88PM860X=m +# CONFIG_BATTERY_RX51 is not set +# CONFIG_CHARGER_ISP1704 is not set +# CONFIG_CHARGER_MAX8903 is not set +CONFIG_CHARGER_TWL4030=y +# CONFIG_CHARGER_LP8727 is not set +# CONFIG_CHARGER_GPIO is not set +# CONFIG_CHARGER_MANAGER is not set +# CONFIG_CHARGER_BQ2415X is not set +# CONFIG_CHARGER_SMB347 is not set +# CONFIG_BATTERY_GOLDFISH is not set +CONFIG_POWER_RESET=y +CONFIG_POWER_RESET_GPIO=y +CONFIG_POWER_RESET_QNAP=y +CONFIG_POWER_RESET_RESTART=y +CONFIG_POWER_RESET_VEXPRESS=y +CONFIG_POWER_AVS=y +CONFIG_HWMON=y +CONFIG_HWMON_VID=m +# CONFIG_HWMON_DEBUG_CHIP is not set + +# +# Native drivers +# +CONFIG_SENSORS_AD7414=m +CONFIG_SENSORS_AD7418=m +CONFIG_SENSORS_ADM1021=m +CONFIG_SENSORS_ADM1025=m +CONFIG_SENSORS_ADM1026=m +CONFIG_SENSORS_ADM1029=m +CONFIG_SENSORS_ADM1031=m +CONFIG_SENSORS_ADM9240=m +CONFIG_SENSORS_ADT7X10=m +CONFIG_SENSORS_ADT7410=m +CONFIG_SENSORS_ADT7411=m +CONFIG_SENSORS_ADT7462=m +CONFIG_SENSORS_ADT7470=m +CONFIG_SENSORS_ADT7475=m +CONFIG_SENSORS_ASC7621=m +CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_DS620=m +CONFIG_SENSORS_DS1621=m +# CONFIG_SENSORS_I5K_AMB is not set +CONFIG_SENSORS_F71805F=m +CONFIG_SENSORS_F71882FG=m +CONFIG_SENSORS_F75375S=m +CONFIG_SENSORS_G760A=m +CONFIG_SENSORS_GL518SM=m +CONFIG_SENSORS_GL520SM=m +# CONFIG_SENSORS_GPIO_FAN is not set +CONFIG_SENSORS_HIH6130=m +CONFIG_SENSORS_IBMAEM=m +CONFIG_SENSORS_IBMPEX=m +# CONFIG_SENSORS_IIO_HWMON is not set +CONFIG_SENSORS_IT87=m +# CONFIG_SENSORS_JC42 is not set +CONFIG_SENSORS_LINEAGE=m +CONFIG_SENSORS_LM63=y +CONFIG_SENSORS_LM73=m +CONFIG_SENSORS_LM75=m +CONFIG_SENSORS_LM77=m +CONFIG_SENSORS_LM78=m +CONFIG_SENSORS_LM80=m +CONFIG_SENSORS_LM83=m +CONFIG_SENSORS_LM85=m +CONFIG_SENSORS_LM87=m +CONFIG_SENSORS_LM90=m +CONFIG_SENSORS_LM92=m +CONFIG_SENSORS_LM93=m +CONFIG_SENSORS_LTC4151=m +CONFIG_SENSORS_LTC4215=m +CONFIG_SENSORS_LTC4245=m +CONFIG_SENSORS_LTC4261=m +CONFIG_SENSORS_LM95234=m +CONFIG_SENSORS_LM95241=m +CONFIG_SENSORS_LM95245=m +CONFIG_SENSORS_MAX16065=m +CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_MAX1668=m +CONFIG_SENSORS_MAX197=m +CONFIG_SENSORS_MAX6639=m +CONFIG_SENSORS_MAX6642=m +CONFIG_SENSORS_MAX6650=m +CONFIG_SENSORS_MAX6697=m +CONFIG_SENSORS_MCP3021=m +CONFIG_SENSORS_NCT6775=m +CONFIG_SENSORS_NTC_THERMISTOR=m +CONFIG_SENSORS_PC87360=m +CONFIG_SENSORS_PC87427=m +CONFIG_SENSORS_PCF8591=m +CONFIG_PMBUS=m +CONFIG_SENSORS_PMBUS=m +CONFIG_SENSORS_ADM1275=m +CONFIG_SENSORS_LM25066=m +# CONFIG_SENSORS_LTC2978 is not set +CONFIG_SENSORS_MAX16064=m +CONFIG_SENSORS_MAX34440=m +CONFIG_SENSORS_MAX8688=m +CONFIG_SENSORS_UCD9000=m +CONFIG_SENSORS_UCD9200=m +# CONFIG_SENSORS_ZL6100 is not set +CONFIG_SENSORS_SHT15=m +CONFIG_SENSORS_SHT21=m +# CONFIG_SENSORS_SIS5595 is not set +# CONFIG_SENSORS_SMM665 is not set +CONFIG_SENSORS_DME1737=m +CONFIG_SENSORS_EMC1403=m +# CONFIG_SENSORS_EMC2103 is not set +CONFIG_SENSORS_EMC6W201=m +CONFIG_SENSORS_SMSC47M1=m +CONFIG_SENSORS_SMSC47M192=m +CONFIG_SENSORS_SMSC47B397=m +CONFIG_SENSORS_SCH56XX_COMMON=m +CONFIG_SENSORS_SCH5627=m +CONFIG_SENSORS_SCH5636=m +CONFIG_SENSORS_ADS1015=m +CONFIG_SENSORS_ADS7828=m +CONFIG_SENSORS_AMC6821=m +CONFIG_SENSORS_INA209=m +CONFIG_SENSORS_INA2XX=m +CONFIG_SENSORS_THMC50=m +CONFIG_SENSORS_TMP102=m +CONFIG_SENSORS_TMP401=m +CONFIG_SENSORS_TMP421=m +CONFIG_SENSORS_TWL4030_MADC=m +CONFIG_SENSORS_VEXPRESS=m +# CONFIG_SENSORS_VIA686A is not set +CONFIG_SENSORS_VT1211=m +# CONFIG_SENSORS_VT8231 is not set +CONFIG_SENSORS_W83781D=m +CONFIG_SENSORS_W83791D=m +CONFIG_SENSORS_W83792D=m +CONFIG_SENSORS_W83793=m +CONFIG_SENSORS_W83795=m +# CONFIG_SENSORS_W83795_FANCTRL is not set +CONFIG_SENSORS_W83L785TS=m +CONFIG_SENSORS_W83L786NG=m +CONFIG_SENSORS_W83627HF=m +CONFIG_SENSORS_W83627EHF=m +CONFIG_THERMAL=y +CONFIG_THERMAL_HWMON=y +CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y +# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set +# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set +CONFIG_THERMAL_GOV_FAIR_SHARE=y +CONFIG_THERMAL_GOV_STEP_WISE=y +CONFIG_THERMAL_GOV_USER_SPACE=y +CONFIG_CPU_THERMAL=y +CONFIG_THERMAL_EMULATION=y +CONFIG_IMX_THERMAL=m +CONFIG_ARMADA_THERMAL=m +CONFIG_WATCHDOG=y +CONFIG_WATCHDOG_CORE=y +CONFIG_WATCHDOG_NOWAYOUT=y + +# +# Watchdog Device Drivers +# +CONFIG_SOFT_WATCHDOG=m +CONFIG_ARM_SP805_WATCHDOG=m +# CONFIG_DW_WATCHDOG is not set +CONFIG_MPCORE_WATCHDOG=m +CONFIG_OMAP_WATCHDOG=m +CONFIG_TWL4030_WATCHDOG=m +# CONFIG_MAX63XX_WATCHDOG is not set +CONFIG_IMX2_WDT=m +CONFIG_RETU_WATCHDOG=m +# CONFIG_ALIM7101_WDT is not set +# CONFIG_I6300ESB_WDT is not set + +# +# PCI-based Watchdog Cards +# +# CONFIG_PCIPCWATCHDOG is not set +# CONFIG_WDTPCI is not set + +# +# USB-based Watchdog Cards +# +CONFIG_USBPCWATCHDOG=m +CONFIG_SSB_POSSIBLE=y + +# +# Sonics Silicon Backplane +# +CONFIG_SSB=m +CONFIG_SSB_SPROM=y +CONFIG_SSB_BLOCKIO=y +CONFIG_SSB_PCIHOST_POSSIBLE=y +CONFIG_SSB_PCIHOST=y +CONFIG_SSB_B43_PCI_BRIDGE=y +CONFIG_SSB_SDIOHOST_POSSIBLE=y +CONFIG_SSB_SDIOHOST=y +# CONFIG_SSB_SILENT is not set +# CONFIG_SSB_DEBUG is not set +CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y +CONFIG_SSB_DRIVER_PCICORE=y +CONFIG_SSB_DRIVER_GPIO=y +CONFIG_BCMA_POSSIBLE=y + +# +# Broadcom specific AMBA +# +# CONFIG_BCMA is not set + +# +# Multifunction device drivers +# +CONFIG_MFD_CORE=y +# CONFIG_MFD_AS3711 is not set +# CONFIG_PMIC_ADP5520 is not set +# CONFIG_MFD_AAT2870_CORE is not set +# CONFIG_MFD_CROS_EC is not set +# CONFIG_MFD_ASIC3 is not set +# CONFIG_PMIC_DA903X is not set +# CONFIG_MFD_DA9052_I2C is not set +# CONFIG_MFD_DA9055 is not set +# CONFIG_MFD_MC13XXX_I2C is not set +# CONFIG_HTC_EGPIO is not set +# CONFIG_HTC_PASIC3 is not set +# CONFIG_HTC_I2CPLD is not set +# CONFIG_LPC_ICH is not set +# CONFIG_LPC_SCH is not set +# CONFIG_MFD_JANZ_CMODIO is not set +CONFIG_MFD_88PM800=y +CONFIG_MFD_88PM805=y +CONFIG_MFD_88PM860X=y +# CONFIG_MFD_MAX77686 is not set +# CONFIG_MFD_MAX77693 is not set +# CONFIG_MFD_MAX8907 is not set +# CONFIG_MFD_MAX8925 is not set +# CONFIG_MFD_MAX8997 is not set +# CONFIG_MFD_MAX8998 is not set +CONFIG_MFD_VIPERBOARD=m +CONFIG_MFD_RETU=m +# CONFIG_MFD_PCF50633 is not set +# CONFIG_UCB1400_CORE is not set +# CONFIG_MFD_RDC321X is not set +# CONFIG_MFD_RTSX_PCI is not set +# CONFIG_MFD_RC5T583 is not set +# CONFIG_MFD_SEC_CORE is not set +# CONFIG_MFD_SI476X_CORE is not set +CONFIG_MFD_SM501=m +CONFIG_MFD_SM501_GPIO=y +# CONFIG_MFD_SMSC is not set +CONFIG_ABX500_CORE=y +# CONFIG_AB3100_CORE is not set +# CONFIG_MFD_STMPE is not set +CONFIG_MFD_SYSCON=y +# CONFIG_MFD_TI_AM335X_TSCADC is not set +# CONFIG_MFD_LP8788 is not set +CONFIG_MFD_OMAP_USB_HOST=y +# CONFIG_MFD_PALMAS is not set +# CONFIG_TPS6105X is not set +# CONFIG_TPS65010 is not set +# CONFIG_TPS6507X is not set +# CONFIG_MFD_TPS65090 is not set +# CONFIG_MFD_TPS65217 is not set +# CONFIG_MFD_TPS6586X is not set +# CONFIG_MFD_TPS65910 is not set +# CONFIG_MFD_TPS65912 is not set +# CONFIG_MFD_TPS65912_I2C is not set +# CONFIG_MFD_TPS80031 is not set +CONFIG_TWL4030_CORE=y +CONFIG_TWL4030_MADC=y +CONFIG_TWL4030_POWER=y +CONFIG_MFD_TWL4030_AUDIO=y +# CONFIG_TWL6040_CORE is not set +CONFIG_MFD_WL1273_CORE=m +CONFIG_MFD_LM3533=m +# CONFIG_MFD_TIMBERDALE is not set +# CONFIG_MFD_TC3589X is not set +# CONFIG_MFD_TMIO is not set +# CONFIG_MFD_T7L66XB is not set +# CONFIG_MFD_TC6387XB is not set +# CONFIG_MFD_TC6393XB is not set +# CONFIG_MFD_VX855 is not set +# CONFIG_MFD_ARIZONA_I2C is not set +# CONFIG_MFD_WM8400 is not set +# CONFIG_MFD_WM831X_I2C is not set +# CONFIG_MFD_WM8350_I2C is not set +# CONFIG_MFD_WM8994 is not set +CONFIG_VEXPRESS_CONFIG=y +CONFIG_REGULATOR=y +# CONFIG_REGULATOR_DEBUG is not set +# CONFIG_REGULATOR_DUMMY is not set +CONFIG_REGULATOR_FIXED_VOLTAGE=y +# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set +# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set +# CONFIG_REGULATOR_GPIO is not set +# CONFIG_REGULATOR_AD5398 is not set +# CONFIG_REGULATOR_FAN53555 is not set +CONFIG_REGULATOR_ANATOP=m +# CONFIG_REGULATOR_ISL6271A is not set +CONFIG_REGULATOR_88PM8607=y +# CONFIG_REGULATOR_MAX1586 is not set +# CONFIG_REGULATOR_MAX8649 is not set +# CONFIG_REGULATOR_MAX8660 is not set +# CONFIG_REGULATOR_MAX8952 is not set +# CONFIG_REGULATOR_MAX8973 is not set +# CONFIG_REGULATOR_LP3971 is not set +# CONFIG_REGULATOR_LP3972 is not set +# CONFIG_REGULATOR_LP872X is not set +CONFIG_REGULATOR_LP8755=m +# CONFIG_REGULATOR_TPS51632 is not set +# CONFIG_REGULATOR_TPS62360 is not set +# CONFIG_REGULATOR_TPS65023 is not set +# CONFIG_REGULATOR_TPS6507X is not set +CONFIG_REGULATOR_TWL4030=y +CONFIG_REGULATOR_VEXPRESS=m +CONFIG_MEDIA_SUPPORT=y + +# +# Multimedia core support +# +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_ANALOG_TV_SUPPORT=y +CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y +# CONFIG_MEDIA_RADIO_SUPPORT is not set +CONFIG_MEDIA_RC_SUPPORT=y +CONFIG_MEDIA_CONTROLLER=y +CONFIG_VIDEO_DEV=y +CONFIG_VIDEO_V4L2_SUBDEV_API=y +CONFIG_VIDEO_V4L2=y +# CONFIG_VIDEO_ADV_DEBUG is not set +# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set +CONFIG_VIDEO_TUNER=m +CONFIG_V4L2_MEM2MEM_DEV=m +CONFIG_VIDEOBUF_GEN=y +CONFIG_VIDEOBUF_DMA_SG=m +CONFIG_VIDEOBUF_VMALLOC=m +CONFIG_VIDEOBUF_DMA_CONTIG=y +CONFIG_VIDEOBUF_DVB=m +CONFIG_VIDEOBUF2_CORE=m +CONFIG_VIDEOBUF2_MEMOPS=m +CONFIG_VIDEOBUF2_DMA_CONTIG=m +CONFIG_VIDEOBUF2_VMALLOC=m +CONFIG_VIDEO_V4L2_INT_DEVICE=m +CONFIG_DVB_CORE=y +CONFIG_DVB_NET=y +CONFIG_TTPCI_EEPROM=m +CONFIG_DVB_MAX_ADAPTERS=8 +CONFIG_DVB_DYNAMIC_MINORS=y + +# +# Media drivers +# +CONFIG_RC_CORE=y +CONFIG_RC_MAP=m +CONFIG_RC_DECODERS=y +CONFIG_LIRC=m +CONFIG_IR_LIRC_CODEC=m +CONFIG_IR_NEC_DECODER=m +CONFIG_IR_RC5_DECODER=m +CONFIG_IR_RC6_DECODER=m +CONFIG_IR_JVC_DECODER=m +CONFIG_IR_SONY_DECODER=m +CONFIG_IR_RC5_SZ_DECODER=m +CONFIG_IR_SANYO_DECODER=m +CONFIG_IR_MCE_KBD_DECODER=m +CONFIG_RC_DEVICES=y +# CONFIG_RC_ATI_REMOTE is not set +CONFIG_IR_IMON=m +CONFIG_IR_MCEUSB=m +CONFIG_IR_REDRAT3=m +CONFIG_IR_STREAMZAP=m +CONFIG_IR_IGUANA=m +CONFIG_IR_TTUSBIR=m +CONFIG_RC_LOOPBACK=m +CONFIG_IR_GPIO_CIR=m +CONFIG_MEDIA_USB_SUPPORT=y + +# +# Webcam devices +# +CONFIG_USB_VIDEO_CLASS=m +CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y +CONFIG_USB_GSPCA=m +CONFIG_USB_M5602=m +CONFIG_USB_STV06XX=m +CONFIG_USB_GL860=m +CONFIG_USB_GSPCA_BENQ=m +CONFIG_USB_GSPCA_CONEX=m +CONFIG_USB_GSPCA_CPIA1=m +CONFIG_USB_GSPCA_ETOMS=m +CONFIG_USB_GSPCA_FINEPIX=m +CONFIG_USB_GSPCA_JEILINJ=m +CONFIG_USB_GSPCA_JL2005BCD=m +CONFIG_USB_GSPCA_KINECT=m +CONFIG_USB_GSPCA_KONICA=m +CONFIG_USB_GSPCA_MARS=m +CONFIG_USB_GSPCA_MR97310A=m +CONFIG_USB_GSPCA_NW80X=m +CONFIG_USB_GSPCA_OV519=m +CONFIG_USB_GSPCA_OV534=m +CONFIG_USB_GSPCA_OV534_9=m +CONFIG_USB_GSPCA_PAC207=m +CONFIG_USB_GSPCA_PAC7302=m +CONFIG_USB_GSPCA_PAC7311=m +CONFIG_USB_GSPCA_SE401=m +CONFIG_USB_GSPCA_SN9C2028=m +CONFIG_USB_GSPCA_SN9C20X=m +CONFIG_USB_GSPCA_SONIXB=m +CONFIG_USB_GSPCA_SONIXJ=m +CONFIG_USB_GSPCA_SPCA500=m +CONFIG_USB_GSPCA_SPCA501=m +CONFIG_USB_GSPCA_SPCA505=m +CONFIG_USB_GSPCA_SPCA506=m +CONFIG_USB_GSPCA_SPCA508=m +CONFIG_USB_GSPCA_SPCA561=m +CONFIG_USB_GSPCA_SPCA1528=m +CONFIG_USB_GSPCA_SQ905=m +CONFIG_USB_GSPCA_SQ905C=m +CONFIG_USB_GSPCA_SQ930X=m +CONFIG_USB_GSPCA_STK014=m +CONFIG_USB_GSPCA_STV0680=m +CONFIG_USB_GSPCA_SUNPLUS=m +CONFIG_USB_GSPCA_T613=m +# CONFIG_USB_GSPCA_TOPRO is not set +CONFIG_USB_GSPCA_TV8532=m +CONFIG_USB_GSPCA_VC032X=m +CONFIG_USB_GSPCA_VICAM=m +CONFIG_USB_GSPCA_XIRLINK_CIT=m +CONFIG_USB_GSPCA_ZC3XX=m +CONFIG_USB_PWC=m +# CONFIG_USB_PWC_DEBUG is not set +CONFIG_USB_PWC_INPUT_EVDEV=y +CONFIG_VIDEO_CPIA2=m +CONFIG_USB_ZR364XX=m +CONFIG_USB_STKWEBCAM=m +CONFIG_USB_S2255=m +CONFIG_USB_SN9C102=m + +# +# Analog TV USB devices +# +CONFIG_VIDEO_PVRUSB2=m +CONFIG_VIDEO_PVRUSB2_SYSFS=y +CONFIG_VIDEO_PVRUSB2_DVB=y +# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set +CONFIG_VIDEO_HDPVR=m +CONFIG_VIDEO_TLG2300=m +CONFIG_VIDEO_USBVISION=m +CONFIG_VIDEO_STK1160=m +# CONFIG_VIDEO_STK1160_AC97 is not set + +# +# Analog/digital TV USB devices +# +CONFIG_VIDEO_AU0828=m +CONFIG_VIDEO_AU0828_V4L2=y +CONFIG_VIDEO_CX231XX=m +CONFIG_VIDEO_CX231XX_RC=y +CONFIG_VIDEO_CX231XX_ALSA=m +CONFIG_VIDEO_CX231XX_DVB=m +CONFIG_VIDEO_TM6000=m +CONFIG_VIDEO_TM6000_ALSA=m +CONFIG_VIDEO_TM6000_DVB=m + +# +# Digital TV USB devices +# +CONFIG_DVB_USB=m +# CONFIG_DVB_USB_DEBUG is not set +CONFIG_DVB_USB_A800=m +CONFIG_DVB_USB_DIBUSB_MB=m +CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y +CONFIG_DVB_USB_DIBUSB_MC=m +CONFIG_DVB_USB_DIB0700=m +CONFIG_DVB_USB_UMT_010=m +CONFIG_DVB_USB_CXUSB=m +CONFIG_DVB_USB_M920X=m +CONFIG_DVB_USB_DIGITV=m +CONFIG_DVB_USB_VP7045=m +CONFIG_DVB_USB_VP702X=m +CONFIG_DVB_USB_GP8PSK=m +CONFIG_DVB_USB_NOVA_T_USB2=m +CONFIG_DVB_USB_TTUSB2=m +CONFIG_DVB_USB_DTT200U=m +CONFIG_DVB_USB_OPERA1=m +CONFIG_DVB_USB_AF9005=m +CONFIG_DVB_USB_AF9005_REMOTE=m +CONFIG_DVB_USB_PCTV452E=m +CONFIG_DVB_USB_DW2102=m +CONFIG_DVB_USB_CINERGY_T2=m +CONFIG_DVB_USB_DTV5100=m +CONFIG_DVB_USB_FRIIO=m +CONFIG_DVB_USB_AZ6027=m +CONFIG_DVB_USB_TECHNISAT_USB2=m +CONFIG_DVB_USB_V2=m +CONFIG_DVB_USB_AF9015=m +CONFIG_DVB_USB_AF9035=m +CONFIG_DVB_USB_ANYSEE=m +CONFIG_DVB_USB_AU6610=m +CONFIG_DVB_USB_AZ6007=m +CONFIG_DVB_USB_CE6230=m +CONFIG_DVB_USB_EC168=m +CONFIG_DVB_USB_GL861=m +CONFIG_DVB_USB_IT913X=m +CONFIG_DVB_USB_LME2510=m +CONFIG_DVB_USB_MXL111SF=m +CONFIG_DVB_USB_RTL28XXU=m +CONFIG_DVB_USB_DVBSKY=m +# CONFIG_DVB_TTUSB_BUDGET is not set +# CONFIG_DVB_TTUSB_DEC is not set +CONFIG_SMS_USB_DRV=m +CONFIG_DVB_B2C2_FLEXCOP_USB=m +# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set + +# +# Webcam, TV (analog/digital) USB devices +# +CONFIG_VIDEO_EM28XX=m +CONFIG_VIDEO_EM28XX_ALSA=m +CONFIG_VIDEO_EM28XX_DVB=m +CONFIG_VIDEO_EM28XX_RC=m +CONFIG_MEDIA_PCI_SUPPORT=y + +# +# Media capture support +# + +# +# Media capture/analog TV support +# +CONFIG_VIDEO_IVTV=m +CONFIG_VIDEO_IVTV_ALSA=m +CONFIG_VIDEO_FB_IVTV=m +CONFIG_VIDEO_HEXIUM_GEMINI=m +CONFIG_VIDEO_HEXIUM_ORION=m +CONFIG_VIDEO_MXB=m + +# +# Media capture/analog/hybrid TV support +# +CONFIG_VIDEO_CX18=m +CONFIG_VIDEO_CX18_ALSA=m +CONFIG_VIDEO_CX23885=m +CONFIG_MEDIA_ALTERA_CI=m +CONFIG_VIDEO_CX25821=m +CONFIG_VIDEO_CX25821_ALSA=m +CONFIG_VIDEO_CX88=m +CONFIG_VIDEO_CX88_ALSA=m +CONFIG_VIDEO_CX88_BLACKBIRD=m +CONFIG_VIDEO_CX88_DVB=m +CONFIG_VIDEO_CX88_VP3054=m +CONFIG_VIDEO_CX88_MPEG=m +CONFIG_VIDEO_BT848=m +CONFIG_DVB_BT8XX=m +CONFIG_VIDEO_SAA7134=m +CONFIG_VIDEO_SAA7134_ALSA=m +CONFIG_VIDEO_SAA7134_RC=y +CONFIG_VIDEO_SAA7134_DVB=m +CONFIG_VIDEO_SAA7164=m + +# +# Media digital TV PCI Adapters +# +CONFIG_DVB_AV7110=m +CONFIG_DVB_AV7110_OSD=y +CONFIG_DVB_BUDGET_CORE=m +CONFIG_DVB_BUDGET=m +CONFIG_DVB_BUDGET_CI=m +CONFIG_DVB_BUDGET_AV=m +CONFIG_DVB_BUDGET_PATCH=m +CONFIG_DVB_B2C2_FLEXCOP_PCI=m +# CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG is not set +CONFIG_DVB_PLUTO2=m +CONFIG_DVB_DM1105=m +CONFIG_DVB_PT1=m +CONFIG_MANTIS_CORE=m +CONFIG_DVB_MANTIS=m +CONFIG_DVB_HOPPER=m +CONFIG_DVB_NGENE=m +CONFIG_DVB_DDBRIDGE=m +CONFIG_V4L_PLATFORM_DRIVERS=y +# CONFIG_VIDEO_CAFE_CCIC is not set +# CONFIG_VIDEO_DM6446_CCDC is not set +CONFIG_VIDEO_OMAP2_VOUT_VRFB=y +CONFIG_VIDEO_OMAP2_VOUT=y +CONFIG_VIDEO_TIMBERDALE=m +CONFIG_SOC_CAMERA=m +CONFIG_SOC_CAMERA_PLATFORM=m +CONFIG_MX3_VIDEO=y +CONFIG_VIDEO_MX3=m +# CONFIG_VIDEO_SH_MOBILE_CSI2 is not set +# CONFIG_VIDEO_SH_MOBILE_CEU is not set +CONFIG_V4L_MEM2MEM_DRIVERS=y +# CONFIG_VIDEO_CODA is not set +CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m +CONFIG_VIDEO_SH_VEU=m +# CONFIG_V4L_TEST_DRIVERS is not set + +# +# Supported MMC/SDIO adapters +# +# CONFIG_SMS_SDIO_DRV is not set +# CONFIG_MEDIA_PARPORT_SUPPORT is not set + +# +# Supported FireWire (IEEE 1394) Adapters +# +# CONFIG_DVB_FIREDTV is not set +CONFIG_MEDIA_COMMON_OPTIONS=y + +# +# common driver options +# +CONFIG_VIDEO_CX2341X=m +CONFIG_VIDEO_BTCX=m +CONFIG_VIDEO_TVEEPROM=m +CONFIG_CYPRESS_FIRMWARE=m +CONFIG_DVB_B2C2_FLEXCOP=m +CONFIG_VIDEO_SAA7146=m +CONFIG_VIDEO_SAA7146_VV=m +CONFIG_SMS_SIANO_MDTV=m +CONFIG_SMS_SIANO_RC=y +# CONFIG_SMS_SIANO_DEBUGFS is not set + +# +# Media ancillary drivers (tuners, sensors, i2c, frontends) +# +CONFIG_MEDIA_SUBDRV_AUTOSELECT=y +CONFIG_MEDIA_ATTACH=y +CONFIG_VIDEO_IR_I2C=y + +# +# Audio decoders, processors and mixers +# +CONFIG_VIDEO_TVAUDIO=m +CONFIG_VIDEO_TDA7432=m +CONFIG_VIDEO_TDA9840=m +CONFIG_VIDEO_TEA6415C=m +CONFIG_VIDEO_TEA6420=m +CONFIG_VIDEO_MSP3400=m +CONFIG_VIDEO_CS5345=m +CONFIG_VIDEO_CS53L32A=m +CONFIG_VIDEO_WM8775=m +CONFIG_VIDEO_WM8739=m +CONFIG_VIDEO_VP27SMPX=m + +# +# RDS decoders +# +CONFIG_VIDEO_SAA6588=m + +# +# Video decoders +# +CONFIG_VIDEO_ADV7180=m +CONFIG_VIDEO_SAA711X=m +CONFIG_VIDEO_TVP5150=m + +# +# Video and audio decoders +# +CONFIG_VIDEO_SAA717X=m +CONFIG_VIDEO_CX25840=m + +# +# Video encoders +# +CONFIG_VIDEO_SAA7127=m + +# +# Camera sensor devices +# +CONFIG_VIDEO_MT9V011=m + +# +# Flash devices +# + +# +# Video improvement chips +# +CONFIG_VIDEO_UPD64031A=m +CONFIG_VIDEO_UPD64083=m + +# +# Miscelaneous helper chips +# +CONFIG_VIDEO_M52790=m + +# +# Sensors used on soc_camera driver +# + +# +# soc_camera sensor drivers +# +CONFIG_SOC_CAMERA_IMX074=m +CONFIG_SOC_CAMERA_MT9M001=m +CONFIG_SOC_CAMERA_MT9M111=m +CONFIG_SOC_CAMERA_MT9T031=m +CONFIG_SOC_CAMERA_MT9T112=m +CONFIG_SOC_CAMERA_MT9V022=m +CONFIG_SOC_CAMERA_OV2640=m +CONFIG_SOC_CAMERA_OV5642=m +CONFIG_SOC_CAMERA_OV6650=m +CONFIG_SOC_CAMERA_OV772X=m +CONFIG_SOC_CAMERA_OV9640=m +CONFIG_SOC_CAMERA_OV9740=m +CONFIG_SOC_CAMERA_RJ54N1=m +CONFIG_SOC_CAMERA_TW9910=m +CONFIG_MEDIA_TUNER=y +CONFIG_MEDIA_TUNER_SIMPLE=y +CONFIG_MEDIA_TUNER_TDA8290=y +CONFIG_MEDIA_TUNER_TDA827X=y +CONFIG_MEDIA_TUNER_TDA18271=y +CONFIG_MEDIA_TUNER_TDA9887=y +CONFIG_MEDIA_TUNER_MT20XX=y +CONFIG_MEDIA_TUNER_MT2060=m +CONFIG_MEDIA_TUNER_MT2063=m +CONFIG_MEDIA_TUNER_MT2266=m +CONFIG_MEDIA_TUNER_MT2131=m +CONFIG_MEDIA_TUNER_QT1010=m +CONFIG_MEDIA_TUNER_XC2028=y +CONFIG_MEDIA_TUNER_XC5000=y +CONFIG_MEDIA_TUNER_XC4000=y +CONFIG_MEDIA_TUNER_MXL5005S=m +CONFIG_MEDIA_TUNER_MXL5007T=m +CONFIG_MEDIA_TUNER_MC44S803=y +CONFIG_MEDIA_TUNER_MAX2165=m +CONFIG_MEDIA_TUNER_TDA18218=m +CONFIG_MEDIA_TUNER_FC0011=m +CONFIG_MEDIA_TUNER_FC0012=m +CONFIG_MEDIA_TUNER_FC0013=m +CONFIG_MEDIA_TUNER_TDA18212=m +CONFIG_MEDIA_TUNER_E4000=m +CONFIG_MEDIA_TUNER_FC2580=m +CONFIG_MEDIA_TUNER_TUA9001=m +CONFIG_MEDIA_TUNER_IT913X=m +CONFIG_MEDIA_TUNER_R820T=m + +# +# Multistandard (satellite) frontends +# +CONFIG_DVB_STB0899=m +CONFIG_DVB_STB6100=m +CONFIG_DVB_STV090x=m +CONFIG_DVB_STV6110x=m + +# +# Multistandard (cable + terrestrial) frontends +# +CONFIG_DVB_DRXK=m +CONFIG_DVB_TDA18271C2DD=m + +# +# DVB-S (satellite) frontends +# +CONFIG_DVB_CX24110=m +CONFIG_DVB_CX24123=m +CONFIG_DVB_MT312=m +CONFIG_DVB_ZL10036=m +CONFIG_DVB_ZL10039=m +CONFIG_DVB_S5H1420=m +CONFIG_DVB_STV0288=m +CONFIG_DVB_STB6000=m +CONFIG_DVB_STV0299=m +CONFIG_DVB_STV6110=m +CONFIG_DVB_STV0900=m +CONFIG_DVB_TDA8083=m +CONFIG_DVB_TDA10086=m +CONFIG_DVB_TDA8261=m +CONFIG_DVB_VES1X93=m +CONFIG_DVB_TUNER_ITD1000=m +CONFIG_DVB_TUNER_CX24113=m +CONFIG_DVB_TDA826X=m +CONFIG_DVB_TUA6100=m +CONFIG_DVB_CX24116=m +CONFIG_DVB_M88DS3103=m +CONFIG_DVB_M88DC2800=m +CONFIG_DVB_SI21XX=m +CONFIG_DVB_TS2020=m +CONFIG_DVB_DS3000=m +CONFIG_DVB_MB86A16=m +CONFIG_DVB_TDA10071=m + +# +# DVB-T (terrestrial) frontends +# +CONFIG_DVB_SP8870=m +CONFIG_DVB_SP887X=m +CONFIG_DVB_CX22702=m +CONFIG_DVB_DRXD=m +CONFIG_DVB_L64781=m +CONFIG_DVB_TDA1004X=m +CONFIG_DVB_NXT6000=m +CONFIG_DVB_MT352=m +CONFIG_DVB_ZL10353=m +CONFIG_DVB_DIB3000MB=m +CONFIG_DVB_DIB3000MC=m +CONFIG_DVB_DIB7000M=m +CONFIG_DVB_DIB7000P=m +CONFIG_DVB_TDA10048=m +CONFIG_DVB_AF9013=m +CONFIG_DVB_EC100=m +CONFIG_DVB_STV0367=m +CONFIG_DVB_CXD2820R=m +CONFIG_DVB_RTL2830=m +CONFIG_DVB_RTL2832=m + +# +# DVB-C (cable) frontends +# +CONFIG_DVB_VES1820=m +CONFIG_DVB_TDA10021=m +CONFIG_DVB_TDA10023=m +CONFIG_DVB_STV0297=m + +# +# ATSC (North American/Korean Terrestrial/Cable DTV) frontends +# +CONFIG_DVB_NXT200X=m +CONFIG_DVB_OR51211=m +CONFIG_DVB_OR51132=m +CONFIG_DVB_BCM3510=m +CONFIG_DVB_LGDT330X=m +CONFIG_DVB_LGDT3305=m +CONFIG_DVB_LG2160=m +CONFIG_DVB_S5H1409=m +CONFIG_DVB_AU8522=m +CONFIG_DVB_AU8522_DTV=m +CONFIG_DVB_AU8522_V4L=m +CONFIG_DVB_S5H1411=m + +# +# ISDB-T (terrestrial) frontends +# +CONFIG_DVB_S921=m +CONFIG_DVB_DIB8000=m +CONFIG_DVB_MB86A20S=m + +# +# Digital terrestrial only tuners/PLL +# +CONFIG_DVB_PLL=m +CONFIG_DVB_TUNER_DIB0070=m +CONFIG_DVB_TUNER_DIB0090=m + +# +# SEC control devices for DVB-S +# +CONFIG_DVB_LNBP21=m +CONFIG_DVB_LNBP22=m +CONFIG_DVB_ISL6405=m +CONFIG_DVB_ISL6421=m +CONFIG_DVB_ISL6423=m +CONFIG_DVB_A8293=m +CONFIG_DVB_LGS8GXX=m +CONFIG_DVB_ATBM8830=m +CONFIG_DVB_TDA665x=m +CONFIG_DVB_IX2505V=m +CONFIG_DVB_IT913X_FE=m +CONFIG_DVB_M88RS2000=m +CONFIG_DVB_AF9033=m + +# +# Tools to develop new frontends +# +# CONFIG_DVB_DUMMY_FE is not set + +# +# Graphics support +# +CONFIG_VGA_ARB=y +CONFIG_VGA_ARB_MAX_GPUS=16 +CONFIG_DRM=m +CONFIG_DRM_USB=m +CONFIG_DRM_KMS_HELPER=m +# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set +CONFIG_DRM_GEM_CMA_HELPER=y +CONFIG_DRM_KMS_CMA_HELPER=y + +# +# I2C encoder or helper chips +# +CONFIG_DRM_I2C_CH7006=m +CONFIG_DRM_I2C_SIL164=m +CONFIG_DRM_I2C_NXP_TDA998X=m +# CONFIG_DRM_TDFX is not set +# CONFIG_DRM_R128 is not set +# CONFIG_DRM_RADEON is not set +# CONFIG_DRM_NOUVEAU is not set +# CONFIG_DRM_MGA is not set +# CONFIG_DRM_VIA is not set +# CONFIG_DRM_SAVAGE is not set +CONFIG_DRM_EXYNOS=m +CONFIG_DRM_EXYNOS_DMABUF=y +CONFIG_DRM_EXYNOS_HDMI=y +CONFIG_DRM_EXYNOS_VIDI=y +CONFIG_DRM_EXYNOS_G2D=y +# CONFIG_DRM_VMWGFX is not set +CONFIG_DRM_UDL=m +# CONFIG_DRM_AST is not set +# CONFIG_DRM_MGAG200 is not set +# CONFIG_DRM_CIRRUS_QEMU is not set +CONFIG_DRM_OMAP=m +CONFIG_DRM_OMAP_NUM_CRTCS=2 +CONFIG_DRM_TILCDC=m +# CONFIG_DRM_QXL is not set +# CONFIG_TEGRA_HOST1X is not set +# CONFIG_VGASTATE is not set +# CONFIG_VIDEO_OUTPUT_CONTROL is not set +CONFIG_VIDEOMODE_HELPERS=y +CONFIG_HDMI=y +CONFIG_FB=y +CONFIG_FIRMWARE_EDID=y +# CONFIG_FB_DDC is not set +# CONFIG_FB_BOOT_VESA_SUPPORT is not set +CONFIG_FB_CFB_FILLRECT=m +CONFIG_FB_CFB_COPYAREA=m +CONFIG_FB_CFB_IMAGEBLIT=m +# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set +CONFIG_FB_SYS_FILLRECT=y +CONFIG_FB_SYS_COPYAREA=y +CONFIG_FB_SYS_IMAGEBLIT=y +# CONFIG_FB_FOREIGN_ENDIAN is not set +CONFIG_FB_SYS_FOPS=m +CONFIG_FB_DEFERRED_IO=y +# CONFIG_FB_SVGALIB is not set +# CONFIG_FB_MACMODES is not set +# CONFIG_FB_BACKLIGHT is not set +CONFIG_FB_MODE_HELPERS=y +CONFIG_FB_TILEBLITTING=y + +# +# Frame buffer hardware drivers +# +# CONFIG_FB_CIRRUS is not set +# CONFIG_FB_PM2 is not set +CONFIG_FB_ARMCLCD=m +# CONFIG_FB_CYBER2000 is not set +# CONFIG_FB_ASILIANT is not set +# CONFIG_FB_IMSTT is not set +# CONFIG_FB_UVESA is not set +# CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_NVIDIA is not set +# CONFIG_FB_RIVA is not set +# CONFIG_FB_I740 is not set +# CONFIG_FB_MATROX is not set +# CONFIG_FB_RADEON is not set +# CONFIG_FB_ATY128 is not set +# CONFIG_FB_ATY is not set +# CONFIG_FB_S3 is not set +# CONFIG_FB_SAVAGE is not set +# CONFIG_FB_SIS is not set +# CONFIG_FB_NEOMAGIC is not set +# CONFIG_FB_KYRO is not set +# CONFIG_FB_3DFX is not set +# CONFIG_FB_VOODOO1 is not set +# CONFIG_FB_VT8623 is not set +# CONFIG_FB_TRIDENT is not set +# CONFIG_FB_ARK is not set +# CONFIG_FB_PM3 is not set +# CONFIG_FB_CARMINE is not set +# CONFIG_FB_VT8500 is not set +# CONFIG_FB_WM8505 is not set +# CONFIG_FB_TMIO is not set +# CONFIG_FB_SM501 is not set +CONFIG_FB_SMSCUFX=m +# CONFIG_FB_UDL is not set +# CONFIG_FB_GOLDFISH is not set +# CONFIG_FB_VIRTUAL is not set +# CONFIG_FB_METRONOME is not set +# CONFIG_FB_MB862XX is not set +# CONFIG_FB_MX3 is not set +# CONFIG_FB_BROADSHEET is not set +# CONFIG_FB_AUO_K190X is not set +# CONFIG_FB_SIMPLE is not set +CONFIG_OMAP2_VRFB=y +CONFIG_OMAP2_DSS=y +# CONFIG_OMAP2_DSS_DEBUG is not set +# CONFIG_OMAP2_DSS_DEBUGFS is not set +CONFIG_OMAP2_DSS_DPI=y +CONFIG_OMAP2_DSS_RFBI=y +CONFIG_OMAP2_DSS_VENC=y +CONFIG_OMAP4_DSS_HDMI=y +CONFIG_OMAP4_DSS_HDMI_AUDIO=y +CONFIG_OMAP2_DSS_SDI=y +CONFIG_OMAP2_DSS_DSI=y +CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=8 +CONFIG_OMAP2_DSS_SLEEP_AFTER_VENC_RESET=y +CONFIG_FB_OMAP2=m +CONFIG_FB_OMAP2_DEBUG_SUPPORT=y +CONFIG_FB_OMAP2_NUM_FBS=3 + +# +# OMAP2/3 Display Device Drivers +# +CONFIG_PANEL_GENERIC_DPI=m +CONFIG_PANEL_TFP410=m +CONFIG_PANEL_SHARP_LS037V7DW01=m +CONFIG_PANEL_PICODLP=m +CONFIG_PANEL_TAAL=m +# CONFIG_EXYNOS_VIDEO is not set +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_LCD_CLASS_DEVICE=m +CONFIG_LCD_PLATFORM=m +CONFIG_BACKLIGHT_CLASS_DEVICE=y +# CONFIG_BACKLIGHT_GENERIC is not set +# CONFIG_BACKLIGHT_LM3533 is not set +# CONFIG_BACKLIGHT_PWM is not set +# CONFIG_BACKLIGHT_ADP8860 is not set +# CONFIG_BACKLIGHT_ADP8870 is not set +# CONFIG_BACKLIGHT_88PM860X is not set +# CONFIG_BACKLIGHT_LM3630 is not set +# CONFIG_BACKLIGHT_LM3639 is not set +# CONFIG_BACKLIGHT_LP855X is not set +# CONFIG_BACKLIGHT_PANDORA is not set +# CONFIG_BACKLIGHT_TLC59108 is not set + +# +# Console display driver support +# +CONFIG_DUMMY_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y +CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y +# CONFIG_FONTS is not set +CONFIG_FONT_8x8=y +CONFIG_FONT_8x16=y +CONFIG_LOGO=y +# CONFIG_LOGO_LINUX_MONO is not set +# CONFIG_LOGO_LINUX_VGA16 is not set +CONFIG_LOGO_LINUX_CLUT224=y +CONFIG_FB_SSD1307=m +CONFIG_SOUND=m +CONFIG_SOUND_OSS_CORE=y +CONFIG_SOUND_OSS_CORE_PRECLAIM=y +CONFIG_SND=m +CONFIG_SND_TIMER=m +CONFIG_SND_PCM=m +CONFIG_SND_HWDEP=m +CONFIG_SND_RAWMIDI=m +CONFIG_SND_COMPRESS_OFFLOAD=m +CONFIG_SND_JACK=y +CONFIG_SND_SEQUENCER=m +CONFIG_SND_SEQ_DUMMY=m +CONFIG_SND_OSSEMUL=y +CONFIG_SND_MIXER_OSS=m +CONFIG_SND_PCM_OSS=m +CONFIG_SND_PCM_OSS_PLUGINS=y +CONFIG_SND_SEQUENCER_OSS=y +CONFIG_SND_HRTIMER=m +CONFIG_SND_SEQ_HRTIMER_DEFAULT=y +CONFIG_SND_DYNAMIC_MINORS=y +# CONFIG_SND_SUPPORT_OLD_API is not set +CONFIG_SND_VERBOSE_PROCFS=y +CONFIG_SND_VERBOSE_PRINTK=y +CONFIG_SND_DEBUG=y +# CONFIG_SND_DEBUG_VERBOSE is not set +CONFIG_SND_PCM_XRUN_DEBUG=y +CONFIG_SND_VMASTER=y +CONFIG_SND_KCTL_JACK=y +CONFIG_SND_RAWMIDI_SEQ=m +CONFIG_SND_OPL3_LIB_SEQ=m +# CONFIG_SND_OPL4_LIB_SEQ is not set +# CONFIG_SND_SBAWE_SEQ is not set +CONFIG_SND_EMU10K1_SEQ=m +CONFIG_SND_MPU401_UART=m +CONFIG_SND_OPL3_LIB=m +CONFIG_SND_VX_LIB=m +CONFIG_SND_AC97_CODEC=m +CONFIG_SND_DRIVERS=y +CONFIG_SND_DUMMY=m +CONFIG_SND_ALOOP=m +CONFIG_SND_VIRMIDI=m +CONFIG_SND_MTPAV=m +CONFIG_SND_MTS64=m +CONFIG_SND_SERIAL_U16550=m +CONFIG_SND_MPU401=m +CONFIG_SND_PORTMAN2X4=m +CONFIG_SND_AC97_POWER_SAVE=y +CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0 +CONFIG_SND_TEA575X=m +CONFIG_SND_PCI=y +CONFIG_SND_AD1889=m +CONFIG_SND_ALS300=m +CONFIG_SND_ALI5451=m +CONFIG_SND_ATIIXP=m +CONFIG_SND_ATIIXP_MODEM=m +CONFIG_SND_AU8810=m +CONFIG_SND_AU8820=m +CONFIG_SND_AU8830=m +CONFIG_SND_AW2=m +CONFIG_SND_AZT3328=m +CONFIG_SND_BT87X=m +# CONFIG_SND_BT87X_OVERCLOCK is not set +CONFIG_SND_CA0106=m +CONFIG_SND_CMIPCI=m +CONFIG_SND_OXYGEN_LIB=m +CONFIG_SND_OXYGEN=m +CONFIG_SND_CS4281=m +CONFIG_SND_CS46XX=m +CONFIG_SND_CS46XX_NEW_DSP=y +CONFIG_SND_CS5535AUDIO=m +CONFIG_SND_CTXFI=m +CONFIG_SND_DARLA20=m +CONFIG_SND_GINA20=m +CONFIG_SND_LAYLA20=m +CONFIG_SND_DARLA24=m +CONFIG_SND_GINA24=m +CONFIG_SND_LAYLA24=m +CONFIG_SND_MONA=m +CONFIG_SND_MIA=m +CONFIG_SND_ECHO3G=m +CONFIG_SND_INDIGO=m +CONFIG_SND_INDIGOIO=m +CONFIG_SND_INDIGODJ=m +CONFIG_SND_INDIGOIOX=m +CONFIG_SND_INDIGODJX=m +CONFIG_SND_EMU10K1=m +CONFIG_SND_EMU10K1X=m +CONFIG_SND_ENS1370=m +CONFIG_SND_ENS1371=m +CONFIG_SND_ES1938=m +CONFIG_SND_ES1968=m +CONFIG_SND_ES1968_INPUT=y +CONFIG_SND_ES1968_RADIO=y +CONFIG_SND_FM801=m +CONFIG_SND_FM801_TEA575X_BOOL=y +CONFIG_SND_HDA_INTEL=m +CONFIG_SND_HDA_PREALLOC_SIZE=64 +# CONFIG_SND_HDA_HWDEP is not set +# CONFIG_SND_HDA_INPUT_BEEP is not set +# CONFIG_SND_HDA_INPUT_JACK is not set +# CONFIG_SND_HDA_PATCH_LOADER is not set +CONFIG_SND_HDA_CODEC_REALTEK=y +CONFIG_SND_HDA_CODEC_ANALOG=y +CONFIG_SND_HDA_CODEC_SIGMATEL=y +CONFIG_SND_HDA_CODEC_VIA=y +CONFIG_SND_HDA_CODEC_HDMI=y +CONFIG_SND_HDA_CODEC_CIRRUS=y +CONFIG_SND_HDA_CODEC_CONEXANT=y +CONFIG_SND_HDA_CODEC_CA0110=y +CONFIG_SND_HDA_CODEC_CA0132=y +# CONFIG_SND_HDA_CODEC_CA0132_DSP is not set +CONFIG_SND_HDA_CODEC_CMEDIA=y +CONFIG_SND_HDA_CODEC_SI3054=y +CONFIG_SND_HDA_GENERIC=y +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 +CONFIG_SND_HDSP=m +CONFIG_SND_HDSPM=m +CONFIG_SND_ICE1712=m +CONFIG_SND_ICE1724=m +CONFIG_SND_INTEL8X0=m +CONFIG_SND_INTEL8X0M=m +CONFIG_SND_KORG1212=m +CONFIG_SND_LOLA=m +CONFIG_SND_MAESTRO3=m +CONFIG_SND_MAESTRO3_INPUT=y +CONFIG_SND_MIXART=m +CONFIG_SND_NM256=m +CONFIG_SND_PCXHR=m +CONFIG_SND_RIPTIDE=m +CONFIG_SND_RME32=m +CONFIG_SND_RME96=m +CONFIG_SND_RME9652=m +CONFIG_SND_SONICVIBES=m +CONFIG_SND_TRIDENT=m +CONFIG_SND_VIA82XX=m +CONFIG_SND_VIA82XX_MODEM=m +CONFIG_SND_VIRTUOSO=m +CONFIG_SND_VX222=m +CONFIG_SND_YMFPCI=m +CONFIG_SND_ARM=y +CONFIG_SND_ARMAACI=m +CONFIG_SND_USB=y +CONFIG_SND_USB_AUDIO=m +CONFIG_SND_USB_UA101=m +CONFIG_SND_USB_CAIAQ=m +CONFIG_SND_USB_CAIAQ_INPUT=y +CONFIG_SND_USB_6FIRE=m +CONFIG_SND_FIREWIRE=y +# CONFIG_SND_FIREWIRE_SPEAKERS is not set +# CONFIG_SND_ISIGHT is not set +# CONFIG_SND_SCS1X is not set +CONFIG_SND_SOC=m +CONFIG_SND_SOC_DMAENGINE_PCM=y +CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y +CONFIG_SND_ATMEL_SOC=m +CONFIG_SND_DESIGNWARE_I2S=m +CONFIG_SND_SOC_FSL_SSI=m +CONFIG_SND_SOC_FSL_UTILS=m +CONFIG_SND_IMX_SOC=m +CONFIG_SND_SOC_IMX_PCM=m +CONFIG_SND_SOC_IMX_PCM_DMA=y +CONFIG_SND_SOC_IMX_AUDMUX=m +CONFIG_SND_SOC_IMX_SGTL5000=m +CONFIG_SND_OMAP_SOC=m +CONFIG_SND_OMAP_SOC_MCBSP=m +CONFIG_SND_OMAP_SOC_HDMI=m +CONFIG_SND_OMAP_SOC_RX51=m +CONFIG_SND_OMAP_SOC_AM3517EVM=m +CONFIG_SND_OMAP_SOC_OMAP_TWL4030=m +CONFIG_SND_OMAP_SOC_OMAP_HDMI=m +CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=m +CONFIG_SND_SOC_I2C_AND_SPI=m +# CONFIG_SND_SOC_ALL_CODECS is not set +CONFIG_SND_SOC_OMAP_HDMI_CODEC=m +CONFIG_SND_SOC_SGTL5000=m +CONFIG_SND_SOC_TLV320AIC23=m +CONFIG_SND_SOC_TLV320AIC3X=m +CONFIG_SND_SOC_TWL4030=m +CONFIG_SND_SOC_TPA6130A2=m +CONFIG_SND_SIMPLE_CARD=m +# CONFIG_SOUND_PRIME is not set +CONFIG_AC97_BUS=m + +# +# HID support +# +CONFIG_HID=y +# CONFIG_HID_BATTERY_STRENGTH is not set +CONFIG_HIDRAW=y +# CONFIG_UHID is not set +CONFIG_HID_GENERIC=y + +# +# Special HID drivers +# +CONFIG_HID_A4TECH=y +# CONFIG_HID_ACRUX is not set +CONFIG_HID_APPLE=y +# CONFIG_HID_APPLEIR is not set +CONFIG_HID_AUREAL=m +CONFIG_HID_BELKIN=y +CONFIG_HID_CHERRY=y +CONFIG_HID_CHICONY=y +# CONFIG_HID_PRODIKEYS is not set +CONFIG_HID_CYPRESS=y +# CONFIG_HID_DRAGONRISE is not set +# CONFIG_HID_EMS_FF is not set +# CONFIG_HID_ELECOM is not set +CONFIG_HID_EZKEY=y +# CONFIG_HID_HOLTEK is not set +CONFIG_HID_KEYTOUCH=m +CONFIG_HID_KYE=y +# CONFIG_HID_UCLOGIC is not set +# CONFIG_HID_WALTOP is not set +CONFIG_HID_GYRATION=m +# CONFIG_HID_ICADE is not set +CONFIG_HID_TWINHAN=m +CONFIG_HID_KENSINGTON=y +CONFIG_HID_LCPOWER=m +CONFIG_HID_LENOVO_TPKBD=m +CONFIG_HID_LOGITECH=y +CONFIG_HID_LOGITECH_DJ=m +# CONFIG_LOGITECH_FF is not set +# CONFIG_LOGIRUMBLEPAD2_FF is not set +# CONFIG_LOGIG940_FF is not set +# CONFIG_LOGIWHEELS_FF is not set +# CONFIG_HID_MAGICMOUSE is not set +CONFIG_HID_MICROSOFT=y +CONFIG_HID_MONTEREY=y +# CONFIG_HID_MULTITOUCH is not set +# CONFIG_HID_NTRIG is not set +CONFIG_HID_ORTEK=m +# CONFIG_HID_PANTHERLORD is not set +CONFIG_HID_PETALYNX=m +CONFIG_HID_PICOLCD=m +CONFIG_HID_PICOLCD_FB=y +CONFIG_HID_PICOLCD_BACKLIGHT=y +CONFIG_HID_PICOLCD_LCD=y +CONFIG_HID_PICOLCD_LEDS=y +CONFIG_HID_PICOLCD_CIR=y +# CONFIG_HID_PRIMAX is not set +# CONFIG_HID_PS3REMOTE is not set +CONFIG_HID_ROCCAT=m +CONFIG_HID_SAITEK=m +CONFIG_HID_SAMSUNG=m +# CONFIG_HID_SONY is not set +CONFIG_HID_SPEEDLINK=m +# CONFIG_HID_STEELSERIES is not set +CONFIG_HID_SUNPLUS=m +# CONFIG_HID_GREENASIA is not set +# CONFIG_HID_SMARTJOYPLUS is not set +CONFIG_HID_TIVO=m +CONFIG_HID_TOPSEED=m +CONFIG_HID_THINGM=m +# CONFIG_HID_THRUSTMASTER is not set +# CONFIG_HID_WACOM is not set +# CONFIG_HID_WIIMOTE is not set +# CONFIG_HID_ZEROPLUS is not set +CONFIG_HID_ZYDACRON=m +CONFIG_HID_SENSOR_HUB=m + +# +# USB HID support +# +CONFIG_USB_HID=y +CONFIG_HID_PID=y +CONFIG_USB_HIDDEV=y + +# +# I2C HID support +# +CONFIG_I2C_HID=m +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB_ARCH_HAS_XHCI=y +CONFIG_USB_SUPPORT=y +CONFIG_USB_COMMON=y +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB=y +# CONFIG_USB_DEBUG is not set +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y + +# +# Miscellaneous USB options +# +CONFIG_USB_DEFAULT_PERSIST=y +# CONFIG_USB_DYNAMIC_MINORS is not set +CONFIG_USB_OTG=y +# CONFIG_USB_OTG_WHITELIST is not set +# CONFIG_USB_OTG_BLACKLIST_HUB is not set +CONFIG_USB_MON=m +CONFIG_USB_WUSB_CBAF=m +# CONFIG_USB_WUSB_CBAF_DEBUG is not set + +# +# USB Host Controller Drivers +# +# CONFIG_USB_C67X00_HCD is not set +# CONFIG_USB_XHCI_HCD is not set +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHCI_TT_NEWSCHED=y +CONFIG_USB_EHCI_PCI=y +CONFIG_USB_EHCI_MXC=m +CONFIG_USB_EHCI_HCD_OMAP=y +CONFIG_USB_EHCI_HCD_ORION=y +CONFIG_USB_EHCI_HCD_PLATFORM=y +# CONFIG_USB_OXU210HP_HCD is not set +# CONFIG_USB_ISP116X_HCD is not set +# CONFIG_USB_ISP1760_HCD is not set +CONFIG_USB_ISP1362_HCD=m +# CONFIG_USB_OHCI_HCD is not set +CONFIG_USB_UHCI_HCD=y +CONFIG_USB_UHCI_SUPPORT_NON_PCI_HC=y +CONFIG_USB_UHCI_PLATFORM=y +# CONFIG_USB_U132_HCD is not set +CONFIG_USB_SL811_HCD=m +CONFIG_USB_SL811_HCD_ISO=y +# CONFIG_USB_R8A66597_HCD is not set +CONFIG_USB_IMX21_HCD=y +CONFIG_USB_HCD_SSB=m + +# +# USB Device Class drivers +# +CONFIG_USB_ACM=m +CONFIG_USB_PRINTER=m +CONFIG_USB_WDM=m +CONFIG_USB_TMC=m + +# +# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may +# + +# +# also be needed; see USB_STORAGE Help for more info +# +CONFIG_USB_STORAGE=y +# CONFIG_USB_STORAGE_DEBUG is not set +CONFIG_USB_STORAGE_REALTEK=m +CONFIG_REALTEK_AUTOPM=y +CONFIG_USB_STORAGE_DATAFAB=m +CONFIG_USB_STORAGE_FREECOM=m +CONFIG_USB_STORAGE_ISD200=m +CONFIG_USB_STORAGE_USBAT=m +CONFIG_USB_STORAGE_SDDR09=m +CONFIG_USB_STORAGE_SDDR55=m +CONFIG_USB_STORAGE_JUMPSHOT=m +CONFIG_USB_STORAGE_ALAUDA=m +CONFIG_USB_STORAGE_ONETOUCH=m +CONFIG_USB_STORAGE_KARMA=m +CONFIG_USB_STORAGE_CYPRESS_ATACB=m +CONFIG_USB_STORAGE_ENE_UB6250=m + +# +# USB Imaging devices +# +CONFIG_USB_MDC800=m +CONFIG_USB_MICROTEK=m +CONFIG_USB_DWC3=m +CONFIG_USB_DWC3_HOST=y +# CONFIG_USB_DWC3_DEBUG is not set +CONFIG_USB_CHIPIDEA=m +CONFIG_USB_CHIPIDEA_HOST=y +# CONFIG_USB_CHIPIDEA_DEBUG is not set + +# +# USB port drivers +# +CONFIG_USB_USS720=m +CONFIG_USB_SERIAL=m +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_USB_SERIAL_AIRCABLE=m +CONFIG_USB_SERIAL_ARK3116=m +CONFIG_USB_SERIAL_BELKIN=m +CONFIG_USB_SERIAL_CH341=m +CONFIG_USB_SERIAL_WHITEHEAT=m +CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m +CONFIG_USB_SERIAL_CP210X=m +CONFIG_USB_SERIAL_CYPRESS_M8=m +# CONFIG_USB_SERIAL_EMPEG is not set +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_FUNSOFT=m +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_IPAQ=m +CONFIG_USB_SERIAL_IR=m +CONFIG_USB_SERIAL_EDGEPORT=m +CONFIG_USB_SERIAL_EDGEPORT_TI=m +CONFIG_USB_SERIAL_F81232=m +# CONFIG_USB_SERIAL_GARMIN is not set +CONFIG_USB_SERIAL_IPW=m +CONFIG_USB_SERIAL_IUU=m +CONFIG_USB_SERIAL_KEYSPAN_PDA=m +# CONFIG_USB_SERIAL_KEYSPAN is not set +CONFIG_USB_SERIAL_KLSI=m +# CONFIG_USB_SERIAL_KOBIL_SCT is not set +CONFIG_USB_SERIAL_MCT_U232=m +# CONFIG_USB_SERIAL_METRO is not set +CONFIG_USB_SERIAL_MOS7720=m +CONFIG_USB_SERIAL_MOS7715_PARPORT=y +CONFIG_USB_SERIAL_MOS7840=m +CONFIG_USB_SERIAL_MOTOROLA=m +# CONFIG_USB_SERIAL_NAVMAN is not set +CONFIG_USB_SERIAL_PL2303=m +CONFIG_USB_SERIAL_OTI6858=m +CONFIG_USB_SERIAL_QCAUX=m +CONFIG_USB_SERIAL_QUALCOMM=m +CONFIG_USB_SERIAL_SPCP8X5=m +# CONFIG_USB_SERIAL_HP4X is not set +# CONFIG_USB_SERIAL_SAFE is not set +CONFIG_USB_SERIAL_SIEMENS_MPI=m +CONFIG_USB_SERIAL_SIERRAWIRELESS=m +# CONFIG_USB_SERIAL_SYMBOL is not set +# CONFIG_USB_SERIAL_TI is not set +# CONFIG_USB_SERIAL_CYBERJACK is not set +CONFIG_USB_SERIAL_XIRCOM=m +CONFIG_USB_SERIAL_WWAN=m +CONFIG_USB_SERIAL_OPTION=m +# CONFIG_USB_SERIAL_OMNINET is not set +# CONFIG_USB_SERIAL_OPTICON is not set +# CONFIG_USB_SERIAL_VIVOPAY_SERIAL is not set +# CONFIG_USB_SERIAL_XSENS_MT is not set +# CONFIG_USB_SERIAL_ZIO is not set +# CONFIG_USB_SERIAL_WISHBONE is not set +CONFIG_USB_SERIAL_ZTE=m +CONFIG_USB_SERIAL_SSU100=m +CONFIG_USB_SERIAL_QT2=m +# CONFIG_USB_SERIAL_DEBUG is not set + +# +# USB Miscellaneous drivers +# +CONFIG_USB_EMI62=m +CONFIG_USB_EMI26=m +CONFIG_USB_ADUTUX=m +CONFIG_USB_SEVSEG=m +# CONFIG_USB_RIO500 is not set +# CONFIG_USB_LEGOTOWER is not set +CONFIG_USB_LCD=m +CONFIG_USB_LED=m +# CONFIG_USB_CYPRESS_CY7C63 is not set +# CONFIG_USB_CYTHERM is not set +# CONFIG_USB_IDMOUSE is not set +CONFIG_USB_FTDI_ELAN=m +# CONFIG_USB_APPLEDISPLAY is not set +CONFIG_USB_SISUSBVGA=m +CONFIG_USB_SISUSBVGA_CON=y +# CONFIG_USB_LD is not set +# CONFIG_USB_TRANCEVIBRATOR is not set +CONFIG_USB_IOWARRIOR=m +# CONFIG_USB_TEST is not set +# CONFIG_USB_ISIGHTFW is not set +CONFIG_USB_YUREX=m +CONFIG_USB_EZUSB_FX2=m +CONFIG_USB_HSIC_USB3503=m +CONFIG_USB_ATM=m +CONFIG_USB_SPEEDTOUCH=m +CONFIG_USB_CXACRU=m +CONFIG_USB_UEAGLEATM=m +CONFIG_USB_XUSBATM=m +CONFIG_USB_PHY=y +CONFIG_NOP_USB_XCEIV=m +CONFIG_OMAP_CONTROL_USB=y +CONFIG_OMAP_USB2=y +CONFIG_OMAP_USB3=m +CONFIG_SAMSUNG_USBPHY=m +CONFIG_SAMSUNG_USB2PHY=m +CONFIG_SAMSUNG_USB3PHY=m +CONFIG_USB_GPIO_VBUS=m +CONFIG_USB_ISP1301=m +CONFIG_USB_MXS_PHY=m +CONFIG_USB_RCAR_PHY=m +CONFIG_USB_ULPI=y +# CONFIG_USB_GADGET is not set +# CONFIG_UWB is not set +CONFIG_MMC=y +# CONFIG_MMC_DEBUG is not set +# CONFIG_MMC_UNSAFE_RESUME is not set +# CONFIG_MMC_CLKGATE is not set + +# +# MMC/SD/SDIO Card Drivers +# +CONFIG_MMC_BLOCK=y +CONFIG_MMC_BLOCK_MINORS=8 +CONFIG_MMC_BLOCK_BOUNCE=y +# CONFIG_SDIO_UART is not set +# CONFIG_MMC_TEST is not set + +# +# MMC/SD/SDIO Host Controller Drivers +# +CONFIG_MMC_ARMMMCI=m +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_IO_ACCESSORS=y +# CONFIG_MMC_SDHCI_PCI is not set +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_SDHCI_ESDHC_IMX=y +CONFIG_MMC_SDHCI_PXAV3=m +CONFIG_MMC_SDHCI_PXAV2=m +CONFIG_MMC_OMAP=y +CONFIG_MMC_OMAP_HS=y +CONFIG_MMC_MXC=m +# CONFIG_MMC_TIFM_SD is not set +CONFIG_MMC_MVSDIO=y +# CONFIG_MMC_CB710 is not set +# CONFIG_MMC_VIA_SDMMC is not set +CONFIG_MMC_DW=m +# CONFIG_MMC_DW_IDMAC is not set +CONFIG_MMC_DW_PLTFM=m +CONFIG_MMC_DW_EXYNOS=m +# CONFIG_MMC_DW_PCI is not set +CONFIG_MMC_VUB300=m +CONFIG_MMC_USHC=m +CONFIG_MMC_WMT=m +CONFIG_MEMSTICK=m +# CONFIG_MEMSTICK_DEBUG is not set + +# +# MemoryStick drivers +# +# CONFIG_MEMSTICK_UNSAFE_RESUME is not set +CONFIG_MSPRO_BLOCK=m + +# +# MemoryStick Host Controller Drivers +# +# CONFIG_MEMSTICK_TIFM_MS is not set +# CONFIG_MEMSTICK_JMICRON_38X is not set +# CONFIG_MEMSTICK_R592 is not set +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y + +# +# LED drivers +# +CONFIG_LEDS_88PM860X=y +CONFIG_LEDS_LM3530=m +CONFIG_LEDS_LM3533=m +CONFIG_LEDS_LM3642=m +CONFIG_LEDS_PCA9532=m +CONFIG_LEDS_PCA9532_GPIO=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_LP3944=m +CONFIG_LEDS_LP55XX_COMMON=m +CONFIG_LEDS_LP5521=m +CONFIG_LEDS_LP5523=m +CONFIG_LEDS_LP5562=m +CONFIG_LEDS_PCA955X=m +CONFIG_LEDS_PCA9633=m +CONFIG_LEDS_PWM=m +CONFIG_LEDS_REGULATOR=m +CONFIG_LEDS_BD2802=m +CONFIG_LEDS_LT3593=m +CONFIG_LEDS_RENESAS_TPU=y +CONFIG_LEDS_TCA6507=m +CONFIG_LEDS_LM355x=m +CONFIG_LEDS_OT200=m +CONFIG_LEDS_BLINKM=m + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=m +CONFIG_LEDS_TRIGGER_ONESHOT=m +CONFIG_LEDS_TRIGGER_HEARTBEAT=m +CONFIG_LEDS_TRIGGER_BACKLIGHT=m +CONFIG_LEDS_TRIGGER_CPU=y +CONFIG_LEDS_TRIGGER_GPIO=m +CONFIG_LEDS_TRIGGER_DEFAULT_ON=y + +# +# iptables trigger is under Netfilter config (LED target) +# +CONFIG_LEDS_TRIGGER_TRANSIENT=m +CONFIG_LEDS_TRIGGER_CAMERA=m +CONFIG_LEDS_TRIGGER_NETDEV=m +# CONFIG_ACCESSIBILITY is not set +# CONFIG_INFINIBAND is not set +# CONFIG_EDAC is not set +CONFIG_RTC_LIB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_SYSTOHC=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +# CONFIG_RTC_DEBUG is not set + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +CONFIG_RTC_INTF_DEV_UIE_EMUL=y +# CONFIG_RTC_DRV_TEST is not set + +# +# I2C RTC drivers +# +CONFIG_RTC_DRV_88PM860X=m +CONFIG_RTC_DRV_88PM80X=m +CONFIG_RTC_DRV_DS1307=m +CONFIG_RTC_DRV_DS1374=m +CONFIG_RTC_DRV_DS1672=m +CONFIG_RTC_DRV_DS3232=m +CONFIG_RTC_DRV_MAX6900=m +CONFIG_RTC_DRV_RS5C372=m +CONFIG_RTC_DRV_ISL1208=m +CONFIG_RTC_DRV_ISL12022=m +CONFIG_RTC_DRV_X1205=m +CONFIG_RTC_DRV_PCF8523=m +CONFIG_RTC_DRV_PCF8563=m +CONFIG_RTC_DRV_PCF8583=m +CONFIG_RTC_DRV_M41T80=m +CONFIG_RTC_DRV_M41T80_WDT=y +CONFIG_RTC_DRV_BQ32K=m +CONFIG_RTC_DRV_TWL4030=y +# CONFIG_RTC_DRV_S35390A is not set +CONFIG_RTC_DRV_FM3130=m +CONFIG_RTC_DRV_RX8581=m +CONFIG_RTC_DRV_RX8025=m +CONFIG_RTC_DRV_EM3027=m +CONFIG_RTC_DRV_RV3029C2=m + +# +# SPI RTC drivers +# + +# +# Platform RTC drivers +# +CONFIG_RTC_DRV_CMOS=y +CONFIG_RTC_DRV_DS1286=m +CONFIG_RTC_DRV_DS1511=m +CONFIG_RTC_DRV_DS1553=m +CONFIG_RTC_DRV_DS1742=m +CONFIG_RTC_DRV_STK17TA8=m +# CONFIG_RTC_DRV_M48T86 is not set +CONFIG_RTC_DRV_M48T35=m +CONFIG_RTC_DRV_M48T59=m +CONFIG_RTC_DRV_MSM6242=m +CONFIG_RTC_DRV_BQ4802=m +CONFIG_RTC_DRV_RP5C01=m +CONFIG_RTC_DRV_V3020=m +CONFIG_RTC_DRV_DS2404=m + +# +# on-CPU RTC drivers +# +CONFIG_RTC_DRV_IMXDI=m +CONFIG_RTC_DRV_OMAP=y +CONFIG_RTC_DRV_PL030=m +CONFIG_RTC_DRV_PL031=m +CONFIG_RTC_DRV_VT8500=m +CONFIG_RTC_DRV_MV=m +CONFIG_RTC_DRV_MXC=m +CONFIG_RTC_DRV_SNVS=m + +# +# HID Sensor RTC drivers +# +CONFIG_RTC_DRV_HID_SENSOR_TIME=m +CONFIG_DMADEVICES=y +# CONFIG_DMADEVICES_DEBUG is not set + +# +# DMA Devices +# +CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH=y +CONFIG_AMBA_PL08X=y +# CONFIG_DW_DMAC is not set +CONFIG_MV_XOR=y +CONFIG_MX3_IPU=y +CONFIG_MX3_IPU_IRQS=4 +CONFIG_TIMB_DMA=m +CONFIG_PL330_DMA=y +CONFIG_IMX_SDMA=y +CONFIG_IMX_DMA=y +CONFIG_MXS_DMA=y +CONFIG_DMA_OMAP=y +CONFIG_DMA_ENGINE=y +CONFIG_DMA_VIRTUAL_CHANNELS=y +CONFIG_DMA_OF=y + +# +# DMA Clients +# +CONFIG_ASYNC_TX_DMA=y +# CONFIG_DMATEST is not set +# CONFIG_AUXDISPLAY is not set +CONFIG_UIO=m +# CONFIG_UIO_CIF is not set +# CONFIG_UIO_PDRV is not set +# CONFIG_UIO_PDRV_GENIRQ is not set +# CONFIG_UIO_DMEM_GENIRQ is not set +# CONFIG_UIO_AEC is not set +# CONFIG_UIO_SERCOS3 is not set +# CONFIG_UIO_PCI_GENERIC is not set +# CONFIG_UIO_NETX is not set +CONFIG_VIRT_DRIVERS=y + +# +# Virtio drivers +# +# CONFIG_VIRTIO_PCI is not set +# CONFIG_VIRTIO_MMIO is not set + +# +# Microsoft Hyper-V guest support +# +CONFIG_STAGING=y +# CONFIG_ET131X is not set +CONFIG_USBIP_CORE=m +CONFIG_USBIP_VHCI_HCD=m +CONFIG_USBIP_HOST=m +# CONFIG_USBIP_DEBUG is not set +# CONFIG_W35UND is not set +# CONFIG_PRISM2_USB is not set +# CONFIG_ECHO is not set +# CONFIG_COMEDI is not set +# CONFIG_ASUS_OLED is not set +# CONFIG_PANEL is not set +# CONFIG_R8187SE is not set +# CONFIG_RTL8192U is not set +# CONFIG_RTLLIB is not set +# CONFIG_R8712U is not set +CONFIG_RTS5139=m +# CONFIG_RTS5139_DEBUG is not set +# CONFIG_TRANZPORT is not set +# CONFIG_IDE_PHISON is not set +# CONFIG_LINE6_USB is not set +# CONFIG_USB_SERIAL_QUATECH2 is not set +# CONFIG_VT6655 is not set +# CONFIG_VT6656 is not set +# CONFIG_DX_SEP is not set + +# +# IIO staging drivers +# + +# +# Accelerometers +# + +# +# Analog to digital converters +# +# CONFIG_AD7291 is not set +# CONFIG_AD7606 is not set +# CONFIG_AD799X is not set + +# +# Analog digital bi-direction converters +# +# CONFIG_ADT7316 is not set + +# +# Capacitance to digital converters +# +# CONFIG_AD7150 is not set +# CONFIG_AD7152 is not set +# CONFIG_AD7746 is not set + +# +# Direct Digital Synthesis +# + +# +# Digital gyroscope sensors +# + +# +# Network Analyzer, Impedance Converters +# +# CONFIG_AD5933 is not set + +# +# Light sensors +# +# CONFIG_SENSORS_ISL29018 is not set +# CONFIG_SENSORS_ISL29028 is not set +# CONFIG_TSL2583 is not set +# CONFIG_TSL2x7x is not set + +# +# Magnetometer sensors +# +# CONFIG_SENSORS_HMC5843 is not set + +# +# Active energy metering IC +# +# CONFIG_ADE7854 is not set + +# +# Resolver to digital converters +# + +# +# Triggers - standalone +# +# CONFIG_IIO_PERIODIC_RTC_TRIGGER is not set +# CONFIG_IIO_GPIO_TRIGGER is not set +# CONFIG_IIO_SYSFS_TRIGGER is not set +# CONFIG_IIO_SIMPLE_DUMMY is not set +# CONFIG_ZSMALLOC is not set +# CONFIG_FB_SM7XX is not set +# CONFIG_CRYSTALHD is not set +# CONFIG_FB_XGI is not set +# CONFIG_USB_ENESTORAGE is not set +# CONFIG_BCM_WIMAX is not set +# CONFIG_FT1000 is not set + +# +# Speakup console speech +# +# CONFIG_SPEAKUP is not set +# CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set +# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set +# CONFIG_STAGING_MEDIA is not set + +# +# Android +# +# CONFIG_ANDROID is not set +# CONFIG_USB_WPAN_HCD is not set +# CONFIG_WIMAX_GDM72XX is not set +# CONFIG_CSR_WIFI is not set +CONFIG_NET_VENDOR_SILICOM=y +# CONFIG_SBYPASS is not set +# CONFIG_BPCTL is not set +CONFIG_CED1401=m +CONFIG_DRM_IMX=m +# CONFIG_DRM_IMX_FB_HELPER is not set +CONFIG_DRM_IMX_PARALLEL_DISPLAY=m +# CONFIG_DRM_IMX_TVE is not set +# CONFIG_DGRP is not set +# CONFIG_FIREWIRE_SERIAL is not set +CONFIG_CLKDEV_LOOKUP=y +CONFIG_HAVE_CLK_PREPARE=y +CONFIG_COMMON_CLK=y + +# +# Common Clock Framework +# +# CONFIG_COMMON_CLK_DEBUG is not set +CONFIG_COMMON_CLK_VERSATILE=y +CONFIG_COMMON_CLK_SI5351=m +CONFIG_COMMON_CLK_AXI_CLKGEN=m +CONFIG_MVEBU_CLK_CORE=y +CONFIG_MVEBU_CLK_CPU=y +CONFIG_MVEBU_CLK_GATING=y +CONFIG_HWSPINLOCK=y + +# +# Hardware Spinlock drivers +# +CONFIG_HWSPINLOCK_OMAP=y +CONFIG_CLKSRC_OF=y +CONFIG_CLKSRC_MMIO=y +CONFIG_ARMADA_370_XP_TIMER=y +CONFIG_SUN4I_TIMER=y +CONFIG_VT8500_TIMER=y +CONFIG_CADENCE_TTC_TIMER=y +CONFIG_ARM_ARCH_TIMER=y +CONFIG_MAILBOX=y +CONFIG_PL320_MBOX=y +# CONFIG_IOMMU_SUPPORT is not set + +# +# Remoteproc drivers +# +# CONFIG_STE_MODEM_RPROC is not set + +# +# Rpmsg drivers +# +# CONFIG_PM_DEVFREQ is not set +# CONFIG_EXTCON is not set +CONFIG_MEMORY=y +# CONFIG_TI_EMIF is not set +CONFIG_IIO=m +CONFIG_IIO_BUFFER=y +CONFIG_IIO_BUFFER_CB=y +CONFIG_IIO_KFIFO_BUF=m +CONFIG_IIO_TRIGGER=y +CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 + +# +# Accelerometers +# +# CONFIG_HID_SENSOR_ACCEL_3D is not set +# CONFIG_IIO_ST_ACCEL_3AXIS is not set + +# +# Analog to digital converters +# +# CONFIG_EXYNOS_ADC is not set +# CONFIG_MAX1363 is not set +# CONFIG_TI_ADC081C is not set +# CONFIG_VIPERBOARD_ADC is not set + +# +# Amplifiers +# + +# +# Hid Sensor IIO Common +# +CONFIG_HID_SENSOR_IIO_COMMON=m +CONFIG_HID_SENSOR_IIO_TRIGGER=m +# CONFIG_HID_SENSOR_ENUM_BASE_QUIRKS is not set + +# +# Digital to analog converters +# +# CONFIG_AD5064 is not set +# CONFIG_AD5380 is not set +# CONFIG_AD5446 is not set +# CONFIG_MAX517 is not set +# CONFIG_MCP4725 is not set + +# +# Frequency Synthesizers DDS/PLL +# + +# +# Clock Generator/Distribution +# + +# +# Phase-Locked Loop (PLL) frequency synthesizers +# + +# +# Digital gyroscope sensors +# +# CONFIG_HID_SENSOR_GYRO_3D is not set +# CONFIG_IIO_ST_GYRO_3AXIS is not set +# CONFIG_ITG3200 is not set + +# +# Inertial measurement units +# +# CONFIG_INV_MPU6050_IIO is not set + +# +# Light sensors +# +# CONFIG_ADJD_S311 is not set +# CONFIG_SENSORS_LM3533 is not set +# CONFIG_SENSORS_TSL2563 is not set +# CONFIG_VCNL4000 is not set +# CONFIG_HID_SENSOR_ALS is not set + +# +# Magnetometer sensors +# +# CONFIG_AK8975 is not set +# CONFIG_HID_SENSOR_MAGNETOMETER_3D is not set +# CONFIG_IIO_ST_MAGN_3AXIS is not set +# CONFIG_VME_BUS is not set +CONFIG_PWM=y +CONFIG_PWM_IMX=m +# CONFIG_PWM_TIECAP is not set +# CONFIG_PWM_TIEHRPWM is not set +CONFIG_PWM_TWL=m +CONFIG_PWM_TWL_LED=m +CONFIG_PWM_VT8500=m +CONFIG_IRQCHIP=y +CONFIG_ARM_GIC=y +# CONFIG_IPACK_BUS is not set +CONFIG_ARCH_HAS_RESET_CONTROLLER=y +# CONFIG_RESET_CONTROLLER is not set + +# +# File systems +# +CONFIG_DCACHE_WORD_ACCESS=y +# CONFIG_EXT2_FS is not set +# CONFIG_EXT3_FS is not set +CONFIG_EXT4_FS=y +CONFIG_EXT4_USE_FOR_EXT23=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +# CONFIG_EXT4_DEBUG is not set +CONFIG_JBD2=y +# CONFIG_JBD2_DEBUG is not set +CONFIG_FS_MBCACHE=y +CONFIG_REISERFS_FS=m +# CONFIG_REISERFS_CHECK is not set +CONFIG_REISERFS_PROC_INFO=y +CONFIG_REISERFS_FS_XATTR=y +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y +# CONFIG_JFS_FS is not set +CONFIG_XFS_FS=m +CONFIG_XFS_QUOTA=y +CONFIG_XFS_POSIX_ACL=y +CONFIG_XFS_RT=y +# CONFIG_XFS_WARN is not set +# CONFIG_XFS_DEBUG is not set +# CONFIG_GFS2_FS is not set +# CONFIG_OCFS2_FS is not set +CONFIG_BTRFS_FS=m +CONFIG_BTRFS_FS_POSIX_ACL=y +# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set +# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set +# CONFIG_BTRFS_DEBUG is not set +# CONFIG_NILFS2_FS is not set +CONFIG_FS_POSIX_ACL=y +CONFIG_EXPORTFS=y +CONFIG_FILE_LOCKING=y +CONFIG_FSNOTIFY=y +CONFIG_DNOTIFY=y +CONFIG_INOTIFY_USER=y +CONFIG_FANOTIFY=y +CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y +CONFIG_QUOTA=y +CONFIG_QUOTA_NETLINK_INTERFACE=y +# CONFIG_PRINT_QUOTA_WARNING is not set +# CONFIG_QUOTA_DEBUG is not set +CONFIG_QUOTA_TREE=y +# CONFIG_QFMT_V1 is not set +CONFIG_QFMT_V2=y +CONFIG_QUOTACTL=y +CONFIG_AUTOFS4_FS=y +CONFIG_FUSE_FS=m +CONFIG_CUSE=m +CONFIG_GENERIC_ACL=y + +# +# Caches +# +CONFIG_FSCACHE=m +CONFIG_FSCACHE_STATS=y +# CONFIG_FSCACHE_HISTOGRAM is not set +# CONFIG_FSCACHE_DEBUG is not set +# CONFIG_FSCACHE_OBJECT_LIST is not set +CONFIG_CACHEFILES=m +# CONFIG_CACHEFILES_DEBUG is not set +# CONFIG_CACHEFILES_HISTOGRAM is not set + +# +# CD-ROM/DVD Filesystems +# +CONFIG_ISO9660_FS=y +CONFIG_JOLIET=y +CONFIG_ZISOFS=y +CONFIG_UDF_FS=m +CONFIG_UDF_NLS=y + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=m +CONFIG_MSDOS_FS=m +CONFIG_VFAT_FS=m +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="ascii" +# CONFIG_NTFS_FS is not set + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_SYSCTL=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_TMPFS_XATTR=y +# CONFIG_HUGETLB_PAGE is not set +CONFIG_CONFIGFS_FS=m +CONFIG_MISC_FILESYSTEMS=y +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +# CONFIG_ECRYPT_FS is not set +# CONFIG_HFS_FS is not set +# CONFIG_HFSPLUS_FS is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +# CONFIG_JFFS2_FS is not set +# CONFIG_UBIFS_FS is not set +# CONFIG_LOGFS is not set +# CONFIG_CRAMFS is not set +# CONFIG_SQUASHFS is not set +# CONFIG_VXFS_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_OMFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_QNX6FS_FS is not set +# CONFIG_ROMFS_FS is not set +CONFIG_PSTORE=y +# CONFIG_PSTORE_CONSOLE is not set +# CONFIG_PSTORE_FTRACE is not set +# CONFIG_PSTORE_RAM is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UFS_FS is not set +# CONFIG_EXOFS_FS is not set +# CONFIG_F2FS_FS is not set +CONFIG_ORE=m +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_NFS_FS=m +CONFIG_NFS_V2=m +CONFIG_NFS_V3=m +CONFIG_NFS_V3_ACL=y +CONFIG_NFS_V4=m +# CONFIG_NFS_SWAP is not set +CONFIG_NFS_V4_1=y +CONFIG_PNFS_FILE_LAYOUT=m +CONFIG_PNFS_BLOCK=m +CONFIG_PNFS_OBJLAYOUT=m +CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="ipfire.org" +CONFIG_NFS_FSCACHE=y +# CONFIG_NFS_USE_LEGACY_DNS is not set +CONFIG_NFS_USE_KERNEL_DNS=y +CONFIG_NFSD=m +CONFIG_NFSD_V2_ACL=y +CONFIG_NFSD_V3=y +CONFIG_NFSD_V3_ACL=y +CONFIG_NFSD_V4=y +# CONFIG_NFSD_FAULT_INJECTION is not set +CONFIG_LOCKD=m +CONFIG_LOCKD_V4=y +CONFIG_NFS_ACL_SUPPORT=m +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=m +CONFIG_SUNRPC_GSS=m +CONFIG_SUNRPC_BACKCHANNEL=y +CONFIG_RPCSEC_GSS_KRB5=m +# CONFIG_SUNRPC_DEBUG is not set +# CONFIG_CEPH_FS is not set +CONFIG_CIFS=m +CONFIG_CIFS_STATS=y +# CONFIG_CIFS_STATS2 is not set +# CONFIG_CIFS_WEAK_PW_HASH is not set +# CONFIG_CIFS_UPCALL is not set +CONFIG_CIFS_XATTR=y +CONFIG_CIFS_POSIX=y +CONFIG_CIFS_ACL=y +# CONFIG_CIFS_DEBUG is not set +CONFIG_CIFS_DFS_UPCALL=y +CONFIG_CIFS_SMB2=y +CONFIG_CIFS_FSCACHE=y +# CONFIG_NCP_FS is not set +# CONFIG_CODA_FS is not set +# CONFIG_AFS_FS is not set +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="utf-8" +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_CODEPAGE_737=m +CONFIG_NLS_CODEPAGE_775=m +CONFIG_NLS_CODEPAGE_850=m +CONFIG_NLS_CODEPAGE_852=m +CONFIG_NLS_CODEPAGE_855=m +CONFIG_NLS_CODEPAGE_857=m +CONFIG_NLS_CODEPAGE_860=m +CONFIG_NLS_CODEPAGE_861=m +CONFIG_NLS_CODEPAGE_862=m +CONFIG_NLS_CODEPAGE_863=m +CONFIG_NLS_CODEPAGE_864=m +CONFIG_NLS_CODEPAGE_865=m +CONFIG_NLS_CODEPAGE_866=m +CONFIG_NLS_CODEPAGE_869=m +CONFIG_NLS_CODEPAGE_936=m +CONFIG_NLS_CODEPAGE_950=m +CONFIG_NLS_CODEPAGE_932=m +CONFIG_NLS_CODEPAGE_949=m +CONFIG_NLS_CODEPAGE_874=m +CONFIG_NLS_ISO8859_8=m +CONFIG_NLS_CODEPAGE_1250=m +CONFIG_NLS_CODEPAGE_1251=m +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=m +CONFIG_NLS_ISO8859_2=m +CONFIG_NLS_ISO8859_3=m +CONFIG_NLS_ISO8859_4=m +CONFIG_NLS_ISO8859_5=m +CONFIG_NLS_ISO8859_6=m +CONFIG_NLS_ISO8859_7=m +CONFIG_NLS_ISO8859_9=m +CONFIG_NLS_ISO8859_13=m +CONFIG_NLS_ISO8859_14=m +CONFIG_NLS_ISO8859_15=m +CONFIG_NLS_KOI8_R=m +CONFIG_NLS_KOI8_U=m +CONFIG_NLS_MAC_ROMAN=m +CONFIG_NLS_MAC_CELTIC=m +CONFIG_NLS_MAC_CENTEURO=m +CONFIG_NLS_MAC_CROATIAN=m +CONFIG_NLS_MAC_CYRILLIC=m +CONFIG_NLS_MAC_GAELIC=m +CONFIG_NLS_MAC_GREEK=m +CONFIG_NLS_MAC_ICELAND=m +CONFIG_NLS_MAC_INUIT=m +CONFIG_NLS_MAC_ROMANIAN=m +CONFIG_NLS_MAC_TURKISH=m +CONFIG_NLS_UTF8=m +CONFIG_DLM=m +# CONFIG_DLM_DEBUG is not set + +# +# Kernel hacking +# +# CONFIG_PRINTK_TIME is not set +CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4 +# CONFIG_ENABLE_WARN_DEPRECATED is not set +CONFIG_ENABLE_MUST_CHECK=y +CONFIG_FRAME_WARN=2048 +# CONFIG_MAGIC_SYSRQ is not set +CONFIG_STRIP_ASM_SYMS=y +# CONFIG_READABLE_ASM is not set +# CONFIG_UNUSED_SYMBOLS is not set +CONFIG_DEBUG_FS=y +CONFIG_HEADERS_CHECK=y +# CONFIG_DEBUG_SECTION_MISMATCH is not set +CONFIG_DEBUG_KERNEL=y +CONFIG_DEBUG_SHIRQ=y +CONFIG_LOCKUP_DETECTOR=y +# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set +CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 +# CONFIG_PANIC_ON_OOPS is not set +CONFIG_PANIC_ON_OOPS_VALUE=0 +# CONFIG_DETECT_HUNG_TASK is not set +CONFIG_SCHED_DEBUG=y +CONFIG_SCHEDSTATS=y +CONFIG_TIMER_STATS=y +# CONFIG_DEBUG_OBJECTS is not set +# CONFIG_SLUB_STATS is not set +CONFIG_HAVE_DEBUG_KMEMLEAK=y +# CONFIG_DEBUG_KMEMLEAK is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_RT_MUTEX_TESTER is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_ATOMIC_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +CONFIG_STACKTRACE=y +# CONFIG_DEBUG_STACK_USAGE is not set +# CONFIG_DEBUG_KOBJECT is not set +# CONFIG_DEBUG_HIGHMEM is not set +CONFIG_DEBUG_BUGVERBOSE=y +# CONFIG_DEBUG_INFO is not set +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_WRITECOUNT is not set +CONFIG_DEBUG_MEMORY_INIT=y +CONFIG_DEBUG_LIST=y +# CONFIG_TEST_LIST_SORT is not set +# CONFIG_DEBUG_SG is not set +# CONFIG_DEBUG_NOTIFIERS is not set +# CONFIG_DEBUG_CREDENTIALS is not set +CONFIG_FRAME_POINTER=y +# CONFIG_BOOT_PRINTK_DELAY is not set + +# +# RCU Debugging +# +# CONFIG_SPARSE_RCU_POINTER is not set +# CONFIG_RCU_TORTURE_TEST is not set +CONFIG_RCU_CPU_STALL_TIMEOUT=21 +# CONFIG_RCU_CPU_STALL_INFO is not set +# CONFIG_RCU_TRACE is not set +# CONFIG_BACKTRACE_SELF_TEST is not set +# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +# CONFIG_DEBUG_PER_CPU_MAPS is not set +# CONFIG_LKDTM is not set +# CONFIG_NOTIFIER_ERROR_INJECTION is not set +# CONFIG_FAULT_INJECTION is not set +# CONFIG_DEBUG_PAGEALLOC is not set +CONFIG_NOP_TRACER=y +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_TRACER_MAX_TRACE=y +CONFIG_TRACE_CLOCK=y +CONFIG_RING_BUFFER=y +CONFIG_EVENT_TRACING=y +CONFIG_CONTEXT_SWITCH_TRACER=y +CONFIG_RING_BUFFER_ALLOW_SWAP=y +CONFIG_TRACING=y +CONFIG_GENERIC_TRACER=y +CONFIG_TRACING_SUPPORT=y +CONFIG_FTRACE=y +CONFIG_FUNCTION_TRACER=y +CONFIG_FUNCTION_GRAPH_TRACER=y +# CONFIG_IRQSOFF_TRACER is not set +CONFIG_SCHED_TRACER=y +# CONFIG_FTRACE_SYSCALLS is not set +CONFIG_TRACER_SNAPSHOT=y +# CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP is not set +CONFIG_BRANCH_PROFILE_NONE=y +# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set +# CONFIG_PROFILE_ALL_BRANCHES is not set +CONFIG_STACK_TRACER=y +CONFIG_BLK_DEV_IO_TRACE=y +# CONFIG_PROBE_EVENTS is not set +CONFIG_DYNAMIC_FTRACE=y +CONFIG_FUNCTION_PROFILER=y +CONFIG_FTRACE_MCOUNT_RECORD=y +# CONFIG_FTRACE_STARTUP_TEST is not set +CONFIG_RING_BUFFER_BENCHMARK=m +# CONFIG_RING_BUFFER_STARTUP_TEST is not set +CONFIG_RBTREE_TEST=m +# CONFIG_INTERVAL_TREE_TEST is not set +# CONFIG_BUILD_DOCSRC is not set +CONFIG_DYNAMIC_DEBUG=y +# CONFIG_DMA_API_DEBUG is not set +# CONFIG_ATOMIC64_SELFTEST is not set +CONFIG_ASYNC_RAID6_TEST=m +# CONFIG_SAMPLES is not set +CONFIG_HAVE_ARCH_KGDB=y +# CONFIG_KGDB is not set +# CONFIG_TEST_STRING_HELPERS is not set +# CONFIG_TEST_KSTRTOX is not set +CONFIG_STRICT_DEVMEM=y +CONFIG_ARM_UNWIND=y +CONFIG_OLD_MCOUNT=y +# CONFIG_DEBUG_USER is not set +# CONFIG_DEBUG_LL is not set +CONFIG_DEBUG_IMX_UART_PORT=1 +CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S" +CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h" +CONFIG_OC_ETM=y +# CONFIG_PID_IN_CONTEXTIDR is not set + +# +# Security options +# + +# +# Grsecurity +# +CONFIG_PAX_USERCOPY_SLABS=y +CONFIG_GRKERNSEC=y +# CONFIG_GRKERNSEC_CONFIG_AUTO is not set +CONFIG_GRKERNSEC_CONFIG_CUSTOM=y + +# +# Customize Configuration +# + +# +# PaX +# +CONFIG_PAX=y + +# +# PaX Control +# +# CONFIG_PAX_SOFTMODE is not set +CONFIG_PAX_EI_PAX=y +CONFIG_PAX_PT_PAX_FLAGS=y +# CONFIG_PAX_XATTR_PAX_FLAGS is not set +# CONFIG_PAX_NO_ACL_FLAGS is not set +CONFIG_PAX_HAVE_ACL_FLAGS=y +# CONFIG_PAX_HOOK_ACL_FLAGS is not set + +# +# Non-executable pages +# +CONFIG_PAX_NOEXEC=y +CONFIG_PAX_PAGEEXEC=y +CONFIG_PAX_MPROTECT=y +# CONFIG_PAX_MPROTECT_COMPAT is not set +CONFIG_PAX_ELFRELOCS=y +CONFIG_PAX_KERNEXEC=y +CONFIG_PAX_KERNEXEC_PLUGIN_METHOD="" + +# +# Address Space Layout Randomization +# +CONFIG_PAX_ASLR=y +CONFIG_PAX_RANDUSTACK=y +CONFIG_PAX_RANDMMAP=y + +# +# Miscellaneous hardening features +# +CONFIG_PAX_MEMORY_SANITIZE=y +CONFIG_PAX_MEMORY_STRUCTLEAK=y +CONFIG_PAX_MEMORY_UDEREF=y +CONFIG_PAX_REFCOUNT=y +CONFIG_PAX_CONSTIFY_PLUGIN=y +CONFIG_PAX_USERCOPY=y +# CONFIG_PAX_LATENT_ENTROPY is not set + +# +# Memory Protections +# +# CONFIG_GRKERNSEC_KMEM is not set +CONFIG_GRKERNSEC_JIT_HARDEN=y +# CONFIG_GRKERNSEC_PERF_HARDEN is not set +CONFIG_GRKERNSEC_RAND_THREADSTACK=y +CONFIG_GRKERNSEC_PROC_MEMMAP=y +CONFIG_GRKERNSEC_BRUTE=y +CONFIG_GRKERNSEC_MODHARDEN=y +CONFIG_GRKERNSEC_HIDESYM=y +CONFIG_GRKERNSEC_KERN_LOCKOUT=y + +# +# Role Based Access Control Options +# +CONFIG_GRKERNSEC_NO_RBAC=y +# CONFIG_GRKERNSEC_ACL_HIDEKERN is not set +CONFIG_GRKERNSEC_ACL_MAXTRIES=3 +CONFIG_GRKERNSEC_ACL_TIMEOUT=30 + +# +# Filesystem Protections +# +# CONFIG_GRKERNSEC_PROC is not set +CONFIG_GRKERNSEC_LINK=y +# CONFIG_GRKERNSEC_SYMLINKOWN is not set +CONFIG_GRKERNSEC_FIFO=y +# CONFIG_GRKERNSEC_SYSFS_RESTRICT is not set +# CONFIG_GRKERNSEC_ROFS is not set +CONFIG_GRKERNSEC_DEVICE_SIDECHANNEL=y +CONFIG_GRKERNSEC_CHROOT=y +# CONFIG_GRKERNSEC_CHROOT_MOUNT is not set +CONFIG_GRKERNSEC_CHROOT_DOUBLE=y +CONFIG_GRKERNSEC_CHROOT_PIVOT=y +CONFIG_GRKERNSEC_CHROOT_CHDIR=y +# CONFIG_GRKERNSEC_CHROOT_CHMOD is not set +CONFIG_GRKERNSEC_CHROOT_FCHDIR=y +# CONFIG_GRKERNSEC_CHROOT_MKNOD is not set +CONFIG_GRKERNSEC_CHROOT_SHMAT=y +CONFIG_GRKERNSEC_CHROOT_UNIX=y +CONFIG_GRKERNSEC_CHROOT_FINDTASK=y +CONFIG_GRKERNSEC_CHROOT_NICE=y +CONFIG_GRKERNSEC_CHROOT_SYSCTL=y +# CONFIG_GRKERNSEC_CHROOT_CAPS is not set +CONFIG_GRKERNSEC_CHROOT_INITRD=y + +# +# Kernel Auditing +# +# CONFIG_GRKERNSEC_AUDIT_GROUP is not set +# CONFIG_GRKERNSEC_EXECLOG is not set +CONFIG_GRKERNSEC_RESLOG=y +# CONFIG_GRKERNSEC_CHROOT_EXECLOG is not set +# CONFIG_GRKERNSEC_AUDIT_PTRACE is not set +# CONFIG_GRKERNSEC_AUDIT_CHDIR is not set +# CONFIG_GRKERNSEC_AUDIT_MOUNT is not set +CONFIG_GRKERNSEC_SIGNAL=y +CONFIG_GRKERNSEC_FORKFAIL=y +# CONFIG_GRKERNSEC_TIME is not set +CONFIG_GRKERNSEC_PROC_IPADDR=y +# CONFIG_GRKERNSEC_RWXMAP_LOG is not set + +# +# Executable Protections +# +CONFIG_GRKERNSEC_DMESG=y +CONFIG_GRKERNSEC_HARDEN_PTRACE=y +CONFIG_GRKERNSEC_PTRACE_READEXEC=y +CONFIG_GRKERNSEC_SETXID=y +# CONFIG_GRKERNSEC_TPE is not set + +# +# Network Protections +# +CONFIG_GRKERNSEC_RANDNET=y +CONFIG_GRKERNSEC_BLACKHOLE=y +CONFIG_GRKERNSEC_NO_SIMULT_CONNECT=y +# CONFIG_GRKERNSEC_SOCKET is not set + +# +# Physical Protections +# +# CONFIG_GRKERNSEC_DENYUSB is not set + +# +# Sysctl Support +# +# CONFIG_GRKERNSEC_SYSCTL is not set + +# +# Logging Options +# +CONFIG_GRKERNSEC_FLOODTIME=10 +CONFIG_GRKERNSEC_FLOODBURST=6 +CONFIG_KEYS=y +# CONFIG_ENCRYPTED_KEYS is not set +CONFIG_KEYS_DEBUG_PROC_KEYS=y +CONFIG_SECURITY_DMESG_RESTRICT=y +CONFIG_SECURITY=y +CONFIG_SECURITYFS=y +CONFIG_SECURITY_NETWORK=y +CONFIG_SECURITY_NETWORK_XFRM=y +# CONFIG_SECURITY_PATH is not set +# CONFIG_SECURITY_SELINUX is not set +# CONFIG_SECURITY_SMACK is not set +# CONFIG_SECURITY_TOMOYO is not set +# CONFIG_SECURITY_APPARMOR is not set +# CONFIG_IMA is not set +# CONFIG_EVM is not set +CONFIG_DEFAULT_SECURITY_DAC=y +CONFIG_DEFAULT_SECURITY="" +CONFIG_XOR_BLOCKS=m +CONFIG_ASYNC_CORE=m +CONFIG_ASYNC_MEMCPY=m +CONFIG_ASYNC_XOR=m +CONFIG_ASYNC_PQ=m +CONFIG_ASYNC_RAID6_RECOV=m +CONFIG_CRYPTO=y + +# +# Crypto core or helper +# +CONFIG_CRYPTO_FIPS=y +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_ALGAPI2=y +CONFIG_CRYPTO_AEAD=y +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_BLKCIPHER=y +CONFIG_CRYPTO_BLKCIPHER2=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_RNG=y +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_PCOMP=m +CONFIG_CRYPTO_PCOMP2=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_MANAGER2=y +# CONFIG_CRYPTO_USER is not set +# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set +CONFIG_CRYPTO_GF128MUL=m +CONFIG_CRYPTO_NULL=m +CONFIG_CRYPTO_PCRYPT=m +CONFIG_CRYPTO_WORKQUEUE=y +CONFIG_CRYPTO_CRYPTD=y +CONFIG_CRYPTO_AUTHENC=m +CONFIG_CRYPTO_TEST=m + +# +# Authenticated Encryption with Associated Data +# +CONFIG_CRYPTO_CCM=m +CONFIG_CRYPTO_GCM=m +CONFIG_CRYPTO_SEQIV=y + +# +# Block modes +# +CONFIG_CRYPTO_CBC=y +CONFIG_CRYPTO_CTR=y +CONFIG_CRYPTO_CTS=m +CONFIG_CRYPTO_ECB=y +CONFIG_CRYPTO_LRW=m +CONFIG_CRYPTO_PCBC=m +CONFIG_CRYPTO_XTS=m + +# +# Hash modes +# +CONFIG_CRYPTO_CMAC=m +CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_XCBC=m +CONFIG_CRYPTO_VMAC=m + +# +# Digest +# +CONFIG_CRYPTO_CRC32C=y +CONFIG_CRYPTO_CRC32=y +CONFIG_CRYPTO_GHASH=m +CONFIG_CRYPTO_MD4=m +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_MICHAEL_MIC=m +CONFIG_CRYPTO_RMD128=m +CONFIG_CRYPTO_RMD160=m +CONFIG_CRYPTO_RMD256=m +CONFIG_CRYPTO_RMD320=m +CONFIG_CRYPTO_SHA1=y +CONFIG_CRYPTO_SHA1_ARM=y +CONFIG_CRYPTO_SHA256=y +CONFIG_CRYPTO_SHA512=m +CONFIG_CRYPTO_TGR192=m +CONFIG_CRYPTO_WP512=m + +# +# Ciphers +# +CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_AES_ARM=m +CONFIG_CRYPTO_ANUBIS=m +CONFIG_CRYPTO_ARC4=m +CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_BLOWFISH_COMMON=m +CONFIG_CRYPTO_CAMELLIA=m +CONFIG_CRYPTO_CAST_COMMON=m +CONFIG_CRYPTO_CAST5=m +CONFIG_CRYPTO_CAST6=m +CONFIG_CRYPTO_DES=m +CONFIG_CRYPTO_FCRYPT=m +CONFIG_CRYPTO_KHAZAD=m +CONFIG_CRYPTO_SALSA20=m +CONFIG_CRYPTO_SEED=m +CONFIG_CRYPTO_SERPENT=m +CONFIG_CRYPTO_TEA=m +CONFIG_CRYPTO_TWOFISH=m +CONFIG_CRYPTO_TWOFISH_COMMON=m + +# +# Compression +# +CONFIG_CRYPTO_DEFLATE=m +CONFIG_CRYPTO_ZLIB=m +CONFIG_CRYPTO_LZO=m + +# +# Random Number Generation +# +CONFIG_CRYPTO_ANSI_CPRNG=m +CONFIG_CRYPTO_USER_API=y +CONFIG_CRYPTO_USER_API_HASH=y +CONFIG_CRYPTO_USER_API_SKCIPHER=y +CONFIG_CRYPTO_HW=y +CONFIG_CRYPTO_DEV_MV_CESA=m +CONFIG_CRYPTO_DEV_HIFN_795X=m +CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y +CONFIG_CRYPTO_DEV_OMAP_SHAM=y +CONFIG_CRYPTO_DEV_OMAP_AES=y +CONFIG_ASYMMETRIC_KEY_TYPE=m +CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=m +CONFIG_PUBLIC_KEY_ALGO_RSA=m +CONFIG_X509_CERTIFICATE_PARSER=m +CONFIG_BINARY_PRINTF=y + +# +# Library routines +# +CONFIG_RAID6_PQ=m +CONFIG_BITREVERSE=y +CONFIG_RATIONAL=y +CONFIG_GENERIC_STRNCPY_FROM_USER=y +CONFIG_GENERIC_STRNLEN_USER=y +CONFIG_GENERIC_PCI_IOMAP=y +CONFIG_GENERIC_IO=y +CONFIG_STMP_DEVICE=y +CONFIG_CRC_CCITT=y +CONFIG_CRC16=y +CONFIG_CRC_T10DIF=y +CONFIG_CRC_ITU_T=m +CONFIG_CRC32=y +# CONFIG_CRC32_SELFTEST is not set +CONFIG_CRC32_SLICEBY8=y +# CONFIG_CRC32_SLICEBY4 is not set +# CONFIG_CRC32_SARWATE is not set +# CONFIG_CRC32_BIT is not set +CONFIG_CRC7=m +CONFIG_LIBCRC32C=m +CONFIG_CRC8=m +CONFIG_AUDIT_GENERIC=y +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=m +CONFIG_LZO_COMPRESS=y +CONFIG_LZO_DECOMPRESS=y +CONFIG_XZ_DEC=y +CONFIG_XZ_DEC_X86=y +CONFIG_XZ_DEC_POWERPC=y +CONFIG_XZ_DEC_IA64=y +CONFIG_XZ_DEC_ARM=y +CONFIG_XZ_DEC_ARMTHUMB=y +CONFIG_XZ_DEC_SPARC=y +CONFIG_XZ_DEC_BCJ=y +# CONFIG_XZ_DEC_TEST is not set +CONFIG_DECOMPRESS_GZIP=y +CONFIG_DECOMPRESS_BZIP2=y +CONFIG_DECOMPRESS_LZMA=y +CONFIG_DECOMPRESS_XZ=y +CONFIG_DECOMPRESS_LZO=y +CONFIG_GENERIC_ALLOCATOR=y +CONFIG_BCH=m +CONFIG_BCH_CONST_PARAMS=y +CONFIG_TEXTSEARCH=y +CONFIG_TEXTSEARCH_KMP=m +CONFIG_TEXTSEARCH_BM=m +CONFIG_TEXTSEARCH_FSM=m +CONFIG_HAS_IOMEM=y +CONFIG_HAS_DMA=y +CONFIG_CHECK_SIGNATURE=y +CONFIG_CPU_RMAP=y +CONFIG_DQL=y +CONFIG_NLATTR=y +CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y +CONFIG_AVERAGE=y +CONFIG_CLZ_TAB=y +CONFIG_CORDIC=m +CONFIG_DDR=y +CONFIG_MPILIB=m +CONFIG_OID_REGISTRY=m +CONFIG_VIRTUALIZATION=y +CONFIG_KVM_ARM_MAX_VCPUS=0 + +# +# Virtio drivers +# diff --git a/config/kernel/kernel.config.armv5tel-ipfire-omap b/config/kernel/kernel.config.armv5tel-ipfire-omap deleted file mode 100644 index e2adae7..0000000 --- a/config/kernel/kernel.config.armv5tel-ipfire-omap +++ /dev/null @@ -1,3582 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# Linux/arm 3.2.48-ipfire-omap Kernel Configuration -# -CONFIG_ARM=y -CONFIG_HAVE_PWM=y -CONFIG_SYS_SUPPORTS_APM_EMULATION=y -CONFIG_HAVE_SCHED_CLOCK=y -CONFIG_GENERIC_GPIO=y -# CONFIG_ARCH_USES_GETTIMEOFFSET is not set -CONFIG_GENERIC_CLOCKEVENTS=y -CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y -CONFIG_KTIME_SCALAR=y -CONFIG_HAVE_PROC_CPU=y -CONFIG_STACKTRACE_SUPPORT=y -CONFIG_LOCKDEP_SUPPORT=y -CONFIG_TRACE_IRQFLAGS_SUPPORT=y -CONFIG_HARDIRQS_SW_RESEND=y -CONFIG_GENERIC_IRQ_PROBE=y -CONFIG_RWSEM_GENERIC_SPINLOCK=y -CONFIG_ARCH_HAS_CPUFREQ=y -CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y -CONFIG_GENERIC_HWEIGHT=y -CONFIG_GENERIC_CALIBRATE_DELAY=y -CONFIG_NEED_DMA_MAP_STATE=y -CONFIG_VECTORS_BASE=0xffff0000 -CONFIG_ARM_PATCH_PHYS_VIRT=y -CONFIG_GENERIC_BUG=y -CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" -CONFIG_HAVE_IRQ_WORK=y -CONFIG_IRQ_WORK=y - -# -# General setup -# -CONFIG_EXPERIMENTAL=y -CONFIG_INIT_ENV_ARG_LIMIT=32 -CONFIG_CROSS_COMPILE="" -CONFIG_LOCALVERSION="" -# CONFIG_LOCALVERSION_AUTO is not set -CONFIG_HAVE_KERNEL_GZIP=y -CONFIG_HAVE_KERNEL_LZMA=y -CONFIG_HAVE_KERNEL_LZO=y -# CONFIG_KERNEL_GZIP is not set -CONFIG_KERNEL_LZMA=y -# CONFIG_KERNEL_LZO is not set -CONFIG_DEFAULT_HOSTNAME="(none)" -CONFIG_SWAP=y -CONFIG_SYSVIPC=y -CONFIG_SYSVIPC_SYSCTL=y -CONFIG_POSIX_MQUEUE=y -CONFIG_POSIX_MQUEUE_SYSCTL=y -CONFIG_BSD_PROCESS_ACCT=y -CONFIG_BSD_PROCESS_ACCT_V3=y -# CONFIG_FHANDLE is not set -# CONFIG_TASKSTATS is not set -CONFIG_AUDIT=y -CONFIG_HAVE_GENERIC_HARDIRQS=y - -# -# IRQ subsystem -# -CONFIG_GENERIC_HARDIRQS=y -CONFIG_HAVE_SPARSE_IRQ=y -CONFIG_GENERIC_IRQ_SHOW=y -CONFIG_GENERIC_IRQ_CHIP=y -CONFIG_IRQ_DOMAIN=y -CONFIG_SPARSE_IRQ=y - -# -# RCU Subsystem -# -CONFIG_TREE_RCU=y -# CONFIG_PREEMPT_RCU is not set -# CONFIG_RCU_TRACE is not set -CONFIG_RCU_FANOUT=32 -# CONFIG_RCU_FANOUT_EXACT is not set -CONFIG_RCU_FAST_NO_HZ=y -# CONFIG_TREE_RCU_TRACE is not set -# CONFIG_IKCONFIG is not set -CONFIG_LOG_BUF_SHIFT=19 -# CONFIG_CGROUPS is not set -CONFIG_NAMESPACES=y -CONFIG_UTS_NS=y -CONFIG_IPC_NS=y -# CONFIG_USER_NS is not set -# CONFIG_PID_NS is not set -# CONFIG_NET_NS is not set -# CONFIG_SCHED_AUTOGROUP is not set -CONFIG_SYSFS_DEPRECATED=y -CONFIG_SYSFS_DEPRECATED_V2=y -# CONFIG_RELAY is not set -CONFIG_BLK_DEV_INITRD=y -CONFIG_INITRAMFS_SOURCE="" -CONFIG_RD_GZIP=y -CONFIG_RD_BZIP2=y -CONFIG_RD_LZMA=y -CONFIG_RD_XZ=y -CONFIG_RD_LZO=y -# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set -CONFIG_SYSCTL=y -CONFIG_ANON_INODES=y -CONFIG_EXPERT=y -CONFIG_UID16=y -CONFIG_SYSCTL_SYSCALL=y -CONFIG_KALLSYMS=y -# CONFIG_KALLSYMS_ALL is not set -CONFIG_HOTPLUG=y -CONFIG_PRINTK=y -CONFIG_BUG=y -CONFIG_ELF_CORE=y -CONFIG_BASE_FULL=y -CONFIG_FUTEX=y -CONFIG_EPOLL=y -CONFIG_SIGNALFD=y -CONFIG_TIMERFD=y -CONFIG_EVENTFD=y -CONFIG_SHMEM=y -CONFIG_AIO=y -# CONFIG_EMBEDDED is not set -CONFIG_HAVE_PERF_EVENTS=y -CONFIG_PERF_USE_VMALLOC=y - -# -# Kernel Performance Events And Counters -# -CONFIG_PERF_EVENTS=y -# CONFIG_PERF_COUNTERS is not set -# CONFIG_DEBUG_PERF_USE_VMALLOC is not set -CONFIG_VM_EVENT_COUNTERS=y -CONFIG_SLUB_DEBUG=y -# CONFIG_COMPAT_BRK is not set -# CONFIG_SLAB is not set -CONFIG_SLUB=y -# CONFIG_SLOB is not set -# CONFIG_PROFILING is not set -CONFIG_HAVE_OPROFILE=y -# CONFIG_KPROBES is not set -CONFIG_HAVE_KPROBES=y -CONFIG_HAVE_KRETPROBES=y -CONFIG_USE_GENERIC_SMP_HELPERS=y -CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y -CONFIG_HAVE_CLK=y -CONFIG_HAVE_DMA_API_DEBUG=y -CONFIG_HAVE_HW_BREAKPOINT=y - -# -# GCOV-based kernel profiling -# -CONFIG_HAVE_GENERIC_DMA_COHERENT=y -CONFIG_SLABINFO=y -CONFIG_RT_MUTEXES=y -CONFIG_BASE_SMALL=0 -CONFIG_MODULES=y -# CONFIG_MODULE_FORCE_LOAD is not set -CONFIG_MODULE_UNLOAD=y -CONFIG_MODULE_FORCE_UNLOAD=y -# CONFIG_MODVERSIONS is not set -# CONFIG_MODULE_SRCVERSION_ALL is not set -CONFIG_STOP_MACHINE=y -CONFIG_BLOCK=y -CONFIG_LBDAF=y -CONFIG_BLK_DEV_BSG=y -CONFIG_BLK_DEV_BSGLIB=y -# CONFIG_BLK_DEV_INTEGRITY is not set - -# -# IO Schedulers -# -CONFIG_IOSCHED_NOOP=y -CONFIG_IOSCHED_DEADLINE=y -CONFIG_IOSCHED_CFQ=y -# CONFIG_DEFAULT_DEADLINE is not set -CONFIG_DEFAULT_CFQ=y -# CONFIG_DEFAULT_NOOP is not set -CONFIG_DEFAULT_IOSCHED="cfq" -CONFIG_PADATA=y -# CONFIG_INLINE_SPIN_TRYLOCK is not set -# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set -# CONFIG_INLINE_SPIN_LOCK is not set -# CONFIG_INLINE_SPIN_LOCK_BH is not set -# CONFIG_INLINE_SPIN_LOCK_IRQ is not set -# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set -CONFIG_INLINE_SPIN_UNLOCK=y -# CONFIG_INLINE_SPIN_UNLOCK_BH is not set -CONFIG_INLINE_SPIN_UNLOCK_IRQ=y -# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set -# CONFIG_INLINE_READ_TRYLOCK is not set -# CONFIG_INLINE_READ_LOCK is not set -# CONFIG_INLINE_READ_LOCK_BH is not set -# CONFIG_INLINE_READ_LOCK_IRQ is not set -# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set -CONFIG_INLINE_READ_UNLOCK=y -# CONFIG_INLINE_READ_UNLOCK_BH is not set -CONFIG_INLINE_READ_UNLOCK_IRQ=y -# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set -# CONFIG_INLINE_WRITE_TRYLOCK is not set -# CONFIG_INLINE_WRITE_LOCK is not set -# CONFIG_INLINE_WRITE_LOCK_BH is not set -# CONFIG_INLINE_WRITE_LOCK_IRQ is not set -# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set -CONFIG_INLINE_WRITE_UNLOCK=y -# CONFIG_INLINE_WRITE_UNLOCK_BH is not set -CONFIG_INLINE_WRITE_UNLOCK_IRQ=y -# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set -CONFIG_MUTEX_SPIN_ON_OWNER=y -CONFIG_FREEZER=y - -# -# System Type -# -CONFIG_MMU=y -# CONFIG_ARCH_INTEGRATOR is not set -# CONFIG_ARCH_REALVIEW is not set -# CONFIG_ARCH_VERSATILE is not set -# CONFIG_ARCH_VEXPRESS is not set -# CONFIG_ARCH_AT91 is not set -# CONFIG_ARCH_BCMRING is not set -# CONFIG_ARCH_HIGHBANK is not set -# CONFIG_ARCH_CLPS711X is not set -# CONFIG_ARCH_CNS3XXX is not set -# CONFIG_ARCH_GEMINI is not set -# CONFIG_ARCH_PRIMA2 is not set -# CONFIG_ARCH_EBSA110 is not set -# CONFIG_ARCH_EP93XX is not set -# CONFIG_ARCH_FOOTBRIDGE is not set -# CONFIG_ARCH_MXC is not set -# CONFIG_ARCH_MXS is not set -# CONFIG_ARCH_NETX is not set -# CONFIG_ARCH_H720X is not set -# CONFIG_ARCH_IOP13XX is not set -# CONFIG_ARCH_IOP32X is not set -# CONFIG_ARCH_IOP33X is not set -# CONFIG_ARCH_IXP23XX is not set -# CONFIG_ARCH_IXP2000 is not set -# CONFIG_ARCH_IXP4XX is not set -# CONFIG_ARCH_DOVE is not set -# CONFIG_ARCH_KIRKWOOD is not set -# CONFIG_ARCH_LPC32XX is not set -# CONFIG_ARCH_MV78XX0 is not set -# CONFIG_ARCH_ORION5X is not set -# CONFIG_ARCH_MMP is not set -# CONFIG_ARCH_KS8695 is not set -# CONFIG_ARCH_W90X900 is not set -# CONFIG_ARCH_TEGRA is not set -# CONFIG_ARCH_PICOXCELL is not set -# CONFIG_ARCH_PNX4008 is not set -# CONFIG_ARCH_PXA is not set -# CONFIG_ARCH_MSM is not set -# CONFIG_ARCH_SHMOBILE is not set -# CONFIG_ARCH_RPC is not set -# CONFIG_ARCH_SA1100 is not set -# CONFIG_ARCH_S3C2410 is not set -# CONFIG_ARCH_S3C64XX is not set -# CONFIG_ARCH_S5P64X0 is not set -# CONFIG_ARCH_S5PC100 is not set -# CONFIG_ARCH_S5PV210 is not set -# CONFIG_ARCH_EXYNOS is not set -# CONFIG_ARCH_SHARK is not set -# CONFIG_ARCH_TCC_926 is not set -# CONFIG_ARCH_U300 is not set -# CONFIG_ARCH_U8500 is not set -# CONFIG_ARCH_NOMADIK is not set -# CONFIG_ARCH_DAVINCI is not set -CONFIG_ARCH_OMAP=y -# CONFIG_PLAT_SPEAR is not set -# CONFIG_ARCH_VT8500 is not set -# CONFIG_ARCH_ZYNQ is not set -CONFIG_GPIO_PCA953X=m -CONFIG_KEYBOARD_GPIO_POLLED=m - -# -# TI OMAP Common Features -# -CONFIG_ARCH_OMAP_OTG=y -# CONFIG_ARCH_OMAP1 is not set -CONFIG_ARCH_OMAP2PLUS=y - -# -# OMAP Feature Selections -# -CONFIG_OMAP_DEBUG_DEVICES=y -CONFIG_OMAP_DEBUG_LEDS=y -# CONFIG_OMAP_SMARTREFLEX is not set -CONFIG_OMAP_RESET_CLOCKS=y -CONFIG_OMAP_MUX=y -# CONFIG_OMAP_MUX_DEBUG is not set -CONFIG_OMAP_MUX_WARNINGS=y -CONFIG_OMAP_MCBSP=y -# CONFIG_OMAP_MBOX_FWK is not set -CONFIG_OMAP_32K_TIMER=y -# CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE is not set -CONFIG_OMAP_32K_TIMER_HZ=128 -CONFIG_OMAP_DM_TIMER=y -CONFIG_OMAP_PM_NOOP=y -CONFIG_MACH_OMAP_GENERIC=y - -# -# TI OMAP2/3/4 Specific Features -# -CONFIG_ARCH_OMAP2PLUS_TYPICAL=y -CONFIG_ARCH_OMAP2=y -CONFIG_ARCH_OMAP3=y -CONFIG_ARCH_OMAP4=y - -# -# OMAP Core Type -# -CONFIG_SOC_OMAP2420=y -CONFIG_SOC_OMAP2430=y -CONFIG_SOC_OMAP3430=y -CONFIG_SOC_OMAPTI816X=y -CONFIG_OMAP_PACKAGE_ZAF=y -CONFIG_OMAP_PACKAGE_ZAC=y -CONFIG_OMAP_PACKAGE_CBB=y -CONFIG_OMAP_PACKAGE_CUS=y -CONFIG_OMAP_PACKAGE_CBP=y -CONFIG_OMAP_PACKAGE_CBL=y -CONFIG_OMAP_PACKAGE_CBS=y - -# -# OMAP Board Type -# -CONFIG_MACH_OMAP_H4=y -CONFIG_MACH_OMAP_APOLLON=y -CONFIG_MACH_OMAP_2430SDP=y -CONFIG_MACH_OMAP3_BEAGLE=y -CONFIG_MACH_DEVKIT8000=y -CONFIG_MACH_OMAP_LDP=y -CONFIG_MACH_OMAP3530_LV_SOM=y -CONFIG_MACH_OMAP3_TORPEDO=y -CONFIG_MACH_OVERO=y -CONFIG_MACH_OMAP3EVM=y -CONFIG_MACH_OMAP3517EVM=y -# CONFIG_MACH_CRANEBOARD is not set -CONFIG_MACH_OMAP3_PANDORA=y -CONFIG_MACH_OMAP3_TOUCHBOOK=y -CONFIG_MACH_OMAP_3430SDP=y -# CONFIG_MACH_NOKIA_N8X0 is not set -CONFIG_MACH_NOKIA_RM680=y -CONFIG_MACH_NOKIA_RX51=y -CONFIG_MACH_OMAP_ZOOM2=y -CONFIG_MACH_OMAP_ZOOM3=y -CONFIG_MACH_CM_T35=y -CONFIG_MACH_CM_T3517=y -CONFIG_MACH_CM_T3730=y -CONFIG_MACH_IGEP0020=y -CONFIG_MACH_IGEP0030=y -CONFIG_MACH_SBC3530=y -CONFIG_MACH_OMAP_3630SDP=y -CONFIG_MACH_TI8168EVM=y -CONFIG_MACH_OMAP_4430SDP=y -CONFIG_MACH_OMAP4_PANDA=y -# CONFIG_OMAP3_EMU is not set -# CONFIG_OMAP3_SDRC_AC_TIMING is not set - -# -# System MMU -# - -# -# Processor Type -# -CONFIG_CPU_V6=y -CONFIG_CPU_V7=y -CONFIG_CPU_32v6=y -CONFIG_CPU_32v6K=y -CONFIG_CPU_32v7=y -CONFIG_CPU_ABRT_EV6=y -CONFIG_CPU_ABRT_EV7=y -CONFIG_CPU_PABRT_V6=y -CONFIG_CPU_PABRT_V7=y -CONFIG_CPU_CACHE_V6=y -CONFIG_CPU_CACHE_V7=y -CONFIG_CPU_CACHE_VIPT=y -CONFIG_CPU_COPY_V6=y -CONFIG_CPU_TLB_V6=y -CONFIG_CPU_TLB_V7=y -CONFIG_CPU_HAS_ASID=y -CONFIG_CPU_CP15=y -CONFIG_CPU_CP15_MMU=y -CONFIG_CPU_USE_DOMAINS=y - -# -# Processor Features -# -CONFIG_ARM_THUMB=y -# CONFIG_ARM_THUMBEE is not set -# CONFIG_CPU_ICACHE_DISABLE is not set -# CONFIG_CPU_DCACHE_DISABLE is not set -# CONFIG_CPU_BPREDICT_DISABLE is not set -CONFIG_OUTER_CACHE=y -CONFIG_OUTER_CACHE_SYNC=y -CONFIG_CACHE_L2X0=y -CONFIG_ARM_L1_CACHE_SHIFT=5 -CONFIG_ARM_DMA_MEM_BUFFERABLE=y -# CONFIG_ARM_ERRATA_326103 is not set -CONFIG_ARM_ERRATA_411920=y -CONFIG_ARM_ERRATA_430973=y -CONFIG_ARM_ERRATA_458693=y -CONFIG_ARM_ERRATA_460075=y -# CONFIG_ARM_ERRATA_742230 is not set -CONFIG_ARM_ERRATA_742231=y -CONFIG_PL310_ERRATA_588369=y -CONFIG_ARM_ERRATA_720789=y -CONFIG_PL310_ERRATA_727915=y -CONFIG_ARM_ERRATA_743622=y -# CONFIG_ARM_ERRATA_751472 is not set -CONFIG_ARM_ERRATA_754322=y -CONFIG_ARM_ERRATA_754327=y -CONFIG_ARM_ERRATA_764369=y -CONFIG_PL310_ERRATA_769419=y -CONFIG_ARM_GIC=y - -# -# Bus support -# -# CONFIG_PCI_SYSCALL is not set -# CONFIG_ARCH_SUPPORTS_MSI is not set -# CONFIG_PCCARD is not set - -# -# Kernel Features -# -CONFIG_TICK_ONESHOT=y -CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y -CONFIG_GENERIC_CLOCKEVENTS_BUILD=y -CONFIG_SMP=y -CONFIG_SMP_ON_UP=y -CONFIG_ARM_CPU_TOPOLOGY=y -CONFIG_SCHED_MC=y -CONFIG_SCHED_SMT=y -CONFIG_HAVE_ARM_SCU=y -CONFIG_HAVE_ARM_TWD=y -CONFIG_VMSPLIT_3G=y -# CONFIG_VMSPLIT_2G is not set -# CONFIG_VMSPLIT_1G is not set -CONFIG_PAGE_OFFSET=0xC0000000 -CONFIG_NR_CPUS=8 -CONFIG_HOTPLUG_CPU=y -CONFIG_LOCAL_TIMERS=y -CONFIG_PREEMPT_NONE=y -# CONFIG_PREEMPT_VOLUNTARY is not set -# CONFIG_PREEMPT is not set -CONFIG_HZ=128 -CONFIG_AEABI=y -# CONFIG_OABI_COMPAT is not set -CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y -# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set -# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set -CONFIG_HAVE_ARCH_PFN_VALID=y -CONFIG_HIGHMEM=y -CONFIG_HIGHPTE=y -CONFIG_SELECT_MEMORY_MODEL=y -CONFIG_FLATMEM_MANUAL=y -CONFIG_FLATMEM=y -CONFIG_FLAT_NODE_MEM_MAP=y -CONFIG_HAVE_MEMBLOCK=y -CONFIG_PAGEFLAGS_EXTENDED=y -CONFIG_SPLIT_PTLOCK_CPUS=4 -# CONFIG_COMPACTION is not set -# CONFIG_PHYS_ADDR_T_64BIT is not set -CONFIG_ZONE_DMA_FLAG=0 -CONFIG_BOUNCE=y -CONFIG_VIRT_TO_BUS=y -CONFIG_KSM=y -CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 -# CONFIG_CLEANCACHE is not set -CONFIG_FORCE_MAX_ZONEORDER=11 -# CONFIG_LEDS is not set -CONFIG_ALIGNMENT_TRAP=y -CONFIG_UACCESS_WITH_MEMCPY=y -CONFIG_SECCOMP=y -CONFIG_CC_STACKPROTECTOR=y -# CONFIG_DEPRECATED_PARAM_STRUCT is not set - -# -# Boot options -# -CONFIG_USE_OF=y -CONFIG_ZBOOT_ROM_TEXT=0x0 -CONFIG_ZBOOT_ROM_BSS=0x0 -# CONFIG_ARM_APPENDED_DTB is not set -CONFIG_CMDLINE="" -# CONFIG_XIP_KERNEL is not set -# CONFIG_KEXEC is not set -# CONFIG_CRASH_DUMP is not set -# CONFIG_AUTO_ZRELADDR is not set - -# -# CPU Power Management -# - -# -# CPU Frequency scaling -# -# CONFIG_CPU_FREQ is not set -CONFIG_CPU_IDLE=y -CONFIG_CPU_IDLE_GOV_LADDER=y -CONFIG_CPU_IDLE_GOV_MENU=y - -# -# Floating point emulation -# - -# -# At least one emulation must be selected -# -CONFIG_VFP=y -CONFIG_VFPv3=y -CONFIG_NEON=y - -# -# Userspace binary formats -# -CONFIG_BINFMT_ELF=y -# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set -CONFIG_HAVE_AOUT=y -# CONFIG_BINFMT_AOUT is not set -# CONFIG_BINFMT_MISC is not set - -# -# Power management options -# -CONFIG_SUSPEND=y -CONFIG_SUSPEND_FREEZER=y -CONFIG_PM_SLEEP=y -CONFIG_PM_SLEEP_SMP=y -CONFIG_PM_RUNTIME=y -CONFIG_PM=y -# CONFIG_PM_DEBUG is not set -# CONFIG_APM_EMULATION is not set -CONFIG_ARCH_HAS_OPP=y -CONFIG_PM_OPP=y -CONFIG_PM_CLK=y -CONFIG_CPU_PM=y -CONFIG_ARCH_SUSPEND_POSSIBLE=y -CONFIG_ARM_CPU_SUSPEND=y -CONFIG_NET=y - -# -# Networking options -# -CONFIG_PACKET=y -CONFIG_UNIX=y -CONFIG_XFRM=y -CONFIG_XFRM_USER=m -# CONFIG_XFRM_SUB_POLICY is not set -CONFIG_XFRM_MIGRATE=y -CONFIG_XFRM_STATISTICS=y -CONFIG_XFRM_IPCOMP=m -CONFIG_NET_KEY=m -CONFIG_NET_KEY_MIGRATE=y -CONFIG_INET=y -CONFIG_IP_MULTICAST=y -CONFIG_IP_ADVANCED_ROUTER=y -# CONFIG_IP_FIB_TRIE_STATS is not set -CONFIG_IP_MULTIPLE_TABLES=y -CONFIG_IP_ROUTE_MULTIPATH=y -CONFIG_IP_ROUTE_VERBOSE=y -CONFIG_IP_ROUTE_CLASSID=y -# CONFIG_IP_PNP is not set -CONFIG_NET_IPIP=m -CONFIG_NET_IPGRE_DEMUX=m -CONFIG_NET_IPGRE=m -CONFIG_NET_IPGRE_BROADCAST=y -CONFIG_IP_MROUTE=y -# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set -CONFIG_IP_PIMSM_V1=y -CONFIG_IP_PIMSM_V2=y -CONFIG_ARPD=y -CONFIG_SYN_COOKIES=y -CONFIG_INET_AH=m -CONFIG_INET_ESP=m -CONFIG_INET_IPCOMP=m -CONFIG_INET_XFRM_TUNNEL=m -CONFIG_INET_TUNNEL=m -CONFIG_INET_XFRM_MODE_TRANSPORT=y -CONFIG_INET_XFRM_MODE_TUNNEL=y -CONFIG_INET_XFRM_MODE_BEET=y -CONFIG_INET_LRO=y -CONFIG_INET_DIAG=m -CONFIG_INET_TCP_DIAG=m -CONFIG_TCP_CONG_ADVANCED=y -CONFIG_TCP_CONG_BIC=m -CONFIG_TCP_CONG_CUBIC=m -CONFIG_TCP_CONG_WESTWOOD=m -CONFIG_TCP_CONG_HTCP=m -CONFIG_TCP_CONG_HSTCP=m -CONFIG_TCP_CONG_HYBLA=m -CONFIG_TCP_CONG_VEGAS=m -CONFIG_TCP_CONG_SCALABLE=m -CONFIG_TCP_CONG_LP=m -CONFIG_TCP_CONG_VENO=m -CONFIG_TCP_CONG_YEAH=m -CONFIG_TCP_CONG_ILLINOIS=m -CONFIG_DEFAULT_RENO=y -CONFIG_DEFAULT_TCP_CONG="reno" -# CONFIG_TCP_MD5SIG is not set -CONFIG_IPV6=y -# CONFIG_IPV6_PRIVACY is not set -# CONFIG_IPV6_ROUTER_PREF is not set -# CONFIG_IPV6_OPTIMISTIC_DAD is not set -CONFIG_INET6_AH=m -CONFIG_INET6_ESP=m -CONFIG_INET6_IPCOMP=m -CONFIG_IPV6_MIP6=m -CONFIG_INET6_XFRM_TUNNEL=m -CONFIG_INET6_TUNNEL=m -CONFIG_INET6_XFRM_MODE_TRANSPORT=m -CONFIG_INET6_XFRM_MODE_TUNNEL=m -CONFIG_INET6_XFRM_MODE_BEET=m -CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m -CONFIG_IPV6_SIT=m -# CONFIG_IPV6_SIT_6RD is not set -CONFIG_IPV6_NDISC_NODETYPE=y -CONFIG_IPV6_TUNNEL=m -CONFIG_IPV6_MULTIPLE_TABLES=y -# CONFIG_IPV6_SUBTREES is not set -# CONFIG_IPV6_MROUTE is not set -# CONFIG_NETWORK_SECMARK is not set -CONFIG_NETWORK_PHY_TIMESTAMPING=y -CONFIG_NETFILTER=y -# CONFIG_NETFILTER_DEBUG is not set -CONFIG_NETFILTER_ADVANCED=y -CONFIG_BRIDGE_NETFILTER=y - -# -# Core Netfilter Configuration -# -CONFIG_NETFILTER_NETLINK=m -CONFIG_NETFILTER_NETLINK_QUEUE=m -CONFIG_NETFILTER_NETLINK_LOG=m -CONFIG_NF_CONNTRACK=m -CONFIG_NF_CONNTRACK_MARK=y -# CONFIG_NF_CONNTRACK_ZONES is not set -CONFIG_NF_CONNTRACK_EVENTS=y -CONFIG_NF_CONNTRACK_TIMESTAMP=y -CONFIG_NF_CT_PROTO_DCCP=m -CONFIG_NF_CT_PROTO_GRE=m -CONFIG_NF_CT_PROTO_SCTP=m -CONFIG_NF_CT_PROTO_UDPLITE=m -CONFIG_NF_CONNTRACK_AMANDA=m -CONFIG_NF_CONNTRACK_FTP=m -CONFIG_NF_CONNTRACK_H323=m -CONFIG_NF_CONNTRACK_IRC=m -CONFIG_NF_CONNTRACK_BROADCAST=m -CONFIG_NF_CONNTRACK_NETBIOS_NS=m -CONFIG_NF_CONNTRACK_SNMP=m -CONFIG_NF_CONNTRACK_PPTP=m -CONFIG_NF_CONNTRACK_SANE=m -CONFIG_NF_CONNTRACK_SIP=m -CONFIG_NF_CONNTRACK_TFTP=m -CONFIG_NF_CT_NETLINK=m -CONFIG_NETFILTER_TPROXY=m -CONFIG_NETFILTER_XTABLES=m - -# -# Xtables combined modules -# -CONFIG_NETFILTER_XT_MARK=m -CONFIG_NETFILTER_XT_CONNMARK=m - -# -# Xtables targets -# -CONFIG_NETFILTER_XT_TARGET_AUDIT=m -CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m -CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m -CONFIG_NETFILTER_XT_TARGET_CONNMARK=m -CONFIG_NETFILTER_XT_TARGET_CT=m -CONFIG_NETFILTER_XT_TARGET_DSCP=m -CONFIG_NETFILTER_XT_TARGET_HL=m -CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m -CONFIG_NETFILTER_XT_TARGET_LED=m -CONFIG_NETFILTER_XT_TARGET_IMQ=m -CONFIG_NETFILTER_XT_TARGET_MARK=m -CONFIG_NETFILTER_XT_TARGET_NFLOG=m -CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m -CONFIG_NETFILTER_XT_TARGET_NOTRACK=m -CONFIG_NETFILTER_XT_TARGET_RATEEST=m -CONFIG_NETFILTER_XT_TARGET_TEE=m -CONFIG_NETFILTER_XT_TARGET_TPROXY=m -CONFIG_NETFILTER_XT_TARGET_TRACE=m -CONFIG_NETFILTER_XT_TARGET_TCPMSS=m -CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m - -# -# Xtables matches -# -CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m -CONFIG_NETFILTER_XT_MATCH_CLUSTER=m -CONFIG_NETFILTER_XT_MATCH_COMMENT=m -CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m -CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m -CONFIG_NETFILTER_XT_MATCH_CONNMARK=m -CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m -CONFIG_NETFILTER_XT_MATCH_CPU=m -CONFIG_NETFILTER_XT_MATCH_DCCP=m -CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m -CONFIG_NETFILTER_XT_MATCH_DSCP=m -CONFIG_NETFILTER_XT_MATCH_ESP=m -CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m -CONFIG_NETFILTER_XT_MATCH_HELPER=m -CONFIG_NETFILTER_XT_MATCH_HL=m -CONFIG_NETFILTER_XT_MATCH_IPRANGE=m -CONFIG_NETFILTER_XT_MATCH_IPVS=m -CONFIG_NETFILTER_XT_MATCH_LENGTH=m -CONFIG_NETFILTER_XT_MATCH_LIMIT=m -CONFIG_NETFILTER_XT_MATCH_MAC=m -CONFIG_NETFILTER_XT_MATCH_MARK=m -CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m -CONFIG_NETFILTER_XT_MATCH_OSF=m -CONFIG_NETFILTER_XT_MATCH_OWNER=m -CONFIG_NETFILTER_XT_MATCH_POLICY=m -CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m -CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m -CONFIG_NETFILTER_XT_MATCH_QUOTA=m -CONFIG_NETFILTER_XT_MATCH_RATEEST=m -CONFIG_NETFILTER_XT_MATCH_REALM=m -CONFIG_NETFILTER_XT_MATCH_RECENT=m -CONFIG_NETFILTER_XT_MATCH_SCTP=m -CONFIG_NETFILTER_XT_MATCH_SOCKET=m -CONFIG_NETFILTER_XT_MATCH_STATE=m -CONFIG_NETFILTER_XT_MATCH_LAYER7=m -# CONFIG_NETFILTER_XT_MATCH_LAYER7_DEBUG is not set -CONFIG_NETFILTER_XT_MATCH_STATISTIC=m -CONFIG_NETFILTER_XT_MATCH_STRING=m -CONFIG_NETFILTER_XT_MATCH_TCPMSS=m -CONFIG_NETFILTER_XT_MATCH_TIME=m -CONFIG_NETFILTER_XT_MATCH_U32=m -# CONFIG_IP_SET is not set -CONFIG_IP_VS=m -CONFIG_IP_VS_IPV6=y -# CONFIG_IP_VS_DEBUG is not set -CONFIG_IP_VS_TAB_BITS=12 - -# -# IPVS transport protocol load balancing support -# -CONFIG_IP_VS_PROTO_TCP=y -CONFIG_IP_VS_PROTO_UDP=y -CONFIG_IP_VS_PROTO_AH_ESP=y -CONFIG_IP_VS_PROTO_ESP=y -CONFIG_IP_VS_PROTO_AH=y -CONFIG_IP_VS_PROTO_SCTP=y - -# -# IPVS scheduler -# -CONFIG_IP_VS_RR=m -CONFIG_IP_VS_WRR=m -CONFIG_IP_VS_LC=m -CONFIG_IP_VS_WLC=m -CONFIG_IP_VS_LBLC=m -CONFIG_IP_VS_LBLCR=m -CONFIG_IP_VS_DH=m -CONFIG_IP_VS_SH=m -CONFIG_IP_VS_SED=m -CONFIG_IP_VS_NQ=m - -# -# IPVS application helper -# -CONFIG_IP_VS_FTP=m -CONFIG_IP_VS_NFCT=y -CONFIG_IP_VS_PE_SIP=m - -# -# IP: Netfilter Configuration -# -CONFIG_NF_DEFRAG_IPV4=m -CONFIG_NF_CONNTRACK_IPV4=m -CONFIG_NF_CONNTRACK_PROC_COMPAT=y -CONFIG_IP_NF_QUEUE=m -CONFIG_IP_NF_IPTABLES=m -CONFIG_IP_NF_MATCH_AH=m -CONFIG_IP_NF_MATCH_ECN=m -CONFIG_IP_NF_MATCH_TTL=m -CONFIG_IP_NF_FILTER=m -CONFIG_IP_NF_TARGET_REJECT=m -CONFIG_IP_NF_TARGET_LOG=m -CONFIG_IP_NF_TARGET_ULOG=m -CONFIG_NF_NAT=m -CONFIG_NF_NAT_NEEDED=y -CONFIG_IP_NF_TARGET_MASQUERADE=m -CONFIG_IP_NF_TARGET_NETMAP=m -CONFIG_IP_NF_TARGET_REDIRECT=m -CONFIG_NF_NAT_SNMP_BASIC=m -CONFIG_NF_NAT_PROTO_DCCP=m -CONFIG_NF_NAT_PROTO_GRE=m -CONFIG_NF_NAT_PROTO_UDPLITE=m -CONFIG_NF_NAT_PROTO_SCTP=m -CONFIG_NF_NAT_FTP=m -CONFIG_NF_NAT_IRC=m -CONFIG_NF_NAT_TFTP=m -CONFIG_NF_NAT_AMANDA=m -CONFIG_NF_NAT_PPTP=m -CONFIG_NF_NAT_H323=m -CONFIG_NF_NAT_SIP=m -CONFIG_IP_NF_MANGLE=m -CONFIG_IP_NF_TARGET_CLUSTERIP=m -CONFIG_IP_NF_TARGET_ECN=m -CONFIG_IP_NF_TARGET_TTL=m -CONFIG_IP_NF_RAW=m -CONFIG_IP_NF_ARPTABLES=m -CONFIG_IP_NF_ARPFILTER=m -CONFIG_IP_NF_ARP_MANGLE=m -CONFIG_IP_NF_MATCH_IPP2P=m - -# -# IPv6: Netfilter Configuration -# -CONFIG_NF_DEFRAG_IPV6=m -CONFIG_NF_CONNTRACK_IPV6=m -CONFIG_IP6_NF_QUEUE=m -CONFIG_IP6_NF_IPTABLES=m -CONFIG_IP6_NF_MATCH_AH=m -CONFIG_IP6_NF_MATCH_EUI64=m -CONFIG_IP6_NF_MATCH_FRAG=m -CONFIG_IP6_NF_MATCH_OPTS=m -CONFIG_IP6_NF_MATCH_HL=m -CONFIG_IP6_NF_MATCH_IPV6HEADER=m -CONFIG_IP6_NF_MATCH_MH=m -CONFIG_IP6_NF_MATCH_RT=m -CONFIG_IP6_NF_TARGET_HL=m -CONFIG_IP6_NF_TARGET_LOG=m -CONFIG_IP6_NF_FILTER=m -CONFIG_IP6_NF_TARGET_REJECT=m -CONFIG_IP6_NF_MANGLE=m -CONFIG_IP6_NF_RAW=m -CONFIG_BRIDGE_NF_EBTABLES=m -CONFIG_BRIDGE_EBT_BROUTE=m -CONFIG_BRIDGE_EBT_T_FILTER=m -CONFIG_BRIDGE_EBT_T_NAT=m -CONFIG_BRIDGE_EBT_802_3=m -CONFIG_BRIDGE_EBT_AMONG=m -CONFIG_BRIDGE_EBT_ARP=m -CONFIG_BRIDGE_EBT_IP=m -CONFIG_BRIDGE_EBT_IP6=m -CONFIG_BRIDGE_EBT_LIMIT=m -CONFIG_BRIDGE_EBT_MARK=m -CONFIG_BRIDGE_EBT_PKTTYPE=m -CONFIG_BRIDGE_EBT_STP=m -CONFIG_BRIDGE_EBT_VLAN=m -CONFIG_BRIDGE_EBT_ARPREPLY=m -CONFIG_BRIDGE_EBT_DNAT=m -CONFIG_BRIDGE_EBT_MARK_T=m -CONFIG_BRIDGE_EBT_REDIRECT=m -CONFIG_BRIDGE_EBT_SNAT=m -CONFIG_BRIDGE_EBT_LOG=m -CONFIG_BRIDGE_EBT_ULOG=m -CONFIG_BRIDGE_EBT_NFLOG=m -# CONFIG_IP_DCCP is not set -# CONFIG_IP_SCTP is not set -# CONFIG_RDS is not set -# CONFIG_TIPC is not set -CONFIG_ATM=m -CONFIG_ATM_CLIP=m -CONFIG_ATM_CLIP_NO_ICMP=y -# CONFIG_ATM_LANE is not set -CONFIG_ATM_BR2684=m -# CONFIG_ATM_BR2684_IPFILTER is not set -CONFIG_L2TP=m -CONFIG_L2TP_V3=y -CONFIG_L2TP_IP=m -CONFIG_L2TP_ETH=m -CONFIG_STP=m -CONFIG_GARP=m -CONFIG_BRIDGE=m -CONFIG_BRIDGE_IGMP_SNOOPING=y -CONFIG_NET_DSA=y -CONFIG_NET_DSA_TAG_DSA=y -CONFIG_NET_DSA_TAG_EDSA=y -CONFIG_NET_DSA_TAG_TRAILER=y -CONFIG_NET_DSA_MV88E6XXX=y -CONFIG_NET_DSA_MV88E6060=y -CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y -CONFIG_NET_DSA_MV88E6131=y -CONFIG_NET_DSA_MV88E6123_61_65=y -CONFIG_VLAN_8021Q=m -CONFIG_VLAN_8021Q_GVRP=y -# CONFIG_DECNET is not set -CONFIG_LLC=m -# CONFIG_LLC2 is not set -# CONFIG_IPX is not set -# CONFIG_ATALK is not set -# CONFIG_X25 is not set -# CONFIG_LAPB is not set -# CONFIG_ECONET is not set -# CONFIG_WAN_ROUTER is not set -# CONFIG_PHONET is not set -CONFIG_IEEE802154=m -CONFIG_IEEE802154_6LOWPAN=m -CONFIG_NET_SCHED=y - -# -# Queueing/Scheduling -# -CONFIG_NET_SCH_CBQ=m -CONFIG_NET_SCH_HTB=m -CONFIG_NET_SCH_HFSC=m -CONFIG_NET_SCH_ATM=m -CONFIG_NET_SCH_PRIO=m -CONFIG_NET_SCH_MULTIQ=m -CONFIG_NET_SCH_RED=m -CONFIG_NET_SCH_SFB=m -CONFIG_NET_SCH_SFQ=m -CONFIG_NET_SCH_TEQL=m -CONFIG_NET_SCH_TBF=m -CONFIG_NET_SCH_GRED=m -CONFIG_NET_SCH_DSMARK=m -CONFIG_NET_SCH_NETEM=m -CONFIG_NET_SCH_DRR=m -CONFIG_NET_SCH_MQPRIO=m -CONFIG_NET_SCH_CHOKE=m -CONFIG_NET_SCH_QFQ=m -CONFIG_NET_SCH_INGRESS=m - -# -# Classification -# -CONFIG_NET_CLS=y -CONFIG_NET_CLS_BASIC=m -CONFIG_NET_CLS_TCINDEX=m -CONFIG_NET_CLS_ROUTE4=m -CONFIG_NET_CLS_FW=m -CONFIG_NET_CLS_U32=m -CONFIG_CLS_U32_PERF=y -CONFIG_CLS_U32_MARK=y -CONFIG_NET_CLS_RSVP=m -CONFIG_NET_CLS_RSVP6=m -CONFIG_NET_CLS_FLOW=m -CONFIG_NET_EMATCH=y -CONFIG_NET_EMATCH_STACK=32 -CONFIG_NET_EMATCH_CMP=m -CONFIG_NET_EMATCH_NBYTE=m -CONFIG_NET_EMATCH_U32=m -CONFIG_NET_EMATCH_META=m -CONFIG_NET_EMATCH_TEXT=m -CONFIG_NET_CLS_ACT=y -CONFIG_NET_ACT_POLICE=m -CONFIG_NET_ACT_GACT=m -CONFIG_GACT_PROB=y -CONFIG_NET_ACT_MIRRED=m -CONFIG_NET_ACT_IPT=m -CONFIG_NET_ACT_NAT=m -CONFIG_NET_ACT_PEDIT=m -CONFIG_NET_ACT_SIMP=m -CONFIG_NET_ACT_SKBEDIT=m -CONFIG_NET_ACT_CSUM=m -CONFIG_NET_CLS_IND=y -CONFIG_NET_SCH_FIFO=y -# CONFIG_DCB is not set -CONFIG_DNS_RESOLVER=y -CONFIG_BATMAN_ADV=m -# CONFIG_BATMAN_ADV_DEBUG is not set -CONFIG_RPS=y -CONFIG_RFS_ACCEL=y -CONFIG_XPS=y - -# -# Network testing -# -# CONFIG_NET_PKTGEN is not set -# CONFIG_HAMRADIO is not set -# CONFIG_CAN is not set -CONFIG_IRDA=m - -# -# IrDA protocols -# -CONFIG_IRLAN=m -CONFIG_IRNET=m -CONFIG_IRCOMM=m -# CONFIG_IRDA_ULTRA is not set - -# -# IrDA options -# -# CONFIG_IRDA_CACHE_LAST_LSAP is not set -# CONFIG_IRDA_FAST_RR is not set -# CONFIG_IRDA_DEBUG is not set - -# -# Infrared-port device drivers -# - -# -# SIR device drivers -# -CONFIG_IRTTY_SIR=m - -# -# Dongle support -# -# CONFIG_DONGLE is not set -CONFIG_KINGSUN_DONGLE=m -CONFIG_KSDAZZLE_DONGLE=m -CONFIG_KS959_DONGLE=m - -# -# FIR device drivers -# -CONFIG_USB_IRDA=m -CONFIG_SIGMATEL_FIR=m -CONFIG_MCS_FIR=m -CONFIG_BT=m -CONFIG_BT_L2CAP=y -CONFIG_BT_SCO=y -CONFIG_BT_RFCOMM=m -CONFIG_BT_RFCOMM_TTY=y -CONFIG_BT_BNEP=m -CONFIG_BT_BNEP_MC_FILTER=y -CONFIG_BT_BNEP_PROTO_FILTER=y -CONFIG_BT_CMTP=m -CONFIG_BT_HIDP=m - -# -# Bluetooth device drivers -# -CONFIG_BT_HCIBTUSB=m -CONFIG_BT_HCIBTSDIO=m -CONFIG_BT_HCIUART=m -CONFIG_BT_HCIUART_H4=y -CONFIG_BT_HCIUART_BCSP=y -CONFIG_BT_HCIUART_ATH3K=y -CONFIG_BT_HCIUART_LL=y -CONFIG_BT_HCIBCM203X=m -CONFIG_BT_HCIBPA10X=m -CONFIG_BT_HCIBFUSB=m -CONFIG_BT_HCIVHCI=m -CONFIG_BT_MRVL=m -CONFIG_BT_MRVL_SDIO=m -CONFIG_BT_ATH3K=m -CONFIG_BT_WILINK=m -CONFIG_AF_RXRPC=m -# CONFIG_AF_RXRPC_DEBUG is not set -CONFIG_RXKAD=m -CONFIG_FIB_RULES=y -CONFIG_WIRELESS=y -CONFIG_WIRELESS_EXT=y -CONFIG_WEXT_CORE=y -CONFIG_WEXT_PROC=y -CONFIG_WEXT_SPY=y -CONFIG_WEXT_PRIV=y -CONFIG_CFG80211=m -# CONFIG_NL80211_TESTMODE is not set -# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set -# CONFIG_CFG80211_REG_DEBUG is not set -# CONFIG_CFG80211_DEFAULT_PS is not set -# CONFIG_CFG80211_INTERNAL_REGDB is not set -CONFIG_CFG80211_WEXT=y -CONFIG_WIRELESS_EXT_SYSFS=y -CONFIG_LIB80211=m -CONFIG_LIB80211_CRYPT_WEP=m -CONFIG_LIB80211_CRYPT_CCMP=m -CONFIG_LIB80211_CRYPT_TKIP=m -# CONFIG_LIB80211_DEBUG is not set -CONFIG_MAC80211=m -CONFIG_MAC80211_HAS_RC=y -# CONFIG_MAC80211_RC_PID is not set -CONFIG_MAC80211_RC_MINSTREL=y -CONFIG_MAC80211_RC_MINSTREL_HT=y -CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y -CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" -CONFIG_MAC80211_MESH=y -CONFIG_MAC80211_LEDS=y -# CONFIG_MAC80211_DEBUG_MENU is not set -# CONFIG_WIMAX is not set -CONFIG_RFKILL=m -CONFIG_RFKILL_LEDS=y -CONFIG_RFKILL_INPUT=y -CONFIG_RFKILL_REGULATOR=m -CONFIG_RFKILL_GPIO=m -# CONFIG_NET_9P is not set -# CONFIG_CAIF is not set -CONFIG_CEPH_LIB=m -# CONFIG_CEPH_LIB_PRETTYDEBUG is not set -# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set -# CONFIG_NFC is not set - -# -# Device Drivers -# - -# -# Generic Driver Options -# -CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -# CONFIG_DEVTMPFS is not set -# CONFIG_STANDALONE is not set -# CONFIG_PREVENT_FIRMWARE_BUILD is not set -CONFIG_FW_LOADER=y -# CONFIG_FIRMWARE_IN_KERNEL is not set -CONFIG_EXTRA_FIRMWARE="" -# CONFIG_DEBUG_DRIVER is not set -# CONFIG_DEBUG_DEVRES is not set -# CONFIG_SYS_HYPERVISOR is not set -CONFIG_REGMAP=y -CONFIG_REGMAP_I2C=m -CONFIG_CONNECTOR=m -CONFIG_MTD=m -CONFIG_MTD_TESTS=m -# CONFIG_MTD_REDBOOT_PARTS is not set -# CONFIG_MTD_AFS_PARTS is not set -CONFIG_MTD_OF_PARTS=m -CONFIG_MTD_AR7_PARTS=m - -# -# User Modules And Translation Layers -# -CONFIG_MTD_CHAR=m -CONFIG_MTD_BLKDEVS=m -CONFIG_MTD_BLOCK=m -# CONFIG_MTD_BLOCK_RO is not set -# CONFIG_FTL is not set -# CONFIG_NFTL is not set -# CONFIG_INFTL is not set -# CONFIG_RFD_FTL is not set -# CONFIG_SSFDC is not set -CONFIG_SM_FTL=m -# CONFIG_MTD_OOPS is not set -# CONFIG_MTD_SWAP is not set - -# -# RAM/ROM/Flash chip drivers -# -# CONFIG_MTD_CFI is not set -# CONFIG_MTD_JEDECPROBE is not set -CONFIG_MTD_MAP_BANK_WIDTH_1=y -CONFIG_MTD_MAP_BANK_WIDTH_2=y -CONFIG_MTD_MAP_BANK_WIDTH_4=y -# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set -CONFIG_MTD_CFI_I1=y -CONFIG_MTD_CFI_I2=y -# CONFIG_MTD_CFI_I4 is not set -# CONFIG_MTD_CFI_I8 is not set -# CONFIG_MTD_RAM is not set -# CONFIG_MTD_ROM is not set -# CONFIG_MTD_ABSENT is not set - -# -# Mapping drivers for chip access -# -# CONFIG_MTD_COMPLEX_MAPPINGS is not set -CONFIG_MTD_PHYSMAP=m -# CONFIG_MTD_PHYSMAP_COMPAT is not set -# CONFIG_MTD_PLATRAM is not set - -# -# Self-contained MTD device drivers -# -# CONFIG_MTD_SLRAM is not set -# CONFIG_MTD_PHRAM is not set -# CONFIG_MTD_MTDRAM is not set -# CONFIG_MTD_BLOCK2MTD is not set - -# -# Disk-On-Chip Device Drivers -# -# CONFIG_MTD_DOC2000 is not set -# CONFIG_MTD_DOC2001 is not set -# CONFIG_MTD_DOC2001PLUS is not set -# CONFIG_MTD_DOCG3 is not set -CONFIG_MTD_NAND_ECC=m -# CONFIG_MTD_NAND_ECC_SMC is not set -# CONFIG_MTD_NAND is not set -# CONFIG_MTD_ONENAND is not set - -# -# LPDDR flash memory drivers -# -CONFIG_MTD_LPDDR=m -CONFIG_MTD_QINFO_PROBE=m -CONFIG_MTD_UBI=m -CONFIG_MTD_UBI_WL_THRESHOLD=4096 -CONFIG_MTD_UBI_BEB_RESERVE=1 -# CONFIG_MTD_UBI_GLUEBI is not set -# CONFIG_MTD_UBI_DEBUG is not set -CONFIG_DTC=y -CONFIG_OF=y - -# -# Device Tree and Open Firmware support -# -CONFIG_PROC_DEVICETREE=y -CONFIG_OF_FLATTREE=y -CONFIG_OF_EARLY_FLATTREE=y -CONFIG_OF_ADDRESS=y -CONFIG_OF_IRQ=y -CONFIG_OF_DEVICE=y -CONFIG_OF_GPIO=y -CONFIG_OF_I2C=y -CONFIG_OF_NET=y -CONFIG_OF_MDIO=y -CONFIG_PARPORT=m -# CONFIG_PARPORT_PC is not set -# CONFIG_PARPORT_GSC is not set -CONFIG_PARPORT_AX88796=m -CONFIG_PARPORT_1284=y -CONFIG_PARPORT_NOT_PC=y -CONFIG_BLK_DEV=y -# CONFIG_BLK_DEV_COW_COMMON is not set -CONFIG_BLK_DEV_LOOP=y -CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 -CONFIG_BLK_DEV_CRYPTOLOOP=m -# CONFIG_BLK_DEV_DRBD is not set -CONFIG_BLK_DEV_NBD=m -CONFIG_BLK_DEV_OSD=m -# CONFIG_BLK_DEV_UB is not set -CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_COUNT=8 -CONFIG_BLK_DEV_RAM_SIZE=16384 -# CONFIG_BLK_DEV_XIP is not set -# CONFIG_CDROM_PKTCDVD is not set -CONFIG_ATA_OVER_ETH=m -CONFIG_MG_DISK=m -CONFIG_MG_DISK_RES=0 -CONFIG_BLK_DEV_RBD=m -CONFIG_SENSORS_LIS3LV02D=m -CONFIG_MISC_DEVICES=y -# CONFIG_AD525X_DPOT is not set -# CONFIG_ATMEL_PWM is not set -CONFIG_ICS932S401=m -CONFIG_ENCLOSURE_SERVICES=m -CONFIG_APDS9802ALS=m -CONFIG_ISL29003=m -CONFIG_ISL29020=m -CONFIG_SENSORS_TSL2550=m -CONFIG_SENSORS_BH1780=m -CONFIG_SENSORS_BH1770=m -CONFIG_SENSORS_APDS990X=m -CONFIG_HMC6352=m -CONFIG_DS1682=m -CONFIG_BMP085=m -CONFIG_USB_SWITCH_FSA9480=m -CONFIG_C2PORT=m - -# -# EEPROM support -# -CONFIG_EEPROM_AT24=m -CONFIG_EEPROM_LEGACY=m -CONFIG_EEPROM_MAX6875=m -CONFIG_EEPROM_93CX6=m -CONFIG_IWMC3200TOP=m -# CONFIG_IWMC3200TOP_DEBUG is not set -# CONFIG_IWMC3200TOP_DEBUGFS is not set - -# -# Texas Instruments shared transport line discipline -# -CONFIG_TI_ST=m -CONFIG_SENSORS_LIS3_I2C=m - -# -# Altera FPGA firmware download module -# -# CONFIG_ALTERA_STAPL is not set - -# -# SCSI device support -# -CONFIG_SCSI_MOD=m -CONFIG_RAID_ATTRS=m -CONFIG_SCSI=m -CONFIG_SCSI_DMA=y -# CONFIG_SCSI_TGT is not set -CONFIG_SCSI_NETLINK=y -CONFIG_SCSI_PROC_FS=y - -# -# SCSI support type (disk, tape, CD-ROM) -# -CONFIG_BLK_DEV_SD=m -# CONFIG_CHR_DEV_ST is not set -# CONFIG_CHR_DEV_OSST is not set -CONFIG_BLK_DEV_SR=m -CONFIG_BLK_DEV_SR_VENDOR=y -CONFIG_CHR_DEV_SG=m -CONFIG_CHR_DEV_SCH=m -CONFIG_SCSI_ENCLOSURE=m -CONFIG_SCSI_MULTI_LUN=y -# CONFIG_SCSI_CONSTANTS is not set -# CONFIG_SCSI_LOGGING is not set -# CONFIG_SCSI_SCAN_ASYNC is not set -CONFIG_SCSI_WAIT_SCAN=m - -# -# SCSI Transports -# -CONFIG_SCSI_SPI_ATTRS=m -CONFIG_SCSI_FC_ATTRS=m -CONFIG_SCSI_ISCSI_ATTRS=m -CONFIG_SCSI_SAS_ATTRS=m -CONFIG_SCSI_SAS_LIBSAS=m -CONFIG_SCSI_SAS_ATA=y -CONFIG_SCSI_SAS_HOST_SMP=y -CONFIG_SCSI_SRP_ATTRS=m -CONFIG_SCSI_LOWLEVEL=y -CONFIG_ISCSI_TCP=m -CONFIG_ISCSI_BOOT_SYSFS=m -CONFIG_LIBFC=m -CONFIG_LIBFCOE=m -# CONFIG_SCSI_DEBUG is not set -CONFIG_SCSI_DH=m -CONFIG_SCSI_DH_RDAC=m -CONFIG_SCSI_DH_HP_SW=m -CONFIG_SCSI_DH_EMC=m -CONFIG_SCSI_DH_ALUA=m -CONFIG_SCSI_OSD_INITIATOR=m -CONFIG_SCSI_OSD_ULD=m -CONFIG_SCSI_OSD_DPRINT_SENSE=1 -# CONFIG_SCSI_OSD_DEBUG is not set -CONFIG_ATA=m -# CONFIG_ATA_NONSTANDARD is not set -CONFIG_ATA_VERBOSE_ERROR=y -CONFIG_SATA_PMP=y - -# -# Controllers with non-SFF native interface -# -CONFIG_SATA_AHCI_PLATFORM=m -CONFIG_ATA_SFF=y - -# -# SFF controllers with custom DMA interface -# -CONFIG_ATA_BMDMA=y - -# -# SATA SFF controllers with BMDMA -# -CONFIG_SATA_MV=m - -# -# PATA SFF controllers with BMDMA -# -CONFIG_PATA_ARASAN_CF=m - -# -# PIO-only SFF controllers -# -CONFIG_PATA_PLATFORM=m -CONFIG_PATA_OF_PLATFORM=m - -# -# Generic fallback / legacy drivers -# -CONFIG_MD=y -CONFIG_BLK_DEV_MD=m -CONFIG_MD_LINEAR=m -CONFIG_MD_RAID0=m -CONFIG_MD_RAID1=m -CONFIG_MD_RAID10=m -CONFIG_MD_RAID456=m -# CONFIG_MULTICORE_RAID456 is not set -CONFIG_MD_MULTIPATH=m -# CONFIG_MD_FAULTY is not set -CONFIG_BLK_DEV_DM=m -# CONFIG_DM_DEBUG is not set -CONFIG_DM_BUFIO=m -CONFIG_DM_PERSISTENT_DATA=m -CONFIG_DM_CRYPT=m -CONFIG_DM_SNAPSHOT=m -CONFIG_DM_THIN_PROVISIONING=m -# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set -# CONFIG_DM_DEBUG_SPACE_MAPS is not set -CONFIG_DM_MIRROR=m -CONFIG_DM_RAID=m -CONFIG_DM_LOG_USERSPACE=m -CONFIG_DM_ZERO=m -CONFIG_DM_MULTIPATH=m -CONFIG_DM_MULTIPATH_QL=m -CONFIG_DM_MULTIPATH_ST=m -CONFIG_DM_DELAY=m -CONFIG_DM_UEVENT=y -CONFIG_DM_FLAKEY=m -# CONFIG_TARGET_CORE is not set -CONFIG_NETDEVICES=y -CONFIG_NET_CORE=y -CONFIG_BONDING=m -CONFIG_DUMMY=m -CONFIG_EQUALIZER=m -CONFIG_IMQ=m -# CONFIG_IMQ_BEHAVIOR_AA is not set -CONFIG_IMQ_BEHAVIOR_AB=y -# CONFIG_IMQ_BEHAVIOR_BA is not set -# CONFIG_IMQ_BEHAVIOR_BB is not set -CONFIG_IMQ_NUM_DEVS=2 -CONFIG_MII=m -CONFIG_IEEE802154_DRIVERS=m -CONFIG_IEEE802154_FAKEHARD=m -CONFIG_IFB=m -CONFIG_MACVLAN=m -CONFIG_MACVTAP=m -# CONFIG_NETCONSOLE is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set -CONFIG_TUN=m -CONFIG_VETH=m -CONFIG_ATM_DRIVERS=y -# CONFIG_ATM_DUMMY is not set -CONFIG_ATM_TCP=m - -# -# CAIF transport drivers -# -CONFIG_ETHERNET=y -CONFIG_NET_VENDOR_BROADCOM=y -CONFIG_B44=m -CONFIG_NET_VENDOR_CHELSIO=y -CONFIG_DM9000=m -# CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set -CONFIG_DNET=m -CONFIG_NET_VENDOR_DLINK=y -CONFIG_DE600=m -CONFIG_DE620=m -CONFIG_NET_VENDOR_FARADAY=y -# CONFIG_FTMAC100 is not set -# CONFIG_FTGMAC100 is not set -CONFIG_NET_VENDOR_INTEL=y -CONFIG_NET_VENDOR_I825XX=y -CONFIG_NET_VENDOR_MARVELL=y -CONFIG_NET_VENDOR_MICREL=y -CONFIG_KS8842=m -CONFIG_KS8851_MLL=m -CONFIG_NET_VENDOR_NATSEMI=y -CONFIG_NET_VENDOR_8390=y -CONFIG_AX88796=m -CONFIG_AX88796_93CX6=y -CONFIG_ETHOC=m -CONFIG_NET_VENDOR_SEEQ=y -CONFIG_SEEQ8005=m -CONFIG_NET_VENDOR_SMSC=y -CONFIG_SMC91X=m -CONFIG_SMC911X=m -CONFIG_SMSC911X=m -# CONFIG_SMSC911X_ARCH_HOOKS is not set -CONFIG_NET_VENDOR_STMICRO=y -CONFIG_STMMAC_ETH=m -# CONFIG_STMMAC_DA is not set -CONFIG_STMMAC_RING=y -# CONFIG_STMMAC_CHAINED is not set -CONFIG_NET_VENDOR_TI=y -# CONFIG_TI_DAVINCI_EMAC is not set -# CONFIG_TI_DAVINCI_MDIO is not set -# CONFIG_TI_DAVINCI_CPDMA is not set -CONFIG_PHYLIB=y - -# -# MII PHY device drivers -# -CONFIG_MARVELL_PHY=m -CONFIG_DAVICOM_PHY=m -CONFIG_QSEMI_PHY=m -CONFIG_LXT_PHY=m -CONFIG_CICADA_PHY=m -CONFIG_VITESSE_PHY=m -CONFIG_SMSC_PHY=m -CONFIG_BROADCOM_PHY=m -CONFIG_ICPLUS_PHY=m -CONFIG_REALTEK_PHY=m -CONFIG_NATIONAL_PHY=m -CONFIG_STE10XP=m -CONFIG_LSI_ET1011C_PHY=m -CONFIG_MICREL_PHY=m -# CONFIG_FIXED_PHY is not set -CONFIG_MDIO_BITBANG=m -CONFIG_MDIO_GPIO=m -# CONFIG_PLIP is not set -CONFIG_PPP=m -CONFIG_PPP_BSDCOMP=m -CONFIG_PPP_DEFLATE=m -CONFIG_PPP_FILTER=y -CONFIG_PPP_MPPE=m -CONFIG_PPP_MULTILINK=y -CONFIG_PPPOATM=m -CONFIG_PPPOE=m -CONFIG_PPTP=m -CONFIG_PPPOL2TP=m -CONFIG_PPP_ASYNC=m -CONFIG_PPP_SYNC_TTY=m -CONFIG_SLIP=m -CONFIG_SLHC=m -CONFIG_SLIP_COMPRESSED=y -CONFIG_SLIP_SMART=y -CONFIG_SLIP_MODE_SLIP6=y - -# -# USB Network Adapters -# -CONFIG_USB_CATC=m -CONFIG_USB_KAWETH=m -CONFIG_USB_PEGASUS=m -CONFIG_USB_RTL8150=m -CONFIG_USB_USBNET=m -CONFIG_USB_NET_AX8817X=m -CONFIG_USB_NET_CDCETHER=m -CONFIG_USB_NET_CDC_EEM=m -CONFIG_USB_NET_CDC_NCM=m -CONFIG_USB_NET_DM9601=m -CONFIG_USB_NET_SMSC75XX=m -CONFIG_USB_NET_SMSC95XX=m -CONFIG_USB_NET_GL620A=m -CONFIG_USB_NET_NET1080=m -CONFIG_USB_NET_PLUSB=m -CONFIG_USB_NET_MCS7830=m -CONFIG_USB_NET_RNDIS_HOST=m -CONFIG_USB_NET_CDC_SUBSET=m -CONFIG_USB_ALI_M5632=y -CONFIG_USB_AN2720=y -CONFIG_USB_BELKIN=y -CONFIG_USB_ARMLINUX=y -CONFIG_USB_EPSON2888=y -CONFIG_USB_KC2190=y -CONFIG_USB_NET_ZAURUS=m -CONFIG_USB_NET_CX82310_ETH=m -CONFIG_USB_NET_KALMIA=m -CONFIG_USB_HSO=m -CONFIG_USB_NET_INT51X1=m -# CONFIG_USB_IPHETH is not set -CONFIG_USB_SIERRA_NET=m -CONFIG_USB_VL600=m -CONFIG_WLAN=y -# CONFIG_LIBERTAS_THINFIRM is not set -CONFIG_AT76C50X_USB=m -CONFIG_USB_ZD1201=m -CONFIG_USB_NET_RNDIS_WLAN=m -# CONFIG_RTL8187 is not set -# CONFIG_MAC80211_HWSIM is not set -# CONFIG_ATH_COMMON is not set -# CONFIG_B43 is not set -# CONFIG_B43LEGACY is not set -# CONFIG_BRCMFMAC is not set -CONFIG_HOSTAP=m -CONFIG_HOSTAP_FIRMWARE=y -# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set -# CONFIG_IWM is not set -# CONFIG_LIBERTAS is not set -# CONFIG_P54_COMMON is not set -# CONFIG_RT2X00 is not set -# CONFIG_RTL8192CU is not set -# CONFIG_WL1251 is not set -CONFIG_WL12XX_MENU=m -CONFIG_WL12XX=m -CONFIG_WL12XX_SDIO=m -# CONFIG_WL12XX_SDIO_TEST is not set -CONFIG_WL12XX_PLATFORM_DATA=y -# CONFIG_ZD1211RW is not set -# CONFIG_MWIFIEX is not set - -# -# Enable WiMAX (Networking options) to see the WiMAX drivers -# -CONFIG_WAN=y -CONFIG_HDLC=m -CONFIG_HDLC_RAW=m -CONFIG_HDLC_RAW_ETH=m -CONFIG_HDLC_CISCO=m -CONFIG_HDLC_FR=m -CONFIG_HDLC_PPP=m - -# -# X.25/LAPB support is disabled -# -CONFIG_DLCI=m -CONFIG_DLCI_MAX=8 -CONFIG_ISDN=y -CONFIG_ISDN_I4L=m -CONFIG_ISDN_PPP=y -CONFIG_ISDN_PPP_VJ=y -CONFIG_ISDN_MPP=y -CONFIG_IPPP_FILTER=y -CONFIG_ISDN_PPP_BSDCOMP=m -CONFIG_ISDN_AUDIO=y -CONFIG_ISDN_TTY_FAX=y - -# -# ISDN feature submodules -# -CONFIG_ISDN_DIVERSION=m - -# -# ISDN4Linux hardware drivers -# - -# -# Passive cards -# -CONFIG_ISDN_DRV_HISAX=m - -# -# D-channel protocol features -# -CONFIG_HISAX_EURO=y -CONFIG_DE_AOC=y -# CONFIG_HISAX_NO_SENDCOMPLETE is not set -# CONFIG_HISAX_NO_LLC is not set -# CONFIG_HISAX_NO_KEYPAD is not set -CONFIG_HISAX_1TR6=y -CONFIG_HISAX_NI1=y -CONFIG_HISAX_MAX_CARDS=8 - -# -# HiSax supported cards -# -CONFIG_HISAX_16_3=y -CONFIG_HISAX_S0BOX=y -CONFIG_HISAX_FRITZPCI=y -CONFIG_HISAX_AVM_A1_PCMCIA=y -CONFIG_HISAX_ELSA=y -CONFIG_HISAX_DIEHLDIVA=y -CONFIG_HISAX_SEDLBAUER=y -CONFIG_HISAX_NICCY=y -CONFIG_HISAX_GAZEL=y -CONFIG_HISAX_HFC_SX=y -CONFIG_HISAX_DEBUG=y - -# -# HiSax PCMCIA card service modules -# - -# -# HiSax sub driver modules -# -CONFIG_HISAX_ST5481=m -CONFIG_HISAX_HFCUSB=m -CONFIG_HISAX_HFC4S8S=m - -# -# Active cards -# -CONFIG_ISDN_CAPI=m -CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y -CONFIG_CAPI_TRACE=y -CONFIG_ISDN_CAPI_MIDDLEWARE=y -CONFIG_ISDN_CAPI_CAPI20=m -CONFIG_ISDN_CAPI_CAPIDRV=m - -# -# CAPI hardware drivers -# -CONFIG_CAPI_AVM=y -CONFIG_CAPI_EICON=y -CONFIG_ISDN_DRV_GIGASET=m -CONFIG_GIGASET_CAPI=y -# CONFIG_GIGASET_I4L is not set -# CONFIG_GIGASET_DUMMYLL is not set -CONFIG_GIGASET_BASE=m -CONFIG_GIGASET_M105=m -CONFIG_GIGASET_M101=m -# CONFIG_GIGASET_DEBUG is not set -CONFIG_MISDN=m -CONFIG_MISDN_DSP=m -CONFIG_MISDN_L1OIP=m - -# -# mISDN hardware drivers -# -CONFIG_MISDN_HFCUSB=m -CONFIG_ISDN_HDLC=m -# CONFIG_PHONE is not set - -# -# Input device support -# -CONFIG_INPUT=y -CONFIG_INPUT_FF_MEMLESS=m -CONFIG_INPUT_POLLDEV=m -CONFIG_INPUT_SPARSEKMAP=m - -# -# Userland interfaces -# -CONFIG_INPUT_MOUSEDEV=y -# CONFIG_INPUT_MOUSEDEV_PSAUX is not set -CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 -# CONFIG_INPUT_JOYDEV is not set -# CONFIG_INPUT_EVDEV is not set -# CONFIG_INPUT_EVBUG is not set - -# -# Input Device Drivers -# -CONFIG_INPUT_KEYBOARD=y -CONFIG_KEYBOARD_ADP5588=m -CONFIG_KEYBOARD_ADP5589=m -CONFIG_KEYBOARD_ATKBD=y -CONFIG_KEYBOARD_QT1070=m -CONFIG_KEYBOARD_QT2160=m -CONFIG_KEYBOARD_LKKBD=m -CONFIG_KEYBOARD_GPIO=m -CONFIG_KEYBOARD_TCA6416=m -CONFIG_KEYBOARD_MATRIX=m -CONFIG_KEYBOARD_LM8323=m -CONFIG_KEYBOARD_MAX7359=m -CONFIG_KEYBOARD_MCS=m -CONFIG_KEYBOARD_MPR121=m -CONFIG_KEYBOARD_NEWTON=m -CONFIG_KEYBOARD_OPENCORES=m -CONFIG_KEYBOARD_STOWAWAY=m -CONFIG_KEYBOARD_SUNKBD=m -CONFIG_KEYBOARD_OMAP=m -CONFIG_KEYBOARD_OMAP4=m -CONFIG_KEYBOARD_TWL4030=m -CONFIG_KEYBOARD_XTKBD=m -# CONFIG_INPUT_MOUSE is not set -# CONFIG_INPUT_JOYSTICK is not set -# CONFIG_INPUT_TABLET is not set -# CONFIG_INPUT_TOUCHSCREEN is not set -CONFIG_INPUT_MISC=y -CONFIG_INPUT_AD714X=m -CONFIG_INPUT_AD714X_I2C=m -CONFIG_INPUT_BMA150=m -# CONFIG_INPUT_MMA8450 is not set -# CONFIG_INPUT_MPU3050 is not set -CONFIG_INPUT_ATI_REMOTE2=m -CONFIG_INPUT_KEYSPAN_REMOTE=m -# CONFIG_INPUT_KXTJ9 is not set -CONFIG_INPUT_POWERMATE=m -CONFIG_INPUT_YEALINK=m -CONFIG_INPUT_CM109=m -CONFIG_INPUT_TWL4030_PWRBUTTON=m -CONFIG_INPUT_TWL4030_VIBRA=m -CONFIG_INPUT_TWL6040_VIBRA=m -# CONFIG_INPUT_UINPUT is not set -CONFIG_INPUT_PCF50633_PMU=m -CONFIG_INPUT_PCF8574=m -CONFIG_INPUT_PWM_BEEPER=m -CONFIG_INPUT_GPIO_ROTARY_ENCODER=m -# CONFIG_INPUT_ADXL34X is not set -# CONFIG_INPUT_CMA3000 is not set - -# -# Hardware I/O ports -# -CONFIG_SERIO=y -CONFIG_SERIO_SERPORT=y -# CONFIG_SERIO_PARKBD is not set -CONFIG_SERIO_LIBPS2=y -# CONFIG_SERIO_RAW is not set -CONFIG_SERIO_ALTERA_PS2=m -CONFIG_SERIO_PS2MULT=m -# CONFIG_GAMEPORT is not set - -# -# Character devices -# -CONFIG_VT=y -CONFIG_CONSOLE_TRANSLATIONS=y -CONFIG_VT_CONSOLE=y -CONFIG_VT_CONSOLE_SLEEP=y -CONFIG_HW_CONSOLE=y -# CONFIG_VT_HW_CONSOLE_BINDING is not set -CONFIG_UNIX98_PTYS=y -# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set -# CONFIG_LEGACY_PTYS is not set -# CONFIG_SERIAL_NONSTANDARD is not set -CONFIG_N_GSM=m -# CONFIG_TRACE_SINK is not set -CONFIG_DEVKMEM=y - -# -# Serial drivers -# -CONFIG_SERIAL_8250=y -CONFIG_SERIAL_8250_CONSOLE=y -CONFIG_SERIAL_8250_NR_UARTS=4 -CONFIG_SERIAL_8250_RUNTIME_UARTS=4 -CONFIG_SERIAL_8250_EXTENDED=y -CONFIG_SERIAL_8250_MANY_PORTS=y -CONFIG_SERIAL_8250_SHARE_IRQ=y -CONFIG_SERIAL_8250_DETECT_IRQ=y -CONFIG_SERIAL_8250_RSA=y -CONFIG_SERIAL_8250_DW=m - -# -# Non-8250 serial port support -# -CONFIG_SERIAL_CORE=y -CONFIG_SERIAL_CORE_CONSOLE=y -CONFIG_SERIAL_OF_PLATFORM=y -CONFIG_SERIAL_OMAP=y -CONFIG_SERIAL_OMAP_CONSOLE=y -CONFIG_SERIAL_TIMBERDALE=m -CONFIG_SERIAL_ALTERA_JTAGUART=m -CONFIG_SERIAL_ALTERA_UART=m -CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4 -CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200 -CONFIG_SERIAL_XILINX_PS_UART=m -# CONFIG_TTY_PRINTK is not set -CONFIG_PRINTER=m -# CONFIG_LP_CONSOLE is not set -CONFIG_PPDEV=m -# CONFIG_HVC_DCC is not set -CONFIG_IPMI_HANDLER=m -CONFIG_IPMI_PANIC_EVENT=y -# CONFIG_IPMI_PANIC_STRING is not set -CONFIG_IPMI_DEVICE_INTERFACE=m -CONFIG_IPMI_SI=m -CONFIG_IPMI_WATCHDOG=m -CONFIG_IPMI_POWEROFF=m -CONFIG_HW_RANDOM=m -CONFIG_HW_RANDOM_TIMERIOMEM=m -CONFIG_HW_RANDOM_OMAP=m -CONFIG_NVRAM=m -# CONFIG_R3964 is not set -# CONFIG_RAW_DRIVER is not set -# CONFIG_TCG_TPM is not set -# CONFIG_RAMOOPS is not set -CONFIG_I2C=y -CONFIG_I2C_BOARDINFO=y -CONFIG_I2C_COMPAT=y -CONFIG_I2C_CHARDEV=m -CONFIG_I2C_MUX=m - -# -# Multiplexer I2C Chip support -# -CONFIG_I2C_MUX_GPIO=m -CONFIG_I2C_MUX_PCA9541=m -CONFIG_I2C_MUX_PCA954x=m -CONFIG_I2C_HELPER_AUTO=y -CONFIG_I2C_SMBUS=m -CONFIG_I2C_ALGOBIT=m -CONFIG_I2C_ALGOPCA=m - -# -# I2C Hardware Bus support -# - -# -# I2C system bus drivers (mostly embedded / system-on-chip) -# -# CONFIG_I2C_DESIGNWARE_PLATFORM is not set -CONFIG_I2C_GPIO=m -CONFIG_I2C_OCORES=m -CONFIG_I2C_OMAP=y -CONFIG_I2C_PCA_PLATFORM=m -# CONFIG_I2C_PXA_PCI is not set -CONFIG_I2C_SIMTEC=m -CONFIG_I2C_XILINX=m - -# -# External I2C/SMBus adapter drivers -# -CONFIG_I2C_DIOLAN_U2C=m -CONFIG_I2C_PARPORT=m -CONFIG_I2C_PARPORT_LIGHT=m -CONFIG_I2C_TAOS_EVM=m -CONFIG_I2C_TINY_USB=m - -# -# Other I2C/SMBus bus drivers -# -CONFIG_I2C_STUB=m -# CONFIG_I2C_DEBUG_CORE is not set -# CONFIG_I2C_DEBUG_ALGO is not set -# CONFIG_I2C_DEBUG_BUS is not set -# CONFIG_SPI is not set - -# -# PPS support -# -CONFIG_PPS=m -# CONFIG_PPS_DEBUG is not set - -# -# PPS clients support -# -# CONFIG_PPS_CLIENT_KTIMER is not set -# CONFIG_PPS_CLIENT_LDISC is not set -# CONFIG_PPS_CLIENT_PARPORT is not set -# CONFIG_PPS_CLIENT_GPIO is not set - -# -# PPS generators support -# - -# -# PTP clock support -# -CONFIG_PTP_1588_CLOCK=m -CONFIG_DP83640_PHY=m -CONFIG_ARCH_REQUIRE_GPIOLIB=y -CONFIG_GPIOLIB=y -# CONFIG_DEBUG_GPIO is not set -CONFIG_GPIO_SYSFS=y -CONFIG_GPIO_GENERIC=m -CONFIG_GPIO_MAX730X=m - -# -# Memory mapped GPIO drivers: -# -CONFIG_GPIO_GENERIC_PLATFORM=m -CONFIG_GPIO_IT8761E=m - -# -# I2C GPIO expanders: -# -CONFIG_GPIO_MAX7300=m -CONFIG_GPIO_MAX732X=m -CONFIG_GPIO_PCF857X=m -# CONFIG_GPIO_SX150X is not set -CONFIG_GPIO_TWL4030=m -CONFIG_GPIO_ADP5588=m - -# -# PCI GPIO expanders: -# - -# -# SPI GPIO expanders: -# -CONFIG_GPIO_MCP23S08=m - -# -# AC97 GPIO expanders: -# - -# -# MODULbus GPIO expanders: -# -CONFIG_W1=m -CONFIG_W1_CON=y - -# -# 1-wire Bus Masters -# -CONFIG_W1_MASTER_DS2490=m -CONFIG_W1_MASTER_DS2482=m -CONFIG_W1_MASTER_DS1WM=m -CONFIG_W1_MASTER_GPIO=m -CONFIG_HDQ_MASTER_OMAP=m - -# -# 1-wire Slaves -# -CONFIG_W1_SLAVE_THERM=m -CONFIG_W1_SLAVE_SMEM=m -CONFIG_W1_SLAVE_DS2408=m -CONFIG_W1_SLAVE_DS2423=m -CONFIG_W1_SLAVE_DS2431=m -CONFIG_W1_SLAVE_DS2433=m -CONFIG_W1_SLAVE_DS2433_CRC=y -CONFIG_W1_SLAVE_DS2760=m -CONFIG_W1_SLAVE_DS2780=m -CONFIG_W1_SLAVE_BQ27000=m -CONFIG_POWER_SUPPLY=y -# CONFIG_POWER_SUPPLY_DEBUG is not set -# CONFIG_PDA_POWER is not set -# CONFIG_TEST_POWER is not set -# CONFIG_BATTERY_DS2760 is not set -# CONFIG_BATTERY_DS2780 is not set -# CONFIG_BATTERY_DS2782 is not set -# CONFIG_BATTERY_BQ20Z75 is not set -# CONFIG_BATTERY_BQ27x00 is not set -# CONFIG_BATTERY_MAX17040 is not set -# CONFIG_BATTERY_MAX17042 is not set -# CONFIG_CHARGER_PCF50633 is not set -# CONFIG_CHARGER_ISP1704 is not set -# CONFIG_CHARGER_MAX8903 is not set -CONFIG_CHARGER_TWL4030=m -CONFIG_CHARGER_GPIO=m -CONFIG_HWMON=m -CONFIG_HWMON_VID=m -# CONFIG_HWMON_DEBUG_CHIP is not set - -# -# Native drivers -# -CONFIG_SENSORS_AD7414=m -CONFIG_SENSORS_AD7418=m -CONFIG_SENSORS_ADM1021=m -CONFIG_SENSORS_ADM1025=m -CONFIG_SENSORS_ADM1026=m -CONFIG_SENSORS_ADM1029=m -CONFIG_SENSORS_ADM1031=m -CONFIG_SENSORS_ADM9240=m -CONFIG_SENSORS_ADT7411=m -CONFIG_SENSORS_ADT7462=m -CONFIG_SENSORS_ADT7470=m -CONFIG_SENSORS_ADT7475=m -CONFIG_SENSORS_ASC7621=m -CONFIG_SENSORS_ATXP1=m -CONFIG_SENSORS_DS620=m -CONFIG_SENSORS_DS1621=m -CONFIG_SENSORS_F71805F=m -CONFIG_SENSORS_F71882FG=m -CONFIG_SENSORS_F75375S=m -CONFIG_SENSORS_G760A=m -CONFIG_SENSORS_GL518SM=m -CONFIG_SENSORS_GL520SM=m -CONFIG_SENSORS_GPIO_FAN=m -CONFIG_SENSORS_IBMAEM=m -CONFIG_SENSORS_IBMPEX=m -CONFIG_SENSORS_IT87=m -CONFIG_SENSORS_JC42=m -CONFIG_SENSORS_LINEAGE=m -CONFIG_SENSORS_LM63=m -CONFIG_SENSORS_LM73=m -CONFIG_SENSORS_LM75=m -CONFIG_SENSORS_LM77=m -CONFIG_SENSORS_LM78=m -CONFIG_SENSORS_LM80=m -CONFIG_SENSORS_LM83=m -CONFIG_SENSORS_LM85=m -CONFIG_SENSORS_LM87=m -CONFIG_SENSORS_LM90=m -CONFIG_SENSORS_LM92=m -CONFIG_SENSORS_LM93=m -CONFIG_SENSORS_LTC4151=m -CONFIG_SENSORS_LTC4215=m -CONFIG_SENSORS_LTC4245=m -CONFIG_SENSORS_LTC4261=m -CONFIG_SENSORS_LM95241=m -CONFIG_SENSORS_LM95245=m -CONFIG_SENSORS_MAX16065=m -CONFIG_SENSORS_MAX1619=m -CONFIG_SENSORS_MAX1668=m -CONFIG_SENSORS_MAX6639=m -CONFIG_SENSORS_MAX6642=m -CONFIG_SENSORS_MAX6650=m -CONFIG_SENSORS_NTC_THERMISTOR=m -CONFIG_SENSORS_PC87360=m -CONFIG_SENSORS_PC87427=m -CONFIG_SENSORS_PCF8591=m -CONFIG_PMBUS=m -CONFIG_SENSORS_PMBUS=m -CONFIG_SENSORS_ADM1275=m -CONFIG_SENSORS_LM25066=m -CONFIG_SENSORS_LTC2978=m -CONFIG_SENSORS_MAX16064=m -CONFIG_SENSORS_MAX34440=m -CONFIG_SENSORS_MAX8688=m -CONFIG_SENSORS_UCD9000=m -CONFIG_SENSORS_UCD9200=m -CONFIG_SENSORS_ZL6100=m -CONFIG_SENSORS_SHT15=m -CONFIG_SENSORS_SHT21=m -CONFIG_SENSORS_SMM665=m -CONFIG_SENSORS_DME1737=m -CONFIG_SENSORS_EMC1403=m -CONFIG_SENSORS_EMC2103=m -CONFIG_SENSORS_EMC6W201=m -CONFIG_SENSORS_SMSC47M1=m -CONFIG_SENSORS_SMSC47M192=m -CONFIG_SENSORS_SMSC47B397=m -CONFIG_SENSORS_SCH56XX_COMMON=m -CONFIG_SENSORS_SCH5627=m -CONFIG_SENSORS_SCH5636=m -CONFIG_SENSORS_ADS1015=m -CONFIG_SENSORS_ADS7828=m -CONFIG_SENSORS_AMC6821=m -CONFIG_SENSORS_THMC50=m -CONFIG_SENSORS_TMP102=m -CONFIG_SENSORS_TMP401=m -CONFIG_SENSORS_TMP421=m -CONFIG_SENSORS_TWL4030_MADC=m -CONFIG_SENSORS_VT1211=m -CONFIG_SENSORS_W83781D=m -CONFIG_SENSORS_W83791D=m -CONFIG_SENSORS_W83792D=m -CONFIG_SENSORS_W83793=m -CONFIG_SENSORS_W83795=m -# CONFIG_SENSORS_W83795_FANCTRL is not set -CONFIG_SENSORS_W83L785TS=m -CONFIG_SENSORS_W83L786NG=m -CONFIG_SENSORS_W83627HF=m -CONFIG_SENSORS_W83627EHF=m -CONFIG_THERMAL=y -CONFIG_WATCHDOG=y -CONFIG_WATCHDOG_CORE=y -# CONFIG_WATCHDOG_NOWAYOUT is not set - -# -# Watchdog Device Drivers -# -CONFIG_SOFT_WATCHDOG=m -CONFIG_DW_WATCHDOG=m -CONFIG_MPCORE_WATCHDOG=m -CONFIG_OMAP_WATCHDOG=m -CONFIG_TWL4030_WATCHDOG=m -CONFIG_MAX63XX_WATCHDOG=m - -# -# USB-based Watchdog Cards -# -CONFIG_USBPCWATCHDOG=m -CONFIG_SSB_POSSIBLE=y - -# -# Sonics Silicon Backplane -# -CONFIG_SSB=m -CONFIG_SSB_SDIOHOST_POSSIBLE=y -CONFIG_SSB_SDIOHOST=y -# CONFIG_SSB_SILENT is not set -# CONFIG_SSB_DEBUG is not set -CONFIG_BCMA_POSSIBLE=y - -# -# Broadcom specific AMBA -# -CONFIG_BCMA=m -# CONFIG_BCMA_DEBUG is not set - -# -# Multifunction device drivers -# -CONFIG_MFD_CORE=y -# CONFIG_MFD_88PM860X is not set -CONFIG_MFD_SM501=m -# CONFIG_MFD_SM501_GPIO is not set -# CONFIG_MFD_ASIC3 is not set -# CONFIG_HTC_EGPIO is not set -CONFIG_HTC_PASIC3=m -# CONFIG_HTC_I2CPLD is not set -CONFIG_TPS6105X=m -CONFIG_TPS65010=m -CONFIG_TPS6507X=m -# CONFIG_MFD_TPS6586X is not set -# CONFIG_MFD_TPS65910 is not set -# CONFIG_MFD_TPS65912_I2C is not set -CONFIG_MENELAUS=y -CONFIG_TWL4030_CORE=y -CONFIG_TWL4030_MADC=m -CONFIG_TWL4030_POWER=y -CONFIG_MFD_TWL4030_AUDIO=y -CONFIG_TWL6030_PWM=m -CONFIG_TWL6040_CORE=y -# CONFIG_MFD_STMPE is not set -# CONFIG_MFD_TC3589X is not set -# CONFIG_MFD_TMIO is not set -# CONFIG_MFD_T7L66XB is not set -# CONFIG_MFD_TC6387XB is not set -# CONFIG_MFD_TC6393XB is not set -# CONFIG_PMIC_DA903X is not set -# CONFIG_PMIC_ADP5520 is not set -# CONFIG_MFD_MAX8925 is not set -# CONFIG_MFD_MAX8997 is not set -# CONFIG_MFD_MAX8998 is not set -CONFIG_MFD_WM8400=m -# CONFIG_MFD_WM831X_I2C is not set -# CONFIG_MFD_WM8350_I2C is not set -# CONFIG_MFD_WM8994 is not set -CONFIG_MFD_PCF50633=m -CONFIG_PCF50633_ADC=m -CONFIG_PCF50633_GPIO=m -# CONFIG_ABX500_CORE is not set -CONFIG_MFD_WL1273_CORE=m -CONFIG_MFD_OMAP_USB_HOST=y -# CONFIG_MFD_AAT2870_CORE is not set -CONFIG_REGULATOR=y -# CONFIG_REGULATOR_DEBUG is not set -# CONFIG_REGULATOR_DUMMY is not set -CONFIG_REGULATOR_FIXED_VOLTAGE=y -# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set -# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set -CONFIG_REGULATOR_GPIO=m -# CONFIG_REGULATOR_BQ24022 is not set -# CONFIG_REGULATOR_MAX1586 is not set -# CONFIG_REGULATOR_MAX8649 is not set -# CONFIG_REGULATOR_MAX8660 is not set -# CONFIG_REGULATOR_MAX8952 is not set -CONFIG_REGULATOR_TWL4030=y -# CONFIG_REGULATOR_WM8400 is not set -# CONFIG_REGULATOR_PCF50633 is not set -# CONFIG_REGULATOR_LP3971 is not set -# CONFIG_REGULATOR_LP3972 is not set -# CONFIG_REGULATOR_TPS6105X is not set -# CONFIG_REGULATOR_TPS65023 is not set -# CONFIG_REGULATOR_TPS6507X is not set -# CONFIG_REGULATOR_ISL6271A is not set -# CONFIG_REGULATOR_AD5398 is not set -CONFIG_MEDIA_SUPPORT=m - -# -# Multimedia core support -# -CONFIG_MEDIA_CONTROLLER=y -CONFIG_VIDEO_DEV=m -CONFIG_VIDEO_V4L2_COMMON=m -CONFIG_VIDEO_V4L2_SUBDEV_API=y -CONFIG_DVB_CORE=m -CONFIG_DVB_NET=y -CONFIG_VIDEO_MEDIA=m - -# -# Multimedia drivers -# -CONFIG_RC_CORE=m -CONFIG_LIRC=m -CONFIG_RC_MAP=m -# CONFIG_IR_NEC_DECODER is not set -# CONFIG_IR_RC5_DECODER is not set -# CONFIG_IR_RC6_DECODER is not set -# CONFIG_IR_JVC_DECODER is not set -# CONFIG_IR_SONY_DECODER is not set -# CONFIG_IR_RC5_SZ_DECODER is not set -# CONFIG_IR_MCE_KBD_DECODER is not set -# CONFIG_IR_LIRC_CODEC is not set -# CONFIG_RC_ATI_REMOTE is not set -# CONFIG_IR_IMON is not set -# CONFIG_IR_MCEUSB is not set -# CONFIG_IR_REDRAT3 is not set -# CONFIG_IR_STREAMZAP is not set -# CONFIG_RC_LOOPBACK is not set -CONFIG_MEDIA_ATTACH=y -CONFIG_MEDIA_TUNER=m -# CONFIG_MEDIA_TUNER_CUSTOMISE is not set -CONFIG_MEDIA_TUNER_SIMPLE=m -CONFIG_MEDIA_TUNER_TDA8290=m -CONFIG_MEDIA_TUNER_TDA827X=m -CONFIG_MEDIA_TUNER_TDA18271=m -CONFIG_MEDIA_TUNER_TDA9887=m -CONFIG_MEDIA_TUNER_TEA5761=m -CONFIG_MEDIA_TUNER_TEA5767=m -CONFIG_MEDIA_TUNER_MT20XX=m -CONFIG_MEDIA_TUNER_XC2028=m -CONFIG_MEDIA_TUNER_XC5000=m -CONFIG_MEDIA_TUNER_XC4000=m -CONFIG_MEDIA_TUNER_MC44S803=m -CONFIG_VIDEO_V4L2=m -CONFIG_VIDEO_CAPTURE_DRIVERS=y -# CONFIG_VIDEO_ADV_DEBUG is not set -# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set -# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set -CONFIG_VIDEO_IR_I2C=m - -# -# Encoders, decoders, sensors and other helper chips -# - -# -# Audio decoders, processors and mixers -# -# CONFIG_VIDEO_TVAUDIO is not set -# CONFIG_VIDEO_TDA7432 is not set -# CONFIG_VIDEO_TDA9840 is not set -# CONFIG_VIDEO_TEA6415C is not set -# CONFIG_VIDEO_TEA6420 is not set -# CONFIG_VIDEO_MSP3400 is not set -# CONFIG_VIDEO_CS5345 is not set -# CONFIG_VIDEO_CS53L32A is not set -# CONFIG_VIDEO_TLV320AIC23B is not set -# CONFIG_VIDEO_WM8775 is not set -# CONFIG_VIDEO_WM8739 is not set -# CONFIG_VIDEO_VP27SMPX is not set - -# -# RDS decoders -# -# CONFIG_VIDEO_SAA6588 is not set - -# -# Video decoders -# -# CONFIG_VIDEO_ADV7180 is not set -# CONFIG_VIDEO_BT819 is not set -# CONFIG_VIDEO_BT856 is not set -# CONFIG_VIDEO_BT866 is not set -# CONFIG_VIDEO_KS0127 is not set -# CONFIG_VIDEO_SAA7110 is not set -# CONFIG_VIDEO_SAA711X is not set -# CONFIG_VIDEO_SAA7191 is not set -# CONFIG_VIDEO_TVP514X is not set -# CONFIG_VIDEO_TVP5150 is not set -# CONFIG_VIDEO_TVP7002 is not set -# CONFIG_VIDEO_VPX3220 is not set - -# -# Video and audio decoders -# -# CONFIG_VIDEO_SAA717X is not set -# CONFIG_VIDEO_CX25840 is not set - -# -# MPEG video encoders -# -# CONFIG_VIDEO_CX2341X is not set - -# -# Video encoders -# -# CONFIG_VIDEO_SAA7127 is not set -# CONFIG_VIDEO_SAA7185 is not set -# CONFIG_VIDEO_ADV7170 is not set -# CONFIG_VIDEO_ADV7175 is not set -# CONFIG_VIDEO_ADV7343 is not set -# CONFIG_VIDEO_AK881X is not set - -# -# Camera sensor devices -# -# CONFIG_VIDEO_OV7670 is not set -# CONFIG_VIDEO_MT9P031 is not set -# CONFIG_VIDEO_MT9T001 is not set -# CONFIG_VIDEO_MT9V011 is not set -# CONFIG_VIDEO_MT9V032 is not set -# CONFIG_VIDEO_TCM825X is not set -# CONFIG_VIDEO_SR030PC30 is not set -# CONFIG_VIDEO_NOON010PC30 is not set -# CONFIG_VIDEO_M5MOLS is not set -# CONFIG_VIDEO_S5K6AA is not set - -# -# Flash devices -# -# CONFIG_VIDEO_ADP1653 is not set - -# -# Video improvement chips -# -# CONFIG_VIDEO_UPD64031A is not set -# CONFIG_VIDEO_UPD64083 is not set - -# -# Miscelaneous helper chips -# -# CONFIG_VIDEO_THS7303 is not set -# CONFIG_VIDEO_M52790 is not set -# CONFIG_VIDEO_VIVI is not set -# CONFIG_VIDEO_VPFE_CAPTURE is not set -# CONFIG_VIDEO_OMAP2_VOUT is not set -# CONFIG_VIDEO_BWQCAM is not set -# CONFIG_VIDEO_CQCAM is not set -# CONFIG_VIDEO_W9966 is not set -# CONFIG_VIDEO_CPIA2 is not set -# CONFIG_VIDEO_TIMBERDALE is not set -# CONFIG_VIDEO_AU0828 is not set -# CONFIG_SOC_CAMERA is not set -# CONFIG_VIDEO_OMAP2 is not set -# CONFIG_V4L_USB_DRIVERS is not set -# CONFIG_V4L_MEM2MEM_DRIVERS is not set -CONFIG_RADIO_ADAPTERS=y -# CONFIG_I2C_SI4713 is not set -# CONFIG_RADIO_SI4713 is not set -# CONFIG_USB_DSBR is not set -# CONFIG_RADIO_SI470X is not set -# CONFIG_USB_MR800 is not set -# CONFIG_RADIO_TEA5764 is not set -# CONFIG_RADIO_SAA7706H is not set -# CONFIG_RADIO_TEF6862 is not set -# CONFIG_RADIO_WL1273 is not set - -# -# Texas Instruments WL128x FM driver (ST based) -# -CONFIG_RADIO_WL128X=m -CONFIG_DVB_MAX_ADAPTERS=8 -# CONFIG_DVB_DYNAMIC_MINORS is not set -CONFIG_DVB_CAPTURE_DRIVERS=y -# CONFIG_TTPCI_EEPROM is not set - -# -# Supported USB Adapters -# -# CONFIG_DVB_USB is not set -# CONFIG_SMS_SIANO_MDTV is not set - -# -# Supported FlexCopII (B2C2) Adapters -# -# CONFIG_DVB_B2C2_FLEXCOP is not set - -# -# Supported DVB Frontends -# -# CONFIG_DVB_FE_CUSTOMISE is not set - -# -# Multistandard (satellite) frontends -# - -# -# Multistandard (cable + terrestrial) frontends -# - -# -# DVB-S (satellite) frontends -# - -# -# DVB-T (terrestrial) frontends -# - -# -# DVB-C (cable) frontends -# - -# -# ATSC (North American/Korean Terrestrial/Cable DTV) frontends -# - -# -# ISDB-T (terrestrial) frontends -# - -# -# Digital terrestrial only tuners/PLL -# - -# -# SEC control devices for DVB-S -# - -# -# Tools to develop new frontends -# -# CONFIG_DVB_DUMMY_FE is not set - -# -# Graphics support -# -CONFIG_DRM=m -# CONFIG_VGASTATE is not set -CONFIG_VIDEO_OUTPUT_CONTROL=m -CONFIG_FB=y -CONFIG_FIRMWARE_EDID=y -# CONFIG_FB_DDC is not set -# CONFIG_FB_BOOT_VESA_SUPPORT is not set -CONFIG_FB_CFB_FILLRECT=y -CONFIG_FB_CFB_COPYAREA=y -CONFIG_FB_CFB_IMAGEBLIT=y -# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set -CONFIG_FB_SYS_FILLRECT=m -CONFIG_FB_SYS_COPYAREA=m -CONFIG_FB_SYS_IMAGEBLIT=m -# CONFIG_FB_FOREIGN_ENDIAN is not set -CONFIG_FB_SYS_FOPS=m -# CONFIG_FB_WMT_GE_ROPS is not set -CONFIG_FB_DEFERRED_IO=y -# CONFIG_FB_SVGALIB is not set -# CONFIG_FB_MACMODES is not set -# CONFIG_FB_BACKLIGHT is not set -CONFIG_FB_MODE_HELPERS=y -CONFIG_FB_TILEBLITTING=y - -# -# Frame buffer hardware drivers -# -CONFIG_FB_UVESA=m -# CONFIG_FB_S1D13XXX is not set -CONFIG_FB_TMIO=m -CONFIG_FB_TMIO_ACCELL=y -CONFIG_FB_SM501=m -CONFIG_FB_SMSCUFX=m -# CONFIG_FB_UDL is not set -# CONFIG_FB_VIRTUAL is not set -CONFIG_FB_METRONOME=m -# CONFIG_FB_BROADSHEET is not set -# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set -CONFIG_OMAP2_VRAM=y -CONFIG_OMAP2_VRFB=y -CONFIG_OMAP2_DSS=y -CONFIG_OMAP2_VRAM_SIZE=32 -CONFIG_OMAP2_DSS_DEBUG_SUPPORT=y -# CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS is not set -CONFIG_OMAP2_DSS_DPI=y -# CONFIG_OMAP2_DSS_RFBI is not set -# CONFIG_OMAP2_DSS_VENC is not set -CONFIG_OMAP4_DSS_HDMI=y -# CONFIG_OMAP2_DSS_SDI is not set -CONFIG_OMAP2_DSS_DSI=y -# CONFIG_OMAP2_DSS_FAKE_VSYNC is not set -CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=0 -CONFIG_OMAP2_DSS_SLEEP_AFTER_VENC_RESET=y -CONFIG_FB_OMAP2=y -CONFIG_FB_OMAP2_DEBUG_SUPPORT=y -CONFIG_FB_OMAP2_NUM_FBS=3 - -# -# OMAP2/3 Display Device Drivers -# -CONFIG_PANEL_GENERIC_DPI=y -CONFIG_PANEL_DVI=y -CONFIG_PANEL_SHARP_LS037V7DW01=y -# CONFIG_PANEL_PICODLP is not set -CONFIG_PANEL_TAAL=y -CONFIG_BACKLIGHT_LCD_SUPPORT=y -CONFIG_LCD_CLASS_DEVICE=m -CONFIG_LCD_PLATFORM=m -CONFIG_BACKLIGHT_CLASS_DEVICE=y -CONFIG_BACKLIGHT_GENERIC=y -CONFIG_BACKLIGHT_PWM=m -CONFIG_BACKLIGHT_ADP8860=m -CONFIG_BACKLIGHT_ADP8870=m -CONFIG_BACKLIGHT_PCF50633=m - -# -# Display device support -# -CONFIG_DISPLAY_SUPPORT=y - -# -# Display hardware drivers -# - -# -# Console display driver support -# -CONFIG_DUMMY_CONSOLE=y -CONFIG_FRAMEBUFFER_CONSOLE=y -CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y -# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set -CONFIG_FONTS=y -CONFIG_FONT_8x8=y -CONFIG_FONT_8x16=y -# CONFIG_FONT_6x11 is not set -# CONFIG_FONT_7x14 is not set -# CONFIG_FONT_PEARL_8x8 is not set -# CONFIG_FONT_ACORN_8x8 is not set -# CONFIG_FONT_MINI_4x6 is not set -# CONFIG_FONT_SUN8x16 is not set -# CONFIG_FONT_SUN12x22 is not set -# CONFIG_FONT_10x18 is not set -CONFIG_LOGO=y -CONFIG_LOGO_LINUX_MONO=y -CONFIG_LOGO_LINUX_VGA16=y -CONFIG_LOGO_LINUX_CLUT224=y -CONFIG_SOUND=m -CONFIG_SOUND_OSS_CORE=y -CONFIG_SOUND_OSS_CORE_PRECLAIM=y -CONFIG_SND=m -CONFIG_SND_TIMER=m -CONFIG_SND_PCM=m -CONFIG_SND_HWDEP=m -CONFIG_SND_RAWMIDI=m -CONFIG_SND_JACK=y -CONFIG_SND_SEQUENCER=m -CONFIG_SND_SEQ_DUMMY=m -CONFIG_SND_OSSEMUL=y -CONFIG_SND_MIXER_OSS=m -CONFIG_SND_PCM_OSS=m -CONFIG_SND_PCM_OSS_PLUGINS=y -CONFIG_SND_SEQUENCER_OSS=y -CONFIG_SND_HRTIMER=m -CONFIG_SND_SEQ_HRTIMER_DEFAULT=y -CONFIG_SND_DYNAMIC_MINORS=y -# CONFIG_SND_SUPPORT_OLD_API is not set -CONFIG_SND_VERBOSE_PROCFS=y -# CONFIG_SND_VERBOSE_PRINTK is not set -# CONFIG_SND_DEBUG is not set -CONFIG_SND_RAWMIDI_SEQ=m -# CONFIG_SND_OPL3_LIB_SEQ is not set -# CONFIG_SND_OPL4_LIB_SEQ is not set -# CONFIG_SND_SBAWE_SEQ is not set -# CONFIG_SND_EMU10K1_SEQ is not set -CONFIG_SND_MPU401_UART=m -CONFIG_SND_DRIVERS=y -CONFIG_SND_DUMMY=m -CONFIG_SND_ALOOP=m -CONFIG_SND_VIRMIDI=m -CONFIG_SND_MTPAV=m -CONFIG_SND_MTS64=m -CONFIG_SND_SERIAL_U16550=m -CONFIG_SND_MPU401=m -CONFIG_SND_PORTMAN2X4=m -CONFIG_SND_ARM=y -CONFIG_SND_USB=y -CONFIG_SND_USB_AUDIO=m -CONFIG_SND_USB_UA101=m -CONFIG_SND_USB_CAIAQ=m -CONFIG_SND_USB_CAIAQ_INPUT=y -CONFIG_SND_USB_6FIRE=m -CONFIG_SND_SOC=m -CONFIG_SND_SOC_CACHE_LZO=y -CONFIG_SND_OMAP_SOC=m -CONFIG_SND_OMAP_SOC_MCBSP=m -CONFIG_SND_OMAP_SOC_MCPDM=m -CONFIG_SND_OMAP_SOC_RX51=m -CONFIG_SND_OMAP_SOC_OVERO=m -CONFIG_SND_OMAP_SOC_OMAP3EVM=m -CONFIG_SND_OMAP_SOC_AM3517EVM=m -CONFIG_SND_OMAP_SOC_SDP3430=m -CONFIG_SND_OMAP_SOC_SDP4430=m -# CONFIG_SND_OMAP_SOC_OMAP4_HDMI is not set -CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=m -CONFIG_SND_OMAP_SOC_OMAP3_BEAGLE=m -CONFIG_SND_OMAP_SOC_ZOOM2=m -CONFIG_SND_OMAP_SOC_IGEP0020=m -CONFIG_SND_SOC_I2C_AND_SPI=m -# CONFIG_SND_SOC_ALL_CODECS is not set -CONFIG_SND_SOC_TLV320AIC23=m -CONFIG_SND_SOC_TLV320AIC3X=m -CONFIG_SND_SOC_TWL4030=m -CONFIG_SND_SOC_TWL6040=m -CONFIG_SND_SOC_TPA6130A2=m -# CONFIG_SOUND_PRIME is not set -CONFIG_HID_SUPPORT=y -CONFIG_HID=y -# CONFIG_HIDRAW is not set - -# -# USB Input Devices -# -CONFIG_USB_HID=m -# CONFIG_HID_PID is not set -CONFIG_USB_HIDDEV=y - -# -# USB HID Boot Protocol drivers -# -CONFIG_USB_KBD=m -CONFIG_USB_MOUSE=m - -# -# Special HID drivers -# -CONFIG_HID_A4TECH=m -CONFIG_HID_ACRUX=m -# CONFIG_HID_ACRUX_FF is not set -CONFIG_HID_APPLE=m -CONFIG_HID_BELKIN=m -CONFIG_HID_CHERRY=m -CONFIG_HID_CHICONY=m -CONFIG_HID_PRODIKEYS=m -CONFIG_HID_CYPRESS=m -CONFIG_HID_DRAGONRISE=m -# CONFIG_DRAGONRISE_FF is not set -# CONFIG_HID_EMS_FF is not set -CONFIG_HID_ELECOM=m -CONFIG_HID_EZKEY=m -CONFIG_HID_HOLTEK=m -# CONFIG_HOLTEK_FF is not set -CONFIG_HID_KEYTOUCH=m -CONFIG_HID_KYE=m -CONFIG_HID_UCLOGIC=m -CONFIG_HID_WALTOP=m -CONFIG_HID_GYRATION=m -CONFIG_HID_TWINHAN=m -CONFIG_HID_KENSINGTON=m -CONFIG_HID_LCPOWER=m -CONFIG_HID_LOGITECH=m -CONFIG_HID_LOGITECH_DJ=m -# CONFIG_LOGITECH_FF is not set -# CONFIG_LOGIRUMBLEPAD2_FF is not set -# CONFIG_LOGIG940_FF is not set -# CONFIG_LOGIWHEELS_FF is not set -CONFIG_HID_MAGICMOUSE=m -CONFIG_HID_MICROSOFT=m -CONFIG_HID_MONTEREY=m -CONFIG_HID_MULTITOUCH=m -CONFIG_HID_NTRIG=m -CONFIG_HID_ORTEK=m -CONFIG_HID_PANTHERLORD=m -# CONFIG_PANTHERLORD_FF is not set -CONFIG_HID_PETALYNX=m -CONFIG_HID_PICOLCD=m -CONFIG_HID_PICOLCD_FB=y -CONFIG_HID_PICOLCD_BACKLIGHT=y -CONFIG_HID_PICOLCD_LCD=y -CONFIG_HID_PICOLCD_LEDS=y -CONFIG_HID_PRIMAX=m -CONFIG_HID_QUANTA=m -CONFIG_HID_ROCCAT=m -CONFIG_HID_ROCCAT_COMMON=m -CONFIG_HID_ROCCAT_ARVO=m -CONFIG_HID_ROCCAT_KONE=m -CONFIG_HID_ROCCAT_KONEPLUS=m -CONFIG_HID_ROCCAT_KOVAPLUS=m -CONFIG_HID_ROCCAT_PYRA=m -CONFIG_HID_SAMSUNG=m -CONFIG_HID_SONY=m -CONFIG_HID_SPEEDLINK=m -CONFIG_HID_SUNPLUS=m -CONFIG_HID_GREENASIA=m -# CONFIG_GREENASIA_FF is not set -CONFIG_HID_SMARTJOYPLUS=m -# CONFIG_SMARTJOYPLUS_FF is not set -CONFIG_HID_TOPSEED=m -CONFIG_HID_THRUSTMASTER=m -# CONFIG_THRUSTMASTER_FF is not set -CONFIG_HID_WACOM=m -# CONFIG_HID_WACOM_POWER_SUPPLY is not set -CONFIG_HID_WIIMOTE=m -CONFIG_HID_ZEROPLUS=m -# CONFIG_ZEROPLUS_FF is not set -CONFIG_HID_ZYDACRON=m -CONFIG_USB_SUPPORT=y -CONFIG_USB_COMMON=y -CONFIG_USB_ARCH_HAS_HCD=y -CONFIG_USB_ARCH_HAS_OHCI=y -CONFIG_USB_ARCH_HAS_EHCI=y -# CONFIG_USB_ARCH_HAS_XHCI is not set -CONFIG_USB=y -# CONFIG_USB_DEBUG is not set -CONFIG_USB_ANNOUNCE_NEW_DEVICES=y - -# -# Miscellaneous USB options -# -CONFIG_USB_DEVICEFS=y -CONFIG_USB_DEVICE_CLASS=y -CONFIG_USB_DYNAMIC_MINORS=y -CONFIG_USB_SUSPEND=y -# CONFIG_USB_OTG is not set -# CONFIG_USB_OTG_WHITELIST is not set -# CONFIG_USB_OTG_BLACKLIST_HUB is not set -CONFIG_USB_DWC3=m -# CONFIG_USB_DWC3_DEBUG is not set -# CONFIG_USB_MON is not set -# CONFIG_USB_WUSB is not set -# CONFIG_USB_WUSB_CBAF is not set - -# -# USB Host Controller Drivers -# -# CONFIG_USB_C67X00_HCD is not set -CONFIG_USB_EHCI_HCD=y -CONFIG_USB_EHCI_ROOT_HUB_TT=y -CONFIG_USB_EHCI_TT_NEWSCHED=y -CONFIG_USB_EHCI_HCD_OMAP=y -CONFIG_USB_OXU210HP_HCD=m -CONFIG_USB_ISP116X_HCD=m -# CONFIG_USB_ISP1760_HCD is not set -CONFIG_USB_ISP1362_HCD=m -CONFIG_USB_OHCI_HCD=y -CONFIG_USB_OHCI_HCD_OMAP1=y -CONFIG_USB_OHCI_HCD_OMAP3=y -# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set -# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set -CONFIG_USB_OHCI_LITTLE_ENDIAN=y -CONFIG_USB_U132_HCD=m -CONFIG_USB_SL811_HCD=m -# CONFIG_USB_SL811_HCD_ISO is not set -CONFIG_USB_R8A66597_HCD=m -# CONFIG_USB_HWA_HCD is not set - -# -# USB Device Class drivers -# -CONFIG_USB_ACM=m -CONFIG_USB_PRINTER=m -CONFIG_USB_WDM=m -CONFIG_USB_TMC=m - -# -# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may -# - -# -# also be needed; see USB_STORAGE Help for more info -# -CONFIG_USB_STORAGE=m -# CONFIG_USB_STORAGE_DEBUG is not set -CONFIG_USB_STORAGE_REALTEK=m -CONFIG_REALTEK_AUTOPM=y -CONFIG_USB_STORAGE_DATAFAB=m -CONFIG_USB_STORAGE_FREECOM=m -CONFIG_USB_STORAGE_ISD200=m -CONFIG_USB_STORAGE_USBAT=m -CONFIG_USB_STORAGE_SDDR09=m -CONFIG_USB_STORAGE_SDDR55=m -CONFIG_USB_STORAGE_JUMPSHOT=m -CONFIG_USB_STORAGE_ALAUDA=m -CONFIG_USB_STORAGE_ONETOUCH=m -CONFIG_USB_STORAGE_KARMA=m -CONFIG_USB_STORAGE_CYPRESS_ATACB=m -CONFIG_USB_STORAGE_ENE_UB6250=m -# CONFIG_USB_LIBUSUAL is not set - -# -# USB Imaging devices -# -# CONFIG_USB_MDC800 is not set -# CONFIG_USB_MICROTEK is not set - -# -# USB port drivers -# -CONFIG_USB_USS720=m -CONFIG_USB_SERIAL=m -CONFIG_USB_EZUSB=y -CONFIG_USB_SERIAL_GENERIC=y -CONFIG_USB_SERIAL_AIRCABLE=m -CONFIG_USB_SERIAL_ARK3116=m -CONFIG_USB_SERIAL_BELKIN=m -CONFIG_USB_SERIAL_CH341=m -CONFIG_USB_SERIAL_WHITEHEAT=m -CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m -CONFIG_USB_SERIAL_CP210X=m -CONFIG_USB_SERIAL_CYPRESS_M8=m -CONFIG_USB_SERIAL_EMPEG=m -CONFIG_USB_SERIAL_FTDI_SIO=m -CONFIG_USB_SERIAL_FUNSOFT=m -CONFIG_USB_SERIAL_VISOR=m -CONFIG_USB_SERIAL_IPAQ=m -CONFIG_USB_SERIAL_IR=m -CONFIG_USB_SERIAL_EDGEPORT=m -CONFIG_USB_SERIAL_EDGEPORT_TI=m -CONFIG_USB_SERIAL_GARMIN=m -CONFIG_USB_SERIAL_IPW=m -CONFIG_USB_SERIAL_IUU=m -# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set -# CONFIG_USB_SERIAL_KEYSPAN is not set -# CONFIG_USB_SERIAL_KLSI is not set -# CONFIG_USB_SERIAL_KOBIL_SCT is not set -CONFIG_USB_SERIAL_MCT_U232=m -CONFIG_USB_SERIAL_MOS7720=m -# CONFIG_USB_SERIAL_MOS7715_PARPORT is not set -CONFIG_USB_SERIAL_MOS7840=m -CONFIG_USB_SERIAL_MOTOROLA=m -# CONFIG_USB_SERIAL_NAVMAN is not set -CONFIG_USB_SERIAL_PL2303=m -CONFIG_USB_SERIAL_OTI6858=m -CONFIG_USB_SERIAL_QCAUX=m -CONFIG_USB_SERIAL_QUALCOMM=m -CONFIG_USB_SERIAL_SPCP8X5=m -CONFIG_USB_SERIAL_HP4X=m -CONFIG_USB_SERIAL_SAFE=m -# CONFIG_USB_SERIAL_SAFE_PADDED is not set -CONFIG_USB_SERIAL_SIEMENS_MPI=m -CONFIG_USB_SERIAL_SIERRAWIRELESS=m -CONFIG_USB_SERIAL_SYMBOL=m -CONFIG_USB_SERIAL_TI=m -# CONFIG_USB_SERIAL_CYBERJACK is not set -CONFIG_USB_SERIAL_XIRCOM=m -CONFIG_USB_SERIAL_WWAN=m -CONFIG_USB_SERIAL_OPTION=m -# CONFIG_USB_SERIAL_OMNINET is not set -CONFIG_USB_SERIAL_OPTICON=m -CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m -CONFIG_USB_SERIAL_ZIO=m -CONFIG_USB_SERIAL_SSU100=m -# CONFIG_USB_SERIAL_DEBUG is not set - -# -# USB Miscellaneous drivers -# -CONFIG_USB_EMI62=m -CONFIG_USB_EMI26=m -# CONFIG_USB_ADUTUX is not set -CONFIG_USB_SEVSEG=m -# CONFIG_USB_RIO500 is not set -# CONFIG_USB_LEGOTOWER is not set -CONFIG_USB_LCD=m -CONFIG_USB_LED=m -CONFIG_USB_CYPRESS_CY7C63=m -CONFIG_USB_CYTHERM=m -# CONFIG_USB_IDMOUSE is not set -CONFIG_USB_FTDI_ELAN=m -# CONFIG_USB_APPLEDISPLAY is not set -CONFIG_USB_SISUSBVGA=m -CONFIG_USB_SISUSBVGA_CON=y -# CONFIG_USB_LD is not set -# CONFIG_USB_TRANCEVIBRATOR is not set -CONFIG_USB_IOWARRIOR=m -# CONFIG_USB_TEST is not set -CONFIG_USB_ISIGHTFW=m -CONFIG_USB_YUREX=m -CONFIG_USB_ATM=m -CONFIG_USB_SPEEDTOUCH=m -CONFIG_USB_CXACRU=m -CONFIG_USB_UEAGLEATM=m -CONFIG_USB_XUSBATM=m -# CONFIG_USB_GADGET is not set - -# -# OTG and related infrastructure -# -CONFIG_USB_OTG_UTILS=y -CONFIG_USB_GPIO_VBUS=m -# CONFIG_ISP1301_OMAP is not set -# CONFIG_USB_ULPI is not set -CONFIG_TWL4030_USB=m -CONFIG_TWL6030_USB=m -# CONFIG_NOP_USB_XCEIV is not set -CONFIG_MMC=y -# CONFIG_MMC_DEBUG is not set -# CONFIG_MMC_UNSAFE_RESUME is not set -# CONFIG_MMC_CLKGATE is not set - -# -# MMC/SD/SDIO Card Drivers -# -CONFIG_MMC_BLOCK=m -CONFIG_MMC_BLOCK_MINORS=8 -CONFIG_MMC_BLOCK_BOUNCE=y -CONFIG_SDIO_UART=m -CONFIG_MMC_TEST=m - -# -# MMC/SD/SDIO Host Controller Drivers -# -CONFIG_MMC_SDHCI=m -CONFIG_MMC_SDHCI_PLTFM=m -# CONFIG_MMC_SDHCI_PXAV3 is not set -# CONFIG_MMC_SDHCI_PXAV2 is not set -CONFIG_MMC_OMAP=y -CONFIG_MMC_OMAP_HS=y -CONFIG_MMC_DW=m -# CONFIG_MMC_DW_IDMAC is not set -CONFIG_MMC_VUB300=m -CONFIG_MMC_USHC=m -CONFIG_MEMSTICK=m -# CONFIG_MEMSTICK_DEBUG is not set - -# -# MemoryStick drivers -# -# CONFIG_MEMSTICK_UNSAFE_RESUME is not set -CONFIG_MSPRO_BLOCK=m - -# -# MemoryStick Host Controller Drivers -# -CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=y - -# -# LED drivers -# -CONFIG_LEDS_LM3530=m -CONFIG_LEDS_PCA9532=m -CONFIG_LEDS_PCA9532_GPIO=y -CONFIG_LEDS_GPIO=m -CONFIG_LEDS_LP3944=m -CONFIG_LEDS_LP5521=m -CONFIG_LEDS_LP5523=m -CONFIG_LEDS_PCA955X=m -# CONFIG_LEDS_PWM is not set -CONFIG_LEDS_REGULATOR=m -CONFIG_LEDS_BD2802=m -CONFIG_LEDS_LT3593=m -# CONFIG_LEDS_RENESAS_TPU is not set -CONFIG_LEDS_TRIGGERS=y - -# -# LED Triggers -# -CONFIG_LEDS_TRIGGER_TIMER=m -CONFIG_LEDS_TRIGGER_HEARTBEAT=y -CONFIG_LEDS_TRIGGER_BACKLIGHT=m -CONFIG_LEDS_TRIGGER_GPIO=m -CONFIG_LEDS_TRIGGER_DEFAULT_ON=m - -# -# iptables trigger is under Netfilter config (LED target) -# -CONFIG_LEDS_TRIGGER_NETDEV=m -# CONFIG_ACCESSIBILITY is not set -CONFIG_RTC_LIB=y -CONFIG_RTC_CLASS=y -CONFIG_RTC_HCTOSYS=y -CONFIG_RTC_HCTOSYS_DEVICE="rtc0" -# CONFIG_RTC_DEBUG is not set - -# -# RTC interfaces -# -CONFIG_RTC_INTF_SYSFS=y -CONFIG_RTC_INTF_PROC=y -CONFIG_RTC_INTF_DEV=y -# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set -# CONFIG_RTC_DRV_TEST is not set - -# -# I2C RTC drivers -# -CONFIG_RTC_DRV_DS1307=m -CONFIG_RTC_DRV_DS1374=m -CONFIG_RTC_DRV_DS1672=m -CONFIG_RTC_DRV_DS3232=m -CONFIG_RTC_DRV_MAX6900=m -CONFIG_RTC_DRV_RS5C372=m -CONFIG_RTC_DRV_ISL1208=m -CONFIG_RTC_DRV_ISL12022=m -CONFIG_RTC_DRV_X1205=m -CONFIG_RTC_DRV_PCF8563=m -CONFIG_RTC_DRV_PCF8583=m -CONFIG_RTC_DRV_M41T80=m -CONFIG_RTC_DRV_M41T80_WDT=y -CONFIG_RTC_DRV_BQ32K=y -CONFIG_RTC_DRV_TWL92330=y -CONFIG_RTC_DRV_TWL4030=y -CONFIG_RTC_DRV_S35390A=m -CONFIG_RTC_DRV_FM3130=m -CONFIG_RTC_DRV_RX8581=m -CONFIG_RTC_DRV_RX8025=m -CONFIG_RTC_DRV_EM3027=m -CONFIG_RTC_DRV_RV3029C2=m - -# -# SPI RTC drivers -# - -# -# Platform RTC drivers -# -CONFIG_RTC_DRV_CMOS=m -CONFIG_RTC_DRV_DS1286=m -CONFIG_RTC_DRV_DS1511=m -CONFIG_RTC_DRV_DS1553=m -CONFIG_RTC_DRV_DS1742=m -CONFIG_RTC_DRV_STK17TA8=m -CONFIG_RTC_DRV_M48T86=m -CONFIG_RTC_DRV_M48T35=m -CONFIG_RTC_DRV_M48T59=m -CONFIG_RTC_DRV_MSM6242=m -CONFIG_RTC_DRV_BQ4802=y -CONFIG_RTC_DRV_RP5C01=m -CONFIG_RTC_DRV_V3020=m -CONFIG_RTC_DRV_PCF50633=m - -# -# on-CPU RTC drivers -# -CONFIG_DMADEVICES=y -# CONFIG_DMADEVICES_DEBUG is not set - -# -# DMA Devices -# -CONFIG_DW_DMAC=m -CONFIG_TIMB_DMA=m -CONFIG_DMA_ENGINE=y - -# -# DMA Clients -# -CONFIG_NET_DMA=y -CONFIG_ASYNC_TX_DMA=y -CONFIG_DMATEST=m -# CONFIG_AUXDISPLAY is not set -CONFIG_UIO=m -CONFIG_UIO_PDRV=m -CONFIG_UIO_PDRV_GENIRQ=m - -# -# Virtio drivers -# -# CONFIG_VIRTIO_BALLOON is not set -# CONFIG_VIRTIO_MMIO is not set -CONFIG_STAGING=y -CONFIG_USBIP_CORE=m -CONFIG_USBIP_VHCI_HCD=m -CONFIG_USBIP_HOST=m -# CONFIG_USBIP_DEBUG is not set -# CONFIG_W35UND is not set -# CONFIG_PRISM2_USB is not set -# CONFIG_ECHO is not set -# CONFIG_ASUS_OLED is not set -# CONFIG_PANEL is not set -# CONFIG_R8712U is not set -# CONFIG_RTS5139 is not set -# CONFIG_TRANZPORT is not set -# CONFIG_POHMELFS is not set -# CONFIG_LINE6_USB is not set -# CONFIG_USB_SERIAL_QUATECH2 is not set -# CONFIG_USB_SERIAL_QUATECH_USB2 is not set -# CONFIG_VT6656 is not set -# CONFIG_IIO is not set -# CONFIG_XVMALLOC is not set -# CONFIG_ZRAM is not set -# CONFIG_FB_SM7XX is not set -# CONFIG_TIDSPBRIDGE is not set -# CONFIG_USB_ENESTORAGE is not set -# CONFIG_BCM_WIMAX is not set -# CONFIG_FT1000 is not set - -# -# Speakup console speech -# -# CONFIG_SPEAKUP is not set -# CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set -# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set -# CONFIG_STAGING_MEDIA is not set -CONFIG_CLKDEV_LOOKUP=y -CONFIG_HWSPINLOCK=m - -# -# Hardware Spinlock drivers -# -CONFIG_HWSPINLOCK_OMAP=m -CONFIG_CLKSRC_MMIO=y -CONFIG_IOMMU_SUPPORT=y -# CONFIG_OMAP_IOMMU is not set -# CONFIG_VIRT_DRIVERS is not set -# CONFIG_PM_DEVFREQ is not set - -# -# File systems -# -# CONFIG_EXT2_FS is not set -# CONFIG_EXT3_FS is not set -CONFIG_EXT4_FS=y -CONFIG_EXT4_USE_FOR_EXT23=y -CONFIG_EXT4_FS_XATTR=y -CONFIG_EXT4_FS_POSIX_ACL=y -CONFIG_EXT4_FS_SECURITY=y -# CONFIG_EXT4_DEBUG is not set -CONFIG_JBD2=y -CONFIG_FS_MBCACHE=y -CONFIG_REISERFS_FS=m -# CONFIG_REISERFS_CHECK is not set -CONFIG_REISERFS_PROC_INFO=y -CONFIG_REISERFS_FS_XATTR=y -CONFIG_REISERFS_FS_POSIX_ACL=y -CONFIG_REISERFS_FS_SECURITY=y -CONFIG_JFS_FS=m -CONFIG_JFS_POSIX_ACL=y -CONFIG_JFS_SECURITY=y -# CONFIG_JFS_DEBUG is not set -CONFIG_JFS_STATISTICS=y -CONFIG_XFS_FS=m -CONFIG_XFS_QUOTA=y -CONFIG_XFS_POSIX_ACL=y -# CONFIG_XFS_RT is not set -# CONFIG_XFS_DEBUG is not set -# CONFIG_GFS2_FS is not set -# CONFIG_BTRFS_FS is not set -# CONFIG_NILFS2_FS is not set -CONFIG_FS_POSIX_ACL=y -CONFIG_EXPORTFS=m -CONFIG_FILE_LOCKING=y -CONFIG_FSNOTIFY=y -CONFIG_DNOTIFY=y -CONFIG_INOTIFY_USER=y -CONFIG_FANOTIFY=y -CONFIG_QUOTA=y -CONFIG_QUOTA_NETLINK_INTERFACE=y -CONFIG_PRINT_QUOTA_WARNING=y -# CONFIG_QUOTA_DEBUG is not set -CONFIG_QUOTA_TREE=m -CONFIG_QFMT_V1=m -CONFIG_QFMT_V2=m -CONFIG_QUOTACTL=y -CONFIG_AUTOFS4_FS=m -CONFIG_FUSE_FS=m -CONFIG_CUSE=m - -# -# Caches -# -CONFIG_FSCACHE=m -# CONFIG_FSCACHE_STATS is not set -# CONFIG_FSCACHE_HISTOGRAM is not set -# CONFIG_FSCACHE_DEBUG is not set -# CONFIG_FSCACHE_OBJECT_LIST is not set -CONFIG_CACHEFILES=m -# CONFIG_CACHEFILES_DEBUG is not set -# CONFIG_CACHEFILES_HISTOGRAM is not set - -# -# CD-ROM/DVD Filesystems -# -CONFIG_ISO9660_FS=m -CONFIG_JOLIET=y -CONFIG_ZISOFS=y -CONFIG_UDF_FS=m -CONFIG_UDF_NLS=y - -# -# DOS/FAT/NT Filesystems -# -CONFIG_FAT_FS=m -# CONFIG_MSDOS_FS is not set -CONFIG_VFAT_FS=m -CONFIG_FAT_DEFAULT_CODEPAGE=850 -CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" -# CONFIG_NTFS_FS is not set - -# -# Pseudo filesystems -# -CONFIG_PROC_FS=y -CONFIG_PROC_SYSCTL=y -CONFIG_PROC_PAGE_MONITOR=y -CONFIG_SYSFS=y -CONFIG_TMPFS=y -# CONFIG_TMPFS_POSIX_ACL is not set -CONFIG_TMPFS_XATTR=y -# CONFIG_HUGETLB_PAGE is not set -# CONFIG_CONFIGFS_FS is not set -CONFIG_MISC_FILESYSTEMS=y -# CONFIG_ADFS_FS is not set -# CONFIG_AFFS_FS is not set -CONFIG_ECRYPT_FS=m -# CONFIG_HFS_FS is not set -# CONFIG_HFSPLUS_FS is not set -# CONFIG_BEFS_FS is not set -# CONFIG_BFS_FS is not set -# CONFIG_EFS_FS is not set -CONFIG_JFFS2_FS=m -CONFIG_JFFS2_FS_DEBUG=0 -CONFIG_JFFS2_FS_WRITEBUFFER=y -# CONFIG_JFFS2_FS_WBUF_VERIFY is not set -# CONFIG_JFFS2_SUMMARY is not set -# CONFIG_JFFS2_FS_XATTR is not set -CONFIG_JFFS2_COMPRESSION_OPTIONS=y -CONFIG_JFFS2_ZLIB=y -# CONFIG_JFFS2_LZO is not set -CONFIG_JFFS2_RTIME=y -CONFIG_JFFS2_RUBIN=y -# CONFIG_JFFS2_CMODE_NONE is not set -CONFIG_JFFS2_CMODE_PRIORITY=y -# CONFIG_JFFS2_CMODE_SIZE is not set -# CONFIG_JFFS2_CMODE_FAVOURLZO is not set -# CONFIG_UBIFS_FS is not set -# CONFIG_LOGFS is not set -# CONFIG_CRAMFS is not set -# CONFIG_SQUASHFS is not set -# CONFIG_VXFS_FS is not set -# CONFIG_MINIX_FS is not set -# CONFIG_OMFS_FS is not set -# CONFIG_HPFS_FS is not set -# CONFIG_QNX4FS_FS is not set -# CONFIG_ROMFS_FS is not set -# CONFIG_PSTORE is not set -# CONFIG_SYSV_FS is not set -CONFIG_UFS_FS=m -# CONFIG_UFS_FS_WRITE is not set -# CONFIG_UFS_DEBUG is not set -# CONFIG_EXOFS_FS is not set -CONFIG_NETWORK_FILESYSTEMS=y -CONFIG_NFS_FS=m -CONFIG_NFS_V3=y -CONFIG_NFS_V3_ACL=y -CONFIG_NFS_V4=y -# CONFIG_NFS_V4_1 is not set -# CONFIG_NFS_FSCACHE is not set -# CONFIG_NFS_USE_LEGACY_DNS is not set -CONFIG_NFS_USE_KERNEL_DNS=y -# CONFIG_NFS_USE_NEW_IDMAPPER is not set -CONFIG_NFSD=m -CONFIG_NFSD_V2_ACL=y -CONFIG_NFSD_V3=y -CONFIG_NFSD_V3_ACL=y -CONFIG_NFSD_V4=y -CONFIG_LOCKD=m -CONFIG_LOCKD_V4=y -CONFIG_NFS_ACL_SUPPORT=m -CONFIG_NFS_COMMON=y -CONFIG_SUNRPC=m -CONFIG_SUNRPC_GSS=m -CONFIG_RPCSEC_GSS_KRB5=m -# CONFIG_CEPH_FS is not set -CONFIG_CIFS=m -CONFIG_CIFS_STATS=y -CONFIG_CIFS_STATS2=y -# CONFIG_CIFS_WEAK_PW_HASH is not set -# CONFIG_CIFS_UPCALL is not set -CONFIG_CIFS_XATTR=y -CONFIG_CIFS_POSIX=y -# CONFIG_CIFS_DEBUG2 is not set -# CONFIG_CIFS_DFS_UPCALL is not set -# CONFIG_CIFS_FSCACHE is not set -CONFIG_CIFS_ACL=y -# CONFIG_NCP_FS is not set -# CONFIG_CODA_FS is not set -# CONFIG_AFS_FS is not set - -# -# Partition Types -# -CONFIG_PARTITION_ADVANCED=y -# CONFIG_ACORN_PARTITION is not set -# CONFIG_OSF_PARTITION is not set -# CONFIG_AMIGA_PARTITION is not set -# CONFIG_ATARI_PARTITION is not set -# CONFIG_MAC_PARTITION is not set -CONFIG_MSDOS_PARTITION=y -CONFIG_BSD_DISKLABEL=y -# CONFIG_MINIX_SUBPARTITION is not set -# CONFIG_SOLARIS_X86_PARTITION is not set -# CONFIG_UNIXWARE_DISKLABEL is not set -CONFIG_LDM_PARTITION=y -# CONFIG_LDM_DEBUG is not set -# CONFIG_SGI_PARTITION is not set -# CONFIG_ULTRIX_PARTITION is not set -# CONFIG_SUN_PARTITION is not set -# CONFIG_KARMA_PARTITION is not set -CONFIG_EFI_PARTITION=y -# CONFIG_SYSV68_PARTITION is not set -CONFIG_NLS=y -CONFIG_NLS_DEFAULT="cp850" -# CONFIG_NLS_CODEPAGE_437 is not set -# CONFIG_NLS_CODEPAGE_737 is not set -# CONFIG_NLS_CODEPAGE_775 is not set -CONFIG_NLS_CODEPAGE_850=y -# CONFIG_NLS_CODEPAGE_852 is not set -# CONFIG_NLS_CODEPAGE_855 is not set -# CONFIG_NLS_CODEPAGE_857 is not set -# CONFIG_NLS_CODEPAGE_860 is not set -# CONFIG_NLS_CODEPAGE_861 is not set -# CONFIG_NLS_CODEPAGE_862 is not set -# CONFIG_NLS_CODEPAGE_863 is not set -# CONFIG_NLS_CODEPAGE_864 is not set -# CONFIG_NLS_CODEPAGE_865 is not set -# CONFIG_NLS_CODEPAGE_866 is not set -# CONFIG_NLS_CODEPAGE_869 is not set -# CONFIG_NLS_CODEPAGE_936 is not set -# CONFIG_NLS_CODEPAGE_950 is not set -# CONFIG_NLS_CODEPAGE_932 is not set -# CONFIG_NLS_CODEPAGE_949 is not set -# CONFIG_NLS_CODEPAGE_874 is not set -# CONFIG_NLS_ISO8859_8 is not set -# CONFIG_NLS_CODEPAGE_1250 is not set -# CONFIG_NLS_CODEPAGE_1251 is not set -# CONFIG_NLS_ASCII is not set -CONFIG_NLS_ISO8859_1=y -# CONFIG_NLS_ISO8859_2 is not set -# CONFIG_NLS_ISO8859_3 is not set -# CONFIG_NLS_ISO8859_4 is not set -# CONFIG_NLS_ISO8859_5 is not set -# CONFIG_NLS_ISO8859_6 is not set -# CONFIG_NLS_ISO8859_7 is not set -# CONFIG_NLS_ISO8859_9 is not set -# CONFIG_NLS_ISO8859_13 is not set -# CONFIG_NLS_ISO8859_14 is not set -# CONFIG_NLS_ISO8859_15 is not set -# CONFIG_NLS_KOI8_R is not set -# CONFIG_NLS_KOI8_U is not set -CONFIG_NLS_UTF8=y - -# -# Kernel hacking -# -# CONFIG_PRINTK_TIME is not set -CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4 -# CONFIG_ENABLE_WARN_DEPRECATED is not set -CONFIG_ENABLE_MUST_CHECK=y -CONFIG_FRAME_WARN=1024 -# CONFIG_MAGIC_SYSRQ is not set -CONFIG_STRIP_ASM_SYMS=y -# CONFIG_UNUSED_SYMBOLS is not set -# CONFIG_DEBUG_FS is not set -# CONFIG_HEADERS_CHECK is not set -# CONFIG_DEBUG_SECTION_MISMATCH is not set -CONFIG_DEBUG_KERNEL=y -# CONFIG_DEBUG_SHIRQ is not set -# CONFIG_LOCKUP_DETECTOR is not set -# CONFIG_HARDLOCKUP_DETECTOR is not set -CONFIG_DETECT_HUNG_TASK=y -CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 -# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set -CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 -CONFIG_SCHED_DEBUG=y -# CONFIG_SCHEDSTATS is not set -CONFIG_TIMER_STATS=y -# CONFIG_DEBUG_OBJECTS is not set -# CONFIG_SLUB_DEBUG_ON is not set -# CONFIG_SLUB_STATS is not set -# CONFIG_DEBUG_KMEMLEAK is not set -# CONFIG_DEBUG_RT_MUTEXES is not set -# CONFIG_RT_MUTEX_TESTER is not set -# CONFIG_DEBUG_SPINLOCK is not set -# CONFIG_DEBUG_MUTEXES is not set -# CONFIG_DEBUG_LOCK_ALLOC is not set -# CONFIG_PROVE_LOCKING is not set -# CONFIG_SPARSE_RCU_POINTER is not set -# CONFIG_LOCK_STAT is not set -# CONFIG_DEBUG_ATOMIC_SLEEP is not set -# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set -# CONFIG_DEBUG_STACK_USAGE is not set -# CONFIG_DEBUG_KOBJECT is not set -# CONFIG_DEBUG_HIGHMEM is not set -CONFIG_DEBUG_BUGVERBOSE=y -# CONFIG_DEBUG_INFO is not set -# CONFIG_DEBUG_VM is not set -# CONFIG_DEBUG_WRITECOUNT is not set -CONFIG_DEBUG_MEMORY_INIT=y -# CONFIG_DEBUG_LIST is not set -# CONFIG_TEST_LIST_SORT is not set -# CONFIG_DEBUG_SG is not set -# CONFIG_DEBUG_NOTIFIERS is not set -# CONFIG_DEBUG_CREDENTIALS is not set -CONFIG_FRAME_POINTER=y -# CONFIG_BOOT_PRINTK_DELAY is not set -# CONFIG_RCU_TORTURE_TEST is not set -CONFIG_RCU_CPU_STALL_TIMEOUT=60 -# CONFIG_BACKTRACE_SELF_TEST is not set -# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set -# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set -# CONFIG_DEBUG_PER_CPU_MAPS is not set -# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set -# CONFIG_FAULT_INJECTION is not set -# CONFIG_SYSCTL_SYSCALL_CHECK is not set -# CONFIG_DEBUG_PAGEALLOC is not set -CONFIG_HAVE_FUNCTION_TRACER=y -CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y -CONFIG_HAVE_DYNAMIC_FTRACE=y -CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y -CONFIG_HAVE_C_RECORDMCOUNT=y -CONFIG_TRACING_SUPPORT=y -# CONFIG_FTRACE is not set -# CONFIG_DMA_API_DEBUG is not set -# CONFIG_ATOMIC64_SELFTEST is not set -CONFIG_ASYNC_RAID6_TEST=m -# CONFIG_SAMPLES is not set -CONFIG_HAVE_ARCH_KGDB=y -# CONFIG_KGDB is not set -# CONFIG_TEST_KSTRTOX is not set -# CONFIG_STRICT_DEVMEM is not set -# CONFIG_ARM_UNWIND is not set -# CONFIG_DEBUG_USER is not set -CONFIG_DEBUG_LL=y -CONFIG_DEBUG_LL_UART_NONE=y -# CONFIG_DEBUG_ICEDCC is not set -CONFIG_EARLY_PRINTK=y - -# -# Security options -# -CONFIG_KEYS=y -# CONFIG_ENCRYPTED_KEYS is not set -# CONFIG_KEYS_DEBUG_PROC_KEYS is not set -# CONFIG_SECURITY_DMESG_RESTRICT is not set -# CONFIG_SECURITY is not set -# CONFIG_SECURITYFS is not set -CONFIG_DEFAULT_SECURITY_DAC=y -CONFIG_DEFAULT_SECURITY="" -CONFIG_XOR_BLOCKS=m -CONFIG_ASYNC_CORE=m -CONFIG_ASYNC_MEMCPY=m -CONFIG_ASYNC_XOR=m -CONFIG_ASYNC_PQ=m -CONFIG_ASYNC_RAID6_RECOV=m -CONFIG_CRYPTO=y - -# -# Crypto core or helper -# -CONFIG_CRYPTO_ALGAPI=y -CONFIG_CRYPTO_ALGAPI2=y -CONFIG_CRYPTO_AEAD=m -CONFIG_CRYPTO_AEAD2=y -CONFIG_CRYPTO_BLKCIPHER=m -CONFIG_CRYPTO_BLKCIPHER2=y -CONFIG_CRYPTO_HASH=y -CONFIG_CRYPTO_HASH2=y -CONFIG_CRYPTO_RNG=m -CONFIG_CRYPTO_RNG2=y -CONFIG_CRYPTO_PCOMP=m -CONFIG_CRYPTO_PCOMP2=y -CONFIG_CRYPTO_MANAGER=y -CONFIG_CRYPTO_MANAGER2=y -CONFIG_CRYPTO_USER=m -CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y -CONFIG_CRYPTO_GF128MUL=m -# CONFIG_CRYPTO_NULL is not set -CONFIG_CRYPTO_PCRYPT=m -CONFIG_CRYPTO_WORKQUEUE=y -CONFIG_CRYPTO_CRYPTD=m -CONFIG_CRYPTO_AUTHENC=m -# CONFIG_CRYPTO_TEST is not set - -# -# Authenticated Encryption with Associated Data -# -CONFIG_CRYPTO_CCM=m -CONFIG_CRYPTO_GCM=m -CONFIG_CRYPTO_SEQIV=m - -# -# Block modes -# -CONFIG_CRYPTO_CBC=m -CONFIG_CRYPTO_CTR=m -CONFIG_CRYPTO_CTS=m -CONFIG_CRYPTO_ECB=m -CONFIG_CRYPTO_LRW=m -CONFIG_CRYPTO_PCBC=m -CONFIG_CRYPTO_XTS=m - -# -# Hash modes -# -CONFIG_CRYPTO_HMAC=y -CONFIG_CRYPTO_XCBC=m -CONFIG_CRYPTO_VMAC=m - -# -# Digest -# -CONFIG_CRYPTO_CRC32C=m -CONFIG_CRYPTO_GHASH=m -CONFIG_CRYPTO_MD4=m -CONFIG_CRYPTO_MD5=m -CONFIG_CRYPTO_MICHAEL_MIC=m -CONFIG_CRYPTO_RMD128=m -CONFIG_CRYPTO_RMD160=m -CONFIG_CRYPTO_RMD256=m -CONFIG_CRYPTO_RMD320=m -CONFIG_CRYPTO_SHA1=m -CONFIG_CRYPTO_SHA256=m -CONFIG_CRYPTO_SHA512=m -CONFIG_CRYPTO_TGR192=m -CONFIG_CRYPTO_WP512=m - -# -# Ciphers -# -CONFIG_CRYPTO_AES=m -CONFIG_CRYPTO_ANUBIS=m -CONFIG_CRYPTO_ARC4=m -CONFIG_CRYPTO_BLOWFISH=m -CONFIG_CRYPTO_BLOWFISH_COMMON=m -CONFIG_CRYPTO_CAMELLIA=m -CONFIG_CRYPTO_CAST5=m -CONFIG_CRYPTO_CAST6=m -CONFIG_CRYPTO_DES=m -CONFIG_CRYPTO_FCRYPT=m -CONFIG_CRYPTO_KHAZAD=m -CONFIG_CRYPTO_SALSA20=m -CONFIG_CRYPTO_SEED=m -CONFIG_CRYPTO_SERPENT=m -CONFIG_CRYPTO_TEA=m -CONFIG_CRYPTO_TWOFISH=m -CONFIG_CRYPTO_TWOFISH_COMMON=m - -# -# Compression -# -CONFIG_CRYPTO_DEFLATE=y -CONFIG_CRYPTO_ZLIB=m -CONFIG_CRYPTO_LZO=m - -# -# Random Number Generation -# -CONFIG_CRYPTO_ANSI_CPRNG=m -CONFIG_CRYPTO_USER_API=m -CONFIG_CRYPTO_USER_API_HASH=m -CONFIG_CRYPTO_USER_API_SKCIPHER=m -CONFIG_CRYPTO_HW=y -CONFIG_CRYPTO_DEV_OMAP_SHAM=m -CONFIG_CRYPTO_DEV_OMAP_AES=m -# CONFIG_BINARY_PRINTF is not set - -# -# Library routines -# -CONFIG_RAID6_PQ=m -CONFIG_BITREVERSE=y -CONFIG_CRC_CCITT=m -CONFIG_CRC16=y -CONFIG_CRC_T10DIF=m -CONFIG_CRC_ITU_T=m -CONFIG_CRC32=y -CONFIG_CRC7=m -CONFIG_LIBCRC32C=m -CONFIG_CRC8=m -CONFIG_AUDIT_GENERIC=y -CONFIG_ZLIB_INFLATE=y -CONFIG_ZLIB_DEFLATE=y -CONFIG_LZO_COMPRESS=y -CONFIG_LZO_DECOMPRESS=y -CONFIG_XZ_DEC=y -CONFIG_XZ_DEC_X86=y -CONFIG_XZ_DEC_POWERPC=y -CONFIG_XZ_DEC_IA64=y -CONFIG_XZ_DEC_ARM=y -CONFIG_XZ_DEC_ARMTHUMB=y -CONFIG_XZ_DEC_SPARC=y -CONFIG_XZ_DEC_BCJ=y -# CONFIG_XZ_DEC_TEST is not set -CONFIG_DECOMPRESS_GZIP=y -CONFIG_DECOMPRESS_BZIP2=y -CONFIG_DECOMPRESS_LZMA=y -CONFIG_DECOMPRESS_XZ=y -CONFIG_DECOMPRESS_LZO=y -CONFIG_TEXTSEARCH=y -CONFIG_TEXTSEARCH_KMP=m -CONFIG_TEXTSEARCH_BM=m -CONFIG_TEXTSEARCH_FSM=m -CONFIG_HAS_IOMEM=y -CONFIG_HAS_IOPORT=y -CONFIG_HAS_DMA=y -CONFIG_CPU_RMAP=y -CONFIG_NLATTR=y -CONFIG_GENERIC_ATOMIC64=y -CONFIG_AVERAGE=y -CONFIG_CORDIC=m diff --git a/config/kernel/kernel.config.armv5tel-ipfire-rpi b/config/kernel/kernel.config.armv5tel-ipfire-rpi index 1e55886..a5266ec 100644 --- a/config/kernel/kernel.config.armv5tel-ipfire-rpi +++ b/config/kernel/kernel.config.armv5tel-ipfire-rpi @@ -1,40 +1,33 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm 3.2.47 Kernel Configuration +# Linux/arm 3.10.32 Kernel Configuration # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y -CONFIG_HAVE_SCHED_CLOCK=y -CONFIG_GENERIC_GPIO=y -# CONFIG_ARCH_USES_GETTIMEOFFSET is not set -CONFIG_GENERIC_CLOCKEVENTS=y -CONFIG_KTIME_SCALAR=y CONFIG_HAVE_PROC_CPU=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_HAVE_LATENCYTOP_SUPPORT=y CONFIG_LOCKDEP_SUPPORT=y CONFIG_TRACE_IRQFLAGS_SUPPORT=y -CONFIG_HARDIRQS_SW_RESEND=y -CONFIG_GENERIC_IRQ_PROBE=y CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_ARCH_HAS_CPUFREQ=y -CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_FIQ=y CONFIG_VECTORS_BASE=0xffff0000 CONFIG_ARM_PATCH_PHYS_VIRT=y +CONFIG_NEED_MACH_GPIO_H=y +CONFIG_NEED_MACH_IO_H=y CONFIG_NEED_MACH_MEMORY_H=y CONFIG_GENERIC_BUG=y CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" -CONFIG_HAVE_IRQ_WORK=y CONFIG_IRQ_WORK=y +CONFIG_BUILDTIME_EXTABLE_SORT=y
# # General setup # -CONFIG_EXPERIMENTAL=y CONFIG_BROKEN_ON_SMP=y CONFIG_INIT_ENV_ARG_LIMIT=32 CONFIG_CROSS_COMPILE="" @@ -42,9 +35,11 @@ CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_HAVE_KERNEL_GZIP=y CONFIG_HAVE_KERNEL_LZMA=y +CONFIG_HAVE_KERNEL_XZ=y CONFIG_HAVE_KERNEL_LZO=y -# CONFIG_KERNEL_GZIP is not set -CONFIG_KERNEL_LZMA=y +CONFIG_KERNEL_GZIP=y +# CONFIG_KERNEL_LZMA is not set +# CONFIG_KERNEL_XZ is not set # CONFIG_KERNEL_LZO is not set CONFIG_DEFAULT_HOSTNAME="(none)" CONFIG_SWAP=y @@ -52,36 +47,74 @@ CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE_SYSCTL=y -CONFIG_BSD_PROCESS_ACCT=y -CONFIG_BSD_PROCESS_ACCT_V3=y # CONFIG_FHANDLE is not set -# CONFIG_TASKSTATS is not set CONFIG_AUDIT=y +# CONFIG_AUDITSYSCALL is not set +# CONFIG_AUDIT_LOGINUID_IMMUTABLE is not set CONFIG_HAVE_GENERIC_HARDIRQS=y
# # IRQ subsystem # CONFIG_GENERIC_HARDIRQS=y -CONFIG_HAVE_SPARSE_IRQ=y +CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_GENERIC_IRQ_CHIP=y CONFIG_IRQ_DOMAIN=y -CONFIG_SPARSE_IRQ=y +CONFIG_KTIME_SCALAR=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y + +# +# Timers subsystem +# +CONFIG_TICK_ONESHOT=y +CONFIG_NO_HZ_COMMON=y +# CONFIG_HZ_PERIODIC is not set +CONFIG_NO_HZ_IDLE=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y + +# +# CPU/Task time and stats accounting +# +CONFIG_TICK_CPU_ACCOUNTING=y +# CONFIG_IRQ_TIME_ACCOUNTING is not set +CONFIG_BSD_PROCESS_ACCT=y +# CONFIG_BSD_PROCESS_ACCT_V3 is not set +CONFIG_TASKSTATS=y +CONFIG_TASK_DELAY_ACCT=y +CONFIG_TASK_XACCT=y +CONFIG_TASK_IO_ACCOUNTING=y
# # RCU Subsystem # CONFIG_TINY_RCU=y # CONFIG_PREEMPT_RCU is not set -# CONFIG_RCU_TRACE is not set +# CONFIG_RCU_STALL_COMMON is not set # CONFIG_TREE_RCU_TRACE is not set # CONFIG_IKCONFIG is not set CONFIG_LOG_BUF_SHIFT=19 -# CONFIG_CGROUPS is not set +CONFIG_CGROUPS=y +# CONFIG_CGROUP_DEBUG is not set +CONFIG_CGROUP_FREEZER=y +CONFIG_CGROUP_DEVICE=y +CONFIG_CPUSETS=y +CONFIG_PROC_PID_CPUSET=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_RESOURCE_COUNTERS=y +# CONFIG_MEMCG is not set +CONFIG_CGROUP_PERF=y +CONFIG_CGROUP_SCHED=y +CONFIG_FAIR_GROUP_SCHED=y +# CONFIG_CFS_BANDWIDTH is not set +CONFIG_RT_GROUP_SCHED=y +# CONFIG_BLK_CGROUP is not set CONFIG_NAMESPACES=y CONFIG_UTS_NS=y CONFIG_IPC_NS=y -# CONFIG_USER_NS is not set # CONFIG_PID_NS is not set # CONFIG_NET_NS is not set # CONFIG_SCHED_AUTOGROUP is not set @@ -98,12 +131,13 @@ CONFIG_RD_LZO=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_SYSCTL=y CONFIG_ANON_INODES=y +CONFIG_HAVE_UID16=y +CONFIG_HOTPLUG=y # CONFIG_EXPERT is not set CONFIG_UID16=y # CONFIG_SYSCTL_SYSCALL is not set CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set -CONFIG_HOTPLUG=y CONFIG_PRINTK=y CONFIG_BUG=y CONFIG_ELF_CORE=y @@ -123,7 +157,6 @@ CONFIG_PERF_USE_VMALLOC=y # Kernel Performance Events And Counters # CONFIG_PERF_EVENTS=y -# CONFIG_PERF_COUNTERS is not set # CONFIG_DEBUG_PERF_USE_VMALLOC is not set CONFIG_VM_EVENT_COUNTERS=y CONFIG_SLUB_DEBUG=y @@ -133,12 +166,29 @@ CONFIG_SLUB=y # CONFIG_PROFILING is not set CONFIG_HAVE_OPROFILE=y # CONFIG_KPROBES is not set +CONFIG_JUMP_LABEL=y +# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +CONFIG_HAVE_DMA_ATTRS=y +CONFIG_HAVE_DMA_CONTIGUOUS=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_GENERIC_IDLE_POLL_SETUP=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y CONFIG_HAVE_CLK=y CONFIG_HAVE_DMA_API_DEBUG=y CONFIG_HAVE_HW_BREAKPOINT=y +CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y +CONFIG_HAVE_ARCH_SECCOMP_FILTER=y +CONFIG_SECCOMP_FILTER=y +CONFIG_HAVE_CONTEXT_TRACKING=y +CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y +CONFIG_MODULES_USE_ELF_REL=y +CONFIG_CLONE_BACKWARDS=y +CONFIG_OLD_SIGSUSPEND3=y +CONFIG_OLD_SIGACTION=y
# # GCOV-based kernel profiling @@ -153,6 +203,8 @@ CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_FORCE_UNLOAD=y # CONFIG_MODVERSIONS is not set # CONFIG_MODULE_SRCVERSION_ALL is not set +# CONFIG_MODULE_SIG is not set +CONFIG_STOP_MACHINE=y CONFIG_BLOCK=y CONFIG_LBDAF=y CONFIG_BLK_DEV_BSG=y @@ -160,6 +212,29 @@ CONFIG_BLK_DEV_BSGLIB=y # CONFIG_BLK_DEV_INTEGRITY is not set
# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +# CONFIG_MAC_PARTITION is not set +CONFIG_MSDOS_PARTITION=y +CONFIG_BSD_DISKLABEL=y +# CONFIG_MINIX_SUBPARTITION is not set +# CONFIG_SOLARIS_X86_PARTITION is not set +# CONFIG_UNIXWARE_DISKLABEL is not set +CONFIG_LDM_PARTITION=y +# CONFIG_LDM_DEBUG is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +# CONFIG_KARMA_PARTITION is not set +CONFIG_EFI_PARTITION=y +# CONFIG_SYSV68_PARTITION is not set + +# # IO Schedulers # CONFIG_IOSCHED_NOOP=y @@ -169,104 +244,60 @@ CONFIG_IOSCHED_CFQ=y CONFIG_DEFAULT_CFQ=y # CONFIG_DEFAULT_NOOP is not set CONFIG_DEFAULT_IOSCHED="cfq" -# CONFIG_INLINE_SPIN_TRYLOCK is not set -# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set -# CONFIG_INLINE_SPIN_LOCK is not set -# CONFIG_INLINE_SPIN_LOCK_BH is not set -# CONFIG_INLINE_SPIN_LOCK_IRQ is not set -# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set -CONFIG_INLINE_SPIN_UNLOCK=y -# CONFIG_INLINE_SPIN_UNLOCK_BH is not set +CONFIG_ASN1=m CONFIG_INLINE_SPIN_UNLOCK_IRQ=y -# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set -# CONFIG_INLINE_READ_TRYLOCK is not set -# CONFIG_INLINE_READ_LOCK is not set -# CONFIG_INLINE_READ_LOCK_BH is not set -# CONFIG_INLINE_READ_LOCK_IRQ is not set -# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set CONFIG_INLINE_READ_UNLOCK=y -# CONFIG_INLINE_READ_UNLOCK_BH is not set CONFIG_INLINE_READ_UNLOCK_IRQ=y -# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set -# CONFIG_INLINE_WRITE_TRYLOCK is not set -# CONFIG_INLINE_WRITE_LOCK is not set -# CONFIG_INLINE_WRITE_LOCK_BH is not set -# CONFIG_INLINE_WRITE_LOCK_IRQ is not set -# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set CONFIG_INLINE_WRITE_UNLOCK=y -# CONFIG_INLINE_WRITE_UNLOCK_BH is not set CONFIG_INLINE_WRITE_UNLOCK_IRQ=y -# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set -# CONFIG_MUTEX_SPIN_ON_OWNER is not set CONFIG_FREEZER=y
# # System Type # CONFIG_MMU=y +# CONFIG_ARCH_MULTIPLATFORM is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_REALVIEW is not set # CONFIG_ARCH_VERSATILE is not set -# CONFIG_ARCH_VEXPRESS is not set # CONFIG_ARCH_AT91 is not set -# CONFIG_ARCH_BCMRING is not set -# CONFIG_ARCH_HIGHBANK is not set +CONFIG_ARCH_BCM2708=y # CONFIG_ARCH_CLPS711X is not set -# CONFIG_ARCH_CNS3XXX is not set # CONFIG_ARCH_GEMINI is not set -# CONFIG_ARCH_PRIMA2 is not set # CONFIG_ARCH_EBSA110 is not set # CONFIG_ARCH_EP93XX is not set # CONFIG_ARCH_FOOTBRIDGE is not set -# CONFIG_ARCH_MXC is not set -# CONFIG_ARCH_MXS is not set # CONFIG_ARCH_NETX is not set -# CONFIG_ARCH_H720X is not set # CONFIG_ARCH_IOP13XX is not set # CONFIG_ARCH_IOP32X is not set # CONFIG_ARCH_IOP33X is not set -# CONFIG_ARCH_IXP23XX is not set -# CONFIG_ARCH_IXP2000 is not set # CONFIG_ARCH_IXP4XX is not set # CONFIG_ARCH_DOVE is not set # CONFIG_ARCH_KIRKWOOD is not set -# CONFIG_ARCH_LPC32XX is not set # CONFIG_ARCH_MV78XX0 is not set # CONFIG_ARCH_ORION5X is not set # CONFIG_ARCH_MMP is not set # CONFIG_ARCH_KS8695 is not set # CONFIG_ARCH_W90X900 is not set -# CONFIG_ARCH_TEGRA is not set -# CONFIG_ARCH_PICOXCELL is not set -# CONFIG_ARCH_PNX4008 is not set +# CONFIG_ARCH_LPC32XX is not set # CONFIG_ARCH_PXA is not set # CONFIG_ARCH_MSM is not set # CONFIG_ARCH_SHMOBILE is not set # CONFIG_ARCH_RPC is not set # CONFIG_ARCH_SA1100 is not set -# CONFIG_ARCH_S3C2410 is not set +# CONFIG_ARCH_S3C24XX is not set # CONFIG_ARCH_S3C64XX is not set # CONFIG_ARCH_S5P64X0 is not set # CONFIG_ARCH_S5PC100 is not set # CONFIG_ARCH_S5PV210 is not set # CONFIG_ARCH_EXYNOS is not set # CONFIG_ARCH_SHARK is not set -# CONFIG_ARCH_TCC_926 is not set # CONFIG_ARCH_U300 is not set -# CONFIG_ARCH_U8500 is not set -# CONFIG_ARCH_NOMADIK is not set # CONFIG_ARCH_DAVINCI is not set -# CONFIG_ARCH_OMAP is not set -# CONFIG_PLAT_SPEAR is not set -CONFIG_ARCH_BCM2708=y -# CONFIG_ARCH_VT8500 is not set -# CONFIG_ARCH_ZYNQ is not set +# CONFIG_ARCH_OMAP1 is not set CONFIG_GPIO_PCA953X=m CONFIG_KEYBOARD_GPIO_POLLED=m - -# -# System MMU -# +# CONFIG_PLAT_SPEAR is not set
# # Broadcom BCM2708 Implementations @@ -275,6 +306,7 @@ CONFIG_MACH_BCM2708=y CONFIG_BCM2708_GPIO=y CONFIG_BCM2708_VCMEM=y # CONFIG_BCM2708_NOL2CACHE is not set +CONFIG_BCM2708_SPIDEV=y CONFIG_BCM2708_DMAER=m
# @@ -291,46 +323,44 @@ CONFIG_CPU_TLB_V6=y CONFIG_CPU_HAS_ASID=y CONFIG_CPU_CP15=y CONFIG_CPU_CP15_MMU=y -CONFIG_CPU_USE_DOMAINS=y
# # Processor Features # +# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set CONFIG_ARM_THUMB=y # CONFIG_CPU_ICACHE_DISABLE is not set # CONFIG_CPU_DCACHE_DISABLE is not set # CONFIG_CPU_BPREDICT_DISABLE is not set +CONFIG_KUSER_HELPERS=y +# CONFIG_CACHE_L2X0 is not set CONFIG_ARM_L1_CACHE_SHIFT=5 CONFIG_ARM_DMA_MEM_BUFFERABLE=y -CONFIG_CPU_HAS_PMU=y +CONFIG_ARM_NR_BANKS=8 # CONFIG_ARM_ERRATA_326103 is not set CONFIG_ARM_ERRATA_411920=y # CONFIG_ARM_ERRATA_364296 is not set -CONFIG_PL330=y
# # Bus support # CONFIG_ARM_AMBA=y # CONFIG_PCI_SYSCALL is not set -# CONFIG_ARCH_SUPPORTS_MSI is not set # CONFIG_PCCARD is not set
# # Kernel Features # -CONFIG_TICK_ONESHOT=y -CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y -CONFIG_GENERIC_CLOCKEVENTS_BUILD=y CONFIG_VMSPLIT_3G=y # CONFIG_VMSPLIT_2G is not set # CONFIG_VMSPLIT_1G is not set CONFIG_PAGE_OFFSET=0xC0000000 +CONFIG_ARCH_NR_GPIO=0 CONFIG_PREEMPT_NONE=y # CONFIG_PREEMPT_VOLUNTARY is not set # CONFIG_PREEMPT is not set CONFIG_HZ=100 +CONFIG_SCHED_HRTICK=y CONFIG_AEABI=y # CONFIG_OABI_COMPAT is not set # CONFIG_ARCH_SPARSEMEM_DEFAULT is not set @@ -338,32 +368,34 @@ CONFIG_AEABI=y CONFIG_HAVE_ARCH_PFN_VALID=y # CONFIG_HIGHMEM is not set CONFIG_HW_PERF_EVENTS=y -CONFIG_SELECT_MEMORY_MODEL=y -CONFIG_FLATMEM_MANUAL=y CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y CONFIG_HAVE_MEMBLOCK=y +CONFIG_MEMORY_ISOLATION=y +# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set CONFIG_PAGEFLAGS_EXTENDED=y CONFIG_SPLIT_PTLOCK_CPUS=4 # CONFIG_COMPACTION is not set +CONFIG_MIGRATION=y # CONFIG_PHYS_ADDR_T_64BIT is not set CONFIG_ZONE_DMA_FLAG=0 -CONFIG_VIRT_TO_BUS=y CONFIG_KSM=y CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 +CONFIG_CROSS_MEMORY_ATTACH=y CONFIG_NEED_PER_CPU_KM=y -# CONFIG_CLEANCACHE is not set +CONFIG_CLEANCACHE=y +CONFIG_FRONTSWAP=y CONFIG_FORCE_MAX_ZONEORDER=11 CONFIG_ALIGNMENT_TRAP=y -CONFIG_UACCESS_WITH_MEMCPY=y CONFIG_SECCOMP=y CONFIG_CC_STACKPROTECTOR=y -# CONFIG_DEPRECATED_PARAM_STRUCT is not set
# # Boot options # CONFIG_USE_OF=y +CONFIG_ATAGS=y +# CONFIG_DEPRECATED_PARAM_STRUCT is not set CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 # CONFIG_ARM_APPENDED_DTB is not set @@ -385,6 +417,7 @@ CONFIG_CMDLINE_FROM_BOOTLOADER=y # CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_TABLE=y +CONFIG_CPU_FREQ_GOV_COMMON=y CONFIG_CPU_FREQ_STAT=m # CONFIG_CPU_FREQ_STAT_DETAILS is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set @@ -400,10 +433,16 @@ CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y # # ARM CPU frequency scaling drivers # +# CONFIG_ARM_EXYNOS4210_CPUFREQ is not set +# CONFIG_ARM_EXYNOS4X12_CPUFREQ is not set +# CONFIG_ARM_EXYNOS5250_CPUFREQ is not set +# CONFIG_ARM_KIRKWOOD_CPUFREQ is not set CONFIG_ARM_BCM2835_CPUFREQ=y CONFIG_CPU_IDLE=y +# CONFIG_CPU_IDLE_MULTIPLE_DRIVERS is not set CONFIG_CPU_IDLE_GOV_LADDER=y CONFIG_CPU_IDLE_GOV_MENU=y +# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
# # Floating point emulation @@ -418,10 +457,12 @@ CONFIG_VFP=y # Userspace binary formats # CONFIG_BINFMT_ELF=y +CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set -CONFIG_HAVE_AOUT=y -# CONFIG_BINFMT_AOUT is not set +CONFIG_BINFMT_SCRIPT=y +# CONFIG_HAVE_AOUT is not set # CONFIG_BINFMT_MISC is not set +CONFIG_COREDUMP=y
# # Power management options @@ -429,6 +470,8 @@ CONFIG_HAVE_AOUT=y CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y CONFIG_PM_SLEEP=y +# CONFIG_PM_AUTOSLEEP is not set +# CONFIG_PM_WAKELOCKS is not set CONFIG_PM_RUNTIME=y CONFIG_PM=y # CONFIG_PM_DEBUG is not set @@ -443,8 +486,11 @@ CONFIG_NET=y # Networking options # CONFIG_PACKET=y +# CONFIG_PACKET_DIAG is not set CONFIG_UNIX=y +CONFIG_UNIX_DIAG=m CONFIG_XFRM=y +CONFIG_XFRM_ALGO=m CONFIG_XFRM_USER=m # CONFIG_XFRM_SUB_POLICY is not set CONFIG_XFRM_MIGRATE=y @@ -455,7 +501,7 @@ CONFIG_NET_KEY_MIGRATE=y CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y -# CONFIG_IP_FIB_TRIE_STATS is not set +CONFIG_IP_FIB_TRIE_STATS=y CONFIG_IP_MULTIPLE_TABLES=y CONFIG_IP_ROUTE_MULTIPATH=y CONFIG_IP_ROUTE_VERBOSE=y @@ -463,6 +509,7 @@ CONFIG_IP_ROUTE_CLASSID=y # CONFIG_IP_PNP is not set CONFIG_NET_IPIP=m CONFIG_NET_IPGRE_DEMUX=m +CONFIG_NET_IP_TUNNEL=m CONFIG_NET_IPGRE=m CONFIG_NET_IPGRE_BROADCAST=y CONFIG_IP_MROUTE=y @@ -471,6 +518,7 @@ CONFIG_IP_PIMSM_V1=y CONFIG_IP_PIMSM_V2=y CONFIG_ARPD=y CONFIG_SYN_COOKIES=y +CONFIG_NET_IPVTI=m CONFIG_INET_AH=m CONFIG_INET_ESP=m CONFIG_INET_IPCOMP=m @@ -482,6 +530,7 @@ CONFIG_INET_XFRM_MODE_BEET=y CONFIG_INET_LRO=y CONFIG_INET_DIAG=m CONFIG_INET_TCP_DIAG=m +CONFIG_INET_UDP_DIAG=m CONFIG_TCP_CONG_ADVANCED=y CONFIG_TCP_CONG_BIC=m CONFIG_TCP_CONG_CUBIC=m @@ -516,9 +565,11 @@ CONFIG_IPV6_SIT=m # CONFIG_IPV6_SIT_6RD is not set CONFIG_IPV6_NDISC_NODETYPE=y CONFIG_IPV6_TUNNEL=m +CONFIG_IPV6_GRE=m CONFIG_IPV6_MULTIPLE_TABLES=y # CONFIG_IPV6_SUBTREES is not set # CONFIG_IPV6_MROUTE is not set +# CONFIG_NETLABEL is not set # CONFIG_NETWORK_SECMARK is not set CONFIG_NETWORK_PHY_TIMESTAMPING=y CONFIG_NETFILTER=y @@ -530,13 +581,17 @@ CONFIG_BRIDGE_NETFILTER=y # Core Netfilter Configuration # CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_NETLINK_ACCT=m CONFIG_NETFILTER_NETLINK_QUEUE=m CONFIG_NETFILTER_NETLINK_LOG=m -CONFIG_NF_CONNTRACK=m +CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y # CONFIG_NF_CONNTRACK_ZONES is not set +CONFIG_NF_CONNTRACK_PROCFS=y CONFIG_NF_CONNTRACK_EVENTS=y +# CONFIG_NF_CONNTRACK_TIMEOUT is not set CONFIG_NF_CONNTRACK_TIMESTAMP=y +CONFIG_NF_CONNTRACK_LABELS=y CONFIG_NF_CT_PROTO_DCCP=m CONFIG_NF_CT_PROTO_GRE=m CONFIG_NF_CT_PROTO_SCTP=m @@ -553,6 +608,19 @@ CONFIG_NF_CONNTRACK_SANE=m CONFIG_NF_CONNTRACK_SIP=m CONFIG_NF_CONNTRACK_TFTP=m CONFIG_NF_CT_NETLINK=m +CONFIG_NF_CT_NETLINK_TIMEOUT=m +CONFIG_NF_CT_NETLINK_HELPER=m +CONFIG_NETFILTER_NETLINK_QUEUE_CT=y +CONFIG_NF_NAT=m +CONFIG_NF_NAT_NEEDED=y +CONFIG_NF_NAT_PROTO_DCCP=m +CONFIG_NF_NAT_PROTO_UDPLITE=m +CONFIG_NF_NAT_PROTO_SCTP=m +CONFIG_NF_NAT_AMANDA=m +CONFIG_NF_NAT_FTP=m +CONFIG_NF_NAT_IRC=m +CONFIG_NF_NAT_SIP=m +CONFIG_NF_NAT_TFTP=m CONFIG_NETFILTER_TPROXY=m CONFIG_NETFILTER_XTABLES=m
@@ -572,14 +640,18 @@ CONFIG_NETFILTER_XT_TARGET_CONNMARK=m CONFIG_NETFILTER_XT_TARGET_CT=m CONFIG_NETFILTER_XT_TARGET_DSCP=m CONFIG_NETFILTER_XT_TARGET_HL=m +CONFIG_NETFILTER_XT_TARGET_HMARK=m CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m CONFIG_NETFILTER_XT_TARGET_LED=m +CONFIG_NETFILTER_XT_TARGET_LOG=m CONFIG_NETFILTER_XT_TARGET_IMQ=m CONFIG_NETFILTER_XT_TARGET_MARK=m +CONFIG_NETFILTER_XT_TARGET_NETMAP=m CONFIG_NETFILTER_XT_TARGET_NFLOG=m CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m CONFIG_NETFILTER_XT_TARGET_NOTRACK=m CONFIG_NETFILTER_XT_TARGET_RATEEST=m +CONFIG_NETFILTER_XT_TARGET_REDIRECT=m CONFIG_NETFILTER_XT_TARGET_TEE=m CONFIG_NETFILTER_XT_TARGET_TPROXY=m CONFIG_NETFILTER_XT_TARGET_TRACE=m @@ -590,9 +662,11 @@ CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m # Xtables matches # CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m +CONFIG_NETFILTER_XT_MATCH_BPF=m CONFIG_NETFILTER_XT_MATCH_CLUSTER=m CONFIG_NETFILTER_XT_MATCH_COMMENT=m CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m +CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m CONFIG_NETFILTER_XT_MATCH_CONNMARK=m CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m @@ -600,6 +674,7 @@ CONFIG_NETFILTER_XT_MATCH_CPU=m CONFIG_NETFILTER_XT_MATCH_DCCP=m CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m CONFIG_NETFILTER_XT_MATCH_DSCP=m +CONFIG_NETFILTER_XT_MATCH_ECN=m CONFIG_NETFILTER_XT_MATCH_ESP=m CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m CONFIG_NETFILTER_XT_MATCH_HELPER=m @@ -611,6 +686,7 @@ CONFIG_NETFILTER_XT_MATCH_LIMIT=m CONFIG_NETFILTER_XT_MATCH_MAC=m CONFIG_NETFILTER_XT_MATCH_MARK=m CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_NFACCT=m CONFIG_NETFILTER_XT_MATCH_OSF=m CONFIG_NETFILTER_XT_MATCH_OWNER=m CONFIG_NETFILTER_XT_MATCH_POLICY=m @@ -661,6 +737,11 @@ CONFIG_IP_VS_SED=m CONFIG_IP_VS_NQ=m
# +# IPVS SH scheduler +# +CONFIG_IP_VS_SH_TAB_BITS=8 + +# # IPVS application helper # CONFIG_IP_VS_FTP=m @@ -673,37 +754,28 @@ CONFIG_IP_VS_PE_SIP=m CONFIG_NF_DEFRAG_IPV4=m CONFIG_NF_CONNTRACK_IPV4=m CONFIG_NF_CONNTRACK_PROC_COMPAT=y -CONFIG_IP_NF_QUEUE=m CONFIG_IP_NF_IPTABLES=m CONFIG_IP_NF_MATCH_AH=m CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_RPFILTER=m CONFIG_IP_NF_MATCH_TTL=m CONFIG_IP_NF_FILTER=m CONFIG_IP_NF_TARGET_REJECT=m -CONFIG_IP_NF_TARGET_LOG=m CONFIG_IP_NF_TARGET_ULOG=m -CONFIG_NF_NAT=m -CONFIG_NF_NAT_NEEDED=y +CONFIG_NF_NAT_IPV4=m CONFIG_IP_NF_TARGET_MASQUERADE=m CONFIG_IP_NF_TARGET_NETMAP=m CONFIG_IP_NF_TARGET_REDIRECT=m CONFIG_NF_NAT_SNMP_BASIC=m -CONFIG_NF_NAT_PROTO_DCCP=m CONFIG_NF_NAT_PROTO_GRE=m -CONFIG_NF_NAT_PROTO_UDPLITE=m -CONFIG_NF_NAT_PROTO_SCTP=m -CONFIG_NF_NAT_FTP=m -CONFIG_NF_NAT_IRC=m -CONFIG_NF_NAT_TFTP=m -CONFIG_NF_NAT_AMANDA=m CONFIG_NF_NAT_PPTP=m CONFIG_NF_NAT_H323=m -CONFIG_NF_NAT_SIP=m CONFIG_IP_NF_MANGLE=m CONFIG_IP_NF_TARGET_CLUSTERIP=m CONFIG_IP_NF_TARGET_ECN=m CONFIG_IP_NF_TARGET_TTL=m CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_SECURITY=m CONFIG_IP_NF_ARPTABLES=m CONFIG_IP_NF_ARPFILTER=m CONFIG_IP_NF_ARP_MANGLE=m @@ -714,7 +786,6 @@ CONFIG_IP_NF_MATCH_IPP2P=m # CONFIG_NF_DEFRAG_IPV6=m CONFIG_NF_CONNTRACK_IPV6=m -CONFIG_IP6_NF_QUEUE=m CONFIG_IP6_NF_IPTABLES=m CONFIG_IP6_NF_MATCH_AH=m CONFIG_IP6_NF_MATCH_EUI64=m @@ -723,13 +794,15 @@ CONFIG_IP6_NF_MATCH_OPTS=m CONFIG_IP6_NF_MATCH_HL=m CONFIG_IP6_NF_MATCH_IPV6HEADER=m CONFIG_IP6_NF_MATCH_MH=m +CONFIG_IP6_NF_MATCH_RPFILTER=m CONFIG_IP6_NF_MATCH_RT=m CONFIG_IP6_NF_TARGET_HL=m -CONFIG_IP6_NF_TARGET_LOG=m CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_TARGET_REJECT=m CONFIG_IP6_NF_MANGLE=m CONFIG_IP6_NF_RAW=m +CONFIG_IP6_NF_SECURITY=m +# CONFIG_NF_NAT_IPV6 is not set CONFIG_BRIDGE_NF_EBTABLES=m CONFIG_BRIDGE_EBT_BROUTE=m CONFIG_BRIDGE_EBT_T_FILTER=m @@ -770,17 +843,15 @@ CONFIG_STP=m CONFIG_GARP=m CONFIG_BRIDGE=m CONFIG_BRIDGE_IGMP_SNOOPING=y +CONFIG_BRIDGE_VLAN_FILTERING=y +CONFIG_HAVE_NET_DSA=y CONFIG_NET_DSA=y CONFIG_NET_DSA_TAG_DSA=y CONFIG_NET_DSA_TAG_EDSA=y CONFIG_NET_DSA_TAG_TRAILER=y -CONFIG_NET_DSA_MV88E6XXX=y -CONFIG_NET_DSA_MV88E6060=y -CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y -CONFIG_NET_DSA_MV88E6131=y -CONFIG_NET_DSA_MV88E6123_61_65=y CONFIG_VLAN_8021Q=m CONFIG_VLAN_8021Q_GVRP=y +# CONFIG_VLAN_8021Q_MVRP is not set # CONFIG_DECNET is not set CONFIG_LLC=m # CONFIG_LLC2 is not set @@ -788,11 +859,10 @@ CONFIG_LLC=m # CONFIG_ATALK is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set -# CONFIG_ECONET is not set -# CONFIG_WAN_ROUTER is not set # CONFIG_PHONET is not set CONFIG_IEEE802154=m CONFIG_IEEE802154_6LOWPAN=m +CONFIG_MAC802154=m CONFIG_NET_SCHED=y
# @@ -816,7 +886,10 @@ CONFIG_NET_SCH_DRR=m CONFIG_NET_SCH_MQPRIO=m CONFIG_NET_SCH_CHOKE=m CONFIG_NET_SCH_QFQ=m +CONFIG_NET_SCH_CODEL=m +CONFIG_NET_SCH_FQ_CODEL=m CONFIG_NET_SCH_INGRESS=m +CONFIG_NET_SCH_PLUG=m
# # Classification @@ -832,6 +905,7 @@ CONFIG_CLS_U32_MARK=y CONFIG_NET_CLS_RSVP=m CONFIG_NET_CLS_RSVP6=m CONFIG_NET_CLS_FLOW=m +CONFIG_NET_CLS_CGROUP=m CONFIG_NET_EMATCH=y CONFIG_NET_EMATCH_STACK=32 CONFIG_NET_EMATCH_CMP=m @@ -855,7 +929,17 @@ CONFIG_NET_SCH_FIFO=y # CONFIG_DCB is not set CONFIG_DNS_RESOLVER=y CONFIG_BATMAN_ADV=m +CONFIG_BATMAN_ADV_BLA=y +CONFIG_BATMAN_ADV_DAT=y +CONFIG_BATMAN_ADV_NC=y # CONFIG_BATMAN_ADV_DEBUG is not set +CONFIG_OPENVSWITCH=m +# CONFIG_VSOCKETS is not set +# CONFIG_NETLINK_MMAP is not set +CONFIG_NETLINK_DIAG=m +CONFIG_NETPRIO_CGROUP=m +CONFIG_BQL=y +CONFIG_BPF_JIT=y
# # Network testing @@ -863,49 +947,8 @@ CONFIG_BATMAN_ADV=m # CONFIG_NET_PKTGEN is not set # CONFIG_HAMRADIO is not set # CONFIG_CAN is not set -CONFIG_IRDA=m - -# -# IrDA protocols -# -CONFIG_IRLAN=m -CONFIG_IRNET=m -CONFIG_IRCOMM=m -# CONFIG_IRDA_ULTRA is not set - -# -# IrDA options -# -# CONFIG_IRDA_CACHE_LAST_LSAP is not set -# CONFIG_IRDA_FAST_RR is not set -# CONFIG_IRDA_DEBUG is not set - -# -# Infrared-port device drivers -# - -# -# SIR device drivers -# -CONFIG_IRTTY_SIR=m - -# -# Dongle support -# -# CONFIG_DONGLE is not set -CONFIG_KINGSUN_DONGLE=m -CONFIG_KSDAZZLE_DONGLE=m -CONFIG_KS959_DONGLE=m - -# -# FIR device drivers -# -CONFIG_USB_IRDA=m -CONFIG_SIGMATEL_FIR=m -CONFIG_MCS_FIR=m +# CONFIG_IRDA is not set CONFIG_BT=m -CONFIG_BT_L2CAP=y -CONFIG_BT_SCO=y CONFIG_BT_RFCOMM=m CONFIG_BT_RFCOMM_TTY=y CONFIG_BT_BNEP=m @@ -924,6 +967,7 @@ CONFIG_BT_HCIUART_H4=y CONFIG_BT_HCIUART_BCSP=y CONFIG_BT_HCIUART_ATH3K=y CONFIG_BT_HCIUART_LL=y +CONFIG_BT_HCIUART_3WIRE=y CONFIG_BT_HCIBCM203X=m CONFIG_BT_HCIBPA10X=m CONFIG_BT_HCIBFUSB=m @@ -931,7 +975,6 @@ CONFIG_BT_HCIVHCI=m CONFIG_BT_MRVL=m CONFIG_BT_MRVL_SDIO=m CONFIG_BT_ATH3K=m -CONFIG_BT_WILINK=m CONFIG_AF_RXRPC=m # CONFIG_AF_RXRPC_DEBUG is not set CONFIG_RXKAD=m @@ -949,7 +992,6 @@ CONFIG_CFG80211=m # CONFIG_CFG80211_DEFAULT_PS is not set # CONFIG_CFG80211_INTERNAL_REGDB is not set CONFIG_CFG80211_WEXT=y -CONFIG_WIRELESS_EXT_SYSFS=y CONFIG_LIB80211=m CONFIG_LIB80211_CRYPT_WEP=m CONFIG_LIB80211_CRYPT_CCMP=m @@ -963,6 +1005,7 @@ CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" CONFIG_MAC80211_MESH=y CONFIG_MAC80211_LEDS=y +# CONFIG_MAC80211_MESSAGE_TRACING is not set # CONFIG_MAC80211_DEBUG_MENU is not set # CONFIG_WIMAX is not set CONFIG_RFKILL=m @@ -976,6 +1019,7 @@ CONFIG_CEPH_LIB=m # CONFIG_CEPH_LIB_PRETTYDEBUG is not set # CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set # CONFIG_NFC is not set +CONFIG_HAVE_BPF_JIT=y
# # Device Drivers @@ -985,29 +1029,52 @@ CONFIG_CEPH_LIB=m # Generic Driver Options # CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -# CONFIG_DEVTMPFS is not set +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y # CONFIG_STANDALONE is not set # CONFIG_PREVENT_FIRMWARE_BUILD is not set CONFIG_FW_LOADER=y # CONFIG_FIRMWARE_IN_KERNEL is not set CONFIG_EXTRA_FIRMWARE="" +CONFIG_FW_LOADER_USER_HELPER=y # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set # CONFIG_SYS_HYPERVISOR is not set +# CONFIG_GENERIC_CPU_DEVICES is not set CONFIG_REGMAP=y CONFIG_REGMAP_I2C=m +CONFIG_REGMAP_SPI=m +CONFIG_REGMAP_MMIO=m +CONFIG_DMA_SHARED_BUFFER=y +CONFIG_CMA=y +# CONFIG_CMA_DEBUG is not set + +# +# Default contiguous memory area size: +# +CONFIG_CMA_SIZE_MBYTES=16 +CONFIG_CMA_SIZE_SEL_MBYTES=y +# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set +# CONFIG_CMA_SIZE_SEL_MIN is not set +# CONFIG_CMA_SIZE_SEL_MAX is not set +CONFIG_CMA_ALIGNMENT=8 +CONFIG_CMA_AREAS=7 + +# +# Bus devices +# CONFIG_CONNECTOR=m CONFIG_MTD=m -CONFIG_MTD_TESTS=m +# CONFIG_MTD_TESTS is not set # CONFIG_MTD_REDBOOT_PARTS is not set +CONFIG_MTD_CMDLINE_PARTS=m # CONFIG_MTD_AFS_PARTS is not set CONFIG_MTD_OF_PARTS=m -CONFIG_MTD_AR7_PARTS=m +# CONFIG_MTD_AR7_PARTS is not set
# # User Modules And Translation Layers # -CONFIG_MTD_CHAR=m CONFIG_MTD_BLKDEVS=m CONFIG_MTD_BLOCK=m # CONFIG_MTD_BLOCK_RO is not set @@ -1016,7 +1083,7 @@ CONFIG_MTD_BLOCK=m # CONFIG_INFTL is not set # CONFIG_RFD_FTL is not set # CONFIG_SSFDC is not set -CONFIG_SM_FTL=m +# CONFIG_SM_FTL is not set # CONFIG_MTD_OOPS is not set # CONFIG_MTD_SWAP is not set
@@ -1050,6 +1117,9 @@ CONFIG_MTD_PHYSMAP=m # # Self-contained MTD device drivers # +# CONFIG_MTD_DATAFLASH is not set +# CONFIG_MTD_M25P80 is not set +# CONFIG_MTD_SST25L is not set # CONFIG_MTD_SLRAM is not set # CONFIG_MTD_PHRAM is not set # CONFIG_MTD_MTDRAM is not set @@ -1058,20 +1128,17 @@ CONFIG_MTD_PHYSMAP=m # # Disk-On-Chip Device Drivers # -# CONFIG_MTD_DOC2000 is not set -# CONFIG_MTD_DOC2001 is not set -# CONFIG_MTD_DOC2001PLUS is not set # CONFIG_MTD_DOCG3 is not set CONFIG_MTD_NAND_ECC=m # CONFIG_MTD_NAND_ECC_SMC is not set CONFIG_MTD_NAND=m -# CONFIG_MTD_NAND_VERIFY_WRITE is not set # CONFIG_MTD_NAND_ECC_BCH is not set # CONFIG_MTD_SM_COMMON is not set -# CONFIG_MTD_NAND_MUSEUM_IDS is not set +# CONFIG_MTD_NAND_DENALI is not set # CONFIG_MTD_NAND_GPIO is not set CONFIG_MTD_NAND_IDS=m # CONFIG_MTD_NAND_DISKONCHIP is not set +# CONFIG_MTD_NAND_DOCG4 is not set # CONFIG_MTD_NAND_NANDSIM is not set CONFIG_MTD_NAND_PLATFORM=m # CONFIG_MTD_ALAUDA is not set @@ -1084,9 +1151,9 @@ CONFIG_MTD_LPDDR=m CONFIG_MTD_QINFO_PROBE=m CONFIG_MTD_UBI=m CONFIG_MTD_UBI_WL_THRESHOLD=4096 -CONFIG_MTD_UBI_BEB_RESERVE=1 +CONFIG_MTD_UBI_BEB_LIMIT=20 +# CONFIG_MTD_UBI_FASTMAP is not set # CONFIG_MTD_UBI_GLUEBI is not set -# CONFIG_MTD_UBI_DEBUG is not set CONFIG_DTC=y CONFIG_OF=y
@@ -1094,15 +1161,16 @@ CONFIG_OF=y # Device Tree and Open Firmware support # CONFIG_PROC_DEVICETREE=y +# CONFIG_OF_SELFTEST is not set CONFIG_OF_FLATTREE=y CONFIG_OF_EARLY_FLATTREE=y CONFIG_OF_ADDRESS=y CONFIG_OF_IRQ=y CONFIG_OF_DEVICE=y -CONFIG_OF_GPIO=y CONFIG_OF_I2C=y CONFIG_OF_NET=y CONFIG_OF_MDIO=y +CONFIG_OF_MTD=y CONFIG_PARPORT=m # CONFIG_PARPORT_PC is not set # CONFIG_PARPORT_GSC is not set @@ -1117,7 +1185,6 @@ CONFIG_BLK_DEV_CRYPTOLOOP=m # CONFIG_BLK_DEV_DRBD is not set CONFIG_BLK_DEV_NBD=m CONFIG_BLK_DEV_OSD=m -# CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_COUNT=8 CONFIG_BLK_DEV_RAM_SIZE=16384 @@ -1127,41 +1194,50 @@ CONFIG_ATA_OVER_ETH=m CONFIG_MG_DISK=m CONFIG_MG_DISK_RES=0 CONFIG_BLK_DEV_RBD=m -CONFIG_SENSORS_LIS3LV02D=m -CONFIG_MISC_DEVICES=y + +# +# Misc devices +# +# CONFIG_SENSORS_LIS3LV02D is not set # CONFIG_AD525X_DPOT is not set # CONFIG_ATMEL_PWM is not set -CONFIG_ICS932S401=m +CONFIG_DUMMY_IRQ=m +# CONFIG_ICS932S401 is not set +# CONFIG_ATMEL_SSC is not set CONFIG_ENCLOSURE_SERVICES=m -CONFIG_APDS9802ALS=m -CONFIG_ISL29003=m -CONFIG_ISL29020=m -CONFIG_SENSORS_TSL2550=m -CONFIG_SENSORS_BH1780=m -CONFIG_SENSORS_BH1770=m -CONFIG_SENSORS_APDS990X=m -CONFIG_HMC6352=m +# CONFIG_APDS9802ALS is not set +# CONFIG_ISL29003 is not set +# CONFIG_ISL29020 is not set +# CONFIG_SENSORS_TSL2550 is not set +# CONFIG_SENSORS_BH1780 is not set +# CONFIG_SENSORS_BH1770 is not set +# CONFIG_SENSORS_APDS990X is not set +# CONFIG_HMC6352 is not set CONFIG_DS1682=m -CONFIG_BMP085=m +# CONFIG_TI_DAC7512 is not set +# CONFIG_BMP085_I2C is not set +# CONFIG_BMP085_SPI is not set CONFIG_USB_SWITCH_FSA9480=m -CONFIG_C2PORT=m +# CONFIG_LATTICE_ECP3_CONFIG is not set +# CONFIG_SRAM is not set +# CONFIG_C2PORT is not set
# # EEPROM support # CONFIG_EEPROM_AT24=m +# CONFIG_EEPROM_AT25 is not set CONFIG_EEPROM_LEGACY=m CONFIG_EEPROM_MAX6875=m CONFIG_EEPROM_93CX6=m -CONFIG_IWMC3200TOP=m -# CONFIG_IWMC3200TOP_DEBUG is not set -# CONFIG_IWMC3200TOP_DEBUGFS is not set +# CONFIG_EEPROM_93XX46 is not set
# # Texas Instruments shared transport line discipline # -CONFIG_TI_ST=m -CONFIG_SENSORS_LIS3_I2C=m +# CONFIG_TI_ST is not set +# CONFIG_SENSORS_LIS3_SPI is not set +# CONFIG_SENSORS_LIS3_I2C is not set
# # Altera FPGA firmware download module @@ -1195,7 +1271,6 @@ CONFIG_SCSI_MULTI_LUN=y # CONFIG_SCSI_CONSTANTS is not set # CONFIG_SCSI_LOGGING is not set # CONFIG_SCSI_SCAN_ASYNC is not set -CONFIG_SCSI_WAIT_SCAN=m
# # SCSI Transports @@ -1211,6 +1286,8 @@ CONFIG_SCSI_SRP_ATTRS=m CONFIG_SCSI_LOWLEVEL=y CONFIG_ISCSI_TCP=m CONFIG_ISCSI_BOOT_SYSFS=m +CONFIG_SCSI_UFSHCD=m +CONFIG_SCSI_UFSHCD_PLATFORM=m CONFIG_LIBFC=m CONFIG_LIBFCOE=m # CONFIG_SCSI_DEBUG is not set @@ -1231,31 +1308,8 @@ CONFIG_SATA_PMP=y # # Controllers with non-SFF native interface # -CONFIG_SATA_AHCI_PLATFORM=m -CONFIG_ATA_SFF=y - -# -# SFF controllers with custom DMA interface -# -CONFIG_ATA_BMDMA=y - -# -# SATA SFF controllers with BMDMA -# -CONFIG_SATA_MV=m - -# -# PATA SFF controllers with BMDMA -# -CONFIG_PATA_ARASAN_CF=m - -# -# PIO-only SFF controllers -# - -# -# Generic fallback / legacy drivers -# +# CONFIG_SATA_AHCI_PLATFORM is not set +# CONFIG_ATA_SFF is not set CONFIG_MD=y CONFIG_BLK_DEV_MD=m CONFIG_MD_LINEAR=m @@ -1265,15 +1319,23 @@ CONFIG_MD_RAID10=m CONFIG_MD_RAID456=m CONFIG_MD_MULTIPATH=m # CONFIG_MD_FAULTY is not set +CONFIG_BCACHE=m +# CONFIG_BCACHE_DEBUG is not set +# CONFIG_BCACHE_EDEBUG is not set +# CONFIG_BCACHE_CLOSURES_DEBUG is not set +CONFIG_BLK_DEV_DM_BUILTIN=y CONFIG_BLK_DEV_DM=m # CONFIG_DM_DEBUG is not set CONFIG_DM_BUFIO=m +CONFIG_DM_BIO_PRISON=m CONFIG_DM_PERSISTENT_DATA=m CONFIG_DM_CRYPT=m CONFIG_DM_SNAPSHOT=m CONFIG_DM_THIN_PROVISIONING=m # CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set -# CONFIG_DM_DEBUG_SPACE_MAPS is not set +CONFIG_DM_CACHE=m +CONFIG_DM_CACHE_MQ=m +CONFIG_DM_CACHE_CLEANER=m CONFIG_DM_MIRROR=m CONFIG_DM_RAID=m CONFIG_DM_LOG_USERSPACE=m @@ -1284,27 +1346,33 @@ CONFIG_DM_MULTIPATH_ST=m CONFIG_DM_DELAY=m CONFIG_DM_UEVENT=y CONFIG_DM_FLAKEY=m +CONFIG_DM_VERITY=m # CONFIG_TARGET_CORE is not set CONFIG_NETDEVICES=y CONFIG_NET_CORE=y CONFIG_BONDING=m CONFIG_DUMMY=m CONFIG_EQUALIZER=m -CONFIG_IMQ=m -# CONFIG_IMQ_BEHAVIOR_AA is not set -CONFIG_IMQ_BEHAVIOR_AB=y -# CONFIG_IMQ_BEHAVIOR_BA is not set -# CONFIG_IMQ_BEHAVIOR_BB is not set -CONFIG_IMQ_NUM_DEVS=2 CONFIG_MII=m -CONFIG_IEEE802154_DRIVERS=m -CONFIG_IEEE802154_FAKEHARD=m CONFIG_IFB=m +CONFIG_NET_TEAM=m +CONFIG_NET_TEAM_MODE_BROADCAST=m +CONFIG_NET_TEAM_MODE_ROUNDROBIN=m +CONFIG_NET_TEAM_MODE_RANDOM=m +CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m +CONFIG_NET_TEAM_MODE_LOADBALANCE=m CONFIG_MACVLAN=m CONFIG_MACVTAP=m +CONFIG_VXLAN=m # CONFIG_NETCONSOLE is not set # CONFIG_NETPOLL is not set # CONFIG_NET_POLL_CONTROLLER is not set +CONFIG_IMQ=m +# CONFIG_IMQ_BEHAVIOR_AA is not set +CONFIG_IMQ_BEHAVIOR_AB=y +# CONFIG_IMQ_BEHAVIOR_BA is not set +# CONFIG_IMQ_BEHAVIOR_BB is not set +CONFIG_IMQ_NUM_DEVS=2 CONFIG_TUN=m CONFIG_VETH=m CONFIG_ATM_DRIVERS=y @@ -1314,32 +1382,48 @@ CONFIG_ATM_TCP=m # # CAIF transport drivers # + +# +# Distributed Switch Architecture drivers +# +CONFIG_NET_DSA_MV88E6XXX=y +CONFIG_NET_DSA_MV88E6060=y +CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y +CONFIG_NET_DSA_MV88E6131=y +CONFIG_NET_DSA_MV88E6123_61_65=y CONFIG_ETHERNET=y +CONFIG_NET_CADENCE=y +CONFIG_ARM_AT91_ETHER=m +CONFIG_MACB=m CONFIG_NET_VENDOR_BROADCOM=y CONFIG_B44=m -CONFIG_NET_VENDOR_CHELSIO=y +CONFIG_NET_CALXEDA_XGMAC=m +CONFIG_NET_VENDOR_CIRRUS=y +CONFIG_CS89x0=m +CONFIG_CS89x0_PLATFORM=y CONFIG_DM9000=m # CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set CONFIG_DNET=m -CONFIG_NET_VENDOR_DLINK=y -CONFIG_DE600=m -CONFIG_DE620=m CONFIG_NET_VENDOR_FARADAY=y -# CONFIG_FTMAC100 is not set -# CONFIG_FTGMAC100 is not set +CONFIG_FTMAC100=m +CONFIG_FTGMAC100=m CONFIG_NET_VENDOR_INTEL=y CONFIG_NET_VENDOR_I825XX=y CONFIG_NET_VENDOR_MARVELL=y +CONFIG_MVMDIO=m CONFIG_NET_VENDOR_MICREL=y CONFIG_KS8842=m +CONFIG_KS8851=m CONFIG_KS8851_MLL=m +CONFIG_NET_VENDOR_MICROCHIP=y +CONFIG_ENC28J60=m +# CONFIG_ENC28J60_WRITEVERIFY is not set CONFIG_NET_VENDOR_NATSEMI=y CONFIG_NET_VENDOR_8390=y CONFIG_AX88796=m CONFIG_AX88796_93CX6=y CONFIG_ETHOC=m CONFIG_NET_VENDOR_SEEQ=y -CONFIG_SEEQ8005=m CONFIG_NET_VENDOR_SMSC=y CONFIG_SMC91X=m CONFIG_SMC911X=m @@ -1347,14 +1431,21 @@ CONFIG_SMSC911X=m # CONFIG_SMSC911X_ARCH_HOOKS is not set CONFIG_NET_VENDOR_STMICRO=y CONFIG_STMMAC_ETH=m +CONFIG_STMMAC_PLATFORM=y # CONFIG_STMMAC_DA is not set -CONFIG_STMMAC_RING=y -# CONFIG_STMMAC_CHAINED is not set +CONFIG_NET_VENDOR_WIZNET=y +CONFIG_WIZNET_W5100=m +CONFIG_WIZNET_W5300=m +# CONFIG_WIZNET_BUS_DIRECT is not set +# CONFIG_WIZNET_BUS_INDIRECT is not set +CONFIG_WIZNET_BUS_ANY=y CONFIG_PHYLIB=y
# # MII PHY device drivers # +CONFIG_AT803X_PHY=m +CONFIG_AMD_PHY=m CONFIG_MARVELL_PHY=m CONFIG_DAVICOM_PHY=m CONFIG_QSEMI_PHY=m @@ -1363,6 +1454,7 @@ CONFIG_CICADA_PHY=m CONFIG_VITESSE_PHY=m CONFIG_SMSC_PHY=m CONFIG_BROADCOM_PHY=m +CONFIG_BCM87XX_PHY=m CONFIG_ICPLUS_PHY=m CONFIG_REALTEK_PHY=m CONFIG_NATIONAL_PHY=m @@ -1372,6 +1464,10 @@ CONFIG_MICREL_PHY=m # CONFIG_FIXED_PHY is not set CONFIG_MDIO_BITBANG=m CONFIG_MDIO_GPIO=m +CONFIG_MDIO_BUS_MUX=m +CONFIG_MDIO_BUS_MUX_GPIO=m +CONFIG_MDIO_BUS_MUX_MMIOREG=m +# CONFIG_MICREL_KS8995MA is not set # CONFIG_PLIP is not set CONFIG_PPP=m CONFIG_PPP_BSDCOMP=m @@ -1398,11 +1494,14 @@ CONFIG_USB_CATC=m CONFIG_USB_KAWETH=m CONFIG_USB_PEGASUS=m CONFIG_USB_RTL8150=m +CONFIG_USB_RTL8152=m CONFIG_USB_USBNET=m CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_AX88179_178A=m CONFIG_USB_NET_CDCETHER=m CONFIG_USB_NET_CDC_EEM=m CONFIG_USB_NET_CDC_NCM=m +CONFIG_USB_NET_CDC_MBIM=m CONFIG_USB_NET_DM9601=m CONFIG_USB_NET_SMSC75XX=m CONFIG_USB_NET_SMSC95XX=m @@ -1421,34 +1520,117 @@ CONFIG_USB_KC2190=y CONFIG_USB_NET_ZAURUS=m CONFIG_USB_NET_CX82310_ETH=m CONFIG_USB_NET_KALMIA=m +CONFIG_USB_NET_QMI_WWAN=m CONFIG_USB_HSO=m CONFIG_USB_NET_INT51X1=m # CONFIG_USB_IPHETH is not set CONFIG_USB_SIERRA_NET=m CONFIG_USB_VL600=m CONFIG_WLAN=y -# CONFIG_LIBERTAS_THINFIRM is not set +CONFIG_LIBERTAS_THINFIRM=m +# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set +CONFIG_LIBERTAS_THINFIRM_USB=m CONFIG_AT76C50X_USB=m CONFIG_USB_ZD1201=m CONFIG_USB_NET_RNDIS_WLAN=m -# CONFIG_RTL8187 is not set +CONFIG_RTL8187=m +CONFIG_RTL8187_LEDS=y # CONFIG_MAC80211_HWSIM is not set -# CONFIG_ATH_COMMON is not set -# CONFIG_B43 is not set -# CONFIG_B43LEGACY is not set -# CONFIG_BRCMFMAC is not set +CONFIG_ATH_COMMON=m +CONFIG_ATH_CARDS=m +# CONFIG_ATH_DEBUG is not set +CONFIG_ATH9K_HW=m +CONFIG_ATH9K_COMMON=m +CONFIG_ATH9K_BTCOEX_SUPPORT=y +CONFIG_ATH9K=m +# CONFIG_ATH9K_AHB is not set +# CONFIG_ATH9K_DEBUGFS is not set +CONFIG_ATH9K_LEGACY_RATE_CONTROL=y +CONFIG_ATH9K_HTC=m +CONFIG_CARL9170=m +CONFIG_CARL9170_LEDS=y +CONFIG_CARL9170_WPC=y +CONFIG_CARL9170_HWRNG=y +CONFIG_ATH6KL=m +CONFIG_ATH6KL_SDIO=m +CONFIG_ATH6KL_USB=m +# CONFIG_ATH6KL_DEBUG is not set +CONFIG_AR5523=m +CONFIG_B43=m +CONFIG_B43_BCMA=y +# CONFIG_B43_BCMA_EXTRA is not set +CONFIG_B43_SSB=y +# CONFIG_B43_SDIO is not set +CONFIG_B43_BCMA_PIO=y +CONFIG_B43_PIO=y +# CONFIG_B43_PHY_N is not set +CONFIG_B43_PHY_LP=y +# CONFIG_B43_PHY_HT is not set +CONFIG_B43_LEDS=y +CONFIG_B43_HWRNG=y +# CONFIG_B43_DEBUG is not set +CONFIG_B43LEGACY=m +CONFIG_B43LEGACY_LEDS=y +CONFIG_B43LEGACY_HWRNG=y +CONFIG_B43LEGACY_DEBUG=y +CONFIG_B43LEGACY_DMA=y +CONFIG_B43LEGACY_PIO=y +CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y +# CONFIG_B43LEGACY_DMA_MODE is not set +# CONFIG_B43LEGACY_PIO_MODE is not set +CONFIG_BRCMUTIL=m +CONFIG_BRCMSMAC=m +CONFIG_BRCMFMAC=m +CONFIG_BRCMFMAC_SDIO=y +# CONFIG_BRCMFMAC_USB is not set +# CONFIG_BRCM_TRACING is not set +# CONFIG_BRCMDBG is not set CONFIG_HOSTAP=m CONFIG_HOSTAP_FIRMWARE=y # CONFIG_HOSTAP_FIRMWARE_NVRAM is not set -# CONFIG_IWM is not set -# CONFIG_LIBERTAS is not set -# CONFIG_P54_COMMON is not set -# CONFIG_RT2X00 is not set -# CONFIG_WL1251 is not set -# CONFIG_WL12XX_MENU is not set -# CONFIG_ZD1211RW is not set -# CONFIG_MWIFIEX is not set -# CONFIG_RTL8192CU is not set +CONFIG_LIBERTAS=m +CONFIG_LIBERTAS_USB=m +CONFIG_LIBERTAS_SDIO=m +CONFIG_LIBERTAS_SPI=m +# CONFIG_LIBERTAS_DEBUG is not set +# CONFIG_LIBERTAS_MESH is not set +CONFIG_P54_COMMON=m +CONFIG_P54_USB=m +CONFIG_P54_SPI=m +# CONFIG_P54_SPI_DEFAULT_EEPROM is not set +CONFIG_P54_LEDS=y +CONFIG_RT2X00=m +CONFIG_RT2500USB=m +CONFIG_RT73USB=m +CONFIG_RT2800USB=m +CONFIG_RT2800USB_RT33XX=y +CONFIG_RT2800USB_RT35XX=y +CONFIG_RT2800USB_RT53XX=y +CONFIG_RT2800USB_RT55XX=y +CONFIG_RT2800USB_UNKNOWN=y +CONFIG_RT2800_LIB=m +CONFIG_RT2X00_LIB_USB=m +CONFIG_RT2X00_LIB=m +CONFIG_RT2X00_LIB_FIRMWARE=y +CONFIG_RT2X00_LIB_CRYPTO=y +CONFIG_RT2X00_LIB_LEDS=y +# CONFIG_RT2X00_DEBUG is not set +CONFIG_WL_TI=y +CONFIG_WL1251=m +# CONFIG_WL1251_SPI is not set +CONFIG_WL1251_SDIO=m +CONFIG_WL12XX=m +CONFIG_WL18XX=m +CONFIG_WLCORE=m +# CONFIG_WLCORE_SPI is not set +CONFIG_WLCORE_SDIO=m +CONFIG_WILINK_PLATFORM_DATA=y +CONFIG_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set +CONFIG_MWIFIEX=m +CONFIG_MWIFIEX_SDIO=m +CONFIG_MWIFIEX_USB=m +CONFIG_RTL8192CU=m
# # Enable WiMAX (Networking options) to see the WiMAX drivers @@ -1466,6 +1648,11 @@ CONFIG_HDLC_PPP=m # CONFIG_DLCI=m CONFIG_DLCI_MAX=8 +CONFIG_IEEE802154_DRIVERS=m +CONFIG_IEEE802154_FAKEHARD=m +CONFIG_IEEE802154_FAKELB=m +# CONFIG_IEEE802154_AT86RF230 is not set +# CONFIG_IEEE802154_MRF24J40 is not set CONFIG_ISDN=y CONFIG_ISDN_I4L=m CONFIG_ISDN_PPP=y @@ -1561,7 +1748,6 @@ CONFIG_MISDN_L1OIP=m # CONFIG_MISDN_HFCUSB=m CONFIG_ISDN_HDLC=m -# CONFIG_PHONE is not set
# # Input device support @@ -1570,6 +1756,7 @@ CONFIG_INPUT=y CONFIG_INPUT_FF_MEMLESS=m CONFIG_INPUT_POLLDEV=m CONFIG_INPUT_SPARSEKMAP=m +CONFIG_INPUT_MATRIXKMAP=m
# # Userland interfaces @@ -1579,7 +1766,7 @@ CONFIG_INPUT_MOUSEDEV=y CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 # CONFIG_INPUT_JOYDEV is not set -# CONFIG_INPUT_EVDEV is not set +CONFIG_INPUT_EVDEV=y # CONFIG_INPUT_EVBUG is not set
# @@ -1594,13 +1781,16 @@ CONFIG_KEYBOARD_QT2160=m CONFIG_KEYBOARD_LKKBD=m CONFIG_KEYBOARD_GPIO=m CONFIG_KEYBOARD_TCA6416=m +CONFIG_KEYBOARD_TCA8418=m CONFIG_KEYBOARD_MATRIX=m CONFIG_KEYBOARD_LM8323=m +CONFIG_KEYBOARD_LM8333=m CONFIG_KEYBOARD_MAX7359=m CONFIG_KEYBOARD_MCS=m CONFIG_KEYBOARD_MPR121=m CONFIG_KEYBOARD_NEWTON=m CONFIG_KEYBOARD_OPENCORES=m +CONFIG_KEYBOARD_SAMSUNG=m CONFIG_KEYBOARD_STOWAWAY=m CONFIG_KEYBOARD_SUNKBD=m CONFIG_KEYBOARD_XTKBD=m @@ -1609,23 +1799,24 @@ CONFIG_KEYBOARD_XTKBD=m # CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set CONFIG_INPUT_MISC=y -CONFIG_INPUT_88PM860X_ONKEY=m -CONFIG_INPUT_AD714X=m -CONFIG_INPUT_AD714X_I2C=m -CONFIG_INPUT_BMA150=m +# CONFIG_INPUT_AD714X is not set +# CONFIG_INPUT_BMA150 is not set # CONFIG_INPUT_MMA8450 is not set # CONFIG_INPUT_MPU3050 is not set +# CONFIG_INPUT_GP2A is not set +# CONFIG_INPUT_GPIO_TILT_POLLED is not set CONFIG_INPUT_ATI_REMOTE2=m CONFIG_INPUT_KEYSPAN_REMOTE=m # CONFIG_INPUT_KXTJ9 is not set -CONFIG_INPUT_POWERMATE=m -CONFIG_INPUT_YEALINK=m -CONFIG_INPUT_CM109=m +# CONFIG_INPUT_POWERMATE is not set +# CONFIG_INPUT_YEALINK is not set +# CONFIG_INPUT_CM109 is not set # CONFIG_INPUT_UINPUT is not set -CONFIG_INPUT_PCF50633_PMU=m -CONFIG_INPUT_PCF8574=m -CONFIG_INPUT_GPIO_ROTARY_ENCODER=m +# CONFIG_INPUT_PCF8574 is not set +CONFIG_INPUT_PWM_BEEPER=m +# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set # CONFIG_INPUT_ADXL34X is not set +# CONFIG_INPUT_IMS_PCU is not set # CONFIG_INPUT_CMA3000 is not set
# @@ -1639,11 +1830,14 @@ CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_RAW is not set CONFIG_SERIO_ALTERA_PS2=m CONFIG_SERIO_PS2MULT=m +CONFIG_SERIO_ARC_PS2=m +CONFIG_SERIO_APBPS2=m # CONFIG_GAMEPORT is not set
# # Character devices # +CONFIG_TTY=y CONFIG_VT=y CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_VT_CONSOLE=y @@ -1662,7 +1856,9 @@ CONFIG_DEVKMEM=y # Serial drivers # CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_DMA=y CONFIG_SERIAL_8250_NR_UARTS=4 CONFIG_SERIAL_8250_RUNTIME_UARTS=4 CONFIG_SERIAL_8250_EXTENDED=y @@ -1671,6 +1867,7 @@ CONFIG_SERIAL_8250_SHARE_IRQ=y CONFIG_SERIAL_8250_DETECT_IRQ=y CONFIG_SERIAL_8250_RSA=y CONFIG_SERIAL_8250_DW=m +CONFIG_SERIAL_8250_EM=m
# # Non-8250 serial port support @@ -1679,15 +1876,21 @@ CONFIG_SERIAL_AMBA_PL010=y CONFIG_SERIAL_AMBA_PL010_CONSOLE=y CONFIG_SERIAL_AMBA_PL011=y CONFIG_SERIAL_AMBA_PL011_CONSOLE=y +# CONFIG_SERIAL_MAX3100 is not set +# CONFIG_SERIAL_MAX310X is not set CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_SERIAL_SCCNXP=m CONFIG_SERIAL_TIMBERDALE=m CONFIG_SERIAL_ALTERA_JTAGUART=m CONFIG_SERIAL_ALTERA_UART=m CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4 CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200 +# CONFIG_SERIAL_IFX6X60 is not set CONFIG_SERIAL_XILINX_PS_UART=m +CONFIG_SERIAL_ARC=m +CONFIG_SERIAL_ARC_NR_PORTS=1 CONFIG_PRINTER=m # CONFIG_LP_CONSOLE is not set CONFIG_PPDEV=m @@ -1699,13 +1902,17 @@ CONFIG_IPMI_DEVICE_INTERFACE=m CONFIG_IPMI_SI=m CONFIG_IPMI_WATCHDOG=m CONFIG_IPMI_POWEROFF=m -CONFIG_HW_RANDOM=m -CONFIG_HW_RANDOM_TIMERIOMEM=m +CONFIG_HW_RANDOM=y +# CONFIG_HW_RANDOM_TIMERIOMEM is not set +# CONFIG_HW_RANDOM_ATMEL is not set +# CONFIG_HW_RANDOM_EXYNOS is not set +CONFIG_HW_RANDOM_BCM2708=y CONFIG_NVRAM=m # CONFIG_R3964 is not set # CONFIG_RAW_DRIVER is not set # CONFIG_TCG_TPM is not set -# CONFIG_RAMOOPS is not set +CONFIG_BRCM_CHAR_DRIVERS=y +CONFIG_BCM_VC_CMA=y CONFIG_I2C=y CONFIG_I2C_BOARDINFO=y CONFIG_I2C_COMPAT=y @@ -1715,6 +1922,7 @@ CONFIG_I2C_MUX=m # # Multiplexer I2C Chip support # +# CONFIG_I2C_ARB_GPIO_CHALLENGE is not set CONFIG_I2C_MUX_GPIO=m CONFIG_I2C_MUX_PCA9541=m CONFIG_I2C_MUX_PCA954x=m @@ -1732,9 +1940,11 @@ CONFIG_I2C_ALGOPCA=m # CONFIG_I2C_BCM2708=m CONFIG_I2C_BCM2708_BAUDRATE=100000 +CONFIG_I2C_CBUS_GPIO=m CONFIG_I2C_DESIGNWARE_CORE=m CONFIG_I2C_DESIGNWARE_PLATFORM=m CONFIG_I2C_GPIO=m +CONFIG_I2C_NOMADIK=m CONFIG_I2C_OCORES=m CONFIG_I2C_PCA_PLATFORM=m # CONFIG_I2C_PXA_PCI is not set @@ -1757,7 +1967,45 @@ CONFIG_I2C_STUB=m # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set -# CONFIG_SPI is not set +CONFIG_SPI=y +# CONFIG_SPI_DEBUG is not set +CONFIG_SPI_MASTER=y + +# +# SPI Master Controller Drivers +# +# CONFIG_SPI_ALTERA is not set +CONFIG_SPI_BCM2708=m +CONFIG_SPI_BITBANG=m +# CONFIG_SPI_BUTTERFLY is not set +CONFIG_SPI_GPIO=m +# CONFIG_SPI_LM70_LLP is not set +# CONFIG_SPI_FSL_SPI is not set +CONFIG_SPI_OC_TINY=m +CONFIG_SPI_PL022=m +# CONFIG_SPI_PXA2XX_PCI is not set +# CONFIG_SPI_SC18IS602 is not set +# CONFIG_SPI_XCOMM is not set +# CONFIG_SPI_XILINX is not set +# CONFIG_SPI_DESIGNWARE is not set + +# +# SPI Protocol Masters +# +# CONFIG_SPI_SPIDEV is not set +# CONFIG_SPI_TLE62X0 is not set + +# +# Qualcomm MSM SSBI bus support +# +# CONFIG_SSBI is not set +CONFIG_HSI=m +CONFIG_HSI_BOARDINFO=y + +# +# HSI clients +# +CONFIG_HSI_CHAR=m
# # PPS support @@ -1781,9 +2029,13 @@ CONFIG_PPS=m # PTP clock support # CONFIG_PTP_1588_CLOCK=m -CONFIG_DP83640_PHY=m +# CONFIG_DP83640_PHY is not set +# CONFIG_PTP_1588_CLOCK_PCH is not set +CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y CONFIG_ARCH_REQUIRE_GPIOLIB=y +CONFIG_GPIO_DEVRES=y CONFIG_GPIOLIB=y +CONFIG_OF_GPIO=y # CONFIG_DEBUG_GPIO is not set CONFIG_GPIO_SYSFS=y CONFIG_GPIO_GENERIC=m @@ -1793,8 +2045,11 @@ CONFIG_GPIO_MAX730X=m # Memory mapped GPIO drivers: # CONFIG_GPIO_GENERIC_PLATFORM=m -CONFIG_GPIO_IT8761E=m +# CONFIG_GPIO_EM is not set CONFIG_GPIO_PL061=y +CONFIG_GPIO_RCAR=m +CONFIG_GPIO_TS5500=m +CONFIG_GPIO_GRGPIO=m
# # I2C GPIO expanders: @@ -1804,6 +2059,7 @@ CONFIG_GPIO_MAX732X=m CONFIG_GPIO_PCF857X=m # CONFIG_GPIO_SX150X is not set CONFIG_GPIO_ADP5588=m +CONFIG_GPIO_ADNP=m
# # PCI GPIO expanders: @@ -1812,16 +2068,22 @@ CONFIG_GPIO_ADP5588=m # # SPI GPIO expanders: # +CONFIG_GPIO_MAX7301=m CONFIG_GPIO_MCP23S08=m +CONFIG_GPIO_MC33880=m +CONFIG_GPIO_74X164=m
# # AC97 GPIO expanders: # -# CONFIG_GPIO_UCB1400 is not set
# # MODULbus GPIO expanders: # + +# +# USB GPIO expanders: +# CONFIG_W1=m CONFIG_W1_CON=y
@@ -1839,28 +2101,40 @@ CONFIG_W1_MASTER_GPIO=m CONFIG_W1_SLAVE_THERM=m CONFIG_W1_SLAVE_SMEM=m CONFIG_W1_SLAVE_DS2408=m +CONFIG_W1_SLAVE_DS2408_READBACK=y +CONFIG_W1_SLAVE_DS2413=m CONFIG_W1_SLAVE_DS2423=m CONFIG_W1_SLAVE_DS2431=m CONFIG_W1_SLAVE_DS2433=m CONFIG_W1_SLAVE_DS2433_CRC=y CONFIG_W1_SLAVE_DS2760=m CONFIG_W1_SLAVE_DS2780=m +CONFIG_W1_SLAVE_DS2781=m +CONFIG_W1_SLAVE_DS28E04=m CONFIG_W1_SLAVE_BQ27000=m CONFIG_POWER_SUPPLY=y # CONFIG_POWER_SUPPLY_DEBUG is not set # CONFIG_PDA_POWER is not set +# CONFIG_GENERIC_ADC_BATTERY is not set # CONFIG_TEST_POWER is not set # CONFIG_BATTERY_DS2760 is not set # CONFIG_BATTERY_DS2780 is not set +# CONFIG_BATTERY_DS2781 is not set # CONFIG_BATTERY_DS2782 is not set -# CONFIG_BATTERY_BQ20Z75 is not set +# CONFIG_BATTERY_SBS is not set # CONFIG_BATTERY_BQ27x00 is not set # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set -# CONFIG_CHARGER_PCF50633 is not set -# CONFIG_CHARGER_ISP1704 is not set # CONFIG_CHARGER_MAX8903 is not set +# CONFIG_CHARGER_LP8727 is not set # CONFIG_CHARGER_GPIO is not set +# CONFIG_CHARGER_MANAGER is not set +# CONFIG_CHARGER_BQ2415X is not set +# CONFIG_CHARGER_SMB347 is not set +# CONFIG_BATTERY_GOLDFISH is not set +# CONFIG_POWER_RESET is not set +# CONFIG_POWER_RESET_RESTART is not set +# CONFIG_POWER_AVS is not set CONFIG_HWMON=m CONFIG_HWMON_VID=m # CONFIG_HWMON_DEBUG_CHIP is not set @@ -1868,14 +2142,19 @@ CONFIG_HWMON_VID=m # # Native drivers # +CONFIG_SENSORS_AD7314=m CONFIG_SENSORS_AD7414=m CONFIG_SENSORS_AD7418=m +CONFIG_SENSORS_ADCXX=m CONFIG_SENSORS_ADM1021=m CONFIG_SENSORS_ADM1025=m CONFIG_SENSORS_ADM1026=m CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM9240=m +CONFIG_SENSORS_ADT7X10=m +CONFIG_SENSORS_ADT7310=m +CONFIG_SENSORS_ADT7410=m CONFIG_SENSORS_ADT7411=m CONFIG_SENSORS_ADT7462=m CONFIG_SENSORS_ADT7470=m @@ -1891,12 +2170,15 @@ CONFIG_SENSORS_G760A=m CONFIG_SENSORS_GL518SM=m CONFIG_SENSORS_GL520SM=m CONFIG_SENSORS_GPIO_FAN=m +CONFIG_SENSORS_HIH6130=m CONFIG_SENSORS_IBMAEM=m CONFIG_SENSORS_IBMPEX=m +CONFIG_SENSORS_IIO_HWMON=m CONFIG_SENSORS_IT87=m CONFIG_SENSORS_JC42=m CONFIG_SENSORS_LINEAGE=m CONFIG_SENSORS_LM63=m +CONFIG_SENSORS_LM70=m CONFIG_SENSORS_LM73=m CONFIG_SENSORS_LM75=m CONFIG_SENSORS_LM77=m @@ -1912,14 +2194,20 @@ CONFIG_SENSORS_LTC4151=m CONFIG_SENSORS_LTC4215=m CONFIG_SENSORS_LTC4245=m CONFIG_SENSORS_LTC4261=m +CONFIG_SENSORS_LM95234=m CONFIG_SENSORS_LM95241=m CONFIG_SENSORS_LM95245=m +CONFIG_SENSORS_MAX1111=m CONFIG_SENSORS_MAX16065=m CONFIG_SENSORS_MAX1619=m CONFIG_SENSORS_MAX1668=m +CONFIG_SENSORS_MAX197=m CONFIG_SENSORS_MAX6639=m CONFIG_SENSORS_MAX6642=m CONFIG_SENSORS_MAX6650=m +CONFIG_SENSORS_MAX6697=m +CONFIG_SENSORS_MCP3021=m +CONFIG_SENSORS_NCT6775=m CONFIG_SENSORS_NTC_THERMISTOR=m CONFIG_SENSORS_PC87360=m CONFIG_SENSORS_PC87427=m @@ -1950,7 +2238,10 @@ CONFIG_SENSORS_SCH5627=m CONFIG_SENSORS_SCH5636=m CONFIG_SENSORS_ADS1015=m CONFIG_SENSORS_ADS7828=m +CONFIG_SENSORS_ADS7871=m CONFIG_SENSORS_AMC6821=m +CONFIG_SENSORS_INA209=m +CONFIG_SENSORS_INA2XX=m CONFIG_SENSORS_THMC50=m CONFIG_SENSORS_TMP102=m CONFIG_SENSORS_TMP401=m @@ -1967,6 +2258,14 @@ CONFIG_SENSORS_W83L786NG=m CONFIG_SENSORS_W83627HF=m CONFIG_SENSORS_W83627EHF=m CONFIG_THERMAL=y +CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y +# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set +# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set +CONFIG_THERMAL_GOV_FAIR_SHARE=y +CONFIG_THERMAL_GOV_STEP_WISE=y +CONFIG_THERMAL_GOV_USER_SPACE=y +CONFIG_CPU_THERMAL=y +# CONFIG_THERMAL_EMULATION is not set CONFIG_THERMAL_BCM2835=y CONFIG_WATCHDOG=y CONFIG_WATCHDOG_CORE=y @@ -1976,9 +2275,9 @@ CONFIG_WATCHDOG_CORE=y # Watchdog Device Drivers # CONFIG_SOFT_WATCHDOG=m -CONFIG_ARM_SP805_WATCHDOG=m -CONFIG_DW_WATCHDOG=m -CONFIG_MAX63XX_WATCHDOG=m +# CONFIG_ARM_SP805_WATCHDOG is not set +# CONFIG_DW_WATCHDOG is not set +# CONFIG_MAX63XX_WATCHDOG is not set CONFIG_BCM2708_WDT=m
# @@ -1991,57 +2290,92 @@ CONFIG_SSB_POSSIBLE=y # Sonics Silicon Backplane # CONFIG_SSB=m +CONFIG_SSB_BLOCKIO=y CONFIG_SSB_SDIOHOST_POSSIBLE=y CONFIG_SSB_SDIOHOST=y # CONFIG_SSB_DEBUG is not set +CONFIG_SSB_DRIVER_GPIO=y CONFIG_BCMA_POSSIBLE=y
# # Broadcom specific AMBA # -CONFIG_BCMA=m +CONFIG_BCMA=y +CONFIG_BCMA_BLOCKIO=y +CONFIG_BCMA_DRIVER_GMAC_CMN=y +CONFIG_BCMA_DRIVER_GPIO=y # CONFIG_BCMA_DEBUG is not set
# # Multifunction device drivers # -CONFIG_MFD_CORE=y -CONFIG_MFD_88PM860X=y -CONFIG_MFD_SM501=m -# CONFIG_MFD_SM501_GPIO is not set +CONFIG_MFD_CORE=m +# CONFIG_MFD_AS3711 is not set +# CONFIG_PMIC_ADP5520 is not set +# CONFIG_MFD_AAT2870_CORE is not set +# CONFIG_MFD_CROS_EC is not set # CONFIG_MFD_ASIC3 is not set +# CONFIG_PMIC_DA903X is not set +# CONFIG_MFD_DA9052_SPI is not set +# CONFIG_MFD_DA9052_I2C is not set +# CONFIG_MFD_DA9055 is not set +# CONFIG_MFD_MC13XXX_SPI is not set +# CONFIG_MFD_MC13XXX_I2C is not set # CONFIG_HTC_EGPIO is not set -CONFIG_HTC_PASIC3=m +# CONFIG_HTC_PASIC3 is not set # CONFIG_HTC_I2CPLD is not set -CONFIG_UCB1400_CORE=m -CONFIG_TPS6105X=m -CONFIG_TPS65010=m -CONFIG_TPS6507X=m +# CONFIG_MFD_88PM800 is not set +# CONFIG_MFD_88PM805 is not set +# CONFIG_MFD_88PM860X is not set +# CONFIG_MFD_MAX77686 is not set +# CONFIG_MFD_MAX77693 is not set +# CONFIG_MFD_MAX8907 is not set +# CONFIG_MFD_MAX8925 is not set +# CONFIG_MFD_MAX8997 is not set +# CONFIG_MFD_MAX8998 is not set +# CONFIG_EZX_PCAP is not set +# CONFIG_MFD_VIPERBOARD is not set +# CONFIG_MFD_RETU is not set +# CONFIG_MFD_PCF50633 is not set +# CONFIG_UCB1400_CORE is not set +# CONFIG_MFD_RC5T583 is not set +# CONFIG_MFD_SEC_CORE is not set +# CONFIG_MFD_SI476X_CORE is not set +# CONFIG_MFD_SM501 is not set +# CONFIG_MFD_SMSC is not set +# CONFIG_ABX500_CORE is not set +# CONFIG_MFD_STMPE is not set +# CONFIG_MFD_SYSCON is not set +# CONFIG_MFD_TI_AM335X_TSCADC is not set +# CONFIG_MFD_LP8788 is not set +# CONFIG_MFD_PALMAS is not set +# CONFIG_TPS6105X is not set +# CONFIG_TPS65010 is not set +# CONFIG_TPS6507X is not set +# CONFIG_MFD_TPS65090 is not set +# CONFIG_MFD_TPS65217 is not set # CONFIG_MFD_TPS6586X is not set # CONFIG_MFD_TPS65910 is not set +# CONFIG_MFD_TPS65912 is not set # CONFIG_MFD_TPS65912_I2C is not set +# CONFIG_MFD_TPS65912_SPI is not set +# CONFIG_MFD_TPS80031 is not set # CONFIG_TWL4030_CORE is not set -# CONFIG_MFD_STMPE is not set +# CONFIG_TWL6040_CORE is not set +# CONFIG_MFD_WL1273_CORE is not set +# CONFIG_MFD_LM3533 is not set # CONFIG_MFD_TC3589X is not set # CONFIG_MFD_TMIO is not set # CONFIG_MFD_T7L66XB is not set # CONFIG_MFD_TC6387XB is not set # CONFIG_MFD_TC6393XB is not set -# CONFIG_PMIC_DA903X is not set -# CONFIG_PMIC_ADP5520 is not set -# CONFIG_MFD_MAX8925 is not set -# CONFIG_MFD_MAX8997 is not set -# CONFIG_MFD_MAX8998 is not set -CONFIG_MFD_WM8400=m +# CONFIG_MFD_ARIZONA_I2C is not set +# CONFIG_MFD_ARIZONA_SPI is not set +# CONFIG_MFD_WM8400 is not set # CONFIG_MFD_WM831X_I2C is not set +# CONFIG_MFD_WM831X_SPI is not set # CONFIG_MFD_WM8350_I2C is not set # CONFIG_MFD_WM8994 is not set -CONFIG_MFD_PCF50633=m -CONFIG_PCF50633_ADC=m -CONFIG_PCF50633_GPIO=m -# CONFIG_ABX500_CORE is not set -CONFIG_MFD_WL1273_CORE=m -# CONFIG_MFD_AAT2870_CORE is not set CONFIG_REGULATOR=y # CONFIG_REGULATOR_DEBUG is not set # CONFIG_REGULATOR_DUMMY is not set @@ -2049,265 +2383,439 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=m # CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set # CONFIG_REGULATOR_USERSPACE_CONSUMER is not set CONFIG_REGULATOR_GPIO=m -# CONFIG_REGULATOR_BQ24022 is not set +# CONFIG_REGULATOR_AD5398 is not set +# CONFIG_REGULATOR_FAN53555 is not set +# CONFIG_REGULATOR_ISL6271A is not set # CONFIG_REGULATOR_MAX1586 is not set # CONFIG_REGULATOR_MAX8649 is not set # CONFIG_REGULATOR_MAX8660 is not set # CONFIG_REGULATOR_MAX8952 is not set -# CONFIG_REGULATOR_WM8400 is not set -# CONFIG_REGULATOR_PCF50633 is not set +# CONFIG_REGULATOR_MAX8973 is not set # CONFIG_REGULATOR_LP3971 is not set # CONFIG_REGULATOR_LP3972 is not set -# CONFIG_REGULATOR_TPS6105X is not set +# CONFIG_REGULATOR_LP872X is not set +# CONFIG_REGULATOR_LP8755 is not set +# CONFIG_REGULATOR_TPS51632 is not set +# CONFIG_REGULATOR_TPS62360 is not set # CONFIG_REGULATOR_TPS65023 is not set # CONFIG_REGULATOR_TPS6507X is not set -# CONFIG_REGULATOR_88PM8607 is not set -# CONFIG_REGULATOR_ISL6271A is not set -# CONFIG_REGULATOR_AD5398 is not set +# CONFIG_REGULATOR_TPS6524X is not set CONFIG_MEDIA_SUPPORT=m
# # Multimedia core support # +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_ANALOG_TV_SUPPORT=y +CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y +CONFIG_MEDIA_RADIO_SUPPORT=y +CONFIG_MEDIA_RC_SUPPORT=y CONFIG_MEDIA_CONTROLLER=y CONFIG_VIDEO_DEV=m -CONFIG_VIDEO_V4L2_COMMON=m CONFIG_VIDEO_V4L2_SUBDEV_API=y +CONFIG_VIDEO_V4L2=m +# CONFIG_VIDEO_ADV_DEBUG is not set +# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set +CONFIG_VIDEO_TUNER=m +CONFIG_VIDEOBUF_GEN=m +CONFIG_VIDEOBUF_VMALLOC=m +CONFIG_VIDEOBUF_DVB=m +CONFIG_VIDEOBUF2_CORE=m +CONFIG_VIDEOBUF2_MEMOPS=m +CONFIG_VIDEOBUF2_VMALLOC=m +CONFIG_VIDEO_V4L2_INT_DEVICE=m CONFIG_DVB_CORE=m CONFIG_DVB_NET=y -CONFIG_VIDEO_MEDIA=m +CONFIG_TTPCI_EEPROM=m +CONFIG_DVB_MAX_ADAPTERS=8 +# CONFIG_DVB_DYNAMIC_MINORS is not set
# -# Multimedia drivers +# Media drivers # CONFIG_RC_CORE=m -CONFIG_LIRC=m CONFIG_RC_MAP=m -# CONFIG_IR_NEC_DECODER is not set -# CONFIG_IR_RC5_DECODER is not set -# CONFIG_IR_RC6_DECODER is not set -# CONFIG_IR_JVC_DECODER is not set -# CONFIG_IR_SONY_DECODER is not set -# CONFIG_IR_RC5_SZ_DECODER is not set -# CONFIG_IR_MCE_KBD_DECODER is not set -# CONFIG_IR_LIRC_CODEC is not set -# CONFIG_RC_ATI_REMOTE is not set -# CONFIG_IR_IMON is not set -# CONFIG_IR_MCEUSB is not set -# CONFIG_IR_REDRAT3 is not set -# CONFIG_IR_STREAMZAP is not set -# CONFIG_RC_LOOPBACK is not set -CONFIG_MEDIA_ATTACH=y -CONFIG_MEDIA_TUNER=m -# CONFIG_MEDIA_TUNER_CUSTOMISE is not set -CONFIG_MEDIA_TUNER_SIMPLE=m -CONFIG_MEDIA_TUNER_TDA8290=m -CONFIG_MEDIA_TUNER_TDA827X=m -CONFIG_MEDIA_TUNER_TDA18271=m -CONFIG_MEDIA_TUNER_TDA9887=m -CONFIG_MEDIA_TUNER_TEA5761=m -CONFIG_MEDIA_TUNER_TEA5767=m -CONFIG_MEDIA_TUNER_MT20XX=m -CONFIG_MEDIA_TUNER_XC2028=m -CONFIG_MEDIA_TUNER_XC5000=m -CONFIG_MEDIA_TUNER_XC4000=m -CONFIG_MEDIA_TUNER_MC44S803=m -CONFIG_VIDEO_V4L2=m -CONFIG_VIDEO_CAPTURE_DRIVERS=y -# CONFIG_VIDEO_ADV_DEBUG is not set -# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set -# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set -CONFIG_VIDEO_IR_I2C=m +CONFIG_RC_DECODERS=y +CONFIG_LIRC=m +CONFIG_IR_LIRC_CODEC=m +CONFIG_IR_NEC_DECODER=m +CONFIG_IR_RC5_DECODER=m +CONFIG_IR_RC6_DECODER=m +CONFIG_IR_JVC_DECODER=m +CONFIG_IR_SONY_DECODER=m +CONFIG_IR_RC5_SZ_DECODER=m +CONFIG_IR_SANYO_DECODER=m +CONFIG_IR_MCE_KBD_DECODER=m +CONFIG_RC_DEVICES=y +CONFIG_RC_ATI_REMOTE=m +CONFIG_IR_IMON=m +CONFIG_IR_MCEUSB=m +CONFIG_IR_REDRAT3=m +CONFIG_IR_STREAMZAP=m +CONFIG_IR_IGUANA=m +CONFIG_IR_TTUSBIR=m +CONFIG_RC_LOOPBACK=m +CONFIG_IR_GPIO_CIR=m +CONFIG_MEDIA_USB_SUPPORT=y + +# +# Webcam devices +# +CONFIG_USB_VIDEO_CLASS=m +CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y +CONFIG_USB_GSPCA=m +CONFIG_USB_M5602=m +CONFIG_USB_STV06XX=m +CONFIG_USB_GL860=m +CONFIG_USB_GSPCA_BENQ=m +CONFIG_USB_GSPCA_CONEX=m +CONFIG_USB_GSPCA_CPIA1=m +CONFIG_USB_GSPCA_ETOMS=m +CONFIG_USB_GSPCA_FINEPIX=m +CONFIG_USB_GSPCA_JEILINJ=m +CONFIG_USB_GSPCA_JL2005BCD=m +CONFIG_USB_GSPCA_KINECT=m +CONFIG_USB_GSPCA_KONICA=m +CONFIG_USB_GSPCA_MARS=m +CONFIG_USB_GSPCA_MR97310A=m +CONFIG_USB_GSPCA_NW80X=m +CONFIG_USB_GSPCA_OV519=m +CONFIG_USB_GSPCA_OV534=m +CONFIG_USB_GSPCA_OV534_9=m +CONFIG_USB_GSPCA_PAC207=m +CONFIG_USB_GSPCA_PAC7302=m +CONFIG_USB_GSPCA_PAC7311=m +CONFIG_USB_GSPCA_SE401=m +CONFIG_USB_GSPCA_SN9C2028=m +CONFIG_USB_GSPCA_SN9C20X=m +CONFIG_USB_GSPCA_SONIXB=m +CONFIG_USB_GSPCA_SONIXJ=m +CONFIG_USB_GSPCA_SPCA500=m +CONFIG_USB_GSPCA_SPCA501=m +CONFIG_USB_GSPCA_SPCA505=m +CONFIG_USB_GSPCA_SPCA506=m +CONFIG_USB_GSPCA_SPCA508=m +CONFIG_USB_GSPCA_SPCA561=m +CONFIG_USB_GSPCA_SPCA1528=m +CONFIG_USB_GSPCA_SQ905=m +CONFIG_USB_GSPCA_SQ905C=m +CONFIG_USB_GSPCA_SQ930X=m +CONFIG_USB_GSPCA_STK014=m +CONFIG_USB_GSPCA_STV0680=m +CONFIG_USB_GSPCA_SUNPLUS=m +CONFIG_USB_GSPCA_T613=m +CONFIG_USB_GSPCA_TOPRO=m +CONFIG_USB_GSPCA_TV8532=m +CONFIG_USB_GSPCA_VC032X=m +CONFIG_USB_GSPCA_VICAM=m +CONFIG_USB_GSPCA_XIRLINK_CIT=m +CONFIG_USB_GSPCA_ZC3XX=m +CONFIG_USB_PWC=m +# CONFIG_USB_PWC_DEBUG is not set +CONFIG_USB_PWC_INPUT_EVDEV=y +CONFIG_VIDEO_CPIA2=m +CONFIG_USB_ZR364XX=m +CONFIG_USB_STKWEBCAM=m +CONFIG_USB_S2255=m +CONFIG_USB_SN9C102=m + +# +# Analog TV USB devices +# +CONFIG_VIDEO_PVRUSB2=m +CONFIG_VIDEO_PVRUSB2_SYSFS=y +CONFIG_VIDEO_PVRUSB2_DVB=y +# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set +CONFIG_VIDEO_HDPVR=m +CONFIG_VIDEO_TLG2300=m +CONFIG_VIDEO_USBVISION=m +CONFIG_VIDEO_STK1160=m +CONFIG_VIDEO_STK1160_AC97=y + +# +# Analog/digital TV USB devices +# +CONFIG_VIDEO_AU0828=m +CONFIG_VIDEO_AU0828_V4L2=y +CONFIG_VIDEO_CX231XX=m +# CONFIG_VIDEO_CX231XX_RC is not set +CONFIG_VIDEO_CX231XX_ALSA=m +CONFIG_VIDEO_CX231XX_DVB=m +CONFIG_VIDEO_TM6000=m +CONFIG_VIDEO_TM6000_ALSA=m +CONFIG_VIDEO_TM6000_DVB=m + +# +# Digital TV USB devices +# +CONFIG_DVB_USB=m +# CONFIG_DVB_USB_DEBUG is not set +CONFIG_DVB_USB_A800=m +CONFIG_DVB_USB_DIBUSB_MB=m +# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set +CONFIG_DVB_USB_DIBUSB_MC=m +CONFIG_DVB_USB_DIB0700=m +CONFIG_DVB_USB_UMT_010=m +CONFIG_DVB_USB_CXUSB=m +CONFIG_DVB_USB_M920X=m +CONFIG_DVB_USB_DIGITV=m +CONFIG_DVB_USB_VP7045=m +CONFIG_DVB_USB_VP702X=m +CONFIG_DVB_USB_GP8PSK=m +CONFIG_DVB_USB_NOVA_T_USB2=m +CONFIG_DVB_USB_TTUSB2=m +CONFIG_DVB_USB_DTT200U=m +CONFIG_DVB_USB_OPERA1=m +CONFIG_DVB_USB_AF9005=m +CONFIG_DVB_USB_AF9005_REMOTE=m +CONFIG_DVB_USB_PCTV452E=m +CONFIG_DVB_USB_DW2102=m +CONFIG_DVB_USB_CINERGY_T2=m +CONFIG_DVB_USB_DTV5100=m +CONFIG_DVB_USB_FRIIO=m +CONFIG_DVB_USB_AZ6027=m +CONFIG_DVB_USB_TECHNISAT_USB2=m +CONFIG_DVB_USB_V2=m +CONFIG_DVB_USB_AF9015=m +CONFIG_DVB_USB_AF9035=m +CONFIG_DVB_USB_ANYSEE=m +CONFIG_DVB_USB_AU6610=m +CONFIG_DVB_USB_AZ6007=m +CONFIG_DVB_USB_CE6230=m +CONFIG_DVB_USB_EC168=m +CONFIG_DVB_USB_GL861=m +CONFIG_DVB_USB_IT913X=m +CONFIG_DVB_USB_LME2510=m +CONFIG_DVB_USB_MXL111SF=m +CONFIG_DVB_USB_RTL28XXU=m +CONFIG_DVB_USB_DVBSKY=m +CONFIG_SMS_USB_DRV=m +CONFIG_DVB_B2C2_FLEXCOP_USB=m +CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG=y + +# +# Webcam, TV (analog/digital) USB devices +# +CONFIG_VIDEO_EM28XX=m +CONFIG_VIDEO_EM28XX_ALSA=m +CONFIG_VIDEO_EM28XX_DVB=m +CONFIG_VIDEO_EM28XX_RC=m +CONFIG_V4L_PLATFORM_DRIVERS=y +# CONFIG_VIDEO_TIMBERDALE is not set +# CONFIG_SOC_CAMERA is not set +CONFIG_VIDEO_BCM2835=y +CONFIG_VIDEO_BCM2835_MMAL=m +# CONFIG_V4L_MEM2MEM_DRIVERS is not set +# CONFIG_V4L_TEST_DRIVERS is not set + +# +# Supported MMC/SDIO adapters +# +# CONFIG_SMS_SDIO_DRV is not set +# CONFIG_MEDIA_PARPORT_SUPPORT is not set +# CONFIG_RADIO_ADAPTERS is not set +CONFIG_MEDIA_COMMON_OPTIONS=y + +# +# common driver options +# +CONFIG_VIDEO_CX2341X=m +CONFIG_VIDEO_TVEEPROM=m +CONFIG_CYPRESS_FIRMWARE=m +CONFIG_DVB_B2C2_FLEXCOP=m +CONFIG_DVB_B2C2_FLEXCOP_DEBUG=y +CONFIG_SMS_SIANO_MDTV=m +CONFIG_SMS_SIANO_RC=y
# -# Encoders, decoders, sensors and other helper chips +# Media ancillary drivers (tuners, sensors, i2c, frontends) # +CONFIG_MEDIA_SUBDRV_AUTOSELECT=y +CONFIG_MEDIA_ATTACH=y +CONFIG_VIDEO_IR_I2C=m
# # Audio decoders, processors and mixers # -# CONFIG_VIDEO_TVAUDIO is not set -# CONFIG_VIDEO_TDA7432 is not set -# CONFIG_VIDEO_TDA9840 is not set -# CONFIG_VIDEO_TEA6415C is not set -# CONFIG_VIDEO_TEA6420 is not set -# CONFIG_VIDEO_MSP3400 is not set -# CONFIG_VIDEO_CS5345 is not set -# CONFIG_VIDEO_CS53L32A is not set -# CONFIG_VIDEO_TLV320AIC23B is not set -# CONFIG_VIDEO_WM8775 is not set -# CONFIG_VIDEO_WM8739 is not set -# CONFIG_VIDEO_VP27SMPX is not set +CONFIG_VIDEO_MSP3400=m +CONFIG_VIDEO_CS53L32A=m +CONFIG_VIDEO_WM8775=m
# # RDS decoders # -# CONFIG_VIDEO_SAA6588 is not set
# # Video decoders # -# CONFIG_VIDEO_ADV7180 is not set -# CONFIG_VIDEO_BT819 is not set -# CONFIG_VIDEO_BT856 is not set -# CONFIG_VIDEO_BT866 is not set -# CONFIG_VIDEO_KS0127 is not set -# CONFIG_VIDEO_SAA7110 is not set -# CONFIG_VIDEO_SAA711X is not set -# CONFIG_VIDEO_SAA7191 is not set -# CONFIG_VIDEO_TVP514X is not set -# CONFIG_VIDEO_TVP5150 is not set -# CONFIG_VIDEO_TVP7002 is not set -# CONFIG_VIDEO_VPX3220 is not set +CONFIG_VIDEO_SAA711X=m +CONFIG_VIDEO_TVP5150=m
# # Video and audio decoders # -# CONFIG_VIDEO_SAA717X is not set -# CONFIG_VIDEO_CX25840 is not set - -# -# MPEG video encoders -# -# CONFIG_VIDEO_CX2341X is not set +CONFIG_VIDEO_CX25840=m
# # Video encoders # -# CONFIG_VIDEO_SAA7127 is not set -# CONFIG_VIDEO_SAA7185 is not set -# CONFIG_VIDEO_ADV7170 is not set -# CONFIG_VIDEO_ADV7175 is not set -# CONFIG_VIDEO_ADV7343 is not set -# CONFIG_VIDEO_AK881X is not set
# # Camera sensor devices # -# CONFIG_VIDEO_OV7670 is not set -# CONFIG_VIDEO_MT9P031 is not set -# CONFIG_VIDEO_MT9T001 is not set -# CONFIG_VIDEO_MT9V011 is not set -# CONFIG_VIDEO_MT9V032 is not set -# CONFIG_VIDEO_TCM825X is not set -# CONFIG_VIDEO_SR030PC30 is not set -# CONFIG_VIDEO_NOON010PC30 is not set -# CONFIG_VIDEO_M5MOLS is not set -# CONFIG_VIDEO_S5K6AA is not set +CONFIG_VIDEO_MT9V011=m
# # Flash devices # -# CONFIG_VIDEO_ADP1653 is not set
# # Video improvement chips # -# CONFIG_VIDEO_UPD64031A is not set -# CONFIG_VIDEO_UPD64083 is not set
# # Miscelaneous helper chips # -# CONFIG_VIDEO_THS7303 is not set -# CONFIG_VIDEO_M52790 is not set -# CONFIG_VIDEO_VIVI is not set -# CONFIG_VIDEO_BWQCAM is not set -# CONFIG_VIDEO_CQCAM is not set -# CONFIG_VIDEO_W9966 is not set -# CONFIG_VIDEO_CPIA2 is not set -# CONFIG_VIDEO_TIMBERDALE is not set -# CONFIG_VIDEO_AU0828 is not set -# CONFIG_SOC_CAMERA is not set -CONFIG_V4L_USB_DRIVERS=y -# CONFIG_USB_VIDEO_CLASS is not set -CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y -# CONFIG_USB_GSPCA is not set -# CONFIG_VIDEO_PVRUSB2 is not set -# CONFIG_VIDEO_HDPVR is not set -# CONFIG_VIDEO_EM28XX is not set -# CONFIG_VIDEO_TLG2300 is not set -# CONFIG_VIDEO_CX231XX is not set -# CONFIG_VIDEO_TM6000 is not set -# CONFIG_VIDEO_USBVISION is not set -# CONFIG_USB_ET61X251 is not set -# CONFIG_USB_SN9C102 is not set -# CONFIG_USB_PWC is not set -# CONFIG_USB_ZR364XX is not set -# CONFIG_USB_STKWEBCAM is not set -# CONFIG_USB_S2255 is not set -# CONFIG_V4L_MEM2MEM_DRIVERS is not set -CONFIG_RADIO_ADAPTERS=y -# CONFIG_I2C_SI4713 is not set -# CONFIG_RADIO_SI4713 is not set -# CONFIG_USB_DSBR is not set -# CONFIG_RADIO_SI470X is not set -# CONFIG_USB_MR800 is not set -# CONFIG_RADIO_TEA5764 is not set -# CONFIG_RADIO_SAA7706H is not set -# CONFIG_RADIO_TEF6862 is not set -# CONFIG_RADIO_WL1273 is not set - -# -# Texas Instruments WL128x FM driver (ST based) -# -# CONFIG_RADIO_WL128X is not set -CONFIG_DVB_MAX_ADAPTERS=8 -# CONFIG_DVB_DYNAMIC_MINORS is not set -CONFIG_DVB_CAPTURE_DRIVERS=y -# CONFIG_TTPCI_EEPROM is not set
# -# Supported USB Adapters +# Sensors used on soc_camera driver # -# CONFIG_DVB_USB is not set -# CONFIG_SMS_SIANO_MDTV is not set - -# -# Supported FlexCopII (B2C2) Adapters -# -# CONFIG_DVB_B2C2_FLEXCOP is not set - -# -# Supported DVB Frontends -# -# CONFIG_DVB_FE_CUSTOMISE is not set +CONFIG_MEDIA_TUNER=m +CONFIG_MEDIA_TUNER_SIMPLE=m +CONFIG_MEDIA_TUNER_TDA8290=m +CONFIG_MEDIA_TUNER_TDA827X=m +CONFIG_MEDIA_TUNER_TDA18271=m +CONFIG_MEDIA_TUNER_TDA9887=m +CONFIG_MEDIA_TUNER_TEA5761=m +CONFIG_MEDIA_TUNER_TEA5767=m +CONFIG_MEDIA_TUNER_MT20XX=m +CONFIG_MEDIA_TUNER_MT2060=m +CONFIG_MEDIA_TUNER_MT2063=m +CONFIG_MEDIA_TUNER_MT2266=m +CONFIG_MEDIA_TUNER_QT1010=m +CONFIG_MEDIA_TUNER_XC2028=m +CONFIG_MEDIA_TUNER_XC5000=m +CONFIG_MEDIA_TUNER_XC4000=m +CONFIG_MEDIA_TUNER_MXL5005S=m +CONFIG_MEDIA_TUNER_MXL5007T=m +CONFIG_MEDIA_TUNER_MC44S803=m +CONFIG_MEDIA_TUNER_MAX2165=m +CONFIG_MEDIA_TUNER_TDA18218=m +CONFIG_MEDIA_TUNER_FC0011=m +CONFIG_MEDIA_TUNER_FC0012=m +CONFIG_MEDIA_TUNER_FC0013=m +CONFIG_MEDIA_TUNER_TDA18212=m +CONFIG_MEDIA_TUNER_E4000=m +CONFIG_MEDIA_TUNER_FC2580=m +CONFIG_MEDIA_TUNER_TUA9001=m +CONFIG_MEDIA_TUNER_IT913X=m +CONFIG_MEDIA_TUNER_R820T=m
# # Multistandard (satellite) frontends # +CONFIG_DVB_STB0899=m +CONFIG_DVB_STB6100=m +CONFIG_DVB_STV090x=m +CONFIG_DVB_STV6110x=m
# # Multistandard (cable + terrestrial) frontends # +CONFIG_DVB_DRXK=m +CONFIG_DVB_TDA18271C2DD=m
# # DVB-S (satellite) frontends # +CONFIG_DVB_CX24123=m +CONFIG_DVB_MT312=m +CONFIG_DVB_ZL10039=m +CONFIG_DVB_S5H1420=m +CONFIG_DVB_STV0288=m +CONFIG_DVB_STB6000=m +CONFIG_DVB_STV0299=m +CONFIG_DVB_STV6110=m +CONFIG_DVB_STV0900=m +CONFIG_DVB_TDA10086=m +CONFIG_DVB_TUNER_ITD1000=m +CONFIG_DVB_TUNER_CX24113=m +CONFIG_DVB_TDA826X=m +CONFIG_DVB_CX24116=m +CONFIG_DVB_M88DS3103=m +CONFIG_DVB_SI21XX=m +CONFIG_DVB_TS2020=m +CONFIG_DVB_DS3000=m +CONFIG_DVB_TDA10071=m
# # DVB-T (terrestrial) frontends # +CONFIG_DVB_CX22702=m +CONFIG_DVB_DRXD=m +CONFIG_DVB_TDA1004X=m +CONFIG_DVB_NXT6000=m +CONFIG_DVB_MT352=m +CONFIG_DVB_ZL10353=m +CONFIG_DVB_DIB3000MB=m +CONFIG_DVB_DIB3000MC=m +CONFIG_DVB_DIB7000M=m +CONFIG_DVB_DIB7000P=m +CONFIG_DVB_TDA10048=m +CONFIG_DVB_AF9013=m +CONFIG_DVB_EC100=m +CONFIG_DVB_CXD2820R=m +CONFIG_DVB_RTL2830=m +CONFIG_DVB_RTL2832=m
# # DVB-C (cable) frontends # +CONFIG_DVB_TDA10023=m +CONFIG_DVB_STV0297=m
# # ATSC (North American/Korean Terrestrial/Cable DTV) frontends # +CONFIG_DVB_NXT200X=m +CONFIG_DVB_BCM3510=m +CONFIG_DVB_LGDT330X=m +CONFIG_DVB_LGDT3305=m +CONFIG_DVB_LG2160=m +CONFIG_DVB_S5H1409=m +CONFIG_DVB_AU8522=m +CONFIG_DVB_AU8522_DTV=m +CONFIG_DVB_AU8522_V4L=m +CONFIG_DVB_S5H1411=m
# # ISDB-T (terrestrial) frontends # +CONFIG_DVB_S921=m +CONFIG_DVB_DIB8000=m +CONFIG_DVB_MB86A20S=m
# # Digital terrestrial only tuners/PLL # +CONFIG_DVB_PLL=m +CONFIG_DVB_TUNER_DIB0070=m +CONFIG_DVB_TUNER_DIB0090=m
# # SEC control devices for DVB-S # +CONFIG_DVB_LNBP21=m +CONFIG_DVB_LNBP22=m +CONFIG_DVB_ISL6421=m +CONFIG_DVB_ISL6423=m +CONFIG_DVB_A8293=m +CONFIG_DVB_LGS8GXX=m +CONFIG_DVB_ATBM8830=m +CONFIG_DVB_IX2505V=m +CONFIG_DVB_IT913X_FE=m +CONFIG_DVB_M88RS2000=m +CONFIG_DVB_AF9033=m
# # Tools to develop new frontends @@ -2318,8 +2826,21 @@ CONFIG_DVB_CAPTURE_DRIVERS=y # Graphics support # CONFIG_DRM=m +CONFIG_DRM_USB=m +CONFIG_DRM_KMS_HELPER=m +# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set + +# +# I2C encoder or helper chips +# +# CONFIG_DRM_I2C_CH7006 is not set +# CONFIG_DRM_I2C_SIL164 is not set +CONFIG_DRM_I2C_NXP_TDA998X=m +CONFIG_DRM_UDL=m +# CONFIG_DRM_TILCDC is not set # CONFIG_VGASTATE is not set CONFIG_VIDEO_OUTPUT_CONTROL=m +CONFIG_HDMI=y CONFIG_FB=y CONFIG_FIRMWARE_EDID=y # CONFIG_FB_DDC is not set @@ -2333,7 +2854,6 @@ CONFIG_FB_SYS_COPYAREA=m CONFIG_FB_SYS_IMAGEBLIT=m # CONFIG_FB_FOREIGN_ENDIAN is not set CONFIG_FB_SYS_FOPS=m -# CONFIG_FB_WMT_GE_ROPS is not set CONFIG_FB_DEFERRED_IO=y # CONFIG_FB_SVGALIB is not set # CONFIG_FB_MACMODES is not set @@ -2348,32 +2868,17 @@ CONFIG_FB_BCM2708=y CONFIG_FB_ARMCLCD=y CONFIG_FB_UVESA=m # CONFIG_FB_S1D13XXX is not set -CONFIG_FB_TMIO=m -CONFIG_FB_TMIO_ACCELL=y -CONFIG_FB_SM501=m +# CONFIG_FB_TMIO is not set CONFIG_FB_SMSCUFX=m -# CONFIG_FB_UDL is not set +CONFIG_FB_UDL=m +# CONFIG_FB_GOLDFISH is not set # CONFIG_FB_VIRTUAL is not set -CONFIG_FB_METRONOME=m +# CONFIG_FB_METRONOME is not set # CONFIG_FB_BROADSHEET is not set -CONFIG_BACKLIGHT_LCD_SUPPORT=y -CONFIG_LCD_CLASS_DEVICE=m -CONFIG_LCD_PLATFORM=m -CONFIG_BACKLIGHT_CLASS_DEVICE=y -CONFIG_BACKLIGHT_GENERIC=m -CONFIG_BACKLIGHT_ADP8860=m -CONFIG_BACKLIGHT_ADP8870=m -CONFIG_BACKLIGHT_88PM860X=m -CONFIG_BACKLIGHT_PCF50633=m - -# -# Display device support -# -CONFIG_DISPLAY_SUPPORT=y - -# -# Display hardware drivers -# +# CONFIG_FB_AUO_K190X is not set +# CONFIG_FB_SIMPLE is not set +# CONFIG_EXYNOS_VIDEO is not set +# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
# # Console display driver support @@ -2389,6 +2894,7 @@ CONFIG_LOGO=y CONFIG_LOGO_LINUX_MONO=y CONFIG_LOGO_LINUX_VGA16=y CONFIG_LOGO_LINUX_CLUT224=y +# CONFIG_FB_SSD1307 is not set CONFIG_SOUND=m CONFIG_SOUND_OSS_CORE=y CONFIG_SOUND_OSS_CORE_PRECLAIM=y @@ -2397,6 +2903,7 @@ CONFIG_SND_TIMER=m CONFIG_SND_PCM=m CONFIG_SND_HWDEP=m CONFIG_SND_RAWMIDI=m +CONFIG_SND_COMPRESS_OFFLOAD=m CONFIG_SND_JACK=y CONFIG_SND_SEQUENCER=m CONFIG_SND_SEQ_DUMMY=m @@ -2434,6 +2941,7 @@ CONFIG_SND_AC97_POWER_SAVE_DEFAULT=60 CONFIG_SND_ARM=y CONFIG_SND_ARMAACI=m CONFIG_SND_BCM2835=m +CONFIG_SND_SPI=y CONFIG_SND_USB=y CONFIG_SND_USB_AUDIO=m CONFIG_SND_USB_UA101=m @@ -2441,39 +2949,51 @@ CONFIG_SND_USB_CAIAQ=m CONFIG_SND_USB_CAIAQ_INPUT=y CONFIG_SND_USB_6FIRE=m CONFIG_SND_SOC=m -CONFIG_SND_SOC_CACHE_LZO=y +CONFIG_SND_SOC_DMAENGINE_PCM=y +CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y +# CONFIG_SND_ATMEL_SOC is not set +CONFIG_SND_BCM2708_SOC_I2S=m +CONFIG_SND_BCM2708_SOC_HIFIBERRY_DAC=m +CONFIG_SND_BCM2708_SOC_HIFIBERRY_DIGI=m +CONFIG_SND_BCM2708_SOC_RPI_DAC=m +CONFIG_SND_DESIGNWARE_I2S=m CONFIG_SND_SOC_I2C_AND_SPI=m # CONFIG_SND_SOC_ALL_CODECS is not set +CONFIG_SND_SOC_PCM1794A=m +CONFIG_SND_SOC_PCM5102A=m +CONFIG_SND_SOC_WM8804=m +CONFIG_SND_SIMPLE_CARD=m # CONFIG_SOUND_PRIME is not set CONFIG_AC97_BUS=m -CONFIG_HID_SUPPORT=y -CONFIG_HID=y -# CONFIG_HIDRAW is not set
# -# USB Input Devices +# HID support # -CONFIG_USB_HID=m -# CONFIG_HID_PID is not set -CONFIG_USB_HIDDEV=y +CONFIG_HID=y +# CONFIG_HID_BATTERY_STRENGTH is not set +# CONFIG_HIDRAW is not set +# CONFIG_UHID is not set +CONFIG_HID_GENERIC=y
# # Special HID drivers # -CONFIG_HID_A4TECH=m +CONFIG_HID_A4TECH=y CONFIG_HID_ACRUX=m # CONFIG_HID_ACRUX_FF is not set -CONFIG_HID_APPLE=m -CONFIG_HID_BELKIN=m -CONFIG_HID_CHERRY=m -CONFIG_HID_CHICONY=m +CONFIG_HID_APPLE=y +# CONFIG_HID_APPLEIR is not set +CONFIG_HID_AUREAL=m +CONFIG_HID_BELKIN=y +CONFIG_HID_CHERRY=y +CONFIG_HID_CHICONY=y CONFIG_HID_PRODIKEYS=m -CONFIG_HID_CYPRESS=m +CONFIG_HID_CYPRESS=y CONFIG_HID_DRAGONRISE=m # CONFIG_DRAGONRISE_FF is not set # CONFIG_HID_EMS_FF is not set CONFIG_HID_ELECOM=m -CONFIG_HID_EZKEY=m +CONFIG_HID_EZKEY=y CONFIG_HID_HOLTEK=m # CONFIG_HOLTEK_FF is not set CONFIG_HID_KEYTOUCH=m @@ -2481,18 +3001,20 @@ CONFIG_HID_KYE=m CONFIG_HID_UCLOGIC=m CONFIG_HID_WALTOP=m CONFIG_HID_GYRATION=m +CONFIG_HID_ICADE=m CONFIG_HID_TWINHAN=m -CONFIG_HID_KENSINGTON=m +CONFIG_HID_KENSINGTON=y CONFIG_HID_LCPOWER=m -CONFIG_HID_LOGITECH=m +CONFIG_HID_LENOVO_TPKBD=m +CONFIG_HID_LOGITECH=y CONFIG_HID_LOGITECH_DJ=m # CONFIG_LOGITECH_FF is not set # CONFIG_LOGIRUMBLEPAD2_FF is not set # CONFIG_LOGIG940_FF is not set # CONFIG_LOGIWHEELS_FF is not set CONFIG_HID_MAGICMOUSE=m -CONFIG_HID_MICROSOFT=m -CONFIG_HID_MONTEREY=m +CONFIG_HID_MICROSOFT=y +CONFIG_HID_MONTEREY=y CONFIG_HID_MULTITOUCH=m CONFIG_HID_NTRIG=m CONFIG_HID_ORTEK=m @@ -2501,41 +3023,51 @@ CONFIG_HID_PANTHERLORD=m CONFIG_HID_PETALYNX=m CONFIG_HID_PICOLCD=m CONFIG_HID_PICOLCD_FB=y -CONFIG_HID_PICOLCD_BACKLIGHT=y -CONFIG_HID_PICOLCD_LCD=y CONFIG_HID_PICOLCD_LEDS=y +CONFIG_HID_PICOLCD_CIR=y CONFIG_HID_PRIMAX=m -CONFIG_HID_QUANTA=m +CONFIG_HID_PS3REMOTE=m CONFIG_HID_ROCCAT=m -CONFIG_HID_ROCCAT_COMMON=m -CONFIG_HID_ROCCAT_ARVO=m -CONFIG_HID_ROCCAT_KONE=m -CONFIG_HID_ROCCAT_KONEPLUS=m -CONFIG_HID_ROCCAT_KOVAPLUS=m -CONFIG_HID_ROCCAT_PYRA=m +CONFIG_HID_SAITEK=m CONFIG_HID_SAMSUNG=m CONFIG_HID_SONY=m CONFIG_HID_SPEEDLINK=m +CONFIG_HID_STEELSERIES=m CONFIG_HID_SUNPLUS=m CONFIG_HID_GREENASIA=m # CONFIG_GREENASIA_FF is not set CONFIG_HID_SMARTJOYPLUS=m # CONFIG_SMARTJOYPLUS_FF is not set +CONFIG_HID_TIVO=m CONFIG_HID_TOPSEED=m +CONFIG_HID_THINGM=m CONFIG_HID_THRUSTMASTER=m # CONFIG_THRUSTMASTER_FF is not set CONFIG_HID_WACOM=m -# CONFIG_HID_WACOM_POWER_SUPPLY is not set CONFIG_HID_WIIMOTE=m +CONFIG_HID_WIIMOTE_EXT=y CONFIG_HID_ZEROPLUS=m # CONFIG_ZEROPLUS_FF is not set CONFIG_HID_ZYDACRON=m -CONFIG_USB_SUPPORT=y -CONFIG_USB_COMMON=y -CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_HID_SENSOR_HUB=m + +# +# USB HID support +# +CONFIG_USB_HID=m +# CONFIG_HID_PID is not set +CONFIG_USB_HIDDEV=y + +# +# I2C HID support +# +CONFIG_I2C_HID=m # CONFIG_USB_ARCH_HAS_OHCI is not set # CONFIG_USB_ARCH_HAS_EHCI is not set # CONFIG_USB_ARCH_HAS_XHCI is not set +CONFIG_USB_SUPPORT=y +CONFIG_USB_COMMON=y +CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB=y # CONFIG_USB_DEBUG is not set CONFIG_USB_ANNOUNCE_NEW_DEVICES=y @@ -2543,31 +3075,26 @@ CONFIG_USB_ANNOUNCE_NEW_DEVICES=y # # Miscellaneous USB options # -CONFIG_USB_DEVICEFS=y -CONFIG_USB_DEVICE_CLASS=y +CONFIG_USB_DEFAULT_PERSIST=y CONFIG_USB_DYNAMIC_MINORS=y -CONFIG_USB_SUSPEND=y # CONFIG_USB_OTG is not set -CONFIG_USB_DWC3=m -# CONFIG_USB_DWC3_DEBUG is not set # CONFIG_USB_MON is not set -# CONFIG_USB_WUSB is not set # CONFIG_USB_WUSB_CBAF is not set
# # USB Host Controller Drivers # # CONFIG_USB_C67X00_HCD is not set -CONFIG_USB_OXU210HP_HCD=m -CONFIG_USB_ISP116X_HCD=m +# CONFIG_USB_OXU210HP_HCD is not set +# CONFIG_USB_ISP116X_HCD is not set # CONFIG_USB_ISP1760_HCD is not set -CONFIG_USB_ISP1362_HCD=m -CONFIG_USB_U132_HCD=m -CONFIG_USB_SL811_HCD=m -# CONFIG_USB_SL811_HCD_ISO is not set -CONFIG_USB_R8A66597_HCD=m -# CONFIG_USB_HWA_HCD is not set +# CONFIG_USB_ISP1362_HCD is not set +# CONFIG_USB_U132_HCD is not set +# CONFIG_USB_SL811_HCD is not set +# CONFIG_USB_R8A66597_HCD is not set CONFIG_USB_DWCOTG=y +CONFIG_USB_HCD_BCMA=y +# CONFIG_USB_HCD_SSB is not set
# # USB Device Class drivers @@ -2600,21 +3127,20 @@ CONFIG_USB_STORAGE_ONETOUCH=m CONFIG_USB_STORAGE_KARMA=m CONFIG_USB_STORAGE_CYPRESS_ATACB=m CONFIG_USB_STORAGE_ENE_UB6250=m -CONFIG_USB_UAS=m -# CONFIG_USB_LIBUSUAL is not set
# # USB Imaging devices # # CONFIG_USB_MDC800 is not set # CONFIG_USB_MICROTEK is not set +# CONFIG_USB_DWC3 is not set +# CONFIG_USB_CHIPIDEA is not set
# # USB port drivers # CONFIG_USB_USS720=m CONFIG_USB_SERIAL=m -CONFIG_USB_EZUSB=y CONFIG_USB_SERIAL_GENERIC=y CONFIG_USB_SERIAL_AIRCABLE=m CONFIG_USB_SERIAL_ARK3116=m @@ -2632,19 +3158,21 @@ CONFIG_USB_SERIAL_IPAQ=m CONFIG_USB_SERIAL_IR=m CONFIG_USB_SERIAL_EDGEPORT=m CONFIG_USB_SERIAL_EDGEPORT_TI=m +CONFIG_USB_SERIAL_F81232=m CONFIG_USB_SERIAL_GARMIN=m CONFIG_USB_SERIAL_IPW=m CONFIG_USB_SERIAL_IUU=m -# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set -# CONFIG_USB_SERIAL_KEYSPAN is not set -# CONFIG_USB_SERIAL_KLSI is not set -# CONFIG_USB_SERIAL_KOBIL_SCT is not set +CONFIG_USB_SERIAL_KEYSPAN_PDA=m +CONFIG_USB_SERIAL_KEYSPAN=m +CONFIG_USB_SERIAL_KLSI=m +CONFIG_USB_SERIAL_KOBIL_SCT=m CONFIG_USB_SERIAL_MCT_U232=m +CONFIG_USB_SERIAL_METRO=m CONFIG_USB_SERIAL_MOS7720=m # CONFIG_USB_SERIAL_MOS7715_PARPORT is not set CONFIG_USB_SERIAL_MOS7840=m CONFIG_USB_SERIAL_MOTOROLA=m -# CONFIG_USB_SERIAL_NAVMAN is not set +CONFIG_USB_SERIAL_NAVMAN=m CONFIG_USB_SERIAL_PL2303=m CONFIG_USB_SERIAL_OTI6858=m CONFIG_USB_SERIAL_QCAUX=m @@ -2657,15 +3185,19 @@ CONFIG_USB_SERIAL_SIEMENS_MPI=m CONFIG_USB_SERIAL_SIERRAWIRELESS=m CONFIG_USB_SERIAL_SYMBOL=m CONFIG_USB_SERIAL_TI=m -# CONFIG_USB_SERIAL_CYBERJACK is not set +CONFIG_USB_SERIAL_CYBERJACK=m CONFIG_USB_SERIAL_XIRCOM=m CONFIG_USB_SERIAL_WWAN=m CONFIG_USB_SERIAL_OPTION=m -# CONFIG_USB_SERIAL_OMNINET is not set +CONFIG_USB_SERIAL_OMNINET=m CONFIG_USB_SERIAL_OPTICON=m CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m +CONFIG_USB_SERIAL_XSENS_MT=m CONFIG_USB_SERIAL_ZIO=m +CONFIG_USB_SERIAL_WISHBONE=m +CONFIG_USB_SERIAL_ZTE=m CONFIG_USB_SERIAL_SSU100=m +CONFIG_USB_SERIAL_QT2=m # CONFIG_USB_SERIAL_DEBUG is not set
# @@ -2690,20 +3222,15 @@ CONFIG_USB_IOWARRIOR=m # CONFIG_USB_TEST is not set CONFIG_USB_ISIGHTFW=m CONFIG_USB_YUREX=m +CONFIG_USB_EZUSB_FX2=m +CONFIG_USB_HSIC_USB3503=m CONFIG_USB_ATM=m CONFIG_USB_SPEEDTOUCH=m CONFIG_USB_CXACRU=m CONFIG_USB_UEAGLEATM=m CONFIG_USB_XUSBATM=m +# CONFIG_USB_PHY is not set # CONFIG_USB_GADGET is not set - -# -# OTG and related infrastructure -# -CONFIG_USB_OTG_UTILS=y -CONFIG_USB_GPIO_VBUS=m -# CONFIG_USB_ULPI is not set -CONFIG_NOP_USB_XCEIV=m CONFIG_MMC=y # CONFIG_MMC_DEBUG is not set # CONFIG_MMC_UNSAFE_RESUME is not set @@ -2729,9 +3256,11 @@ CONFIG_MMC_SDHCI_PXAV3=m CONFIG_MMC_SDHCI_PXAV2=m CONFIG_MMC_SDHCI_BCM2708=y CONFIG_MMC_SDHCI_BCM2708_DMA=y -# CONFIG_MMC_BCM2708 is not set +# CONFIG_MMC_SPI is not set CONFIG_MMC_DW=m # CONFIG_MMC_DW_IDMAC is not set +CONFIG_MMC_DW_PLTFM=m +CONFIG_MMC_DW_EXYNOS=m CONFIG_MMC_VUB300=m CONFIG_MMC_USHC=m CONFIG_MEMSTICK=m @@ -2752,39 +3281,53 @@ CONFIG_LEDS_CLASS=y # # LED drivers # -CONFIG_LEDS_88PM860X=m CONFIG_LEDS_LM3530=m +CONFIG_LEDS_LM3642=m CONFIG_LEDS_PCA9532=m CONFIG_LEDS_PCA9532_GPIO=y CONFIG_LEDS_GPIO=m CONFIG_LEDS_LP3944=m +CONFIG_LEDS_LP55XX_COMMON=m CONFIG_LEDS_LP5521=m CONFIG_LEDS_LP5523=m +CONFIG_LEDS_LP5562=m CONFIG_LEDS_PCA955X=m +CONFIG_LEDS_PCA9633=m +CONFIG_LEDS_DAC124S085=m +CONFIG_LEDS_PWM=m CONFIG_LEDS_REGULATOR=m CONFIG_LEDS_BD2802=m CONFIG_LEDS_LT3593=m # CONFIG_LEDS_RENESAS_TPU is not set -CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TCA6507=m +CONFIG_LEDS_LM355x=m +CONFIG_LEDS_OT200=m +CONFIG_LEDS_BLINKM=m
# # LED Triggers # +CONFIG_LEDS_TRIGGERS=y CONFIG_LEDS_TRIGGER_TIMER=m +CONFIG_LEDS_TRIGGER_ONESHOT=m CONFIG_LEDS_TRIGGER_HEARTBEAT=m CONFIG_LEDS_TRIGGER_BACKLIGHT=m +CONFIG_LEDS_TRIGGER_CPU=y CONFIG_LEDS_TRIGGER_GPIO=m CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
# # iptables trigger is under Netfilter config (LED target) # +CONFIG_LEDS_TRIGGER_TRANSIENT=m +CONFIG_LEDS_TRIGGER_CAMERA=m CONFIG_LEDS_TRIGGER_NETDEV=m # CONFIG_ACCESSIBILITY is not set +# CONFIG_EDAC is not set CONFIG_RTC_LIB=y CONFIG_RTC_CLASS=y -CONFIG_RTC_HCTOSYS=y -CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +# CONFIG_RTC_HCTOSYS is not set +# CONFIG_RTC_SYSTOHC is not set # CONFIG_RTC_DEBUG is not set
# @@ -2799,7 +3342,6 @@ CONFIG_RTC_INTF_DEV=y # # I2C RTC drivers # -CONFIG_RTC_DRV_88PM860X=y CONFIG_RTC_DRV_DS1307=m CONFIG_RTC_DRV_DS1374=m CONFIG_RTC_DRV_DS1672=m @@ -2809,6 +3351,7 @@ CONFIG_RTC_DRV_RS5C372=m CONFIG_RTC_DRV_ISL1208=m CONFIG_RTC_DRV_ISL12022=m CONFIG_RTC_DRV_X1205=m +CONFIG_RTC_DRV_PCF8523=m CONFIG_RTC_DRV_PCF8563=m CONFIG_RTC_DRV_PCF8583=m CONFIG_RTC_DRV_M41T80=m @@ -2824,6 +3367,16 @@ CONFIG_RTC_DRV_RV3029C2=m # # SPI RTC drivers # +CONFIG_RTC_DRV_M41T93=m +CONFIG_RTC_DRV_M41T94=m +CONFIG_RTC_DRV_DS1305=m +CONFIG_RTC_DRV_DS1390=m +CONFIG_RTC_DRV_MAX6902=m +CONFIG_RTC_DRV_R9701=m +CONFIG_RTC_DRV_RS5C348=m +CONFIG_RTC_DRV_DS3234=m +CONFIG_RTC_DRV_PCF2123=m +CONFIG_RTC_DRV_RX4581=m
# # Platform RTC drivers @@ -2841,13 +3394,19 @@ CONFIG_RTC_DRV_MSM6242=m CONFIG_RTC_DRV_BQ4802=m CONFIG_RTC_DRV_RP5C01=m CONFIG_RTC_DRV_V3020=m -CONFIG_RTC_DRV_PCF50633=m +CONFIG_RTC_DRV_DS2404=m
# # on-CPU RTC drivers # CONFIG_RTC_DRV_PL030=m CONFIG_RTC_DRV_PL031=m +CONFIG_RTC_DRV_SNVS=m + +# +# HID Sensor RTC drivers +# +CONFIG_RTC_DRV_HID_SENSOR_TIME=m CONFIG_DMADEVICES=y # CONFIG_DMADEVICES_DEBUG is not set
@@ -2856,26 +3415,34 @@ CONFIG_DMADEVICES=y # CONFIG_AMBA_PL08X=y CONFIG_DW_DMAC=y +# CONFIG_DW_DMAC_BIG_ENDIAN_IO is not set # CONFIG_TIMB_DMA is not set CONFIG_PL330_DMA=y +CONFIG_DMA_BCM2708=y CONFIG_DMA_ENGINE=y +CONFIG_DMA_VIRTUAL_CHANNELS=y +CONFIG_DMA_OF=y
# # DMA Clients # -CONFIG_NET_DMA=y CONFIG_ASYNC_TX_DMA=y CONFIG_DMATEST=m # CONFIG_AUXDISPLAY is not set CONFIG_UIO=m CONFIG_UIO_PDRV=m CONFIG_UIO_PDRV_GENIRQ=m +CONFIG_UIO_DMEM_GENIRQ=m +# CONFIG_VIRT_DRIVERS is not set
# # Virtio drivers # -# CONFIG_VIRTIO_BALLOON is not set # CONFIG_VIRTIO_MMIO is not set + +# +# Microsoft Hyper-V guest support +# CONFIG_STAGING=y CONFIG_USBIP_CORE=m CONFIG_USBIP_VHCI_HCD=m @@ -2883,21 +3450,114 @@ CONFIG_USBIP_HOST=m # CONFIG_USBIP_DEBUG is not set # CONFIG_W35UND is not set # CONFIG_PRISM2_USB is not set -# CONFIG_ECHO is not set +CONFIG_ECHO=m +# CONFIG_COMEDI is not set # CONFIG_ASUS_OLED is not set # CONFIG_PANEL is not set +# CONFIG_RTLLIB is not set # CONFIG_R8712U is not set -# CONFIG_RTS5139 is not set +CONFIG_RTS5139=m +# CONFIG_RTS5139_DEBUG is not set # CONFIG_TRANZPORT is not set -# CONFIG_POHMELFS is not set # CONFIG_LINE6_USB is not set # CONFIG_USB_SERIAL_QUATECH2 is not set -# CONFIG_USB_SERIAL_QUATECH_USB2 is not set # CONFIG_VT6656 is not set -# CONFIG_IIO is not set -# CONFIG_XVMALLOC is not set -# CONFIG_ZRAM is not set -# CONFIG_FB_SM7XX is not set + +# +# IIO staging drivers +# + +# +# Accelerometers +# +# CONFIG_ADIS16201 is not set +# CONFIG_ADIS16203 is not set +# CONFIG_ADIS16204 is not set +# CONFIG_ADIS16209 is not set +# CONFIG_ADIS16220 is not set +# CONFIG_ADIS16240 is not set +# CONFIG_LIS3L02DQ is not set + +# +# Analog to digital converters +# +# CONFIG_AD7291 is not set +# CONFIG_AD7606 is not set +# CONFIG_AD799X is not set +# CONFIG_AD7780 is not set +# CONFIG_AD7816 is not set +# CONFIG_AD7192 is not set +# CONFIG_AD7280 is not set + +# +# Analog digital bi-direction converters +# +# CONFIG_ADT7316 is not set + +# +# Capacitance to digital converters +# +# CONFIG_AD7150 is not set +# CONFIG_AD7152 is not set +# CONFIG_AD7746 is not set + +# +# Direct Digital Synthesis +# +# CONFIG_AD5930 is not set +# CONFIG_AD9832 is not set +# CONFIG_AD9834 is not set +# CONFIG_AD9850 is not set +# CONFIG_AD9852 is not set +# CONFIG_AD9910 is not set +# CONFIG_AD9951 is not set + +# +# Digital gyroscope sensors +# +# CONFIG_ADIS16060 is not set +# CONFIG_ADIS16130 is not set +# CONFIG_ADIS16260 is not set + +# +# Network Analyzer, Impedance Converters +# +# CONFIG_AD5933 is not set + +# +# Light sensors +# +# CONFIG_SENSORS_ISL29018 is not set +# CONFIG_SENSORS_ISL29028 is not set +# CONFIG_TSL2583 is not set +# CONFIG_TSL2x7x is not set + +# +# Magnetometer sensors +# +# CONFIG_SENSORS_HMC5843 is not set + +# +# Active energy metering IC +# +# CONFIG_ADE7753 is not set +# CONFIG_ADE7754 is not set +# CONFIG_ADE7758 is not set +# CONFIG_ADE7759 is not set +# CONFIG_ADE7854 is not set + +# +# Resolver to digital converters +# +# CONFIG_AD2S90 is not set +# CONFIG_AD2S1200 is not set +# CONFIG_AD2S1210 is not set + +# +# Triggers - standalone +# +# CONFIG_IIO_SIMPLE_DUMMY is not set +# CONFIG_ZSMALLOC is not set # CONFIG_USB_ENESTORAGE is not set # CONFIG_BCM_WIMAX is not set # CONFIG_FT1000 is not set @@ -2909,23 +3569,149 @@ CONFIG_USBIP_HOST=m # CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set # CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set # CONFIG_STAGING_MEDIA is not set + +# +# Android +# +# CONFIG_ANDROID is not set +# CONFIG_USB_WPAN_HCD is not set +# CONFIG_WIMAX_GDM72XX is not set +# CONFIG_CSR_WIFI is not set +# CONFIG_CED1401 is not set +# CONFIG_DGRP is not set +# CONFIG_ZCACHE is not set CONFIG_CLKDEV_LOOKUP=y
# # Hardware Spinlock drivers # -CONFIG_IOMMU_SUPPORT=y -# CONFIG_VIRT_DRIVERS is not set +# CONFIG_MAILBOX is not set +# CONFIG_IOMMU_SUPPORT is not set + +# +# Remoteproc drivers +# +# CONFIG_STE_MODEM_RPROC is not set + +# +# Rpmsg drivers +# # CONFIG_PM_DEVFREQ is not set +# CONFIG_EXTCON is not set +# CONFIG_MEMORY is not set +CONFIG_IIO=m +# CONFIG_IIO_BUFFER is not set +# CONFIG_IIO_TRIGGER is not set + +# +# Accelerometers +# +# CONFIG_HID_SENSOR_ACCEL_3D is not set +# CONFIG_KXSD9 is not set +# CONFIG_IIO_ST_ACCEL_3AXIS is not set + +# +# Analog to digital converters +# +# CONFIG_AD7266 is not set +# CONFIG_AD7298 is not set +# CONFIG_AD7923 is not set +# CONFIG_AD7791 is not set +# CONFIG_AD7793 is not set +# CONFIG_AD7476 is not set +# CONFIG_AD7887 is not set +# CONFIG_EXYNOS_ADC is not set +# CONFIG_MAX1363 is not set +# CONFIG_TI_ADC081C is not set + +# +# Amplifiers +# +# CONFIG_AD8366 is not set + +# +# Hid Sensor IIO Common +# +CONFIG_HID_SENSOR_IIO_COMMON=m +# CONFIG_HID_SENSOR_IIO_TRIGGER is not set +# CONFIG_HID_SENSOR_ENUM_BASE_QUIRKS is not set + +# +# Digital to analog converters +# +# CONFIG_AD5064 is not set +# CONFIG_AD5360 is not set +# CONFIG_AD5380 is not set +# CONFIG_AD5421 is not set +# CONFIG_AD5624R_SPI is not set +# CONFIG_AD5446 is not set +# CONFIG_AD5449 is not set +# CONFIG_AD5504 is not set +# CONFIG_AD5755 is not set +# CONFIG_AD5764 is not set +# CONFIG_AD5791 is not set +# CONFIG_AD5686 is not set +# CONFIG_MAX517 is not set +# CONFIG_MCP4725 is not set + +# +# Frequency Synthesizers DDS/PLL +# + +# +# Clock Generator/Distribution +# +# CONFIG_AD9523 is not set + +# +# Phase-Locked Loop (PLL) frequency synthesizers +# +# CONFIG_ADF4350 is not set + +# +# Digital gyroscope sensors +# +# CONFIG_ADIS16080 is not set +# CONFIG_ADIS16136 is not set +# CONFIG_ADXRS450 is not set +# CONFIG_HID_SENSOR_GYRO_3D is not set +# CONFIG_IIO_ST_GYRO_3AXIS is not set +# CONFIG_ITG3200 is not set + +# +# Inertial measurement units +# +# CONFIG_ADIS16400 is not set +# CONFIG_ADIS16480 is not set +# CONFIG_INV_MPU6050_IIO is not set + +# +# Light sensors +# +# CONFIG_ADJD_S311 is not set +# CONFIG_SENSORS_TSL2563 is not set +# CONFIG_VCNL4000 is not set +# CONFIG_HID_SENSOR_ALS is not set + +# +# Magnetometer sensors +# +# CONFIG_AK8975 is not set +# CONFIG_HID_SENSOR_MAGNETOMETER_3D is not set +# CONFIG_IIO_ST_MAGN_3AXIS is not set +CONFIG_PWM=y +CONFIG_IRQCHIP=y +# CONFIG_IPACK_BUS is not set +# CONFIG_RESET_CONTROLLER is not set
# # File systems # +CONFIG_DCACHE_WORD_ACCESS=y # CONFIG_EXT2_FS is not set # CONFIG_EXT3_FS is not set CONFIG_EXT4_FS=y CONFIG_EXT4_USE_FOR_EXT23=y -CONFIG_EXT4_FS_XATTR=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y # CONFIG_EXT4_DEBUG is not set @@ -2946,9 +3732,14 @@ CONFIG_XFS_FS=m CONFIG_XFS_QUOTA=y CONFIG_XFS_POSIX_ACL=y # CONFIG_XFS_RT is not set +# CONFIG_XFS_WARN is not set # CONFIG_XFS_DEBUG is not set # CONFIG_GFS2_FS is not set -# CONFIG_BTRFS_FS is not set +CONFIG_BTRFS_FS=m +CONFIG_BTRFS_FS_POSIX_ACL=y +# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set +# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set +# CONFIG_BTRFS_DEBUG is not set # CONFIG_NILFS2_FS is not set CONFIG_FS_POSIX_ACL=y CONFIG_EXPORTFS=m @@ -2957,6 +3748,7 @@ CONFIG_FSNOTIFY=y CONFIG_DNOTIFY=y CONFIG_INOTIFY_USER=y CONFIG_FANOTIFY=y +CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y CONFIG_QUOTA=y CONFIG_QUOTA_NETLINK_INTERFACE=y CONFIG_PRINT_QUOTA_WARNING=y @@ -2968,6 +3760,7 @@ CONFIG_QUOTACTL=y CONFIG_AUTOFS4_FS=m CONFIG_FUSE_FS=m CONFIG_CUSE=m +CONFIG_GENERIC_ACL=y
# # Caches @@ -3005,10 +3798,9 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" # CONFIG_PROC_FS=y CONFIG_PROC_SYSCTL=y -CONFIG_PROC_PAGE_MONITOR=y CONFIG_SYSFS=y CONFIG_TMPFS=y -# CONFIG_TMPFS_POSIX_ACL is not set +CONFIG_TMPFS_POSIX_ACL=y CONFIG_TMPFS_XATTR=y # CONFIG_HUGETLB_PAGE is not set # CONFIG_CONFIGFS_FS is not set @@ -3016,6 +3808,7 @@ CONFIG_MISC_FILESYSTEMS=y # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set CONFIG_ECRYPT_FS=m +# CONFIG_ECRYPT_FS_MESSAGING is not set # CONFIG_HFS_FS is not set # CONFIG_HFSPLUS_FS is not set # CONFIG_BEFS_FS is not set @@ -3045,6 +3838,7 @@ CONFIG_JFFS2_CMODE_PRIORITY=y # CONFIG_OMFS_FS is not set # CONFIG_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set +# CONFIG_QNX6FS_FS is not set # CONFIG_ROMFS_FS is not set # CONFIG_PSTORE is not set # CONFIG_SYSV_FS is not set @@ -3052,21 +3846,24 @@ CONFIG_UFS_FS=m # CONFIG_UFS_FS_WRITE is not set # CONFIG_UFS_DEBUG is not set # CONFIG_EXOFS_FS is not set +# CONFIG_F2FS_FS is not set CONFIG_NETWORK_FILESYSTEMS=y CONFIG_NFS_FS=m -CONFIG_NFS_V3=y +CONFIG_NFS_V2=m +CONFIG_NFS_V3=m CONFIG_NFS_V3_ACL=y -CONFIG_NFS_V4=y +CONFIG_NFS_V4=m +# CONFIG_NFS_SWAP is not set # CONFIG_NFS_V4_1 is not set # CONFIG_NFS_FSCACHE is not set # CONFIG_NFS_USE_LEGACY_DNS is not set CONFIG_NFS_USE_KERNEL_DNS=y -# CONFIG_NFS_USE_NEW_IDMAPPER is not set CONFIG_NFSD=m CONFIG_NFSD_V2_ACL=y CONFIG_NFSD_V3=y CONFIG_NFSD_V3_ACL=y CONFIG_NFSD_V4=y +# CONFIG_NFSD_FAULT_INJECTION is not set CONFIG_LOCKD=m CONFIG_LOCKD_V4=y CONFIG_NFS_ACL_SUPPORT=m @@ -3074,6 +3871,7 @@ CONFIG_NFS_COMMON=y CONFIG_SUNRPC=m CONFIG_SUNRPC_GSS=m CONFIG_RPCSEC_GSS_KRB5=m +# CONFIG_SUNRPC_DEBUG is not set # CONFIG_CEPH_FS is not set CONFIG_CIFS=m CONFIG_CIFS_STATS=y @@ -3082,36 +3880,15 @@ CONFIG_CIFS_STATS2=y # CONFIG_CIFS_UPCALL is not set CONFIG_CIFS_XATTR=y CONFIG_CIFS_POSIX=y +CONFIG_CIFS_ACL=y +CONFIG_CIFS_DEBUG=y # CONFIG_CIFS_DEBUG2 is not set # CONFIG_CIFS_DFS_UPCALL is not set +# CONFIG_CIFS_SMB2 is not set # CONFIG_CIFS_FSCACHE is not set -CONFIG_CIFS_ACL=y # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set - -# -# Partition Types -# -CONFIG_PARTITION_ADVANCED=y -# CONFIG_ACORN_PARTITION is not set -# CONFIG_OSF_PARTITION is not set -# CONFIG_AMIGA_PARTITION is not set -# CONFIG_ATARI_PARTITION is not set -# CONFIG_MAC_PARTITION is not set -CONFIG_MSDOS_PARTITION=y -CONFIG_BSD_DISKLABEL=y -# CONFIG_MINIX_SUBPARTITION is not set -# CONFIG_SOLARIS_X86_PARTITION is not set -# CONFIG_UNIXWARE_DISKLABEL is not set -CONFIG_LDM_PARTITION=y -# CONFIG_LDM_DEBUG is not set -# CONFIG_SGI_PARTITION is not set -# CONFIG_ULTRIX_PARTITION is not set -# CONFIG_SUN_PARTITION is not set -# CONFIG_KARMA_PARTITION is not set -CONFIG_EFI_PARTITION=y -# CONFIG_SYSV68_PARTITION is not set CONFIG_NLS=y CONFIG_NLS_DEFAULT="cp850" # CONFIG_NLS_CODEPAGE_437 is not set @@ -3151,6 +3928,17 @@ CONFIG_NLS_ISO8859_1=y # CONFIG_NLS_ISO8859_15 is not set # CONFIG_NLS_KOI8_R is not set # CONFIG_NLS_KOI8_U is not set +# CONFIG_NLS_MAC_ROMAN is not set +# CONFIG_NLS_MAC_CELTIC is not set +# CONFIG_NLS_MAC_CENTEURO is not set +# CONFIG_NLS_MAC_CROATIAN is not set +# CONFIG_NLS_MAC_CYRILLIC is not set +# CONFIG_NLS_MAC_GAELIC is not set +# CONFIG_NLS_MAC_GREEK is not set +# CONFIG_NLS_MAC_ICELAND is not set +# CONFIG_NLS_MAC_INUIT is not set +# CONFIG_NLS_MAC_ROMANIAN is not set +# CONFIG_NLS_MAC_TURKISH is not set CONFIG_NLS_UTF8=y
# @@ -3163,6 +3951,7 @@ CONFIG_ENABLE_MUST_CHECK=y CONFIG_FRAME_WARN=1024 # CONFIG_MAGIC_SYSRQ is not set CONFIG_STRIP_ASM_SYMS=y +# CONFIG_READABLE_ASM is not set # CONFIG_UNUSED_SYMBOLS is not set # CONFIG_DEBUG_FS is not set # CONFIG_HEADERS_CHECK is not set @@ -3170,7 +3959,8 @@ CONFIG_STRIP_ASM_SYMS=y CONFIG_DEBUG_KERNEL=y # CONFIG_DEBUG_SHIRQ is not set # CONFIG_LOCKUP_DETECTOR is not set -# CONFIG_HARDLOCKUP_DETECTOR is not set +# CONFIG_PANIC_ON_OOPS is not set +CONFIG_PANIC_ON_OOPS_VALUE=0 CONFIG_DETECT_HUNG_TASK=y CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set @@ -3181,6 +3971,7 @@ CONFIG_TIMER_STATS=y # CONFIG_DEBUG_OBJECTS is not set # CONFIG_SLUB_DEBUG_ON is not set # CONFIG_SLUB_STATS is not set +CONFIG_HAVE_DEBUG_KMEMLEAK=y # CONFIG_DEBUG_KMEMLEAK is not set # CONFIG_DEBUG_RT_MUTEXES is not set # CONFIG_RT_MUTEX_TESTER is not set @@ -3188,7 +3979,6 @@ CONFIG_TIMER_STATS=y # CONFIG_DEBUG_MUTEXES is not set # CONFIG_DEBUG_LOCK_ALLOC is not set # CONFIG_PROVE_LOCKING is not set -# CONFIG_SPARSE_RCU_POINTER is not set # CONFIG_LOCK_STAT is not set # CONFIG_DEBUG_ATOMIC_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set @@ -3206,47 +3996,221 @@ CONFIG_DEBUG_MEMORY_INIT=y # CONFIG_DEBUG_CREDENTIALS is not set CONFIG_FRAME_POINTER=y # CONFIG_BOOT_PRINTK_DELAY is not set + +# +# RCU Debugging +# +# CONFIG_SPARSE_RCU_POINTER is not set # CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_RCU_TRACE is not set # CONFIG_BACKTRACE_SELF_TEST is not set # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +# CONFIG_NOTIFIER_ERROR_INJECTION is not set # CONFIG_FAULT_INJECTION is not set -# CONFIG_LATENCYTOP is not set -# CONFIG_SYSCTL_SYSCALL_CHECK is not set # CONFIG_DEBUG_PAGEALLOC is not set CONFIG_HAVE_FUNCTION_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y CONFIG_HAVE_C_RECORDMCOUNT=y CONFIG_TRACING_SUPPORT=y # CONFIG_FTRACE is not set +# CONFIG_RBTREE_TEST is not set +# CONFIG_INTERVAL_TREE_TEST is not set # CONFIG_DMA_API_DEBUG is not set # CONFIG_ATOMIC64_SELFTEST is not set CONFIG_ASYNC_RAID6_TEST=m # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y # CONFIG_KGDB is not set +# CONFIG_TEST_STRING_HELPERS is not set # CONFIG_TEST_KSTRTOX is not set # CONFIG_STRICT_DEVMEM is not set # CONFIG_ARM_UNWIND is not set # CONFIG_DEBUG_USER is not set CONFIG_DEBUG_LL=y -CONFIG_DEBUG_LL_UART_NONE=y +# CONFIG_DEBUG_LL_UART_NONE is not set # CONFIG_DEBUG_ICEDCC is not set -# CONFIG_DEBUG_BCM2708_UART0 is not set +# CONFIG_DEBUG_SEMIHOSTING is not set +CONFIG_DEBUG_BCM2708_UART0=y +CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S" +CONFIG_UNCOMPRESS_INCLUDE="mach/uncompress.h" CONFIG_EARLY_PRINTK=y # CONFIG_OC_ETM is not set +# CONFIG_PID_IN_CONTEXTIDR is not set
# # Security options # + +# +# Grsecurity +# +CONFIG_PAX_USERCOPY_SLABS=y +CONFIG_GRKERNSEC=y +# CONFIG_GRKERNSEC_CONFIG_AUTO is not set +CONFIG_GRKERNSEC_CONFIG_CUSTOM=y + +# +# Customize Configuration +# + +# +# PaX +# +CONFIG_PAX=y + +# +# PaX Control +# +# CONFIG_PAX_SOFTMODE is not set +CONFIG_PAX_EI_PAX=y +CONFIG_PAX_PT_PAX_FLAGS=y +# CONFIG_PAX_XATTR_PAX_FLAGS is not set +# CONFIG_PAX_NO_ACL_FLAGS is not set +CONFIG_PAX_HAVE_ACL_FLAGS=y +# CONFIG_PAX_HOOK_ACL_FLAGS is not set + +# +# Non-executable pages +# +CONFIG_PAX_NOEXEC=y +CONFIG_PAX_PAGEEXEC=y +CONFIG_PAX_MPROTECT=y +# CONFIG_PAX_MPROTECT_COMPAT is not set +CONFIG_PAX_ELFRELOCS=y +# CONFIG_PAX_KERNEXEC is not set +CONFIG_PAX_KERNEXEC_PLUGIN_METHOD="" + +# +# Address Space Layout Randomization +# +CONFIG_PAX_ASLR=y +CONFIG_PAX_RANDUSTACK=y +CONFIG_PAX_RANDMMAP=y + +# +# Miscellaneous hardening features +# +CONFIG_PAX_MEMORY_SANITIZE=y +CONFIG_PAX_MEMORY_STRUCTLEAK=y +CONFIG_PAX_MEMORY_UDEREF=y +CONFIG_PAX_REFCOUNT=y +CONFIG_PAX_USERCOPY=y +# CONFIG_PAX_LATENT_ENTROPY is not set + +# +# Memory Protections +# +# CONFIG_GRKERNSEC_KMEM is not set +CONFIG_GRKERNSEC_JIT_HARDEN=y +# CONFIG_GRKERNSEC_PERF_HARDEN is not set +CONFIG_GRKERNSEC_RAND_THREADSTACK=y +CONFIG_GRKERNSEC_PROC_MEMMAP=y +CONFIG_GRKERNSEC_BRUTE=y +CONFIG_GRKERNSEC_MODHARDEN=y +CONFIG_GRKERNSEC_HIDESYM=y +CONFIG_GRKERNSEC_KERN_LOCKOUT=y + +# +# Role Based Access Control Options +# +CONFIG_GRKERNSEC_NO_RBAC=y +# CONFIG_GRKERNSEC_ACL_HIDEKERN is not set +CONFIG_GRKERNSEC_ACL_MAXTRIES=3 +CONFIG_GRKERNSEC_ACL_TIMEOUT=30 + +# +# Filesystem Protections +# +# CONFIG_GRKERNSEC_PROC is not set +CONFIG_GRKERNSEC_LINK=y +# CONFIG_GRKERNSEC_SYMLINKOWN is not set +CONFIG_GRKERNSEC_FIFO=y +# CONFIG_GRKERNSEC_SYSFS_RESTRICT is not set +# CONFIG_GRKERNSEC_ROFS is not set +CONFIG_GRKERNSEC_DEVICE_SIDECHANNEL=y +CONFIG_GRKERNSEC_CHROOT=y +# CONFIG_GRKERNSEC_CHROOT_MOUNT is not set +CONFIG_GRKERNSEC_CHROOT_DOUBLE=y +CONFIG_GRKERNSEC_CHROOT_PIVOT=y +CONFIG_GRKERNSEC_CHROOT_CHDIR=y +# CONFIG_GRKERNSEC_CHROOT_CHMOD is not set +CONFIG_GRKERNSEC_CHROOT_FCHDIR=y +# CONFIG_GRKERNSEC_CHROOT_MKNOD is not set +CONFIG_GRKERNSEC_CHROOT_SHMAT=y +CONFIG_GRKERNSEC_CHROOT_UNIX=y +CONFIG_GRKERNSEC_CHROOT_FINDTASK=y +CONFIG_GRKERNSEC_CHROOT_NICE=y +CONFIG_GRKERNSEC_CHROOT_SYSCTL=y +# CONFIG_GRKERNSEC_CHROOT_CAPS is not set +CONFIG_GRKERNSEC_CHROOT_INITRD=y + +# +# Kernel Auditing +# +# CONFIG_GRKERNSEC_AUDIT_GROUP is not set +# CONFIG_GRKERNSEC_EXECLOG is not set +CONFIG_GRKERNSEC_RESLOG=y +# CONFIG_GRKERNSEC_CHROOT_EXECLOG is not set +# CONFIG_GRKERNSEC_AUDIT_PTRACE is not set +# CONFIG_GRKERNSEC_AUDIT_CHDIR is not set +# CONFIG_GRKERNSEC_AUDIT_MOUNT is not set +CONFIG_GRKERNSEC_SIGNAL=y +CONFIG_GRKERNSEC_FORKFAIL=y +# CONFIG_GRKERNSEC_TIME is not set +CONFIG_GRKERNSEC_PROC_IPADDR=y +# CONFIG_GRKERNSEC_RWXMAP_LOG is not set + +# +# Executable Protections +# +CONFIG_GRKERNSEC_DMESG=y +CONFIG_GRKERNSEC_HARDEN_PTRACE=y +CONFIG_GRKERNSEC_PTRACE_READEXEC=y +CONFIG_GRKERNSEC_SETXID=y +# CONFIG_GRKERNSEC_TPE is not set + +# +# Network Protections +# +CONFIG_GRKERNSEC_RANDNET=y +CONFIG_GRKERNSEC_BLACKHOLE=y +CONFIG_GRKERNSEC_NO_SIMULT_CONNECT=y +# CONFIG_GRKERNSEC_SOCKET is not set + +# +# Physical Protections +# +# CONFIG_GRKERNSEC_DENYUSB is not set + +# +# Sysctl Support +# +# CONFIG_GRKERNSEC_SYSCTL is not set + +# +# Logging Options +# +CONFIG_GRKERNSEC_FLOODTIME=10 +CONFIG_GRKERNSEC_FLOODBURST=6 CONFIG_KEYS=y # CONFIG_ENCRYPTED_KEYS is not set -# CONFIG_KEYS_DEBUG_PROC_KEYS is not set -# CONFIG_SECURITY_DMESG_RESTRICT is not set -# CONFIG_SECURITY is not set -# CONFIG_SECURITYFS is not set +CONFIG_KEYS_DEBUG_PROC_KEYS=y +CONFIG_SECURITY_DMESG_RESTRICT=y +CONFIG_SECURITY=y +CONFIG_SECURITYFS=y +CONFIG_SECURITY_NETWORK=y +CONFIG_SECURITY_NETWORK_XFRM=y +# CONFIG_SECURITY_PATH is not set +# CONFIG_SECURITY_SELINUX is not set +# CONFIG_SECURITY_SMACK is not set +# CONFIG_SECURITY_TOMOYO is not set +# CONFIG_SECURITY_APPARMOR is not set +# CONFIG_IMA is not set +# CONFIG_EVM is not set CONFIG_DEFAULT_SECURITY_DAC=y CONFIG_DEFAULT_SECURITY="" CONFIG_XOR_BLOCKS=m @@ -3277,7 +4241,7 @@ CONFIG_CRYPTO_MANAGER2=y CONFIG_CRYPTO_USER=m CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y CONFIG_CRYPTO_GF128MUL=m -# CONFIG_CRYPTO_NULL is not set +CONFIG_CRYPTO_NULL=m CONFIG_CRYPTO_WORKQUEUE=y CONFIG_CRYPTO_CRYPTD=m CONFIG_CRYPTO_AUTHENC=m @@ -3304,6 +4268,7 @@ CONFIG_CRYPTO_XTS=m # # Hash modes # +CONFIG_CRYPTO_CMAC=m CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_XCBC=m CONFIG_CRYPTO_VMAC=m @@ -3311,7 +4276,8 @@ CONFIG_CRYPTO_VMAC=m # # Digest # -CONFIG_CRYPTO_CRC32C=m +CONFIG_CRYPTO_CRC32C=y +CONFIG_CRYPTO_CRC32=m CONFIG_CRYPTO_GHASH=m CONFIG_CRYPTO_MD4=m CONFIG_CRYPTO_MD5=m @@ -3321,7 +4287,8 @@ CONFIG_CRYPTO_RMD160=m CONFIG_CRYPTO_RMD256=m CONFIG_CRYPTO_RMD320=m CONFIG_CRYPTO_SHA1=m -CONFIG_CRYPTO_SHA256=m +CONFIG_CRYPTO_SHA1_ARM=m +CONFIG_CRYPTO_SHA256=y CONFIG_CRYPTO_SHA512=m CONFIG_CRYPTO_TGR192=m CONFIG_CRYPTO_WP512=m @@ -3329,12 +4296,14 @@ CONFIG_CRYPTO_WP512=m # # Ciphers # -CONFIG_CRYPTO_AES=m +CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_AES_ARM=m CONFIG_CRYPTO_ANUBIS=m CONFIG_CRYPTO_ARC4=m CONFIG_CRYPTO_BLOWFISH=m CONFIG_CRYPTO_BLOWFISH_COMMON=m CONFIG_CRYPTO_CAMELLIA=m +CONFIG_CRYPTO_CAST_COMMON=m CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST6=m CONFIG_CRYPTO_DES=m @@ -3362,6 +4331,10 @@ CONFIG_CRYPTO_USER_API=m CONFIG_CRYPTO_USER_API_HASH=m CONFIG_CRYPTO_USER_API_SKCIPHER=m CONFIG_CRYPTO_HW=y +CONFIG_ASYMMETRIC_KEY_TYPE=m +CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=m +CONFIG_PUBLIC_KEY_ALGO_RSA=m +CONFIG_X509_CERTIFICATE_PARSER=m # CONFIG_BINARY_PRINTF is not set
# @@ -3369,11 +4342,20 @@ CONFIG_CRYPTO_HW=y # CONFIG_RAID6_PQ=m CONFIG_BITREVERSE=y +CONFIG_GENERIC_STRNCPY_FROM_USER=y +CONFIG_GENERIC_STRNLEN_USER=y +CONFIG_GENERIC_PCI_IOMAP=y +CONFIG_GENERIC_IO=y CONFIG_CRC_CCITT=m CONFIG_CRC16=y CONFIG_CRC_T10DIF=m CONFIG_CRC_ITU_T=m CONFIG_CRC32=y +# CONFIG_CRC32_SELFTEST is not set +CONFIG_CRC32_SLICEBY8=y +# CONFIG_CRC32_SLICEBY4 is not set +# CONFIG_CRC32_SARWATE is not set +# CONFIG_CRC32_BIT is not set CONFIG_CRC7=m CONFIG_LIBCRC32C=m CONFIG_CRC8=m @@ -3403,7 +4385,14 @@ CONFIG_TEXTSEARCH_FSM=m CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT=y CONFIG_HAS_DMA=y +CONFIG_DQL=y CONFIG_NLATTR=y CONFIG_GENERIC_ATOMIC64=y +CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y CONFIG_AVERAGE=y +CONFIG_CLZ_TAB=y CONFIG_CORDIC=m +# CONFIG_DDR is not set +CONFIG_MPILIB=m +CONFIG_OID_REGISTRY=m +# CONFIG_VIRTUALIZATION is not set diff --git a/config/kernel/kernel.config.i586-ipfire b/config/kernel/kernel.config.i586-ipfire index ae5e371..9ec9523 100644 --- a/config/kernel/kernel.config.i586-ipfire +++ b/config/kernel/kernel.config.i586-ipfire @@ -1,46 +1,34 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/i386 3.2.47 Kernel Configuration +# Linux/x86 3.10.33 Kernel Configuration # # CONFIG_64BIT is not set CONFIG_X86_32=y -# CONFIG_X86_64 is not set CONFIG_X86=y CONFIG_INSTRUCTION_DECODER=y CONFIG_OUTPUT_FORMAT="elf32-i386" CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig" -CONFIG_GENERIC_CMOS_UPDATE=y -CONFIG_CLOCKSOURCE_WATCHDOG=y -CONFIG_GENERIC_CLOCKEVENTS=y -CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y CONFIG_LOCKDEP_SUPPORT=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_HAVE_LATENCYTOP_SUPPORT=y CONFIG_MMU=y -CONFIG_ZONE_DMA=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_GENERIC_ISA_DMA=y -CONFIG_GENERIC_IOMAP=y CONFIG_GENERIC_BUG=y CONFIG_GENERIC_HWEIGHT=y -CONFIG_GENERIC_GPIO=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y -# CONFIG_RWSEM_GENERIC_SPINLOCK is not set CONFIG_RWSEM_XCHGADD_ALGORITHM=y -CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y CONFIG_GENERIC_CALIBRATE_DELAY=y -# CONFIG_GENERIC_TIME_VSYSCALL is not set CONFIG_ARCH_HAS_CPU_RELAX=y -CONFIG_ARCH_HAS_DEFAULT_IDLE=y CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y +CONFIG_ARCH_HAS_CPU_AUTOPROBE=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y # CONFIG_ZONE_DMA32 is not set -CONFIG_ARCH_POPULATES_NODE_MAP=y # CONFIG_AUDIT_ARCH is not set CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y @@ -48,16 +36,15 @@ CONFIG_HAVE_INTEL_TXT=y CONFIG_X86_32_SMP=y CONFIG_X86_HT=y CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx" -CONFIG_KTIME_SCALAR=y CONFIG_ARCH_CPU_PROBE_RELEASE=y +CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" -CONFIG_HAVE_IRQ_WORK=y CONFIG_IRQ_WORK=y +CONFIG_BUILDTIME_EXTABLE_SORT=y
# # General setup # -CONFIG_EXPERIMENTAL=y CONFIG_INIT_ENV_ARG_LIMIT=32 CONFIG_CROSS_COMPILE="" CONFIG_LOCALVERSION="" @@ -69,8 +56,8 @@ CONFIG_HAVE_KERNEL_XZ=y CONFIG_HAVE_KERNEL_LZO=y # CONFIG_KERNEL_GZIP is not set # CONFIG_KERNEL_BZIP2 is not set -CONFIG_KERNEL_LZMA=y -# CONFIG_KERNEL_XZ is not set +# CONFIG_KERNEL_LZMA is not set +CONFIG_KERNEL_XZ=y # CONFIG_KERNEL_LZO is not set CONFIG_DEFAULT_HOSTNAME="(none)" CONFIG_SWAP=y @@ -78,54 +65,99 @@ CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE_SYSCTL=y -CONFIG_BSD_PROCESS_ACCT=y -CONFIG_BSD_PROCESS_ACCT_V3=y -# CONFIG_FHANDLE is not set -CONFIG_TASKSTATS=y -CONFIG_TASK_DELAY_ACCT=y -# CONFIG_TASK_XACCT is not set +CONFIG_FHANDLE=y CONFIG_AUDIT=y CONFIG_AUDITSYSCALL=y CONFIG_AUDIT_WATCH=y CONFIG_AUDIT_TREE=y +CONFIG_AUDIT_LOGINUID_IMMUTABLE=y CONFIG_HAVE_GENERIC_HARDIRQS=y
# # IRQ subsystem # CONFIG_GENERIC_HARDIRQS=y -CONFIG_HAVE_SPARSE_IRQ=y CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y CONFIG_GENERIC_PENDING_IRQ=y -CONFIG_GENERIC_IRQ_CHIP=y +CONFIG_IRQ_DOMAIN=y +# CONFIG_IRQ_DOMAIN_DEBUG is not set CONFIG_IRQ_FORCED_THREADING=y CONFIG_SPARSE_IRQ=y +CONFIG_CLOCKSOURCE_WATCHDOG=y +CONFIG_KTIME_SCALAR=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y +CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y +CONFIG_GENERIC_CMOS_UPDATE=y + +# +# Timers subsystem +# +CONFIG_TICK_ONESHOT=y +CONFIG_NO_HZ_COMMON=y +# CONFIG_HZ_PERIODIC is not set +CONFIG_NO_HZ_IDLE=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y + +# +# CPU/Task time and stats accounting +# +# CONFIG_TICK_CPU_ACCOUNTING is not set +CONFIG_IRQ_TIME_ACCOUNTING=y +CONFIG_BSD_PROCESS_ACCT=y +# CONFIG_BSD_PROCESS_ACCT_V3 is not set +CONFIG_TASKSTATS=y +CONFIG_TASK_DELAY_ACCT=y +CONFIG_TASK_XACCT=y +CONFIG_TASK_IO_ACCOUNTING=y
# # RCU Subsystem # CONFIG_TREE_RCU=y # CONFIG_PREEMPT_RCU is not set -# CONFIG_RCU_TRACE is not set +CONFIG_RCU_STALL_COMMON=y CONFIG_RCU_FANOUT=32 +CONFIG_RCU_FANOUT_LEAF=16 # CONFIG_RCU_FANOUT_EXACT is not set -# CONFIG_RCU_FAST_NO_HZ is not set +CONFIG_RCU_FAST_NO_HZ=y # CONFIG_TREE_RCU_TRACE is not set +CONFIG_RCU_NOCB_CPU=y +# CONFIG_RCU_NOCB_CPU_NONE is not set +# CONFIG_RCU_NOCB_CPU_ZERO is not set +CONFIG_RCU_NOCB_CPU_ALL=y # CONFIG_IKCONFIG is not set -CONFIG_LOG_BUF_SHIFT=17 +CONFIG_LOG_BUF_SHIFT=18 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y -# CONFIG_CGROUPS is not set +CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y +CONFIG_ARCH_WANTS_PROT_NUMA_PROT_NONE=y +CONFIG_CGROUPS=y +# CONFIG_CGROUP_DEBUG is not set +CONFIG_CGROUP_FREEZER=y +CONFIG_CGROUP_DEVICE=y +CONFIG_CPUSETS=y +CONFIG_PROC_PID_CPUSET=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_RESOURCE_COUNTERS=y +# CONFIG_MEMCG is not set +CONFIG_CGROUP_PERF=y +CONFIG_CGROUP_SCHED=y +CONFIG_FAIR_GROUP_SCHED=y +# CONFIG_CFS_BANDWIDTH is not set +CONFIG_RT_GROUP_SCHED=y +CONFIG_BLK_CGROUP=y +# CONFIG_DEBUG_BLK_CGROUP is not set CONFIG_NAMESPACES=y CONFIG_UTS_NS=y CONFIG_IPC_NS=y -# CONFIG_USER_NS is not set -# CONFIG_PID_NS is not set -# CONFIG_NET_NS is not set -# CONFIG_SCHED_AUTOGROUP is not set -CONFIG_SYSFS_DEPRECATED=y -CONFIG_SYSFS_DEPRECATED_V2=y -# CONFIG_RELAY is not set +CONFIG_PID_NS=y +CONFIG_NET_NS=y +CONFIG_SCHED_AUTOGROUP=y +# CONFIG_SYSFS_DEPRECATED is not set +CONFIG_RELAY=y CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" CONFIG_RD_GZIP=y @@ -136,17 +168,19 @@ CONFIG_RD_LZO=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_SYSCTL=y CONFIG_ANON_INODES=y -# CONFIG_EXPERT is not set +CONFIG_HAVE_UID16=y +CONFIG_SYSCTL_EXCEPTION_TRACE=y +CONFIG_HOTPLUG=y +CONFIG_HAVE_PCSPKR_PLATFORM=y +CONFIG_EXPERT=y CONFIG_UID16=y # CONFIG_SYSCTL_SYSCALL is not set CONFIG_KALLSYMS=y -# CONFIG_KALLSYMS_ALL is not set -CONFIG_HOTPLUG=y +CONFIG_KALLSYMS_ALL=y CONFIG_PRINTK=y CONFIG_BUG=y CONFIG_ELF_CORE=y CONFIG_PCSPKR_PLATFORM=y -CONFIG_HAVE_PCSPKR_PLATFORM=y CONFIG_BASE_FULL=y CONFIG_FUTEX=y CONFIG_EPOLL=y @@ -155,46 +189,69 @@ CONFIG_TIMERFD=y CONFIG_EVENTFD=y CONFIG_SHMEM=y CONFIG_AIO=y -# CONFIG_EMBEDDED is not set +CONFIG_PCI_QUIRKS=y +CONFIG_EMBEDDED=y CONFIG_HAVE_PERF_EVENTS=y
# # Kernel Performance Events And Counters # CONFIG_PERF_EVENTS=y -# CONFIG_PERF_COUNTERS is not set # CONFIG_DEBUG_PERF_USE_VMALLOC is not set CONFIG_VM_EVENT_COUNTERS=y -CONFIG_PCI_QUIRKS=y CONFIG_SLUB_DEBUG=y # CONFIG_COMPAT_BRK is not set # CONFIG_SLAB is not set CONFIG_SLUB=y +# CONFIG_SLOB is not set # CONFIG_PROFILING is not set +CONFIG_TRACEPOINTS=y CONFIG_HAVE_OPROFILE=y +CONFIG_OPROFILE_NMI_TIMER=y # CONFIG_KPROBES is not set -# CONFIG_JUMP_LABEL is not set +CONFIG_JUMP_LABEL=y +# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_ARCH_USE_BUILTIN_BSWAP=y CONFIG_USER_RETURN_NOTIFIER=y CONFIG_HAVE_IOREMAP_PROT=y CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y CONFIG_HAVE_OPTPROBES=y +CONFIG_HAVE_KPROBES_ON_FTRACE=y CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_DMA_ATTRS=y +CONFIG_HAVE_DMA_CONTIGUOUS=y CONFIG_USE_GENERIC_SMP_HELPERS=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_CLK=y CONFIG_HAVE_DMA_API_DEBUG=y CONFIG_HAVE_HW_BREAKPOINT=y CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y CONFIG_HAVE_USER_RETURN_NOTIFIER=y CONFIG_HAVE_PERF_EVENTS_NMI=y +CONFIG_HAVE_PERF_REGS=y +CONFIG_HAVE_PERF_USER_STACK_DUMP=y CONFIG_HAVE_ARCH_JUMP_LABEL=y CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y +CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y +CONFIG_HAVE_CMPXCHG_LOCAL=y +CONFIG_HAVE_CMPXCHG_DOUBLE=y +CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y +CONFIG_HAVE_ARCH_SECCOMP_FILTER=y +CONFIG_SECCOMP_FILTER=y +CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y +CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y +CONFIG_MODULES_USE_ELF_REL=y +CONFIG_CLONE_BACKWARDS=y +CONFIG_OLD_SIGSUSPEND3=y +CONFIG_OLD_SIGACTION=y
# # GCOV-based kernel profiling # +# CONFIG_GCOV_KERNEL is not set CONFIG_HAVE_GENERIC_DMA_COHERENT=y CONFIG_SLABINFO=y CONFIG_RT_MUTEXES=y @@ -202,15 +259,40 @@ CONFIG_BASE_SMALL=0 CONFIG_MODULES=y # CONFIG_MODULE_FORCE_LOAD is not set CONFIG_MODULE_UNLOAD=y -CONFIG_MODULE_FORCE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set # CONFIG_MODVERSIONS is not set -# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_MODULE_SRCVERSION_ALL=y +# CONFIG_MODULE_SIG is not set CONFIG_STOP_MACHINE=y CONFIG_BLOCK=y CONFIG_LBDAF=y CONFIG_BLK_DEV_BSG=y CONFIG_BLK_DEV_BSGLIB=y -# CONFIG_BLK_DEV_INTEGRITY is not set +CONFIG_BLK_DEV_INTEGRITY=y +CONFIG_BLK_DEV_THROTTLING=y + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +# CONFIG_MAC_PARTITION is not set +CONFIG_MSDOS_PARTITION=y +# CONFIG_BSD_DISKLABEL is not set +# CONFIG_MINIX_SUBPARTITION is not set +# CONFIG_SOLARIS_X86_PARTITION is not set +# CONFIG_UNIXWARE_DISKLABEL is not set +CONFIG_LDM_PARTITION=y +# CONFIG_LDM_DEBUG is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +# CONFIG_KARMA_PARTITION is not set +CONFIG_EFI_PARTITION=y +# CONFIG_SYSV68_PARTITION is not set
# # IO Schedulers @@ -218,74 +300,53 @@ CONFIG_BLK_DEV_BSGLIB=y CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_DEADLINE=y CONFIG_IOSCHED_CFQ=y +CONFIG_CFQ_GROUP_IOSCHED=y # CONFIG_DEFAULT_DEADLINE is not set CONFIG_DEFAULT_CFQ=y # CONFIG_DEFAULT_NOOP is not set CONFIG_DEFAULT_IOSCHED="cfq" CONFIG_PREEMPT_NOTIFIERS=y CONFIG_PADATA=y -# CONFIG_INLINE_SPIN_TRYLOCK is not set -# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set -# CONFIG_INLINE_SPIN_LOCK is not set -# CONFIG_INLINE_SPIN_LOCK_BH is not set -# CONFIG_INLINE_SPIN_LOCK_IRQ is not set -# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set -CONFIG_INLINE_SPIN_UNLOCK=y -# CONFIG_INLINE_SPIN_UNLOCK_BH is not set +CONFIG_ASN1=m CONFIG_INLINE_SPIN_UNLOCK_IRQ=y -# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set -# CONFIG_INLINE_READ_TRYLOCK is not set -# CONFIG_INLINE_READ_LOCK is not set -# CONFIG_INLINE_READ_LOCK_BH is not set -# CONFIG_INLINE_READ_LOCK_IRQ is not set -# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set CONFIG_INLINE_READ_UNLOCK=y -# CONFIG_INLINE_READ_UNLOCK_BH is not set CONFIG_INLINE_READ_UNLOCK_IRQ=y -# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set -# CONFIG_INLINE_WRITE_TRYLOCK is not set -# CONFIG_INLINE_WRITE_LOCK is not set -# CONFIG_INLINE_WRITE_LOCK_BH is not set -# CONFIG_INLINE_WRITE_LOCK_IRQ is not set -# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set CONFIG_INLINE_WRITE_UNLOCK=y -# CONFIG_INLINE_WRITE_UNLOCK_BH is not set CONFIG_INLINE_WRITE_UNLOCK_IRQ=y -# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set CONFIG_MUTEX_SPIN_ON_OWNER=y CONFIG_FREEZER=y
# # Processor type and features # -CONFIG_TICK_ONESHOT=y -CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y -CONFIG_GENERIC_CLOCKEVENTS_BUILD=y -CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y +CONFIG_ZONE_DMA=y CONFIG_SMP=y CONFIG_X86_MPPARSE=y -# CONFIG_X86_BIGSMP is not set +CONFIG_X86_BIGSMP=y CONFIG_X86_EXTENDED_PLATFORM=y +# CONFIG_X86_GOLDFISH is not set # CONFIG_X86_WANT_INTEL_MID is not set +CONFIG_X86_INTEL_LPSS=y # CONFIG_X86_RDC321X is not set -# CONFIG_X86_32_NON_STANDARD is not set +CONFIG_X86_32_NON_STANDARD=y +# CONFIG_X86_NUMAQ is not set CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y -# CONFIG_X86_32_IRIS is not set +# CONFIG_STA2X11 is not set +# CONFIG_X86_SUMMIT is not set +# CONFIG_X86_ES7000 is not set +CONFIG_X86_32_IRIS=m CONFIG_SCHED_OMIT_FRAME_POINTER=y -CONFIG_PARAVIRT_GUEST=y -# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set +CONFIG_HYPERVISOR_GUEST=y +CONFIG_PARAVIRT=y +# CONFIG_PARAVIRT_DEBUG is not set +# CONFIG_PARAVIRT_SPINLOCKS is not set # CONFIG_XEN_PRIVILEGED_GUEST is not set -CONFIG_KVM_CLOCK=y CONFIG_KVM_GUEST=y -CONFIG_LGUEST_GUEST=y -CONFIG_PARAVIRT=y -CONFIG_PARAVIRT_SPINLOCKS=y +# CONFIG_LGUEST_GUEST is not set +CONFIG_PARAVIRT_TIME_ACCOUNTING=y CONFIG_PARAVIRT_CLOCK=y -# CONFIG_PARAVIRT_DEBUG is not set CONFIG_NO_BOOTMEM=y # CONFIG_MEMTEST is not set -# CONFIG_M386 is not set # CONFIG_M486 is not set # CONFIG_M586 is not set CONFIG_M586TSC=y @@ -312,21 +373,14 @@ CONFIG_M586TSC=y # CONFIG_MATOM is not set CONFIG_X86_GENERIC=y CONFIG_X86_INTERNODE_CACHE_SHIFT=6 -CONFIG_X86_CMPXCHG=y -CONFIG_CMPXCHG_LOCAL=y -CONFIG_CMPXCHG_DOUBLE=y CONFIG_X86_L1_CACHE_SHIFT=6 -CONFIG_X86_XADD=y -CONFIG_X86_PPRO_FENCE=y +# CONFIG_X86_PPRO_FENCE is not set CONFIG_X86_F00F_BUG=y -CONFIG_X86_WP_WORKS_OK=y -CONFIG_X86_INVLPG=y -CONFIG_X86_BSWAP=y -CONFIG_X86_POPAD_OK=y CONFIG_X86_ALIGNMENT_16=y CONFIG_X86_INTEL_USERCOPY=y CONFIG_X86_TSC=y CONFIG_X86_MINIMUM_CPU_FAMILY=4 +# CONFIG_PROCESSOR_SELECT is not set CONFIG_CPU_SUP_INTEL=y CONFIG_CPU_SUP_CYRIX_32=y CONFIG_CPU_SUP_AMD=y @@ -336,11 +390,9 @@ CONFIG_CPU_SUP_UMC_32=y CONFIG_HPET_TIMER=y CONFIG_HPET_EMULATE_RTC=y CONFIG_DMI=y -# CONFIG_IOMMU_HELPER is not set CONFIG_NR_CPUS=8 CONFIG_SCHED_SMT=y CONFIG_SCHED_MC=y -CONFIG_IRQ_TIME_ACCOUNTING=y CONFIG_PREEMPT_NONE=y # CONFIG_PREEMPT_VOLUNTARY is not set # CONFIG_PREEMPT is not set @@ -350,27 +402,33 @@ CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y CONFIG_X86_MCE=y CONFIG_X86_MCE_INTEL=y CONFIG_X86_MCE_AMD=y -CONFIG_X86_ANCIENT_MCE=y +# CONFIG_X86_ANCIENT_MCE is not set CONFIG_X86_MCE_THRESHOLD=y -CONFIG_X86_MCE_INJECT=m +# CONFIG_X86_MCE_INJECT is not set CONFIG_X86_THERMAL_VECTOR=y CONFIG_VM86=y CONFIG_TOSHIBA=m CONFIG_I8K=m -CONFIG_X86_REBOOTFIXUPS=y +# CONFIG_X86_REBOOTFIXUPS is not set CONFIG_MICROCODE=m CONFIG_MICROCODE_INTEL=y CONFIG_MICROCODE_AMD=y CONFIG_MICROCODE_OLD_INTERFACE=y -CONFIG_X86_MSR=m +CONFIG_MICROCODE_INTEL_LIB=y +CONFIG_MICROCODE_INTEL_EARLY=y +CONFIG_MICROCODE_EARLY=y +# CONFIG_X86_MSR is not set CONFIG_X86_CPUID=y # CONFIG_NOHIGHMEM is not set CONFIG_HIGHMEM4G=y # CONFIG_HIGHMEM64G is not set +CONFIG_VMSPLIT_3G=y +# CONFIG_VMSPLIT_3G_OPT is not set +# CONFIG_VMSPLIT_2G is not set +# CONFIG_VMSPLIT_2G_OPT is not set +# CONFIG_VMSPLIT_1G is not set CONFIG_PAGE_OFFSET=0xC0000000 CONFIG_HIGHMEM=y -# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set -# CONFIG_ARCH_DMA_ADDR_T_64BIT is not set CONFIG_ARCH_FLATMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y @@ -382,9 +440,15 @@ CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y CONFIG_SPARSEMEM_STATIC=y CONFIG_HAVE_MEMBLOCK=y +CONFIG_HAVE_MEMBLOCK_NODE_MAP=y +CONFIG_ARCH_DISCARD_MEMBLOCK=y +CONFIG_MEMORY_ISOLATION=y +# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set CONFIG_PAGEFLAGS_EXTENDED=y CONFIG_SPLIT_PTLOCK_CPUS=4 -# CONFIG_COMPACTION is not set +CONFIG_BALLOON_COMPACTION=y +CONFIG_COMPACTION=y +CONFIG_MIGRATION=y # CONFIG_PHYS_ADDR_T_64BIT is not set CONFIG_ZONE_DMA_FLAG=1 CONFIG_BOUNCE=y @@ -393,19 +457,28 @@ CONFIG_MMU_NOTIFIER=y CONFIG_KSM=y CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y -# CONFIG_MEMORY_FAILURE is not set -# CONFIG_TRANSPARENT_HUGEPAGE is not set -# CONFIG_CLEANCACHE is not set -# CONFIG_HIGHPTE is not set -# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set +CONFIG_MEMORY_FAILURE=y +CONFIG_TRANSPARENT_HUGEPAGE=y +CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y +# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set +CONFIG_CROSS_MEMORY_ATTACH=y +CONFIG_CLEANCACHE=y +# CONFIG_FRONTSWAP is not set +CONFIG_HIGHPTE=y +CONFIG_X86_CHECK_BIOS_CORRUPTION=y +CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y CONFIG_X86_RESERVE_LOW=64 -CONFIG_MATH_EMULATION=y +# CONFIG_MATH_EMULATION is not set CONFIG_MTRR=y -# CONFIG_MTRR_SANITIZER is not set +CONFIG_MTRR_SANITIZER=y +CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=1 +CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1 CONFIG_X86_PAT=y CONFIG_ARCH_USES_PG_UNCACHED=y CONFIG_ARCH_RANDOM=y -# CONFIG_EFI is not set +CONFIG_X86_SMAP=y +CONFIG_EFI=y +CONFIG_EFI_STUB=y CONFIG_SECCOMP=y CONFIG_CC_STACKPROTECTOR=y # CONFIG_HZ_100 is not set @@ -415,12 +488,14 @@ CONFIG_HZ_300=y CONFIG_HZ=300 CONFIG_SCHED_HRTICK=y # CONFIG_KEXEC is not set -# CONFIG_CRASH_DUMP is not set -CONFIG_PHYSICAL_START=0x1000000 -# CONFIG_RELOCATABLE is not set -CONFIG_PHYSICAL_ALIGN=0x100000 +CONFIG_CRASH_DUMP=y +CONFIG_PHYSICAL_START=0x400000 +CONFIG_RELOCATABLE=y +CONFIG_X86_NEED_RELOCS=y +CONFIG_PHYSICAL_ALIGN=0x400000 CONFIG_HOTPLUG_CPU=y -CONFIG_COMPAT_VDSO=y +# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set +# CONFIG_DEBUG_HOTPLUG_CPU0 is not set # CONFIG_CMDLINE_BOOL is not set CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -429,43 +504,56 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y # CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y -# CONFIG_HIBERNATION is not set +CONFIG_HIBERNATE_CALLBACKS=y +CONFIG_HIBERNATION=y +CONFIG_PM_STD_PARTITION="" CONFIG_PM_SLEEP=y CONFIG_PM_SLEEP_SMP=y +# CONFIG_PM_AUTOSLEEP is not set +# CONFIG_PM_WAKELOCKS is not set CONFIG_PM_RUNTIME=y CONFIG_PM=y # CONFIG_PM_DEBUG is not set +CONFIG_PM_CLK=y CONFIG_ACPI=y CONFIG_ACPI_SLEEP=y -# CONFIG_ACPI_PROCFS is not set -CONFIG_ACPI_PROCFS_POWER=y +CONFIG_ACPI_PROCFS=y +# CONFIG_ACPI_PROCFS_POWER is not set CONFIG_ACPI_EC_DEBUGFS=m -CONFIG_ACPI_PROC_EVENT=y -CONFIG_ACPI_AC=m -CONFIG_ACPI_BATTERY=m -CONFIG_ACPI_BUTTON=m +# CONFIG_ACPI_PROC_EVENT is not set +CONFIG_ACPI_AC=y +CONFIG_ACPI_BATTERY=y +CONFIG_ACPI_BUTTON=y CONFIG_ACPI_VIDEO=m -CONFIG_ACPI_FAN=m +CONFIG_ACPI_FAN=y CONFIG_ACPI_DOCK=y -CONFIG_ACPI_PROCESSOR=m +CONFIG_ACPI_I2C=m +CONFIG_ACPI_PROCESSOR=y CONFIG_ACPI_IPMI=m CONFIG_ACPI_HOTPLUG_CPU=y CONFIG_ACPI_PROCESSOR_AGGREGATOR=m -CONFIG_ACPI_THERMAL=m -CONFIG_ACPI_CUSTOM_DSDT_FILE="" +CONFIG_ACPI_THERMAL=y # CONFIG_ACPI_CUSTOM_DSDT is not set -CONFIG_ACPI_BLACKLIST_YEAR=0 +CONFIG_ACPI_INITRD_TABLE_OVERRIDE=y +CONFIG_ACPI_BLACKLIST_YEAR=1999 # CONFIG_ACPI_DEBUG is not set -CONFIG_ACPI_PCI_SLOT=m +CONFIG_ACPI_PCI_SLOT=y CONFIG_X86_PM_TIMER=y -CONFIG_ACPI_CONTAINER=m +CONFIG_ACPI_CONTAINER=y CONFIG_ACPI_SBS=m -# CONFIG_ACPI_HED is not set -# CONFIG_ACPI_APEI is not set -# CONFIG_SFI is not set +CONFIG_ACPI_HED=y +CONFIG_ACPI_CUSTOM_METHOD=m +# CONFIG_ACPI_BGRT is not set +CONFIG_ACPI_APEI=y +CONFIG_ACPI_APEI_GHES=y +CONFIG_ACPI_APEI_PCIEAER=y +CONFIG_ACPI_APEI_MEMORY_FAILURE=y +# CONFIG_ACPI_APEI_EINJ is not set +# CONFIG_ACPI_APEI_ERST_DEBUG is not set +CONFIG_SFI=y CONFIG_X86_APM_BOOT=y -CONFIG_APM=m -CONFIG_APM_IGNORE_USER_SUSPEND=y +CONFIG_APM=y +# CONFIG_APM_IGNORE_USER_SUSPEND is not set # CONFIG_APM_DO_ENABLE is not set CONFIG_APM_CPU_IDLE=y # CONFIG_APM_DISPLAY_BLANK is not set @@ -476,46 +564,52 @@ CONFIG_APM_CPU_IDLE=y # CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_TABLE=y -CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_FREQ_GOV_COMMON=y +CONFIG_CPU_FREQ_STAT=m CONFIG_CPU_FREQ_STAT_DETAILS=y -CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y -# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y # CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_POWERSAVE=m -CONFIG_CPU_FREQ_GOV_USERSPACE=m +CONFIG_CPU_FREQ_GOV_USERSPACE=y CONFIG_CPU_FREQ_GOV_ONDEMAND=m CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
# # x86 CPU frequency scaling drivers # -CONFIG_X86_PCC_CPUFREQ=m -CONFIG_X86_ACPI_CPUFREQ=m -CONFIG_X86_POWERNOW_K6=m -CONFIG_X86_POWERNOW_K7=m +CONFIG_X86_INTEL_PSTATE=y +CONFIG_X86_PCC_CPUFREQ=y +CONFIG_X86_ACPI_CPUFREQ=y +# CONFIG_X86_ACPI_CPUFREQ_CPB is not set +# CONFIG_X86_POWERNOW_K6 is not set +CONFIG_X86_POWERNOW_K7=y CONFIG_X86_POWERNOW_K7_ACPI=y -CONFIG_X86_POWERNOW_K8=m -CONFIG_X86_GX_SUSPMOD=m -CONFIG_X86_SPEEDSTEP_CENTRINO=m -CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y -CONFIG_X86_SPEEDSTEP_ICH=m -CONFIG_X86_SPEEDSTEP_SMI=m -CONFIG_X86_P4_CLOCKMOD=m -CONFIG_X86_CPUFREQ_NFORCE2=m -CONFIG_X86_LONGRUN=m -CONFIG_X86_LONGHAUL=m -CONFIG_X86_E_POWERSAVER=m +CONFIG_X86_POWERNOW_K8=y +# CONFIG_X86_AMD_FREQ_SENSITIVITY is not set +# CONFIG_X86_GX_SUSPMOD is not set +# CONFIG_X86_SPEEDSTEP_CENTRINO is not set +CONFIG_X86_SPEEDSTEP_ICH=y +CONFIG_X86_SPEEDSTEP_SMI=y +CONFIG_X86_P4_CLOCKMOD=y +# CONFIG_X86_CPUFREQ_NFORCE2 is not set +CONFIG_X86_LONGRUN=y +# CONFIG_X86_LONGHAUL is not set +# CONFIG_X86_E_POWERSAVER is not set
# # shared options # -CONFIG_X86_SPEEDSTEP_LIB=m +CONFIG_X86_SPEEDSTEP_LIB=y # CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK is not set CONFIG_CPU_IDLE=y +# CONFIG_CPU_IDLE_MULTIPLE_DRIVERS is not set CONFIG_CPU_IDLE_GOV_LADDER=y CONFIG_CPU_IDLE_GOV_MENU=y +# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set CONFIG_INTEL_IDLE=y
# @@ -532,16 +626,21 @@ CONFIG_PCI_MMCONFIG=y CONFIG_PCI_DOMAINS=y # CONFIG_PCI_CNB20LE_QUIRK is not set CONFIG_PCIEPORTBUS=y +CONFIG_HOTPLUG_PCI_PCIE=y CONFIG_PCIEAER=y -# CONFIG_PCIE_ECRC is not set -# CONFIG_PCIEAER_INJECT is not set +CONFIG_PCIE_ECRC=y +CONFIG_PCIEAER_INJECT=m CONFIG_PCIEASPM=y # CONFIG_PCIEASPM_DEBUG is not set +# CONFIG_PCIEASPM_DEFAULT is not set +CONFIG_PCIEASPM_POWERSAVE=y +# CONFIG_PCIEASPM_PERFORMANCE is not set CONFIG_PCIE_PME=y CONFIG_ARCH_SUPPORTS_MSI=y CONFIG_PCI_MSI=y # CONFIG_PCI_DEBUG is not set -CONFIG_PCI_STUB=m +# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set +CONFIG_PCI_STUB=y CONFIG_HT_IRQ=y CONFIG_PCI_ATS=y CONFIG_PCI_IOV=y @@ -552,17 +651,17 @@ CONFIG_PCI_LABEL=y CONFIG_ISA_DMA_API=y CONFIG_ISA=y CONFIG_EISA=y -CONFIG_EISA_VLB_PRIMING=y +# CONFIG_EISA_VLB_PRIMING is not set CONFIG_EISA_PCI_EISA=y CONFIG_EISA_VIRTUAL_ROOT=y CONFIG_EISA_NAMES=y -CONFIG_MCA=y -CONFIG_MCA_LEGACY=y -# CONFIG_MCA_PROC_FS is not set CONFIG_SCx200=m CONFIG_SCx200HR_TIMER=m # CONFIG_OLPC is not set +CONFIG_APULED=y CONFIG_ALIX=y +CONFIG_NET5501=y +CONFIG_GEOS=y CONFIG_AMD_NB=y CONFIG_PCCARD=m CONFIG_PCMCIA=m @@ -584,17 +683,25 @@ CONFIG_I82365=m CONFIG_TCIC=m CONFIG_PCMCIA_PROBE=y CONFIG_PCCARD_NONSTATIC=y -# CONFIG_HOTPLUG_PCI is not set +CONFIG_HOTPLUG_PCI=y +# CONFIG_HOTPLUG_PCI_COMPAQ is not set +# CONFIG_HOTPLUG_PCI_IBM is not set +CONFIG_HOTPLUG_PCI_ACPI=y +CONFIG_HOTPLUG_PCI_ACPI_IBM=m +# CONFIG_HOTPLUG_PCI_CPCI is not set +# CONFIG_HOTPLUG_PCI_SHPC is not set # CONFIG_RAPIDIO is not set
# # Executable file formats / Emulations # CONFIG_BINFMT_ELF=y -# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y +CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y +CONFIG_BINFMT_SCRIPT=y CONFIG_HAVE_AOUT=y -# CONFIG_BINFMT_AOUT is not set -# CONFIG_BINFMT_MISC is not set +CONFIG_BINFMT_MISC=y +CONFIG_COREDUMP=y CONFIG_HAVE_ATOMIC_IOMAP=y CONFIG_HAVE_TEXT_POKE_SMP=y CONFIG_NET=y @@ -603,10 +710,13 @@ CONFIG_NET=y # Networking options # CONFIG_PACKET=y +CONFIG_PACKET_DIAG=y CONFIG_UNIX=y +CONFIG_UNIX_DIAG=m CONFIG_XFRM=y -CONFIG_XFRM_USER=m -# CONFIG_XFRM_SUB_POLICY is not set +CONFIG_XFRM_ALGO=y +CONFIG_XFRM_USER=y +CONFIG_XFRM_SUB_POLICY=y CONFIG_XFRM_MIGRATE=y CONFIG_XFRM_STATISTICS=y CONFIG_XFRM_IPCOMP=m @@ -615,7 +725,7 @@ CONFIG_NET_KEY_MIGRATE=y CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y -# CONFIG_IP_FIB_TRIE_STATS is not set +CONFIG_IP_FIB_TRIE_STATS=y CONFIG_IP_MULTIPLE_TABLES=y CONFIG_IP_ROUTE_MULTIPATH=y CONFIG_IP_ROUTE_VERBOSE=y @@ -623,28 +733,31 @@ CONFIG_IP_ROUTE_CLASSID=y # CONFIG_IP_PNP is not set CONFIG_NET_IPIP=m CONFIG_NET_IPGRE_DEMUX=m +CONFIG_NET_IP_TUNNEL=m CONFIG_NET_IPGRE=m CONFIG_NET_IPGRE_BROADCAST=y CONFIG_IP_MROUTE=y -# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set +CONFIG_IP_MROUTE_MULTIPLE_TABLES=y CONFIG_IP_PIMSM_V1=y CONFIG_IP_PIMSM_V2=y -CONFIG_ARPD=y +# CONFIG_ARPD is not set CONFIG_SYN_COOKIES=y +CONFIG_NET_IPVTI=m CONFIG_INET_AH=m CONFIG_INET_ESP=m CONFIG_INET_IPCOMP=m CONFIG_INET_XFRM_TUNNEL=m CONFIG_INET_TUNNEL=m -CONFIG_INET_XFRM_MODE_TRANSPORT=y -CONFIG_INET_XFRM_MODE_TUNNEL=y -CONFIG_INET_XFRM_MODE_BEET=y +CONFIG_INET_XFRM_MODE_TRANSPORT=m +CONFIG_INET_XFRM_MODE_TUNNEL=m +CONFIG_INET_XFRM_MODE_BEET=m CONFIG_INET_LRO=y CONFIG_INET_DIAG=m CONFIG_INET_TCP_DIAG=m +CONFIG_INET_UDP_DIAG=m CONFIG_TCP_CONG_ADVANCED=y CONFIG_TCP_CONG_BIC=m -CONFIG_TCP_CONG_CUBIC=m +CONFIG_TCP_CONG_CUBIC=y CONFIG_TCP_CONG_WESTWOOD=m CONFIG_TCP_CONG_HTCP=m CONFIG_TCP_CONG_HSTCP=m @@ -655,13 +768,15 @@ CONFIG_TCP_CONG_LP=m CONFIG_TCP_CONG_VENO=m CONFIG_TCP_CONG_YEAH=m CONFIG_TCP_CONG_ILLINOIS=m -CONFIG_DEFAULT_RENO=y -CONFIG_DEFAULT_TCP_CONG="reno" -# CONFIG_TCP_MD5SIG is not set +CONFIG_DEFAULT_CUBIC=y +# CONFIG_DEFAULT_RENO is not set +CONFIG_DEFAULT_TCP_CONG="cubic" +CONFIG_TCP_MD5SIG=y CONFIG_IPV6=y -# CONFIG_IPV6_PRIVACY is not set -# CONFIG_IPV6_ROUTER_PREF is not set -# CONFIG_IPV6_OPTIMISTIC_DAD is not set +CONFIG_IPV6_PRIVACY=y +CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_ROUTE_INFO=y +CONFIG_IPV6_OPTIMISTIC_DAD=y CONFIG_INET6_AH=m CONFIG_INET6_ESP=m CONFIG_INET6_IPCOMP=m @@ -673,14 +788,18 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m CONFIG_INET6_XFRM_MODE_BEET=m CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m CONFIG_IPV6_SIT=m -# CONFIG_IPV6_SIT_6RD is not set +CONFIG_IPV6_SIT_6RD=y CONFIG_IPV6_NDISC_NODETYPE=y CONFIG_IPV6_TUNNEL=m +CONFIG_IPV6_GRE=m CONFIG_IPV6_MULTIPLE_TABLES=y -# CONFIG_IPV6_SUBTREES is not set -# CONFIG_IPV6_MROUTE is not set -# CONFIG_NETWORK_SECMARK is not set -CONFIG_NETWORK_PHY_TIMESTAMPING=y +CONFIG_IPV6_SUBTREES=y +CONFIG_IPV6_MROUTE=y +CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y +CONFIG_IPV6_PIMSM_V2=y +# CONFIG_NETLABEL is not set +CONFIG_NETWORK_SECMARK=y +# CONFIG_NETWORK_PHY_TIMESTAMPING is not set CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set CONFIG_NETFILTER_ADVANCED=y @@ -690,13 +809,18 @@ CONFIG_BRIDGE_NETFILTER=y # Core Netfilter Configuration # CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_NETLINK_ACCT=m CONFIG_NETFILTER_NETLINK_QUEUE=m CONFIG_NETFILTER_NETLINK_LOG=m -CONFIG_NF_CONNTRACK=m +CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y -# CONFIG_NF_CONNTRACK_ZONES is not set +CONFIG_NF_CONNTRACK_SECMARK=y +CONFIG_NF_CONNTRACK_ZONES=y +CONFIG_NF_CONNTRACK_PROCFS=y CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CONNTRACK_TIMEOUT=y CONFIG_NF_CONNTRACK_TIMESTAMP=y +CONFIG_NF_CONNTRACK_LABELS=y CONFIG_NF_CT_PROTO_DCCP=m CONFIG_NF_CT_PROTO_GRE=m CONFIG_NF_CT_PROTO_SCTP=m @@ -713,14 +837,28 @@ CONFIG_NF_CONNTRACK_SANE=m CONFIG_NF_CONNTRACK_SIP=m CONFIG_NF_CONNTRACK_TFTP=m CONFIG_NF_CT_NETLINK=m +CONFIG_NF_CT_NETLINK_TIMEOUT=m +CONFIG_NF_CT_NETLINK_HELPER=m +CONFIG_NETFILTER_NETLINK_QUEUE_CT=y +CONFIG_NF_NAT=m +CONFIG_NF_NAT_NEEDED=y +CONFIG_NF_NAT_PROTO_DCCP=m +CONFIG_NF_NAT_PROTO_UDPLITE=m +CONFIG_NF_NAT_PROTO_SCTP=m +CONFIG_NF_NAT_AMANDA=m +CONFIG_NF_NAT_FTP=m +CONFIG_NF_NAT_IRC=m +CONFIG_NF_NAT_SIP=m +CONFIG_NF_NAT_TFTP=m CONFIG_NETFILTER_TPROXY=m -CONFIG_NETFILTER_XTABLES=m +CONFIG_NETFILTER_XTABLES=y
# # Xtables combined modules # CONFIG_NETFILTER_XT_MARK=m CONFIG_NETFILTER_XT_CONNMARK=m +CONFIG_NETFILTER_XT_SET=m
# # Xtables targets @@ -729,20 +867,26 @@ CONFIG_NETFILTER_XT_TARGET_AUDIT=m CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m CONFIG_NETFILTER_XT_TARGET_CONNMARK=m +CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m CONFIG_NETFILTER_XT_TARGET_CT=m CONFIG_NETFILTER_XT_TARGET_DSCP=m CONFIG_NETFILTER_XT_TARGET_HL=m +CONFIG_NETFILTER_XT_TARGET_HMARK=m CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m CONFIG_NETFILTER_XT_TARGET_LED=m +CONFIG_NETFILTER_XT_TARGET_LOG=m CONFIG_NETFILTER_XT_TARGET_IMQ=m CONFIG_NETFILTER_XT_TARGET_MARK=m +CONFIG_NETFILTER_XT_TARGET_NETMAP=m CONFIG_NETFILTER_XT_TARGET_NFLOG=m CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m CONFIG_NETFILTER_XT_TARGET_NOTRACK=m CONFIG_NETFILTER_XT_TARGET_RATEEST=m +CONFIG_NETFILTER_XT_TARGET_REDIRECT=m CONFIG_NETFILTER_XT_TARGET_TEE=m CONFIG_NETFILTER_XT_TARGET_TPROXY=m CONFIG_NETFILTER_XT_TARGET_TRACE=m +CONFIG_NETFILTER_XT_TARGET_SECMARK=m CONFIG_NETFILTER_XT_TARGET_TCPMSS=m CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
@@ -750,9 +894,11 @@ CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m # Xtables matches # CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m +CONFIG_NETFILTER_XT_MATCH_BPF=m CONFIG_NETFILTER_XT_MATCH_CLUSTER=m CONFIG_NETFILTER_XT_MATCH_COMMENT=m CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m +CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m CONFIG_NETFILTER_XT_MATCH_CONNMARK=m CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m @@ -760,17 +906,19 @@ CONFIG_NETFILTER_XT_MATCH_CPU=m CONFIG_NETFILTER_XT_MATCH_DCCP=m CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m CONFIG_NETFILTER_XT_MATCH_DSCP=m +CONFIG_NETFILTER_XT_MATCH_ECN=m CONFIG_NETFILTER_XT_MATCH_ESP=m CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m CONFIG_NETFILTER_XT_MATCH_HELPER=m CONFIG_NETFILTER_XT_MATCH_HL=m CONFIG_NETFILTER_XT_MATCH_IPRANGE=m -CONFIG_NETFILTER_XT_MATCH_IPVS=m +# CONFIG_NETFILTER_XT_MATCH_IPVS is not set CONFIG_NETFILTER_XT_MATCH_LENGTH=m CONFIG_NETFILTER_XT_MATCH_LIMIT=m CONFIG_NETFILTER_XT_MATCH_MAC=m CONFIG_NETFILTER_XT_MATCH_MARK=m CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_NFACCT=m CONFIG_NETFILTER_XT_MATCH_OSF=m CONFIG_NETFILTER_XT_MATCH_OWNER=m CONFIG_NETFILTER_XT_MATCH_POLICY=m @@ -790,7 +938,19 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m CONFIG_NETFILTER_XT_MATCH_TCPMSS=m CONFIG_NETFILTER_XT_MATCH_TIME=m CONFIG_NETFILTER_XT_MATCH_U32=m -# CONFIG_IP_SET is not set +CONFIG_IP_SET=m +CONFIG_IP_SET_MAX=256 +CONFIG_IP_SET_BITMAP_IP=m +CONFIG_IP_SET_BITMAP_IPMAC=m +CONFIG_IP_SET_BITMAP_PORT=m +CONFIG_IP_SET_HASH_IP=m +CONFIG_IP_SET_HASH_IPPORT=m +CONFIG_IP_SET_HASH_IPPORTIP=m +CONFIG_IP_SET_HASH_IPPORTNET=m +CONFIG_IP_SET_HASH_NET=m +CONFIG_IP_SET_HASH_NETPORT=m +CONFIG_IP_SET_HASH_NETIFACE=m +CONFIG_IP_SET_LIST_SET=m CONFIG_IP_VS=m CONFIG_IP_VS_IPV6=y # CONFIG_IP_VS_DEBUG is not set @@ -821,6 +981,11 @@ CONFIG_IP_VS_SED=m CONFIG_IP_VS_NQ=m
# +# IPVS SH scheduler +# +CONFIG_IP_VS_SH_TAB_BITS=8 + +# # IPVS application helper # CONFIG_IP_VS_FTP=m @@ -830,40 +995,31 @@ CONFIG_IP_VS_PE_SIP=m # # IP: Netfilter Configuration # -CONFIG_NF_DEFRAG_IPV4=m -CONFIG_NF_CONNTRACK_IPV4=m -CONFIG_NF_CONNTRACK_PROC_COMPAT=y -CONFIG_IP_NF_QUEUE=m -CONFIG_IP_NF_IPTABLES=m +CONFIG_NF_DEFRAG_IPV4=y +CONFIG_NF_CONNTRACK_IPV4=y +# CONFIG_NF_CONNTRACK_PROC_COMPAT is not set +CONFIG_IP_NF_IPTABLES=y CONFIG_IP_NF_MATCH_AH=m CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_RPFILTER=m CONFIG_IP_NF_MATCH_TTL=m CONFIG_IP_NF_FILTER=m CONFIG_IP_NF_TARGET_REJECT=m -CONFIG_IP_NF_TARGET_LOG=m -CONFIG_IP_NF_TARGET_ULOG=m -CONFIG_NF_NAT=m -CONFIG_NF_NAT_NEEDED=y +# CONFIG_IP_NF_TARGET_ULOG is not set +CONFIG_NF_NAT_IPV4=m CONFIG_IP_NF_TARGET_MASQUERADE=m CONFIG_IP_NF_TARGET_NETMAP=m CONFIG_IP_NF_TARGET_REDIRECT=m CONFIG_NF_NAT_SNMP_BASIC=m -CONFIG_NF_NAT_PROTO_DCCP=m CONFIG_NF_NAT_PROTO_GRE=m -CONFIG_NF_NAT_PROTO_UDPLITE=m -CONFIG_NF_NAT_PROTO_SCTP=m -CONFIG_NF_NAT_FTP=m -CONFIG_NF_NAT_IRC=m -CONFIG_NF_NAT_TFTP=m -CONFIG_NF_NAT_AMANDA=m CONFIG_NF_NAT_PPTP=m CONFIG_NF_NAT_H323=m -CONFIG_NF_NAT_SIP=m CONFIG_IP_NF_MANGLE=m CONFIG_IP_NF_TARGET_CLUSTERIP=m CONFIG_IP_NF_TARGET_ECN=m CONFIG_IP_NF_TARGET_TTL=m CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_SECURITY=m CONFIG_IP_NF_ARPTABLES=m CONFIG_IP_NF_ARPFILTER=m CONFIG_IP_NF_ARP_MANGLE=m @@ -872,10 +1028,9 @@ CONFIG_IP_NF_MATCH_IPP2P=m # # IPv6: Netfilter Configuration # -CONFIG_NF_DEFRAG_IPV6=m -CONFIG_NF_CONNTRACK_IPV6=m -CONFIG_IP6_NF_QUEUE=m -CONFIG_IP6_NF_IPTABLES=m +CONFIG_NF_DEFRAG_IPV6=y +CONFIG_NF_CONNTRACK_IPV6=y +CONFIG_IP6_NF_IPTABLES=y CONFIG_IP6_NF_MATCH_AH=m CONFIG_IP6_NF_MATCH_EUI64=m CONFIG_IP6_NF_MATCH_FRAG=m @@ -883,13 +1038,17 @@ CONFIG_IP6_NF_MATCH_OPTS=m CONFIG_IP6_NF_MATCH_HL=m CONFIG_IP6_NF_MATCH_IPV6HEADER=m CONFIG_IP6_NF_MATCH_MH=m +CONFIG_IP6_NF_MATCH_RPFILTER=m CONFIG_IP6_NF_MATCH_RT=m CONFIG_IP6_NF_TARGET_HL=m -CONFIG_IP6_NF_TARGET_LOG=m CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_TARGET_REJECT=m CONFIG_IP6_NF_MANGLE=m CONFIG_IP6_NF_RAW=m +CONFIG_IP6_NF_SECURITY=m +CONFIG_NF_NAT_IPV6=m +CONFIG_IP6_NF_TARGET_MASQUERADE=m +CONFIG_IP6_NF_TARGET_NPT=m CONFIG_BRIDGE_NF_EBTABLES=m CONFIG_BRIDGE_EBT_BROUTE=m CONFIG_BRIDGE_EBT_T_FILTER=m @@ -910,49 +1069,52 @@ CONFIG_BRIDGE_EBT_MARK_T=m CONFIG_BRIDGE_EBT_REDIRECT=m CONFIG_BRIDGE_EBT_SNAT=m CONFIG_BRIDGE_EBT_LOG=m -CONFIG_BRIDGE_EBT_ULOG=m +# CONFIG_BRIDGE_EBT_ULOG is not set CONFIG_BRIDGE_EBT_NFLOG=m # CONFIG_IP_DCCP is not set -# CONFIG_IP_SCTP is not set +CONFIG_IP_SCTP=m +# CONFIG_SCTP_DBG_MSG is not set +# CONFIG_SCTP_DBG_OBJCNT is not set +# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set +CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y +# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set +CONFIG_SCTP_COOKIE_HMAC_MD5=y +CONFIG_SCTP_COOKIE_HMAC_SHA1=y # CONFIG_RDS is not set # CONFIG_TIPC is not set CONFIG_ATM=m CONFIG_ATM_CLIP=m -CONFIG_ATM_CLIP_NO_ICMP=y +# CONFIG_ATM_CLIP_NO_ICMP is not set # CONFIG_ATM_LANE is not set CONFIG_ATM_BR2684=m # CONFIG_ATM_BR2684_IPFILTER is not set CONFIG_L2TP=m +# CONFIG_L2TP_DEBUGFS is not set CONFIG_L2TP_V3=y CONFIG_L2TP_IP=m CONFIG_L2TP_ETH=m -CONFIG_STP=m +CONFIG_STP=y CONFIG_GARP=m -CONFIG_BRIDGE=m +CONFIG_BRIDGE=y CONFIG_BRIDGE_IGMP_SNOOPING=y +CONFIG_BRIDGE_VLAN_FILTERING=y +CONFIG_HAVE_NET_DSA=y CONFIG_NET_DSA=y CONFIG_NET_DSA_TAG_DSA=y CONFIG_NET_DSA_TAG_EDSA=y CONFIG_NET_DSA_TAG_TRAILER=y -CONFIG_NET_DSA_MV88E6XXX=y -CONFIG_NET_DSA_MV88E6060=y -CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y -CONFIG_NET_DSA_MV88E6131=y -CONFIG_NET_DSA_MV88E6123_61_65=y CONFIG_VLAN_8021Q=m CONFIG_VLAN_8021Q_GVRP=y +# CONFIG_VLAN_8021Q_MVRP is not set # CONFIG_DECNET is not set -CONFIG_LLC=m +CONFIG_LLC=y # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set -# CONFIG_ECONET is not set -# CONFIG_WAN_ROUTER is not set # CONFIG_PHONET is not set -CONFIG_IEEE802154=m -CONFIG_IEEE802154_6LOWPAN=m +# CONFIG_IEEE802154 is not set CONFIG_NET_SCHED=y
# @@ -976,7 +1138,10 @@ CONFIG_NET_SCH_DRR=m CONFIG_NET_SCH_MQPRIO=m CONFIG_NET_SCH_CHOKE=m CONFIG_NET_SCH_QFQ=m +CONFIG_NET_SCH_CODEL=m +CONFIG_NET_SCH_FQ_CODEL=m CONFIG_NET_SCH_INGRESS=m +CONFIG_NET_SCH_PLUG=m
# # Classification @@ -992,6 +1157,7 @@ CONFIG_CLS_U32_MARK=y CONFIG_NET_CLS_RSVP=m CONFIG_NET_CLS_RSVP6=m CONFIG_NET_CLS_FLOW=m +CONFIG_NET_CLS_CGROUP=m CONFIG_NET_EMATCH=y CONFIG_NET_EMATCH_STACK=32 CONFIG_NET_EMATCH_CMP=m @@ -999,6 +1165,7 @@ CONFIG_NET_EMATCH_NBYTE=m CONFIG_NET_EMATCH_U32=m CONFIG_NET_EMATCH_META=m CONFIG_NET_EMATCH_TEXT=m +CONFIG_NET_EMATCH_IPSET=m CONFIG_NET_CLS_ACT=y CONFIG_NET_ACT_POLICE=m CONFIG_NET_ACT_GACT=m @@ -1015,67 +1182,30 @@ CONFIG_NET_SCH_FIFO=y # CONFIG_DCB is not set CONFIG_DNS_RESOLVER=y CONFIG_BATMAN_ADV=m +CONFIG_BATMAN_ADV_BLA=y +CONFIG_BATMAN_ADV_DAT=y +CONFIG_BATMAN_ADV_NC=y # CONFIG_BATMAN_ADV_DEBUG is not set +CONFIG_OPENVSWITCH=m +CONFIG_VSOCKETS=m +CONFIG_VMWARE_VMCI_VSOCKETS=m +CONFIG_NETLINK_MMAP=y +CONFIG_NETLINK_DIAG=m CONFIG_RPS=y CONFIG_RFS_ACCEL=y CONFIG_XPS=y +CONFIG_NETPRIO_CGROUP=m +CONFIG_BQL=y
# # Network testing # # CONFIG_NET_PKTGEN is not set +# CONFIG_NET_DROP_MONITOR is not set # CONFIG_HAMRADIO is not set # CONFIG_CAN is not set -CONFIG_IRDA=m - -# -# IrDA protocols -# -CONFIG_IRLAN=m -CONFIG_IRNET=m -CONFIG_IRCOMM=m -# CONFIG_IRDA_ULTRA is not set - -# -# IrDA options -# -# CONFIG_IRDA_CACHE_LAST_LSAP is not set -# CONFIG_IRDA_FAST_RR is not set -# CONFIG_IRDA_DEBUG is not set - -# -# Infrared-port device drivers -# - -# -# SIR device drivers -# -CONFIG_IRTTY_SIR=m - -# -# Dongle support -# -# CONFIG_DONGLE is not set -CONFIG_KINGSUN_DONGLE=m -CONFIG_KSDAZZLE_DONGLE=m -CONFIG_KS959_DONGLE=m - -# -# FIR device drivers -# -CONFIG_USB_IRDA=m -CONFIG_SIGMATEL_FIR=m -CONFIG_NSC_FIR=m -CONFIG_WINBOND_FIR=m -CONFIG_TOSHIBA_FIR=m -CONFIG_SMC_IRCC_FIR=m -CONFIG_ALI_FIR=m -CONFIG_VLSI_FIR=m -CONFIG_VIA_FIR=m -CONFIG_MCS_FIR=m +# CONFIG_IRDA is not set CONFIG_BT=m -CONFIG_BT_L2CAP=y -CONFIG_BT_SCO=y CONFIG_BT_RFCOMM=m CONFIG_BT_RFCOMM_TTY=y CONFIG_BT_BNEP=m @@ -1094,11 +1224,12 @@ CONFIG_BT_HCIUART_H4=y CONFIG_BT_HCIUART_BCSP=y CONFIG_BT_HCIUART_ATH3K=y CONFIG_BT_HCIUART_LL=y +CONFIG_BT_HCIUART_3WIRE=y CONFIG_BT_HCIBCM203X=m CONFIG_BT_HCIBPA10X=m CONFIG_BT_HCIBFUSB=m -CONFIG_BT_HCIDTL1=m -CONFIG_BT_HCIBT3C=m +# CONFIG_BT_HCIDTL1 is not set +# CONFIG_BT_HCIBT3C is not set CONFIG_BT_HCIBLUECARD=m CONFIG_BT_HCIBTUART=m CONFIG_BT_HCIVHCI=m @@ -1106,9 +1237,7 @@ CONFIG_BT_MRVL=m CONFIG_BT_MRVL_SDIO=m CONFIG_BT_ATH3K=m CONFIG_BT_WILINK=m -CONFIG_AF_RXRPC=m -# CONFIG_AF_RXRPC_DEBUG is not set -CONFIG_RXKAD=m +# CONFIG_AF_RXRPC is not set CONFIG_FIB_RULES=y CONFIG_WIRELESS=y CONFIG_WIRELESS_EXT=y @@ -1120,10 +1249,11 @@ CONFIG_CFG80211=m # CONFIG_NL80211_TESTMODE is not set # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set # CONFIG_CFG80211_REG_DEBUG is not set -# CONFIG_CFG80211_DEFAULT_PS is not set +# CONFIG_CFG80211_CERTIFICATION_ONUS is not set +CONFIG_CFG80211_DEFAULT_PS=y +# CONFIG_CFG80211_DEBUGFS is not set # CONFIG_CFG80211_INTERNAL_REGDB is not set CONFIG_CFG80211_WEXT=y -CONFIG_WIRELESS_EXT_SYSFS=y CONFIG_LIB80211=m CONFIG_LIB80211_CRYPT_WEP=m CONFIG_LIB80211_CRYPT_CCMP=m @@ -1131,23 +1261,24 @@ CONFIG_LIB80211_CRYPT_TKIP=m # CONFIG_LIB80211_DEBUG is not set CONFIG_MAC80211=m CONFIG_MAC80211_HAS_RC=y +# CONFIG_MAC80211_RC_PID is not set CONFIG_MAC80211_RC_MINSTREL=y CONFIG_MAC80211_RC_MINSTREL_HT=y CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" CONFIG_MAC80211_MESH=y CONFIG_MAC80211_LEDS=y +# CONFIG_MAC80211_DEBUGFS is not set +# CONFIG_MAC80211_MESSAGE_TRACING is not set # CONFIG_MAC80211_DEBUG_MENU is not set # CONFIG_WIMAX is not set CONFIG_RFKILL=m CONFIG_RFKILL_LEDS=y CONFIG_RFKILL_INPUT=y -CONFIG_RFKILL_REGULATOR=m +CONFIG_RFKILL_GPIO=m # CONFIG_NET_9P is not set # CONFIG_CAIF is not set -CONFIG_CEPH_LIB=m -# CONFIG_CEPH_LIB_PRETTYDEBUG is not set -# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set +# CONFIG_CEPH_LIB is not set # CONFIG_NFC is not set
# @@ -1157,100 +1288,31 @@ CONFIG_CEPH_LIB=m # # Generic Driver Options # -CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -# CONFIG_DEVTMPFS is not set -# CONFIG_STANDALONE is not set -# CONFIG_PREVENT_FIRMWARE_BUILD is not set +CONFIG_UEVENT_HELPER_PATH="" +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y # CONFIG_FIRMWARE_IN_KERNEL is not set CONFIG_EXTRA_FIRMWARE="" +CONFIG_FW_LOADER_USER_HELPER=y # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set # CONFIG_SYS_HYPERVISOR is not set +# CONFIG_GENERIC_CPU_DEVICES is not set CONFIG_REGMAP=y CONFIG_REGMAP_I2C=m -CONFIG_CONNECTOR=m -CONFIG_MTD=m -CONFIG_MTD_TESTS=m -# CONFIG_MTD_REDBOOT_PARTS is not set -CONFIG_MTD_AR7_PARTS=m - -# -# User Modules And Translation Layers -# -CONFIG_MTD_CHAR=m -CONFIG_MTD_BLKDEVS=m -CONFIG_MTD_BLOCK=m -# CONFIG_MTD_BLOCK_RO is not set -# CONFIG_FTL is not set -# CONFIG_NFTL is not set -# CONFIG_INFTL is not set -# CONFIG_RFD_FTL is not set -# CONFIG_SSFDC is not set -CONFIG_SM_FTL=m -# CONFIG_MTD_OOPS is not set -# CONFIG_MTD_SWAP is not set - -# -# RAM/ROM/Flash chip drivers -# -# CONFIG_MTD_CFI is not set -# CONFIG_MTD_JEDECPROBE is not set -CONFIG_MTD_MAP_BANK_WIDTH_1=y -CONFIG_MTD_MAP_BANK_WIDTH_2=y -CONFIG_MTD_MAP_BANK_WIDTH_4=y -# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set -CONFIG_MTD_CFI_I1=y -CONFIG_MTD_CFI_I2=y -# CONFIG_MTD_CFI_I4 is not set -# CONFIG_MTD_CFI_I8 is not set -# CONFIG_MTD_RAM is not set -# CONFIG_MTD_ROM is not set -# CONFIG_MTD_ABSENT is not set - -# -# Mapping drivers for chip access -# -# CONFIG_MTD_COMPLEX_MAPPINGS is not set -CONFIG_MTD_PHYSMAP=m -# CONFIG_MTD_PHYSMAP_COMPAT is not set -# CONFIG_MTD_TS5500 is not set -# CONFIG_MTD_INTEL_VR_NOR is not set -# CONFIG_MTD_PLATRAM is not set - -# -# Self-contained MTD device drivers -# -# CONFIG_MTD_PMC551 is not set -# CONFIG_MTD_SLRAM is not set -# CONFIG_MTD_PHRAM is not set -# CONFIG_MTD_MTDRAM is not set -# CONFIG_MTD_BLOCK2MTD is not set - -# -# Disk-On-Chip Device Drivers -# -# CONFIG_MTD_DOC2000 is not set -# CONFIG_MTD_DOC2001 is not set -# CONFIG_MTD_DOC2001PLUS is not set -# CONFIG_MTD_DOCG3 is not set -CONFIG_MTD_NAND_ECC=m -# CONFIG_MTD_NAND_ECC_SMC is not set -# CONFIG_MTD_NAND is not set -# CONFIG_MTD_ONENAND is not set - -# -# LPDDR flash memory drivers -# -CONFIG_MTD_LPDDR=m -CONFIG_MTD_QINFO_PROBE=m -CONFIG_MTD_UBI=m -CONFIG_MTD_UBI_WL_THRESHOLD=4096 -CONFIG_MTD_UBI_BEB_RESERVE=1 -# CONFIG_MTD_UBI_GLUEBI is not set -# CONFIG_MTD_UBI_DEBUG is not set +CONFIG_REGMAP_IRQ=y +CONFIG_DMA_SHARED_BUFFER=y +# CONFIG_CMA is not set + +# +# Bus devices +# +CONFIG_CONNECTOR=y +CONFIG_PROC_EVENTS=y +# CONFIG_MTD is not set CONFIG_PARPORT=m CONFIG_PARPORT_PC=m CONFIG_PARPORT_SERIAL=m @@ -1269,65 +1331,73 @@ CONFIG_PNP=y # CONFIG_ISAPNP=y CONFIG_PNPBIOS=y -CONFIG_PNPBIOS_PROC_FS=y +# CONFIG_PNPBIOS_PROC_FS is not set CONFIG_PNPACPI=y CONFIG_BLK_DEV=y CONFIG_BLK_DEV_FD=m -# CONFIG_BLK_DEV_XD is not set # CONFIG_PARIDE is not set +CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m CONFIG_BLK_CPQ_DA=m CONFIG_BLK_CPQ_CISS_DA=m # CONFIG_CISS_SCSI_TAPE is not set CONFIG_BLK_DEV_DAC960=m -# CONFIG_BLK_DEV_UMEM is not set +CONFIG_BLK_DEV_UMEM=m # CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 CONFIG_BLK_DEV_CRYPTOLOOP=m # CONFIG_BLK_DEV_DRBD is not set -CONFIG_BLK_DEV_NBD=m -CONFIG_BLK_DEV_OSD=m +# CONFIG_BLK_DEV_NBD is not set +CONFIG_BLK_DEV_NVME=m +# CONFIG_BLK_DEV_OSD is not set CONFIG_BLK_DEV_SX8=m -# CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_COUNT=8 +CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=16384 # CONFIG_BLK_DEV_XIP is not set # CONFIG_CDROM_PKTCDVD is not set -CONFIG_ATA_OVER_ETH=m +# CONFIG_ATA_OVER_ETH is not set CONFIG_VIRTIO_BLK=m # CONFIG_BLK_DEV_HD is not set -CONFIG_BLK_DEV_RBD=m +# CONFIG_BLK_DEV_RBD is not set +CONFIG_BLK_DEV_RSXX=m + +# +# Misc devices +# CONFIG_SENSORS_LIS3LV02D=m -CONFIG_MISC_DEVICES=y # CONFIG_AD525X_DPOT is not set -# CONFIG_IBM_ASM is not set +# CONFIG_ATMEL_PWM is not set +CONFIG_DUMMY_IRQ=m +CONFIG_IBM_ASM=m # CONFIG_PHANTOM is not set # CONFIG_INTEL_MID_PTI is not set # CONFIG_SGI_IOC4 is not set CONFIG_TIFM_CORE=m CONFIG_TIFM_7XX1=m CONFIG_ICS932S401=m +# CONFIG_ATMEL_SSC is not set CONFIG_ENCLOSURE_SERVICES=m CONFIG_CS5535_MFGPT=m CONFIG_CS5535_MFGPT_DEFAULT_IRQ=7 CONFIG_CS5535_CLOCK_EVENT_SRC=m CONFIG_HP_ILO=m -CONFIG_APDS9802ALS=m -CONFIG_ISL29003=m -CONFIG_ISL29020=m -CONFIG_SENSORS_TSL2550=m -CONFIG_SENSORS_BH1780=m -CONFIG_SENSORS_BH1770=m -CONFIG_SENSORS_APDS990X=m -CONFIG_HMC6352=m +# CONFIG_APDS9802ALS is not set +# CONFIG_ISL29003 is not set +# CONFIG_ISL29020 is not set +# CONFIG_SENSORS_TSL2550 is not set +# CONFIG_SENSORS_BH1780 is not set +# CONFIG_SENSORS_BH1770 is not set +# CONFIG_SENSORS_APDS990X is not set +# CONFIG_HMC6352 is not set CONFIG_DS1682=m CONFIG_VMWARE_BALLOON=m -CONFIG_BMP085=m +CONFIG_BMP085=y +CONFIG_BMP085_I2C=m CONFIG_PCH_PHUB=m CONFIG_USB_SWITCH_FSA9480=m -CONFIG_C2PORT=m -CONFIG_C2PORT_DURAMAR_2150=m +# CONFIG_SRAM is not set +# CONFIG_C2PORT is not set
# # EEPROM support @@ -1339,62 +1409,63 @@ CONFIG_EEPROM_93CX6=m CONFIG_CB710_CORE=m # CONFIG_CB710_DEBUG is not set CONFIG_CB710_DEBUG_ASSUMPTIONS=y -CONFIG_IWMC3200TOP=m -# CONFIG_IWMC3200TOP_DEBUG is not set -# CONFIG_IWMC3200TOP_DEBUGFS is not set
# # Texas Instruments shared transport line discipline # CONFIG_TI_ST=m -CONFIG_SENSORS_LIS3_I2C=m +# CONFIG_SENSORS_LIS3_I2C is not set
# # Altera FPGA firmware download module # -# CONFIG_ALTERA_STAPL is not set +CONFIG_ALTERA_STAPL=m +CONFIG_INTEL_MEI=m +CONFIG_INTEL_MEI_ME=m +CONFIG_VMWARE_VMCI=m CONFIG_HAVE_IDE=y # CONFIG_IDE is not set
# # SCSI device support # -CONFIG_SCSI_MOD=m +CONFIG_SCSI_MOD=y CONFIG_RAID_ATTRS=m -CONFIG_SCSI=m +CONFIG_SCSI=y CONFIG_SCSI_DMA=y -# CONFIG_SCSI_TGT is not set +CONFIG_SCSI_TGT=m CONFIG_SCSI_NETLINK=y CONFIG_SCSI_PROC_FS=y
# # SCSI support type (disk, tape, CD-ROM) # -CONFIG_BLK_DEV_SD=m -# CONFIG_CHR_DEV_ST is not set -# CONFIG_CHR_DEV_OSST is not set -CONFIG_BLK_DEV_SR=m +CONFIG_BLK_DEV_SD=y +CONFIG_CHR_DEV_ST=m +CONFIG_CHR_DEV_OSST=m +CONFIG_BLK_DEV_SR=y CONFIG_BLK_DEV_SR_VENDOR=y -CONFIG_CHR_DEV_SG=m +CONFIG_CHR_DEV_SG=y CONFIG_CHR_DEV_SCH=m CONFIG_SCSI_ENCLOSURE=m CONFIG_SCSI_MULTI_LUN=y -# CONFIG_SCSI_CONSTANTS is not set -# CONFIG_SCSI_LOGGING is not set -# CONFIG_SCSI_SCAN_ASYNC is not set -CONFIG_SCSI_WAIT_SCAN=m +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_SCAN_ASYNC=y
# # SCSI Transports # CONFIG_SCSI_SPI_ATTRS=m CONFIG_SCSI_FC_ATTRS=m +CONFIG_SCSI_FC_TGT_ATTRS=y CONFIG_SCSI_ISCSI_ATTRS=m CONFIG_SCSI_SAS_ATTRS=m CONFIG_SCSI_SAS_LIBSAS=m CONFIG_SCSI_SAS_ATA=y CONFIG_SCSI_SAS_HOST_SMP=y CONFIG_SCSI_SRP_ATTRS=m +CONFIG_SCSI_SRP_TGT_ATTRS=y CONFIG_SCSI_LOWLEVEL=y CONFIG_ISCSI_TCP=m CONFIG_ISCSI_BOOT_SYSFS=m @@ -1414,25 +1485,23 @@ CONFIG_SCSI_AHA1542=m CONFIG_SCSI_AHA1740=m CONFIG_SCSI_AACRAID=m CONFIG_SCSI_AIC7XXX=m -CONFIG_AIC7XXX_CMDS_PER_DEVICE=253 -CONFIG_AIC7XXX_RESET_DELAY_MS=15000 -# CONFIG_AIC7XXX_BUILD_FIRMWARE is not set -# CONFIG_AIC7XXX_DEBUG_ENABLE is not set +CONFIG_AIC7XXX_CMDS_PER_DEVICE=32 +CONFIG_AIC7XXX_RESET_DELAY_MS=5000 +CONFIG_AIC7XXX_DEBUG_ENABLE=y CONFIG_AIC7XXX_DEBUG_MASK=0 -# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set +CONFIG_AIC7XXX_REG_PRETTY_PRINT=y # CONFIG_SCSI_AIC7XXX_OLD is not set CONFIG_SCSI_AIC79XX=m CONFIG_AIC79XX_CMDS_PER_DEVICE=32 -CONFIG_AIC79XX_RESET_DELAY_MS=15000 -# CONFIG_AIC79XX_BUILD_FIRMWARE is not set +CONFIG_AIC79XX_RESET_DELAY_MS=4000 # CONFIG_AIC79XX_DEBUG_ENABLE is not set CONFIG_AIC79XX_DEBUG_MASK=0 # CONFIG_AIC79XX_REG_PRETTY_PRINT is not set CONFIG_SCSI_AIC94XX=m # CONFIG_AIC94XX_DEBUG is not set CONFIG_SCSI_MVSAS=m -CONFIG_SCSI_MVSAS_DEBUG=y -# CONFIG_SCSI_MVSAS_TASKLET is not set +# CONFIG_SCSI_MVSAS_DEBUG is not set +CONFIG_SCSI_MVSAS_TASKLET=y CONFIG_SCSI_MVUMI=m CONFIG_SCSI_DPT_I2O=m CONFIG_SCSI_ADVANSYS=m @@ -1446,10 +1515,17 @@ CONFIG_MEGARAID_SAS=m CONFIG_SCSI_MPT2SAS=m CONFIG_SCSI_MPT2SAS_MAX_SGE=128 # CONFIG_SCSI_MPT2SAS_LOGGING is not set +CONFIG_SCSI_MPT3SAS=m +CONFIG_SCSI_MPT3SAS_MAX_SGE=128 +# CONFIG_SCSI_MPT3SAS_LOGGING is not set +CONFIG_SCSI_UFSHCD=m +CONFIG_SCSI_UFSHCD_PCI=m +CONFIG_SCSI_UFSHCD_PLATFORM=m CONFIG_SCSI_HPTIOP=m CONFIG_SCSI_BUSLOGIC=m -CONFIG_SCSI_FLASHPOINT=y +# CONFIG_SCSI_FLASHPOINT is not set CONFIG_VMWARE_PVSCSI=m +CONFIG_HYPERV_STORAGE=m CONFIG_LIBFC=m CONFIG_LIBFCOE=m CONFIG_FCOE=m @@ -1458,18 +1534,14 @@ CONFIG_SCSI_DMX3191D=m CONFIG_SCSI_DTC3280=m CONFIG_SCSI_EATA=m CONFIG_SCSI_EATA_TAGGED_QUEUE=y -CONFIG_SCSI_EATA_LINKED_COMMANDS=y +# CONFIG_SCSI_EATA_LINKED_COMMANDS is not set CONFIG_SCSI_EATA_MAX_TAGS=16 CONFIG_SCSI_FUTURE_DOMAIN=m -CONFIG_SCSI_FD_MCS=m CONFIG_SCSI_GDTH=m CONFIG_SCSI_ISCI=m CONFIG_SCSI_GENERIC_NCR5380=m CONFIG_SCSI_GENERIC_NCR5380_MMIO=m -CONFIG_SCSI_GENERIC_NCR53C400=y -CONFIG_SCSI_IBMMCA=m -# CONFIG_IBMMCA_SCSI_ORDER_STANDARD is not set -# CONFIG_IBMMCA_SCSI_DEV_RESET is not set +# CONFIG_SCSI_GENERIC_NCR53C400 is not set CONFIG_SCSI_IPS=m CONFIG_SCSI_INITIO=m CONFIG_SCSI_INIA100=m @@ -1478,7 +1550,6 @@ CONFIG_SCSI_IMM=m # CONFIG_SCSI_IZIP_EPP16 is not set # CONFIG_SCSI_IZIP_SLOW_CTR is not set CONFIG_SCSI_NCR53C406A=m -CONFIG_SCSI_NCR_D700=m CONFIG_SCSI_STEX=m CONFIG_SCSI_SYM53C8XX_2=m CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 @@ -1488,24 +1559,21 @@ CONFIG_SCSI_SYM53C8XX_MMIO=y CONFIG_SCSI_IPR=m CONFIG_SCSI_IPR_TRACE=y CONFIG_SCSI_IPR_DUMP=y -CONFIG_SCSI_NCR_Q720=m -CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=8 -CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32 -CONFIG_SCSI_NCR53C8XX_SYNC=20 CONFIG_SCSI_PAS16=m CONFIG_SCSI_QLOGIC_FAS=m CONFIG_SCSI_QLOGIC_1280=m CONFIG_SCSI_QLA_FC=m CONFIG_SCSI_QLA_ISCSI=m CONFIG_SCSI_LPFC=m +# CONFIG_SCSI_LPFC_DEBUG_FS is not set CONFIG_SCSI_SIM710=m CONFIG_SCSI_SYM53C416=m CONFIG_SCSI_DC395x=m CONFIG_SCSI_DC390T=m CONFIG_SCSI_T128=m CONFIG_SCSI_U14_34F=m -CONFIG_SCSI_U14_34F_TAGGED_QUEUE=y -CONFIG_SCSI_U14_34F_LINKED_COMMANDS=y +# CONFIG_SCSI_U14_34F_TAGGED_QUEUE is not set +# CONFIG_SCSI_U14_34F_LINKED_COMMANDS is not set CONFIG_SCSI_U14_34F_MAX_TAGS=8 CONFIG_SCSI_ULTRASTOR=m CONFIG_SCSI_NSP32=m @@ -1514,13 +1582,15 @@ CONFIG_SCSI_PMCRAID=m CONFIG_SCSI_PM8001=m # CONFIG_SCSI_SRP is not set CONFIG_SCSI_BFA_FC=m +CONFIG_SCSI_VIRTIO=m +CONFIG_SCSI_CHELSIO_FCOE=m CONFIG_SCSI_LOWLEVEL_PCMCIA=y CONFIG_PCMCIA_AHA152X=m CONFIG_PCMCIA_FDOMAIN=m CONFIG_PCMCIA_NINJA_SCSI=m CONFIG_PCMCIA_QLOGIC=m CONFIG_PCMCIA_SYM53C500=m -CONFIG_SCSI_DH=m +CONFIG_SCSI_DH=y CONFIG_SCSI_DH_RDAC=m CONFIG_SCSI_DH_HP_SW=m CONFIG_SCSI_DH_EMC=m @@ -1529,16 +1599,17 @@ CONFIG_SCSI_OSD_INITIATOR=m CONFIG_SCSI_OSD_ULD=m CONFIG_SCSI_OSD_DPRINT_SENSE=1 # CONFIG_SCSI_OSD_DEBUG is not set -CONFIG_ATA=m +CONFIG_ATA=y # CONFIG_ATA_NONSTANDARD is not set CONFIG_ATA_VERBOSE_ERROR=y CONFIG_ATA_ACPI=y +CONFIG_SATA_ZPODD=y CONFIG_SATA_PMP=y
# # Controllers with non-SFF native interface # -CONFIG_SATA_AHCI=m +CONFIG_SATA_AHCI=y CONFIG_SATA_AHCI_PLATFORM=m CONFIG_SATA_INIC162X=m CONFIG_SATA_ACARD_AHCI=m @@ -1556,7 +1627,8 @@ CONFIG_ATA_BMDMA=y # # SATA SFF controllers with BMDMA # -CONFIG_ATA_PIIX=m +CONFIG_ATA_PIIX=y +CONFIG_SATA_HIGHBANK=m CONFIG_SATA_MV=m CONFIG_SATA_NV=m CONFIG_SATA_PROMISE=m @@ -1579,7 +1651,7 @@ CONFIG_PATA_ATP867X=m CONFIG_PATA_CMD64X=m CONFIG_PATA_CS5520=m CONFIG_PATA_CS5530=m -CONFIG_PATA_CS5535=m +# CONFIG_PATA_CS5535 is not set CONFIG_PATA_CS5536=m CONFIG_PATA_CYPRESS=m CONFIG_PATA_EFAR=m @@ -1587,7 +1659,7 @@ CONFIG_PATA_HPT366=m CONFIG_PATA_HPT37X=m CONFIG_PATA_HPT3X2N=m CONFIG_PATA_HPT3X3=m -CONFIG_PATA_HPT3X3_DMA=y +# CONFIG_PATA_HPT3X3_DMA is not set CONFIG_PATA_IT8213=m CONFIG_PATA_IT821X=m CONFIG_PATA_JMICRON=m @@ -1620,6 +1692,7 @@ CONFIG_PATA_MPIIX=m CONFIG_PATA_NS87410=m CONFIG_PATA_OPTI=m CONFIG_PATA_PCMCIA=m +CONFIG_PATA_PLATFORM=m CONFIG_PATA_QDI=m CONFIG_PATA_RZ1000=m CONFIG_PATA_WINBOND_VLB=m @@ -1631,75 +1704,93 @@ CONFIG_PATA_ACPI=m CONFIG_ATA_GENERIC=m CONFIG_PATA_LEGACY=m CONFIG_MD=y -CONFIG_BLK_DEV_MD=m +CONFIG_BLK_DEV_MD=y +CONFIG_MD_AUTODETECT=y CONFIG_MD_LINEAR=m CONFIG_MD_RAID0=m CONFIG_MD_RAID1=m CONFIG_MD_RAID10=m CONFIG_MD_RAID456=m -# CONFIG_MULTICORE_RAID456 is not set CONFIG_MD_MULTIPATH=m -# CONFIG_MD_FAULTY is not set -CONFIG_BLK_DEV_DM=m +CONFIG_MD_FAULTY=m +CONFIG_BCACHE=m +# CONFIG_BCACHE_DEBUG is not set +# CONFIG_BCACHE_EDEBUG is not set +# CONFIG_BCACHE_CLOSURES_DEBUG is not set +CONFIG_BLK_DEV_DM_BUILTIN=y +CONFIG_BLK_DEV_DM=y # CONFIG_DM_DEBUG is not set CONFIG_DM_BUFIO=m +CONFIG_DM_BIO_PRISON=m CONFIG_DM_PERSISTENT_DATA=m CONFIG_DM_CRYPT=m -CONFIG_DM_SNAPSHOT=m -CONFIG_DM_THIN_PROVISIONING=m -# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set -# CONFIG_DM_DEBUG_SPACE_MAPS is not set -CONFIG_DM_MIRROR=m +CONFIG_DM_SNAPSHOT=y +# CONFIG_DM_THIN_PROVISIONING is not set +CONFIG_DM_CACHE=m +CONFIG_DM_CACHE_MQ=m +CONFIG_DM_CACHE_CLEANER=m +CONFIG_DM_MIRROR=y CONFIG_DM_RAID=m CONFIG_DM_LOG_USERSPACE=m -CONFIG_DM_ZERO=m +CONFIG_DM_ZERO=y CONFIG_DM_MULTIPATH=m CONFIG_DM_MULTIPATH_QL=m CONFIG_DM_MULTIPATH_ST=m -CONFIG_DM_DELAY=m +# CONFIG_DM_DELAY is not set CONFIG_DM_UEVENT=y -CONFIG_DM_FLAKEY=m +# CONFIG_DM_FLAKEY is not set +CONFIG_DM_VERITY=m # CONFIG_TARGET_CORE is not set CONFIG_FUSION=y CONFIG_FUSION_SPI=m CONFIG_FUSION_FC=m CONFIG_FUSION_SAS=m -CONFIG_FUSION_MAX_SGE=128 +CONFIG_FUSION_MAX_SGE=40 CONFIG_FUSION_CTL=m -# CONFIG_FUSION_LOGGING is not set +CONFIG_FUSION_LOGGING=y
# # IEEE 1394 (FireWire) support # CONFIG_FIREWIRE=m CONFIG_FIREWIRE_OHCI=m -CONFIG_FIREWIRE_OHCI_DEBUG=y CONFIG_FIREWIRE_SBP2=m -CONFIG_FIREWIRE_NET=m +# CONFIG_FIREWIRE_NET is not set # CONFIG_FIREWIRE_NOSY is not set -# CONFIG_I2O is not set -# CONFIG_MACINTOSH_DRIVERS is not set +CONFIG_I2O=m +# CONFIG_I2O_LCT_NOTIFY_ON_CHANGES is not set +CONFIG_I2O_EXT_ADAPTEC=y +CONFIG_I2O_CONFIG=m +CONFIG_I2O_CONFIG_OLD_IOCTL=y +CONFIG_I2O_BUS=m +CONFIG_I2O_BLOCK=m +CONFIG_I2O_SCSI=m +CONFIG_I2O_PROC=m +CONFIG_MACINTOSH_DRIVERS=y +# CONFIG_MAC_EMUMOUSEBTN is not set CONFIG_NETDEVICES=y CONFIG_NET_CORE=y CONFIG_BONDING=m CONFIG_DUMMY=m -CONFIG_EQUALIZER=m +# CONFIG_EQUALIZER is not set +# CONFIG_NET_FC is not set +CONFIG_MII=m +CONFIG_IFB=m +# CONFIG_NET_TEAM is not set +CONFIG_MACVLAN=m +CONFIG_MACVTAP=m +CONFIG_VXLAN=m +CONFIG_NETCONSOLE=m +CONFIG_NETCONSOLE_DYNAMIC=y +CONFIG_NETPOLL=y +CONFIG_NETPOLL_TRAP=y +CONFIG_NET_POLL_CONTROLLER=y CONFIG_IMQ=m # CONFIG_IMQ_BEHAVIOR_AA is not set CONFIG_IMQ_BEHAVIOR_AB=y # CONFIG_IMQ_BEHAVIOR_BA is not set # CONFIG_IMQ_BEHAVIOR_BB is not set CONFIG_IMQ_NUM_DEVS=2 -# CONFIG_NET_FC is not set -CONFIG_MII=m -CONFIG_IEEE802154_DRIVERS=m -CONFIG_IEEE802154_FAKEHARD=m -CONFIG_IFB=m -CONFIG_MACVLAN=m -CONFIG_MACVTAP=m -# CONFIG_NETCONSOLE is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set CONFIG_TUN=m CONFIG_VETH=m CONFIG_VIRTIO_NET=m @@ -1710,22 +1801,14 @@ CONFIG_ATM_DRIVERS=y CONFIG_ATM_TCP=m CONFIG_ATM_LANAI=m CONFIG_ATM_ENI=m -CONFIG_ATM_ENI_DEBUG=y -CONFIG_ATM_ENI_TUNE_BURST=y -CONFIG_ATM_ENI_BURST_TX_16W=y -CONFIG_ATM_ENI_BURST_TX_8W=y -CONFIG_ATM_ENI_BURST_TX_4W=y -CONFIG_ATM_ENI_BURST_TX_2W=y -CONFIG_ATM_ENI_BURST_RX_16W=y -CONFIG_ATM_ENI_BURST_RX_8W=y -CONFIG_ATM_ENI_BURST_RX_4W=y -CONFIG_ATM_ENI_BURST_RX_2W=y +# CONFIG_ATM_ENI_DEBUG is not set +# CONFIG_ATM_ENI_TUNE_BURST is not set CONFIG_ATM_FIRESTREAM=m CONFIG_ATM_ZATM=m # CONFIG_ATM_ZATM_DEBUG is not set CONFIG_ATM_NICSTAR=m -CONFIG_ATM_NICSTAR_USE_SUNI=y -CONFIG_ATM_NICSTAR_USE_IDT77105=y +# CONFIG_ATM_NICSTAR_USE_SUNI is not set +# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set CONFIG_ATM_IDT77252=m # CONFIG_ATM_IDT77252_DEBUG is not set # CONFIG_ATM_IDT77252_RCV_ALL is not set @@ -1737,20 +1820,30 @@ CONFIG_ATM_HORIZON=m CONFIG_ATM_IA=m # CONFIG_ATM_IA_DEBUG is not set CONFIG_ATM_FORE200E=m -CONFIG_ATM_FORE200E_USE_TASKLET=y +# CONFIG_ATM_FORE200E_USE_TASKLET is not set CONFIG_ATM_FORE200E_TX_RETRY=16 CONFIG_ATM_FORE200E_DEBUG=0 CONFIG_ATM_HE=m -CONFIG_ATM_HE_USE_SUNI=y +# CONFIG_ATM_HE_USE_SUNI is not set CONFIG_ATM_SOLOS=m
# # CAIF transport drivers # +CONFIG_VHOST_NET=m +CONFIG_VHOST_RING=m + +# +# Distributed Switch Architecture drivers +# +CONFIG_NET_DSA_MV88E6XXX=y +CONFIG_NET_DSA_MV88E6060=y +CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y +CONFIG_NET_DSA_MV88E6131=y +CONFIG_NET_DSA_MV88E6123_61_65=y CONFIG_ETHERNET=y CONFIG_MDIO=m CONFIG_NET_VENDOR_3COM=y -CONFIG_EL1=m CONFIG_EL3=m CONFIG_3C515=m CONFIG_PCMCIA_3C574=m @@ -1766,7 +1859,6 @@ CONFIG_NET_VENDOR_AMD=y CONFIG_AMD8111_ETH=m CONFIG_LANCE=m CONFIG_PCNET32=m -CONFIG_DEPCA=m CONFIG_PCMCIA_NMCLAN=m CONFIG_NI65=m CONFIG_NET_VENDOR_ATHEROS=y @@ -1774,6 +1866,10 @@ CONFIG_ATL2=m CONFIG_ATL1=m CONFIG_ATL1E=m CONFIG_ATL1C=m +CONFIG_ALX=m +CONFIG_NET_CADENCE=y +CONFIG_ARM_AT91_ETHER=m +CONFIG_MACB=m CONFIG_NET_VENDOR_BROADCOM=y CONFIG_B44=m CONFIG_B44_PCI_AUTOSELECT=y @@ -1783,8 +1879,10 @@ CONFIG_BNX2=m CONFIG_CNIC=m CONFIG_TIGON3=m CONFIG_BNX2X=m +CONFIG_BNX2X_SRIOV=y CONFIG_NET_VENDOR_BROCADE=y CONFIG_BNA=m +CONFIG_NET_CALXEDA_XGMAC=m CONFIG_NET_VENDOR_CHELSIO=y CONFIG_CHELSIO_T1=m CONFIG_CHELSIO_T1_1G=y @@ -1793,26 +1891,25 @@ CONFIG_CHELSIO_T4=m CONFIG_CHELSIO_T4VF=m CONFIG_NET_VENDOR_CIRRUS=y CONFIG_CS89x0=m +# CONFIG_CS89x0_PLATFORM is not set CONFIG_NET_VENDOR_CISCO=y CONFIG_ENIC=m CONFIG_DNET=m CONFIG_NET_VENDOR_DEC=y -CONFIG_EWRK3=m CONFIG_NET_TULIP=y CONFIG_DE2104X=m CONFIG_DE2104X_DSL=0 CONFIG_TULIP=m # CONFIG_TULIP_MWI is not set -# CONFIG_TULIP_MMIO is not set -# CONFIG_TULIP_NAPI is not set +CONFIG_TULIP_MMIO=y +CONFIG_TULIP_NAPI=y +CONFIG_TULIP_NAPI_HW_MITIGATION=y CONFIG_DE4X5=m CONFIG_WINBOND_840=m CONFIG_DM9102=m CONFIG_ULI526X=m CONFIG_PCMCIA_XIRCOM=m CONFIG_NET_VENDOR_DLINK=y -CONFIG_DE600=m -CONFIG_DE620=m CONFIG_DL2K=m CONFIG_SUNDANCE=m # CONFIG_SUNDANCE_MMIO is not set @@ -1823,47 +1920,32 @@ CONFIG_S2IO=m CONFIG_VXGE=m # CONFIG_VXGE_DEBUG_TRACE_ALL is not set CONFIG_NET_VENDOR_FUJITSU=y -CONFIG_AT1700=m CONFIG_PCMCIA_FMVJ18X=m -CONFIG_ETH16I=m CONFIG_NET_VENDOR_HP=y CONFIG_HP100=m -CONFIG_NET_VENDOR_IBM=y -# CONFIG_IBM_EMAC_ZMII is not set -# CONFIG_IBM_EMAC_RGMII is not set -# CONFIG_IBM_EMAC_TAH is not set -# CONFIG_IBM_EMAC_EMAC4 is not set -# CONFIG_IBM_EMAC_NO_FLOW_CTRL is not set -# CONFIG_IBM_EMAC_MAL_CLR_ICINTSTAT is not set -# CONFIG_IBM_EMAC_MAL_COMMON_ERR is not set CONFIG_NET_VENDOR_INTEL=y CONFIG_E100=m CONFIG_E1000=m CONFIG_E1000E=m CONFIG_IGB=m +CONFIG_IGB_HWMON=y CONFIG_IGB_DCA=y CONFIG_IGBVF=m CONFIG_IXGB=m CONFIG_IXGBE=m +CONFIG_IXGBE_HWMON=y CONFIG_IXGBE_DCA=y CONFIG_IXGBEVF=m CONFIG_NET_VENDOR_I825XX=y -CONFIG_ELPLUS=m -CONFIG_EL16=m -CONFIG_ELMC=m -CONFIG_ELMC_II=m -CONFIG_APRICOT=m -CONFIG_EEXPRESS=m -CONFIG_EEXPRESS_PRO=m -CONFIG_LP486E=m -CONFIG_NI52=m -CONFIG_ZNET=m CONFIG_IP1000=m CONFIG_JME=m CONFIG_NET_VENDOR_MARVELL=y +CONFIG_MVMDIO=m CONFIG_SKGE=m +# CONFIG_SKGE_DEBUG is not set CONFIG_SKGE_GENESIS=y CONFIG_SKY2=m +# CONFIG_SKY2_DEBUG is not set CONFIG_NET_VENDOR_MELLANOX=y CONFIG_MLX4_EN=m CONFIG_MLX4_CORE=m @@ -1877,61 +1959,47 @@ CONFIG_MYRI10GE=m CONFIG_MYRI10GE_DCA=y CONFIG_FEALNX=m CONFIG_NET_VENDOR_NATSEMI=y -CONFIG_IBMLANA=m CONFIG_NATSEMI=m CONFIG_NS83820=m CONFIG_NET_VENDOR_8390=y -CONFIG_EL2=m -CONFIG_AC3200=m CONFIG_PCMCIA_AXNET=m -CONFIG_E2100=m -CONFIG_ES3210=m -CONFIG_HPLAN_PLUS=m -CONFIG_HPLAN=m -CONFIG_LNE390=m CONFIG_NE2000=m -CONFIG_NE2_MCA=m CONFIG_NE2K_PCI=m -CONFIG_NE3210=m CONFIG_PCMCIA_PCNET=m -CONFIG_ULTRAMCA=m CONFIG_ULTRA=m -CONFIG_ULTRA32=m CONFIG_WD80x3=m CONFIG_NET_VENDOR_NVIDIA=y CONFIG_FORCEDETH=m CONFIG_NET_VENDOR_OKI=y CONFIG_PCH_GBE=m CONFIG_ETHOC=m -CONFIG_NET_PACKET_ENGINE=y -CONFIG_HAMACHI=m -CONFIG_YELLOWFIN=m +# CONFIG_NET_PACKET_ENGINE is not set CONFIG_NET_VENDOR_QLOGIC=y CONFIG_QLA3XXX=m CONFIG_QLCNIC=m +CONFIG_QLCNIC_SRIOV=y CONFIG_QLGE=m CONFIG_NETXEN_NIC=m -CONFIG_NET_VENDOR_RACAL=y CONFIG_NET_VENDOR_REALTEK=y CONFIG_ATP=m CONFIG_8139CP=m CONFIG_8139TOO=m # CONFIG_8139TOO_PIO is not set -CONFIG_8139TOO_TUNE_TWISTER=y +# CONFIG_8139TOO_TUNE_TWISTER is not set CONFIG_8139TOO_8129=y # CONFIG_8139_OLD_RX_RESET is not set CONFIG_R8169=m CONFIG_NET_VENDOR_RDC=y CONFIG_R6040=m CONFIG_NET_VENDOR_SEEQ=y -CONFIG_SEEQ8005=m CONFIG_NET_VENDOR_SILAN=y CONFIG_SC92031=m CONFIG_NET_VENDOR_SIS=y CONFIG_SIS900=m CONFIG_SIS190=m CONFIG_SFC=m -CONFIG_SFC_MTD=y +CONFIG_SFC_MCDI_MON=y +CONFIG_SFC_SRIOV=y CONFIG_NET_VENDOR_SMSC=y CONFIG_SMC9194=m CONFIG_PCMCIA_SMC91C92=m @@ -1939,9 +2007,10 @@ CONFIG_EPIC100=m CONFIG_SMSC9420=m CONFIG_NET_VENDOR_STMICRO=y CONFIG_STMMAC_ETH=m +CONFIG_STMMAC_PLATFORM=y +CONFIG_STMMAC_PCI=y +# CONFIG_STMMAC_DEBUG_FS is not set # CONFIG_STMMAC_DA is not set -CONFIG_STMMAC_RING=y -# CONFIG_STMMAC_CHAINED is not set CONFIG_NET_VENDOR_SUN=y CONFIG_HAPPYMEAL=m CONFIG_SUNGEM=m @@ -1955,16 +2024,24 @@ CONFIG_NET_VENDOR_VIA=y CONFIG_VIA_RHINE=m CONFIG_VIA_RHINE_MMIO=y CONFIG_VIA_VELOCITY=m +CONFIG_NET_VENDOR_WIZNET=y +CONFIG_WIZNET_W5100=m +CONFIG_WIZNET_W5300=m +# CONFIG_WIZNET_BUS_DIRECT is not set +# CONFIG_WIZNET_BUS_INDIRECT is not set +CONFIG_WIZNET_BUS_ANY=y CONFIG_NET_VENDOR_XIRCOM=y CONFIG_PCMCIA_XIRC2PS=m # CONFIG_FDDI is not set # CONFIG_HIPPI is not set -CONFIG_NET_SB1000=m +# CONFIG_NET_SB1000 is not set CONFIG_PHYLIB=y
# # MII PHY device drivers # +CONFIG_AT803X_PHY=m +CONFIG_AMD_PHY=m CONFIG_MARVELL_PHY=m CONFIG_DAVICOM_PHY=m CONFIG_QSEMI_PHY=m @@ -1973,15 +2050,16 @@ CONFIG_CICADA_PHY=m CONFIG_VITESSE_PHY=m CONFIG_SMSC_PHY=m CONFIG_BROADCOM_PHY=m +CONFIG_BCM87XX_PHY=m CONFIG_ICPLUS_PHY=m CONFIG_REALTEK_PHY=m CONFIG_NATIONAL_PHY=m CONFIG_STE10XP=m CONFIG_LSI_ET1011C_PHY=m CONFIG_MICREL_PHY=m -# CONFIG_FIXED_PHY is not set +CONFIG_FIXED_PHY=y CONFIG_MDIO_BITBANG=m -CONFIG_MDIO_GPIO=m +# CONFIG_MDIO_GPIO is not set # CONFIG_PLIP is not set CONFIG_PPP=m CONFIG_PPP_BSDCOMP=m @@ -1995,12 +2073,8 @@ CONFIG_PPTP=m CONFIG_PPPOL2TP=m CONFIG_PPP_ASYNC=m CONFIG_PPP_SYNC_TTY=m -CONFIG_SLIP=m +# CONFIG_SLIP is not set CONFIG_SLHC=m -CONFIG_SLIP_COMPRESSED=y -CONFIG_SLIP_SMART=y -CONFIG_SLIP_MODE_SLIP6=y -# CONFIG_TR is not set
# # USB Network Adapters @@ -2009,11 +2083,14 @@ CONFIG_USB_CATC=m CONFIG_USB_KAWETH=m CONFIG_USB_PEGASUS=m CONFIG_USB_RTL8150=m +CONFIG_USB_RTL8152=m CONFIG_USB_USBNET=m CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_AX88179_178A=m CONFIG_USB_NET_CDCETHER=m CONFIG_USB_NET_CDC_EEM=m CONFIG_USB_NET_CDC_NCM=m +CONFIG_USB_NET_CDC_MBIM=m CONFIG_USB_NET_DM9601=m CONFIG_USB_NET_SMSC75XX=m CONFIG_USB_NET_SMSC95XX=m @@ -2032,14 +2109,17 @@ CONFIG_USB_KC2190=y CONFIG_USB_NET_ZAURUS=m CONFIG_USB_NET_CX82310_ETH=m CONFIG_USB_NET_KALMIA=m +CONFIG_USB_NET_QMI_WWAN=m CONFIG_USB_HSO=m CONFIG_USB_NET_INT51X1=m -# CONFIG_USB_IPHETH is not set +CONFIG_USB_IPHETH=m CONFIG_USB_SIERRA_NET=m CONFIG_USB_VL600=m CONFIG_WLAN=y -CONFIG_PCMCIA_RAYCS=m -# CONFIG_LIBERTAS_THINFIRM is not set +# CONFIG_PCMCIA_RAYCS is not set +CONFIG_LIBERTAS_THINFIRM=m +# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set +CONFIG_LIBERTAS_THINFIRM_USB=m CONFIG_AIRO=m CONFIG_ATMEL=m CONFIG_PCI_ATMEL=m @@ -2050,74 +2130,177 @@ CONFIG_PCMCIA_WL3501=m # CONFIG_PRISM54 is not set CONFIG_USB_ZD1201=m CONFIG_USB_NET_RNDIS_WLAN=m -# CONFIG_RTL8180 is not set -# CONFIG_RTL8187 is not set -# CONFIG_ADM8211 is not set -# CONFIG_MAC80211_HWSIM is not set -# CONFIG_MWL8K is not set -# CONFIG_ATH_COMMON is not set -# CONFIG_B43 is not set -# CONFIG_B43LEGACY is not set -# CONFIG_BRCMFMAC is not set +CONFIG_RTL8180=m +CONFIG_RTL8187=m +CONFIG_RTL8187_LEDS=y +CONFIG_ADM8211=m +CONFIG_MAC80211_HWSIM=m +CONFIG_MWL8K=m +CONFIG_ATH_COMMON=m +CONFIG_ATH_CARDS=m +# CONFIG_ATH_DEBUG is not set +CONFIG_ATH5K=m +CONFIG_ATH5K_DEBUG=y +# CONFIG_ATH5K_TRACER is not set +CONFIG_ATH5K_PCI=y +CONFIG_ATH9K_HW=m +CONFIG_ATH9K_COMMON=m +CONFIG_ATH9K_BTCOEX_SUPPORT=y +CONFIG_ATH9K=m +CONFIG_ATH9K_PCI=y +CONFIG_ATH9K_AHB=y +# CONFIG_ATH9K_DEBUGFS is not set +# CONFIG_ATH9K_LEGACY_RATE_CONTROL is not set +CONFIG_ATH9K_HTC=m +# CONFIG_ATH9K_HTC_DEBUGFS is not set +CONFIG_CARL9170=m +CONFIG_CARL9170_LEDS=y +CONFIG_CARL9170_WPC=y +# CONFIG_CARL9170_HWRNG is not set +# CONFIG_ATH6KL is not set +CONFIG_AR5523=m +CONFIG_WIL6210=m +CONFIG_WIL6210_ISR_COR=y +CONFIG_B43=m +CONFIG_B43_SSB=y +CONFIG_B43_PCI_AUTOSELECT=y +CONFIG_B43_PCICORE_AUTOSELECT=y +# CONFIG_B43_PCMCIA is not set +CONFIG_B43_SDIO=y +CONFIG_B43_PIO=y +CONFIG_B43_PHY_N=y +CONFIG_B43_PHY_LP=y +CONFIG_B43_LEDS=y +CONFIG_B43_HWRNG=y +# CONFIG_B43_DEBUG is not set +CONFIG_B43LEGACY=m +CONFIG_B43LEGACY_PCI_AUTOSELECT=y +CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y +CONFIG_B43LEGACY_LEDS=y +CONFIG_B43LEGACY_HWRNG=y +# CONFIG_B43LEGACY_DEBUG is not set +CONFIG_B43LEGACY_DMA=y +CONFIG_B43LEGACY_PIO=y +CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y +# CONFIG_B43LEGACY_DMA_MODE is not set +# CONFIG_B43LEGACY_PIO_MODE is not set +CONFIG_BRCMUTIL=m +CONFIG_BRCMFMAC=m +CONFIG_BRCMFMAC_SDIO=y +# CONFIG_BRCMFMAC_USB is not set +# CONFIG_BRCM_TRACING is not set +# CONFIG_BRCMDBG is not set CONFIG_HOSTAP=m CONFIG_HOSTAP_FIRMWARE=y -# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set +CONFIG_HOSTAP_FIRMWARE_NVRAM=y CONFIG_HOSTAP_PLX=m CONFIG_HOSTAP_PCI=m CONFIG_HOSTAP_CS=m -# CONFIG_IPW2100 is not set -# CONFIG_IPW2200 is not set -# CONFIG_IWLWIFI is not set -# CONFIG_IWL4965 is not set -# CONFIG_IWL3945 is not set -# CONFIG_IWM is not set -# CONFIG_LIBERTAS is not set -# CONFIG_HERMES is not set -# CONFIG_P54_COMMON is not set -# CONFIG_RT2X00 is not set -# CONFIG_RTL8192CE is not set -# CONFIG_RTL8192SE is not set -# CONFIG_RTL8192DE is not set -# CONFIG_RTL8192CU is not set -# CONFIG_WL1251 is not set -# CONFIG_WL12XX_MENU is not set -# CONFIG_ZD1211RW is not set -# CONFIG_MWIFIEX is not set +CONFIG_IPW2100=m +CONFIG_IPW2100_MONITOR=y +# CONFIG_IPW2100_DEBUG is not set +CONFIG_IPW2200=m +CONFIG_IPW2200_MONITOR=y +CONFIG_IPW2200_RADIOTAP=y +CONFIG_IPW2200_PROMISCUOUS=y +CONFIG_IPW2200_QOS=y +# CONFIG_IPW2200_DEBUG is not set +CONFIG_LIBIPW=m +# CONFIG_LIBIPW_DEBUG is not set +CONFIG_IWLWIFI=m +CONFIG_IWLDVM=m +CONFIG_IWLMVM=m +CONFIG_IWLWIFI_OPMODE_MODULAR=y + +# +# Debugging Options +# +# CONFIG_IWLWIFI_DEBUG is not set +# CONFIG_IWLWIFI_DEVICE_TRACING is not set +CONFIG_IWLWIFI_P2P=y +CONFIG_IWLEGACY=m +CONFIG_IWL4965=m +CONFIG_IWL3945=m + +# +# iwl3945 / iwl4965 Debugging Options +# +# CONFIG_IWLEGACY_DEBUG is not set +CONFIG_LIBERTAS=m +CONFIG_LIBERTAS_USB=m +CONFIG_LIBERTAS_CS=m +CONFIG_LIBERTAS_SDIO=m +# CONFIG_LIBERTAS_DEBUG is not set +CONFIG_LIBERTAS_MESH=y +CONFIG_HERMES=m +# CONFIG_HERMES_PRISM is not set +CONFIG_HERMES_CACHE_FW_ON_INIT=y +CONFIG_PLX_HERMES=m +CONFIG_TMD_HERMES=m +CONFIG_NORTEL_HERMES=m +CONFIG_PCMCIA_HERMES=m +CONFIG_PCMCIA_SPECTRUM=m +CONFIG_ORINOCO_USB=m +CONFIG_P54_COMMON=m +CONFIG_P54_USB=m +CONFIG_P54_PCI=m +CONFIG_P54_LEDS=y +CONFIG_RT2X00=m +CONFIG_RT2400PCI=m +CONFIG_RT2500PCI=m +CONFIG_RT61PCI=m +CONFIG_RT2800PCI=m +CONFIG_RT2800PCI_RT33XX=y +CONFIG_RT2800PCI_RT35XX=y +CONFIG_RT2800PCI_RT53XX=y +CONFIG_RT2800PCI_RT3290=y +CONFIG_RT2500USB=m +CONFIG_RT73USB=m +CONFIG_RT2800USB=m +CONFIG_RT2800USB_RT33XX=y +CONFIG_RT2800USB_RT35XX=y +CONFIG_RT2800USB_RT53XX=y +CONFIG_RT2800USB_RT55XX=y +CONFIG_RT2800USB_UNKNOWN=y +CONFIG_RT2800_LIB=m +CONFIG_RT2X00_LIB_MMIO=m +CONFIG_RT2X00_LIB_PCI=m +CONFIG_RT2X00_LIB_USB=m +CONFIG_RT2X00_LIB=m +CONFIG_RT2X00_LIB_FIRMWARE=y +CONFIG_RT2X00_LIB_CRYPTO=y +CONFIG_RT2X00_LIB_LEDS=y +# CONFIG_RT2X00_DEBUG is not set +CONFIG_RTLWIFI=m +# CONFIG_RTLWIFI_DEBUG is not set +CONFIG_RTL8192CE=m +CONFIG_RTL8192SE=m +CONFIG_RTL8192DE=m +CONFIG_RTL8723AE=m +CONFIG_RTL8188EE=m +CONFIG_RTL8192CU=m +CONFIG_RTL8192C_COMMON=m +CONFIG_WL_TI=y +CONFIG_WL1251=m +CONFIG_WL1251_SDIO=m +CONFIG_WL12XX=m +CONFIG_WL18XX=m +CONFIG_WLCORE=m +CONFIG_WLCORE_SDIO=m +CONFIG_WILINK_PLATFORM_DATA=y +CONFIG_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set +CONFIG_MWIFIEX=m +CONFIG_MWIFIEX_SDIO=m +CONFIG_MWIFIEX_PCIE=m +CONFIG_MWIFIEX_USB=m
# # Enable WiMAX (Networking options) to see the WiMAX drivers # -CONFIG_WAN=y -CONFIG_HOSTESS_SV11=m -CONFIG_COSA=m -CONFIG_LANMEDIA=m -CONFIG_SEALEVEL_4021=m -CONFIG_HDLC=m -CONFIG_HDLC_RAW=m -CONFIG_HDLC_RAW_ETH=m -CONFIG_HDLC_CISCO=m -CONFIG_HDLC_FR=m -CONFIG_HDLC_PPP=m - -# -# X.25/LAPB support is disabled -# -CONFIG_PCI200SYN=m -CONFIG_WANXL=m -# CONFIG_WANXL_BUILD_FIRMWARE is not set -CONFIG_PC300TOO=m -CONFIG_N2=m -CONFIG_C101=m -CONFIG_FARSYNC=m -CONFIG_DSCC4=m -CONFIG_DSCC4_PCISYNC=y -CONFIG_DSCC4_PCI_RST=y -CONFIG_DLCI=m -CONFIG_DLCI_MAX=8 -CONFIG_SDLA=m -CONFIG_SBNI=m -CONFIG_SBNI_MULTILINE=y +# CONFIG_WAN is not set CONFIG_VMXNET3=m +CONFIG_HYPERV_NET=m CONFIG_ISDN=y CONFIG_ISDN_I4L=m CONFIG_ISDN_PPP=y @@ -2147,9 +2330,9 @@ CONFIG_ISDN_DRV_HISAX=m # CONFIG_HISAX_EURO=y CONFIG_DE_AOC=y -# CONFIG_HISAX_NO_SENDCOMPLETE is not set -# CONFIG_HISAX_NO_LLC is not set -# CONFIG_HISAX_NO_KEYPAD is not set +CONFIG_HISAX_NO_SENDCOMPLETE=y +CONFIG_HISAX_NO_LLC=y +CONFIG_HISAX_NO_KEYPAD=y CONFIG_HISAX_1TR6=y CONFIG_HISAX_NI1=y CONFIG_HISAX_MAX_CARDS=8 @@ -2157,27 +2340,27 @@ CONFIG_HISAX_MAX_CARDS=8 # # HiSax supported cards # -CONFIG_HISAX_16_0=y +# CONFIG_HISAX_16_0 is not set CONFIG_HISAX_16_3=y CONFIG_HISAX_TELESPCI=y CONFIG_HISAX_S0BOX=y -CONFIG_HISAX_AVM_A1=y +# CONFIG_HISAX_AVM_A1 is not set CONFIG_HISAX_FRITZPCI=y CONFIG_HISAX_AVM_A1_PCMCIA=y CONFIG_HISAX_ELSA=y -CONFIG_HISAX_IX1MICROR2=y +# CONFIG_HISAX_IX1MICROR2 is not set CONFIG_HISAX_DIEHLDIVA=y -CONFIG_HISAX_ASUSCOM=y -CONFIG_HISAX_TELEINT=y -CONFIG_HISAX_HFCS=y +# CONFIG_HISAX_ASUSCOM is not set +# CONFIG_HISAX_TELEINT is not set +# CONFIG_HISAX_HFCS is not set CONFIG_HISAX_SEDLBAUER=y -CONFIG_HISAX_SPORTSTER=y -CONFIG_HISAX_MIC=y +# CONFIG_HISAX_SPORTSTER is not set +# CONFIG_HISAX_MIC is not set CONFIG_HISAX_NETJET=y CONFIG_HISAX_NETJET_U=y CONFIG_HISAX_NICCY=y -CONFIG_HISAX_ISURF=y -CONFIG_HISAX_HSTSAPHIR=y +# CONFIG_HISAX_ISURF is not set +# CONFIG_HISAX_HSTSAPHIR is not set CONFIG_HISAX_BKM_A4T=y CONFIG_HISAX_SCT_QUADRO=y CONFIG_HISAX_GAZEL=y @@ -2185,15 +2368,15 @@ CONFIG_HISAX_HFC_PCI=y CONFIG_HISAX_W6692=y CONFIG_HISAX_HFC_SX=y CONFIG_HISAX_ENTERNOW_PCI=y -CONFIG_HISAX_DEBUG=y +# CONFIG_HISAX_DEBUG is not set
# # HiSax PCMCIA card service modules # -CONFIG_HISAX_SEDLBAUER_CS=m -CONFIG_HISAX_ELSA_CS=m -CONFIG_HISAX_AVM_A1_CS=m -CONFIG_HISAX_TELES_CS=m +# CONFIG_HISAX_SEDLBAUER_CS is not set +# CONFIG_HISAX_ELSA_CS is not set +# CONFIG_HISAX_AVM_A1_CS is not set +# CONFIG_HISAX_TELES_CS is not set
# # HiSax sub driver modules @@ -2206,10 +2389,10 @@ CONFIG_HISAX_FRITZ_PCIPNP=m # # Active cards # -CONFIG_ISDN_DRV_ICN=m -CONFIG_ISDN_DRV_PCBIT=m -CONFIG_ISDN_DRV_SC=m -CONFIG_ISDN_DRV_ACT2000=m +# CONFIG_ISDN_DRV_ICN is not set +# CONFIG_ISDN_DRV_PCBIT is not set +# CONFIG_ISDN_DRV_SC is not set +# CONFIG_ISDN_DRV_ACT2000 is not set CONFIG_ISDN_CAPI=m CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y CONFIG_CAPI_TRACE=y @@ -2221,12 +2404,11 @@ CONFIG_ISDN_CAPI_CAPIDRV=m # CAPI hardware drivers # CONFIG_CAPI_AVM=y -CONFIG_ISDN_DRV_AVMB1_B1ISA=m +# CONFIG_ISDN_DRV_AVMB1_B1ISA is not set CONFIG_ISDN_DRV_AVMB1_B1PCI=m CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y -CONFIG_ISDN_DRV_AVMB1_T1ISA=m -CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m -CONFIG_ISDN_DRV_AVMB1_AVM_CS=m +# CONFIG_ISDN_DRV_AVMB1_T1ISA is not set +# CONFIG_ISDN_DRV_AVMB1_B1PCMCIA is not set CONFIG_ISDN_DRV_AVMB1_T1PCI=m CONFIG_ISDN_DRV_AVMB1_C4=m CONFIG_CAPI_EICON=y @@ -2264,15 +2446,15 @@ CONFIG_MISDN_NETJET=m CONFIG_MISDN_IPAC=m CONFIG_MISDN_ISAR=m CONFIG_ISDN_HDLC=m -# CONFIG_PHONE is not set
# # Input device support # CONFIG_INPUT=y -CONFIG_INPUT_FF_MEMLESS=m +# CONFIG_INPUT_FF_MEMLESS is not set CONFIG_INPUT_POLLDEV=m CONFIG_INPUT_SPARSEKMAP=m +CONFIG_INPUT_MATRIXKMAP=m
# # Userland interfaces @@ -2282,57 +2464,83 @@ CONFIG_INPUT_MOUSEDEV=y CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 # CONFIG_INPUT_JOYDEV is not set -# CONFIG_INPUT_EVDEV is not set +CONFIG_INPUT_EVDEV=y # CONFIG_INPUT_EVBUG is not set
# # Input Device Drivers # CONFIG_INPUT_KEYBOARD=y -CONFIG_KEYBOARD_ADP5588=m -CONFIG_KEYBOARD_ADP5589=m +# CONFIG_KEYBOARD_ADP5588 is not set +# CONFIG_KEYBOARD_ADP5589 is not set CONFIG_KEYBOARD_ATKBD=y -CONFIG_KEYBOARD_QT1070=m -CONFIG_KEYBOARD_QT2160=m -CONFIG_KEYBOARD_LKKBD=m +# CONFIG_KEYBOARD_QT1070 is not set +# CONFIG_KEYBOARD_QT2160 is not set +# CONFIG_KEYBOARD_LKKBD is not set CONFIG_KEYBOARD_GPIO=m CONFIG_KEYBOARD_GPIO_POLLED=m -CONFIG_KEYBOARD_TCA6416=m -CONFIG_KEYBOARD_MATRIX=m -CONFIG_KEYBOARD_LM8323=m -CONFIG_KEYBOARD_MAX7359=m -CONFIG_KEYBOARD_MCS=m -CONFIG_KEYBOARD_MPR121=m -CONFIG_KEYBOARD_NEWTON=m -CONFIG_KEYBOARD_OPENCORES=m -CONFIG_KEYBOARD_STOWAWAY=m -CONFIG_KEYBOARD_SUNKBD=m -CONFIG_KEYBOARD_XTKBD=m -# CONFIG_INPUT_MOUSE is not set +# CONFIG_KEYBOARD_TCA6416 is not set +# CONFIG_KEYBOARD_TCA8418 is not set +# CONFIG_KEYBOARD_MATRIX is not set +# CONFIG_KEYBOARD_LM8323 is not set +CONFIG_KEYBOARD_LM8333=m +# CONFIG_KEYBOARD_MAX7359 is not set +# CONFIG_KEYBOARD_MCS is not set +# CONFIG_KEYBOARD_MPR121 is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_OPENCORES is not set +# CONFIG_KEYBOARD_SAMSUNG is not set +# CONFIG_KEYBOARD_STOWAWAY is not set +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set +CONFIG_INPUT_MOUSE=y +CONFIG_MOUSE_PS2=m +CONFIG_MOUSE_PS2_ALPS=y +CONFIG_MOUSE_PS2_LOGIPS2PP=y +CONFIG_MOUSE_PS2_SYNAPTICS=y +CONFIG_MOUSE_PS2_CYPRESS=y +CONFIG_MOUSE_PS2_LIFEBOOK=y +CONFIG_MOUSE_PS2_TRACKPOINT=y +CONFIG_MOUSE_PS2_ELANTECH=y +CONFIG_MOUSE_PS2_SENTELIC=y +CONFIG_MOUSE_PS2_TOUCHKIT=y +CONFIG_MOUSE_SERIAL=m +CONFIG_MOUSE_APPLETOUCH=m +CONFIG_MOUSE_BCM5974=m +CONFIG_MOUSE_CYAPA=m +# CONFIG_MOUSE_INPORT is not set +# CONFIG_MOUSE_LOGIBM is not set +# CONFIG_MOUSE_PC110PAD is not set +CONFIG_MOUSE_VSXXXAA=m +# CONFIG_MOUSE_GPIO is not set +CONFIG_MOUSE_SYNAPTICS_I2C=m +CONFIG_MOUSE_SYNAPTICS_USB=m # CONFIG_INPUT_JOYSTICK is not set # CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set CONFIG_INPUT_MISC=y -CONFIG_INPUT_AD714X=m -CONFIG_INPUT_AD714X_I2C=m -CONFIG_INPUT_BMA150=m +# CONFIG_INPUT_AD714X is not set +# CONFIG_INPUT_BMA150 is not set CONFIG_INPUT_PCSPKR=m # CONFIG_INPUT_MMA8450 is not set # CONFIG_INPUT_MPU3050 is not set CONFIG_INPUT_APANEL=m +# CONFIG_INPUT_GP2A is not set +# CONFIG_INPUT_GPIO_TILT_POLLED is not set # CONFIG_INPUT_WISTRON_BTNS is not set -# CONFIG_INPUT_ATLAS_BTNS is not set +CONFIG_INPUT_ATLAS_BTNS=m CONFIG_INPUT_ATI_REMOTE2=m CONFIG_INPUT_KEYSPAN_REMOTE=m # CONFIG_INPUT_KXTJ9 is not set CONFIG_INPUT_POWERMATE=m CONFIG_INPUT_YEALINK=m CONFIG_INPUT_CM109=m -# CONFIG_INPUT_UINPUT is not set -CONFIG_INPUT_PCF50633_PMU=m -CONFIG_INPUT_PCF8574=m +CONFIG_INPUT_RETU_PWRBUTTON=m +CONFIG_INPUT_UINPUT=m +# CONFIG_INPUT_PCF8574 is not set CONFIG_INPUT_GPIO_ROTARY_ENCODER=m # CONFIG_INPUT_ADXL34X is not set +# CONFIG_INPUT_IMS_PCU is not set # CONFIG_INPUT_CMA3000 is not set
# @@ -2345,123 +2553,134 @@ CONFIG_SERIO_SERPORT=y # CONFIG_SERIO_PARKBD is not set # CONFIG_SERIO_PCIPS2 is not set CONFIG_SERIO_LIBPS2=y -# CONFIG_SERIO_RAW is not set +CONFIG_SERIO_RAW=m CONFIG_SERIO_ALTERA_PS2=m -CONFIG_SERIO_PS2MULT=m +# CONFIG_SERIO_PS2MULT is not set +CONFIG_SERIO_ARC_PS2=m # CONFIG_GAMEPORT is not set
# # Character devices # +CONFIG_TTY=y CONFIG_VT=y CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_VT_CONSOLE=y CONFIG_VT_CONSOLE_SLEEP=y CONFIG_HW_CONSOLE=y -# CONFIG_VT_HW_CONSOLE_BINDING is not set +CONFIG_VT_HW_CONSOLE_BINDING=y CONFIG_UNIX98_PTYS=y -# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set +CONFIG_DEVPTS_MULTIPLE_INSTANCES=y # CONFIG_LEGACY_PTYS is not set -# CONFIG_SERIAL_NONSTANDARD is not set +CONFIG_SERIAL_NONSTANDARD=y +CONFIG_ROCKETPORT=m +CONFIG_CYCLADES=m +# CONFIG_CYZ_INTR is not set +# CONFIG_MOXA_INTELLIO is not set +# CONFIG_MOXA_SMARTIO is not set +CONFIG_SYNCLINK=m +CONFIG_SYNCLINKMP=m +CONFIG_SYNCLINK_GT=m CONFIG_NOZOMI=m +# CONFIG_ISI is not set +CONFIG_N_HDLC=m CONFIG_N_GSM=m # CONFIG_TRACE_SINK is not set -CONFIG_DEVKMEM=y +# CONFIG_DEVKMEM is not set +# CONFIG_STALDRV is not set
# # Serial drivers # CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y +CONFIG_SERIAL_8250_PNP=y CONFIG_SERIAL_8250_CONSOLE=y CONFIG_FIX_EARLYCON_MEM=y +CONFIG_SERIAL_8250_DMA=y CONFIG_SERIAL_8250_PCI=y -CONFIG_SERIAL_8250_PNP=y -CONFIG_SERIAL_8250_CS=m +# CONFIG_SERIAL_8250_CS is not set CONFIG_SERIAL_8250_NR_UARTS=4 CONFIG_SERIAL_8250_RUNTIME_UARTS=4 CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_MANY_PORTS=y -CONFIG_SERIAL_8250_FOURPORT=m -CONFIG_SERIAL_8250_ACCENT=m -CONFIG_SERIAL_8250_BOCA=m -CONFIG_SERIAL_8250_EXAR_ST16C554=m -CONFIG_SERIAL_8250_HUB6=m +# CONFIG_SERIAL_8250_FOURPORT is not set +# CONFIG_SERIAL_8250_ACCENT is not set +# CONFIG_SERIAL_8250_BOCA is not set +# CONFIG_SERIAL_8250_EXAR_ST16C554 is not set +# CONFIG_SERIAL_8250_HUB6 is not set CONFIG_SERIAL_8250_SHARE_IRQ=y -CONFIG_SERIAL_8250_DETECT_IRQ=y +# CONFIG_SERIAL_8250_DETECT_IRQ is not set CONFIG_SERIAL_8250_RSA=y -# CONFIG_SERIAL_8250_MCA is not set +CONFIG_SERIAL_8250_DW=m
# # Non-8250 serial port support # -CONFIG_SERIAL_MFD_HSU=m -CONFIG_SERIAL_UARTLITE=m +# CONFIG_SERIAL_MFD_HSU is not set CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y -# CONFIG_SERIAL_JSM is not set -CONFIG_SERIAL_TIMBERDALE=m -CONFIG_SERIAL_ALTERA_JTAGUART=m -CONFIG_SERIAL_ALTERA_UART=m -CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4 -CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200 -CONFIG_SERIAL_PCH_UART=m -CONFIG_SERIAL_XILINX_PS_UART=m +CONFIG_SERIAL_JSM=m +CONFIG_SERIAL_SCCNXP=m +# CONFIG_SERIAL_TIMBERDALE is not set +# CONFIG_SERIAL_ALTERA_JTAGUART is not set +# CONFIG_SERIAL_ALTERA_UART is not set +# CONFIG_SERIAL_PCH_UART is not set +CONFIG_SERIAL_ARC=m +CONFIG_SERIAL_ARC_NR_PORTS=1 +CONFIG_SERIAL_RP2=m +CONFIG_SERIAL_RP2_NR_UARTS=32 +# CONFIG_TTY_PRINTK is not set CONFIG_PRINTER=m -# CONFIG_LP_CONSOLE is not set +CONFIG_LP_CONSOLE=y CONFIG_PPDEV=m CONFIG_HVC_DRIVER=y CONFIG_VIRTIO_CONSOLE=y CONFIG_IPMI_HANDLER=m -CONFIG_IPMI_PANIC_EVENT=y -# CONFIG_IPMI_PANIC_STRING is not set +# CONFIG_IPMI_PANIC_EVENT is not set CONFIG_IPMI_DEVICE_INTERFACE=m CONFIG_IPMI_SI=m CONFIG_IPMI_WATCHDOG=m CONFIG_IPMI_POWEROFF=m -CONFIG_HW_RANDOM=m +CONFIG_HW_RANDOM=y CONFIG_HW_RANDOM_TIMERIOMEM=m CONFIG_HW_RANDOM_INTEL=m CONFIG_HW_RANDOM_AMD=m +CONFIG_HW_RANDOM_ATMEL=m CONFIG_HW_RANDOM_GEODE=m CONFIG_HW_RANDOM_VIA=m CONFIG_HW_RANDOM_VIRTIO=m -CONFIG_NVRAM=m +CONFIG_HW_RANDOM_EXYNOS=m +CONFIG_NVRAM=y # CONFIG_DTLK is not set -# CONFIG_R3964 is not set +CONFIG_R3964=m # CONFIG_APPLICOM is not set -# CONFIG_SONYPI is not set +CONFIG_SONYPI=m
# # PCMCIA character devices # -CONFIG_SYNCLINK_CS=m +# CONFIG_SYNCLINK_CS is not set # CONFIG_CARDMAN_4000 is not set # CONFIG_CARDMAN_4040 is not set -CONFIG_IPWIRELESS=m +# CONFIG_IPWIRELESS is not set CONFIG_MWAVE=m -CONFIG_SCx200_GPIO=m +# CONFIG_SCx200_GPIO is not set CONFIG_PC8736x_GPIO=m CONFIG_NSC_GPIO=m -# CONFIG_RAW_DRIVER is not set +CONFIG_RAW_DRIVER=y +CONFIG_MAX_RAW_DEVS=8192 CONFIG_HPET=y -CONFIG_HPET_MMAP=y +# CONFIG_HPET_MMAP is not set CONFIG_HANGCHECK_TIMER=m # CONFIG_TCG_TPM is not set # CONFIG_TELCLOCK is not set CONFIG_DEVPORT=y -# CONFIG_RAMOOPS is not set CONFIG_I2C=m CONFIG_I2C_BOARDINFO=y CONFIG_I2C_COMPAT=y CONFIG_I2C_CHARDEV=m -CONFIG_I2C_MUX=m - -# -# Multiplexer I2C Chip support -# -CONFIG_I2C_MUX_GPIO=m -CONFIG_I2C_MUX_PCA9541=m -CONFIG_I2C_MUX_PCA954x=m +# CONFIG_I2C_MUX is not set CONFIG_I2C_HELPER_AUTO=y CONFIG_I2C_SMBUS=m CONFIG_I2C_ALGOBIT=m @@ -2482,6 +2701,7 @@ CONFIG_I2C_AMD756_S4882=m CONFIG_I2C_AMD8111=m CONFIG_I2C_I801=m CONFIG_I2C_ISCH=m +CONFIG_I2C_ISMT=m CONFIG_I2C_PIIX4=m CONFIG_I2C_NFORCE2=m CONFIG_I2C_NFORCE2_S4985=m @@ -2499,16 +2719,18 @@ CONFIG_I2C_SCMI=m # # I2C system bus drivers (mostly embedded / system-on-chip) # +CONFIG_I2C_CBUS_GPIO=m CONFIG_I2C_DESIGNWARE_CORE=m -CONFIG_I2C_DESIGNWARE_PCI=m -CONFIG_I2C_GPIO=m -CONFIG_I2C_INTEL_MID=m -CONFIG_I2C_OCORES=m +CONFIG_I2C_DESIGNWARE_PLATFORM=m +# CONFIG_I2C_DESIGNWARE_PCI is not set +# CONFIG_I2C_EG20T is not set +# CONFIG_I2C_GPIO is not set +# CONFIG_I2C_INTEL_MID is not set +# CONFIG_I2C_OCORES is not set CONFIG_I2C_PCA_PLATFORM=m # CONFIG_I2C_PXA_PCI is not set CONFIG_I2C_SIMTEC=m -CONFIG_I2C_XILINX=m -CONFIG_I2C_EG20T=m +# CONFIG_I2C_XILINX is not set
# # External I2C/SMBus adapter drivers @@ -2516,22 +2738,34 @@ CONFIG_I2C_EG20T=m CONFIG_I2C_DIOLAN_U2C=m CONFIG_I2C_PARPORT=m CONFIG_I2C_PARPORT_LIGHT=m -CONFIG_I2C_TAOS_EVM=m +# CONFIG_I2C_TAOS_EVM is not set CONFIG_I2C_TINY_USB=m +CONFIG_I2C_VIPERBOARD=m
# # Other I2C/SMBus bus drivers # -CONFIG_I2C_PCA_ISA=m -CONFIG_I2C_STUB=m -# CONFIG_SCx200_I2C is not set +# CONFIG_I2C_PCA_ISA is not set CONFIG_SCx200_ACB=m +# CONFIG_I2C_STUB is not set # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set # CONFIG_SPI is not set
# +# Qualcomm MSM SSBI bus support +# +# CONFIG_SSBI is not set +CONFIG_HSI=m +CONFIG_HSI_BOARDINFO=y + +# +# HSI clients +# +CONFIG_HSI_CHAR=m + +# # PPS support # CONFIG_PPS=m @@ -2553,67 +2787,76 @@ CONFIG_PPS=m # PTP clock support # CONFIG_PTP_1588_CLOCK=m -CONFIG_DP83640_PHY=m + +# +# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. +# +CONFIG_PTP_1588_CLOCK_PCH=m CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y +CONFIG_GPIO_DEVRES=y CONFIG_GPIOLIB=y +CONFIG_GPIO_ACPI=y # CONFIG_DEBUG_GPIO is not set CONFIG_GPIO_SYSFS=y -CONFIG_GPIO_GENERIC=m -CONFIG_GPIO_MAX730X=m
# # Memory mapped GPIO drivers: # -CONFIG_GPIO_GENERIC_PLATFORM=m -CONFIG_GPIO_IT8761E=m +# CONFIG_GPIO_GENERIC_PLATFORM is not set +# CONFIG_GPIO_IT8761E is not set +CONFIG_GPIO_TS5500=m CONFIG_GPIO_SCH=m -CONFIG_GPIO_VX855=m +CONFIG_GPIO_ICH=m +# CONFIG_GPIO_VX855 is not set +# CONFIG_GPIO_LYNXPOINT is not set
# # I2C GPIO expanders: # -CONFIG_GPIO_MAX7300=m -CONFIG_GPIO_MAX732X=m -CONFIG_GPIO_PCA953X=m -CONFIG_GPIO_PCF857X=m -CONFIG_GPIO_ADP5588=m +# CONFIG_GPIO_MAX7300 is not set +# CONFIG_GPIO_MAX732X is not set +# CONFIG_GPIO_PCA953X is not set +# CONFIG_GPIO_PCF857X is not set +# CONFIG_GPIO_ADP5588 is not set
# # PCI GPIO expanders: # CONFIG_GPIO_CS5535=m -# CONFIG_GPIO_BT8XX is not set +# CONFIG_GPIO_AMD8111 is not set # CONFIG_GPIO_LANGWELL is not set -CONFIG_GPIO_PCH=m -CONFIG_GPIO_ML_IOH=m -# CONFIG_GPIO_TIMBERDALE is not set -CONFIG_GPIO_RDC321X=m +# CONFIG_GPIO_PCH is not set +# CONFIG_GPIO_ML_IOH is not set +# CONFIG_GPIO_RDC321X is not set
# # SPI GPIO expanders: # -CONFIG_GPIO_MCP23S08=m +# CONFIG_GPIO_MCP23S08 is not set
# # AC97 GPIO expanders: # -# CONFIG_GPIO_UCB1400 is not set
# # MODULbus GPIO expanders: # -CONFIG_GPIO_JANZ_TTL=m + +# +# USB GPIO expanders: +# +CONFIG_GPIO_VIPERBOARD=m CONFIG_W1=m CONFIG_W1_CON=y
# # 1-wire Bus Masters # -CONFIG_W1_MASTER_MATROX=m +# CONFIG_W1_MASTER_MATROX is not set CONFIG_W1_MASTER_DS2490=m CONFIG_W1_MASTER_DS2482=m CONFIG_W1_MASTER_DS1WM=m -CONFIG_W1_MASTER_GPIO=m +# CONFIG_W1_MASTER_GPIO is not set
# # 1-wire Slaves @@ -2621,29 +2864,39 @@ CONFIG_W1_MASTER_GPIO=m CONFIG_W1_SLAVE_THERM=m CONFIG_W1_SLAVE_SMEM=m CONFIG_W1_SLAVE_DS2408=m +CONFIG_W1_SLAVE_DS2408_READBACK=y +CONFIG_W1_SLAVE_DS2413=m CONFIG_W1_SLAVE_DS2423=m CONFIG_W1_SLAVE_DS2431=m CONFIG_W1_SLAVE_DS2433=m CONFIG_W1_SLAVE_DS2433_CRC=y CONFIG_W1_SLAVE_DS2760=m CONFIG_W1_SLAVE_DS2780=m +CONFIG_W1_SLAVE_DS2781=m +CONFIG_W1_SLAVE_DS28E04=m CONFIG_W1_SLAVE_BQ27000=m CONFIG_POWER_SUPPLY=y # CONFIG_POWER_SUPPLY_DEBUG is not set # CONFIG_PDA_POWER is not set +CONFIG_GENERIC_ADC_BATTERY=m # CONFIG_TEST_POWER is not set # CONFIG_BATTERY_DS2760 is not set # CONFIG_BATTERY_DS2780 is not set +# CONFIG_BATTERY_DS2781 is not set # CONFIG_BATTERY_DS2782 is not set -# CONFIG_BATTERY_BQ20Z75 is not set +# CONFIG_BATTERY_SBS is not set # CONFIG_BATTERY_BQ27x00 is not set # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set -# CONFIG_CHARGER_PCF50633 is not set -# CONFIG_CHARGER_ISP1704 is not set # CONFIG_CHARGER_MAX8903 is not set +# CONFIG_CHARGER_LP8727 is not set # CONFIG_CHARGER_GPIO is not set -CONFIG_HWMON=m +# CONFIG_CHARGER_BQ2415X is not set +# CONFIG_CHARGER_SMB347 is not set +# CONFIG_BATTERY_GOLDFISH is not set +CONFIG_POWER_RESET=y +CONFIG_POWER_AVS=y +CONFIG_HWMON=y CONFIG_HWMON_VID=m # CONFIG_HWMON_DEBUG_CHIP is not set
@@ -2660,6 +2913,8 @@ CONFIG_SENSORS_ADM1026=m CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM9240=m +CONFIG_SENSORS_ADT7X10=m +CONFIG_SENSORS_ADT7410=m CONFIG_SENSORS_ADT7411=m CONFIG_SENSORS_ADT7462=m CONFIG_SENSORS_ADT7470=m @@ -2680,12 +2935,14 @@ CONFIG_SENSORS_FSCHMD=m CONFIG_SENSORS_G760A=m CONFIG_SENSORS_GL518SM=m CONFIG_SENSORS_GL520SM=m -CONFIG_SENSORS_GPIO_FAN=m +# CONFIG_SENSORS_GPIO_FAN is not set +CONFIG_SENSORS_HIH6130=m CONFIG_SENSORS_CORETEMP=m CONFIG_SENSORS_IBMAEM=m CONFIG_SENSORS_IBMPEX=m +# CONFIG_SENSORS_IIO_HWMON is not set CONFIG_SENSORS_IT87=m -CONFIG_SENSORS_JC42=m +# CONFIG_SENSORS_JC42 is not set CONFIG_SENSORS_LINEAGE=m CONFIG_SENSORS_LM63=m CONFIG_SENSORS_LM73=m @@ -2703,14 +2960,19 @@ CONFIG_SENSORS_LTC4151=m CONFIG_SENSORS_LTC4215=m CONFIG_SENSORS_LTC4245=m CONFIG_SENSORS_LTC4261=m +CONFIG_SENSORS_LM95234=m CONFIG_SENSORS_LM95241=m CONFIG_SENSORS_LM95245=m CONFIG_SENSORS_MAX16065=m CONFIG_SENSORS_MAX1619=m CONFIG_SENSORS_MAX1668=m +CONFIG_SENSORS_MAX197=m CONFIG_SENSORS_MAX6639=m CONFIG_SENSORS_MAX6642=m CONFIG_SENSORS_MAX6650=m +CONFIG_SENSORS_MAX6697=m +CONFIG_SENSORS_MCP3021=m +CONFIG_SENSORS_NCT6775=m CONFIG_SENSORS_NTC_THERMISTOR=m CONFIG_SENSORS_PC87360=m CONFIG_SENSORS_PC87427=m @@ -2719,20 +2981,20 @@ CONFIG_PMBUS=m CONFIG_SENSORS_PMBUS=m CONFIG_SENSORS_ADM1275=m CONFIG_SENSORS_LM25066=m -CONFIG_SENSORS_LTC2978=m +# CONFIG_SENSORS_LTC2978 is not set CONFIG_SENSORS_MAX16064=m CONFIG_SENSORS_MAX34440=m CONFIG_SENSORS_MAX8688=m CONFIG_SENSORS_UCD9000=m CONFIG_SENSORS_UCD9200=m -CONFIG_SENSORS_ZL6100=m +# CONFIG_SENSORS_ZL6100 is not set CONFIG_SENSORS_SHT15=m CONFIG_SENSORS_SHT21=m CONFIG_SENSORS_SIS5595=m -CONFIG_SENSORS_SMM665=m +# CONFIG_SENSORS_SMM665 is not set CONFIG_SENSORS_DME1737=m CONFIG_SENSORS_EMC1403=m -CONFIG_SENSORS_EMC2103=m +# CONFIG_SENSORS_EMC2103 is not set CONFIG_SENSORS_EMC6W201=m CONFIG_SENSORS_SMSC47M1=m CONFIG_SENSORS_SMSC47M192=m @@ -2743,6 +3005,8 @@ CONFIG_SENSORS_SCH5636=m CONFIG_SENSORS_ADS1015=m CONFIG_SENSORS_ADS7828=m CONFIG_SENSORS_AMC6821=m +CONFIG_SENSORS_INA209=m +CONFIG_SENSORS_INA2XX=m CONFIG_SENSORS_THMC50=m CONFIG_SENSORS_TMP102=m CONFIG_SENSORS_TMP401=m @@ -2769,51 +3033,64 @@ CONFIG_SENSORS_APPLESMC=m CONFIG_SENSORS_ACPI_POWER=m CONFIG_SENSORS_ATK0110=m CONFIG_THERMAL=y +CONFIG_THERMAL_HWMON=y +CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y +# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set +# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set +CONFIG_THERMAL_GOV_FAIR_SHARE=y +CONFIG_THERMAL_GOV_STEP_WISE=y +CONFIG_THERMAL_GOV_USER_SPACE=y +CONFIG_CPU_THERMAL=y +CONFIG_THERMAL_EMULATION=y +CONFIG_INTEL_POWERCLAMP=m CONFIG_WATCHDOG=y CONFIG_WATCHDOG_CORE=y -# CONFIG_WATCHDOG_NOWAYOUT is not set +CONFIG_WATCHDOG_NOWAYOUT=y
# # Watchdog Device Drivers # CONFIG_SOFT_WATCHDOG=m -CONFIG_ACQUIRE_WDT=m -CONFIG_ADVANTECH_WDT=m +CONFIG_RETU_WATCHDOG=m +# CONFIG_ACQUIRE_WDT is not set +# CONFIG_ADVANTECH_WDT is not set CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m CONFIG_F71808E_WDT=m CONFIG_SP5100_TCO=m CONFIG_GEODE_WDT=m -CONFIG_SC520_WDT=m +# CONFIG_SC520_WDT is not set CONFIG_SBC_FITPC2_WATCHDOG=m -CONFIG_EUROTECH_WDT=m +# CONFIG_EUROTECH_WDT is not set CONFIG_IB700_WDT=m CONFIG_IBMASR=m -CONFIG_WAFER_WDT=m +# CONFIG_WAFER_WDT is not set CONFIG_I6300ESB_WDT=m +CONFIG_IE6XX_WDT=m CONFIG_ITCO_WDT=m # CONFIG_ITCO_VENDOR_SUPPORT is not set CONFIG_IT8712F_WDT=m CONFIG_IT87_WDT=m CONFIG_HP_WATCHDOG=m CONFIG_HPWDT_NMI_DECODING=y -CONFIG_SC1200_WDT=m -CONFIG_SCx200_WDT=m -CONFIG_PC87413_WDT=m +# CONFIG_SC1200_WDT is not set +# CONFIG_SCx200_WDT is not set +# CONFIG_PC87413_WDT is not set CONFIG_NV_TCO=m -CONFIG_60XX_WDT=m -CONFIG_SBC8360_WDT=m -CONFIG_SBC7240_WDT=m -CONFIG_CPU5_WDT=m +# CONFIG_60XX_WDT is not set +# CONFIG_SBC8360_WDT is not set +# CONFIG_SBC7240_WDT is not set +# CONFIG_CPU5_WDT is not set CONFIG_SMSC_SCH311X_WDT=m -CONFIG_SMSC37B787_WDT=m +# CONFIG_SMSC37B787_WDT is not set +CONFIG_VIA_WDT=m CONFIG_W83627HF_WDT=m CONFIG_W83697HF_WDT=m CONFIG_W83697UG_WDT=m CONFIG_W83877F_WDT=m CONFIG_W83977F_WDT=m CONFIG_MACHZ_WDT=m -CONFIG_SBC_EPX_C3_WATCHDOG=m +# CONFIG_SBC_EPX_C3_WATCHDOG is not set
# # ISA-based Watchdog Cards @@ -2839,397 +3116,629 @@ CONFIG_SSB_POSSIBLE=y # CONFIG_SSB=m CONFIG_SSB_SPROM=y +CONFIG_SSB_BLOCKIO=y CONFIG_SSB_PCIHOST_POSSIBLE=y CONFIG_SSB_PCIHOST=y -# CONFIG_SSB_B43_PCI_BRIDGE is not set +CONFIG_SSB_B43_PCI_BRIDGE=y CONFIG_SSB_PCMCIAHOST_POSSIBLE=y CONFIG_SSB_PCMCIAHOST=y CONFIG_SSB_SDIOHOST_POSSIBLE=y CONFIG_SSB_SDIOHOST=y -# CONFIG_SSB_DEBUG is not set +CONFIG_SSB_SILENT=y CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y CONFIG_SSB_DRIVER_PCICORE=y +CONFIG_SSB_DRIVER_GPIO=y CONFIG_BCMA_POSSIBLE=y
# # Broadcom specific AMBA # -CONFIG_BCMA=m -CONFIG_BCMA_HOST_PCI_POSSIBLE=y -# CONFIG_BCMA_HOST_PCI is not set -# CONFIG_BCMA_DEBUG is not set +# CONFIG_BCMA is not set
# # Multifunction device drivers # CONFIG_MFD_CORE=m -CONFIG_MFD_SM501=m -# CONFIG_MFD_SM501_GPIO is not set -CONFIG_HTC_PASIC3=m -CONFIG_UCB1400_CORE=m -CONFIG_TPS6105X=m -CONFIG_TPS65010=m -CONFIG_TPS6507X=m -# CONFIG_MFD_TMIO is not set -CONFIG_MFD_WM8400=m -CONFIG_MFD_PCF50633=m -CONFIG_PCF50633_ADC=m -CONFIG_PCF50633_GPIO=m -# CONFIG_ABX500_CORE is not set CONFIG_MFD_CS5535=m -CONFIG_MFD_TIMBERDALE=m +# CONFIG_MFD_CROS_EC is not set +# CONFIG_MFD_MC13XXX_I2C is not set +# CONFIG_HTC_PASIC3 is not set +CONFIG_LPC_ICH=m CONFIG_LPC_SCH=m -CONFIG_MFD_RDC321X=m -CONFIG_MFD_JANZ_CMODIO=m -CONFIG_MFD_VX855=m +# CONFIG_MFD_JANZ_CMODIO is not set +CONFIG_MFD_VIPERBOARD=m +CONFIG_MFD_RETU=m +# CONFIG_MFD_PCF50633 is not set +# CONFIG_UCB1400_CORE is not set +# CONFIG_MFD_RDC321X is not set +CONFIG_MFD_RTSX_PCI=m +# CONFIG_MFD_SI476X_CORE is not set +CONFIG_MFD_SM501=m +CONFIG_MFD_SM501_GPIO=y +# CONFIG_ABX500_CORE is not set +# CONFIG_MFD_SYSCON is not set +# CONFIG_MFD_TI_AM335X_TSCADC is not set +# CONFIG_TPS6105X is not set +# CONFIG_TPS65010 is not set +# CONFIG_TPS6507X is not set +# CONFIG_MFD_TPS65217 is not set +# CONFIG_MFD_TPS65912 is not set CONFIG_MFD_WL1273_CORE=m -CONFIG_REGULATOR=y -# CONFIG_REGULATOR_DEBUG is not set -# CONFIG_REGULATOR_DUMMY is not set -CONFIG_REGULATOR_FIXED_VOLTAGE=m -# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set -# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set -CONFIG_REGULATOR_GPIO=m -# CONFIG_REGULATOR_BQ24022 is not set -# CONFIG_REGULATOR_MAX1586 is not set -# CONFIG_REGULATOR_MAX8649 is not set -# CONFIG_REGULATOR_MAX8660 is not set -# CONFIG_REGULATOR_MAX8952 is not set -# CONFIG_REGULATOR_WM8400 is not set -# CONFIG_REGULATOR_PCF50633 is not set -# CONFIG_REGULATOR_LP3971 is not set -# CONFIG_REGULATOR_LP3972 is not set -# CONFIG_REGULATOR_TPS6105X is not set -# CONFIG_REGULATOR_TPS65023 is not set -# CONFIG_REGULATOR_TPS6507X is not set -# CONFIG_REGULATOR_ISL6271A is not set -# CONFIG_REGULATOR_AD5398 is not set +CONFIG_MFD_LM3533=m +# CONFIG_MFD_TIMBERDALE is not set +# CONFIG_MFD_TMIO is not set +CONFIG_MFD_VX855=m +# CONFIG_MFD_ARIZONA_I2C is not set +# CONFIG_REGULATOR is not set CONFIG_MEDIA_SUPPORT=m
# # Multimedia core support # +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_ANALOG_TV_SUPPORT=y +CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y +# CONFIG_MEDIA_RADIO_SUPPORT is not set +CONFIG_MEDIA_RC_SUPPORT=y CONFIG_MEDIA_CONTROLLER=y CONFIG_VIDEO_DEV=m -CONFIG_VIDEO_V4L2_COMMON=m CONFIG_VIDEO_V4L2_SUBDEV_API=y +CONFIG_VIDEO_V4L2=m +# CONFIG_VIDEO_ADV_DEBUG is not set +# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set +CONFIG_VIDEO_TUNER=m +CONFIG_V4L2_MEM2MEM_DEV=m +CONFIG_VIDEOBUF_GEN=m +CONFIG_VIDEOBUF_DMA_SG=m +CONFIG_VIDEOBUF_VMALLOC=m +CONFIG_VIDEOBUF_DMA_CONTIG=m +CONFIG_VIDEOBUF_DVB=m +CONFIG_VIDEOBUF2_CORE=m +CONFIG_VIDEOBUF2_MEMOPS=m +CONFIG_VIDEOBUF2_DMA_CONTIG=m +CONFIG_VIDEOBUF2_VMALLOC=m +CONFIG_VIDEO_V4L2_INT_DEVICE=m CONFIG_DVB_CORE=m CONFIG_DVB_NET=y -CONFIG_VIDEO_MEDIA=m +CONFIG_TTPCI_EEPROM=m +CONFIG_DVB_MAX_ADAPTERS=8 +CONFIG_DVB_DYNAMIC_MINORS=y
# -# Multimedia drivers +# Media drivers # CONFIG_RC_CORE=m -CONFIG_LIRC=m CONFIG_RC_MAP=m -# CONFIG_IR_NEC_DECODER is not set -# CONFIG_IR_RC5_DECODER is not set -# CONFIG_IR_RC6_DECODER is not set -# CONFIG_IR_JVC_DECODER is not set -# CONFIG_IR_SONY_DECODER is not set -# CONFIG_IR_RC5_SZ_DECODER is not set -# CONFIG_IR_MCE_KBD_DECODER is not set -# CONFIG_IR_LIRC_CODEC is not set -# CONFIG_RC_ATI_REMOTE is not set -# CONFIG_IR_ENE is not set -# CONFIG_IR_IMON is not set -# CONFIG_IR_MCEUSB is not set -# CONFIG_IR_ITE_CIR is not set -# CONFIG_IR_FINTEK is not set -# CONFIG_IR_NUVOTON is not set -# CONFIG_IR_REDRAT3 is not set -# CONFIG_IR_STREAMZAP is not set -# CONFIG_IR_WINBOND_CIR is not set -# CONFIG_RC_LOOPBACK is not set -CONFIG_MEDIA_ATTACH=y -CONFIG_MEDIA_TUNER=m -# CONFIG_MEDIA_TUNER_CUSTOMISE is not set -CONFIG_MEDIA_TUNER_SIMPLE=m -CONFIG_MEDIA_TUNER_TDA8290=m -CONFIG_MEDIA_TUNER_TDA827X=m -CONFIG_MEDIA_TUNER_TDA18271=m -CONFIG_MEDIA_TUNER_TDA9887=m -CONFIG_MEDIA_TUNER_TEA5761=m -CONFIG_MEDIA_TUNER_TEA5767=m -CONFIG_MEDIA_TUNER_MT20XX=m -CONFIG_MEDIA_TUNER_XC2028=m -CONFIG_MEDIA_TUNER_XC5000=m -CONFIG_MEDIA_TUNER_XC4000=m -CONFIG_MEDIA_TUNER_MC44S803=m -CONFIG_VIDEO_V4L2=m -CONFIG_VIDEO_CAPTURE_DRIVERS=y -# CONFIG_VIDEO_ADV_DEBUG is not set -# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set -# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set -CONFIG_VIDEO_IR_I2C=m - -# -# Encoders, decoders, sensors and other helper chips -# - -# -# Audio decoders, processors and mixers -# -# CONFIG_VIDEO_TVAUDIO is not set -# CONFIG_VIDEO_TDA7432 is not set -# CONFIG_VIDEO_TDA9840 is not set -# CONFIG_VIDEO_TEA6415C is not set -# CONFIG_VIDEO_TEA6420 is not set -# CONFIG_VIDEO_MSP3400 is not set -# CONFIG_VIDEO_CS5345 is not set -# CONFIG_VIDEO_CS53L32A is not set -# CONFIG_VIDEO_TLV320AIC23B is not set -# CONFIG_VIDEO_WM8775 is not set -# CONFIG_VIDEO_WM8739 is not set -# CONFIG_VIDEO_VP27SMPX is not set - -# -# RDS decoders -# -# CONFIG_VIDEO_SAA6588 is not set - -# -# Video decoders -# -# CONFIG_VIDEO_ADV7180 is not set -# CONFIG_VIDEO_BT819 is not set -# CONFIG_VIDEO_BT856 is not set -# CONFIG_VIDEO_BT866 is not set -# CONFIG_VIDEO_KS0127 is not set -# CONFIG_VIDEO_SAA7110 is not set -# CONFIG_VIDEO_SAA711X is not set -# CONFIG_VIDEO_SAA7191 is not set -# CONFIG_VIDEO_TVP514X is not set -# CONFIG_VIDEO_TVP5150 is not set -# CONFIG_VIDEO_TVP7002 is not set -# CONFIG_VIDEO_VPX3220 is not set - -# -# Video and audio decoders -# -# CONFIG_VIDEO_SAA717X is not set -# CONFIG_VIDEO_CX25840 is not set - -# -# MPEG video encoders -# -# CONFIG_VIDEO_CX2341X is not set - -# -# Video encoders -# -# CONFIG_VIDEO_SAA7127 is not set -# CONFIG_VIDEO_SAA7185 is not set -# CONFIG_VIDEO_ADV7170 is not set -# CONFIG_VIDEO_ADV7175 is not set -# CONFIG_VIDEO_ADV7343 is not set -# CONFIG_VIDEO_AK881X is not set - -# -# Camera sensor devices -# -# CONFIG_VIDEO_OV7670 is not set -# CONFIG_VIDEO_MT9P031 is not set -# CONFIG_VIDEO_MT9T001 is not set -# CONFIG_VIDEO_MT9V011 is not set -# CONFIG_VIDEO_MT9V032 is not set -# CONFIG_VIDEO_TCM825X is not set -# CONFIG_VIDEO_SR030PC30 is not set -# CONFIG_VIDEO_NOON010PC30 is not set -# CONFIG_VIDEO_M5MOLS is not set -# CONFIG_VIDEO_S5K6AA is not set +CONFIG_RC_DECODERS=y +CONFIG_LIRC=m +CONFIG_IR_LIRC_CODEC=m +CONFIG_IR_NEC_DECODER=m +CONFIG_IR_RC5_DECODER=m +CONFIG_IR_RC6_DECODER=m +CONFIG_IR_JVC_DECODER=m +CONFIG_IR_SONY_DECODER=m +CONFIG_IR_RC5_SZ_DECODER=m +CONFIG_IR_SANYO_DECODER=m +CONFIG_IR_MCE_KBD_DECODER=m +CONFIG_RC_DEVICES=y +CONFIG_RC_ATI_REMOTE=m +CONFIG_IR_ENE=m +CONFIG_IR_IMON=m +CONFIG_IR_MCEUSB=m +CONFIG_IR_ITE_CIR=m +CONFIG_IR_FINTEK=m +CONFIG_IR_NUVOTON=m +CONFIG_IR_REDRAT3=m +CONFIG_IR_STREAMZAP=m +CONFIG_IR_WINBOND_CIR=m +CONFIG_IR_IGUANA=m +CONFIG_IR_TTUSBIR=m +CONFIG_RC_LOOPBACK=m +CONFIG_IR_GPIO_CIR=m +CONFIG_MEDIA_USB_SUPPORT=y + +# +# Webcam devices +# +CONFIG_USB_VIDEO_CLASS=m +CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y +CONFIG_USB_GSPCA=m +CONFIG_USB_M5602=m +CONFIG_USB_STV06XX=m +CONFIG_USB_GL860=m +CONFIG_USB_GSPCA_BENQ=m +CONFIG_USB_GSPCA_CONEX=m +CONFIG_USB_GSPCA_CPIA1=m +CONFIG_USB_GSPCA_ETOMS=m +CONFIG_USB_GSPCA_FINEPIX=m +CONFIG_USB_GSPCA_JEILINJ=m +CONFIG_USB_GSPCA_JL2005BCD=m +CONFIG_USB_GSPCA_KINECT=m +CONFIG_USB_GSPCA_KONICA=m +CONFIG_USB_GSPCA_MARS=m +CONFIG_USB_GSPCA_MR97310A=m +CONFIG_USB_GSPCA_NW80X=m +CONFIG_USB_GSPCA_OV519=m +CONFIG_USB_GSPCA_OV534=m +CONFIG_USB_GSPCA_OV534_9=m +CONFIG_USB_GSPCA_PAC207=m +CONFIG_USB_GSPCA_PAC7302=m +CONFIG_USB_GSPCA_PAC7311=m +CONFIG_USB_GSPCA_SE401=m +CONFIG_USB_GSPCA_SN9C2028=m +CONFIG_USB_GSPCA_SN9C20X=m +CONFIG_USB_GSPCA_SONIXB=m +CONFIG_USB_GSPCA_SONIXJ=m +CONFIG_USB_GSPCA_SPCA500=m +CONFIG_USB_GSPCA_SPCA501=m +CONFIG_USB_GSPCA_SPCA505=m +CONFIG_USB_GSPCA_SPCA506=m +CONFIG_USB_GSPCA_SPCA508=m +CONFIG_USB_GSPCA_SPCA561=m +CONFIG_USB_GSPCA_SPCA1528=m +CONFIG_USB_GSPCA_SQ905=m +CONFIG_USB_GSPCA_SQ905C=m +CONFIG_USB_GSPCA_SQ930X=m +CONFIG_USB_GSPCA_STK014=m +CONFIG_USB_GSPCA_STV0680=m +CONFIG_USB_GSPCA_SUNPLUS=m +CONFIG_USB_GSPCA_T613=m +CONFIG_USB_GSPCA_TOPRO=m +CONFIG_USB_GSPCA_TV8532=m +CONFIG_USB_GSPCA_VC032X=m +CONFIG_USB_GSPCA_VICAM=m +CONFIG_USB_GSPCA_XIRLINK_CIT=m +CONFIG_USB_GSPCA_ZC3XX=m +CONFIG_USB_PWC=m +# CONFIG_USB_PWC_DEBUG is not set +CONFIG_USB_PWC_INPUT_EVDEV=y +CONFIG_VIDEO_CPIA2=m +CONFIG_USB_ZR364XX=m +CONFIG_USB_STKWEBCAM=m +CONFIG_USB_S2255=m +CONFIG_USB_SN9C102=m + +# +# Analog TV USB devices +# +CONFIG_VIDEO_PVRUSB2=m +CONFIG_VIDEO_PVRUSB2_SYSFS=y +CONFIG_VIDEO_PVRUSB2_DVB=y +# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set +CONFIG_VIDEO_HDPVR=m +CONFIG_VIDEO_TLG2300=m +CONFIG_VIDEO_USBVISION=m +CONFIG_VIDEO_STK1160=m +CONFIG_VIDEO_STK1160_AC97=y + +# +# Analog/digital TV USB devices +# +CONFIG_VIDEO_AU0828=m +CONFIG_VIDEO_AU0828_V4L2=y +CONFIG_VIDEO_CX231XX=m +CONFIG_VIDEO_CX231XX_RC=y +CONFIG_VIDEO_CX231XX_ALSA=m +CONFIG_VIDEO_CX231XX_DVB=m +CONFIG_VIDEO_TM6000=m +CONFIG_VIDEO_TM6000_ALSA=m +CONFIG_VIDEO_TM6000_DVB=m + +# +# Digital TV USB devices +# +CONFIG_DVB_USB=m +# CONFIG_DVB_USB_DEBUG is not set +CONFIG_DVB_USB_A800=m +CONFIG_DVB_USB_DIBUSB_MB=m +CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y +CONFIG_DVB_USB_DIBUSB_MC=m +CONFIG_DVB_USB_DIB0700=m +CONFIG_DVB_USB_UMT_010=m +CONFIG_DVB_USB_CXUSB=m +CONFIG_DVB_USB_M920X=m +CONFIG_DVB_USB_DIGITV=m +CONFIG_DVB_USB_VP7045=m +CONFIG_DVB_USB_VP702X=m +CONFIG_DVB_USB_GP8PSK=m +CONFIG_DVB_USB_NOVA_T_USB2=m +CONFIG_DVB_USB_TTUSB2=m +CONFIG_DVB_USB_DTT200U=m +CONFIG_DVB_USB_OPERA1=m +CONFIG_DVB_USB_AF9005=m +CONFIG_DVB_USB_AF9005_REMOTE=m +CONFIG_DVB_USB_PCTV452E=m +CONFIG_DVB_USB_DW2102=m +CONFIG_DVB_USB_CINERGY_T2=m +CONFIG_DVB_USB_DTV5100=m +CONFIG_DVB_USB_FRIIO=m +CONFIG_DVB_USB_AZ6027=m +CONFIG_DVB_USB_TECHNISAT_USB2=m +CONFIG_DVB_USB_V2=m +CONFIG_DVB_USB_AF9015=m +CONFIG_DVB_USB_AF9035=m +CONFIG_DVB_USB_ANYSEE=m +CONFIG_DVB_USB_AU6610=m +CONFIG_DVB_USB_AZ6007=m +CONFIG_DVB_USB_CE6230=m +CONFIG_DVB_USB_EC168=m +CONFIG_DVB_USB_GL861=m +CONFIG_DVB_USB_IT913X=m +CONFIG_DVB_USB_LME2510=m +CONFIG_DVB_USB_MXL111SF=m +CONFIG_DVB_USB_RTL28XXU=m +CONFIG_DVB_USB_DVBSKY=m +CONFIG_DVB_TTUSB_BUDGET=m +CONFIG_DVB_TTUSB_DEC=m +CONFIG_SMS_USB_DRV=m +CONFIG_DVB_B2C2_FLEXCOP_USB=m +# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set + +# +# Webcam, TV (analog/digital) USB devices +# +CONFIG_VIDEO_EM28XX=m +CONFIG_VIDEO_EM28XX_ALSA=m +CONFIG_VIDEO_EM28XX_DVB=m +CONFIG_VIDEO_EM28XX_RC=m +CONFIG_MEDIA_PCI_SUPPORT=y + +# +# Media capture support +# +CONFIG_VIDEO_MEYE=m + +# +# Media capture/analog TV support +# +CONFIG_VIDEO_IVTV=m +CONFIG_VIDEO_IVTV_ALSA=m +CONFIG_VIDEO_FB_IVTV=m +CONFIG_VIDEO_ZORAN=m +CONFIG_VIDEO_ZORAN_DC30=m +CONFIG_VIDEO_ZORAN_ZR36060=m +CONFIG_VIDEO_ZORAN_BUZ=m +CONFIG_VIDEO_ZORAN_DC10=m +CONFIG_VIDEO_ZORAN_LML33=m +CONFIG_VIDEO_ZORAN_LML33R10=m +CONFIG_VIDEO_ZORAN_AVS6EYES=m +CONFIG_VIDEO_HEXIUM_GEMINI=m +CONFIG_VIDEO_HEXIUM_ORION=m +CONFIG_VIDEO_MXB=m + +# +# Media capture/analog/hybrid TV support +# +CONFIG_VIDEO_CX18=m +CONFIG_VIDEO_CX18_ALSA=m +CONFIG_VIDEO_CX23885=m +CONFIG_MEDIA_ALTERA_CI=m +CONFIG_VIDEO_CX25821=m +CONFIG_VIDEO_CX25821_ALSA=m +CONFIG_VIDEO_CX88=m +CONFIG_VIDEO_CX88_ALSA=m +CONFIG_VIDEO_CX88_BLACKBIRD=m +CONFIG_VIDEO_CX88_DVB=m +CONFIG_VIDEO_CX88_VP3054=m +CONFIG_VIDEO_CX88_MPEG=m +CONFIG_VIDEO_BT848=m +CONFIG_DVB_BT8XX=m +CONFIG_VIDEO_SAA7134=m +CONFIG_VIDEO_SAA7134_ALSA=m +CONFIG_VIDEO_SAA7134_RC=y +CONFIG_VIDEO_SAA7134_DVB=m +CONFIG_VIDEO_SAA7164=m + +# +# Media digital TV PCI Adapters +# +CONFIG_DVB_AV7110=m +CONFIG_DVB_AV7110_OSD=y +CONFIG_DVB_BUDGET_CORE=m +CONFIG_DVB_BUDGET=m +CONFIG_DVB_BUDGET_CI=m +CONFIG_DVB_BUDGET_AV=m +CONFIG_DVB_BUDGET_PATCH=m +CONFIG_DVB_B2C2_FLEXCOP_PCI=m +# CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG is not set +CONFIG_DVB_PLUTO2=m +CONFIG_DVB_DM1105=m +CONFIG_DVB_PT1=m +CONFIG_MANTIS_CORE=m +CONFIG_DVB_MANTIS=m +CONFIG_DVB_HOPPER=m +CONFIG_DVB_NGENE=m +CONFIG_DVB_DDBRIDGE=m +CONFIG_V4L_PLATFORM_DRIVERS=y +CONFIG_VIDEO_CAFE_CCIC=m +# CONFIG_VIDEO_VIA_CAMERA is not set +CONFIG_VIDEO_TIMBERDALE=m +CONFIG_SOC_CAMERA=m +CONFIG_SOC_CAMERA_PLATFORM=m +CONFIG_VIDEO_SH_MOBILE_CSI2=m +CONFIG_VIDEO_SH_MOBILE_CEU=m +CONFIG_V4L_MEM2MEM_DRIVERS=y +CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m +CONFIG_VIDEO_SH_VEU=m +# CONFIG_V4L_TEST_DRIVERS is not set
# -# Flash devices +# Supported MMC/SDIO adapters # -# CONFIG_VIDEO_ADP1653 is not set +# CONFIG_SMS_SDIO_DRV is not set +# CONFIG_MEDIA_PARPORT_SUPPORT is not set
# -# Video improvement chips +# Supported FireWire (IEEE 1394) Adapters # -# CONFIG_VIDEO_UPD64031A is not set -# CONFIG_VIDEO_UPD64083 is not set +CONFIG_DVB_FIREDTV=m +CONFIG_DVB_FIREDTV_INPUT=y +CONFIG_MEDIA_COMMON_OPTIONS=y
# -# Miscelaneous helper chips +# common driver options # -# CONFIG_VIDEO_THS7303 is not set -# CONFIG_VIDEO_M52790 is not set -# CONFIG_VIDEO_VIVI is not set -# CONFIG_VIDEO_BT848 is not set -# CONFIG_VIDEO_PMS is not set -# CONFIG_VIDEO_BWQCAM is not set -# CONFIG_VIDEO_CQCAM is not set -# CONFIG_VIDEO_W9966 is not set -# CONFIG_VIDEO_CPIA2 is not set -# CONFIG_VIDEO_ZORAN is not set -# CONFIG_VIDEO_MEYE is not set -# CONFIG_VIDEO_SAA7134 is not set -# CONFIG_VIDEO_MXB is not set -# CONFIG_VIDEO_HEXIUM_ORION is not set -# CONFIG_VIDEO_HEXIUM_GEMINI is not set -# CONFIG_VIDEO_TIMBERDALE is not set -# CONFIG_VIDEO_CX88 is not set -# CONFIG_VIDEO_CX23885 is not set -# CONFIG_VIDEO_CX25821 is not set -# CONFIG_VIDEO_AU0828 is not set -# CONFIG_VIDEO_IVTV is not set -# CONFIG_VIDEO_CX18 is not set -# CONFIG_VIDEO_SAA7164 is not set -# CONFIG_VIDEO_CAFE_CCIC is not set -# CONFIG_VIDEO_VIA_CAMERA is not set -# CONFIG_SOC_CAMERA is not set -CONFIG_V4L_USB_DRIVERS=y -# CONFIG_USB_VIDEO_CLASS is not set -CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y -# CONFIG_USB_GSPCA is not set -# CONFIG_VIDEO_PVRUSB2 is not set -# CONFIG_VIDEO_HDPVR is not set -# CONFIG_VIDEO_EM28XX is not set -# CONFIG_VIDEO_TLG2300 is not set -# CONFIG_VIDEO_CX231XX is not set -# CONFIG_VIDEO_TM6000 is not set -# CONFIG_VIDEO_USBVISION is not set -# CONFIG_USB_ET61X251 is not set -# CONFIG_USB_SN9C102 is not set -# CONFIG_USB_PWC is not set -# CONFIG_USB_ZR364XX is not set -# CONFIG_USB_STKWEBCAM is not set -# CONFIG_USB_S2255 is not set -# CONFIG_V4L_MEM2MEM_DRIVERS is not set -CONFIG_RADIO_ADAPTERS=y -# CONFIG_RADIO_CADET is not set -# CONFIG_RADIO_RTRACK is not set -# CONFIG_RADIO_RTRACK2 is not set -# CONFIG_RADIO_AZTECH is not set -# CONFIG_RADIO_GEMTEK is not set -# CONFIG_RADIO_MAXIRADIO is not set -# CONFIG_RADIO_MIROPCM20 is not set -# CONFIG_RADIO_SF16FMI is not set -# CONFIG_RADIO_SF16FMR2 is not set -# CONFIG_RADIO_TERRATEC is not set -# CONFIG_RADIO_TRUST is not set -# CONFIG_RADIO_TYPHOON is not set -# CONFIG_RADIO_ZOLTRIX is not set -# CONFIG_I2C_SI4713 is not set -# CONFIG_RADIO_SI4713 is not set -# CONFIG_USB_DSBR is not set -# CONFIG_RADIO_SI470X is not set -# CONFIG_USB_MR800 is not set -# CONFIG_RADIO_TEA5764 is not set -# CONFIG_RADIO_SAA7706H is not set -# CONFIG_RADIO_TEF6862 is not set -# CONFIG_RADIO_TIMBERDALE is not set -# CONFIG_RADIO_WL1273 is not set - -# -# Texas Instruments WL128x FM driver (ST based) -# -# CONFIG_RADIO_WL128X is not set -CONFIG_DVB_MAX_ADAPTERS=8 -# CONFIG_DVB_DYNAMIC_MINORS is not set -CONFIG_DVB_CAPTURE_DRIVERS=y +CONFIG_VIDEO_CX2341X=m +CONFIG_VIDEO_BTCX=m +CONFIG_VIDEO_TVEEPROM=m +CONFIG_CYPRESS_FIRMWARE=m +CONFIG_DVB_B2C2_FLEXCOP=m +CONFIG_VIDEO_SAA7146=m +CONFIG_VIDEO_SAA7146_VV=m +CONFIG_SMS_SIANO_MDTV=m +CONFIG_SMS_SIANO_RC=y +# CONFIG_SMS_SIANO_DEBUGFS is not set
# -# Supported SAA7146 based PCI Adapters +# Media ancillary drivers (tuners, sensors, i2c, frontends) # -# CONFIG_TTPCI_EEPROM is not set -# CONFIG_DVB_AV7110 is not set -# CONFIG_DVB_BUDGET_CORE is not set +CONFIG_MEDIA_SUBDRV_AUTOSELECT=y +CONFIG_MEDIA_ATTACH=y +CONFIG_VIDEO_IR_I2C=m
# -# Supported USB Adapters +# Audio decoders, processors and mixers # -# CONFIG_DVB_USB is not set -# CONFIG_DVB_TTUSB_BUDGET is not set -# CONFIG_DVB_TTUSB_DEC is not set -# CONFIG_SMS_SIANO_MDTV is not set +CONFIG_VIDEO_TVAUDIO=m +CONFIG_VIDEO_TDA7432=m +CONFIG_VIDEO_TDA9840=m +CONFIG_VIDEO_TEA6415C=m +CONFIG_VIDEO_TEA6420=m +CONFIG_VIDEO_MSP3400=m +CONFIG_VIDEO_CS5345=m +CONFIG_VIDEO_CS53L32A=m +CONFIG_VIDEO_WM8775=m +CONFIG_VIDEO_WM8739=m +CONFIG_VIDEO_VP27SMPX=m
# -# Supported FlexCopII (B2C2) Adapters +# RDS decoders # -# CONFIG_DVB_B2C2_FLEXCOP is not set +CONFIG_VIDEO_SAA6588=m
# -# Supported BT878 Adapters +# Video decoders # +CONFIG_VIDEO_ADV7180=m +CONFIG_VIDEO_BT819=m +CONFIG_VIDEO_BT856=m +CONFIG_VIDEO_BT866=m +CONFIG_VIDEO_KS0127=m +CONFIG_VIDEO_SAA7110=m +CONFIG_VIDEO_SAA711X=m +CONFIG_VIDEO_TVP5150=m +CONFIG_VIDEO_VPX3220=m
# -# Supported Pluto2 Adapters +# Video and audio decoders # -# CONFIG_DVB_PLUTO2 is not set +CONFIG_VIDEO_SAA717X=m +CONFIG_VIDEO_CX25840=m
# -# Supported SDMC DM1105 Adapters +# Video encoders # -# CONFIG_DVB_DM1105 is not set +CONFIG_VIDEO_SAA7127=m +CONFIG_VIDEO_SAA7185=m +CONFIG_VIDEO_ADV7170=m +CONFIG_VIDEO_ADV7175=m
# -# Supported FireWire (IEEE 1394) Adapters +# Camera sensor devices # -# CONFIG_DVB_FIREDTV is not set +CONFIG_VIDEO_OV7670=m +CONFIG_VIDEO_MT9V011=m
# -# Supported Earthsoft PT1 Adapters +# Flash devices # -# CONFIG_DVB_PT1 is not set
# -# Supported Mantis Adapters +# Video improvement chips # -# CONFIG_MANTIS_CORE is not set +CONFIG_VIDEO_UPD64031A=m +CONFIG_VIDEO_UPD64083=m
# -# Supported nGene Adapters +# Miscelaneous helper chips # -# CONFIG_DVB_NGENE is not set +CONFIG_VIDEO_M52790=m
# -# Supported ddbridge ('Octopus') Adapters +# Sensors used on soc_camera driver # -# CONFIG_DVB_DDBRIDGE is not set
# -# Supported DVB Frontends +# soc_camera sensor drivers # -# CONFIG_DVB_FE_CUSTOMISE is not set +CONFIG_SOC_CAMERA_IMX074=m +CONFIG_SOC_CAMERA_MT9M001=m +CONFIG_SOC_CAMERA_MT9M111=m +CONFIG_SOC_CAMERA_MT9T031=m +CONFIG_SOC_CAMERA_MT9T112=m +CONFIG_SOC_CAMERA_MT9V022=m +CONFIG_SOC_CAMERA_OV2640=m +CONFIG_SOC_CAMERA_OV5642=m +CONFIG_SOC_CAMERA_OV6650=m +CONFIG_SOC_CAMERA_OV772X=m +CONFIG_SOC_CAMERA_OV9640=m +CONFIG_SOC_CAMERA_OV9740=m +CONFIG_SOC_CAMERA_RJ54N1=m +CONFIG_SOC_CAMERA_TW9910=m +CONFIG_MEDIA_TUNER=m +CONFIG_MEDIA_TUNER_SIMPLE=m +CONFIG_MEDIA_TUNER_TDA8290=m +CONFIG_MEDIA_TUNER_TDA827X=m +CONFIG_MEDIA_TUNER_TDA18271=m +CONFIG_MEDIA_TUNER_TDA9887=m +CONFIG_MEDIA_TUNER_MT20XX=m +CONFIG_MEDIA_TUNER_MT2060=m +CONFIG_MEDIA_TUNER_MT2063=m +CONFIG_MEDIA_TUNER_MT2266=m +CONFIG_MEDIA_TUNER_MT2131=m +CONFIG_MEDIA_TUNER_QT1010=m +CONFIG_MEDIA_TUNER_XC2028=m +CONFIG_MEDIA_TUNER_XC5000=m +CONFIG_MEDIA_TUNER_XC4000=m +CONFIG_MEDIA_TUNER_MXL5005S=m +CONFIG_MEDIA_TUNER_MXL5007T=m +CONFIG_MEDIA_TUNER_MC44S803=m +CONFIG_MEDIA_TUNER_MAX2165=m +CONFIG_MEDIA_TUNER_TDA18218=m +CONFIG_MEDIA_TUNER_FC0011=m +CONFIG_MEDIA_TUNER_FC0012=m +CONFIG_MEDIA_TUNER_FC0013=m +CONFIG_MEDIA_TUNER_TDA18212=m +CONFIG_MEDIA_TUNER_E4000=m +CONFIG_MEDIA_TUNER_FC2580=m +CONFIG_MEDIA_TUNER_TUA9001=m +CONFIG_MEDIA_TUNER_IT913X=m +CONFIG_MEDIA_TUNER_R820T=m
# # Multistandard (satellite) frontends # +CONFIG_DVB_STB0899=m +CONFIG_DVB_STB6100=m +CONFIG_DVB_STV090x=m +CONFIG_DVB_STV6110x=m
# # Multistandard (cable + terrestrial) frontends # +CONFIG_DVB_DRXK=m +CONFIG_DVB_TDA18271C2DD=m
# # DVB-S (satellite) frontends # +CONFIG_DVB_CX24110=m +CONFIG_DVB_CX24123=m +CONFIG_DVB_MT312=m +CONFIG_DVB_ZL10036=m +CONFIG_DVB_ZL10039=m +CONFIG_DVB_S5H1420=m +CONFIG_DVB_STV0288=m +CONFIG_DVB_STB6000=m +CONFIG_DVB_STV0299=m +CONFIG_DVB_STV6110=m +CONFIG_DVB_STV0900=m +CONFIG_DVB_TDA8083=m +CONFIG_DVB_TDA10086=m +CONFIG_DVB_TDA8261=m +CONFIG_DVB_VES1X93=m +CONFIG_DVB_TUNER_ITD1000=m +CONFIG_DVB_TUNER_CX24113=m +CONFIG_DVB_TDA826X=m +CONFIG_DVB_TUA6100=m +CONFIG_DVB_CX24116=m +CONFIG_DVB_M88DS3103=m +CONFIG_DVB_M88DC2800=m +CONFIG_DVB_SI21XX=m +CONFIG_DVB_TS2020=m +CONFIG_DVB_DS3000=m +CONFIG_DVB_MB86A16=m +CONFIG_DVB_TDA10071=m
# # DVB-T (terrestrial) frontends # +CONFIG_DVB_SP8870=m +CONFIG_DVB_SP887X=m +CONFIG_DVB_CX22700=m +CONFIG_DVB_CX22702=m +CONFIG_DVB_DRXD=m +CONFIG_DVB_L64781=m +CONFIG_DVB_TDA1004X=m +CONFIG_DVB_NXT6000=m +CONFIG_DVB_MT352=m +CONFIG_DVB_ZL10353=m +CONFIG_DVB_DIB3000MB=m +CONFIG_DVB_DIB3000MC=m +CONFIG_DVB_DIB7000M=m +CONFIG_DVB_DIB7000P=m +CONFIG_DVB_TDA10048=m +CONFIG_DVB_AF9013=m +CONFIG_DVB_EC100=m +CONFIG_DVB_STV0367=m +CONFIG_DVB_CXD2820R=m +CONFIG_DVB_RTL2830=m +CONFIG_DVB_RTL2832=m
# # DVB-C (cable) frontends # +CONFIG_DVB_VES1820=m +CONFIG_DVB_TDA10021=m +CONFIG_DVB_TDA10023=m +CONFIG_DVB_STV0297=m
# # ATSC (North American/Korean Terrestrial/Cable DTV) frontends # +CONFIG_DVB_NXT200X=m +CONFIG_DVB_OR51211=m +CONFIG_DVB_OR51132=m +CONFIG_DVB_BCM3510=m +CONFIG_DVB_LGDT330X=m +CONFIG_DVB_LGDT3305=m +CONFIG_DVB_LG2160=m +CONFIG_DVB_S5H1409=m +CONFIG_DVB_AU8522=m +CONFIG_DVB_AU8522_DTV=m +CONFIG_DVB_AU8522_V4L=m +CONFIG_DVB_S5H1411=m
# # ISDB-T (terrestrial) frontends # +CONFIG_DVB_S921=m +CONFIG_DVB_DIB8000=m +CONFIG_DVB_MB86A20S=m
# # Digital terrestrial only tuners/PLL # +CONFIG_DVB_PLL=m +CONFIG_DVB_TUNER_DIB0070=m +CONFIG_DVB_TUNER_DIB0090=m
# # SEC control devices for DVB-S # +CONFIG_DVB_LNBP21=m +CONFIG_DVB_LNBP22=m +CONFIG_DVB_ISL6405=m +CONFIG_DVB_ISL6421=m +CONFIG_DVB_ISL6423=m +CONFIG_DVB_A8293=m +CONFIG_DVB_LGS8GXX=m +CONFIG_DVB_ATBM8830=m +CONFIG_DVB_TDA665x=m +CONFIG_DVB_IX2505V=m +CONFIG_DVB_IT913X_FE=m +CONFIG_DVB_M88RS2000=m +CONFIG_DVB_AF9033=m
# # Tools to develop new frontends @@ -3239,27 +3748,40 @@ CONFIG_DVB_CAPTURE_DRIVERS=y # # Graphics support # -CONFIG_AGP=m -CONFIG_AGP_ALI=m -CONFIG_AGP_ATI=m -CONFIG_AGP_AMD=m -CONFIG_AGP_AMD64=m -CONFIG_AGP_INTEL=m -CONFIG_AGP_NVIDIA=m -CONFIG_AGP_SIS=m -CONFIG_AGP_SWORKS=m -CONFIG_AGP_VIA=m -CONFIG_AGP_EFFICEON=m +CONFIG_AGP=y +# CONFIG_AGP_ALI is not set +# CONFIG_AGP_ATI is not set +# CONFIG_AGP_AMD is not set +CONFIG_AGP_AMD64=y +CONFIG_AGP_INTEL=y +# CONFIG_AGP_NVIDIA is not set +CONFIG_AGP_SIS=y +# CONFIG_AGP_SWORKS is not set +CONFIG_AGP_VIA=y +# CONFIG_AGP_EFFICEON is not set CONFIG_VGA_ARB=y CONFIG_VGA_ARB_MAX_GPUS=16 -# CONFIG_VGA_SWITCHEROO is not set +CONFIG_VGA_SWITCHEROO=y CONFIG_DRM=m +CONFIG_DRM_USB=m CONFIG_DRM_KMS_HELPER=m +# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set CONFIG_DRM_TTM=m + +# +# I2C encoder or helper chips +# +CONFIG_DRM_I2C_CH7006=m +CONFIG_DRM_I2C_SIL164=m +CONFIG_DRM_I2C_NXP_TDA998X=m CONFIG_DRM_TDFX=m CONFIG_DRM_R128=m CONFIG_DRM_RADEON=m -CONFIG_DRM_RADEON_KMS=y +# CONFIG_DRM_RADEON_UMS is not set +CONFIG_DRM_NOUVEAU=m +CONFIG_NOUVEAU_DEBUG=5 +CONFIG_NOUVEAU_DEBUG_DEFAULT=3 +CONFIG_DRM_NOUVEAU_BACKLIGHT=y CONFIG_DRM_I810=m CONFIG_DRM_I915=m CONFIG_DRM_I915_KMS=y @@ -3268,9 +3790,18 @@ CONFIG_DRM_SIS=m CONFIG_DRM_VIA=m CONFIG_DRM_SAVAGE=m CONFIG_DRM_VMWGFX=m -CONFIG_STUB_POULSBO=m +# CONFIG_DRM_VMWGFX_FBCON is not set +CONFIG_DRM_GMA500=m +CONFIG_DRM_GMA600=y +CONFIG_DRM_GMA3600=y +CONFIG_DRM_UDL=m +CONFIG_DRM_AST=m +CONFIG_DRM_MGAG200=m +CONFIG_DRM_CIRRUS_QEMU=m +CONFIG_DRM_QXL=m CONFIG_VGASTATE=m CONFIG_VIDEO_OUTPUT_CONTROL=m +CONFIG_HDMI=y CONFIG_FB=y CONFIG_FIRMWARE_EDID=y CONFIG_FB_DDC=m @@ -3284,7 +3815,6 @@ CONFIG_FB_SYS_COPYAREA=m CONFIG_FB_SYS_IMAGEBLIT=m # CONFIG_FB_FOREIGN_ENDIAN is not set CONFIG_FB_SYS_FOPS=m -# CONFIG_FB_WMT_GE_ROPS is not set CONFIG_FB_DEFERRED_IO=y CONFIG_FB_SVGALIB=m # CONFIG_FB_MACMODES is not set @@ -3295,45 +3825,38 @@ CONFIG_FB_TILEBLITTING=y # # Frame buffer hardware drivers # -CONFIG_FB_CIRRUS=m +# CONFIG_FB_CIRRUS is not set CONFIG_FB_PM2=m -CONFIG_FB_PM2_FIFO_DISCONNECT=y +# CONFIG_FB_PM2_FIFO_DISCONNECT is not set CONFIG_FB_CYBER2000=m CONFIG_FB_CYBER2000_DDC=y -# CONFIG_FB_ARC is not set -CONFIG_FB_ASILIANT=y +CONFIG_FB_ARC=m +# CONFIG_FB_ASILIANT is not set # CONFIG_FB_IMSTT is not set -# CONFIG_FB_VGA16 is not set -CONFIG_FB_UVESA=m +CONFIG_FB_VGA16=m +# CONFIG_FB_UVESA is not set CONFIG_FB_VESA=y +CONFIG_FB_EFI=y # CONFIG_FB_N411 is not set -# CONFIG_FB_HGA is not set +CONFIG_FB_HGA=m # CONFIG_FB_S1D13XXX is not set -CONFIG_FB_NVIDIA=m -CONFIG_FB_NVIDIA_I2C=y -# CONFIG_FB_NVIDIA_DEBUG is not set -CONFIG_FB_NVIDIA_BACKLIGHT=y +# CONFIG_FB_NVIDIA is not set CONFIG_FB_RIVA=m CONFIG_FB_RIVA_I2C=y # CONFIG_FB_RIVA_DEBUG is not set CONFIG_FB_RIVA_BACKLIGHT=y -CONFIG_FB_I810=m -CONFIG_FB_I810_GTF=y -CONFIG_FB_I810_I2C=y +CONFIG_FB_I740=m +# CONFIG_FB_I810 is not set CONFIG_FB_LE80578=m CONFIG_FB_CARILLO_RANCH=m +# CONFIG_FB_INTEL is not set CONFIG_FB_MATROX=m CONFIG_FB_MATROX_MILLENIUM=y CONFIG_FB_MATROX_MYSTIQUE=y -CONFIG_FB_MATROX_G=y -CONFIG_FB_MATROX_I2C=m -CONFIG_FB_MATROX_MAVEN=m -CONFIG_FB_RADEON=m -CONFIG_FB_RADEON_I2C=y -CONFIG_FB_RADEON_BACKLIGHT=y -# CONFIG_FB_RADEON_DEBUG is not set -CONFIG_FB_ATY128=m -CONFIG_FB_ATY128_BACKLIGHT=y +# CONFIG_FB_MATROX_G is not set +# CONFIG_FB_MATROX_I2C is not set +# CONFIG_FB_RADEON is not set +# CONFIG_FB_ATY128 is not set CONFIG_FB_ATY=m CONFIG_FB_ATY_CT=y # CONFIG_FB_ATY_GENERIC_LCD is not set @@ -3344,17 +3867,13 @@ CONFIG_FB_S3_DDC=y CONFIG_FB_SAVAGE=m CONFIG_FB_SAVAGE_I2C=y CONFIG_FB_SAVAGE_ACCEL=y -CONFIG_FB_SIS=m -CONFIG_FB_SIS_300=y -CONFIG_FB_SIS_315=y +# CONFIG_FB_SIS is not set CONFIG_FB_VIA=m # CONFIG_FB_VIA_DIRECT_PROCFS is not set # CONFIG_FB_VIA_X_COMPATIBILITY is not set CONFIG_FB_NEOMAGIC=m CONFIG_FB_KYRO=m -CONFIG_FB_3DFX=m -CONFIG_FB_3DFX_ACCEL=y -CONFIG_FB_3DFX_I2C=y +# CONFIG_FB_3DFX is not set CONFIG_FB_VOODOO1=m CONFIG_FB_VT8623=m CONFIG_FB_TRIDENT=m @@ -3365,43 +3884,40 @@ CONFIG_FB_GEODE=y CONFIG_FB_GEODE_LX=m CONFIG_FB_GEODE_GX=m CONFIG_FB_GEODE_GX1=m -CONFIG_FB_TMIO=m -CONFIG_FB_TMIO_ACCELL=y -CONFIG_FB_SM501=m +# CONFIG_FB_TMIO is not set +# CONFIG_FB_SM501 is not set CONFIG_FB_SMSCUFX=m -# CONFIG_FB_UDL is not set +CONFIG_FB_UDL=m +# CONFIG_FB_GOLDFISH is not set # CONFIG_FB_VIRTUAL is not set -CONFIG_FB_METRONOME=m +# CONFIG_FB_METRONOME is not set # CONFIG_FB_MB862XX is not set # CONFIG_FB_BROADSHEET is not set +# CONFIG_FB_AUO_K190X is not set +CONFIG_FB_HYPERV=m +# CONFIG_EXYNOS_VIDEO is not set CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_LCD_CLASS_DEVICE=m CONFIG_LCD_PLATFORM=m CONFIG_BACKLIGHT_CLASS_DEVICE=y -CONFIG_BACKLIGHT_GENERIC=m -CONFIG_BACKLIGHT_PROGEAR=m -CONFIG_BACKLIGHT_CARILLO_RANCH=m +# CONFIG_BACKLIGHT_GENERIC is not set +# CONFIG_BACKLIGHT_LM3533 is not set +# CONFIG_BACKLIGHT_CARILLO_RANCH is not set CONFIG_BACKLIGHT_APPLE=m -CONFIG_BACKLIGHT_SAHARA=m -CONFIG_BACKLIGHT_ADP8860=m -CONFIG_BACKLIGHT_ADP8870=m -CONFIG_BACKLIGHT_PCF50633=m - -# -# Display device support -# -CONFIG_DISPLAY_SUPPORT=m - -# -# Display hardware drivers -# +# CONFIG_BACKLIGHT_SAHARA is not set +# CONFIG_BACKLIGHT_ADP8860 is not set +# CONFIG_BACKLIGHT_ADP8870 is not set +# CONFIG_BACKLIGHT_LM3630 is not set +# CONFIG_BACKLIGHT_LM3639 is not set +# CONFIG_BACKLIGHT_LP855X is not set +# CONFIG_BACKLIGHT_OT200 is not set
# # Console display driver support # CONFIG_VGA_CONSOLE=y # CONFIG_VGACON_SOFT_SCROLLBACK is not set -# CONFIG_MDA_CONSOLE is not set +CONFIG_MDA_CONSOLE=m CONFIG_DUMMY_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y @@ -3410,8 +3926,8 @@ CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y CONFIG_LOGO=y -CONFIG_LOGO_LINUX_MONO=y -CONFIG_LOGO_LINUX_VGA16=y +# CONFIG_LOGO_LINUX_MONO is not set +# CONFIG_LOGO_LINUX_VGA16 is not set CONFIG_LOGO_LINUX_CLUT224=y CONFIG_SOUND=m CONFIG_SOUND_OSS_CORE=y @@ -3434,9 +3950,12 @@ CONFIG_SND_SEQ_HRTIMER_DEFAULT=y CONFIG_SND_DYNAMIC_MINORS=y # CONFIG_SND_SUPPORT_OLD_API is not set CONFIG_SND_VERBOSE_PROCFS=y -# CONFIG_SND_VERBOSE_PRINTK is not set -# CONFIG_SND_DEBUG is not set +CONFIG_SND_VERBOSE_PRINTK=y +CONFIG_SND_DEBUG=y +# CONFIG_SND_DEBUG_VERBOSE is not set +CONFIG_SND_PCM_XRUN_DEBUG=y CONFIG_SND_VMASTER=y +CONFIG_SND_KCTL_JACK=y CONFIG_SND_DMA_SGBUF=y CONFIG_SND_RAWMIDI_SEQ=m CONFIG_SND_OPL3_LIB_SEQ=m @@ -3449,7 +3968,7 @@ CONFIG_SND_OPL4_LIB=m CONFIG_SND_VX_LIB=m CONFIG_SND_AC97_CODEC=m CONFIG_SND_DRIVERS=y -# CONFIG_SND_PCSP is not set +CONFIG_SND_PCSP=m CONFIG_SND_DUMMY=m CONFIG_SND_ALOOP=m CONFIG_SND_VIRMIDI=m @@ -3459,7 +3978,7 @@ CONFIG_SND_SERIAL_U16550=m CONFIG_SND_MPU401=m CONFIG_SND_PORTMAN2X4=m CONFIG_SND_AC97_POWER_SAVE=y -CONFIG_SND_AC97_POWER_SAVE_DEFAULT=60 +CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0 CONFIG_SND_WSS_LIB=m CONFIG_SND_SB_COMMON=m CONFIG_SND_SB8_DSP=m @@ -3472,6 +3991,7 @@ CONFIG_SND_ALS100=m CONFIG_SND_AZT1605=m CONFIG_SND_AZT2316=m CONFIG_SND_AZT2320=m +CONFIG_SND_CMI8328=m CONFIG_SND_CMI8330=m CONFIG_SND_CS4231=m CONFIG_SND_CS4236=m @@ -3509,7 +4029,7 @@ CONFIG_SND_ATIIXP_MODEM=m CONFIG_SND_AU8810=m CONFIG_SND_AU8820=m CONFIG_SND_AU8830=m -CONFIG_SND_AW2=m +# CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set @@ -3552,11 +4072,10 @@ CONFIG_SND_HDA_PREALLOC_SIZE=64 CONFIG_SND_HDA_HWDEP=y CONFIG_SND_HDA_RECONFIG=y CONFIG_SND_HDA_INPUT_BEEP=y -CONFIG_SND_HDA_INPUT_BEEP_MODE=2 +CONFIG_SND_HDA_INPUT_BEEP_MODE=1 CONFIG_SND_HDA_INPUT_JACK=y -CONFIG_SND_HDA_PATCH_LOADER=y +# CONFIG_SND_HDA_PATCH_LOADER is not set CONFIG_SND_HDA_CODEC_REALTEK=y -CONFIG_SND_HDA_ENABLE_REALTEK_QUIRKS=y CONFIG_SND_HDA_CODEC_ANALOG=y CONFIG_SND_HDA_CODEC_SIGMATEL=y CONFIG_SND_HDA_CODEC_VIA=y @@ -3565,11 +4084,11 @@ CONFIG_SND_HDA_CODEC_CIRRUS=y CONFIG_SND_HDA_CODEC_CONEXANT=y CONFIG_SND_HDA_CODEC_CA0110=y CONFIG_SND_HDA_CODEC_CA0132=y +# CONFIG_SND_HDA_CODEC_CA0132_DSP is not set CONFIG_SND_HDA_CODEC_CMEDIA=y CONFIG_SND_HDA_CODEC_SI3054=y CONFIG_SND_HDA_GENERIC=y -CONFIG_SND_HDA_POWER_SAVE=y -CONFIG_SND_HDA_POWER_SAVE_DEFAULT=60 +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 CONFIG_SND_HDSP=m CONFIG_SND_HDSPM=m CONFIG_SND_ICE1712=m @@ -3588,7 +4107,7 @@ CONFIG_SND_RIPTIDE=m CONFIG_SND_RME32=m CONFIG_SND_RME96=m CONFIG_SND_RME9652=m -CONFIG_SND_SIS7019=m +# CONFIG_SND_SIS7019 is not set CONFIG_SND_SONICVIBES=m CONFIG_SND_TRIDENT=m CONFIG_SND_VIA82XX=m @@ -3607,103 +4126,111 @@ CONFIG_SND_USB_6FIRE=m CONFIG_SND_FIREWIRE=y CONFIG_SND_FIREWIRE_LIB=m CONFIG_SND_FIREWIRE_SPEAKERS=m -CONFIG_SND_ISIGHT=m +# CONFIG_SND_ISIGHT is not set +# CONFIG_SND_SCS1X is not set CONFIG_SND_PCMCIA=y -CONFIG_SND_VXPOCKET=m -CONFIG_SND_PDAUDIOCF=m +# CONFIG_SND_VXPOCKET is not set +# CONFIG_SND_PDAUDIOCF is not set # CONFIG_SND_SOC is not set # CONFIG_SOUND_PRIME is not set CONFIG_AC97_BUS=m -CONFIG_HID_SUPPORT=y -CONFIG_HID=y -# CONFIG_HIDRAW is not set
# -# USB Input Devices +# HID support # -CONFIG_USB_HID=m -# CONFIG_HID_PID is not set -CONFIG_USB_HIDDEV=y +CONFIG_HID=y +# CONFIG_HID_BATTERY_STRENGTH is not set +CONFIG_HIDRAW=y +# CONFIG_UHID is not set +CONFIG_HID_GENERIC=y
# # Special HID drivers # -CONFIG_HID_A4TECH=m -CONFIG_HID_ACRUX=m -# CONFIG_HID_ACRUX_FF is not set -CONFIG_HID_APPLE=m -CONFIG_HID_BELKIN=m -CONFIG_HID_CHERRY=m -CONFIG_HID_CHICONY=m -CONFIG_HID_PRODIKEYS=m -CONFIG_HID_CYPRESS=m -CONFIG_HID_DRAGONRISE=m -# CONFIG_DRAGONRISE_FF is not set +CONFIG_HID_A4TECH=y +# CONFIG_HID_ACRUX is not set +CONFIG_HID_APPLE=y +# CONFIG_HID_APPLEIR is not set +CONFIG_HID_AUREAL=m +CONFIG_HID_BELKIN=y +CONFIG_HID_CHERRY=y +CONFIG_HID_CHICONY=y +# CONFIG_HID_PRODIKEYS is not set +CONFIG_HID_CYPRESS=y +# CONFIG_HID_DRAGONRISE is not set # CONFIG_HID_EMS_FF is not set -CONFIG_HID_ELECOM=m -CONFIG_HID_EZKEY=m -CONFIG_HID_HOLTEK=m -# CONFIG_HOLTEK_FF is not set +# CONFIG_HID_ELECOM is not set +CONFIG_HID_EZKEY=y +# CONFIG_HID_HOLTEK is not set CONFIG_HID_KEYTOUCH=m -CONFIG_HID_KYE=m -CONFIG_HID_UCLOGIC=m -CONFIG_HID_WALTOP=m +CONFIG_HID_KYE=y +# CONFIG_HID_UCLOGIC is not set +# CONFIG_HID_WALTOP is not set CONFIG_HID_GYRATION=m +# CONFIG_HID_ICADE is not set CONFIG_HID_TWINHAN=m -CONFIG_HID_KENSINGTON=m +CONFIG_HID_KENSINGTON=y CONFIG_HID_LCPOWER=m -CONFIG_HID_LOGITECH=m +CONFIG_HID_LENOVO_TPKBD=m +CONFIG_HID_LOGITECH=y CONFIG_HID_LOGITECH_DJ=m # CONFIG_LOGITECH_FF is not set # CONFIG_LOGIRUMBLEPAD2_FF is not set # CONFIG_LOGIG940_FF is not set # CONFIG_LOGIWHEELS_FF is not set -CONFIG_HID_MAGICMOUSE=m -CONFIG_HID_MICROSOFT=m -CONFIG_HID_MONTEREY=m -CONFIG_HID_MULTITOUCH=m -CONFIG_HID_NTRIG=m +# CONFIG_HID_MAGICMOUSE is not set +CONFIG_HID_MICROSOFT=y +CONFIG_HID_MONTEREY=y +# CONFIG_HID_MULTITOUCH is not set +# CONFIG_HID_NTRIG is not set CONFIG_HID_ORTEK=m -CONFIG_HID_PANTHERLORD=m -# CONFIG_PANTHERLORD_FF is not set +# CONFIG_HID_PANTHERLORD is not set CONFIG_HID_PETALYNX=m CONFIG_HID_PICOLCD=m CONFIG_HID_PICOLCD_FB=y CONFIG_HID_PICOLCD_BACKLIGHT=y CONFIG_HID_PICOLCD_LCD=y CONFIG_HID_PICOLCD_LEDS=y -CONFIG_HID_PRIMAX=m -CONFIG_HID_QUANTA=m +CONFIG_HID_PICOLCD_CIR=y +# CONFIG_HID_PRIMAX is not set +# CONFIG_HID_PS3REMOTE is not set CONFIG_HID_ROCCAT=m -CONFIG_HID_ROCCAT_COMMON=m -CONFIG_HID_ROCCAT_ARVO=m -CONFIG_HID_ROCCAT_KONE=m -CONFIG_HID_ROCCAT_KONEPLUS=m -CONFIG_HID_ROCCAT_KOVAPLUS=m -CONFIG_HID_ROCCAT_PYRA=m +CONFIG_HID_SAITEK=m CONFIG_HID_SAMSUNG=m -CONFIG_HID_SONY=m +# CONFIG_HID_SONY is not set CONFIG_HID_SPEEDLINK=m +# CONFIG_HID_STEELSERIES is not set CONFIG_HID_SUNPLUS=m -CONFIG_HID_GREENASIA=m -# CONFIG_GREENASIA_FF is not set -CONFIG_HID_SMARTJOYPLUS=m -# CONFIG_SMARTJOYPLUS_FF is not set +# CONFIG_HID_GREENASIA is not set +# CONFIG_HID_HYPERV_MOUSE is not set +# CONFIG_HID_SMARTJOYPLUS is not set +CONFIG_HID_TIVO=m CONFIG_HID_TOPSEED=m -CONFIG_HID_THRUSTMASTER=m -# CONFIG_THRUSTMASTER_FF is not set -CONFIG_HID_WACOM=m -# CONFIG_HID_WACOM_POWER_SUPPLY is not set -CONFIG_HID_WIIMOTE=m -CONFIG_HID_ZEROPLUS=m -# CONFIG_ZEROPLUS_FF is not set +CONFIG_HID_THINGM=m +# CONFIG_HID_THRUSTMASTER is not set +# CONFIG_HID_WACOM is not set +# CONFIG_HID_WIIMOTE is not set +# CONFIG_HID_ZEROPLUS is not set CONFIG_HID_ZYDACRON=m -CONFIG_USB_SUPPORT=y -CONFIG_USB_COMMON=y -CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_HID_SENSOR_HUB=m + +# +# USB HID support +# +CONFIG_USB_HID=y +CONFIG_HID_PID=y +CONFIG_USB_HIDDEV=y + +# +# I2C HID support +# +CONFIG_I2C_HID=m CONFIG_USB_ARCH_HAS_OHCI=y CONFIG_USB_ARCH_HAS_EHCI=y CONFIG_USB_ARCH_HAS_XHCI=y +CONFIG_USB_SUPPORT=y +CONFIG_USB_COMMON=y +CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB=y # CONFIG_USB_DEBUG is not set CONFIG_USB_ANNOUNCE_NEW_DEVICES=y @@ -3711,14 +4238,12 @@ CONFIG_USB_ANNOUNCE_NEW_DEVICES=y # # Miscellaneous USB options # -CONFIG_USB_DEVICEFS=y -CONFIG_USB_DEVICE_CLASS=y -CONFIG_USB_DYNAMIC_MINORS=y -CONFIG_USB_SUSPEND=y +CONFIG_USB_DEFAULT_PERSIST=y +# CONFIG_USB_DYNAMIC_MINORS is not set # CONFIG_USB_OTG is not set -CONFIG_USB_DWC3=m -# CONFIG_USB_DWC3_DEBUG is not set -# CONFIG_USB_MON is not set +# CONFIG_USB_OTG_WHITELIST is not set +# CONFIG_USB_OTG_BLACKLIST_HUB is not set +CONFIG_USB_MON=m CONFIG_USB_WUSB=m CONFIG_USB_WUSB_CBAF=m # CONFIG_USB_WUSB_CBAF_DEBUG is not set @@ -3728,26 +4253,31 @@ CONFIG_USB_WUSB_CBAF=m # # CONFIG_USB_C67X00_HCD is not set CONFIG_USB_XHCI_HCD=y +CONFIG_USB_XHCI_PLATFORM=m # CONFIG_USB_XHCI_HCD_DEBUGGING is not set CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_ROOT_HUB_TT=y CONFIG_USB_EHCI_TT_NEWSCHED=y -CONFIG_USB_OXU210HP_HCD=m -CONFIG_USB_ISP116X_HCD=m +CONFIG_USB_EHCI_PCI=y +CONFIG_USB_EHCI_HCD_PLATFORM=y +# CONFIG_USB_OXU210HP_HCD is not set +# CONFIG_USB_ISP116X_HCD is not set # CONFIG_USB_ISP1760_HCD is not set CONFIG_USB_ISP1362_HCD=m CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_HCD_PLATFORM=y # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set CONFIG_USB_OHCI_LITTLE_ENDIAN=y CONFIG_USB_UHCI_HCD=y -CONFIG_USB_U132_HCD=m +# CONFIG_USB_U132_HCD is not set CONFIG_USB_SL811_HCD=m -# CONFIG_USB_SL811_HCD_ISO is not set +CONFIG_USB_SL811_HCD_ISO=y # CONFIG_USB_SL811_CS is not set -CONFIG_USB_R8A66597_HCD=m +# CONFIG_USB_R8A66597_HCD is not set CONFIG_USB_WHCI_HCD=m CONFIG_USB_HWA_HCD=m +CONFIG_USB_HCD_SSB=m
# # USB Device Class drivers @@ -3764,7 +4294,7 @@ CONFIG_USB_TMC=m # # also be needed; see USB_STORAGE Help for more info # -CONFIG_USB_STORAGE=m +CONFIG_USB_STORAGE=y # CONFIG_USB_STORAGE_DEBUG is not set CONFIG_USB_STORAGE_REALTEK=m CONFIG_REALTEK_AUTOPM=y @@ -3780,20 +4310,24 @@ CONFIG_USB_STORAGE_ONETOUCH=m CONFIG_USB_STORAGE_KARMA=m CONFIG_USB_STORAGE_CYPRESS_ATACB=m CONFIG_USB_STORAGE_ENE_UB6250=m -# CONFIG_USB_LIBUSUAL is not set
# # USB Imaging devices # -# CONFIG_USB_MDC800 is not set -# CONFIG_USB_MICROTEK is not set +CONFIG_USB_MDC800=m +CONFIG_USB_MICROTEK=m +CONFIG_USB_DWC3=m +CONFIG_USB_DWC3_HOST=y +# CONFIG_USB_DWC3_DEBUG is not set +CONFIG_USB_CHIPIDEA=m +# CONFIG_USB_CHIPIDEA_HOST is not set +# CONFIG_USB_CHIPIDEA_DEBUG is not set
# # USB port drivers # CONFIG_USB_USS720=m CONFIG_USB_SERIAL=m -CONFIG_USB_EZUSB=y CONFIG_USB_SERIAL_GENERIC=y CONFIG_USB_SERIAL_AIRCABLE=m CONFIG_USB_SERIAL_ARK3116=m @@ -3803,7 +4337,7 @@ CONFIG_USB_SERIAL_WHITEHEAT=m CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m CONFIG_USB_SERIAL_CP210X=m CONFIG_USB_SERIAL_CYPRESS_M8=m -CONFIG_USB_SERIAL_EMPEG=m +# CONFIG_USB_SERIAL_EMPEG is not set CONFIG_USB_SERIAL_FTDI_SIO=m CONFIG_USB_SERIAL_FUNSOFT=m CONFIG_USB_SERIAL_VISOR=m @@ -3811,16 +4345,18 @@ CONFIG_USB_SERIAL_IPAQ=m CONFIG_USB_SERIAL_IR=m CONFIG_USB_SERIAL_EDGEPORT=m CONFIG_USB_SERIAL_EDGEPORT_TI=m -CONFIG_USB_SERIAL_GARMIN=m +CONFIG_USB_SERIAL_F81232=m +# CONFIG_USB_SERIAL_GARMIN is not set CONFIG_USB_SERIAL_IPW=m CONFIG_USB_SERIAL_IUU=m -# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set +CONFIG_USB_SERIAL_KEYSPAN_PDA=m # CONFIG_USB_SERIAL_KEYSPAN is not set -# CONFIG_USB_SERIAL_KLSI is not set +CONFIG_USB_SERIAL_KLSI=m # CONFIG_USB_SERIAL_KOBIL_SCT is not set CONFIG_USB_SERIAL_MCT_U232=m +# CONFIG_USB_SERIAL_METRO is not set CONFIG_USB_SERIAL_MOS7720=m -# CONFIG_USB_SERIAL_MOS7715_PARPORT is not set +CONFIG_USB_SERIAL_MOS7715_PARPORT=y CONFIG_USB_SERIAL_MOS7840=m CONFIG_USB_SERIAL_MOTOROLA=m # CONFIG_USB_SERIAL_NAVMAN is not set @@ -3829,22 +4365,25 @@ CONFIG_USB_SERIAL_OTI6858=m CONFIG_USB_SERIAL_QCAUX=m CONFIG_USB_SERIAL_QUALCOMM=m CONFIG_USB_SERIAL_SPCP8X5=m -CONFIG_USB_SERIAL_HP4X=m -CONFIG_USB_SERIAL_SAFE=m -# CONFIG_USB_SERIAL_SAFE_PADDED is not set +# CONFIG_USB_SERIAL_HP4X is not set +# CONFIG_USB_SERIAL_SAFE is not set CONFIG_USB_SERIAL_SIEMENS_MPI=m CONFIG_USB_SERIAL_SIERRAWIRELESS=m -CONFIG_USB_SERIAL_SYMBOL=m -CONFIG_USB_SERIAL_TI=m +# CONFIG_USB_SERIAL_SYMBOL is not set +# CONFIG_USB_SERIAL_TI is not set # CONFIG_USB_SERIAL_CYBERJACK is not set CONFIG_USB_SERIAL_XIRCOM=m CONFIG_USB_SERIAL_WWAN=m CONFIG_USB_SERIAL_OPTION=m # CONFIG_USB_SERIAL_OMNINET is not set -CONFIG_USB_SERIAL_OPTICON=m -CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m -CONFIG_USB_SERIAL_ZIO=m +# CONFIG_USB_SERIAL_OPTICON is not set +# CONFIG_USB_SERIAL_VIVOPAY_SERIAL is not set +# CONFIG_USB_SERIAL_XSENS_MT is not set +# CONFIG_USB_SERIAL_ZIO is not set +# CONFIG_USB_SERIAL_WISHBONE is not set +CONFIG_USB_SERIAL_ZTE=m CONFIG_USB_SERIAL_SSU100=m +CONFIG_USB_SERIAL_QT2=m # CONFIG_USB_SERIAL_DEBUG is not set
# @@ -3852,14 +4391,14 @@ CONFIG_USB_SERIAL_SSU100=m # CONFIG_USB_EMI62=m CONFIG_USB_EMI26=m -# CONFIG_USB_ADUTUX is not set +CONFIG_USB_ADUTUX=m CONFIG_USB_SEVSEG=m # CONFIG_USB_RIO500 is not set # CONFIG_USB_LEGOTOWER is not set CONFIG_USB_LCD=m CONFIG_USB_LED=m -CONFIG_USB_CYPRESS_CY7C63=m -CONFIG_USB_CYTHERM=m +# CONFIG_USB_CYPRESS_CY7C63 is not set +# CONFIG_USB_CYTHERM is not set # CONFIG_USB_IDMOUSE is not set CONFIG_USB_FTDI_ELAN=m # CONFIG_USB_APPLEDISPLAY is not set @@ -3869,21 +4408,17 @@ CONFIG_USB_SISUSBVGA_CON=y # CONFIG_USB_TRANCEVIBRATOR is not set CONFIG_USB_IOWARRIOR=m # CONFIG_USB_TEST is not set -CONFIG_USB_ISIGHTFW=m +# CONFIG_USB_ISIGHTFW is not set CONFIG_USB_YUREX=m +CONFIG_USB_EZUSB_FX2=m +CONFIG_USB_HSIC_USB3503=m CONFIG_USB_ATM=m CONFIG_USB_SPEEDTOUCH=m CONFIG_USB_CXACRU=m CONFIG_USB_UEAGLEATM=m CONFIG_USB_XUSBATM=m +# CONFIG_USB_PHY is not set # CONFIG_USB_GADGET is not set - -# -# OTG and related infrastructure -# -CONFIG_USB_OTG_UTILS=y -CONFIG_USB_GPIO_VBUS=m -CONFIG_NOP_USB_XCEIV=m CONFIG_UWB=m CONFIG_UWB_HWA=m CONFIG_UWB_WHCI=m @@ -3899,23 +4434,27 @@ CONFIG_MMC=m CONFIG_MMC_BLOCK=m CONFIG_MMC_BLOCK_MINORS=8 CONFIG_MMC_BLOCK_BOUNCE=y -CONFIG_SDIO_UART=m -CONFIG_MMC_TEST=m +# CONFIG_SDIO_UART is not set +# CONFIG_MMC_TEST is not set
# # MMC/SD/SDIO Host Controller Drivers # CONFIG_MMC_SDHCI=m CONFIG_MMC_SDHCI_PCI=m -# CONFIG_MMC_RICOH_MMC is not set +CONFIG_MMC_RICOH_MMC=y +CONFIG_MMC_SDHCI_ACPI=m CONFIG_MMC_SDHCI_PLTFM=m +CONFIG_MMC_SDHCI_PXAV3=m +CONFIG_MMC_SDHCI_PXAV2=m CONFIG_MMC_WBSD=m CONFIG_MMC_TIFM_SD=m -CONFIG_MMC_SDRICOH_CS=m +# CONFIG_MMC_SDRICOH_CS is not set CONFIG_MMC_CB710=m CONFIG_MMC_VIA_SDMMC=m CONFIG_MMC_VUB300=m CONFIG_MMC_USHC=m +CONFIG_MMC_REALTEK_PCI=m CONFIG_MEMSTICK=m # CONFIG_MEMSTICK_DEBUG is not set
@@ -3931,6 +4470,7 @@ CONFIG_MSPRO_BLOCK=m CONFIG_MEMSTICK_TIFM_MS=m CONFIG_MEMSTICK_JMICRON_38X=m CONFIG_MEMSTICK_R592=m +CONFIG_MEMSTICK_REALTEK_PCI=m CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=y
@@ -3938,43 +4478,74 @@ CONFIG_LEDS_CLASS=y # LED drivers # CONFIG_LEDS_LM3530=m -CONFIG_LEDS_NET48XX=m -CONFIG_LEDS_NET5501=m -CONFIG_LEDS_WRAP=m +CONFIG_LEDS_LM3533=m +CONFIG_LEDS_LM3642=m CONFIG_LEDS_PCA9532=m CONFIG_LEDS_PCA9532_GPIO=y CONFIG_LEDS_GPIO=m CONFIG_LEDS_LP3944=m +CONFIG_LEDS_LP55XX_COMMON=m CONFIG_LEDS_LP5521=m CONFIG_LEDS_LP5523=m +CONFIG_LEDS_LP5562=m CONFIG_LEDS_CLEVO_MAIL=m CONFIG_LEDS_PCA955X=m -CONFIG_LEDS_REGULATOR=m +CONFIG_LEDS_PCA9633=m CONFIG_LEDS_BD2802=m CONFIG_LEDS_INTEL_SS4200=m CONFIG_LEDS_LT3593=m CONFIG_LEDS_DELL_NETBOOKS=m -CONFIG_LEDS_TRIGGERS=y +# CONFIG_LEDS_RENESAS_TPU is not set +CONFIG_LEDS_TCA6507=m +CONFIG_LEDS_LM355x=m +CONFIG_LEDS_OT200=m +CONFIG_LEDS_BLINKM=m
# # LED Triggers # +CONFIG_LEDS_TRIGGERS=y CONFIG_LEDS_TRIGGER_TIMER=m +CONFIG_LEDS_TRIGGER_ONESHOT=m CONFIG_LEDS_TRIGGER_HEARTBEAT=m CONFIG_LEDS_TRIGGER_BACKLIGHT=m +CONFIG_LEDS_TRIGGER_CPU=y CONFIG_LEDS_TRIGGER_GPIO=m CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
# # iptables trigger is under Netfilter config (LED target) # +CONFIG_LEDS_TRIGGER_TRANSIENT=m +CONFIG_LEDS_TRIGGER_CAMERA=m CONFIG_LEDS_TRIGGER_NETDEV=m # CONFIG_ACCESSIBILITY is not set # CONFIG_INFINIBAND is not set -# CONFIG_EDAC is not set +CONFIG_EDAC=y +# CONFIG_EDAC_LEGACY_SYSFS is not set +# CONFIG_EDAC_DEBUG is not set +CONFIG_EDAC_DECODE_MCE=m +CONFIG_EDAC_MCE_INJ=m +CONFIG_EDAC_MM_EDAC=m +# CONFIG_EDAC_AMD76X is not set +# CONFIG_EDAC_E7XXX is not set +CONFIG_EDAC_E752X=m +# CONFIG_EDAC_I82875P is not set +CONFIG_EDAC_I82975X=m +CONFIG_EDAC_I3000=m +CONFIG_EDAC_I3200=m +CONFIG_EDAC_X38=m +CONFIG_EDAC_I5400=m +CONFIG_EDAC_I7CORE=m +# CONFIG_EDAC_I82860 is not set +# CONFIG_EDAC_R82600 is not set +CONFIG_EDAC_I5000=m +CONFIG_EDAC_I5100=m +CONFIG_EDAC_I7300=m CONFIG_RTC_LIB=y CONFIG_RTC_CLASS=y CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_SYSTOHC=y CONFIG_RTC_HCTOSYS_DEVICE="rtc0" # CONFIG_RTC_DEBUG is not set
@@ -3999,12 +4570,13 @@ CONFIG_RTC_DRV_RS5C372=m CONFIG_RTC_DRV_ISL1208=m CONFIG_RTC_DRV_ISL12022=m CONFIG_RTC_DRV_X1205=m +CONFIG_RTC_DRV_PCF8523=m CONFIG_RTC_DRV_PCF8563=m CONFIG_RTC_DRV_PCF8583=m CONFIG_RTC_DRV_M41T80=m CONFIG_RTC_DRV_M41T80_WDT=y CONFIG_RTC_DRV_BQ32K=m -CONFIG_RTC_DRV_S35390A=m +# CONFIG_RTC_DRV_S35390A is not set CONFIG_RTC_DRV_FM3130=m CONFIG_RTC_DRV_RX8581=m CONFIG_RTC_DRV_RX8025=m @@ -4024,55 +4596,72 @@ CONFIG_RTC_DRV_DS1511=m CONFIG_RTC_DRV_DS1553=m CONFIG_RTC_DRV_DS1742=m CONFIG_RTC_DRV_STK17TA8=m -CONFIG_RTC_DRV_M48T86=m +# CONFIG_RTC_DRV_M48T86 is not set CONFIG_RTC_DRV_M48T35=m CONFIG_RTC_DRV_M48T59=m CONFIG_RTC_DRV_MSM6242=m CONFIG_RTC_DRV_BQ4802=m CONFIG_RTC_DRV_RP5C01=m CONFIG_RTC_DRV_V3020=m -CONFIG_RTC_DRV_PCF50633=m +CONFIG_RTC_DRV_DS2404=m
# # on-CPU RTC drivers # + +# +# HID Sensor RTC drivers +# +CONFIG_RTC_DRV_HID_SENSOR_TIME=m CONFIG_DMADEVICES=y # CONFIG_DMADEVICES_DEBUG is not set
# # DMA Devices # -CONFIG_INTEL_MID_DMAC=m +# CONFIG_INTEL_MID_DMAC is not set CONFIG_INTEL_IOATDMA=m +CONFIG_DW_DMAC=m +# CONFIG_DW_DMAC_BIG_ENDIAN_IO is not set CONFIG_TIMB_DMA=m CONFIG_PCH_DMA=m CONFIG_DMA_ENGINE=y +CONFIG_DMA_ACPI=y
# # DMA Clients # -CONFIG_NET_DMA=y CONFIG_ASYNC_TX_DMA=y -CONFIG_DMATEST=m +# CONFIG_DMATEST is not set CONFIG_DCA=m # CONFIG_AUXDISPLAY is not set CONFIG_UIO=m -CONFIG_UIO_CIF=m -CONFIG_UIO_PDRV=m -CONFIG_UIO_PDRV_GENIRQ=m +# CONFIG_UIO_CIF is not set +# CONFIG_UIO_PDRV is not set +# CONFIG_UIO_PDRV_GENIRQ is not set +# CONFIG_UIO_DMEM_GENIRQ is not set CONFIG_UIO_AEC=m CONFIG_UIO_SERCOS3=m CONFIG_UIO_PCI_GENERIC=m -CONFIG_UIO_NETX=m +# CONFIG_UIO_NETX is not set +# CONFIG_VFIO is not set +CONFIG_VIRT_DRIVERS=y CONFIG_VIRTIO=y -CONFIG_VIRTIO_RING=y
# # Virtio drivers # -CONFIG_VIRTIO_PCI=m +CONFIG_VIRTIO_PCI=y CONFIG_VIRTIO_BALLOON=m CONFIG_VIRTIO_MMIO=m +# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set + +# +# Microsoft Hyper-V guest support +# +CONFIG_HYPERV=m +CONFIG_HYPERV_UTILS=m +CONFIG_HYPERV_BALLOON=m CONFIG_STAGING=y CONFIG_ET131X=m CONFIG_SLICOSS=m @@ -4082,48 +4671,100 @@ CONFIG_USBIP_HOST=m # CONFIG_USBIP_DEBUG is not set # CONFIG_W35UND is not set # CONFIG_PRISM2_USB is not set -# CONFIG_ECHO is not set +CONFIG_ECHO=m # CONFIG_COMEDI is not set # CONFIG_ASUS_OLED is not set # CONFIG_PANEL is not set # CONFIG_R8187SE is not set # CONFIG_RTL8192U is not set -# CONFIG_RTL8192E is not set +# CONFIG_RTLLIB is not set # CONFIG_R8712U is not set -# CONFIG_RTS_PSTOR is not set -# CONFIG_RTS5139 is not set +CONFIG_RTS5139=m +# CONFIG_RTS5139_DEBUG is not set # CONFIG_TRANZPORT is not set -# CONFIG_POHMELFS is not set -CONFIG_IDE_PHISON=m +# CONFIG_IDE_PHISON is not set # CONFIG_LINE6_USB is not set -CONFIG_DRM_NOUVEAU=m -CONFIG_DRM_NOUVEAU_BACKLIGHT=y - -# -# I2C encoder or helper chips -# -# CONFIG_DRM_I2C_CH7006 is not set -# CONFIG_DRM_I2C_SIL164 is not set # CONFIG_USB_SERIAL_QUATECH2 is not set -# CONFIG_USB_SERIAL_QUATECH_USB2 is not set # CONFIG_VT6655 is not set # CONFIG_VT6656 is not set -# CONFIG_HYPERV_STORAGE is not set -CONFIG_HYPERV_NET=m -CONFIG_HYPERV_MOUSE=m -# CONFIG_VME_BUS is not set # CONFIG_DX_SEP is not set -# CONFIG_IIO is not set -# CONFIG_XVMALLOC is not set -# CONFIG_ZRAM is not set + +# +# IIO staging drivers +# + +# +# Accelerometers +# + +# +# Analog to digital converters +# +# CONFIG_AD7291 is not set +# CONFIG_AD7606 is not set +# CONFIG_AD799X is not set + +# +# Analog digital bi-direction converters +# +# CONFIG_ADT7316 is not set + +# +# Capacitance to digital converters +# +# CONFIG_AD7150 is not set +# CONFIG_AD7152 is not set +# CONFIG_AD7746 is not set + +# +# Direct Digital Synthesis +# + +# +# Digital gyroscope sensors +# + +# +# Network Analyzer, Impedance Converters +# +# CONFIG_AD5933 is not set + +# +# Light sensors +# +# CONFIG_SENSORS_ISL29018 is not set +# CONFIG_SENSORS_ISL29028 is not set +# CONFIG_TSL2583 is not set +# CONFIG_TSL2x7x is not set + +# +# Magnetometer sensors +# +# CONFIG_SENSORS_HMC5843 is not set + +# +# Active energy metering IC +# +# CONFIG_ADE7854 is not set + +# +# Resolver to digital converters +# + +# +# Triggers - standalone +# +# CONFIG_IIO_PERIODIC_RTC_TRIGGER is not set +# CONFIG_IIO_GPIO_TRIGGER is not set +# CONFIG_IIO_SYSFS_TRIGGER is not set +# CONFIG_IIO_SIMPLE_DUMMY is not set +# CONFIG_ZSMALLOC is not set # CONFIG_WLAGS49_H2 is not set # CONFIG_WLAGS49_H25 is not set # CONFIG_FB_SM7XX is not set # CONFIG_CRYSTALHD is not set -# CONFIG_CXT1E1 is not set # CONFIG_FB_XGI is not set # CONFIG_ACPI_QUICKSTART is not set -# CONFIG_SBE_2T3E3 is not set # CONFIG_USB_ENESTORAGE is not set # CONFIG_BCM_WIMAX is not set # CONFIG_FT1000 is not set @@ -4134,17 +4775,32 @@ CONFIG_HYPERV_MOUSE=m # CONFIG_SPEAKUP is not set # CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set # CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set -# CONFIG_DRM_PSB is not set -CONFIG_INTEL_MEI=m # CONFIG_STAGING_MEDIA is not set + +# +# Android +# +# CONFIG_ANDROID is not set +# CONFIG_USB_WPAN_HCD is not set +# CONFIG_WIMAX_GDM72XX is not set +# CONFIG_CSR_WIFI is not set +# CONFIG_NET_VENDOR_SILICOM is not set +# CONFIG_CED1401 is not set +# CONFIG_DGRP is not set +# CONFIG_FIREWIRE_SERIAL is not set +# CONFIG_USB_DWC2 is not set CONFIG_X86_PLATFORM_DEVICES=y CONFIG_ACER_WMI=m CONFIG_ACERHDF=m CONFIG_ASUS_LAPTOP=m +CONFIG_CHROMEOS_LAPTOP=m +CONFIG_DELL_LAPTOP=m CONFIG_DELL_WMI=m CONFIG_DELL_WMI_AIO=m CONFIG_FUJITSU_LAPTOP=m -CONFIG_FUJITSU_LAPTOP_DEBUG=y +# CONFIG_FUJITSU_LAPTOP_DEBUG is not set +# CONFIG_FUJITSU_TABLET is not set +CONFIG_AMILO_RFKILL=m CONFIG_TC1100_WMI=m CONFIG_HP_ACCEL=m CONFIG_HP_WMI=m @@ -4152,7 +4808,7 @@ CONFIG_MSI_LAPTOP=m CONFIG_PANASONIC_LAPTOP=m CONFIG_COMPAL_LAPTOP=m CONFIG_SONY_LAPTOP=m -# CONFIG_SONYPI_COMPAT is not set +CONFIG_SONYPI_COMPAT=y CONFIG_IDEAPAD_LAPTOP=m CONFIG_THINKPAD_ACPI=m CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y @@ -4162,21 +4818,34 @@ CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y CONFIG_THINKPAD_ACPI_VIDEO=y CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y CONFIG_SENSORS_HDAPS=m -CONFIG_INTEL_MENLOW=m +# CONFIG_INTEL_MENLOW is not set +CONFIG_EEEPC_LAPTOP=m +CONFIG_ASUS_WMI=m +CONFIG_ASUS_NB_WMI=m +CONFIG_EEEPC_WMI=m CONFIG_ACPI_WMI=m CONFIG_MSI_WMI=m -CONFIG_ACPI_ASUS=m CONFIG_TOPSTAR_LAPTOP=m CONFIG_ACPI_TOSHIBA=m CONFIG_TOSHIBA_BT_RFKILL=m CONFIG_ACPI_CMPC=m CONFIG_INTEL_IPS=m -CONFIG_IBM_RTL=m -CONFIG_XO15_EBOOK=m +# CONFIG_IBM_RTL is not set +# CONFIG_XO15_EBOOK is not set CONFIG_SAMSUNG_LAPTOP=m CONFIG_MXM_WMI=m CONFIG_INTEL_OAKTRAIL=m CONFIG_SAMSUNG_Q10=m +# CONFIG_APPLE_GMUX is not set +CONFIG_PVPANIC=m +CONFIG_CLKDEV_LOOKUP=y +CONFIG_HAVE_CLK_PREPARE=y +CONFIG_COMMON_CLK=y + +# +# Common Clock Framework +# +# CONFIG_COMMON_CLK_DEBUG is not set
# # Hardware Spinlock drivers @@ -4185,55 +4854,143 @@ CONFIG_CLKSRC_I8253=y CONFIG_CLKEVT_I8253=y CONFIG_I8253_LOCK=y CONFIG_CLKBLD_I8253=y +CONFIG_MAILBOX=y CONFIG_IOMMU_API=y CONFIG_IOMMU_SUPPORT=y CONFIG_DMAR_TABLE=y CONFIG_INTEL_IOMMU=y -CONFIG_INTEL_IOMMU_DEFAULT_ON=y +# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set CONFIG_INTEL_IOMMU_FLOPPY_WA=y -CONFIG_VIRT_DRIVERS=y -CONFIG_HYPERV=m -CONFIG_HYPERV_UTILS=m -CONFIG_PM_DEVFREQ=y
# -# DEVFREQ Governors +# Remoteproc drivers # -CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y -CONFIG_DEVFREQ_GOV_PERFORMANCE=y -CONFIG_DEVFREQ_GOV_POWERSAVE=y -CONFIG_DEVFREQ_GOV_USERSPACE=y +# CONFIG_STE_MODEM_RPROC is not set
# -# DEVFREQ Drivers +# Rpmsg drivers # +# CONFIG_PM_DEVFREQ is not set +# CONFIG_EXTCON is not set +CONFIG_MEMORY=y +CONFIG_IIO=m +CONFIG_IIO_BUFFER=y +CONFIG_IIO_BUFFER_CB=y +CONFIG_IIO_KFIFO_BUF=m +CONFIG_IIO_TRIGGER=y +CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 + +# +# Accelerometers +# +# CONFIG_HID_SENSOR_ACCEL_3D is not set +# CONFIG_IIO_ST_ACCEL_3AXIS is not set + +# +# Analog to digital converters +# +# CONFIG_MAX1363 is not set +# CONFIG_TI_ADC081C is not set +# CONFIG_VIPERBOARD_ADC is not set + +# +# Amplifiers +# + +# +# Hid Sensor IIO Common +# +CONFIG_HID_SENSOR_IIO_COMMON=m +CONFIG_HID_SENSOR_IIO_TRIGGER=m +# CONFIG_HID_SENSOR_ENUM_BASE_QUIRKS is not set + +# +# Digital to analog converters +# +# CONFIG_AD5064 is not set +# CONFIG_AD5380 is not set +# CONFIG_AD5446 is not set +# CONFIG_MAX517 is not set +# CONFIG_MCP4725 is not set + +# +# Frequency Synthesizers DDS/PLL +# + +# +# Clock Generator/Distribution +# + +# +# Phase-Locked Loop (PLL) frequency synthesizers +# + +# +# Digital gyroscope sensors +# +# CONFIG_HID_SENSOR_GYRO_3D is not set +# CONFIG_IIO_ST_GYRO_3AXIS is not set +# CONFIG_ITG3200 is not set + +# +# Inertial measurement units +# +# CONFIG_INV_MPU6050_IIO is not set + +# +# Light sensors +# +# CONFIG_ADJD_S311 is not set +# CONFIG_SENSORS_LM3533 is not set +# CONFIG_SENSORS_TSL2563 is not set +# CONFIG_VCNL4000 is not set +# CONFIG_HID_SENSOR_ALS is not set + +# +# Magnetometer sensors +# +# CONFIG_AK8975 is not set +# CONFIG_HID_SENSOR_MAGNETOMETER_3D is not set +# CONFIG_IIO_ST_MAGN_3AXIS is not set +# CONFIG_VME_BUS is not set +# CONFIG_PWM is not set +# CONFIG_IPACK_BUS is not set +# CONFIG_RESET_CONTROLLER is not set
# # Firmware Drivers # -# CONFIG_EDD is not set +CONFIG_EDD=m +# CONFIG_EDD_OFF is not set CONFIG_FIRMWARE_MEMMAP=y -# CONFIG_DELL_RBU is not set -# CONFIG_DCDBAS is not set +CONFIG_DELL_RBU=m +CONFIG_DCDBAS=m CONFIG_DMIID=y -CONFIG_DMI_SYSFS=m +CONFIG_DMI_SYSFS=y CONFIG_ISCSI_IBFT_FIND=y CONFIG_ISCSI_IBFT=m -CONFIG_SIGMA=m # CONFIG_GOOGLE_FIRMWARE is not set
# +# EFI (Extensible Firmware Interface) Support +# +CONFIG_EFI_VARS=y +CONFIG_EFI_VARS_PSTORE=y +# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set + +# # File systems # +CONFIG_DCACHE_WORD_ACCESS=y # CONFIG_EXT2_FS is not set # CONFIG_EXT3_FS is not set CONFIG_EXT4_FS=y CONFIG_EXT4_USE_FOR_EXT23=y -CONFIG_EXT4_FS_XATTR=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y # CONFIG_EXT4_DEBUG is not set CONFIG_JBD2=y +# CONFIG_JBD2_DEBUG is not set CONFIG_FS_MBCACHE=y CONFIG_REISERFS_FS=m # CONFIG_REISERFS_CHECK is not set @@ -4241,43 +4998,47 @@ CONFIG_REISERFS_PROC_INFO=y CONFIG_REISERFS_FS_XATTR=y CONFIG_REISERFS_FS_POSIX_ACL=y CONFIG_REISERFS_FS_SECURITY=y -CONFIG_JFS_FS=m -CONFIG_JFS_POSIX_ACL=y -CONFIG_JFS_SECURITY=y -# CONFIG_JFS_DEBUG is not set -CONFIG_JFS_STATISTICS=y +# CONFIG_JFS_FS is not set CONFIG_XFS_FS=m CONFIG_XFS_QUOTA=y CONFIG_XFS_POSIX_ACL=y -# CONFIG_XFS_RT is not set +CONFIG_XFS_RT=y +# CONFIG_XFS_WARN is not set # CONFIG_XFS_DEBUG is not set # CONFIG_GFS2_FS is not set -# CONFIG_BTRFS_FS is not set +# CONFIG_OCFS2_FS is not set +CONFIG_BTRFS_FS=m +CONFIG_BTRFS_FS_POSIX_ACL=y +# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set +# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set +# CONFIG_BTRFS_DEBUG is not set # CONFIG_NILFS2_FS is not set CONFIG_FS_POSIX_ACL=y -CONFIG_EXPORTFS=m +CONFIG_EXPORTFS=y CONFIG_FILE_LOCKING=y CONFIG_FSNOTIFY=y CONFIG_DNOTIFY=y CONFIG_INOTIFY_USER=y CONFIG_FANOTIFY=y +CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y CONFIG_QUOTA=y CONFIG_QUOTA_NETLINK_INTERFACE=y -CONFIG_PRINT_QUOTA_WARNING=y +# CONFIG_PRINT_QUOTA_WARNING is not set # CONFIG_QUOTA_DEBUG is not set -CONFIG_QUOTA_TREE=m -CONFIG_QFMT_V1=m -CONFIG_QFMT_V2=m +CONFIG_QUOTA_TREE=y +# CONFIG_QFMT_V1 is not set +CONFIG_QFMT_V2=y CONFIG_QUOTACTL=y -CONFIG_AUTOFS4_FS=m +CONFIG_AUTOFS4_FS=y CONFIG_FUSE_FS=m CONFIG_CUSE=m +CONFIG_GENERIC_ACL=y
# # Caches # CONFIG_FSCACHE=m -# CONFIG_FSCACHE_STATS is not set +CONFIG_FSCACHE_STATS=y # CONFIG_FSCACHE_HISTOGRAM is not set # CONFIG_FSCACHE_DEBUG is not set # CONFIG_FSCACHE_OBJECT_LIST is not set @@ -4288,7 +5049,7 @@ CONFIG_CACHEFILES=m # # CD-ROM/DVD Filesystems # -CONFIG_ISO9660_FS=m +CONFIG_ISO9660_FS=y CONFIG_JOLIET=y CONFIG_ZISOFS=y CONFIG_UDF_FS=m @@ -4298,10 +5059,10 @@ CONFIG_UDF_NLS=y # DOS/FAT/NT Filesystems # CONFIG_FAT_FS=m -# CONFIG_MSDOS_FS is not set +CONFIG_MSDOS_FS=m CONFIG_VFAT_FS=m -CONFIG_FAT_DEFAULT_CODEPAGE=850 -CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="ascii" # CONFIG_NTFS_FS is not set
# @@ -4310,39 +5071,22 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" CONFIG_PROC_FS=y # CONFIG_PROC_KCORE is not set CONFIG_PROC_SYSCTL=y -CONFIG_PROC_PAGE_MONITOR=y CONFIG_SYSFS=y CONFIG_TMPFS=y -# CONFIG_TMPFS_POSIX_ACL is not set +CONFIG_TMPFS_POSIX_ACL=y CONFIG_TMPFS_XATTR=y # CONFIG_HUGETLBFS is not set # CONFIG_HUGETLB_PAGE is not set -# CONFIG_CONFIGFS_FS is not set +CONFIG_CONFIGFS_FS=m CONFIG_MISC_FILESYSTEMS=y # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set -CONFIG_ECRYPT_FS=m +# CONFIG_ECRYPT_FS is not set # CONFIG_HFS_FS is not set # CONFIG_HFSPLUS_FS is not set # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set -CONFIG_JFFS2_FS=m -CONFIG_JFFS2_FS_DEBUG=0 -CONFIG_JFFS2_FS_WRITEBUFFER=y -# CONFIG_JFFS2_FS_WBUF_VERIFY is not set -# CONFIG_JFFS2_SUMMARY is not set -# CONFIG_JFFS2_FS_XATTR is not set -CONFIG_JFFS2_COMPRESSION_OPTIONS=y -CONFIG_JFFS2_ZLIB=y -# CONFIG_JFFS2_LZO is not set -CONFIG_JFFS2_RTIME=y -CONFIG_JFFS2_RUBIN=y -# CONFIG_JFFS2_CMODE_NONE is not set -CONFIG_JFFS2_CMODE_PRIORITY=y -# CONFIG_JFFS2_CMODE_SIZE is not set -# CONFIG_JFFS2_CMODE_FAVOURLZO is not set -# CONFIG_UBIFS_FS is not set # CONFIG_LOGFS is not set # CONFIG_CRAMFS is not set # CONFIG_SQUASHFS is not set @@ -4351,113 +5095,117 @@ CONFIG_JFFS2_CMODE_PRIORITY=y # CONFIG_OMFS_FS is not set # CONFIG_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set +# CONFIG_QNX6FS_FS is not set # CONFIG_ROMFS_FS is not set -# CONFIG_PSTORE is not set +CONFIG_PSTORE=y +# CONFIG_PSTORE_CONSOLE is not set +# CONFIG_PSTORE_FTRACE is not set +# CONFIG_PSTORE_RAM is not set # CONFIG_SYSV_FS is not set -CONFIG_UFS_FS=m -# CONFIG_UFS_FS_WRITE is not set -# CONFIG_UFS_DEBUG is not set +# CONFIG_UFS_FS is not set # CONFIG_EXOFS_FS is not set +# CONFIG_F2FS_FS is not set +CONFIG_EFIVAR_FS=m +CONFIG_ORE=m CONFIG_NETWORK_FILESYSTEMS=y CONFIG_NFS_FS=m -CONFIG_NFS_V3=y +CONFIG_NFS_V2=m +CONFIG_NFS_V3=m CONFIG_NFS_V3_ACL=y -CONFIG_NFS_V4=y -# CONFIG_NFS_V4_1 is not set -# CONFIG_NFS_FSCACHE is not set +CONFIG_NFS_V4=m +# CONFIG_NFS_SWAP is not set +CONFIG_NFS_V4_1=y +CONFIG_PNFS_FILE_LAYOUT=m +CONFIG_PNFS_BLOCK=m +CONFIG_PNFS_OBJLAYOUT=m +CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="ipfire.org" +CONFIG_NFS_FSCACHE=y # CONFIG_NFS_USE_LEGACY_DNS is not set CONFIG_NFS_USE_KERNEL_DNS=y -# CONFIG_NFS_USE_NEW_IDMAPPER is not set CONFIG_NFSD=m CONFIG_NFSD_V2_ACL=y CONFIG_NFSD_V3=y CONFIG_NFSD_V3_ACL=y CONFIG_NFSD_V4=y +# CONFIG_NFSD_FAULT_INJECTION is not set CONFIG_LOCKD=m CONFIG_LOCKD_V4=y CONFIG_NFS_ACL_SUPPORT=m CONFIG_NFS_COMMON=y CONFIG_SUNRPC=m CONFIG_SUNRPC_GSS=m +CONFIG_SUNRPC_BACKCHANNEL=y CONFIG_RPCSEC_GSS_KRB5=m +# CONFIG_SUNRPC_DEBUG is not set # CONFIG_CEPH_FS is not set CONFIG_CIFS=m CONFIG_CIFS_STATS=y -CONFIG_CIFS_STATS2=y +# CONFIG_CIFS_STATS2 is not set # CONFIG_CIFS_WEAK_PW_HASH is not set # CONFIG_CIFS_UPCALL is not set CONFIG_CIFS_XATTR=y CONFIG_CIFS_POSIX=y -# CONFIG_CIFS_DEBUG2 is not set -# CONFIG_CIFS_DFS_UPCALL is not set -# CONFIG_CIFS_FSCACHE is not set CONFIG_CIFS_ACL=y +# CONFIG_CIFS_DEBUG is not set +CONFIG_CIFS_DFS_UPCALL=y +CONFIG_CIFS_SMB2=y +CONFIG_CIFS_FSCACHE=y # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set - -# -# Partition Types -# -CONFIG_PARTITION_ADVANCED=y -# CONFIG_ACORN_PARTITION is not set -# CONFIG_OSF_PARTITION is not set -# CONFIG_AMIGA_PARTITION is not set -# CONFIG_ATARI_PARTITION is not set -# CONFIG_MAC_PARTITION is not set -CONFIG_MSDOS_PARTITION=y -CONFIG_BSD_DISKLABEL=y -# CONFIG_MINIX_SUBPARTITION is not set -# CONFIG_SOLARIS_X86_PARTITION is not set -# CONFIG_UNIXWARE_DISKLABEL is not set -CONFIG_LDM_PARTITION=y -# CONFIG_LDM_DEBUG is not set -# CONFIG_SGI_PARTITION is not set -# CONFIG_ULTRIX_PARTITION is not set -# CONFIG_SUN_PARTITION is not set -# CONFIG_KARMA_PARTITION is not set -CONFIG_EFI_PARTITION=y -# CONFIG_SYSV68_PARTITION is not set CONFIG_NLS=y -CONFIG_NLS_DEFAULT="cp850" -# CONFIG_NLS_CODEPAGE_437 is not set -# CONFIG_NLS_CODEPAGE_737 is not set -# CONFIG_NLS_CODEPAGE_775 is not set -CONFIG_NLS_CODEPAGE_850=y -# CONFIG_NLS_CODEPAGE_852 is not set -# CONFIG_NLS_CODEPAGE_855 is not set -# CONFIG_NLS_CODEPAGE_857 is not set -# CONFIG_NLS_CODEPAGE_860 is not set -# CONFIG_NLS_CODEPAGE_861 is not set -# CONFIG_NLS_CODEPAGE_862 is not set -# CONFIG_NLS_CODEPAGE_863 is not set -# CONFIG_NLS_CODEPAGE_864 is not set -# CONFIG_NLS_CODEPAGE_865 is not set -# CONFIG_NLS_CODEPAGE_866 is not set -# CONFIG_NLS_CODEPAGE_869 is not set -# CONFIG_NLS_CODEPAGE_936 is not set -# CONFIG_NLS_CODEPAGE_950 is not set -# CONFIG_NLS_CODEPAGE_932 is not set -# CONFIG_NLS_CODEPAGE_949 is not set -# CONFIG_NLS_CODEPAGE_874 is not set -# CONFIG_NLS_ISO8859_8 is not set -# CONFIG_NLS_CODEPAGE_1250 is not set -# CONFIG_NLS_CODEPAGE_1251 is not set -# CONFIG_NLS_ASCII is not set -CONFIG_NLS_ISO8859_1=y -# CONFIG_NLS_ISO8859_2 is not set -# CONFIG_NLS_ISO8859_3 is not set -# CONFIG_NLS_ISO8859_4 is not set -# CONFIG_NLS_ISO8859_5 is not set -# CONFIG_NLS_ISO8859_6 is not set -# CONFIG_NLS_ISO8859_7 is not set -# CONFIG_NLS_ISO8859_9 is not set -# CONFIG_NLS_ISO8859_13 is not set -# CONFIG_NLS_ISO8859_14 is not set -# CONFIG_NLS_ISO8859_15 is not set -# CONFIG_NLS_KOI8_R is not set -# CONFIG_NLS_KOI8_U is not set -CONFIG_NLS_UTF8=y +CONFIG_NLS_DEFAULT="utf-8" +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_CODEPAGE_737=m +CONFIG_NLS_CODEPAGE_775=m +CONFIG_NLS_CODEPAGE_850=m +CONFIG_NLS_CODEPAGE_852=m +CONFIG_NLS_CODEPAGE_855=m +CONFIG_NLS_CODEPAGE_857=m +CONFIG_NLS_CODEPAGE_860=m +CONFIG_NLS_CODEPAGE_861=m +CONFIG_NLS_CODEPAGE_862=m +CONFIG_NLS_CODEPAGE_863=m +CONFIG_NLS_CODEPAGE_864=m +CONFIG_NLS_CODEPAGE_865=m +CONFIG_NLS_CODEPAGE_866=m +CONFIG_NLS_CODEPAGE_869=m +CONFIG_NLS_CODEPAGE_936=m +CONFIG_NLS_CODEPAGE_950=m +CONFIG_NLS_CODEPAGE_932=m +CONFIG_NLS_CODEPAGE_949=m +CONFIG_NLS_CODEPAGE_874=m +CONFIG_NLS_ISO8859_8=m +CONFIG_NLS_CODEPAGE_1250=m +CONFIG_NLS_CODEPAGE_1251=m +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=m +CONFIG_NLS_ISO8859_2=m +CONFIG_NLS_ISO8859_3=m +CONFIG_NLS_ISO8859_4=m +CONFIG_NLS_ISO8859_5=m +CONFIG_NLS_ISO8859_6=m +CONFIG_NLS_ISO8859_7=m +CONFIG_NLS_ISO8859_9=m +CONFIG_NLS_ISO8859_13=m +CONFIG_NLS_ISO8859_14=m +CONFIG_NLS_ISO8859_15=m +CONFIG_NLS_KOI8_R=m +CONFIG_NLS_KOI8_U=m +CONFIG_NLS_MAC_ROMAN=m +CONFIG_NLS_MAC_CELTIC=m +CONFIG_NLS_MAC_CENTEURO=m +CONFIG_NLS_MAC_CROATIAN=m +CONFIG_NLS_MAC_CYRILLIC=m +CONFIG_NLS_MAC_GAELIC=m +CONFIG_NLS_MAC_GREEK=m +CONFIG_NLS_MAC_ICELAND=m +CONFIG_NLS_MAC_INUIT=m +CONFIG_NLS_MAC_ROMANIAN=m +CONFIG_NLS_MAC_TURKISH=m +CONFIG_NLS_UTF8=m +CONFIG_DLM=m +# CONFIG_DLM_DEBUG is not set
# # Kernel hacking @@ -4467,27 +5215,32 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4 # CONFIG_ENABLE_WARN_DEPRECATED is not set CONFIG_ENABLE_MUST_CHECK=y -CONFIG_FRAME_WARN=1024 +CONFIG_FRAME_WARN=2048 # CONFIG_MAGIC_SYSRQ is not set CONFIG_STRIP_ASM_SYMS=y +# CONFIG_READABLE_ASM is not set # CONFIG_UNUSED_SYMBOLS is not set -# CONFIG_DEBUG_FS is not set -# CONFIG_HEADERS_CHECK is not set +CONFIG_DEBUG_FS=y +CONFIG_HEADERS_CHECK=y # CONFIG_DEBUG_SECTION_MISMATCH is not set CONFIG_DEBUG_KERNEL=y -# CONFIG_DEBUG_SHIRQ is not set -# CONFIG_LOCKUP_DETECTOR is not set -# CONFIG_HARDLOCKUP_DETECTOR is not set -CONFIG_DETECT_HUNG_TASK=y -CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 -# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set -CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 +CONFIG_DEBUG_SHIRQ=y +CONFIG_LOCKUP_DETECTOR=y +CONFIG_HARDLOCKUP_DETECTOR=y +# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set +CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0 +# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set +CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 +# CONFIG_PANIC_ON_OOPS is not set +CONFIG_PANIC_ON_OOPS_VALUE=0 +# CONFIG_DETECT_HUNG_TASK is not set CONFIG_SCHED_DEBUG=y -# CONFIG_SCHEDSTATS is not set +CONFIG_SCHEDSTATS=y CONFIG_TIMER_STATS=y # CONFIG_DEBUG_OBJECTS is not set # CONFIG_SLUB_DEBUG_ON is not set # CONFIG_SLUB_STATS is not set +CONFIG_HAVE_DEBUG_KMEMLEAK=y # CONFIG_DEBUG_KMEMLEAK is not set # CONFIG_DEBUG_RT_MUTEXES is not set # CONFIG_RT_MUTEX_TESTER is not set @@ -4495,10 +5248,10 @@ CONFIG_TIMER_STATS=y # CONFIG_DEBUG_MUTEXES is not set # CONFIG_DEBUG_LOCK_ALLOC is not set # CONFIG_PROVE_LOCKING is not set -# CONFIG_SPARSE_RCU_POINTER is not set # CONFIG_LOCK_STAT is not set # CONFIG_DEBUG_ATOMIC_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +CONFIG_STACKTRACE=y # CONFIG_DEBUG_STACK_USAGE is not set # CONFIG_DEBUG_KOBJECT is not set # CONFIG_DEBUG_HIGHMEM is not set @@ -4508,38 +5261,79 @@ CONFIG_DEBUG_BUGVERBOSE=y # CONFIG_DEBUG_VIRTUAL is not set # CONFIG_DEBUG_WRITECOUNT is not set CONFIG_DEBUG_MEMORY_INIT=y -# CONFIG_DEBUG_LIST is not set +CONFIG_DEBUG_LIST=y # CONFIG_TEST_LIST_SORT is not set # CONFIG_DEBUG_SG is not set # CONFIG_DEBUG_NOTIFIERS is not set # CONFIG_DEBUG_CREDENTIALS is not set CONFIG_ARCH_WANT_FRAME_POINTERS=y -# CONFIG_FRAME_POINTER is not set +CONFIG_FRAME_POINTER=y # CONFIG_BOOT_PRINTK_DELAY is not set + +# +# RCU Debugging +# +# CONFIG_SPARSE_RCU_POINTER is not set # CONFIG_RCU_TORTURE_TEST is not set CONFIG_RCU_CPU_STALL_TIMEOUT=60 +# CONFIG_RCU_CPU_STALL_INFO is not set +# CONFIG_RCU_TRACE is not set # CONFIG_BACKTRACE_SELF_TEST is not set # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set # CONFIG_DEBUG_PER_CPU_MAPS is not set -# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set +# CONFIG_LKDTM is not set +# CONFIG_NOTIFIER_ERROR_INJECTION is not set # CONFIG_FAULT_INJECTION is not set -# CONFIG_LATENCYTOP is not set -# CONFIG_SYSCTL_SYSCALL_CHECK is not set +CONFIG_ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS=y +# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set # CONFIG_DEBUG_PAGEALLOC is not set CONFIG_USER_STACKTRACE_SUPPORT=y +CONFIG_NOP_TRACER=y CONFIG_HAVE_FUNCTION_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y CONFIG_HAVE_SYSCALL_TRACEPOINTS=y CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_TRACER_MAX_TRACE=y +CONFIG_TRACE_CLOCK=y +CONFIG_RING_BUFFER=y +CONFIG_EVENT_TRACING=y +CONFIG_CONTEXT_SWITCH_TRACER=y +CONFIG_TRACING=y +CONFIG_GENERIC_TRACER=y CONFIG_TRACING_SUPPORT=y -# CONFIG_FTRACE is not set -# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set -# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set +CONFIG_FTRACE=y +CONFIG_FUNCTION_TRACER=y +CONFIG_FUNCTION_GRAPH_TRACER=y +# CONFIG_IRQSOFF_TRACER is not set +CONFIG_SCHED_TRACER=y +CONFIG_FTRACE_SYSCALLS=y +CONFIG_TRACER_SNAPSHOT=y +# CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP is not set +CONFIG_BRANCH_PROFILE_NONE=y +# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set +# CONFIG_PROFILE_ALL_BRANCHES is not set +CONFIG_STACK_TRACER=y +CONFIG_BLK_DEV_IO_TRACE=y +# CONFIG_UPROBE_EVENT is not set +# CONFIG_PROBE_EVENTS is not set +CONFIG_DYNAMIC_FTRACE=y +CONFIG_DYNAMIC_FTRACE_WITH_REGS=y +CONFIG_FUNCTION_PROFILER=y +CONFIG_FTRACE_MCOUNT_RECORD=y +# CONFIG_FTRACE_STARTUP_TEST is not set +# CONFIG_MMIOTRACE is not set +CONFIG_RING_BUFFER_BENCHMARK=m +# CONFIG_RING_BUFFER_STARTUP_TEST is not set +CONFIG_RBTREE_TEST=m +# CONFIG_INTERVAL_TREE_TEST is not set +# CONFIG_BUILD_DOCSRC is not set +CONFIG_DYNAMIC_DEBUG=y # CONFIG_DMA_API_DEBUG is not set # CONFIG_ATOMIC64_SELFTEST is not set CONFIG_ASYNC_RAID6_TEST=m @@ -4547,19 +5341,17 @@ CONFIG_ASYNC_RAID6_TEST=m CONFIG_HAVE_ARCH_KGDB=y # CONFIG_KGDB is not set CONFIG_HAVE_ARCH_KMEMCHECK=y -# CONFIG_KMEMCHECK is not set +# CONFIG_TEST_STRING_HELPERS is not set # CONFIG_TEST_KSTRTOX is not set -# CONFIG_STRICT_DEVMEM is not set -CONFIG_X86_VERBOSE_BOOTUP=y +CONFIG_STRICT_DEVMEM=y +# CONFIG_X86_VERBOSE_BOOTUP is not set CONFIG_EARLY_PRINTK=y # CONFIG_EARLY_PRINTK_DBGP is not set -# CONFIG_DEBUG_STACKOVERFLOW is not set +CONFIG_DEBUG_STACKOVERFLOW=y # CONFIG_X86_PTDUMP is not set -CONFIG_DEBUG_RODATA=y -CONFIG_DEBUG_RODATA_TEST=y -# CONFIG_DEBUG_SET_MODULE_RONX is not set -# CONFIG_DEBUG_NX_TEST is not set +CONFIG_DEBUG_NX_TEST=m CONFIG_DOUBLEFAULT=y +# CONFIG_DEBUG_TLBFLUSH is not set # CONFIG_IOMMU_STRESS is not set CONFIG_HAVE_MMIOTRACE_SUPPORT=y CONFIG_IO_DELAY_TYPE_0X80=0 @@ -4571,20 +5363,189 @@ CONFIG_IO_DELAY_0X80=y # CONFIG_IO_DELAY_UDELAY is not set # CONFIG_IO_DELAY_NONE is not set CONFIG_DEFAULT_IO_DELAY_TYPE=0 +CONFIG_DEBUG_BOOT_PARAMS=y # CONFIG_CPA_DEBUG is not set -# CONFIG_OPTIMIZE_INLINING is not set -# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set +CONFIG_OPTIMIZE_INLINING=y +# CONFIG_DEBUG_NMI_SELFTEST is not set
# # Security options # + +# +# Grsecurity +# +CONFIG_ARCH_TRACK_EXEC_LIMIT=y +CONFIG_PAX_USERCOPY_SLABS=y +CONFIG_GRKERNSEC=y +# CONFIG_GRKERNSEC_CONFIG_AUTO is not set +CONFIG_GRKERNSEC_CONFIG_CUSTOM=y + +# +# Customize Configuration +# + +# +# PaX +# +CONFIG_PAX=y + +# +# PaX Control +# +# CONFIG_PAX_SOFTMODE is not set +CONFIG_PAX_EI_PAX=y +CONFIG_PAX_PT_PAX_FLAGS=y +# CONFIG_PAX_XATTR_PAX_FLAGS is not set +# CONFIG_PAX_NO_ACL_FLAGS is not set +CONFIG_PAX_HAVE_ACL_FLAGS=y +# CONFIG_PAX_HOOK_ACL_FLAGS is not set + +# +# Non-executable pages +# +CONFIG_PAX_NOEXEC=y +CONFIG_PAX_PAGEEXEC=y +CONFIG_PAX_SEGMEXEC=y +CONFIG_PAX_EMUTRAMP=y +CONFIG_PAX_MPROTECT=y +# CONFIG_PAX_MPROTECT_COMPAT is not set +CONFIG_PAX_ELFRELOCS=y +# CONFIG_PAX_KERNEXEC is not set +CONFIG_PAX_KERNEXEC_PLUGIN_METHOD="" + +# +# Address Space Layout Randomization +# +CONFIG_PAX_ASLR=y +CONFIG_PAX_RANDKSTACK=y +CONFIG_PAX_RANDUSTACK=y +CONFIG_PAX_RANDMMAP=y + +# +# Miscellaneous hardening features +# +CONFIG_PAX_MEMORY_STACKLEAK=y +CONFIG_PAX_MEMORY_STRUCTLEAK=y +# CONFIG_PAX_MEMORY_UDEREF is not set +CONFIG_PAX_REFCOUNT=y +CONFIG_PAX_USERCOPY=y +# CONFIG_PAX_USERCOPY_DEBUG is not set +# CONFIG_PAX_SIZE_OVERFLOW is not set +# CONFIG_PAX_LATENT_ENTROPY is not set + +# +# Memory Protections +# +# CONFIG_GRKERNSEC_KMEM is not set +CONFIG_GRKERNSEC_VM86=y +# CONFIG_GRKERNSEC_IO is not set +# CONFIG_GRKERNSEC_PERF_HARDEN is not set +CONFIG_GRKERNSEC_RAND_THREADSTACK=y +CONFIG_GRKERNSEC_PROC_MEMMAP=y +CONFIG_GRKERNSEC_BRUTE=y +CONFIG_GRKERNSEC_MODHARDEN=y +CONFIG_GRKERNSEC_HIDESYM=y +CONFIG_GRKERNSEC_KERN_LOCKOUT=y + +# +# Role Based Access Control Options +# +CONFIG_GRKERNSEC_NO_RBAC=y +# CONFIG_GRKERNSEC_ACL_HIDEKERN is not set +CONFIG_GRKERNSEC_ACL_MAXTRIES=3 +CONFIG_GRKERNSEC_ACL_TIMEOUT=30 + +# +# Filesystem Protections +# +# CONFIG_GRKERNSEC_PROC is not set +CONFIG_GRKERNSEC_LINK=y +# CONFIG_GRKERNSEC_SYMLINKOWN is not set +CONFIG_GRKERNSEC_FIFO=y +# CONFIG_GRKERNSEC_SYSFS_RESTRICT is not set +# CONFIG_GRKERNSEC_ROFS is not set +CONFIG_GRKERNSEC_DEVICE_SIDECHANNEL=y +CONFIG_GRKERNSEC_CHROOT=y +# CONFIG_GRKERNSEC_CHROOT_MOUNT is not set +CONFIG_GRKERNSEC_CHROOT_DOUBLE=y +CONFIG_GRKERNSEC_CHROOT_PIVOT=y +CONFIG_GRKERNSEC_CHROOT_CHDIR=y +# CONFIG_GRKERNSEC_CHROOT_CHMOD is not set +CONFIG_GRKERNSEC_CHROOT_FCHDIR=y +# CONFIG_GRKERNSEC_CHROOT_MKNOD is not set +CONFIG_GRKERNSEC_CHROOT_SHMAT=y +CONFIG_GRKERNSEC_CHROOT_UNIX=y +CONFIG_GRKERNSEC_CHROOT_FINDTASK=y +CONFIG_GRKERNSEC_CHROOT_NICE=y +CONFIG_GRKERNSEC_CHROOT_SYSCTL=y +# CONFIG_GRKERNSEC_CHROOT_CAPS is not set +CONFIG_GRKERNSEC_CHROOT_INITRD=y + +# +# Kernel Auditing +# +# CONFIG_GRKERNSEC_AUDIT_GROUP is not set +# CONFIG_GRKERNSEC_EXECLOG is not set +CONFIG_GRKERNSEC_RESLOG=y +# CONFIG_GRKERNSEC_CHROOT_EXECLOG is not set +# CONFIG_GRKERNSEC_AUDIT_PTRACE is not set +# CONFIG_GRKERNSEC_AUDIT_CHDIR is not set +# CONFIG_GRKERNSEC_AUDIT_MOUNT is not set +CONFIG_GRKERNSEC_SIGNAL=y +CONFIG_GRKERNSEC_FORKFAIL=y +# CONFIG_GRKERNSEC_TIME is not set +CONFIG_GRKERNSEC_PROC_IPADDR=y +# CONFIG_GRKERNSEC_RWXMAP_LOG is not set + +# +# Executable Protections +# +CONFIG_GRKERNSEC_DMESG=y +CONFIG_GRKERNSEC_HARDEN_PTRACE=y +CONFIG_GRKERNSEC_PTRACE_READEXEC=y +CONFIG_GRKERNSEC_SETXID=y +# CONFIG_GRKERNSEC_TPE is not set + +# +# Network Protections +# +CONFIG_GRKERNSEC_RANDNET=y +CONFIG_GRKERNSEC_BLACKHOLE=y +CONFIG_GRKERNSEC_NO_SIMULT_CONNECT=y +# CONFIG_GRKERNSEC_SOCKET is not set + +# +# Physical Protections +# +# CONFIG_GRKERNSEC_DENYUSB is not set + +# +# Sysctl Support +# +# CONFIG_GRKERNSEC_SYSCTL is not set + +# +# Logging Options +# +CONFIG_GRKERNSEC_FLOODTIME=10 +CONFIG_GRKERNSEC_FLOODBURST=6 CONFIG_KEYS=y # CONFIG_ENCRYPTED_KEYS is not set -# CONFIG_KEYS_DEBUG_PROC_KEYS is not set -# CONFIG_SECURITY_DMESG_RESTRICT is not set -# CONFIG_SECURITY is not set -# CONFIG_SECURITYFS is not set +CONFIG_KEYS_DEBUG_PROC_KEYS=y +CONFIG_SECURITY_DMESG_RESTRICT=y +CONFIG_SECURITY=y +CONFIG_SECURITYFS=y +CONFIG_SECURITY_NETWORK=y +CONFIG_SECURITY_NETWORK_XFRM=y +# CONFIG_SECURITY_PATH is not set # CONFIG_INTEL_TXT is not set +# CONFIG_SECURITY_SELINUX is not set +# CONFIG_SECURITY_SMACK is not set +# CONFIG_SECURITY_TOMOYO is not set +# CONFIG_SECURITY_APPARMOR is not set +# CONFIG_IMA is not set +# CONFIG_EVM is not set CONFIG_DEFAULT_SECURITY_DAC=y CONFIG_DEFAULT_SECURITY="" CONFIG_XOR_BLOCKS=m @@ -4593,58 +5554,60 @@ CONFIG_ASYNC_MEMCPY=m CONFIG_ASYNC_XOR=m CONFIG_ASYNC_PQ=m CONFIG_ASYNC_RAID6_RECOV=m -CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y -CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y CONFIG_CRYPTO=y
# # Crypto core or helper # +CONFIG_CRYPTO_FIPS=y CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_ALGAPI2=y -CONFIG_CRYPTO_AEAD=m +CONFIG_CRYPTO_AEAD=y CONFIG_CRYPTO_AEAD2=y -CONFIG_CRYPTO_BLKCIPHER=m +CONFIG_CRYPTO_BLKCIPHER=y CONFIG_CRYPTO_BLKCIPHER2=y CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_HASH2=y -CONFIG_CRYPTO_RNG=m +CONFIG_CRYPTO_RNG=y CONFIG_CRYPTO_RNG2=y CONFIG_CRYPTO_PCOMP=m CONFIG_CRYPTO_PCOMP2=y CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y -CONFIG_CRYPTO_USER=m -CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y -CONFIG_CRYPTO_GF128MUL=m -# CONFIG_CRYPTO_NULL is not set +# CONFIG_CRYPTO_USER is not set +# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set +CONFIG_CRYPTO_GF128MUL=y +CONFIG_CRYPTO_NULL=m CONFIG_CRYPTO_PCRYPT=m CONFIG_CRYPTO_WORKQUEUE=y -CONFIG_CRYPTO_CRYPTD=m +CONFIG_CRYPTO_CRYPTD=y CONFIG_CRYPTO_AUTHENC=m -# CONFIG_CRYPTO_TEST is not set +CONFIG_CRYPTO_TEST=m +CONFIG_CRYPTO_ABLK_HELPER_X86=y +CONFIG_CRYPTO_GLUE_HELPER_X86=m
# # Authenticated Encryption with Associated Data # CONFIG_CRYPTO_CCM=m CONFIG_CRYPTO_GCM=m -CONFIG_CRYPTO_SEQIV=m +CONFIG_CRYPTO_SEQIV=y
# # Block modes # -CONFIG_CRYPTO_CBC=m -CONFIG_CRYPTO_CTR=m +CONFIG_CRYPTO_CBC=y +CONFIG_CRYPTO_CTR=y CONFIG_CRYPTO_CTS=m -CONFIG_CRYPTO_ECB=m -CONFIG_CRYPTO_LRW=m +CONFIG_CRYPTO_ECB=y +CONFIG_CRYPTO_LRW=y CONFIG_CRYPTO_PCBC=m -CONFIG_CRYPTO_XTS=m +CONFIG_CRYPTO_XTS=y
# # Hash modes # +CONFIG_CRYPTO_CMAC=m CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_XCBC=m CONFIG_CRYPTO_VMAC=m @@ -4652,18 +5615,20 @@ CONFIG_CRYPTO_VMAC=m # # Digest # -CONFIG_CRYPTO_CRC32C=m -CONFIG_CRYPTO_CRC32C_INTEL=m +CONFIG_CRYPTO_CRC32C=y +CONFIG_CRYPTO_CRC32C_INTEL=y +CONFIG_CRYPTO_CRC32=y +CONFIG_CRYPTO_CRC32_PCLMUL=m CONFIG_CRYPTO_GHASH=m CONFIG_CRYPTO_MD4=m -CONFIG_CRYPTO_MD5=m +CONFIG_CRYPTO_MD5=y CONFIG_CRYPTO_MICHAEL_MIC=m CONFIG_CRYPTO_RMD128=m CONFIG_CRYPTO_RMD160=m CONFIG_CRYPTO_RMD256=m CONFIG_CRYPTO_RMD320=m CONFIG_CRYPTO_SHA1=m -CONFIG_CRYPTO_SHA256=m +CONFIG_CRYPTO_SHA256=y CONFIG_CRYPTO_SHA512=m CONFIG_CRYPTO_TGR192=m CONFIG_CRYPTO_WP512=m @@ -4671,23 +5636,25 @@ CONFIG_CRYPTO_WP512=m # # Ciphers # -CONFIG_CRYPTO_AES=m -CONFIG_CRYPTO_AES_586=m -CONFIG_CRYPTO_AES_NI_INTEL=m +CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_AES_586=y +CONFIG_CRYPTO_AES_NI_INTEL=y CONFIG_CRYPTO_ANUBIS=m CONFIG_CRYPTO_ARC4=m CONFIG_CRYPTO_BLOWFISH=m CONFIG_CRYPTO_BLOWFISH_COMMON=m CONFIG_CRYPTO_CAMELLIA=m +CONFIG_CRYPTO_CAST_COMMON=m CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST6=m CONFIG_CRYPTO_DES=m CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_KHAZAD=m CONFIG_CRYPTO_SALSA20=m -CONFIG_CRYPTO_SALSA20_586=m +# CONFIG_CRYPTO_SALSA20_586 is not set CONFIG_CRYPTO_SEED=m CONFIG_CRYPTO_SERPENT=m +CONFIG_CRYPTO_SERPENT_SSE2_586=m CONFIG_CRYPTO_TEA=m CONFIG_CRYPTO_TWOFISH=m CONFIG_CRYPTO_TWOFISH_COMMON=m @@ -4696,7 +5663,7 @@ CONFIG_CRYPTO_TWOFISH_586=m # # Compression # -CONFIG_CRYPTO_DEFLATE=y +CONFIG_CRYPTO_DEFLATE=m CONFIG_CRYPTO_ZLIB=m CONFIG_CRYPTO_LZO=m
@@ -4704,9 +5671,9 @@ CONFIG_CRYPTO_LZO=m # Random Number Generation # CONFIG_CRYPTO_ANSI_CPRNG=m -CONFIG_CRYPTO_USER_API=m -CONFIG_CRYPTO_USER_API_HASH=m -CONFIG_CRYPTO_USER_API_SKCIPHER=m +CONFIG_CRYPTO_USER_API=y +CONFIG_CRYPTO_USER_API_HASH=y +CONFIG_CRYPTO_USER_API_SKCIPHER=y CONFIG_CRYPTO_HW=y CONFIG_CRYPTO_DEV_PADLOCK=m CONFIG_CRYPTO_DEV_PADLOCK_AES=m @@ -4714,37 +5681,55 @@ CONFIG_CRYPTO_DEV_PADLOCK_SHA=m CONFIG_CRYPTO_DEV_GEODE=m CONFIG_CRYPTO_DEV_HIFN_795X=m CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y +CONFIG_ASYMMETRIC_KEY_TYPE=m +CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=m +CONFIG_PUBLIC_KEY_ALGO_RSA=m +CONFIG_X509_CERTIFICATE_PARSER=m CONFIG_HAVE_KVM=y CONFIG_HAVE_KVM_IRQCHIP=y +CONFIG_HAVE_KVM_IRQ_ROUTING=y CONFIG_HAVE_KVM_EVENTFD=y CONFIG_KVM_APIC_ARCHITECTURE=y CONFIG_KVM_MMIO=y CONFIG_KVM_ASYNC_PF=y +CONFIG_HAVE_KVM_MSI=y +CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y CONFIG_VIRTUALIZATION=y CONFIG_KVM=m CONFIG_KVM_INTEL=m CONFIG_KVM_AMD=m -CONFIG_VHOST_NET=m -CONFIG_LGUEST=m -# CONFIG_BINARY_PRINTF is not set +CONFIG_KVM_MMU_AUDIT=y +CONFIG_KVM_DEVICE_ASSIGNMENT=y +# CONFIG_LGUEST is not set +CONFIG_BINARY_PRINTF=y
# # Library routines # CONFIG_RAID6_PQ=m CONFIG_BITREVERSE=y +CONFIG_GENERIC_STRNCPY_FROM_USER=y +CONFIG_GENERIC_STRNLEN_USER=y CONFIG_GENERIC_FIND_FIRST_BIT=y -CONFIG_CRC_CCITT=m +CONFIG_GENERIC_PCI_IOMAP=y +CONFIG_GENERIC_IOMAP=y +CONFIG_GENERIC_IO=y +CONFIG_CRC_CCITT=y CONFIG_CRC16=y -CONFIG_CRC_T10DIF=m +CONFIG_CRC_T10DIF=y CONFIG_CRC_ITU_T=m CONFIG_CRC32=y +# CONFIG_CRC32_SELFTEST is not set +CONFIG_CRC32_SLICEBY8=y +# CONFIG_CRC32_SLICEBY4 is not set +# CONFIG_CRC32_SARWATE is not set +# CONFIG_CRC32_BIT is not set CONFIG_CRC7=m CONFIG_LIBCRC32C=m CONFIG_CRC8=m CONFIG_AUDIT_GENERIC=y CONFIG_ZLIB_INFLATE=y -CONFIG_ZLIB_DEFLATE=y +CONFIG_ZLIB_DEFLATE=m CONFIG_LZO_COMPRESS=y CONFIG_LZO_DECOMPRESS=y CONFIG_XZ_DEC=y @@ -4761,6 +5746,7 @@ CONFIG_DECOMPRESS_BZIP2=y CONFIG_DECOMPRESS_LZMA=y CONFIG_DECOMPRESS_XZ=y CONFIG_DECOMPRESS_LZO=y +CONFIG_GENERIC_ALLOCATOR=y CONFIG_TEXTSEARCH=y CONFIG_TEXTSEARCH_KMP=m CONFIG_TEXTSEARCH_BM=m @@ -4770,6 +5756,13 @@ CONFIG_HAS_IOPORT=y CONFIG_HAS_DMA=y CONFIG_CHECK_SIGNATURE=y CONFIG_CPU_RMAP=y +CONFIG_DQL=y CONFIG_NLATTR=y +CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y CONFIG_AVERAGE=y +CONFIG_CLZ_TAB=y CONFIG_CORDIC=m +# CONFIG_DDR is not set +CONFIG_MPILIB=m +CONFIG_OID_REGISTRY=m +CONFIG_UCS2_STRING=y diff --git a/config/kernel/kernel.config.i586-ipfire-pae b/config/kernel/kernel.config.i586-ipfire-pae index b9fd2aa..5fd7ab9 100644 --- a/config/kernel/kernel.config.i586-ipfire-pae +++ b/config/kernel/kernel.config.i586-ipfire-pae @@ -1,46 +1,34 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/i386 3.2.47 Kernel Configuration +# Linux/x86 3.10.33 Kernel Configuration # # CONFIG_64BIT is not set CONFIG_X86_32=y -# CONFIG_X86_64 is not set CONFIG_X86=y CONFIG_INSTRUCTION_DECODER=y CONFIG_OUTPUT_FORMAT="elf32-i386" CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig" -CONFIG_GENERIC_CMOS_UPDATE=y -CONFIG_CLOCKSOURCE_WATCHDOG=y -CONFIG_GENERIC_CLOCKEVENTS=y -CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y CONFIG_LOCKDEP_SUPPORT=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_HAVE_LATENCYTOP_SUPPORT=y CONFIG_MMU=y -CONFIG_ZONE_DMA=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_GENERIC_ISA_DMA=y -CONFIG_GENERIC_IOMAP=y CONFIG_GENERIC_BUG=y CONFIG_GENERIC_HWEIGHT=y -CONFIG_GENERIC_GPIO=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y -# CONFIG_RWSEM_GENERIC_SPINLOCK is not set CONFIG_RWSEM_XCHGADD_ALGORITHM=y -CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y CONFIG_GENERIC_CALIBRATE_DELAY=y -# CONFIG_GENERIC_TIME_VSYSCALL is not set CONFIG_ARCH_HAS_CPU_RELAX=y -CONFIG_ARCH_HAS_DEFAULT_IDLE=y CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y +CONFIG_ARCH_HAS_CPU_AUTOPROBE=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y # CONFIG_ZONE_DMA32 is not set -CONFIG_ARCH_POPULATES_NODE_MAP=y # CONFIG_AUDIT_ARCH is not set CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y @@ -48,16 +36,15 @@ CONFIG_HAVE_INTEL_TXT=y CONFIG_X86_32_SMP=y CONFIG_X86_HT=y CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx" -CONFIG_KTIME_SCALAR=y CONFIG_ARCH_CPU_PROBE_RELEASE=y +CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" -CONFIG_HAVE_IRQ_WORK=y CONFIG_IRQ_WORK=y +CONFIG_BUILDTIME_EXTABLE_SORT=y
# # General setup # -CONFIG_EXPERIMENTAL=y CONFIG_INIT_ENV_ARG_LIMIT=32 CONFIG_CROSS_COMPILE="" CONFIG_LOCALVERSION="" @@ -69,8 +56,8 @@ CONFIG_HAVE_KERNEL_XZ=y CONFIG_HAVE_KERNEL_LZO=y # CONFIG_KERNEL_GZIP is not set # CONFIG_KERNEL_BZIP2 is not set -CONFIG_KERNEL_LZMA=y -# CONFIG_KERNEL_XZ is not set +# CONFIG_KERNEL_LZMA is not set +CONFIG_KERNEL_XZ=y # CONFIG_KERNEL_LZO is not set CONFIG_DEFAULT_HOSTNAME="(none)" CONFIG_SWAP=y @@ -78,54 +65,99 @@ CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE_SYSCTL=y -CONFIG_BSD_PROCESS_ACCT=y -CONFIG_BSD_PROCESS_ACCT_V3=y -# CONFIG_FHANDLE is not set -CONFIG_TASKSTATS=y -CONFIG_TASK_DELAY_ACCT=y -# CONFIG_TASK_XACCT is not set +CONFIG_FHANDLE=y CONFIG_AUDIT=y CONFIG_AUDITSYSCALL=y CONFIG_AUDIT_WATCH=y CONFIG_AUDIT_TREE=y +CONFIG_AUDIT_LOGINUID_IMMUTABLE=y CONFIG_HAVE_GENERIC_HARDIRQS=y
# # IRQ subsystem # CONFIG_GENERIC_HARDIRQS=y -CONFIG_HAVE_SPARSE_IRQ=y CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y CONFIG_GENERIC_PENDING_IRQ=y -CONFIG_GENERIC_IRQ_CHIP=y +CONFIG_IRQ_DOMAIN=y +# CONFIG_IRQ_DOMAIN_DEBUG is not set CONFIG_IRQ_FORCED_THREADING=y CONFIG_SPARSE_IRQ=y +CONFIG_CLOCKSOURCE_WATCHDOG=y +CONFIG_KTIME_SCALAR=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y +CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y +CONFIG_GENERIC_CMOS_UPDATE=y + +# +# Timers subsystem +# +CONFIG_TICK_ONESHOT=y +CONFIG_NO_HZ_COMMON=y +# CONFIG_HZ_PERIODIC is not set +CONFIG_NO_HZ_IDLE=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y + +# +# CPU/Task time and stats accounting +# +# CONFIG_TICK_CPU_ACCOUNTING is not set +CONFIG_IRQ_TIME_ACCOUNTING=y +CONFIG_BSD_PROCESS_ACCT=y +# CONFIG_BSD_PROCESS_ACCT_V3 is not set +CONFIG_TASKSTATS=y +CONFIG_TASK_DELAY_ACCT=y +CONFIG_TASK_XACCT=y +CONFIG_TASK_IO_ACCOUNTING=y
# # RCU Subsystem # CONFIG_TREE_RCU=y # CONFIG_PREEMPT_RCU is not set -# CONFIG_RCU_TRACE is not set +CONFIG_RCU_STALL_COMMON=y CONFIG_RCU_FANOUT=32 +CONFIG_RCU_FANOUT_LEAF=16 # CONFIG_RCU_FANOUT_EXACT is not set -# CONFIG_RCU_FAST_NO_HZ is not set +CONFIG_RCU_FAST_NO_HZ=y # CONFIG_TREE_RCU_TRACE is not set +CONFIG_RCU_NOCB_CPU=y +# CONFIG_RCU_NOCB_CPU_NONE is not set +# CONFIG_RCU_NOCB_CPU_ZERO is not set +CONFIG_RCU_NOCB_CPU_ALL=y # CONFIG_IKCONFIG is not set -CONFIG_LOG_BUF_SHIFT=17 +CONFIG_LOG_BUF_SHIFT=18 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y -# CONFIG_CGROUPS is not set +CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y +CONFIG_ARCH_WANTS_PROT_NUMA_PROT_NONE=y +CONFIG_CGROUPS=y +# CONFIG_CGROUP_DEBUG is not set +CONFIG_CGROUP_FREEZER=y +CONFIG_CGROUP_DEVICE=y +CONFIG_CPUSETS=y +CONFIG_PROC_PID_CPUSET=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_RESOURCE_COUNTERS=y +# CONFIG_MEMCG is not set +CONFIG_CGROUP_PERF=y +CONFIG_CGROUP_SCHED=y +CONFIG_FAIR_GROUP_SCHED=y +# CONFIG_CFS_BANDWIDTH is not set +CONFIG_RT_GROUP_SCHED=y +CONFIG_BLK_CGROUP=y +# CONFIG_DEBUG_BLK_CGROUP is not set CONFIG_NAMESPACES=y CONFIG_UTS_NS=y CONFIG_IPC_NS=y -# CONFIG_USER_NS is not set -# CONFIG_PID_NS is not set -# CONFIG_NET_NS is not set -# CONFIG_SCHED_AUTOGROUP is not set -CONFIG_SYSFS_DEPRECATED=y -CONFIG_SYSFS_DEPRECATED_V2=y -# CONFIG_RELAY is not set +CONFIG_PID_NS=y +CONFIG_NET_NS=y +CONFIG_SCHED_AUTOGROUP=y +# CONFIG_SYSFS_DEPRECATED is not set +CONFIG_RELAY=y CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" CONFIG_RD_GZIP=y @@ -136,17 +168,19 @@ CONFIG_RD_LZO=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_SYSCTL=y CONFIG_ANON_INODES=y -# CONFIG_EXPERT is not set +CONFIG_HAVE_UID16=y +CONFIG_SYSCTL_EXCEPTION_TRACE=y +CONFIG_HOTPLUG=y +CONFIG_HAVE_PCSPKR_PLATFORM=y +CONFIG_EXPERT=y CONFIG_UID16=y # CONFIG_SYSCTL_SYSCALL is not set CONFIG_KALLSYMS=y -# CONFIG_KALLSYMS_ALL is not set -CONFIG_HOTPLUG=y +CONFIG_KALLSYMS_ALL=y CONFIG_PRINTK=y CONFIG_BUG=y CONFIG_ELF_CORE=y CONFIG_PCSPKR_PLATFORM=y -CONFIG_HAVE_PCSPKR_PLATFORM=y CONFIG_BASE_FULL=y CONFIG_FUTEX=y CONFIG_EPOLL=y @@ -155,46 +189,68 @@ CONFIG_TIMERFD=y CONFIG_EVENTFD=y CONFIG_SHMEM=y CONFIG_AIO=y -# CONFIG_EMBEDDED is not set +CONFIG_PCI_QUIRKS=y +CONFIG_EMBEDDED=y CONFIG_HAVE_PERF_EVENTS=y
# # Kernel Performance Events And Counters # CONFIG_PERF_EVENTS=y -# CONFIG_PERF_COUNTERS is not set # CONFIG_DEBUG_PERF_USE_VMALLOC is not set CONFIG_VM_EVENT_COUNTERS=y -CONFIG_PCI_QUIRKS=y CONFIG_SLUB_DEBUG=y # CONFIG_COMPAT_BRK is not set # CONFIG_SLAB is not set CONFIG_SLUB=y +# CONFIG_SLOB is not set # CONFIG_PROFILING is not set +CONFIG_TRACEPOINTS=y CONFIG_HAVE_OPROFILE=y +CONFIG_OPROFILE_NMI_TIMER=y # CONFIG_KPROBES is not set -# CONFIG_JUMP_LABEL is not set +CONFIG_JUMP_LABEL=y +# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_ARCH_USE_BUILTIN_BSWAP=y CONFIG_USER_RETURN_NOTIFIER=y CONFIG_HAVE_IOREMAP_PROT=y CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y CONFIG_HAVE_OPTPROBES=y +CONFIG_HAVE_KPROBES_ON_FTRACE=y CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_DMA_ATTRS=y CONFIG_USE_GENERIC_SMP_HELPERS=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_CLK=y CONFIG_HAVE_DMA_API_DEBUG=y CONFIG_HAVE_HW_BREAKPOINT=y CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y CONFIG_HAVE_USER_RETURN_NOTIFIER=y CONFIG_HAVE_PERF_EVENTS_NMI=y +CONFIG_HAVE_PERF_REGS=y +CONFIG_HAVE_PERF_USER_STACK_DUMP=y CONFIG_HAVE_ARCH_JUMP_LABEL=y CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y +CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y +CONFIG_HAVE_CMPXCHG_LOCAL=y +CONFIG_HAVE_CMPXCHG_DOUBLE=y +CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y +CONFIG_HAVE_ARCH_SECCOMP_FILTER=y +CONFIG_SECCOMP_FILTER=y +CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y +CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y +CONFIG_MODULES_USE_ELF_REL=y +CONFIG_CLONE_BACKWARDS=y +CONFIG_OLD_SIGSUSPEND3=y +CONFIG_OLD_SIGACTION=y
# # GCOV-based kernel profiling # +# CONFIG_GCOV_KERNEL is not set CONFIG_HAVE_GENERIC_DMA_COHERENT=y CONFIG_SLABINFO=y CONFIG_RT_MUTEXES=y @@ -202,15 +258,40 @@ CONFIG_BASE_SMALL=0 CONFIG_MODULES=y # CONFIG_MODULE_FORCE_LOAD is not set CONFIG_MODULE_UNLOAD=y -CONFIG_MODULE_FORCE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set # CONFIG_MODVERSIONS is not set -# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_MODULE_SRCVERSION_ALL=y +# CONFIG_MODULE_SIG is not set CONFIG_STOP_MACHINE=y CONFIG_BLOCK=y CONFIG_LBDAF=y CONFIG_BLK_DEV_BSG=y CONFIG_BLK_DEV_BSGLIB=y -# CONFIG_BLK_DEV_INTEGRITY is not set +CONFIG_BLK_DEV_INTEGRITY=y +CONFIG_BLK_DEV_THROTTLING=y + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +# CONFIG_MAC_PARTITION is not set +CONFIG_MSDOS_PARTITION=y +# CONFIG_BSD_DISKLABEL is not set +# CONFIG_MINIX_SUBPARTITION is not set +# CONFIG_SOLARIS_X86_PARTITION is not set +# CONFIG_UNIXWARE_DISKLABEL is not set +CONFIG_LDM_PARTITION=y +# CONFIG_LDM_DEBUG is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +# CONFIG_KARMA_PARTITION is not set +CONFIG_EFI_PARTITION=y +# CONFIG_SYSV68_PARTITION is not set
# # IO Schedulers @@ -218,84 +299,64 @@ CONFIG_BLK_DEV_BSGLIB=y CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_DEADLINE=y CONFIG_IOSCHED_CFQ=y +CONFIG_CFQ_GROUP_IOSCHED=y # CONFIG_DEFAULT_DEADLINE is not set CONFIG_DEFAULT_CFQ=y # CONFIG_DEFAULT_NOOP is not set CONFIG_DEFAULT_IOSCHED="cfq" CONFIG_PREEMPT_NOTIFIERS=y CONFIG_PADATA=y -# CONFIG_INLINE_SPIN_TRYLOCK is not set -# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set -# CONFIG_INLINE_SPIN_LOCK is not set -# CONFIG_INLINE_SPIN_LOCK_BH is not set -# CONFIG_INLINE_SPIN_LOCK_IRQ is not set -# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set -CONFIG_INLINE_SPIN_UNLOCK=y -# CONFIG_INLINE_SPIN_UNLOCK_BH is not set +CONFIG_ASN1=m CONFIG_INLINE_SPIN_UNLOCK_IRQ=y -# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set -# CONFIG_INLINE_READ_TRYLOCK is not set -# CONFIG_INLINE_READ_LOCK is not set -# CONFIG_INLINE_READ_LOCK_BH is not set -# CONFIG_INLINE_READ_LOCK_IRQ is not set -# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set CONFIG_INLINE_READ_UNLOCK=y -# CONFIG_INLINE_READ_UNLOCK_BH is not set CONFIG_INLINE_READ_UNLOCK_IRQ=y -# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set -# CONFIG_INLINE_WRITE_TRYLOCK is not set -# CONFIG_INLINE_WRITE_LOCK is not set -# CONFIG_INLINE_WRITE_LOCK_BH is not set -# CONFIG_INLINE_WRITE_LOCK_IRQ is not set -# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set CONFIG_INLINE_WRITE_UNLOCK=y -# CONFIG_INLINE_WRITE_UNLOCK_BH is not set CONFIG_INLINE_WRITE_UNLOCK_IRQ=y -# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set CONFIG_MUTEX_SPIN_ON_OWNER=y CONFIG_FREEZER=y
# # Processor type and features # -CONFIG_TICK_ONESHOT=y -CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y -CONFIG_GENERIC_CLOCKEVENTS_BUILD=y -CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y +CONFIG_ZONE_DMA=y CONFIG_SMP=y CONFIG_X86_MPPARSE=y CONFIG_X86_BIGSMP=y CONFIG_X86_EXTENDED_PLATFORM=y +# CONFIG_X86_GOLDFISH is not set # CONFIG_X86_WANT_INTEL_MID is not set +CONFIG_X86_INTEL_LPSS=y # CONFIG_X86_RDC321X is not set -# CONFIG_X86_32_NON_STANDARD is not set +CONFIG_X86_32_NON_STANDARD=y +# CONFIG_X86_NUMAQ is not set CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y -# CONFIG_X86_32_IRIS is not set +# CONFIG_STA2X11 is not set +# CONFIG_X86_SUMMIT is not set +# CONFIG_X86_ES7000 is not set +CONFIG_X86_32_IRIS=m CONFIG_SCHED_OMIT_FRAME_POINTER=y -CONFIG_PARAVIRT_GUEST=y -# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set +CONFIG_HYPERVISOR_GUEST=y +CONFIG_PARAVIRT=y +# CONFIG_PARAVIRT_DEBUG is not set +# CONFIG_PARAVIRT_SPINLOCKS is not set CONFIG_XEN=y CONFIG_XEN_DOM0=y CONFIG_XEN_PRIVILEGED_GUEST=y CONFIG_XEN_PVHVM=y -CONFIG_XEN_MAX_DOMAIN_MEMORY=128 +CONFIG_XEN_MAX_DOMAIN_MEMORY=64 CONFIG_XEN_SAVE_RESTORE=y -CONFIG_KVM_CLOCK=y +CONFIG_XEN_DEBUG_FS=y CONFIG_KVM_GUEST=y -CONFIG_LGUEST_GUEST=y -CONFIG_PARAVIRT=y -CONFIG_PARAVIRT_SPINLOCKS=y +# CONFIG_LGUEST_GUEST is not set +CONFIG_PARAVIRT_TIME_ACCOUNTING=y CONFIG_PARAVIRT_CLOCK=y -# CONFIG_PARAVIRT_DEBUG is not set CONFIG_NO_BOOTMEM=y # CONFIG_MEMTEST is not set -# CONFIG_M386 is not set # CONFIG_M486 is not set # CONFIG_M586 is not set -CONFIG_M586TSC=y +# CONFIG_M586TSC is not set # CONFIG_M586MMX is not set -# CONFIG_M686 is not set +CONFIG_M686=y # CONFIG_MPENTIUMII is not set # CONFIG_MPENTIUMIII is not set # CONFIG_MPENTIUMM is not set @@ -317,22 +378,17 @@ CONFIG_M586TSC=y # CONFIG_MATOM is not set CONFIG_X86_GENERIC=y CONFIG_X86_INTERNODE_CACHE_SHIFT=6 -CONFIG_X86_CMPXCHG=y -CONFIG_CMPXCHG_LOCAL=y -CONFIG_CMPXCHG_DOUBLE=y CONFIG_X86_L1_CACHE_SHIFT=6 -CONFIG_X86_XADD=y -CONFIG_X86_PPRO_FENCE=y -CONFIG_X86_F00F_BUG=y -CONFIG_X86_WP_WORKS_OK=y -CONFIG_X86_INVLPG=y -CONFIG_X86_BSWAP=y -CONFIG_X86_POPAD_OK=y +# CONFIG_X86_PPRO_FENCE is not set CONFIG_X86_ALIGNMENT_16=y CONFIG_X86_INTEL_USERCOPY=y +CONFIG_X86_USE_PPRO_CHECKSUM=y CONFIG_X86_TSC=y CONFIG_X86_CMPXCHG64=y +CONFIG_X86_CMOV=y CONFIG_X86_MINIMUM_CPU_FAMILY=5 +CONFIG_X86_DEBUGCTLMSR=y +# CONFIG_PROCESSOR_SELECT is not set CONFIG_CPU_SUP_INTEL=y CONFIG_CPU_SUP_CYRIX_32=y CONFIG_CPU_SUP_AMD=y @@ -344,10 +400,9 @@ CONFIG_HPET_EMULATE_RTC=y CONFIG_DMI=y CONFIG_SWIOTLB=y CONFIG_IOMMU_HELPER=y -CONFIG_NR_CPUS=256 +CONFIG_NR_CPUS=32 CONFIG_SCHED_SMT=y CONFIG_SCHED_MC=y -CONFIG_IRQ_TIME_ACCOUNTING=y CONFIG_PREEMPT_NONE=y # CONFIG_PREEMPT_VOLUNTARY is not set # CONFIG_PREEMPT is not set @@ -357,28 +412,35 @@ CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y CONFIG_X86_MCE=y CONFIG_X86_MCE_INTEL=y CONFIG_X86_MCE_AMD=y -CONFIG_X86_ANCIENT_MCE=y +# CONFIG_X86_ANCIENT_MCE is not set CONFIG_X86_MCE_THRESHOLD=y -CONFIG_X86_MCE_INJECT=m +# CONFIG_X86_MCE_INJECT is not set CONFIG_X86_THERMAL_VECTOR=y CONFIG_VM86=y CONFIG_TOSHIBA=m CONFIG_I8K=m -CONFIG_X86_REBOOTFIXUPS=y +# CONFIG_X86_REBOOTFIXUPS is not set CONFIG_MICROCODE=m CONFIG_MICROCODE_INTEL=y CONFIG_MICROCODE_AMD=y CONFIG_MICROCODE_OLD_INTERFACE=y -CONFIG_X86_MSR=m +CONFIG_MICROCODE_INTEL_LIB=y +CONFIG_MICROCODE_INTEL_EARLY=y +CONFIG_MICROCODE_EARLY=y +# CONFIG_X86_MSR is not set CONFIG_X86_CPUID=y # CONFIG_NOHIGHMEM is not set # CONFIG_HIGHMEM4G is not set CONFIG_HIGHMEM64G=y +CONFIG_VMSPLIT_3G=y +# CONFIG_VMSPLIT_2G is not set +# CONFIG_VMSPLIT_1G is not set CONFIG_PAGE_OFFSET=0xC0000000 CONFIG_HIGHMEM=y CONFIG_X86_PAE=y CONFIG_ARCH_PHYS_ADDR_T_64BIT=y CONFIG_ARCH_DMA_ADDR_T_64BIT=y +# CONFIG_NUMA is not set CONFIG_ARCH_FLATMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y @@ -390,9 +452,15 @@ CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y CONFIG_SPARSEMEM_STATIC=y CONFIG_HAVE_MEMBLOCK=y +CONFIG_HAVE_MEMBLOCK_NODE_MAP=y +CONFIG_ARCH_DISCARD_MEMBLOCK=y +CONFIG_MEMORY_ISOLATION=y +# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set CONFIG_PAGEFLAGS_EXTENDED=y CONFIG_SPLIT_PTLOCK_CPUS=4 -# CONFIG_COMPACTION is not set +CONFIG_BALLOON_COMPACTION=y +CONFIG_COMPACTION=y +CONFIG_MIGRATION=y CONFIG_PHYS_ADDR_T_64BIT=y CONFIG_ZONE_DMA_FLAG=1 CONFIG_BOUNCE=y @@ -401,19 +469,28 @@ CONFIG_MMU_NOTIFIER=y CONFIG_KSM=y CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y -# CONFIG_MEMORY_FAILURE is not set -# CONFIG_TRANSPARENT_HUGEPAGE is not set -# CONFIG_CLEANCACHE is not set -# CONFIG_HIGHPTE is not set -# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set +CONFIG_MEMORY_FAILURE=y +CONFIG_TRANSPARENT_HUGEPAGE=y +CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y +# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set +CONFIG_CROSS_MEMORY_ATTACH=y +CONFIG_CLEANCACHE=y +# CONFIG_FRONTSWAP is not set +CONFIG_HIGHPTE=y +CONFIG_X86_CHECK_BIOS_CORRUPTION=y +CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y CONFIG_X86_RESERVE_LOW=64 -CONFIG_MATH_EMULATION=y +# CONFIG_MATH_EMULATION is not set CONFIG_MTRR=y -# CONFIG_MTRR_SANITIZER is not set +CONFIG_MTRR_SANITIZER=y +CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=1 +CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1 CONFIG_X86_PAT=y CONFIG_ARCH_USES_PG_UNCACHED=y CONFIG_ARCH_RANDOM=y -# CONFIG_EFI is not set +CONFIG_X86_SMAP=y +CONFIG_EFI=y +CONFIG_EFI_STUB=y CONFIG_SECCOMP=y CONFIG_CC_STACKPROTECTOR=y # CONFIG_HZ_100 is not set @@ -423,12 +500,14 @@ CONFIG_HZ_300=y CONFIG_HZ=300 CONFIG_SCHED_HRTICK=y # CONFIG_KEXEC is not set -# CONFIG_CRASH_DUMP is not set -CONFIG_PHYSICAL_START=0x1000000 -# CONFIG_RELOCATABLE is not set -CONFIG_PHYSICAL_ALIGN=0x100000 +CONFIG_CRASH_DUMP=y +CONFIG_PHYSICAL_START=0x400000 +CONFIG_RELOCATABLE=y +CONFIG_X86_NEED_RELOCS=y +CONFIG_PHYSICAL_ALIGN=0x400000 CONFIG_HOTPLUG_CPU=y -CONFIG_COMPAT_VDSO=y +# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set +# CONFIG_DEBUG_HOTPLUG_CPU0 is not set # CONFIG_CMDLINE_BOOL is not set CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -438,43 +517,55 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y CONFIG_HIBERNATE_CALLBACKS=y -# CONFIG_HIBERNATION is not set +CONFIG_HIBERNATION=y +CONFIG_PM_STD_PARTITION="" CONFIG_PM_SLEEP=y CONFIG_PM_SLEEP_SMP=y +# CONFIG_PM_AUTOSLEEP is not set +# CONFIG_PM_WAKELOCKS is not set CONFIG_PM_RUNTIME=y CONFIG_PM=y # CONFIG_PM_DEBUG is not set +CONFIG_PM_CLK=y CONFIG_ACPI=y CONFIG_ACPI_SLEEP=y -# CONFIG_ACPI_PROCFS is not set -CONFIG_ACPI_PROCFS_POWER=y +CONFIG_ACPI_PROCFS=y +# CONFIG_ACPI_PROCFS_POWER is not set CONFIG_ACPI_EC_DEBUGFS=m -CONFIG_ACPI_PROC_EVENT=y -CONFIG_ACPI_AC=m -CONFIG_ACPI_BATTERY=m -CONFIG_ACPI_BUTTON=m +# CONFIG_ACPI_PROC_EVENT is not set +CONFIG_ACPI_AC=y +CONFIG_ACPI_BATTERY=y +CONFIG_ACPI_BUTTON=y CONFIG_ACPI_VIDEO=m -CONFIG_ACPI_FAN=m +CONFIG_ACPI_FAN=y CONFIG_ACPI_DOCK=y -CONFIG_ACPI_PROCESSOR=m +CONFIG_ACPI_I2C=m +CONFIG_ACPI_PROCESSOR=y CONFIG_ACPI_IPMI=m CONFIG_ACPI_HOTPLUG_CPU=y CONFIG_ACPI_PROCESSOR_AGGREGATOR=m -CONFIG_ACPI_THERMAL=m -CONFIG_ACPI_CUSTOM_DSDT_FILE="" +CONFIG_ACPI_THERMAL=y # CONFIG_ACPI_CUSTOM_DSDT is not set -CONFIG_ACPI_BLACKLIST_YEAR=0 +CONFIG_ACPI_INITRD_TABLE_OVERRIDE=y +CONFIG_ACPI_BLACKLIST_YEAR=1999 # CONFIG_ACPI_DEBUG is not set -CONFIG_ACPI_PCI_SLOT=m +CONFIG_ACPI_PCI_SLOT=y CONFIG_X86_PM_TIMER=y -CONFIG_ACPI_CONTAINER=m +CONFIG_ACPI_CONTAINER=y CONFIG_ACPI_SBS=m -# CONFIG_ACPI_HED is not set -# CONFIG_ACPI_APEI is not set -# CONFIG_SFI is not set +CONFIG_ACPI_HED=y +CONFIG_ACPI_CUSTOM_METHOD=m +# CONFIG_ACPI_BGRT is not set +CONFIG_ACPI_APEI=y +CONFIG_ACPI_APEI_GHES=y +CONFIG_ACPI_APEI_PCIEAER=y +CONFIG_ACPI_APEI_MEMORY_FAILURE=y +# CONFIG_ACPI_APEI_EINJ is not set +# CONFIG_ACPI_APEI_ERST_DEBUG is not set +CONFIG_SFI=y CONFIG_X86_APM_BOOT=y -CONFIG_APM=m -CONFIG_APM_IGNORE_USER_SUSPEND=y +CONFIG_APM=y +# CONFIG_APM_IGNORE_USER_SUSPEND is not set # CONFIG_APM_DO_ENABLE is not set CONFIG_APM_CPU_IDLE=y # CONFIG_APM_DISPLAY_BLANK is not set @@ -485,46 +576,52 @@ CONFIG_APM_CPU_IDLE=y # CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_TABLE=y -CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_FREQ_GOV_COMMON=y +CONFIG_CPU_FREQ_STAT=m CONFIG_CPU_FREQ_STAT_DETAILS=y -CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y -# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y # CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_POWERSAVE=m -CONFIG_CPU_FREQ_GOV_USERSPACE=m +CONFIG_CPU_FREQ_GOV_USERSPACE=y CONFIG_CPU_FREQ_GOV_ONDEMAND=m CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
# # x86 CPU frequency scaling drivers # -CONFIG_X86_PCC_CPUFREQ=m -CONFIG_X86_ACPI_CPUFREQ=m -CONFIG_X86_POWERNOW_K6=m -CONFIG_X86_POWERNOW_K7=m +CONFIG_X86_INTEL_PSTATE=y +CONFIG_X86_PCC_CPUFREQ=y +CONFIG_X86_ACPI_CPUFREQ=y +# CONFIG_X86_ACPI_CPUFREQ_CPB is not set +# CONFIG_X86_POWERNOW_K6 is not set +CONFIG_X86_POWERNOW_K7=y CONFIG_X86_POWERNOW_K7_ACPI=y -CONFIG_X86_POWERNOW_K8=m -CONFIG_X86_GX_SUSPMOD=m -CONFIG_X86_SPEEDSTEP_CENTRINO=m -CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y -CONFIG_X86_SPEEDSTEP_ICH=m -CONFIG_X86_SPEEDSTEP_SMI=m -CONFIG_X86_P4_CLOCKMOD=m -CONFIG_X86_CPUFREQ_NFORCE2=m -CONFIG_X86_LONGRUN=m -CONFIG_X86_LONGHAUL=m -CONFIG_X86_E_POWERSAVER=m +CONFIG_X86_POWERNOW_K8=y +# CONFIG_X86_AMD_FREQ_SENSITIVITY is not set +# CONFIG_X86_GX_SUSPMOD is not set +# CONFIG_X86_SPEEDSTEP_CENTRINO is not set +CONFIG_X86_SPEEDSTEP_ICH=y +CONFIG_X86_SPEEDSTEP_SMI=y +CONFIG_X86_P4_CLOCKMOD=y +# CONFIG_X86_CPUFREQ_NFORCE2 is not set +CONFIG_X86_LONGRUN=y +# CONFIG_X86_LONGHAUL is not set +# CONFIG_X86_E_POWERSAVER is not set
# # shared options # -CONFIG_X86_SPEEDSTEP_LIB=m +CONFIG_X86_SPEEDSTEP_LIB=y # CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK is not set CONFIG_CPU_IDLE=y +# CONFIG_CPU_IDLE_MULTIPLE_DRIVERS is not set CONFIG_CPU_IDLE_GOV_LADDER=y CONFIG_CPU_IDLE_GOV_MENU=y +# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set CONFIG_INTEL_IDLE=y
# @@ -542,17 +639,22 @@ CONFIG_PCI_XEN=y CONFIG_PCI_DOMAINS=y # CONFIG_PCI_CNB20LE_QUIRK is not set CONFIG_PCIEPORTBUS=y +CONFIG_HOTPLUG_PCI_PCIE=y CONFIG_PCIEAER=y -# CONFIG_PCIE_ECRC is not set -# CONFIG_PCIEAER_INJECT is not set +CONFIG_PCIE_ECRC=y +CONFIG_PCIEAER_INJECT=m CONFIG_PCIEASPM=y # CONFIG_PCIEASPM_DEBUG is not set +# CONFIG_PCIEASPM_DEFAULT is not set +CONFIG_PCIEASPM_POWERSAVE=y +# CONFIG_PCIEASPM_PERFORMANCE is not set CONFIG_PCIE_PME=y CONFIG_ARCH_SUPPORTS_MSI=y CONFIG_PCI_MSI=y # CONFIG_PCI_DEBUG is not set -CONFIG_PCI_STUB=m -CONFIG_XEN_PCIDEV_FRONTEND=y +# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set +CONFIG_PCI_STUB=y +CONFIG_XEN_PCIDEV_FRONTEND=m CONFIG_HT_IRQ=y CONFIG_PCI_ATS=y CONFIG_PCI_IOV=y @@ -563,16 +665,15 @@ CONFIG_PCI_LABEL=y CONFIG_ISA_DMA_API=y CONFIG_ISA=y CONFIG_EISA=y -CONFIG_EISA_VLB_PRIMING=y +# CONFIG_EISA_VLB_PRIMING is not set CONFIG_EISA_PCI_EISA=y CONFIG_EISA_VIRTUAL_ROOT=y CONFIG_EISA_NAMES=y -CONFIG_MCA=y -CONFIG_MCA_LEGACY=y -# CONFIG_MCA_PROC_FS is not set -CONFIG_SCx200=m -CONFIG_SCx200HR_TIMER=m -CONFIG_ALIX=y +# CONFIG_SCx200 is not set +CONFIG_APULED=y +# CONFIG_ALIX is not set +# CONFIG_NET5501 is not set +# CONFIG_GEOS is not set CONFIG_AMD_NB=y CONFIG_PCCARD=m CONFIG_PCMCIA=m @@ -594,17 +695,25 @@ CONFIG_I82365=m CONFIG_TCIC=m CONFIG_PCMCIA_PROBE=y CONFIG_PCCARD_NONSTATIC=y -# CONFIG_HOTPLUG_PCI is not set +CONFIG_HOTPLUG_PCI=y +# CONFIG_HOTPLUG_PCI_COMPAQ is not set +# CONFIG_HOTPLUG_PCI_IBM is not set +CONFIG_HOTPLUG_PCI_ACPI=y +CONFIG_HOTPLUG_PCI_ACPI_IBM=m +# CONFIG_HOTPLUG_PCI_CPCI is not set +# CONFIG_HOTPLUG_PCI_SHPC is not set # CONFIG_RAPIDIO is not set
# # Executable file formats / Emulations # CONFIG_BINFMT_ELF=y -# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y +CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y +CONFIG_BINFMT_SCRIPT=y CONFIG_HAVE_AOUT=y -# CONFIG_BINFMT_AOUT is not set -# CONFIG_BINFMT_MISC is not set +CONFIG_BINFMT_MISC=y +CONFIG_COREDUMP=y CONFIG_HAVE_ATOMIC_IOMAP=y CONFIG_HAVE_TEXT_POKE_SMP=y CONFIG_NET=y @@ -613,10 +722,13 @@ CONFIG_NET=y # Networking options # CONFIG_PACKET=y +CONFIG_PACKET_DIAG=y CONFIG_UNIX=y +CONFIG_UNIX_DIAG=m CONFIG_XFRM=y -CONFIG_XFRM_USER=m -# CONFIG_XFRM_SUB_POLICY is not set +CONFIG_XFRM_ALGO=y +CONFIG_XFRM_USER=y +CONFIG_XFRM_SUB_POLICY=y CONFIG_XFRM_MIGRATE=y CONFIG_XFRM_STATISTICS=y CONFIG_XFRM_IPCOMP=m @@ -625,7 +737,7 @@ CONFIG_NET_KEY_MIGRATE=y CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y -# CONFIG_IP_FIB_TRIE_STATS is not set +CONFIG_IP_FIB_TRIE_STATS=y CONFIG_IP_MULTIPLE_TABLES=y CONFIG_IP_ROUTE_MULTIPATH=y CONFIG_IP_ROUTE_VERBOSE=y @@ -633,28 +745,31 @@ CONFIG_IP_ROUTE_CLASSID=y # CONFIG_IP_PNP is not set CONFIG_NET_IPIP=m CONFIG_NET_IPGRE_DEMUX=m +CONFIG_NET_IP_TUNNEL=m CONFIG_NET_IPGRE=m CONFIG_NET_IPGRE_BROADCAST=y CONFIG_IP_MROUTE=y -# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set +CONFIG_IP_MROUTE_MULTIPLE_TABLES=y CONFIG_IP_PIMSM_V1=y CONFIG_IP_PIMSM_V2=y -CONFIG_ARPD=y +# CONFIG_ARPD is not set CONFIG_SYN_COOKIES=y +CONFIG_NET_IPVTI=m CONFIG_INET_AH=m CONFIG_INET_ESP=m CONFIG_INET_IPCOMP=m CONFIG_INET_XFRM_TUNNEL=m CONFIG_INET_TUNNEL=m -CONFIG_INET_XFRM_MODE_TRANSPORT=y -CONFIG_INET_XFRM_MODE_TUNNEL=y -CONFIG_INET_XFRM_MODE_BEET=y +CONFIG_INET_XFRM_MODE_TRANSPORT=m +CONFIG_INET_XFRM_MODE_TUNNEL=m +CONFIG_INET_XFRM_MODE_BEET=m CONFIG_INET_LRO=y CONFIG_INET_DIAG=m CONFIG_INET_TCP_DIAG=m +CONFIG_INET_UDP_DIAG=m CONFIG_TCP_CONG_ADVANCED=y CONFIG_TCP_CONG_BIC=m -CONFIG_TCP_CONG_CUBIC=m +CONFIG_TCP_CONG_CUBIC=y CONFIG_TCP_CONG_WESTWOOD=m CONFIG_TCP_CONG_HTCP=m CONFIG_TCP_CONG_HSTCP=m @@ -665,13 +780,15 @@ CONFIG_TCP_CONG_LP=m CONFIG_TCP_CONG_VENO=m CONFIG_TCP_CONG_YEAH=m CONFIG_TCP_CONG_ILLINOIS=m -CONFIG_DEFAULT_RENO=y -CONFIG_DEFAULT_TCP_CONG="reno" -# CONFIG_TCP_MD5SIG is not set +CONFIG_DEFAULT_CUBIC=y +# CONFIG_DEFAULT_RENO is not set +CONFIG_DEFAULT_TCP_CONG="cubic" +CONFIG_TCP_MD5SIG=y CONFIG_IPV6=y -# CONFIG_IPV6_PRIVACY is not set -# CONFIG_IPV6_ROUTER_PREF is not set -# CONFIG_IPV6_OPTIMISTIC_DAD is not set +CONFIG_IPV6_PRIVACY=y +CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_ROUTE_INFO=y +CONFIG_IPV6_OPTIMISTIC_DAD=y CONFIG_INET6_AH=m CONFIG_INET6_ESP=m CONFIG_INET6_IPCOMP=m @@ -683,14 +800,18 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m CONFIG_INET6_XFRM_MODE_BEET=m CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m CONFIG_IPV6_SIT=m -# CONFIG_IPV6_SIT_6RD is not set +CONFIG_IPV6_SIT_6RD=y CONFIG_IPV6_NDISC_NODETYPE=y CONFIG_IPV6_TUNNEL=m +CONFIG_IPV6_GRE=m CONFIG_IPV6_MULTIPLE_TABLES=y -# CONFIG_IPV6_SUBTREES is not set -# CONFIG_IPV6_MROUTE is not set -# CONFIG_NETWORK_SECMARK is not set -CONFIG_NETWORK_PHY_TIMESTAMPING=y +CONFIG_IPV6_SUBTREES=y +CONFIG_IPV6_MROUTE=y +CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y +CONFIG_IPV6_PIMSM_V2=y +# CONFIG_NETLABEL is not set +CONFIG_NETWORK_SECMARK=y +# CONFIG_NETWORK_PHY_TIMESTAMPING is not set CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set CONFIG_NETFILTER_ADVANCED=y @@ -700,13 +821,18 @@ CONFIG_BRIDGE_NETFILTER=y # Core Netfilter Configuration # CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_NETLINK_ACCT=m CONFIG_NETFILTER_NETLINK_QUEUE=m CONFIG_NETFILTER_NETLINK_LOG=m -CONFIG_NF_CONNTRACK=m +CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y -# CONFIG_NF_CONNTRACK_ZONES is not set +CONFIG_NF_CONNTRACK_SECMARK=y +CONFIG_NF_CONNTRACK_ZONES=y +CONFIG_NF_CONNTRACK_PROCFS=y CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CONNTRACK_TIMEOUT=y CONFIG_NF_CONNTRACK_TIMESTAMP=y +CONFIG_NF_CONNTRACK_LABELS=y CONFIG_NF_CT_PROTO_DCCP=m CONFIG_NF_CT_PROTO_GRE=m CONFIG_NF_CT_PROTO_SCTP=m @@ -723,14 +849,28 @@ CONFIG_NF_CONNTRACK_SANE=m CONFIG_NF_CONNTRACK_SIP=m CONFIG_NF_CONNTRACK_TFTP=m CONFIG_NF_CT_NETLINK=m +CONFIG_NF_CT_NETLINK_TIMEOUT=m +CONFIG_NF_CT_NETLINK_HELPER=m +CONFIG_NETFILTER_NETLINK_QUEUE_CT=y +CONFIG_NF_NAT=m +CONFIG_NF_NAT_NEEDED=y +CONFIG_NF_NAT_PROTO_DCCP=m +CONFIG_NF_NAT_PROTO_UDPLITE=m +CONFIG_NF_NAT_PROTO_SCTP=m +CONFIG_NF_NAT_AMANDA=m +CONFIG_NF_NAT_FTP=m +CONFIG_NF_NAT_IRC=m +CONFIG_NF_NAT_SIP=m +CONFIG_NF_NAT_TFTP=m CONFIG_NETFILTER_TPROXY=m -CONFIG_NETFILTER_XTABLES=m +CONFIG_NETFILTER_XTABLES=y
# # Xtables combined modules # CONFIG_NETFILTER_XT_MARK=m CONFIG_NETFILTER_XT_CONNMARK=m +CONFIG_NETFILTER_XT_SET=m
# # Xtables targets @@ -739,20 +879,26 @@ CONFIG_NETFILTER_XT_TARGET_AUDIT=m CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m CONFIG_NETFILTER_XT_TARGET_CONNMARK=m +CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m CONFIG_NETFILTER_XT_TARGET_CT=m CONFIG_NETFILTER_XT_TARGET_DSCP=m CONFIG_NETFILTER_XT_TARGET_HL=m +CONFIG_NETFILTER_XT_TARGET_HMARK=m CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m CONFIG_NETFILTER_XT_TARGET_LED=m +CONFIG_NETFILTER_XT_TARGET_LOG=m CONFIG_NETFILTER_XT_TARGET_IMQ=m CONFIG_NETFILTER_XT_TARGET_MARK=m +CONFIG_NETFILTER_XT_TARGET_NETMAP=m CONFIG_NETFILTER_XT_TARGET_NFLOG=m CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m CONFIG_NETFILTER_XT_TARGET_NOTRACK=m CONFIG_NETFILTER_XT_TARGET_RATEEST=m +CONFIG_NETFILTER_XT_TARGET_REDIRECT=m CONFIG_NETFILTER_XT_TARGET_TEE=m CONFIG_NETFILTER_XT_TARGET_TPROXY=m CONFIG_NETFILTER_XT_TARGET_TRACE=m +CONFIG_NETFILTER_XT_TARGET_SECMARK=m CONFIG_NETFILTER_XT_TARGET_TCPMSS=m CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
@@ -760,9 +906,11 @@ CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m # Xtables matches # CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m +CONFIG_NETFILTER_XT_MATCH_BPF=m CONFIG_NETFILTER_XT_MATCH_CLUSTER=m CONFIG_NETFILTER_XT_MATCH_COMMENT=m CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m +CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m CONFIG_NETFILTER_XT_MATCH_CONNMARK=m CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m @@ -770,17 +918,19 @@ CONFIG_NETFILTER_XT_MATCH_CPU=m CONFIG_NETFILTER_XT_MATCH_DCCP=m CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m CONFIG_NETFILTER_XT_MATCH_DSCP=m +CONFIG_NETFILTER_XT_MATCH_ECN=m CONFIG_NETFILTER_XT_MATCH_ESP=m CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m CONFIG_NETFILTER_XT_MATCH_HELPER=m CONFIG_NETFILTER_XT_MATCH_HL=m CONFIG_NETFILTER_XT_MATCH_IPRANGE=m -CONFIG_NETFILTER_XT_MATCH_IPVS=m +# CONFIG_NETFILTER_XT_MATCH_IPVS is not set CONFIG_NETFILTER_XT_MATCH_LENGTH=m CONFIG_NETFILTER_XT_MATCH_LIMIT=m CONFIG_NETFILTER_XT_MATCH_MAC=m CONFIG_NETFILTER_XT_MATCH_MARK=m CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_NFACCT=m CONFIG_NETFILTER_XT_MATCH_OSF=m CONFIG_NETFILTER_XT_MATCH_OWNER=m CONFIG_NETFILTER_XT_MATCH_POLICY=m @@ -800,7 +950,19 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m CONFIG_NETFILTER_XT_MATCH_TCPMSS=m CONFIG_NETFILTER_XT_MATCH_TIME=m CONFIG_NETFILTER_XT_MATCH_U32=m -# CONFIG_IP_SET is not set +CONFIG_IP_SET=m +CONFIG_IP_SET_MAX=256 +CONFIG_IP_SET_BITMAP_IP=m +CONFIG_IP_SET_BITMAP_IPMAC=m +CONFIG_IP_SET_BITMAP_PORT=m +CONFIG_IP_SET_HASH_IP=m +CONFIG_IP_SET_HASH_IPPORT=m +CONFIG_IP_SET_HASH_IPPORTIP=m +CONFIG_IP_SET_HASH_IPPORTNET=m +CONFIG_IP_SET_HASH_NET=m +CONFIG_IP_SET_HASH_NETPORT=m +CONFIG_IP_SET_HASH_NETIFACE=m +CONFIG_IP_SET_LIST_SET=m CONFIG_IP_VS=m CONFIG_IP_VS_IPV6=y # CONFIG_IP_VS_DEBUG is not set @@ -831,6 +993,11 @@ CONFIG_IP_VS_SED=m CONFIG_IP_VS_NQ=m
# +# IPVS SH scheduler +# +CONFIG_IP_VS_SH_TAB_BITS=8 + +# # IPVS application helper # CONFIG_IP_VS_FTP=m @@ -840,40 +1007,31 @@ CONFIG_IP_VS_PE_SIP=m # # IP: Netfilter Configuration # -CONFIG_NF_DEFRAG_IPV4=m -CONFIG_NF_CONNTRACK_IPV4=m -CONFIG_NF_CONNTRACK_PROC_COMPAT=y -CONFIG_IP_NF_QUEUE=m -CONFIG_IP_NF_IPTABLES=m +CONFIG_NF_DEFRAG_IPV4=y +CONFIG_NF_CONNTRACK_IPV4=y +# CONFIG_NF_CONNTRACK_PROC_COMPAT is not set +CONFIG_IP_NF_IPTABLES=y CONFIG_IP_NF_MATCH_AH=m CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_RPFILTER=m CONFIG_IP_NF_MATCH_TTL=m CONFIG_IP_NF_FILTER=m CONFIG_IP_NF_TARGET_REJECT=m -CONFIG_IP_NF_TARGET_LOG=m -CONFIG_IP_NF_TARGET_ULOG=m -CONFIG_NF_NAT=m -CONFIG_NF_NAT_NEEDED=y +# CONFIG_IP_NF_TARGET_ULOG is not set +CONFIG_NF_NAT_IPV4=m CONFIG_IP_NF_TARGET_MASQUERADE=m CONFIG_IP_NF_TARGET_NETMAP=m CONFIG_IP_NF_TARGET_REDIRECT=m CONFIG_NF_NAT_SNMP_BASIC=m -CONFIG_NF_NAT_PROTO_DCCP=m CONFIG_NF_NAT_PROTO_GRE=m -CONFIG_NF_NAT_PROTO_UDPLITE=m -CONFIG_NF_NAT_PROTO_SCTP=m -CONFIG_NF_NAT_FTP=m -CONFIG_NF_NAT_IRC=m -CONFIG_NF_NAT_TFTP=m -CONFIG_NF_NAT_AMANDA=m CONFIG_NF_NAT_PPTP=m CONFIG_NF_NAT_H323=m -CONFIG_NF_NAT_SIP=m CONFIG_IP_NF_MANGLE=m CONFIG_IP_NF_TARGET_CLUSTERIP=m CONFIG_IP_NF_TARGET_ECN=m CONFIG_IP_NF_TARGET_TTL=m CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_SECURITY=m CONFIG_IP_NF_ARPTABLES=m CONFIG_IP_NF_ARPFILTER=m CONFIG_IP_NF_ARP_MANGLE=m @@ -882,10 +1040,9 @@ CONFIG_IP_NF_MATCH_IPP2P=m # # IPv6: Netfilter Configuration # -CONFIG_NF_DEFRAG_IPV6=m -CONFIG_NF_CONNTRACK_IPV6=m -CONFIG_IP6_NF_QUEUE=m -CONFIG_IP6_NF_IPTABLES=m +CONFIG_NF_DEFRAG_IPV6=y +CONFIG_NF_CONNTRACK_IPV6=y +CONFIG_IP6_NF_IPTABLES=y CONFIG_IP6_NF_MATCH_AH=m CONFIG_IP6_NF_MATCH_EUI64=m CONFIG_IP6_NF_MATCH_FRAG=m @@ -893,13 +1050,17 @@ CONFIG_IP6_NF_MATCH_OPTS=m CONFIG_IP6_NF_MATCH_HL=m CONFIG_IP6_NF_MATCH_IPV6HEADER=m CONFIG_IP6_NF_MATCH_MH=m +CONFIG_IP6_NF_MATCH_RPFILTER=m CONFIG_IP6_NF_MATCH_RT=m CONFIG_IP6_NF_TARGET_HL=m -CONFIG_IP6_NF_TARGET_LOG=m CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_TARGET_REJECT=m CONFIG_IP6_NF_MANGLE=m CONFIG_IP6_NF_RAW=m +CONFIG_IP6_NF_SECURITY=m +CONFIG_NF_NAT_IPV6=m +CONFIG_IP6_NF_TARGET_MASQUERADE=m +CONFIG_IP6_NF_TARGET_NPT=m CONFIG_BRIDGE_NF_EBTABLES=m CONFIG_BRIDGE_EBT_BROUTE=m CONFIG_BRIDGE_EBT_T_FILTER=m @@ -920,49 +1081,52 @@ CONFIG_BRIDGE_EBT_MARK_T=m CONFIG_BRIDGE_EBT_REDIRECT=m CONFIG_BRIDGE_EBT_SNAT=m CONFIG_BRIDGE_EBT_LOG=m -CONFIG_BRIDGE_EBT_ULOG=m +# CONFIG_BRIDGE_EBT_ULOG is not set CONFIG_BRIDGE_EBT_NFLOG=m # CONFIG_IP_DCCP is not set -# CONFIG_IP_SCTP is not set +CONFIG_IP_SCTP=m +# CONFIG_SCTP_DBG_MSG is not set +# CONFIG_SCTP_DBG_OBJCNT is not set +# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set +CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y +# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set +CONFIG_SCTP_COOKIE_HMAC_MD5=y +CONFIG_SCTP_COOKIE_HMAC_SHA1=y # CONFIG_RDS is not set # CONFIG_TIPC is not set CONFIG_ATM=m CONFIG_ATM_CLIP=m -CONFIG_ATM_CLIP_NO_ICMP=y +# CONFIG_ATM_CLIP_NO_ICMP is not set # CONFIG_ATM_LANE is not set CONFIG_ATM_BR2684=m # CONFIG_ATM_BR2684_IPFILTER is not set CONFIG_L2TP=m +# CONFIG_L2TP_DEBUGFS is not set CONFIG_L2TP_V3=y CONFIG_L2TP_IP=m CONFIG_L2TP_ETH=m -CONFIG_STP=m +CONFIG_STP=y CONFIG_GARP=m -CONFIG_BRIDGE=m +CONFIG_BRIDGE=y CONFIG_BRIDGE_IGMP_SNOOPING=y +CONFIG_BRIDGE_VLAN_FILTERING=y +CONFIG_HAVE_NET_DSA=y CONFIG_NET_DSA=y CONFIG_NET_DSA_TAG_DSA=y CONFIG_NET_DSA_TAG_EDSA=y CONFIG_NET_DSA_TAG_TRAILER=y -CONFIG_NET_DSA_MV88E6XXX=y -CONFIG_NET_DSA_MV88E6060=y -CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y -CONFIG_NET_DSA_MV88E6131=y -CONFIG_NET_DSA_MV88E6123_61_65=y CONFIG_VLAN_8021Q=m CONFIG_VLAN_8021Q_GVRP=y +# CONFIG_VLAN_8021Q_MVRP is not set # CONFIG_DECNET is not set -CONFIG_LLC=m +CONFIG_LLC=y # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set -# CONFIG_ECONET is not set -# CONFIG_WAN_ROUTER is not set # CONFIG_PHONET is not set -CONFIG_IEEE802154=m -CONFIG_IEEE802154_6LOWPAN=m +# CONFIG_IEEE802154 is not set CONFIG_NET_SCHED=y
# @@ -986,7 +1150,10 @@ CONFIG_NET_SCH_DRR=m CONFIG_NET_SCH_MQPRIO=m CONFIG_NET_SCH_CHOKE=m CONFIG_NET_SCH_QFQ=m +CONFIG_NET_SCH_CODEL=m +CONFIG_NET_SCH_FQ_CODEL=m CONFIG_NET_SCH_INGRESS=m +CONFIG_NET_SCH_PLUG=m
# # Classification @@ -1002,6 +1169,7 @@ CONFIG_CLS_U32_MARK=y CONFIG_NET_CLS_RSVP=m CONFIG_NET_CLS_RSVP6=m CONFIG_NET_CLS_FLOW=m +CONFIG_NET_CLS_CGROUP=m CONFIG_NET_EMATCH=y CONFIG_NET_EMATCH_STACK=32 CONFIG_NET_EMATCH_CMP=m @@ -1009,6 +1177,7 @@ CONFIG_NET_EMATCH_NBYTE=m CONFIG_NET_EMATCH_U32=m CONFIG_NET_EMATCH_META=m CONFIG_NET_EMATCH_TEXT=m +CONFIG_NET_EMATCH_IPSET=m CONFIG_NET_CLS_ACT=y CONFIG_NET_ACT_POLICE=m CONFIG_NET_ACT_GACT=m @@ -1025,67 +1194,30 @@ CONFIG_NET_SCH_FIFO=y # CONFIG_DCB is not set CONFIG_DNS_RESOLVER=y CONFIG_BATMAN_ADV=m +CONFIG_BATMAN_ADV_BLA=y +CONFIG_BATMAN_ADV_DAT=y +CONFIG_BATMAN_ADV_NC=y # CONFIG_BATMAN_ADV_DEBUG is not set +CONFIG_OPENVSWITCH=m +CONFIG_VSOCKETS=m +CONFIG_VMWARE_VMCI_VSOCKETS=m +CONFIG_NETLINK_MMAP=y +CONFIG_NETLINK_DIAG=m CONFIG_RPS=y CONFIG_RFS_ACCEL=y CONFIG_XPS=y +CONFIG_NETPRIO_CGROUP=m +CONFIG_BQL=y
# # Network testing # # CONFIG_NET_PKTGEN is not set +# CONFIG_NET_DROP_MONITOR is not set # CONFIG_HAMRADIO is not set # CONFIG_CAN is not set -CONFIG_IRDA=m - -# -# IrDA protocols -# -CONFIG_IRLAN=m -CONFIG_IRNET=m -CONFIG_IRCOMM=m -# CONFIG_IRDA_ULTRA is not set - -# -# IrDA options -# -# CONFIG_IRDA_CACHE_LAST_LSAP is not set -# CONFIG_IRDA_FAST_RR is not set -# CONFIG_IRDA_DEBUG is not set - -# -# Infrared-port device drivers -# - -# -# SIR device drivers -# -CONFIG_IRTTY_SIR=m - -# -# Dongle support -# -# CONFIG_DONGLE is not set -CONFIG_KINGSUN_DONGLE=m -CONFIG_KSDAZZLE_DONGLE=m -CONFIG_KS959_DONGLE=m - -# -# FIR device drivers -# -CONFIG_USB_IRDA=m -CONFIG_SIGMATEL_FIR=m -CONFIG_NSC_FIR=m -CONFIG_WINBOND_FIR=m -CONFIG_TOSHIBA_FIR=m -CONFIG_SMC_IRCC_FIR=m -CONFIG_ALI_FIR=m -CONFIG_VLSI_FIR=m -CONFIG_VIA_FIR=m -CONFIG_MCS_FIR=m +# CONFIG_IRDA is not set CONFIG_BT=m -CONFIG_BT_L2CAP=y -CONFIG_BT_SCO=y CONFIG_BT_RFCOMM=m CONFIG_BT_RFCOMM_TTY=y CONFIG_BT_BNEP=m @@ -1104,11 +1236,12 @@ CONFIG_BT_HCIUART_H4=y CONFIG_BT_HCIUART_BCSP=y CONFIG_BT_HCIUART_ATH3K=y CONFIG_BT_HCIUART_LL=y +CONFIG_BT_HCIUART_3WIRE=y CONFIG_BT_HCIBCM203X=m CONFIG_BT_HCIBPA10X=m CONFIG_BT_HCIBFUSB=m -CONFIG_BT_HCIDTL1=m -CONFIG_BT_HCIBT3C=m +# CONFIG_BT_HCIDTL1 is not set +# CONFIG_BT_HCIBT3C is not set CONFIG_BT_HCIBLUECARD=m CONFIG_BT_HCIBTUART=m CONFIG_BT_HCIVHCI=m @@ -1116,9 +1249,7 @@ CONFIG_BT_MRVL=m CONFIG_BT_MRVL_SDIO=m CONFIG_BT_ATH3K=m CONFIG_BT_WILINK=m -CONFIG_AF_RXRPC=m -# CONFIG_AF_RXRPC_DEBUG is not set -CONFIG_RXKAD=m +# CONFIG_AF_RXRPC is not set CONFIG_FIB_RULES=y CONFIG_WIRELESS=y CONFIG_WIRELESS_EXT=y @@ -1130,10 +1261,11 @@ CONFIG_CFG80211=m # CONFIG_NL80211_TESTMODE is not set # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set # CONFIG_CFG80211_REG_DEBUG is not set -# CONFIG_CFG80211_DEFAULT_PS is not set +# CONFIG_CFG80211_CERTIFICATION_ONUS is not set +CONFIG_CFG80211_DEFAULT_PS=y +# CONFIG_CFG80211_DEBUGFS is not set # CONFIG_CFG80211_INTERNAL_REGDB is not set CONFIG_CFG80211_WEXT=y -CONFIG_WIRELESS_EXT_SYSFS=y CONFIG_LIB80211=m CONFIG_LIB80211_CRYPT_WEP=m CONFIG_LIB80211_CRYPT_CCMP=m @@ -1141,23 +1273,24 @@ CONFIG_LIB80211_CRYPT_TKIP=m # CONFIG_LIB80211_DEBUG is not set CONFIG_MAC80211=m CONFIG_MAC80211_HAS_RC=y +# CONFIG_MAC80211_RC_PID is not set CONFIG_MAC80211_RC_MINSTREL=y CONFIG_MAC80211_RC_MINSTREL_HT=y CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" CONFIG_MAC80211_MESH=y CONFIG_MAC80211_LEDS=y +# CONFIG_MAC80211_DEBUGFS is not set +# CONFIG_MAC80211_MESSAGE_TRACING is not set # CONFIG_MAC80211_DEBUG_MENU is not set # CONFIG_WIMAX is not set CONFIG_RFKILL=m CONFIG_RFKILL_LEDS=y CONFIG_RFKILL_INPUT=y -CONFIG_RFKILL_REGULATOR=m +CONFIG_RFKILL_GPIO=m # CONFIG_NET_9P is not set # CONFIG_CAIF is not set -CONFIG_CEPH_LIB=m -# CONFIG_CEPH_LIB_PRETTYDEBUG is not set -# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set +# CONFIG_CEPH_LIB is not set # CONFIG_NFC is not set
# @@ -1167,100 +1300,30 @@ CONFIG_CEPH_LIB=m # # Generic Driver Options # -CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -# CONFIG_DEVTMPFS is not set -# CONFIG_STANDALONE is not set -# CONFIG_PREVENT_FIRMWARE_BUILD is not set +CONFIG_UEVENT_HELPER_PATH="" +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y # CONFIG_FIRMWARE_IN_KERNEL is not set CONFIG_EXTRA_FIRMWARE="" +CONFIG_FW_LOADER_USER_HELPER=y # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set CONFIG_SYS_HYPERVISOR=y +# CONFIG_GENERIC_CPU_DEVICES is not set CONFIG_REGMAP=y CONFIG_REGMAP_I2C=m -CONFIG_CONNECTOR=m -CONFIG_MTD=m -CONFIG_MTD_TESTS=m -# CONFIG_MTD_REDBOOT_PARTS is not set -CONFIG_MTD_AR7_PARTS=m - -# -# User Modules And Translation Layers -# -CONFIG_MTD_CHAR=m -CONFIG_MTD_BLKDEVS=m -CONFIG_MTD_BLOCK=m -# CONFIG_MTD_BLOCK_RO is not set -# CONFIG_FTL is not set -# CONFIG_NFTL is not set -# CONFIG_INFTL is not set -# CONFIG_RFD_FTL is not set -# CONFIG_SSFDC is not set -CONFIG_SM_FTL=m -# CONFIG_MTD_OOPS is not set -# CONFIG_MTD_SWAP is not set - -# -# RAM/ROM/Flash chip drivers -# -# CONFIG_MTD_CFI is not set -# CONFIG_MTD_JEDECPROBE is not set -CONFIG_MTD_MAP_BANK_WIDTH_1=y -CONFIG_MTD_MAP_BANK_WIDTH_2=y -CONFIG_MTD_MAP_BANK_WIDTH_4=y -# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set -CONFIG_MTD_CFI_I1=y -CONFIG_MTD_CFI_I2=y -# CONFIG_MTD_CFI_I4 is not set -# CONFIG_MTD_CFI_I8 is not set -# CONFIG_MTD_RAM is not set -# CONFIG_MTD_ROM is not set -# CONFIG_MTD_ABSENT is not set - -# -# Mapping drivers for chip access -# -# CONFIG_MTD_COMPLEX_MAPPINGS is not set -CONFIG_MTD_PHYSMAP=m -# CONFIG_MTD_PHYSMAP_COMPAT is not set -# CONFIG_MTD_TS5500 is not set -# CONFIG_MTD_INTEL_VR_NOR is not set -# CONFIG_MTD_PLATRAM is not set - -# -# Self-contained MTD device drivers -# -# CONFIG_MTD_PMC551 is not set -# CONFIG_MTD_SLRAM is not set -# CONFIG_MTD_PHRAM is not set -# CONFIG_MTD_MTDRAM is not set -# CONFIG_MTD_BLOCK2MTD is not set - -# -# Disk-On-Chip Device Drivers -# -# CONFIG_MTD_DOC2000 is not set -# CONFIG_MTD_DOC2001 is not set -# CONFIG_MTD_DOC2001PLUS is not set -# CONFIG_MTD_DOCG3 is not set -CONFIG_MTD_NAND_ECC=m -# CONFIG_MTD_NAND_ECC_SMC is not set -# CONFIG_MTD_NAND is not set -# CONFIG_MTD_ONENAND is not set - -# -# LPDDR flash memory drivers -# -CONFIG_MTD_LPDDR=m -CONFIG_MTD_QINFO_PROBE=m -CONFIG_MTD_UBI=m -CONFIG_MTD_UBI_WL_THRESHOLD=4096 -CONFIG_MTD_UBI_BEB_RESERVE=1 -# CONFIG_MTD_UBI_GLUEBI is not set -# CONFIG_MTD_UBI_DEBUG is not set +CONFIG_REGMAP_IRQ=y +CONFIG_DMA_SHARED_BUFFER=y + +# +# Bus devices +# +CONFIG_CONNECTOR=y +CONFIG_PROC_EVENTS=y +# CONFIG_MTD is not set CONFIG_PARPORT=m CONFIG_PARPORT_PC=m CONFIG_PARPORT_SERIAL=m @@ -1279,67 +1342,75 @@ CONFIG_PNP=y # CONFIG_ISAPNP=y CONFIG_PNPBIOS=y -CONFIG_PNPBIOS_PROC_FS=y +# CONFIG_PNPBIOS_PROC_FS is not set CONFIG_PNPACPI=y CONFIG_BLK_DEV=y CONFIG_BLK_DEV_FD=m -# CONFIG_BLK_DEV_XD is not set # CONFIG_PARIDE is not set +CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m CONFIG_BLK_CPQ_DA=m CONFIG_BLK_CPQ_CISS_DA=m # CONFIG_CISS_SCSI_TAPE is not set CONFIG_BLK_DEV_DAC960=m -# CONFIG_BLK_DEV_UMEM is not set +CONFIG_BLK_DEV_UMEM=m # CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 CONFIG_BLK_DEV_CRYPTOLOOP=m # CONFIG_BLK_DEV_DRBD is not set -CONFIG_BLK_DEV_NBD=m -CONFIG_BLK_DEV_OSD=m +# CONFIG_BLK_DEV_NBD is not set +CONFIG_BLK_DEV_NVME=m +# CONFIG_BLK_DEV_OSD is not set CONFIG_BLK_DEV_SX8=m -# CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_COUNT=8 +CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=16384 # CONFIG_BLK_DEV_XIP is not set # CONFIG_CDROM_PKTCDVD is not set -CONFIG_ATA_OVER_ETH=m -CONFIG_XEN_BLKDEV_FRONTEND=y -CONFIG_XEN_BLKDEV_BACKEND=y +# CONFIG_ATA_OVER_ETH is not set +CONFIG_XEN_BLKDEV_FRONTEND=m +CONFIG_XEN_BLKDEV_BACKEND=m CONFIG_VIRTIO_BLK=m # CONFIG_BLK_DEV_HD is not set -CONFIG_BLK_DEV_RBD=m +# CONFIG_BLK_DEV_RBD is not set +CONFIG_BLK_DEV_RSXX=m + +# +# Misc devices +# CONFIG_SENSORS_LIS3LV02D=m -CONFIG_MISC_DEVICES=y # CONFIG_AD525X_DPOT is not set -# CONFIG_IBM_ASM is not set +# CONFIG_ATMEL_PWM is not set +CONFIG_DUMMY_IRQ=m +CONFIG_IBM_ASM=m # CONFIG_PHANTOM is not set # CONFIG_INTEL_MID_PTI is not set # CONFIG_SGI_IOC4 is not set CONFIG_TIFM_CORE=m CONFIG_TIFM_7XX1=m CONFIG_ICS932S401=m +# CONFIG_ATMEL_SSC is not set CONFIG_ENCLOSURE_SERVICES=m CONFIG_CS5535_MFGPT=m CONFIG_CS5535_MFGPT_DEFAULT_IRQ=7 CONFIG_CS5535_CLOCK_EVENT_SRC=m CONFIG_HP_ILO=m -CONFIG_APDS9802ALS=m -CONFIG_ISL29003=m -CONFIG_ISL29020=m -CONFIG_SENSORS_TSL2550=m -CONFIG_SENSORS_BH1780=m -CONFIG_SENSORS_BH1770=m -CONFIG_SENSORS_APDS990X=m -CONFIG_HMC6352=m +# CONFIG_APDS9802ALS is not set +# CONFIG_ISL29003 is not set +# CONFIG_ISL29020 is not set +# CONFIG_SENSORS_TSL2550 is not set +# CONFIG_SENSORS_BH1780 is not set +# CONFIG_SENSORS_BH1770 is not set +# CONFIG_SENSORS_APDS990X is not set +# CONFIG_HMC6352 is not set CONFIG_DS1682=m CONFIG_VMWARE_BALLOON=m -CONFIG_BMP085=m +CONFIG_BMP085=y +CONFIG_BMP085_I2C=m CONFIG_PCH_PHUB=m CONFIG_USB_SWITCH_FSA9480=m -CONFIG_C2PORT=m -CONFIG_C2PORT_DURAMAR_2150=m +# CONFIG_SRAM is not set +# CONFIG_C2PORT is not set
# # EEPROM support @@ -1351,62 +1422,63 @@ CONFIG_EEPROM_93CX6=m CONFIG_CB710_CORE=m # CONFIG_CB710_DEBUG is not set CONFIG_CB710_DEBUG_ASSUMPTIONS=y -CONFIG_IWMC3200TOP=m -# CONFIG_IWMC3200TOP_DEBUG is not set -# CONFIG_IWMC3200TOP_DEBUGFS is not set
# # Texas Instruments shared transport line discipline # CONFIG_TI_ST=m -CONFIG_SENSORS_LIS3_I2C=m +# CONFIG_SENSORS_LIS3_I2C is not set
# # Altera FPGA firmware download module # -# CONFIG_ALTERA_STAPL is not set +CONFIG_ALTERA_STAPL=m +CONFIG_INTEL_MEI=m +CONFIG_INTEL_MEI_ME=m +CONFIG_VMWARE_VMCI=m CONFIG_HAVE_IDE=y # CONFIG_IDE is not set
# # SCSI device support # -CONFIG_SCSI_MOD=m +CONFIG_SCSI_MOD=y CONFIG_RAID_ATTRS=m -CONFIG_SCSI=m +CONFIG_SCSI=y CONFIG_SCSI_DMA=y -# CONFIG_SCSI_TGT is not set +CONFIG_SCSI_TGT=m CONFIG_SCSI_NETLINK=y CONFIG_SCSI_PROC_FS=y
# # SCSI support type (disk, tape, CD-ROM) # -CONFIG_BLK_DEV_SD=m -# CONFIG_CHR_DEV_ST is not set -# CONFIG_CHR_DEV_OSST is not set -CONFIG_BLK_DEV_SR=m +CONFIG_BLK_DEV_SD=y +CONFIG_CHR_DEV_ST=m +CONFIG_CHR_DEV_OSST=m +CONFIG_BLK_DEV_SR=y CONFIG_BLK_DEV_SR_VENDOR=y -CONFIG_CHR_DEV_SG=m +CONFIG_CHR_DEV_SG=y CONFIG_CHR_DEV_SCH=m CONFIG_SCSI_ENCLOSURE=m CONFIG_SCSI_MULTI_LUN=y -# CONFIG_SCSI_CONSTANTS is not set -# CONFIG_SCSI_LOGGING is not set -# CONFIG_SCSI_SCAN_ASYNC is not set -CONFIG_SCSI_WAIT_SCAN=m +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_SCAN_ASYNC=y
# # SCSI Transports # CONFIG_SCSI_SPI_ATTRS=m CONFIG_SCSI_FC_ATTRS=m +CONFIG_SCSI_FC_TGT_ATTRS=y CONFIG_SCSI_ISCSI_ATTRS=m CONFIG_SCSI_SAS_ATTRS=m CONFIG_SCSI_SAS_LIBSAS=m CONFIG_SCSI_SAS_ATA=y CONFIG_SCSI_SAS_HOST_SMP=y CONFIG_SCSI_SRP_ATTRS=m +CONFIG_SCSI_SRP_TGT_ATTRS=y CONFIG_SCSI_LOWLEVEL=y CONFIG_ISCSI_TCP=m CONFIG_ISCSI_BOOT_SYSFS=m @@ -1426,25 +1498,23 @@ CONFIG_SCSI_AHA1542=m CONFIG_SCSI_AHA1740=m CONFIG_SCSI_AACRAID=m CONFIG_SCSI_AIC7XXX=m -CONFIG_AIC7XXX_CMDS_PER_DEVICE=253 -CONFIG_AIC7XXX_RESET_DELAY_MS=15000 -# CONFIG_AIC7XXX_BUILD_FIRMWARE is not set -# CONFIG_AIC7XXX_DEBUG_ENABLE is not set +CONFIG_AIC7XXX_CMDS_PER_DEVICE=32 +CONFIG_AIC7XXX_RESET_DELAY_MS=5000 +CONFIG_AIC7XXX_DEBUG_ENABLE=y CONFIG_AIC7XXX_DEBUG_MASK=0 -# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set +CONFIG_AIC7XXX_REG_PRETTY_PRINT=y # CONFIG_SCSI_AIC7XXX_OLD is not set CONFIG_SCSI_AIC79XX=m CONFIG_AIC79XX_CMDS_PER_DEVICE=32 -CONFIG_AIC79XX_RESET_DELAY_MS=15000 -# CONFIG_AIC79XX_BUILD_FIRMWARE is not set +CONFIG_AIC79XX_RESET_DELAY_MS=4000 # CONFIG_AIC79XX_DEBUG_ENABLE is not set CONFIG_AIC79XX_DEBUG_MASK=0 # CONFIG_AIC79XX_REG_PRETTY_PRINT is not set CONFIG_SCSI_AIC94XX=m # CONFIG_AIC94XX_DEBUG is not set CONFIG_SCSI_MVSAS=m -CONFIG_SCSI_MVSAS_DEBUG=y -# CONFIG_SCSI_MVSAS_TASKLET is not set +# CONFIG_SCSI_MVSAS_DEBUG is not set +CONFIG_SCSI_MVSAS_TASKLET=y CONFIG_SCSI_MVUMI=m CONFIG_SCSI_DPT_I2O=m CONFIG_SCSI_ADVANSYS=m @@ -1458,10 +1528,17 @@ CONFIG_MEGARAID_SAS=m CONFIG_SCSI_MPT2SAS=m CONFIG_SCSI_MPT2SAS_MAX_SGE=128 # CONFIG_SCSI_MPT2SAS_LOGGING is not set +CONFIG_SCSI_MPT3SAS=m +CONFIG_SCSI_MPT3SAS_MAX_SGE=128 +# CONFIG_SCSI_MPT3SAS_LOGGING is not set +CONFIG_SCSI_UFSHCD=m +CONFIG_SCSI_UFSHCD_PCI=m +CONFIG_SCSI_UFSHCD_PLATFORM=m CONFIG_SCSI_HPTIOP=m CONFIG_SCSI_BUSLOGIC=m -CONFIG_SCSI_FLASHPOINT=y +# CONFIG_SCSI_FLASHPOINT is not set CONFIG_VMWARE_PVSCSI=m +CONFIG_HYPERV_STORAGE=m CONFIG_LIBFC=m CONFIG_LIBFCOE=m CONFIG_FCOE=m @@ -1470,18 +1547,14 @@ CONFIG_SCSI_DMX3191D=m CONFIG_SCSI_DTC3280=m CONFIG_SCSI_EATA=m CONFIG_SCSI_EATA_TAGGED_QUEUE=y -CONFIG_SCSI_EATA_LINKED_COMMANDS=y +# CONFIG_SCSI_EATA_LINKED_COMMANDS is not set CONFIG_SCSI_EATA_MAX_TAGS=16 CONFIG_SCSI_FUTURE_DOMAIN=m -CONFIG_SCSI_FD_MCS=m CONFIG_SCSI_GDTH=m CONFIG_SCSI_ISCI=m CONFIG_SCSI_GENERIC_NCR5380=m CONFIG_SCSI_GENERIC_NCR5380_MMIO=m -CONFIG_SCSI_GENERIC_NCR53C400=y -CONFIG_SCSI_IBMMCA=m -# CONFIG_IBMMCA_SCSI_ORDER_STANDARD is not set -# CONFIG_IBMMCA_SCSI_DEV_RESET is not set +# CONFIG_SCSI_GENERIC_NCR53C400 is not set CONFIG_SCSI_IPS=m CONFIG_SCSI_INITIO=m CONFIG_SCSI_INIA100=m @@ -1490,7 +1563,6 @@ CONFIG_SCSI_IMM=m # CONFIG_SCSI_IZIP_EPP16 is not set # CONFIG_SCSI_IZIP_SLOW_CTR is not set CONFIG_SCSI_NCR53C406A=m -CONFIG_SCSI_NCR_D700=m CONFIG_SCSI_STEX=m CONFIG_SCSI_SYM53C8XX_2=m CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 @@ -1500,24 +1572,21 @@ CONFIG_SCSI_SYM53C8XX_MMIO=y CONFIG_SCSI_IPR=m CONFIG_SCSI_IPR_TRACE=y CONFIG_SCSI_IPR_DUMP=y -CONFIG_SCSI_NCR_Q720=m -CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=8 -CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32 -CONFIG_SCSI_NCR53C8XX_SYNC=20 CONFIG_SCSI_PAS16=m CONFIG_SCSI_QLOGIC_FAS=m CONFIG_SCSI_QLOGIC_1280=m CONFIG_SCSI_QLA_FC=m CONFIG_SCSI_QLA_ISCSI=m CONFIG_SCSI_LPFC=m +# CONFIG_SCSI_LPFC_DEBUG_FS is not set CONFIG_SCSI_SIM710=m CONFIG_SCSI_SYM53C416=m CONFIG_SCSI_DC395x=m CONFIG_SCSI_DC390T=m CONFIG_SCSI_T128=m CONFIG_SCSI_U14_34F=m -CONFIG_SCSI_U14_34F_TAGGED_QUEUE=y -CONFIG_SCSI_U14_34F_LINKED_COMMANDS=y +# CONFIG_SCSI_U14_34F_TAGGED_QUEUE is not set +# CONFIG_SCSI_U14_34F_LINKED_COMMANDS is not set CONFIG_SCSI_U14_34F_MAX_TAGS=8 CONFIG_SCSI_ULTRASTOR=m CONFIG_SCSI_NSP32=m @@ -1526,13 +1595,15 @@ CONFIG_SCSI_PMCRAID=m CONFIG_SCSI_PM8001=m # CONFIG_SCSI_SRP is not set CONFIG_SCSI_BFA_FC=m +CONFIG_SCSI_VIRTIO=m +CONFIG_SCSI_CHELSIO_FCOE=m CONFIG_SCSI_LOWLEVEL_PCMCIA=y CONFIG_PCMCIA_AHA152X=m CONFIG_PCMCIA_FDOMAIN=m CONFIG_PCMCIA_NINJA_SCSI=m CONFIG_PCMCIA_QLOGIC=m CONFIG_PCMCIA_SYM53C500=m -CONFIG_SCSI_DH=m +CONFIG_SCSI_DH=y CONFIG_SCSI_DH_RDAC=m CONFIG_SCSI_DH_HP_SW=m CONFIG_SCSI_DH_EMC=m @@ -1541,16 +1612,17 @@ CONFIG_SCSI_OSD_INITIATOR=m CONFIG_SCSI_OSD_ULD=m CONFIG_SCSI_OSD_DPRINT_SENSE=1 # CONFIG_SCSI_OSD_DEBUG is not set -CONFIG_ATA=m +CONFIG_ATA=y # CONFIG_ATA_NONSTANDARD is not set CONFIG_ATA_VERBOSE_ERROR=y CONFIG_ATA_ACPI=y +CONFIG_SATA_ZPODD=y CONFIG_SATA_PMP=y
# # Controllers with non-SFF native interface # -CONFIG_SATA_AHCI=m +CONFIG_SATA_AHCI=y CONFIG_SATA_AHCI_PLATFORM=m CONFIG_SATA_INIC162X=m CONFIG_SATA_ACARD_AHCI=m @@ -1568,7 +1640,8 @@ CONFIG_ATA_BMDMA=y # # SATA SFF controllers with BMDMA # -CONFIG_ATA_PIIX=m +CONFIG_ATA_PIIX=y +CONFIG_SATA_HIGHBANK=m CONFIG_SATA_MV=m CONFIG_SATA_NV=m CONFIG_SATA_PROMISE=m @@ -1591,7 +1664,7 @@ CONFIG_PATA_ATP867X=m CONFIG_PATA_CMD64X=m CONFIG_PATA_CS5520=m CONFIG_PATA_CS5530=m -CONFIG_PATA_CS5535=m +# CONFIG_PATA_CS5535 is not set CONFIG_PATA_CS5536=m CONFIG_PATA_CYPRESS=m CONFIG_PATA_EFAR=m @@ -1599,7 +1672,7 @@ CONFIG_PATA_HPT366=m CONFIG_PATA_HPT37X=m CONFIG_PATA_HPT3X2N=m CONFIG_PATA_HPT3X3=m -CONFIG_PATA_HPT3X3_DMA=y +# CONFIG_PATA_HPT3X3_DMA is not set CONFIG_PATA_IT8213=m CONFIG_PATA_IT821X=m CONFIG_PATA_JMICRON=m @@ -1632,6 +1705,7 @@ CONFIG_PATA_MPIIX=m CONFIG_PATA_NS87410=m CONFIG_PATA_OPTI=m CONFIG_PATA_PCMCIA=m +CONFIG_PATA_PLATFORM=m CONFIG_PATA_QDI=m CONFIG_PATA_RZ1000=m CONFIG_PATA_WINBOND_VLB=m @@ -1643,75 +1717,94 @@ CONFIG_PATA_ACPI=m CONFIG_ATA_GENERIC=m CONFIG_PATA_LEGACY=m CONFIG_MD=y -CONFIG_BLK_DEV_MD=m +CONFIG_BLK_DEV_MD=y +CONFIG_MD_AUTODETECT=y CONFIG_MD_LINEAR=m CONFIG_MD_RAID0=m CONFIG_MD_RAID1=m CONFIG_MD_RAID10=m CONFIG_MD_RAID456=m -# CONFIG_MULTICORE_RAID456 is not set CONFIG_MD_MULTIPATH=m -# CONFIG_MD_FAULTY is not set -CONFIG_BLK_DEV_DM=m +CONFIG_MD_FAULTY=m +CONFIG_BCACHE=m +# CONFIG_BCACHE_DEBUG is not set +# CONFIG_BCACHE_EDEBUG is not set +# CONFIG_BCACHE_CLOSURES_DEBUG is not set +CONFIG_BLK_DEV_DM_BUILTIN=y +CONFIG_BLK_DEV_DM=y # CONFIG_DM_DEBUG is not set CONFIG_DM_BUFIO=m +CONFIG_DM_BIO_PRISON=m CONFIG_DM_PERSISTENT_DATA=m CONFIG_DM_CRYPT=m -CONFIG_DM_SNAPSHOT=m -CONFIG_DM_THIN_PROVISIONING=m -# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set -# CONFIG_DM_DEBUG_SPACE_MAPS is not set -CONFIG_DM_MIRROR=m +CONFIG_DM_SNAPSHOT=y +# CONFIG_DM_THIN_PROVISIONING is not set +CONFIG_DM_CACHE=m +CONFIG_DM_CACHE_MQ=m +CONFIG_DM_CACHE_CLEANER=m +CONFIG_DM_MIRROR=y CONFIG_DM_RAID=m CONFIG_DM_LOG_USERSPACE=m -CONFIG_DM_ZERO=m +CONFIG_DM_ZERO=y CONFIG_DM_MULTIPATH=m CONFIG_DM_MULTIPATH_QL=m CONFIG_DM_MULTIPATH_ST=m -CONFIG_DM_DELAY=m +# CONFIG_DM_DELAY is not set CONFIG_DM_UEVENT=y -CONFIG_DM_FLAKEY=m +# CONFIG_DM_FLAKEY is not set +CONFIG_DM_VERITY=m # CONFIG_TARGET_CORE is not set CONFIG_FUSION=y CONFIG_FUSION_SPI=m CONFIG_FUSION_FC=m CONFIG_FUSION_SAS=m -CONFIG_FUSION_MAX_SGE=128 +CONFIG_FUSION_MAX_SGE=40 CONFIG_FUSION_CTL=m -# CONFIG_FUSION_LOGGING is not set +CONFIG_FUSION_LOGGING=y
# # IEEE 1394 (FireWire) support # CONFIG_FIREWIRE=m CONFIG_FIREWIRE_OHCI=m -CONFIG_FIREWIRE_OHCI_DEBUG=y CONFIG_FIREWIRE_SBP2=m -CONFIG_FIREWIRE_NET=m +# CONFIG_FIREWIRE_NET is not set # CONFIG_FIREWIRE_NOSY is not set -# CONFIG_I2O is not set -# CONFIG_MACINTOSH_DRIVERS is not set +CONFIG_I2O=m +# CONFIG_I2O_LCT_NOTIFY_ON_CHANGES is not set +CONFIG_I2O_EXT_ADAPTEC=y +CONFIG_I2O_EXT_ADAPTEC_DMA64=y +CONFIG_I2O_CONFIG=m +CONFIG_I2O_CONFIG_OLD_IOCTL=y +CONFIG_I2O_BUS=m +CONFIG_I2O_BLOCK=m +CONFIG_I2O_SCSI=m +CONFIG_I2O_PROC=m +CONFIG_MACINTOSH_DRIVERS=y +# CONFIG_MAC_EMUMOUSEBTN is not set CONFIG_NETDEVICES=y CONFIG_NET_CORE=y CONFIG_BONDING=m CONFIG_DUMMY=m -CONFIG_EQUALIZER=m +# CONFIG_EQUALIZER is not set +# CONFIG_NET_FC is not set +CONFIG_MII=m +CONFIG_IFB=m +# CONFIG_NET_TEAM is not set +CONFIG_MACVLAN=m +CONFIG_MACVTAP=m +CONFIG_VXLAN=m +CONFIG_NETCONSOLE=m +CONFIG_NETCONSOLE_DYNAMIC=y +CONFIG_NETPOLL=y +CONFIG_NETPOLL_TRAP=y +CONFIG_NET_POLL_CONTROLLER=y CONFIG_IMQ=m # CONFIG_IMQ_BEHAVIOR_AA is not set CONFIG_IMQ_BEHAVIOR_AB=y # CONFIG_IMQ_BEHAVIOR_BA is not set # CONFIG_IMQ_BEHAVIOR_BB is not set CONFIG_IMQ_NUM_DEVS=2 -# CONFIG_NET_FC is not set -CONFIG_MII=m -CONFIG_IEEE802154_DRIVERS=m -CONFIG_IEEE802154_FAKEHARD=m -CONFIG_IFB=m -CONFIG_MACVLAN=m -CONFIG_MACVTAP=m -# CONFIG_NETCONSOLE is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set CONFIG_TUN=m CONFIG_VETH=m CONFIG_VIRTIO_NET=m @@ -1722,22 +1815,14 @@ CONFIG_ATM_DRIVERS=y CONFIG_ATM_TCP=m CONFIG_ATM_LANAI=m CONFIG_ATM_ENI=m -CONFIG_ATM_ENI_DEBUG=y -CONFIG_ATM_ENI_TUNE_BURST=y -CONFIG_ATM_ENI_BURST_TX_16W=y -CONFIG_ATM_ENI_BURST_TX_8W=y -CONFIG_ATM_ENI_BURST_TX_4W=y -CONFIG_ATM_ENI_BURST_TX_2W=y -CONFIG_ATM_ENI_BURST_RX_16W=y -CONFIG_ATM_ENI_BURST_RX_8W=y -CONFIG_ATM_ENI_BURST_RX_4W=y -CONFIG_ATM_ENI_BURST_RX_2W=y +# CONFIG_ATM_ENI_DEBUG is not set +# CONFIG_ATM_ENI_TUNE_BURST is not set CONFIG_ATM_FIRESTREAM=m CONFIG_ATM_ZATM=m # CONFIG_ATM_ZATM_DEBUG is not set CONFIG_ATM_NICSTAR=m -CONFIG_ATM_NICSTAR_USE_SUNI=y -CONFIG_ATM_NICSTAR_USE_IDT77105=y +# CONFIG_ATM_NICSTAR_USE_SUNI is not set +# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set CONFIG_ATM_IDT77252=m # CONFIG_ATM_IDT77252_DEBUG is not set # CONFIG_ATM_IDT77252_RCV_ALL is not set @@ -1749,20 +1834,30 @@ CONFIG_ATM_HORIZON=m CONFIG_ATM_IA=m # CONFIG_ATM_IA_DEBUG is not set CONFIG_ATM_FORE200E=m -CONFIG_ATM_FORE200E_USE_TASKLET=y +# CONFIG_ATM_FORE200E_USE_TASKLET is not set CONFIG_ATM_FORE200E_TX_RETRY=16 CONFIG_ATM_FORE200E_DEBUG=0 CONFIG_ATM_HE=m -CONFIG_ATM_HE_USE_SUNI=y +# CONFIG_ATM_HE_USE_SUNI is not set CONFIG_ATM_SOLOS=m
# # CAIF transport drivers # +CONFIG_VHOST_NET=m +CONFIG_VHOST_RING=m + +# +# Distributed Switch Architecture drivers +# +CONFIG_NET_DSA_MV88E6XXX=y +CONFIG_NET_DSA_MV88E6060=y +CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y +CONFIG_NET_DSA_MV88E6131=y +CONFIG_NET_DSA_MV88E6123_61_65=y CONFIG_ETHERNET=y CONFIG_MDIO=m CONFIG_NET_VENDOR_3COM=y -CONFIG_EL1=m CONFIG_EL3=m CONFIG_3C515=m CONFIG_PCMCIA_3C574=m @@ -1778,7 +1873,6 @@ CONFIG_NET_VENDOR_AMD=y CONFIG_AMD8111_ETH=m CONFIG_LANCE=m CONFIG_PCNET32=m -CONFIG_DEPCA=m CONFIG_PCMCIA_NMCLAN=m CONFIG_NI65=m CONFIG_NET_VENDOR_ATHEROS=y @@ -1786,6 +1880,10 @@ CONFIG_ATL2=m CONFIG_ATL1=m CONFIG_ATL1E=m CONFIG_ATL1C=m +CONFIG_ALX=m +CONFIG_NET_CADENCE=y +CONFIG_ARM_AT91_ETHER=m +CONFIG_MACB=m CONFIG_NET_VENDOR_BROADCOM=y CONFIG_B44=m CONFIG_B44_PCI_AUTOSELECT=y @@ -1795,8 +1893,10 @@ CONFIG_BNX2=m CONFIG_CNIC=m CONFIG_TIGON3=m CONFIG_BNX2X=m +CONFIG_BNX2X_SRIOV=y CONFIG_NET_VENDOR_BROCADE=y CONFIG_BNA=m +CONFIG_NET_CALXEDA_XGMAC=m CONFIG_NET_VENDOR_CHELSIO=y CONFIG_CHELSIO_T1=m CONFIG_CHELSIO_T1_1G=y @@ -1805,26 +1905,25 @@ CONFIG_CHELSIO_T4=m CONFIG_CHELSIO_T4VF=m CONFIG_NET_VENDOR_CIRRUS=y CONFIG_CS89x0=m +# CONFIG_CS89x0_PLATFORM is not set CONFIG_NET_VENDOR_CISCO=y CONFIG_ENIC=m CONFIG_DNET=m CONFIG_NET_VENDOR_DEC=y -CONFIG_EWRK3=m CONFIG_NET_TULIP=y CONFIG_DE2104X=m CONFIG_DE2104X_DSL=0 CONFIG_TULIP=m # CONFIG_TULIP_MWI is not set -# CONFIG_TULIP_MMIO is not set -# CONFIG_TULIP_NAPI is not set +CONFIG_TULIP_MMIO=y +CONFIG_TULIP_NAPI=y +CONFIG_TULIP_NAPI_HW_MITIGATION=y CONFIG_DE4X5=m CONFIG_WINBOND_840=m CONFIG_DM9102=m CONFIG_ULI526X=m CONFIG_PCMCIA_XIRCOM=m CONFIG_NET_VENDOR_DLINK=y -CONFIG_DE600=m -CONFIG_DE620=m CONFIG_DL2K=m CONFIG_SUNDANCE=m # CONFIG_SUNDANCE_MMIO is not set @@ -1835,47 +1934,32 @@ CONFIG_S2IO=m CONFIG_VXGE=m # CONFIG_VXGE_DEBUG_TRACE_ALL is not set CONFIG_NET_VENDOR_FUJITSU=y -CONFIG_AT1700=m CONFIG_PCMCIA_FMVJ18X=m -CONFIG_ETH16I=m CONFIG_NET_VENDOR_HP=y CONFIG_HP100=m -CONFIG_NET_VENDOR_IBM=y -# CONFIG_IBM_EMAC_ZMII is not set -# CONFIG_IBM_EMAC_RGMII is not set -# CONFIG_IBM_EMAC_TAH is not set -# CONFIG_IBM_EMAC_EMAC4 is not set -# CONFIG_IBM_EMAC_NO_FLOW_CTRL is not set -# CONFIG_IBM_EMAC_MAL_CLR_ICINTSTAT is not set -# CONFIG_IBM_EMAC_MAL_COMMON_ERR is not set CONFIG_NET_VENDOR_INTEL=y CONFIG_E100=m CONFIG_E1000=m CONFIG_E1000E=m CONFIG_IGB=m +CONFIG_IGB_HWMON=y CONFIG_IGB_DCA=y CONFIG_IGBVF=m CONFIG_IXGB=m CONFIG_IXGBE=m +CONFIG_IXGBE_HWMON=y CONFIG_IXGBE_DCA=y CONFIG_IXGBEVF=m CONFIG_NET_VENDOR_I825XX=y -CONFIG_ELPLUS=m -CONFIG_EL16=m -CONFIG_ELMC=m -CONFIG_ELMC_II=m -CONFIG_APRICOT=m -CONFIG_EEXPRESS=m -CONFIG_EEXPRESS_PRO=m -CONFIG_LP486E=m -CONFIG_NI52=m -CONFIG_ZNET=m CONFIG_IP1000=m CONFIG_JME=m CONFIG_NET_VENDOR_MARVELL=y +CONFIG_MVMDIO=m CONFIG_SKGE=m +# CONFIG_SKGE_DEBUG is not set CONFIG_SKGE_GENESIS=y CONFIG_SKY2=m +# CONFIG_SKY2_DEBUG is not set CONFIG_NET_VENDOR_MELLANOX=y CONFIG_MLX4_EN=m CONFIG_MLX4_CORE=m @@ -1889,61 +1973,47 @@ CONFIG_MYRI10GE=m CONFIG_MYRI10GE_DCA=y CONFIG_FEALNX=m CONFIG_NET_VENDOR_NATSEMI=y -CONFIG_IBMLANA=m CONFIG_NATSEMI=m CONFIG_NS83820=m CONFIG_NET_VENDOR_8390=y -CONFIG_EL2=m -CONFIG_AC3200=m CONFIG_PCMCIA_AXNET=m -CONFIG_E2100=m -CONFIG_ES3210=m -CONFIG_HPLAN_PLUS=m -CONFIG_HPLAN=m -CONFIG_LNE390=m CONFIG_NE2000=m -CONFIG_NE2_MCA=m CONFIG_NE2K_PCI=m -CONFIG_NE3210=m CONFIG_PCMCIA_PCNET=m -CONFIG_ULTRAMCA=m CONFIG_ULTRA=m -CONFIG_ULTRA32=m CONFIG_WD80x3=m CONFIG_NET_VENDOR_NVIDIA=y CONFIG_FORCEDETH=m CONFIG_NET_VENDOR_OKI=y CONFIG_PCH_GBE=m CONFIG_ETHOC=m -CONFIG_NET_PACKET_ENGINE=y -CONFIG_HAMACHI=m -CONFIG_YELLOWFIN=m +# CONFIG_NET_PACKET_ENGINE is not set CONFIG_NET_VENDOR_QLOGIC=y CONFIG_QLA3XXX=m CONFIG_QLCNIC=m +CONFIG_QLCNIC_SRIOV=y CONFIG_QLGE=m CONFIG_NETXEN_NIC=m -CONFIG_NET_VENDOR_RACAL=y CONFIG_NET_VENDOR_REALTEK=y CONFIG_ATP=m CONFIG_8139CP=m CONFIG_8139TOO=m # CONFIG_8139TOO_PIO is not set -CONFIG_8139TOO_TUNE_TWISTER=y +# CONFIG_8139TOO_TUNE_TWISTER is not set CONFIG_8139TOO_8129=y # CONFIG_8139_OLD_RX_RESET is not set CONFIG_R8169=m CONFIG_NET_VENDOR_RDC=y CONFIG_R6040=m CONFIG_NET_VENDOR_SEEQ=y -CONFIG_SEEQ8005=m CONFIG_NET_VENDOR_SILAN=y CONFIG_SC92031=m CONFIG_NET_VENDOR_SIS=y CONFIG_SIS900=m CONFIG_SIS190=m CONFIG_SFC=m -CONFIG_SFC_MTD=y +CONFIG_SFC_MCDI_MON=y +CONFIG_SFC_SRIOV=y CONFIG_NET_VENDOR_SMSC=y CONFIG_SMC9194=m CONFIG_PCMCIA_SMC91C92=m @@ -1951,9 +2021,10 @@ CONFIG_EPIC100=m CONFIG_SMSC9420=m CONFIG_NET_VENDOR_STMICRO=y CONFIG_STMMAC_ETH=m +CONFIG_STMMAC_PLATFORM=y +CONFIG_STMMAC_PCI=y +# CONFIG_STMMAC_DEBUG_FS is not set # CONFIG_STMMAC_DA is not set -CONFIG_STMMAC_RING=y -# CONFIG_STMMAC_CHAINED is not set CONFIG_NET_VENDOR_SUN=y CONFIG_HAPPYMEAL=m CONFIG_SUNGEM=m @@ -1967,16 +2038,24 @@ CONFIG_NET_VENDOR_VIA=y CONFIG_VIA_RHINE=m CONFIG_VIA_RHINE_MMIO=y CONFIG_VIA_VELOCITY=m +CONFIG_NET_VENDOR_WIZNET=y +CONFIG_WIZNET_W5100=m +CONFIG_WIZNET_W5300=m +# CONFIG_WIZNET_BUS_DIRECT is not set +# CONFIG_WIZNET_BUS_INDIRECT is not set +CONFIG_WIZNET_BUS_ANY=y CONFIG_NET_VENDOR_XIRCOM=y CONFIG_PCMCIA_XIRC2PS=m # CONFIG_FDDI is not set # CONFIG_HIPPI is not set -CONFIG_NET_SB1000=m +# CONFIG_NET_SB1000 is not set CONFIG_PHYLIB=y
# # MII PHY device drivers # +CONFIG_AT803X_PHY=m +CONFIG_AMD_PHY=m CONFIG_MARVELL_PHY=m CONFIG_DAVICOM_PHY=m CONFIG_QSEMI_PHY=m @@ -1985,15 +2064,16 @@ CONFIG_CICADA_PHY=m CONFIG_VITESSE_PHY=m CONFIG_SMSC_PHY=m CONFIG_BROADCOM_PHY=m +CONFIG_BCM87XX_PHY=m CONFIG_ICPLUS_PHY=m CONFIG_REALTEK_PHY=m CONFIG_NATIONAL_PHY=m CONFIG_STE10XP=m CONFIG_LSI_ET1011C_PHY=m CONFIG_MICREL_PHY=m -# CONFIG_FIXED_PHY is not set +CONFIG_FIXED_PHY=y CONFIG_MDIO_BITBANG=m -CONFIG_MDIO_GPIO=m +# CONFIG_MDIO_GPIO is not set # CONFIG_PLIP is not set CONFIG_PPP=m CONFIG_PPP_BSDCOMP=m @@ -2007,12 +2087,8 @@ CONFIG_PPTP=m CONFIG_PPPOL2TP=m CONFIG_PPP_ASYNC=m CONFIG_PPP_SYNC_TTY=m -CONFIG_SLIP=m +# CONFIG_SLIP is not set CONFIG_SLHC=m -CONFIG_SLIP_COMPRESSED=y -CONFIG_SLIP_SMART=y -CONFIG_SLIP_MODE_SLIP6=y -# CONFIG_TR is not set
# # USB Network Adapters @@ -2021,11 +2097,14 @@ CONFIG_USB_CATC=m CONFIG_USB_KAWETH=m CONFIG_USB_PEGASUS=m CONFIG_USB_RTL8150=m +CONFIG_USB_RTL8152=m CONFIG_USB_USBNET=m CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_AX88179_178A=m CONFIG_USB_NET_CDCETHER=m CONFIG_USB_NET_CDC_EEM=m CONFIG_USB_NET_CDC_NCM=m +CONFIG_USB_NET_CDC_MBIM=m CONFIG_USB_NET_DM9601=m CONFIG_USB_NET_SMSC75XX=m CONFIG_USB_NET_SMSC95XX=m @@ -2044,14 +2123,17 @@ CONFIG_USB_KC2190=y CONFIG_USB_NET_ZAURUS=m CONFIG_USB_NET_CX82310_ETH=m CONFIG_USB_NET_KALMIA=m +CONFIG_USB_NET_QMI_WWAN=m CONFIG_USB_HSO=m CONFIG_USB_NET_INT51X1=m -# CONFIG_USB_IPHETH is not set +CONFIG_USB_IPHETH=m CONFIG_USB_SIERRA_NET=m CONFIG_USB_VL600=m CONFIG_WLAN=y -CONFIG_PCMCIA_RAYCS=m -# CONFIG_LIBERTAS_THINFIRM is not set +# CONFIG_PCMCIA_RAYCS is not set +CONFIG_LIBERTAS_THINFIRM=m +# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set +CONFIG_LIBERTAS_THINFIRM_USB=m CONFIG_AIRO=m CONFIG_ATMEL=m CONFIG_PCI_ATMEL=m @@ -2062,76 +2144,179 @@ CONFIG_PCMCIA_WL3501=m # CONFIG_PRISM54 is not set CONFIG_USB_ZD1201=m CONFIG_USB_NET_RNDIS_WLAN=m -# CONFIG_RTL8180 is not set -# CONFIG_RTL8187 is not set -# CONFIG_ADM8211 is not set -# CONFIG_MAC80211_HWSIM is not set -# CONFIG_MWL8K is not set -# CONFIG_ATH_COMMON is not set -# CONFIG_B43 is not set -# CONFIG_B43LEGACY is not set -# CONFIG_BRCMFMAC is not set +CONFIG_RTL8180=m +CONFIG_RTL8187=m +CONFIG_RTL8187_LEDS=y +CONFIG_ADM8211=m +CONFIG_MAC80211_HWSIM=m +CONFIG_MWL8K=m +CONFIG_ATH_COMMON=m +CONFIG_ATH_CARDS=m +# CONFIG_ATH_DEBUG is not set +CONFIG_ATH5K=m +CONFIG_ATH5K_DEBUG=y +# CONFIG_ATH5K_TRACER is not set +CONFIG_ATH5K_PCI=y +CONFIG_ATH9K_HW=m +CONFIG_ATH9K_COMMON=m +CONFIG_ATH9K_BTCOEX_SUPPORT=y +CONFIG_ATH9K=m +CONFIG_ATH9K_PCI=y +CONFIG_ATH9K_AHB=y +# CONFIG_ATH9K_DEBUGFS is not set +# CONFIG_ATH9K_LEGACY_RATE_CONTROL is not set +CONFIG_ATH9K_HTC=m +# CONFIG_ATH9K_HTC_DEBUGFS is not set +CONFIG_CARL9170=m +CONFIG_CARL9170_LEDS=y +CONFIG_CARL9170_WPC=y +# CONFIG_CARL9170_HWRNG is not set +# CONFIG_ATH6KL is not set +CONFIG_AR5523=m +CONFIG_WIL6210=m +CONFIG_WIL6210_ISR_COR=y +CONFIG_B43=m +CONFIG_B43_SSB=y +CONFIG_B43_PCI_AUTOSELECT=y +CONFIG_B43_PCICORE_AUTOSELECT=y +# CONFIG_B43_PCMCIA is not set +CONFIG_B43_SDIO=y +CONFIG_B43_PIO=y +CONFIG_B43_PHY_N=y +CONFIG_B43_PHY_LP=y +CONFIG_B43_LEDS=y +CONFIG_B43_HWRNG=y +# CONFIG_B43_DEBUG is not set +CONFIG_B43LEGACY=m +CONFIG_B43LEGACY_PCI_AUTOSELECT=y +CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y +CONFIG_B43LEGACY_LEDS=y +CONFIG_B43LEGACY_HWRNG=y +# CONFIG_B43LEGACY_DEBUG is not set +CONFIG_B43LEGACY_DMA=y +CONFIG_B43LEGACY_PIO=y +CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y +# CONFIG_B43LEGACY_DMA_MODE is not set +# CONFIG_B43LEGACY_PIO_MODE is not set +CONFIG_BRCMUTIL=m +CONFIG_BRCMFMAC=m +CONFIG_BRCMFMAC_SDIO=y +# CONFIG_BRCMFMAC_USB is not set +# CONFIG_BRCM_TRACING is not set +# CONFIG_BRCMDBG is not set CONFIG_HOSTAP=m CONFIG_HOSTAP_FIRMWARE=y -# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set +CONFIG_HOSTAP_FIRMWARE_NVRAM=y CONFIG_HOSTAP_PLX=m CONFIG_HOSTAP_PCI=m CONFIG_HOSTAP_CS=m -# CONFIG_IPW2100 is not set -# CONFIG_IPW2200 is not set -# CONFIG_IWLWIFI is not set -# CONFIG_IWL4965 is not set -# CONFIG_IWL3945 is not set -# CONFIG_IWM is not set -# CONFIG_LIBERTAS is not set -# CONFIG_HERMES is not set -# CONFIG_P54_COMMON is not set -# CONFIG_RT2X00 is not set -# CONFIG_RTL8192CE is not set -# CONFIG_RTL8192SE is not set -# CONFIG_RTL8192DE is not set -# CONFIG_RTL8192CU is not set -# CONFIG_WL1251 is not set -# CONFIG_WL12XX_MENU is not set -# CONFIG_ZD1211RW is not set -# CONFIG_MWIFIEX is not set +CONFIG_IPW2100=m +CONFIG_IPW2100_MONITOR=y +# CONFIG_IPW2100_DEBUG is not set +CONFIG_IPW2200=m +CONFIG_IPW2200_MONITOR=y +CONFIG_IPW2200_RADIOTAP=y +CONFIG_IPW2200_PROMISCUOUS=y +CONFIG_IPW2200_QOS=y +# CONFIG_IPW2200_DEBUG is not set +CONFIG_LIBIPW=m +# CONFIG_LIBIPW_DEBUG is not set +CONFIG_IWLWIFI=m +CONFIG_IWLDVM=m +CONFIG_IWLMVM=m +CONFIG_IWLWIFI_OPMODE_MODULAR=y + +# +# Debugging Options +# +# CONFIG_IWLWIFI_DEBUG is not set +# CONFIG_IWLWIFI_DEVICE_TRACING is not set +CONFIG_IWLWIFI_P2P=y +CONFIG_IWLEGACY=m +CONFIG_IWL4965=m +CONFIG_IWL3945=m + +# +# iwl3945 / iwl4965 Debugging Options +# +# CONFIG_IWLEGACY_DEBUG is not set +CONFIG_LIBERTAS=m +CONFIG_LIBERTAS_USB=m +CONFIG_LIBERTAS_CS=m +CONFIG_LIBERTAS_SDIO=m +# CONFIG_LIBERTAS_DEBUG is not set +CONFIG_LIBERTAS_MESH=y +CONFIG_HERMES=m +# CONFIG_HERMES_PRISM is not set +CONFIG_HERMES_CACHE_FW_ON_INIT=y +CONFIG_PLX_HERMES=m +CONFIG_TMD_HERMES=m +CONFIG_NORTEL_HERMES=m +CONFIG_PCMCIA_HERMES=m +CONFIG_PCMCIA_SPECTRUM=m +CONFIG_ORINOCO_USB=m +CONFIG_P54_COMMON=m +CONFIG_P54_USB=m +CONFIG_P54_PCI=m +CONFIG_P54_LEDS=y +CONFIG_RT2X00=m +CONFIG_RT2400PCI=m +CONFIG_RT2500PCI=m +CONFIG_RT61PCI=m +CONFIG_RT2800PCI=m +CONFIG_RT2800PCI_RT33XX=y +CONFIG_RT2800PCI_RT35XX=y +CONFIG_RT2800PCI_RT53XX=y +CONFIG_RT2800PCI_RT3290=y +CONFIG_RT2500USB=m +CONFIG_RT73USB=m +CONFIG_RT2800USB=m +CONFIG_RT2800USB_RT33XX=y +CONFIG_RT2800USB_RT35XX=y +CONFIG_RT2800USB_RT53XX=y +CONFIG_RT2800USB_RT55XX=y +CONFIG_RT2800USB_UNKNOWN=y +CONFIG_RT2800_LIB=m +CONFIG_RT2X00_LIB_MMIO=m +CONFIG_RT2X00_LIB_PCI=m +CONFIG_RT2X00_LIB_USB=m +CONFIG_RT2X00_LIB=m +CONFIG_RT2X00_LIB_FIRMWARE=y +CONFIG_RT2X00_LIB_CRYPTO=y +CONFIG_RT2X00_LIB_LEDS=y +# CONFIG_RT2X00_DEBUG is not set +CONFIG_RTLWIFI=m +# CONFIG_RTLWIFI_DEBUG is not set +CONFIG_RTL8192CE=m +CONFIG_RTL8192SE=m +CONFIG_RTL8192DE=m +CONFIG_RTL8723AE=m +CONFIG_RTL8188EE=m +CONFIG_RTL8192CU=m +CONFIG_RTL8192C_COMMON=m +CONFIG_WL_TI=y +CONFIG_WL1251=m +CONFIG_WL1251_SDIO=m +CONFIG_WL12XX=m +CONFIG_WL18XX=m +CONFIG_WLCORE=m +CONFIG_WLCORE_SDIO=m +CONFIG_WILINK_PLATFORM_DATA=y +CONFIG_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set +CONFIG_MWIFIEX=m +CONFIG_MWIFIEX_SDIO=m +CONFIG_MWIFIEX_PCIE=m +CONFIG_MWIFIEX_USB=m
# # Enable WiMAX (Networking options) to see the WiMAX drivers # -CONFIG_WAN=y -CONFIG_HOSTESS_SV11=m -CONFIG_COSA=m -CONFIG_LANMEDIA=m -CONFIG_SEALEVEL_4021=m -CONFIG_HDLC=m -CONFIG_HDLC_RAW=m -CONFIG_HDLC_RAW_ETH=m -CONFIG_HDLC_CISCO=m -CONFIG_HDLC_FR=m -CONFIG_HDLC_PPP=m - -# -# X.25/LAPB support is disabled -# -CONFIG_PCI200SYN=m -CONFIG_WANXL=m -# CONFIG_WANXL_BUILD_FIRMWARE is not set -CONFIG_PC300TOO=m -CONFIG_N2=m -CONFIG_C101=m -CONFIG_FARSYNC=m -CONFIG_DSCC4=m -CONFIG_DSCC4_PCISYNC=y -CONFIG_DSCC4_PCI_RST=y -CONFIG_DLCI=m -CONFIG_DLCI_MAX=8 -CONFIG_SDLA=m -CONFIG_SBNI=m -CONFIG_SBNI_MULTILINE=y +# CONFIG_WAN is not set CONFIG_XEN_NETDEV_FRONTEND=m CONFIG_XEN_NETDEV_BACKEND=m CONFIG_VMXNET3=m +CONFIG_HYPERV_NET=m CONFIG_ISDN=y CONFIG_ISDN_I4L=m CONFIG_ISDN_PPP=y @@ -2161,9 +2346,9 @@ CONFIG_ISDN_DRV_HISAX=m # CONFIG_HISAX_EURO=y CONFIG_DE_AOC=y -# CONFIG_HISAX_NO_SENDCOMPLETE is not set -# CONFIG_HISAX_NO_LLC is not set -# CONFIG_HISAX_NO_KEYPAD is not set +CONFIG_HISAX_NO_SENDCOMPLETE=y +CONFIG_HISAX_NO_LLC=y +CONFIG_HISAX_NO_KEYPAD=y CONFIG_HISAX_1TR6=y CONFIG_HISAX_NI1=y CONFIG_HISAX_MAX_CARDS=8 @@ -2171,27 +2356,27 @@ CONFIG_HISAX_MAX_CARDS=8 # # HiSax supported cards # -CONFIG_HISAX_16_0=y +# CONFIG_HISAX_16_0 is not set CONFIG_HISAX_16_3=y CONFIG_HISAX_TELESPCI=y CONFIG_HISAX_S0BOX=y -CONFIG_HISAX_AVM_A1=y +# CONFIG_HISAX_AVM_A1 is not set CONFIG_HISAX_FRITZPCI=y CONFIG_HISAX_AVM_A1_PCMCIA=y CONFIG_HISAX_ELSA=y -CONFIG_HISAX_IX1MICROR2=y +# CONFIG_HISAX_IX1MICROR2 is not set CONFIG_HISAX_DIEHLDIVA=y -CONFIG_HISAX_ASUSCOM=y -CONFIG_HISAX_TELEINT=y -CONFIG_HISAX_HFCS=y +# CONFIG_HISAX_ASUSCOM is not set +# CONFIG_HISAX_TELEINT is not set +# CONFIG_HISAX_HFCS is not set CONFIG_HISAX_SEDLBAUER=y -CONFIG_HISAX_SPORTSTER=y -CONFIG_HISAX_MIC=y +# CONFIG_HISAX_SPORTSTER is not set +# CONFIG_HISAX_MIC is not set CONFIG_HISAX_NETJET=y CONFIG_HISAX_NETJET_U=y CONFIG_HISAX_NICCY=y -CONFIG_HISAX_ISURF=y -CONFIG_HISAX_HSTSAPHIR=y +# CONFIG_HISAX_ISURF is not set +# CONFIG_HISAX_HSTSAPHIR is not set CONFIG_HISAX_BKM_A4T=y CONFIG_HISAX_SCT_QUADRO=y CONFIG_HISAX_GAZEL=y @@ -2199,15 +2384,15 @@ CONFIG_HISAX_HFC_PCI=y CONFIG_HISAX_W6692=y CONFIG_HISAX_HFC_SX=y CONFIG_HISAX_ENTERNOW_PCI=y -CONFIG_HISAX_DEBUG=y +# CONFIG_HISAX_DEBUG is not set
# # HiSax PCMCIA card service modules # -CONFIG_HISAX_SEDLBAUER_CS=m -CONFIG_HISAX_ELSA_CS=m -CONFIG_HISAX_AVM_A1_CS=m -CONFIG_HISAX_TELES_CS=m +# CONFIG_HISAX_SEDLBAUER_CS is not set +# CONFIG_HISAX_ELSA_CS is not set +# CONFIG_HISAX_AVM_A1_CS is not set +# CONFIG_HISAX_TELES_CS is not set
# # HiSax sub driver modules @@ -2220,10 +2405,10 @@ CONFIG_HISAX_FRITZ_PCIPNP=m # # Active cards # -CONFIG_ISDN_DRV_ICN=m -CONFIG_ISDN_DRV_PCBIT=m -CONFIG_ISDN_DRV_SC=m -CONFIG_ISDN_DRV_ACT2000=m +# CONFIG_ISDN_DRV_ICN is not set +# CONFIG_ISDN_DRV_PCBIT is not set +# CONFIG_ISDN_DRV_SC is not set +# CONFIG_ISDN_DRV_ACT2000 is not set CONFIG_ISDN_CAPI=m CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y CONFIG_CAPI_TRACE=y @@ -2235,12 +2420,11 @@ CONFIG_ISDN_CAPI_CAPIDRV=m # CAPI hardware drivers # CONFIG_CAPI_AVM=y -CONFIG_ISDN_DRV_AVMB1_B1ISA=m +# CONFIG_ISDN_DRV_AVMB1_B1ISA is not set CONFIG_ISDN_DRV_AVMB1_B1PCI=m CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y -CONFIG_ISDN_DRV_AVMB1_T1ISA=m -CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m -CONFIG_ISDN_DRV_AVMB1_AVM_CS=m +# CONFIG_ISDN_DRV_AVMB1_T1ISA is not set +# CONFIG_ISDN_DRV_AVMB1_B1PCMCIA is not set CONFIG_ISDN_DRV_AVMB1_T1PCI=m CONFIG_ISDN_DRV_AVMB1_C4=m CONFIG_CAPI_EICON=y @@ -2278,15 +2462,15 @@ CONFIG_MISDN_NETJET=m CONFIG_MISDN_IPAC=m CONFIG_MISDN_ISAR=m CONFIG_ISDN_HDLC=m -# CONFIG_PHONE is not set
# # Input device support # CONFIG_INPUT=y -CONFIG_INPUT_FF_MEMLESS=m +# CONFIG_INPUT_FF_MEMLESS is not set CONFIG_INPUT_POLLDEV=m CONFIG_INPUT_SPARSEKMAP=m +CONFIG_INPUT_MATRIXKMAP=m
# # Userland interfaces @@ -2296,59 +2480,85 @@ CONFIG_INPUT_MOUSEDEV=y CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 # CONFIG_INPUT_JOYDEV is not set -# CONFIG_INPUT_EVDEV is not set +CONFIG_INPUT_EVDEV=y # CONFIG_INPUT_EVBUG is not set
# # Input Device Drivers # CONFIG_INPUT_KEYBOARD=y -CONFIG_KEYBOARD_ADP5588=m -CONFIG_KEYBOARD_ADP5589=m +# CONFIG_KEYBOARD_ADP5588 is not set +# CONFIG_KEYBOARD_ADP5589 is not set CONFIG_KEYBOARD_ATKBD=y -CONFIG_KEYBOARD_QT1070=m -CONFIG_KEYBOARD_QT2160=m -CONFIG_KEYBOARD_LKKBD=m +# CONFIG_KEYBOARD_QT1070 is not set +# CONFIG_KEYBOARD_QT2160 is not set +# CONFIG_KEYBOARD_LKKBD is not set CONFIG_KEYBOARD_GPIO=m CONFIG_KEYBOARD_GPIO_POLLED=m -CONFIG_KEYBOARD_TCA6416=m -CONFIG_KEYBOARD_MATRIX=m -CONFIG_KEYBOARD_LM8323=m -CONFIG_KEYBOARD_MAX7359=m -CONFIG_KEYBOARD_MCS=m -CONFIG_KEYBOARD_MPR121=m -CONFIG_KEYBOARD_NEWTON=m -CONFIG_KEYBOARD_OPENCORES=m -CONFIG_KEYBOARD_STOWAWAY=m -CONFIG_KEYBOARD_SUNKBD=m -CONFIG_KEYBOARD_XTKBD=m -# CONFIG_INPUT_MOUSE is not set +# CONFIG_KEYBOARD_TCA6416 is not set +# CONFIG_KEYBOARD_TCA8418 is not set +# CONFIG_KEYBOARD_MATRIX is not set +# CONFIG_KEYBOARD_LM8323 is not set +CONFIG_KEYBOARD_LM8333=m +# CONFIG_KEYBOARD_MAX7359 is not set +# CONFIG_KEYBOARD_MCS is not set +# CONFIG_KEYBOARD_MPR121 is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_OPENCORES is not set +# CONFIG_KEYBOARD_SAMSUNG is not set +# CONFIG_KEYBOARD_STOWAWAY is not set +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set +CONFIG_INPUT_MOUSE=y +CONFIG_MOUSE_PS2=m +CONFIG_MOUSE_PS2_ALPS=y +CONFIG_MOUSE_PS2_LOGIPS2PP=y +CONFIG_MOUSE_PS2_SYNAPTICS=y +CONFIG_MOUSE_PS2_CYPRESS=y +CONFIG_MOUSE_PS2_LIFEBOOK=y +CONFIG_MOUSE_PS2_TRACKPOINT=y +CONFIG_MOUSE_PS2_ELANTECH=y +CONFIG_MOUSE_PS2_SENTELIC=y +CONFIG_MOUSE_PS2_TOUCHKIT=y +CONFIG_MOUSE_SERIAL=m +CONFIG_MOUSE_APPLETOUCH=m +CONFIG_MOUSE_BCM5974=m +CONFIG_MOUSE_CYAPA=m +# CONFIG_MOUSE_INPORT is not set +# CONFIG_MOUSE_LOGIBM is not set +# CONFIG_MOUSE_PC110PAD is not set +CONFIG_MOUSE_VSXXXAA=m +# CONFIG_MOUSE_GPIO is not set +CONFIG_MOUSE_SYNAPTICS_I2C=m +CONFIG_MOUSE_SYNAPTICS_USB=m # CONFIG_INPUT_JOYSTICK is not set # CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set CONFIG_INPUT_MISC=y -CONFIG_INPUT_AD714X=m -CONFIG_INPUT_AD714X_I2C=m -CONFIG_INPUT_BMA150=m +# CONFIG_INPUT_AD714X is not set +# CONFIG_INPUT_BMA150 is not set CONFIG_INPUT_PCSPKR=m # CONFIG_INPUT_MMA8450 is not set # CONFIG_INPUT_MPU3050 is not set CONFIG_INPUT_APANEL=m +# CONFIG_INPUT_GP2A is not set +# CONFIG_INPUT_GPIO_TILT_POLLED is not set # CONFIG_INPUT_WISTRON_BTNS is not set -# CONFIG_INPUT_ATLAS_BTNS is not set +CONFIG_INPUT_ATLAS_BTNS=m CONFIG_INPUT_ATI_REMOTE2=m CONFIG_INPUT_KEYSPAN_REMOTE=m # CONFIG_INPUT_KXTJ9 is not set CONFIG_INPUT_POWERMATE=m CONFIG_INPUT_YEALINK=m CONFIG_INPUT_CM109=m -# CONFIG_INPUT_UINPUT is not set -CONFIG_INPUT_PCF50633_PMU=m -CONFIG_INPUT_PCF8574=m +CONFIG_INPUT_RETU_PWRBUTTON=m +CONFIG_INPUT_UINPUT=m +# CONFIG_INPUT_PCF8574 is not set CONFIG_INPUT_GPIO_ROTARY_ENCODER=m # CONFIG_INPUT_ADXL34X is not set +# CONFIG_INPUT_IMS_PCU is not set # CONFIG_INPUT_CMA3000 is not set -CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m +CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y
# # Hardware I/O ports @@ -2360,125 +2570,136 @@ CONFIG_SERIO_SERPORT=y # CONFIG_SERIO_PARKBD is not set # CONFIG_SERIO_PCIPS2 is not set CONFIG_SERIO_LIBPS2=y -# CONFIG_SERIO_RAW is not set +CONFIG_SERIO_RAW=m CONFIG_SERIO_ALTERA_PS2=m -CONFIG_SERIO_PS2MULT=m +# CONFIG_SERIO_PS2MULT is not set +CONFIG_SERIO_ARC_PS2=m # CONFIG_GAMEPORT is not set
# # Character devices # +CONFIG_TTY=y CONFIG_VT=y CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_VT_CONSOLE=y CONFIG_VT_CONSOLE_SLEEP=y CONFIG_HW_CONSOLE=y -# CONFIG_VT_HW_CONSOLE_BINDING is not set +CONFIG_VT_HW_CONSOLE_BINDING=y CONFIG_UNIX98_PTYS=y -# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set +CONFIG_DEVPTS_MULTIPLE_INSTANCES=y # CONFIG_LEGACY_PTYS is not set -# CONFIG_SERIAL_NONSTANDARD is not set +CONFIG_SERIAL_NONSTANDARD=y +CONFIG_ROCKETPORT=m +CONFIG_CYCLADES=m +# CONFIG_CYZ_INTR is not set +# CONFIG_MOXA_INTELLIO is not set +# CONFIG_MOXA_SMARTIO is not set +CONFIG_SYNCLINK=m +CONFIG_SYNCLINKMP=m +CONFIG_SYNCLINK_GT=m CONFIG_NOZOMI=m +# CONFIG_ISI is not set +CONFIG_N_HDLC=m CONFIG_N_GSM=m # CONFIG_TRACE_SINK is not set -CONFIG_DEVKMEM=y +# CONFIG_DEVKMEM is not set +# CONFIG_STALDRV is not set
# # Serial drivers # CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y +CONFIG_SERIAL_8250_PNP=y CONFIG_SERIAL_8250_CONSOLE=y CONFIG_FIX_EARLYCON_MEM=y +CONFIG_SERIAL_8250_DMA=y CONFIG_SERIAL_8250_PCI=y -CONFIG_SERIAL_8250_PNP=y -CONFIG_SERIAL_8250_CS=m +# CONFIG_SERIAL_8250_CS is not set CONFIG_SERIAL_8250_NR_UARTS=4 CONFIG_SERIAL_8250_RUNTIME_UARTS=4 CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_MANY_PORTS=y -CONFIG_SERIAL_8250_FOURPORT=m -CONFIG_SERIAL_8250_ACCENT=m -CONFIG_SERIAL_8250_BOCA=m -CONFIG_SERIAL_8250_EXAR_ST16C554=m -CONFIG_SERIAL_8250_HUB6=m +# CONFIG_SERIAL_8250_FOURPORT is not set +# CONFIG_SERIAL_8250_ACCENT is not set +# CONFIG_SERIAL_8250_BOCA is not set +# CONFIG_SERIAL_8250_EXAR_ST16C554 is not set +# CONFIG_SERIAL_8250_HUB6 is not set CONFIG_SERIAL_8250_SHARE_IRQ=y -CONFIG_SERIAL_8250_DETECT_IRQ=y +# CONFIG_SERIAL_8250_DETECT_IRQ is not set CONFIG_SERIAL_8250_RSA=y -# CONFIG_SERIAL_8250_MCA is not set +CONFIG_SERIAL_8250_DW=m
# # Non-8250 serial port support # -CONFIG_SERIAL_MFD_HSU=m -CONFIG_SERIAL_UARTLITE=m +# CONFIG_SERIAL_MFD_HSU is not set CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y -# CONFIG_SERIAL_JSM is not set -CONFIG_SERIAL_TIMBERDALE=m -CONFIG_SERIAL_ALTERA_JTAGUART=m -CONFIG_SERIAL_ALTERA_UART=m -CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4 -CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200 -CONFIG_SERIAL_PCH_UART=m -CONFIG_SERIAL_XILINX_PS_UART=m +CONFIG_SERIAL_JSM=m +CONFIG_SERIAL_SCCNXP=m +# CONFIG_SERIAL_TIMBERDALE is not set +# CONFIG_SERIAL_ALTERA_JTAGUART is not set +# CONFIG_SERIAL_ALTERA_UART is not set +# CONFIG_SERIAL_PCH_UART is not set +CONFIG_SERIAL_ARC=m +CONFIG_SERIAL_ARC_NR_PORTS=1 +CONFIG_SERIAL_RP2=m +CONFIG_SERIAL_RP2_NR_UARTS=32 +# CONFIG_TTY_PRINTK is not set CONFIG_PRINTER=m -# CONFIG_LP_CONSOLE is not set +CONFIG_LP_CONSOLE=y CONFIG_PPDEV=m CONFIG_HVC_DRIVER=y CONFIG_HVC_IRQ=y CONFIG_HVC_XEN=y +CONFIG_HVC_XEN_FRONTEND=y CONFIG_VIRTIO_CONSOLE=y CONFIG_IPMI_HANDLER=m -CONFIG_IPMI_PANIC_EVENT=y -# CONFIG_IPMI_PANIC_STRING is not set +# CONFIG_IPMI_PANIC_EVENT is not set CONFIG_IPMI_DEVICE_INTERFACE=m CONFIG_IPMI_SI=m CONFIG_IPMI_WATCHDOG=m CONFIG_IPMI_POWEROFF=m -CONFIG_HW_RANDOM=m +CONFIG_HW_RANDOM=y CONFIG_HW_RANDOM_TIMERIOMEM=m CONFIG_HW_RANDOM_INTEL=m CONFIG_HW_RANDOM_AMD=m +CONFIG_HW_RANDOM_ATMEL=m CONFIG_HW_RANDOM_GEODE=m CONFIG_HW_RANDOM_VIA=m CONFIG_HW_RANDOM_VIRTIO=m -CONFIG_NVRAM=m +CONFIG_HW_RANDOM_EXYNOS=m +CONFIG_NVRAM=y # CONFIG_DTLK is not set -# CONFIG_R3964 is not set +CONFIG_R3964=m # CONFIG_APPLICOM is not set -# CONFIG_SONYPI is not set +CONFIG_SONYPI=m
# # PCMCIA character devices # -CONFIG_SYNCLINK_CS=m +# CONFIG_SYNCLINK_CS is not set # CONFIG_CARDMAN_4000 is not set # CONFIG_CARDMAN_4040 is not set -CONFIG_IPWIRELESS=m +# CONFIG_IPWIRELESS is not set CONFIG_MWAVE=m -CONFIG_SCx200_GPIO=m CONFIG_PC8736x_GPIO=m CONFIG_NSC_GPIO=m -# CONFIG_RAW_DRIVER is not set +CONFIG_RAW_DRIVER=y +CONFIG_MAX_RAW_DEVS=8192 CONFIG_HPET=y -CONFIG_HPET_MMAP=y +# CONFIG_HPET_MMAP is not set CONFIG_HANGCHECK_TIMER=m # CONFIG_TCG_TPM is not set # CONFIG_TELCLOCK is not set CONFIG_DEVPORT=y -# CONFIG_RAMOOPS is not set CONFIG_I2C=m CONFIG_I2C_BOARDINFO=y CONFIG_I2C_COMPAT=y CONFIG_I2C_CHARDEV=m -CONFIG_I2C_MUX=m - -# -# Multiplexer I2C Chip support -# -CONFIG_I2C_MUX_GPIO=m -CONFIG_I2C_MUX_PCA9541=m -CONFIG_I2C_MUX_PCA954x=m +# CONFIG_I2C_MUX is not set CONFIG_I2C_HELPER_AUTO=y CONFIG_I2C_SMBUS=m CONFIG_I2C_ALGOBIT=m @@ -2499,6 +2720,7 @@ CONFIG_I2C_AMD756_S4882=m CONFIG_I2C_AMD8111=m CONFIG_I2C_I801=m CONFIG_I2C_ISCH=m +CONFIG_I2C_ISMT=m CONFIG_I2C_PIIX4=m CONFIG_I2C_NFORCE2=m CONFIG_I2C_NFORCE2_S4985=m @@ -2516,16 +2738,18 @@ CONFIG_I2C_SCMI=m # # I2C system bus drivers (mostly embedded / system-on-chip) # +CONFIG_I2C_CBUS_GPIO=m CONFIG_I2C_DESIGNWARE_CORE=m -CONFIG_I2C_DESIGNWARE_PCI=m -CONFIG_I2C_GPIO=m -CONFIG_I2C_INTEL_MID=m -CONFIG_I2C_OCORES=m +CONFIG_I2C_DESIGNWARE_PLATFORM=m +# CONFIG_I2C_DESIGNWARE_PCI is not set +# CONFIG_I2C_EG20T is not set +# CONFIG_I2C_GPIO is not set +# CONFIG_I2C_INTEL_MID is not set +# CONFIG_I2C_OCORES is not set CONFIG_I2C_PCA_PLATFORM=m # CONFIG_I2C_PXA_PCI is not set CONFIG_I2C_SIMTEC=m -CONFIG_I2C_XILINX=m -CONFIG_I2C_EG20T=m +# CONFIG_I2C_XILINX is not set
# # External I2C/SMBus adapter drivers @@ -2533,22 +2757,34 @@ CONFIG_I2C_EG20T=m CONFIG_I2C_DIOLAN_U2C=m CONFIG_I2C_PARPORT=m CONFIG_I2C_PARPORT_LIGHT=m -CONFIG_I2C_TAOS_EVM=m +# CONFIG_I2C_TAOS_EVM is not set CONFIG_I2C_TINY_USB=m +CONFIG_I2C_VIPERBOARD=m
# # Other I2C/SMBus bus drivers # -CONFIG_I2C_PCA_ISA=m -CONFIG_I2C_STUB=m -# CONFIG_SCx200_I2C is not set +# CONFIG_I2C_PCA_ISA is not set CONFIG_SCx200_ACB=m +# CONFIG_I2C_STUB is not set # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set # CONFIG_SPI is not set
# +# Qualcomm MSM SSBI bus support +# +# CONFIG_SSBI is not set +CONFIG_HSI=m +CONFIG_HSI_BOARDINFO=y + +# +# HSI clients +# +CONFIG_HSI_CHAR=m + +# # PPS support # CONFIG_PPS=m @@ -2570,67 +2806,76 @@ CONFIG_PPS=m # PTP clock support # CONFIG_PTP_1588_CLOCK=m -CONFIG_DP83640_PHY=m + +# +# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. +# +CONFIG_PTP_1588_CLOCK_PCH=m CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y +CONFIG_GPIO_DEVRES=y CONFIG_GPIOLIB=y +CONFIG_GPIO_ACPI=y # CONFIG_DEBUG_GPIO is not set CONFIG_GPIO_SYSFS=y -CONFIG_GPIO_GENERIC=m -CONFIG_GPIO_MAX730X=m
# # Memory mapped GPIO drivers: # -CONFIG_GPIO_GENERIC_PLATFORM=m -CONFIG_GPIO_IT8761E=m +# CONFIG_GPIO_GENERIC_PLATFORM is not set +# CONFIG_GPIO_IT8761E is not set +CONFIG_GPIO_TS5500=m CONFIG_GPIO_SCH=m -CONFIG_GPIO_VX855=m +CONFIG_GPIO_ICH=m +# CONFIG_GPIO_VX855 is not set +# CONFIG_GPIO_LYNXPOINT is not set
# # I2C GPIO expanders: # -CONFIG_GPIO_MAX7300=m -CONFIG_GPIO_MAX732X=m -CONFIG_GPIO_PCA953X=m -CONFIG_GPIO_PCF857X=m -CONFIG_GPIO_ADP5588=m +# CONFIG_GPIO_MAX7300 is not set +# CONFIG_GPIO_MAX732X is not set +# CONFIG_GPIO_PCA953X is not set +# CONFIG_GPIO_PCF857X is not set +# CONFIG_GPIO_ADP5588 is not set
# # PCI GPIO expanders: # -CONFIG_GPIO_CS5535=m -# CONFIG_GPIO_BT8XX is not set +# CONFIG_GPIO_CS5535 is not set +# CONFIG_GPIO_AMD8111 is not set # CONFIG_GPIO_LANGWELL is not set -CONFIG_GPIO_PCH=m -CONFIG_GPIO_ML_IOH=m -# CONFIG_GPIO_TIMBERDALE is not set -CONFIG_GPIO_RDC321X=m +# CONFIG_GPIO_PCH is not set +# CONFIG_GPIO_ML_IOH is not set +# CONFIG_GPIO_RDC321X is not set
# # SPI GPIO expanders: # -CONFIG_GPIO_MCP23S08=m +# CONFIG_GPIO_MCP23S08 is not set
# # AC97 GPIO expanders: # -# CONFIG_GPIO_UCB1400 is not set
# # MODULbus GPIO expanders: # -CONFIG_GPIO_JANZ_TTL=m + +# +# USB GPIO expanders: +# +CONFIG_GPIO_VIPERBOARD=m CONFIG_W1=m CONFIG_W1_CON=y
# # 1-wire Bus Masters # -CONFIG_W1_MASTER_MATROX=m +# CONFIG_W1_MASTER_MATROX is not set CONFIG_W1_MASTER_DS2490=m CONFIG_W1_MASTER_DS2482=m CONFIG_W1_MASTER_DS1WM=m -CONFIG_W1_MASTER_GPIO=m +# CONFIG_W1_MASTER_GPIO is not set
# # 1-wire Slaves @@ -2638,29 +2883,39 @@ CONFIG_W1_MASTER_GPIO=m CONFIG_W1_SLAVE_THERM=m CONFIG_W1_SLAVE_SMEM=m CONFIG_W1_SLAVE_DS2408=m +CONFIG_W1_SLAVE_DS2408_READBACK=y +CONFIG_W1_SLAVE_DS2413=m CONFIG_W1_SLAVE_DS2423=m CONFIG_W1_SLAVE_DS2431=m CONFIG_W1_SLAVE_DS2433=m CONFIG_W1_SLAVE_DS2433_CRC=y CONFIG_W1_SLAVE_DS2760=m CONFIG_W1_SLAVE_DS2780=m +CONFIG_W1_SLAVE_DS2781=m +CONFIG_W1_SLAVE_DS28E04=m CONFIG_W1_SLAVE_BQ27000=m CONFIG_POWER_SUPPLY=y # CONFIG_POWER_SUPPLY_DEBUG is not set # CONFIG_PDA_POWER is not set +CONFIG_GENERIC_ADC_BATTERY=m # CONFIG_TEST_POWER is not set # CONFIG_BATTERY_DS2760 is not set # CONFIG_BATTERY_DS2780 is not set +# CONFIG_BATTERY_DS2781 is not set # CONFIG_BATTERY_DS2782 is not set -# CONFIG_BATTERY_BQ20Z75 is not set +# CONFIG_BATTERY_SBS is not set # CONFIG_BATTERY_BQ27x00 is not set # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set -# CONFIG_CHARGER_PCF50633 is not set -# CONFIG_CHARGER_ISP1704 is not set # CONFIG_CHARGER_MAX8903 is not set +# CONFIG_CHARGER_LP8727 is not set # CONFIG_CHARGER_GPIO is not set -CONFIG_HWMON=m +# CONFIG_CHARGER_BQ2415X is not set +# CONFIG_CHARGER_SMB347 is not set +# CONFIG_BATTERY_GOLDFISH is not set +CONFIG_POWER_RESET=y +CONFIG_POWER_AVS=y +CONFIG_HWMON=y CONFIG_HWMON_VID=m # CONFIG_HWMON_DEBUG_CHIP is not set
@@ -2677,6 +2932,8 @@ CONFIG_SENSORS_ADM1026=m CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM9240=m +CONFIG_SENSORS_ADT7X10=m +CONFIG_SENSORS_ADT7410=m CONFIG_SENSORS_ADT7411=m CONFIG_SENSORS_ADT7462=m CONFIG_SENSORS_ADT7470=m @@ -2697,12 +2954,14 @@ CONFIG_SENSORS_FSCHMD=m CONFIG_SENSORS_G760A=m CONFIG_SENSORS_GL518SM=m CONFIG_SENSORS_GL520SM=m -CONFIG_SENSORS_GPIO_FAN=m +# CONFIG_SENSORS_GPIO_FAN is not set +CONFIG_SENSORS_HIH6130=m CONFIG_SENSORS_CORETEMP=m CONFIG_SENSORS_IBMAEM=m CONFIG_SENSORS_IBMPEX=m +# CONFIG_SENSORS_IIO_HWMON is not set CONFIG_SENSORS_IT87=m -CONFIG_SENSORS_JC42=m +# CONFIG_SENSORS_JC42 is not set CONFIG_SENSORS_LINEAGE=m CONFIG_SENSORS_LM63=m CONFIG_SENSORS_LM73=m @@ -2720,14 +2979,19 @@ CONFIG_SENSORS_LTC4151=m CONFIG_SENSORS_LTC4215=m CONFIG_SENSORS_LTC4245=m CONFIG_SENSORS_LTC4261=m +CONFIG_SENSORS_LM95234=m CONFIG_SENSORS_LM95241=m CONFIG_SENSORS_LM95245=m CONFIG_SENSORS_MAX16065=m CONFIG_SENSORS_MAX1619=m CONFIG_SENSORS_MAX1668=m +CONFIG_SENSORS_MAX197=m CONFIG_SENSORS_MAX6639=m CONFIG_SENSORS_MAX6642=m CONFIG_SENSORS_MAX6650=m +CONFIG_SENSORS_MAX6697=m +CONFIG_SENSORS_MCP3021=m +CONFIG_SENSORS_NCT6775=m CONFIG_SENSORS_NTC_THERMISTOR=m CONFIG_SENSORS_PC87360=m CONFIG_SENSORS_PC87427=m @@ -2736,20 +3000,20 @@ CONFIG_PMBUS=m CONFIG_SENSORS_PMBUS=m CONFIG_SENSORS_ADM1275=m CONFIG_SENSORS_LM25066=m -CONFIG_SENSORS_LTC2978=m +# CONFIG_SENSORS_LTC2978 is not set CONFIG_SENSORS_MAX16064=m CONFIG_SENSORS_MAX34440=m CONFIG_SENSORS_MAX8688=m CONFIG_SENSORS_UCD9000=m CONFIG_SENSORS_UCD9200=m -CONFIG_SENSORS_ZL6100=m +# CONFIG_SENSORS_ZL6100 is not set CONFIG_SENSORS_SHT15=m CONFIG_SENSORS_SHT21=m CONFIG_SENSORS_SIS5595=m -CONFIG_SENSORS_SMM665=m +# CONFIG_SENSORS_SMM665 is not set CONFIG_SENSORS_DME1737=m CONFIG_SENSORS_EMC1403=m -CONFIG_SENSORS_EMC2103=m +# CONFIG_SENSORS_EMC2103 is not set CONFIG_SENSORS_EMC6W201=m CONFIG_SENSORS_SMSC47M1=m CONFIG_SENSORS_SMSC47M192=m @@ -2760,6 +3024,8 @@ CONFIG_SENSORS_SCH5636=m CONFIG_SENSORS_ADS1015=m CONFIG_SENSORS_ADS7828=m CONFIG_SENSORS_AMC6821=m +CONFIG_SENSORS_INA209=m +CONFIG_SENSORS_INA2XX=m CONFIG_SENSORS_THMC50=m CONFIG_SENSORS_TMP102=m CONFIG_SENSORS_TMP401=m @@ -2786,51 +3052,63 @@ CONFIG_SENSORS_APPLESMC=m CONFIG_SENSORS_ACPI_POWER=m CONFIG_SENSORS_ATK0110=m CONFIG_THERMAL=y +CONFIG_THERMAL_HWMON=y +CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y +# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set +# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set +CONFIG_THERMAL_GOV_FAIR_SHARE=y +CONFIG_THERMAL_GOV_STEP_WISE=y +CONFIG_THERMAL_GOV_USER_SPACE=y +CONFIG_CPU_THERMAL=y +CONFIG_THERMAL_EMULATION=y +CONFIG_INTEL_POWERCLAMP=m CONFIG_WATCHDOG=y CONFIG_WATCHDOG_CORE=y -# CONFIG_WATCHDOG_NOWAYOUT is not set +CONFIG_WATCHDOG_NOWAYOUT=y
# # Watchdog Device Drivers # CONFIG_SOFT_WATCHDOG=m -CONFIG_ACQUIRE_WDT=m -CONFIG_ADVANTECH_WDT=m +CONFIG_RETU_WATCHDOG=m +# CONFIG_ACQUIRE_WDT is not set +# CONFIG_ADVANTECH_WDT is not set CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m CONFIG_F71808E_WDT=m CONFIG_SP5100_TCO=m CONFIG_GEODE_WDT=m -CONFIG_SC520_WDT=m +# CONFIG_SC520_WDT is not set CONFIG_SBC_FITPC2_WATCHDOG=m -CONFIG_EUROTECH_WDT=m +# CONFIG_EUROTECH_WDT is not set CONFIG_IB700_WDT=m CONFIG_IBMASR=m -CONFIG_WAFER_WDT=m +# CONFIG_WAFER_WDT is not set CONFIG_I6300ESB_WDT=m +CONFIG_IE6XX_WDT=m CONFIG_ITCO_WDT=m # CONFIG_ITCO_VENDOR_SUPPORT is not set CONFIG_IT8712F_WDT=m CONFIG_IT87_WDT=m CONFIG_HP_WATCHDOG=m CONFIG_HPWDT_NMI_DECODING=y -CONFIG_SC1200_WDT=m -CONFIG_SCx200_WDT=m -CONFIG_PC87413_WDT=m +# CONFIG_SC1200_WDT is not set +# CONFIG_PC87413_WDT is not set CONFIG_NV_TCO=m -CONFIG_60XX_WDT=m -CONFIG_SBC8360_WDT=m -CONFIG_SBC7240_WDT=m -CONFIG_CPU5_WDT=m +# CONFIG_60XX_WDT is not set +# CONFIG_SBC8360_WDT is not set +# CONFIG_SBC7240_WDT is not set +# CONFIG_CPU5_WDT is not set CONFIG_SMSC_SCH311X_WDT=m -CONFIG_SMSC37B787_WDT=m +# CONFIG_SMSC37B787_WDT is not set +CONFIG_VIA_WDT=m CONFIG_W83627HF_WDT=m CONFIG_W83697HF_WDT=m CONFIG_W83697UG_WDT=m CONFIG_W83877F_WDT=m CONFIG_W83977F_WDT=m CONFIG_MACHZ_WDT=m -CONFIG_SBC_EPX_C3_WATCHDOG=m +# CONFIG_SBC_EPX_C3_WATCHDOG is not set CONFIG_XEN_WDT=m
# @@ -2857,397 +3135,629 @@ CONFIG_SSB_POSSIBLE=y # CONFIG_SSB=m CONFIG_SSB_SPROM=y +CONFIG_SSB_BLOCKIO=y CONFIG_SSB_PCIHOST_POSSIBLE=y CONFIG_SSB_PCIHOST=y -# CONFIG_SSB_B43_PCI_BRIDGE is not set +CONFIG_SSB_B43_PCI_BRIDGE=y CONFIG_SSB_PCMCIAHOST_POSSIBLE=y CONFIG_SSB_PCMCIAHOST=y CONFIG_SSB_SDIOHOST_POSSIBLE=y CONFIG_SSB_SDIOHOST=y -# CONFIG_SSB_DEBUG is not set +CONFIG_SSB_SILENT=y CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y CONFIG_SSB_DRIVER_PCICORE=y +CONFIG_SSB_DRIVER_GPIO=y CONFIG_BCMA_POSSIBLE=y
# # Broadcom specific AMBA # -CONFIG_BCMA=m -CONFIG_BCMA_HOST_PCI_POSSIBLE=y -# CONFIG_BCMA_HOST_PCI is not set -# CONFIG_BCMA_DEBUG is not set +# CONFIG_BCMA is not set
# # Multifunction device drivers # CONFIG_MFD_CORE=m -CONFIG_MFD_SM501=m -# CONFIG_MFD_SM501_GPIO is not set -CONFIG_HTC_PASIC3=m -CONFIG_UCB1400_CORE=m -CONFIG_TPS6105X=m -CONFIG_TPS65010=m -CONFIG_TPS6507X=m -# CONFIG_MFD_TMIO is not set -CONFIG_MFD_WM8400=m -CONFIG_MFD_PCF50633=m -CONFIG_PCF50633_ADC=m -CONFIG_PCF50633_GPIO=m -# CONFIG_ABX500_CORE is not set CONFIG_MFD_CS5535=m -CONFIG_MFD_TIMBERDALE=m +# CONFIG_MFD_CROS_EC is not set +# CONFIG_MFD_MC13XXX_I2C is not set +# CONFIG_HTC_PASIC3 is not set +CONFIG_LPC_ICH=m CONFIG_LPC_SCH=m -CONFIG_MFD_RDC321X=m -CONFIG_MFD_JANZ_CMODIO=m -CONFIG_MFD_VX855=m +# CONFIG_MFD_JANZ_CMODIO is not set +CONFIG_MFD_VIPERBOARD=m +CONFIG_MFD_RETU=m +# CONFIG_MFD_PCF50633 is not set +# CONFIG_UCB1400_CORE is not set +# CONFIG_MFD_RDC321X is not set +CONFIG_MFD_RTSX_PCI=m +# CONFIG_MFD_SI476X_CORE is not set +CONFIG_MFD_SM501=m +CONFIG_MFD_SM501_GPIO=y +# CONFIG_ABX500_CORE is not set +# CONFIG_MFD_SYSCON is not set +# CONFIG_MFD_TI_AM335X_TSCADC is not set +# CONFIG_TPS6105X is not set +# CONFIG_TPS65010 is not set +# CONFIG_TPS6507X is not set +# CONFIG_MFD_TPS65217 is not set +# CONFIG_MFD_TPS65912 is not set CONFIG_MFD_WL1273_CORE=m -CONFIG_REGULATOR=y -# CONFIG_REGULATOR_DEBUG is not set -# CONFIG_REGULATOR_DUMMY is not set -CONFIG_REGULATOR_FIXED_VOLTAGE=m -# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set -# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set -CONFIG_REGULATOR_GPIO=m -# CONFIG_REGULATOR_BQ24022 is not set -# CONFIG_REGULATOR_MAX1586 is not set -# CONFIG_REGULATOR_MAX8649 is not set -# CONFIG_REGULATOR_MAX8660 is not set -# CONFIG_REGULATOR_MAX8952 is not set -# CONFIG_REGULATOR_WM8400 is not set -# CONFIG_REGULATOR_PCF50633 is not set -# CONFIG_REGULATOR_LP3971 is not set -# CONFIG_REGULATOR_LP3972 is not set -# CONFIG_REGULATOR_TPS6105X is not set -# CONFIG_REGULATOR_TPS65023 is not set -# CONFIG_REGULATOR_TPS6507X is not set -# CONFIG_REGULATOR_ISL6271A is not set -# CONFIG_REGULATOR_AD5398 is not set +CONFIG_MFD_LM3533=m +# CONFIG_MFD_TIMBERDALE is not set +# CONFIG_MFD_TMIO is not set +CONFIG_MFD_VX855=m +# CONFIG_MFD_ARIZONA_I2C is not set +# CONFIG_REGULATOR is not set CONFIG_MEDIA_SUPPORT=m
# # Multimedia core support # +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_ANALOG_TV_SUPPORT=y +CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y +# CONFIG_MEDIA_RADIO_SUPPORT is not set +CONFIG_MEDIA_RC_SUPPORT=y CONFIG_MEDIA_CONTROLLER=y CONFIG_VIDEO_DEV=m -CONFIG_VIDEO_V4L2_COMMON=m CONFIG_VIDEO_V4L2_SUBDEV_API=y +CONFIG_VIDEO_V4L2=m +# CONFIG_VIDEO_ADV_DEBUG is not set +# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set +CONFIG_VIDEO_TUNER=m +CONFIG_V4L2_MEM2MEM_DEV=m +CONFIG_VIDEOBUF_GEN=m +CONFIG_VIDEOBUF_DMA_SG=m +CONFIG_VIDEOBUF_VMALLOC=m +CONFIG_VIDEOBUF_DMA_CONTIG=m +CONFIG_VIDEOBUF_DVB=m +CONFIG_VIDEOBUF2_CORE=m +CONFIG_VIDEOBUF2_MEMOPS=m +CONFIG_VIDEOBUF2_DMA_CONTIG=m +CONFIG_VIDEOBUF2_VMALLOC=m +CONFIG_VIDEO_V4L2_INT_DEVICE=m CONFIG_DVB_CORE=m CONFIG_DVB_NET=y -CONFIG_VIDEO_MEDIA=m +CONFIG_TTPCI_EEPROM=m +CONFIG_DVB_MAX_ADAPTERS=8 +CONFIG_DVB_DYNAMIC_MINORS=y
# -# Multimedia drivers +# Media drivers # CONFIG_RC_CORE=m -CONFIG_LIRC=m CONFIG_RC_MAP=m -# CONFIG_IR_NEC_DECODER is not set -# CONFIG_IR_RC5_DECODER is not set -# CONFIG_IR_RC6_DECODER is not set -# CONFIG_IR_JVC_DECODER is not set -# CONFIG_IR_SONY_DECODER is not set -# CONFIG_IR_RC5_SZ_DECODER is not set -# CONFIG_IR_MCE_KBD_DECODER is not set -# CONFIG_IR_LIRC_CODEC is not set -# CONFIG_RC_ATI_REMOTE is not set -# CONFIG_IR_ENE is not set -# CONFIG_IR_IMON is not set -# CONFIG_IR_MCEUSB is not set -# CONFIG_IR_ITE_CIR is not set -# CONFIG_IR_FINTEK is not set -# CONFIG_IR_NUVOTON is not set -# CONFIG_IR_REDRAT3 is not set -# CONFIG_IR_STREAMZAP is not set -# CONFIG_IR_WINBOND_CIR is not set -# CONFIG_RC_LOOPBACK is not set -CONFIG_MEDIA_ATTACH=y -CONFIG_MEDIA_TUNER=m -# CONFIG_MEDIA_TUNER_CUSTOMISE is not set -CONFIG_MEDIA_TUNER_SIMPLE=m -CONFIG_MEDIA_TUNER_TDA8290=m -CONFIG_MEDIA_TUNER_TDA827X=m -CONFIG_MEDIA_TUNER_TDA18271=m -CONFIG_MEDIA_TUNER_TDA9887=m -CONFIG_MEDIA_TUNER_TEA5761=m -CONFIG_MEDIA_TUNER_TEA5767=m -CONFIG_MEDIA_TUNER_MT20XX=m -CONFIG_MEDIA_TUNER_XC2028=m -CONFIG_MEDIA_TUNER_XC5000=m -CONFIG_MEDIA_TUNER_XC4000=m -CONFIG_MEDIA_TUNER_MC44S803=m -CONFIG_VIDEO_V4L2=m -CONFIG_VIDEO_CAPTURE_DRIVERS=y -# CONFIG_VIDEO_ADV_DEBUG is not set -# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set -# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set -CONFIG_VIDEO_IR_I2C=m - -# -# Encoders, decoders, sensors and other helper chips -# - -# -# Audio decoders, processors and mixers -# -# CONFIG_VIDEO_TVAUDIO is not set -# CONFIG_VIDEO_TDA7432 is not set -# CONFIG_VIDEO_TDA9840 is not set -# CONFIG_VIDEO_TEA6415C is not set -# CONFIG_VIDEO_TEA6420 is not set -# CONFIG_VIDEO_MSP3400 is not set -# CONFIG_VIDEO_CS5345 is not set -# CONFIG_VIDEO_CS53L32A is not set -# CONFIG_VIDEO_TLV320AIC23B is not set -# CONFIG_VIDEO_WM8775 is not set -# CONFIG_VIDEO_WM8739 is not set -# CONFIG_VIDEO_VP27SMPX is not set - -# -# RDS decoders -# -# CONFIG_VIDEO_SAA6588 is not set - -# -# Video decoders -# -# CONFIG_VIDEO_ADV7180 is not set -# CONFIG_VIDEO_BT819 is not set -# CONFIG_VIDEO_BT856 is not set -# CONFIG_VIDEO_BT866 is not set -# CONFIG_VIDEO_KS0127 is not set -# CONFIG_VIDEO_SAA7110 is not set -# CONFIG_VIDEO_SAA711X is not set -# CONFIG_VIDEO_SAA7191 is not set -# CONFIG_VIDEO_TVP514X is not set -# CONFIG_VIDEO_TVP5150 is not set -# CONFIG_VIDEO_TVP7002 is not set -# CONFIG_VIDEO_VPX3220 is not set - -# -# Video and audio decoders -# -# CONFIG_VIDEO_SAA717X is not set -# CONFIG_VIDEO_CX25840 is not set - -# -# MPEG video encoders -# -# CONFIG_VIDEO_CX2341X is not set - -# -# Video encoders -# -# CONFIG_VIDEO_SAA7127 is not set -# CONFIG_VIDEO_SAA7185 is not set -# CONFIG_VIDEO_ADV7170 is not set -# CONFIG_VIDEO_ADV7175 is not set -# CONFIG_VIDEO_ADV7343 is not set -# CONFIG_VIDEO_AK881X is not set - -# -# Camera sensor devices -# -# CONFIG_VIDEO_OV7670 is not set -# CONFIG_VIDEO_MT9P031 is not set -# CONFIG_VIDEO_MT9T001 is not set -# CONFIG_VIDEO_MT9V011 is not set -# CONFIG_VIDEO_MT9V032 is not set -# CONFIG_VIDEO_TCM825X is not set -# CONFIG_VIDEO_SR030PC30 is not set -# CONFIG_VIDEO_NOON010PC30 is not set -# CONFIG_VIDEO_M5MOLS is not set -# CONFIG_VIDEO_S5K6AA is not set +CONFIG_RC_DECODERS=y +CONFIG_LIRC=m +CONFIG_IR_LIRC_CODEC=m +CONFIG_IR_NEC_DECODER=m +CONFIG_IR_RC5_DECODER=m +CONFIG_IR_RC6_DECODER=m +CONFIG_IR_JVC_DECODER=m +CONFIG_IR_SONY_DECODER=m +CONFIG_IR_RC5_SZ_DECODER=m +CONFIG_IR_SANYO_DECODER=m +CONFIG_IR_MCE_KBD_DECODER=m +CONFIG_RC_DEVICES=y +CONFIG_RC_ATI_REMOTE=m +CONFIG_IR_ENE=m +CONFIG_IR_IMON=m +CONFIG_IR_MCEUSB=m +CONFIG_IR_ITE_CIR=m +CONFIG_IR_FINTEK=m +CONFIG_IR_NUVOTON=m +CONFIG_IR_REDRAT3=m +CONFIG_IR_STREAMZAP=m +CONFIG_IR_WINBOND_CIR=m +CONFIG_IR_IGUANA=m +CONFIG_IR_TTUSBIR=m +CONFIG_RC_LOOPBACK=m +CONFIG_IR_GPIO_CIR=m +CONFIG_MEDIA_USB_SUPPORT=y + +# +# Webcam devices +# +CONFIG_USB_VIDEO_CLASS=m +CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y +CONFIG_USB_GSPCA=m +CONFIG_USB_M5602=m +CONFIG_USB_STV06XX=m +CONFIG_USB_GL860=m +CONFIG_USB_GSPCA_BENQ=m +CONFIG_USB_GSPCA_CONEX=m +CONFIG_USB_GSPCA_CPIA1=m +CONFIG_USB_GSPCA_ETOMS=m +CONFIG_USB_GSPCA_FINEPIX=m +CONFIG_USB_GSPCA_JEILINJ=m +CONFIG_USB_GSPCA_JL2005BCD=m +CONFIG_USB_GSPCA_KINECT=m +CONFIG_USB_GSPCA_KONICA=m +CONFIG_USB_GSPCA_MARS=m +CONFIG_USB_GSPCA_MR97310A=m +CONFIG_USB_GSPCA_NW80X=m +CONFIG_USB_GSPCA_OV519=m +CONFIG_USB_GSPCA_OV534=m +CONFIG_USB_GSPCA_OV534_9=m +CONFIG_USB_GSPCA_PAC207=m +CONFIG_USB_GSPCA_PAC7302=m +CONFIG_USB_GSPCA_PAC7311=m +CONFIG_USB_GSPCA_SE401=m +CONFIG_USB_GSPCA_SN9C2028=m +CONFIG_USB_GSPCA_SN9C20X=m +CONFIG_USB_GSPCA_SONIXB=m +CONFIG_USB_GSPCA_SONIXJ=m +CONFIG_USB_GSPCA_SPCA500=m +CONFIG_USB_GSPCA_SPCA501=m +CONFIG_USB_GSPCA_SPCA505=m +CONFIG_USB_GSPCA_SPCA506=m +CONFIG_USB_GSPCA_SPCA508=m +CONFIG_USB_GSPCA_SPCA561=m +CONFIG_USB_GSPCA_SPCA1528=m +CONFIG_USB_GSPCA_SQ905=m +CONFIG_USB_GSPCA_SQ905C=m +CONFIG_USB_GSPCA_SQ930X=m +CONFIG_USB_GSPCA_STK014=m +CONFIG_USB_GSPCA_STV0680=m +CONFIG_USB_GSPCA_SUNPLUS=m +CONFIG_USB_GSPCA_T613=m +CONFIG_USB_GSPCA_TOPRO=m +CONFIG_USB_GSPCA_TV8532=m +CONFIG_USB_GSPCA_VC032X=m +CONFIG_USB_GSPCA_VICAM=m +CONFIG_USB_GSPCA_XIRLINK_CIT=m +CONFIG_USB_GSPCA_ZC3XX=m +CONFIG_USB_PWC=m +# CONFIG_USB_PWC_DEBUG is not set +CONFIG_USB_PWC_INPUT_EVDEV=y +CONFIG_VIDEO_CPIA2=m +CONFIG_USB_ZR364XX=m +CONFIG_USB_STKWEBCAM=m +CONFIG_USB_S2255=m +CONFIG_USB_SN9C102=m + +# +# Analog TV USB devices +# +CONFIG_VIDEO_PVRUSB2=m +CONFIG_VIDEO_PVRUSB2_SYSFS=y +CONFIG_VIDEO_PVRUSB2_DVB=y +# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set +CONFIG_VIDEO_HDPVR=m +CONFIG_VIDEO_TLG2300=m +CONFIG_VIDEO_USBVISION=m +CONFIG_VIDEO_STK1160=m +CONFIG_VIDEO_STK1160_AC97=y + +# +# Analog/digital TV USB devices +# +CONFIG_VIDEO_AU0828=m +CONFIG_VIDEO_AU0828_V4L2=y +CONFIG_VIDEO_CX231XX=m +CONFIG_VIDEO_CX231XX_RC=y +CONFIG_VIDEO_CX231XX_ALSA=m +CONFIG_VIDEO_CX231XX_DVB=m +CONFIG_VIDEO_TM6000=m +CONFIG_VIDEO_TM6000_ALSA=m +CONFIG_VIDEO_TM6000_DVB=m + +# +# Digital TV USB devices +# +CONFIG_DVB_USB=m +# CONFIG_DVB_USB_DEBUG is not set +CONFIG_DVB_USB_A800=m +CONFIG_DVB_USB_DIBUSB_MB=m +CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y +CONFIG_DVB_USB_DIBUSB_MC=m +CONFIG_DVB_USB_DIB0700=m +CONFIG_DVB_USB_UMT_010=m +CONFIG_DVB_USB_CXUSB=m +CONFIG_DVB_USB_M920X=m +CONFIG_DVB_USB_DIGITV=m +CONFIG_DVB_USB_VP7045=m +CONFIG_DVB_USB_VP702X=m +CONFIG_DVB_USB_GP8PSK=m +CONFIG_DVB_USB_NOVA_T_USB2=m +CONFIG_DVB_USB_TTUSB2=m +CONFIG_DVB_USB_DTT200U=m +CONFIG_DVB_USB_OPERA1=m +CONFIG_DVB_USB_AF9005=m +CONFIG_DVB_USB_AF9005_REMOTE=m +CONFIG_DVB_USB_PCTV452E=m +CONFIG_DVB_USB_DW2102=m +CONFIG_DVB_USB_CINERGY_T2=m +CONFIG_DVB_USB_DTV5100=m +CONFIG_DVB_USB_FRIIO=m +CONFIG_DVB_USB_AZ6027=m +CONFIG_DVB_USB_TECHNISAT_USB2=m +CONFIG_DVB_USB_V2=m +CONFIG_DVB_USB_AF9015=m +CONFIG_DVB_USB_AF9035=m +CONFIG_DVB_USB_ANYSEE=m +CONFIG_DVB_USB_AU6610=m +CONFIG_DVB_USB_AZ6007=m +CONFIG_DVB_USB_CE6230=m +CONFIG_DVB_USB_EC168=m +CONFIG_DVB_USB_GL861=m +CONFIG_DVB_USB_IT913X=m +CONFIG_DVB_USB_LME2510=m +CONFIG_DVB_USB_MXL111SF=m +CONFIG_DVB_USB_RTL28XXU=m +CONFIG_DVB_USB_DVBSKY=m +CONFIG_DVB_TTUSB_BUDGET=m +CONFIG_DVB_TTUSB_DEC=m +CONFIG_SMS_USB_DRV=m +CONFIG_DVB_B2C2_FLEXCOP_USB=m +# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set + +# +# Webcam, TV (analog/digital) USB devices +# +CONFIG_VIDEO_EM28XX=m +CONFIG_VIDEO_EM28XX_ALSA=m +CONFIG_VIDEO_EM28XX_DVB=m +CONFIG_VIDEO_EM28XX_RC=m +CONFIG_MEDIA_PCI_SUPPORT=y + +# +# Media capture support +# +CONFIG_VIDEO_MEYE=m + +# +# Media capture/analog TV support +# +CONFIG_VIDEO_IVTV=m +CONFIG_VIDEO_IVTV_ALSA=m +CONFIG_VIDEO_FB_IVTV=m +CONFIG_VIDEO_ZORAN=m +CONFIG_VIDEO_ZORAN_DC30=m +CONFIG_VIDEO_ZORAN_ZR36060=m +CONFIG_VIDEO_ZORAN_BUZ=m +CONFIG_VIDEO_ZORAN_DC10=m +CONFIG_VIDEO_ZORAN_LML33=m +CONFIG_VIDEO_ZORAN_LML33R10=m +CONFIG_VIDEO_ZORAN_AVS6EYES=m +CONFIG_VIDEO_HEXIUM_GEMINI=m +CONFIG_VIDEO_HEXIUM_ORION=m +CONFIG_VIDEO_MXB=m + +# +# Media capture/analog/hybrid TV support +# +CONFIG_VIDEO_CX18=m +CONFIG_VIDEO_CX18_ALSA=m +CONFIG_VIDEO_CX23885=m +CONFIG_MEDIA_ALTERA_CI=m +CONFIG_VIDEO_CX25821=m +CONFIG_VIDEO_CX25821_ALSA=m +CONFIG_VIDEO_CX88=m +CONFIG_VIDEO_CX88_ALSA=m +CONFIG_VIDEO_CX88_BLACKBIRD=m +CONFIG_VIDEO_CX88_DVB=m +CONFIG_VIDEO_CX88_VP3054=m +CONFIG_VIDEO_CX88_MPEG=m +CONFIG_VIDEO_BT848=m +CONFIG_DVB_BT8XX=m +CONFIG_VIDEO_SAA7134=m +CONFIG_VIDEO_SAA7134_ALSA=m +CONFIG_VIDEO_SAA7134_RC=y +CONFIG_VIDEO_SAA7134_DVB=m +CONFIG_VIDEO_SAA7164=m + +# +# Media digital TV PCI Adapters +# +CONFIG_DVB_AV7110=m +CONFIG_DVB_AV7110_OSD=y +CONFIG_DVB_BUDGET_CORE=m +CONFIG_DVB_BUDGET=m +CONFIG_DVB_BUDGET_CI=m +CONFIG_DVB_BUDGET_AV=m +CONFIG_DVB_BUDGET_PATCH=m +CONFIG_DVB_B2C2_FLEXCOP_PCI=m +# CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG is not set +CONFIG_DVB_PLUTO2=m +CONFIG_DVB_DM1105=m +CONFIG_DVB_PT1=m +CONFIG_MANTIS_CORE=m +CONFIG_DVB_MANTIS=m +CONFIG_DVB_HOPPER=m +CONFIG_DVB_NGENE=m +CONFIG_DVB_DDBRIDGE=m +CONFIG_V4L_PLATFORM_DRIVERS=y +CONFIG_VIDEO_CAFE_CCIC=m +# CONFIG_VIDEO_VIA_CAMERA is not set +CONFIG_VIDEO_TIMBERDALE=m +CONFIG_SOC_CAMERA=m +CONFIG_SOC_CAMERA_PLATFORM=m +CONFIG_VIDEO_SH_MOBILE_CSI2=m +CONFIG_VIDEO_SH_MOBILE_CEU=m +CONFIG_V4L_MEM2MEM_DRIVERS=y +CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m +CONFIG_VIDEO_SH_VEU=m +# CONFIG_V4L_TEST_DRIVERS is not set
# -# Flash devices +# Supported MMC/SDIO adapters # -# CONFIG_VIDEO_ADP1653 is not set +# CONFIG_SMS_SDIO_DRV is not set +# CONFIG_MEDIA_PARPORT_SUPPORT is not set
# -# Video improvement chips +# Supported FireWire (IEEE 1394) Adapters # -# CONFIG_VIDEO_UPD64031A is not set -# CONFIG_VIDEO_UPD64083 is not set +CONFIG_DVB_FIREDTV=m +CONFIG_DVB_FIREDTV_INPUT=y +CONFIG_MEDIA_COMMON_OPTIONS=y
# -# Miscelaneous helper chips +# common driver options # -# CONFIG_VIDEO_THS7303 is not set -# CONFIG_VIDEO_M52790 is not set -# CONFIG_VIDEO_VIVI is not set -# CONFIG_VIDEO_BT848 is not set -# CONFIG_VIDEO_PMS is not set -# CONFIG_VIDEO_BWQCAM is not set -# CONFIG_VIDEO_CQCAM is not set -# CONFIG_VIDEO_W9966 is not set -# CONFIG_VIDEO_CPIA2 is not set -# CONFIG_VIDEO_ZORAN is not set -# CONFIG_VIDEO_MEYE is not set -# CONFIG_VIDEO_SAA7134 is not set -# CONFIG_VIDEO_MXB is not set -# CONFIG_VIDEO_HEXIUM_ORION is not set -# CONFIG_VIDEO_HEXIUM_GEMINI is not set -# CONFIG_VIDEO_TIMBERDALE is not set -# CONFIG_VIDEO_CX88 is not set -# CONFIG_VIDEO_CX23885 is not set -# CONFIG_VIDEO_CX25821 is not set -# CONFIG_VIDEO_AU0828 is not set -# CONFIG_VIDEO_IVTV is not set -# CONFIG_VIDEO_CX18 is not set -# CONFIG_VIDEO_SAA7164 is not set -# CONFIG_VIDEO_CAFE_CCIC is not set -# CONFIG_VIDEO_VIA_CAMERA is not set -# CONFIG_SOC_CAMERA is not set -CONFIG_V4L_USB_DRIVERS=y -# CONFIG_USB_VIDEO_CLASS is not set -CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y -# CONFIG_USB_GSPCA is not set -# CONFIG_VIDEO_PVRUSB2 is not set -# CONFIG_VIDEO_HDPVR is not set -# CONFIG_VIDEO_EM28XX is not set -# CONFIG_VIDEO_TLG2300 is not set -# CONFIG_VIDEO_CX231XX is not set -# CONFIG_VIDEO_TM6000 is not set -# CONFIG_VIDEO_USBVISION is not set -# CONFIG_USB_ET61X251 is not set -# CONFIG_USB_SN9C102 is not set -# CONFIG_USB_PWC is not set -# CONFIG_USB_ZR364XX is not set -# CONFIG_USB_STKWEBCAM is not set -# CONFIG_USB_S2255 is not set -# CONFIG_V4L_MEM2MEM_DRIVERS is not set -CONFIG_RADIO_ADAPTERS=y -# CONFIG_RADIO_CADET is not set -# CONFIG_RADIO_RTRACK is not set -# CONFIG_RADIO_RTRACK2 is not set -# CONFIG_RADIO_AZTECH is not set -# CONFIG_RADIO_GEMTEK is not set -# CONFIG_RADIO_MAXIRADIO is not set -# CONFIG_RADIO_MIROPCM20 is not set -# CONFIG_RADIO_SF16FMI is not set -# CONFIG_RADIO_SF16FMR2 is not set -# CONFIG_RADIO_TERRATEC is not set -# CONFIG_RADIO_TRUST is not set -# CONFIG_RADIO_TYPHOON is not set -# CONFIG_RADIO_ZOLTRIX is not set -# CONFIG_I2C_SI4713 is not set -# CONFIG_RADIO_SI4713 is not set -# CONFIG_USB_DSBR is not set -# CONFIG_RADIO_SI470X is not set -# CONFIG_USB_MR800 is not set -# CONFIG_RADIO_TEA5764 is not set -# CONFIG_RADIO_SAA7706H is not set -# CONFIG_RADIO_TEF6862 is not set -# CONFIG_RADIO_TIMBERDALE is not set -# CONFIG_RADIO_WL1273 is not set - -# -# Texas Instruments WL128x FM driver (ST based) -# -# CONFIG_RADIO_WL128X is not set -CONFIG_DVB_MAX_ADAPTERS=8 -# CONFIG_DVB_DYNAMIC_MINORS is not set -CONFIG_DVB_CAPTURE_DRIVERS=y +CONFIG_VIDEO_CX2341X=m +CONFIG_VIDEO_BTCX=m +CONFIG_VIDEO_TVEEPROM=m +CONFIG_CYPRESS_FIRMWARE=m +CONFIG_DVB_B2C2_FLEXCOP=m +CONFIG_VIDEO_SAA7146=m +CONFIG_VIDEO_SAA7146_VV=m +CONFIG_SMS_SIANO_MDTV=m +CONFIG_SMS_SIANO_RC=y +# CONFIG_SMS_SIANO_DEBUGFS is not set
# -# Supported SAA7146 based PCI Adapters +# Media ancillary drivers (tuners, sensors, i2c, frontends) # -# CONFIG_TTPCI_EEPROM is not set -# CONFIG_DVB_AV7110 is not set -# CONFIG_DVB_BUDGET_CORE is not set +CONFIG_MEDIA_SUBDRV_AUTOSELECT=y +CONFIG_MEDIA_ATTACH=y +CONFIG_VIDEO_IR_I2C=m
# -# Supported USB Adapters +# Audio decoders, processors and mixers # -# CONFIG_DVB_USB is not set -# CONFIG_DVB_TTUSB_BUDGET is not set -# CONFIG_DVB_TTUSB_DEC is not set -# CONFIG_SMS_SIANO_MDTV is not set +CONFIG_VIDEO_TVAUDIO=m +CONFIG_VIDEO_TDA7432=m +CONFIG_VIDEO_TDA9840=m +CONFIG_VIDEO_TEA6415C=m +CONFIG_VIDEO_TEA6420=m +CONFIG_VIDEO_MSP3400=m +CONFIG_VIDEO_CS5345=m +CONFIG_VIDEO_CS53L32A=m +CONFIG_VIDEO_WM8775=m +CONFIG_VIDEO_WM8739=m +CONFIG_VIDEO_VP27SMPX=m
# -# Supported FlexCopII (B2C2) Adapters +# RDS decoders # -# CONFIG_DVB_B2C2_FLEXCOP is not set +CONFIG_VIDEO_SAA6588=m
# -# Supported BT878 Adapters +# Video decoders # +CONFIG_VIDEO_ADV7180=m +CONFIG_VIDEO_BT819=m +CONFIG_VIDEO_BT856=m +CONFIG_VIDEO_BT866=m +CONFIG_VIDEO_KS0127=m +CONFIG_VIDEO_SAA7110=m +CONFIG_VIDEO_SAA711X=m +CONFIG_VIDEO_TVP5150=m +CONFIG_VIDEO_VPX3220=m
# -# Supported Pluto2 Adapters +# Video and audio decoders # -# CONFIG_DVB_PLUTO2 is not set +CONFIG_VIDEO_SAA717X=m +CONFIG_VIDEO_CX25840=m
# -# Supported SDMC DM1105 Adapters +# Video encoders # -# CONFIG_DVB_DM1105 is not set +CONFIG_VIDEO_SAA7127=m +CONFIG_VIDEO_SAA7185=m +CONFIG_VIDEO_ADV7170=m +CONFIG_VIDEO_ADV7175=m
# -# Supported FireWire (IEEE 1394) Adapters +# Camera sensor devices # -# CONFIG_DVB_FIREDTV is not set +CONFIG_VIDEO_OV7670=m +CONFIG_VIDEO_MT9V011=m
# -# Supported Earthsoft PT1 Adapters +# Flash devices # -# CONFIG_DVB_PT1 is not set
# -# Supported Mantis Adapters +# Video improvement chips # -# CONFIG_MANTIS_CORE is not set +CONFIG_VIDEO_UPD64031A=m +CONFIG_VIDEO_UPD64083=m
# -# Supported nGene Adapters +# Miscelaneous helper chips # -# CONFIG_DVB_NGENE is not set +CONFIG_VIDEO_M52790=m
# -# Supported ddbridge ('Octopus') Adapters +# Sensors used on soc_camera driver # -# CONFIG_DVB_DDBRIDGE is not set
# -# Supported DVB Frontends +# soc_camera sensor drivers # -# CONFIG_DVB_FE_CUSTOMISE is not set +CONFIG_SOC_CAMERA_IMX074=m +CONFIG_SOC_CAMERA_MT9M001=m +CONFIG_SOC_CAMERA_MT9M111=m +CONFIG_SOC_CAMERA_MT9T031=m +CONFIG_SOC_CAMERA_MT9T112=m +CONFIG_SOC_CAMERA_MT9V022=m +CONFIG_SOC_CAMERA_OV2640=m +CONFIG_SOC_CAMERA_OV5642=m +CONFIG_SOC_CAMERA_OV6650=m +CONFIG_SOC_CAMERA_OV772X=m +CONFIG_SOC_CAMERA_OV9640=m +CONFIG_SOC_CAMERA_OV9740=m +CONFIG_SOC_CAMERA_RJ54N1=m +CONFIG_SOC_CAMERA_TW9910=m +CONFIG_MEDIA_TUNER=m +CONFIG_MEDIA_TUNER_SIMPLE=m +CONFIG_MEDIA_TUNER_TDA8290=m +CONFIG_MEDIA_TUNER_TDA827X=m +CONFIG_MEDIA_TUNER_TDA18271=m +CONFIG_MEDIA_TUNER_TDA9887=m +CONFIG_MEDIA_TUNER_MT20XX=m +CONFIG_MEDIA_TUNER_MT2060=m +CONFIG_MEDIA_TUNER_MT2063=m +CONFIG_MEDIA_TUNER_MT2266=m +CONFIG_MEDIA_TUNER_MT2131=m +CONFIG_MEDIA_TUNER_QT1010=m +CONFIG_MEDIA_TUNER_XC2028=m +CONFIG_MEDIA_TUNER_XC5000=m +CONFIG_MEDIA_TUNER_XC4000=m +CONFIG_MEDIA_TUNER_MXL5005S=m +CONFIG_MEDIA_TUNER_MXL5007T=m +CONFIG_MEDIA_TUNER_MC44S803=m +CONFIG_MEDIA_TUNER_MAX2165=m +CONFIG_MEDIA_TUNER_TDA18218=m +CONFIG_MEDIA_TUNER_FC0011=m +CONFIG_MEDIA_TUNER_FC0012=m +CONFIG_MEDIA_TUNER_FC0013=m +CONFIG_MEDIA_TUNER_TDA18212=m +CONFIG_MEDIA_TUNER_E4000=m +CONFIG_MEDIA_TUNER_FC2580=m +CONFIG_MEDIA_TUNER_TUA9001=m +CONFIG_MEDIA_TUNER_IT913X=m +CONFIG_MEDIA_TUNER_R820T=m
# # Multistandard (satellite) frontends # +CONFIG_DVB_STB0899=m +CONFIG_DVB_STB6100=m +CONFIG_DVB_STV090x=m +CONFIG_DVB_STV6110x=m
# # Multistandard (cable + terrestrial) frontends # +CONFIG_DVB_DRXK=m +CONFIG_DVB_TDA18271C2DD=m
# # DVB-S (satellite) frontends # +CONFIG_DVB_CX24110=m +CONFIG_DVB_CX24123=m +CONFIG_DVB_MT312=m +CONFIG_DVB_ZL10036=m +CONFIG_DVB_ZL10039=m +CONFIG_DVB_S5H1420=m +CONFIG_DVB_STV0288=m +CONFIG_DVB_STB6000=m +CONFIG_DVB_STV0299=m +CONFIG_DVB_STV6110=m +CONFIG_DVB_STV0900=m +CONFIG_DVB_TDA8083=m +CONFIG_DVB_TDA10086=m +CONFIG_DVB_TDA8261=m +CONFIG_DVB_VES1X93=m +CONFIG_DVB_TUNER_ITD1000=m +CONFIG_DVB_TUNER_CX24113=m +CONFIG_DVB_TDA826X=m +CONFIG_DVB_TUA6100=m +CONFIG_DVB_CX24116=m +CONFIG_DVB_M88DS3103=m +CONFIG_DVB_M88DC2800=m +CONFIG_DVB_SI21XX=m +CONFIG_DVB_TS2020=m +CONFIG_DVB_DS3000=m +CONFIG_DVB_MB86A16=m +CONFIG_DVB_TDA10071=m
# # DVB-T (terrestrial) frontends # +CONFIG_DVB_SP8870=m +CONFIG_DVB_SP887X=m +CONFIG_DVB_CX22700=m +CONFIG_DVB_CX22702=m +CONFIG_DVB_DRXD=m +CONFIG_DVB_L64781=m +CONFIG_DVB_TDA1004X=m +CONFIG_DVB_NXT6000=m +CONFIG_DVB_MT352=m +CONFIG_DVB_ZL10353=m +CONFIG_DVB_DIB3000MB=m +CONFIG_DVB_DIB3000MC=m +CONFIG_DVB_DIB7000M=m +CONFIG_DVB_DIB7000P=m +CONFIG_DVB_TDA10048=m +CONFIG_DVB_AF9013=m +CONFIG_DVB_EC100=m +CONFIG_DVB_STV0367=m +CONFIG_DVB_CXD2820R=m +CONFIG_DVB_RTL2830=m +CONFIG_DVB_RTL2832=m
# # DVB-C (cable) frontends # +CONFIG_DVB_VES1820=m +CONFIG_DVB_TDA10021=m +CONFIG_DVB_TDA10023=m +CONFIG_DVB_STV0297=m
# # ATSC (North American/Korean Terrestrial/Cable DTV) frontends # +CONFIG_DVB_NXT200X=m +CONFIG_DVB_OR51211=m +CONFIG_DVB_OR51132=m +CONFIG_DVB_BCM3510=m +CONFIG_DVB_LGDT330X=m +CONFIG_DVB_LGDT3305=m +CONFIG_DVB_LG2160=m +CONFIG_DVB_S5H1409=m +CONFIG_DVB_AU8522=m +CONFIG_DVB_AU8522_DTV=m +CONFIG_DVB_AU8522_V4L=m +CONFIG_DVB_S5H1411=m
# # ISDB-T (terrestrial) frontends # +CONFIG_DVB_S921=m +CONFIG_DVB_DIB8000=m +CONFIG_DVB_MB86A20S=m
# # Digital terrestrial only tuners/PLL # +CONFIG_DVB_PLL=m +CONFIG_DVB_TUNER_DIB0070=m +CONFIG_DVB_TUNER_DIB0090=m
# # SEC control devices for DVB-S # +CONFIG_DVB_LNBP21=m +CONFIG_DVB_LNBP22=m +CONFIG_DVB_ISL6405=m +CONFIG_DVB_ISL6421=m +CONFIG_DVB_ISL6423=m +CONFIG_DVB_A8293=m +CONFIG_DVB_LGS8GXX=m +CONFIG_DVB_ATBM8830=m +CONFIG_DVB_TDA665x=m +CONFIG_DVB_IX2505V=m +CONFIG_DVB_IT913X_FE=m +CONFIG_DVB_M88RS2000=m +CONFIG_DVB_AF9033=m
# # Tools to develop new frontends @@ -3257,27 +3767,40 @@ CONFIG_DVB_CAPTURE_DRIVERS=y # # Graphics support # -CONFIG_AGP=m -CONFIG_AGP_ALI=m -CONFIG_AGP_ATI=m -CONFIG_AGP_AMD=m -CONFIG_AGP_AMD64=m -CONFIG_AGP_INTEL=m -CONFIG_AGP_NVIDIA=m -CONFIG_AGP_SIS=m -CONFIG_AGP_SWORKS=m -CONFIG_AGP_VIA=m -CONFIG_AGP_EFFICEON=m +CONFIG_AGP=y +# CONFIG_AGP_ALI is not set +# CONFIG_AGP_ATI is not set +# CONFIG_AGP_AMD is not set +CONFIG_AGP_AMD64=y +CONFIG_AGP_INTEL=y +# CONFIG_AGP_NVIDIA is not set +CONFIG_AGP_SIS=y +# CONFIG_AGP_SWORKS is not set +CONFIG_AGP_VIA=y +# CONFIG_AGP_EFFICEON is not set CONFIG_VGA_ARB=y CONFIG_VGA_ARB_MAX_GPUS=16 -# CONFIG_VGA_SWITCHEROO is not set +CONFIG_VGA_SWITCHEROO=y CONFIG_DRM=m +CONFIG_DRM_USB=m CONFIG_DRM_KMS_HELPER=m +# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set CONFIG_DRM_TTM=m + +# +# I2C encoder or helper chips +# +CONFIG_DRM_I2C_CH7006=m +CONFIG_DRM_I2C_SIL164=m +CONFIG_DRM_I2C_NXP_TDA998X=m CONFIG_DRM_TDFX=m CONFIG_DRM_R128=m CONFIG_DRM_RADEON=m -CONFIG_DRM_RADEON_KMS=y +# CONFIG_DRM_RADEON_UMS is not set +CONFIG_DRM_NOUVEAU=m +CONFIG_NOUVEAU_DEBUG=5 +CONFIG_NOUVEAU_DEBUG_DEFAULT=3 +CONFIG_DRM_NOUVEAU_BACKLIGHT=y CONFIG_DRM_I810=m CONFIG_DRM_I915=m CONFIG_DRM_I915_KMS=y @@ -3286,9 +3809,18 @@ CONFIG_DRM_SIS=m CONFIG_DRM_VIA=m CONFIG_DRM_SAVAGE=m CONFIG_DRM_VMWGFX=m -CONFIG_STUB_POULSBO=m +# CONFIG_DRM_VMWGFX_FBCON is not set +CONFIG_DRM_GMA500=m +CONFIG_DRM_GMA600=y +CONFIG_DRM_GMA3600=y +CONFIG_DRM_UDL=m +CONFIG_DRM_AST=m +CONFIG_DRM_MGAG200=m +CONFIG_DRM_CIRRUS_QEMU=m +CONFIG_DRM_QXL=m CONFIG_VGASTATE=m CONFIG_VIDEO_OUTPUT_CONTROL=m +CONFIG_HDMI=y CONFIG_FB=y CONFIG_FIRMWARE_EDID=y CONFIG_FB_DDC=m @@ -3302,7 +3834,6 @@ CONFIG_FB_SYS_COPYAREA=m CONFIG_FB_SYS_IMAGEBLIT=m # CONFIG_FB_FOREIGN_ENDIAN is not set CONFIG_FB_SYS_FOPS=m -# CONFIG_FB_WMT_GE_ROPS is not set CONFIG_FB_DEFERRED_IO=y CONFIG_FB_SVGALIB=m # CONFIG_FB_MACMODES is not set @@ -3313,45 +3844,38 @@ CONFIG_FB_TILEBLITTING=y # # Frame buffer hardware drivers # -CONFIG_FB_CIRRUS=m +# CONFIG_FB_CIRRUS is not set CONFIG_FB_PM2=m -CONFIG_FB_PM2_FIFO_DISCONNECT=y +# CONFIG_FB_PM2_FIFO_DISCONNECT is not set CONFIG_FB_CYBER2000=m CONFIG_FB_CYBER2000_DDC=y -# CONFIG_FB_ARC is not set -CONFIG_FB_ASILIANT=y +CONFIG_FB_ARC=m +# CONFIG_FB_ASILIANT is not set # CONFIG_FB_IMSTT is not set -# CONFIG_FB_VGA16 is not set -CONFIG_FB_UVESA=m +CONFIG_FB_VGA16=m +# CONFIG_FB_UVESA is not set CONFIG_FB_VESA=y +CONFIG_FB_EFI=y # CONFIG_FB_N411 is not set -# CONFIG_FB_HGA is not set +CONFIG_FB_HGA=m # CONFIG_FB_S1D13XXX is not set -CONFIG_FB_NVIDIA=m -CONFIG_FB_NVIDIA_I2C=y -# CONFIG_FB_NVIDIA_DEBUG is not set -CONFIG_FB_NVIDIA_BACKLIGHT=y +# CONFIG_FB_NVIDIA is not set CONFIG_FB_RIVA=m CONFIG_FB_RIVA_I2C=y # CONFIG_FB_RIVA_DEBUG is not set CONFIG_FB_RIVA_BACKLIGHT=y -CONFIG_FB_I810=m -CONFIG_FB_I810_GTF=y -CONFIG_FB_I810_I2C=y +CONFIG_FB_I740=m +# CONFIG_FB_I810 is not set CONFIG_FB_LE80578=m CONFIG_FB_CARILLO_RANCH=m +# CONFIG_FB_INTEL is not set CONFIG_FB_MATROX=m CONFIG_FB_MATROX_MILLENIUM=y CONFIG_FB_MATROX_MYSTIQUE=y -CONFIG_FB_MATROX_G=y -CONFIG_FB_MATROX_I2C=m -CONFIG_FB_MATROX_MAVEN=m -CONFIG_FB_RADEON=m -CONFIG_FB_RADEON_I2C=y -CONFIG_FB_RADEON_BACKLIGHT=y -# CONFIG_FB_RADEON_DEBUG is not set -CONFIG_FB_ATY128=m -CONFIG_FB_ATY128_BACKLIGHT=y +# CONFIG_FB_MATROX_G is not set +# CONFIG_FB_MATROX_I2C is not set +# CONFIG_FB_RADEON is not set +# CONFIG_FB_ATY128 is not set CONFIG_FB_ATY=m CONFIG_FB_ATY_CT=y # CONFIG_FB_ATY_GENERIC_LCD is not set @@ -3362,17 +3886,13 @@ CONFIG_FB_S3_DDC=y CONFIG_FB_SAVAGE=m CONFIG_FB_SAVAGE_I2C=y CONFIG_FB_SAVAGE_ACCEL=y -CONFIG_FB_SIS=m -CONFIG_FB_SIS_300=y -CONFIG_FB_SIS_315=y +# CONFIG_FB_SIS is not set CONFIG_FB_VIA=m # CONFIG_FB_VIA_DIRECT_PROCFS is not set # CONFIG_FB_VIA_X_COMPATIBILITY is not set CONFIG_FB_NEOMAGIC=m CONFIG_FB_KYRO=m -CONFIG_FB_3DFX=m -CONFIG_FB_3DFX_ACCEL=y -CONFIG_FB_3DFX_I2C=y +# CONFIG_FB_3DFX is not set CONFIG_FB_VOODOO1=m CONFIG_FB_VT8623=m CONFIG_FB_TRIDENT=m @@ -3383,44 +3903,40 @@ CONFIG_FB_GEODE=y CONFIG_FB_GEODE_LX=m CONFIG_FB_GEODE_GX=m CONFIG_FB_GEODE_GX1=m -CONFIG_FB_TMIO=m -CONFIG_FB_TMIO_ACCELL=y -CONFIG_FB_SM501=m +# CONFIG_FB_TMIO is not set +# CONFIG_FB_SM501 is not set CONFIG_FB_SMSCUFX=m -# CONFIG_FB_UDL is not set +CONFIG_FB_UDL=m +# CONFIG_FB_GOLDFISH is not set # CONFIG_FB_VIRTUAL is not set CONFIG_XEN_FBDEV_FRONTEND=m -CONFIG_FB_METRONOME=m +# CONFIG_FB_METRONOME is not set # CONFIG_FB_MB862XX is not set # CONFIG_FB_BROADSHEET is not set +# CONFIG_FB_AUO_K190X is not set +CONFIG_FB_HYPERV=m +# CONFIG_EXYNOS_VIDEO is not set CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_LCD_CLASS_DEVICE=m CONFIG_LCD_PLATFORM=m CONFIG_BACKLIGHT_CLASS_DEVICE=y -CONFIG_BACKLIGHT_GENERIC=m -CONFIG_BACKLIGHT_PROGEAR=m -CONFIG_BACKLIGHT_CARILLO_RANCH=m +# CONFIG_BACKLIGHT_GENERIC is not set +# CONFIG_BACKLIGHT_LM3533 is not set +# CONFIG_BACKLIGHT_CARILLO_RANCH is not set CONFIG_BACKLIGHT_APPLE=m -CONFIG_BACKLIGHT_SAHARA=m -CONFIG_BACKLIGHT_ADP8860=m -CONFIG_BACKLIGHT_ADP8870=m -CONFIG_BACKLIGHT_PCF50633=m - -# -# Display device support -# -CONFIG_DISPLAY_SUPPORT=m - -# -# Display hardware drivers -# +# CONFIG_BACKLIGHT_SAHARA is not set +# CONFIG_BACKLIGHT_ADP8860 is not set +# CONFIG_BACKLIGHT_ADP8870 is not set +# CONFIG_BACKLIGHT_LM3630 is not set +# CONFIG_BACKLIGHT_LM3639 is not set +# CONFIG_BACKLIGHT_LP855X is not set
# # Console display driver support # CONFIG_VGA_CONSOLE=y # CONFIG_VGACON_SOFT_SCROLLBACK is not set -# CONFIG_MDA_CONSOLE is not set +CONFIG_MDA_CONSOLE=m CONFIG_DUMMY_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y @@ -3429,8 +3945,8 @@ CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y CONFIG_LOGO=y -CONFIG_LOGO_LINUX_MONO=y -CONFIG_LOGO_LINUX_VGA16=y +# CONFIG_LOGO_LINUX_MONO is not set +# CONFIG_LOGO_LINUX_VGA16 is not set CONFIG_LOGO_LINUX_CLUT224=y CONFIG_SOUND=m CONFIG_SOUND_OSS_CORE=y @@ -3453,9 +3969,12 @@ CONFIG_SND_SEQ_HRTIMER_DEFAULT=y CONFIG_SND_DYNAMIC_MINORS=y # CONFIG_SND_SUPPORT_OLD_API is not set CONFIG_SND_VERBOSE_PROCFS=y -# CONFIG_SND_VERBOSE_PRINTK is not set -# CONFIG_SND_DEBUG is not set +CONFIG_SND_VERBOSE_PRINTK=y +CONFIG_SND_DEBUG=y +# CONFIG_SND_DEBUG_VERBOSE is not set +CONFIG_SND_PCM_XRUN_DEBUG=y CONFIG_SND_VMASTER=y +CONFIG_SND_KCTL_JACK=y CONFIG_SND_DMA_SGBUF=y CONFIG_SND_RAWMIDI_SEQ=m CONFIG_SND_OPL3_LIB_SEQ=m @@ -3468,7 +3987,7 @@ CONFIG_SND_OPL4_LIB=m CONFIG_SND_VX_LIB=m CONFIG_SND_AC97_CODEC=m CONFIG_SND_DRIVERS=y -# CONFIG_SND_PCSP is not set +CONFIG_SND_PCSP=m CONFIG_SND_DUMMY=m CONFIG_SND_ALOOP=m CONFIG_SND_VIRMIDI=m @@ -3478,7 +3997,7 @@ CONFIG_SND_SERIAL_U16550=m CONFIG_SND_MPU401=m CONFIG_SND_PORTMAN2X4=m CONFIG_SND_AC97_POWER_SAVE=y -CONFIG_SND_AC97_POWER_SAVE_DEFAULT=60 +CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0 CONFIG_SND_WSS_LIB=m CONFIG_SND_SB_COMMON=m CONFIG_SND_SB8_DSP=m @@ -3491,6 +4010,7 @@ CONFIG_SND_ALS100=m CONFIG_SND_AZT1605=m CONFIG_SND_AZT2316=m CONFIG_SND_AZT2320=m +CONFIG_SND_CMI8328=m CONFIG_SND_CMI8330=m CONFIG_SND_CS4231=m CONFIG_SND_CS4236=m @@ -3528,7 +4048,7 @@ CONFIG_SND_ATIIXP_MODEM=m CONFIG_SND_AU8810=m CONFIG_SND_AU8820=m CONFIG_SND_AU8830=m -CONFIG_SND_AW2=m +# CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set @@ -3571,11 +4091,10 @@ CONFIG_SND_HDA_PREALLOC_SIZE=64 CONFIG_SND_HDA_HWDEP=y CONFIG_SND_HDA_RECONFIG=y CONFIG_SND_HDA_INPUT_BEEP=y -CONFIG_SND_HDA_INPUT_BEEP_MODE=2 +CONFIG_SND_HDA_INPUT_BEEP_MODE=1 CONFIG_SND_HDA_INPUT_JACK=y -CONFIG_SND_HDA_PATCH_LOADER=y +# CONFIG_SND_HDA_PATCH_LOADER is not set CONFIG_SND_HDA_CODEC_REALTEK=y -CONFIG_SND_HDA_ENABLE_REALTEK_QUIRKS=y CONFIG_SND_HDA_CODEC_ANALOG=y CONFIG_SND_HDA_CODEC_SIGMATEL=y CONFIG_SND_HDA_CODEC_VIA=y @@ -3584,11 +4103,11 @@ CONFIG_SND_HDA_CODEC_CIRRUS=y CONFIG_SND_HDA_CODEC_CONEXANT=y CONFIG_SND_HDA_CODEC_CA0110=y CONFIG_SND_HDA_CODEC_CA0132=y +# CONFIG_SND_HDA_CODEC_CA0132_DSP is not set CONFIG_SND_HDA_CODEC_CMEDIA=y CONFIG_SND_HDA_CODEC_SI3054=y CONFIG_SND_HDA_GENERIC=y -CONFIG_SND_HDA_POWER_SAVE=y -CONFIG_SND_HDA_POWER_SAVE_DEFAULT=60 +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 CONFIG_SND_HDSP=m CONFIG_SND_HDSPM=m CONFIG_SND_ICE1712=m @@ -3607,7 +4126,7 @@ CONFIG_SND_RIPTIDE=m CONFIG_SND_RME32=m CONFIG_SND_RME96=m CONFIG_SND_RME9652=m -CONFIG_SND_SIS7019=m +# CONFIG_SND_SIS7019 is not set CONFIG_SND_SONICVIBES=m CONFIG_SND_TRIDENT=m CONFIG_SND_VIA82XX=m @@ -3626,103 +4145,111 @@ CONFIG_SND_USB_6FIRE=m CONFIG_SND_FIREWIRE=y CONFIG_SND_FIREWIRE_LIB=m CONFIG_SND_FIREWIRE_SPEAKERS=m -CONFIG_SND_ISIGHT=m +# CONFIG_SND_ISIGHT is not set +# CONFIG_SND_SCS1X is not set CONFIG_SND_PCMCIA=y -CONFIG_SND_VXPOCKET=m -CONFIG_SND_PDAUDIOCF=m +# CONFIG_SND_VXPOCKET is not set +# CONFIG_SND_PDAUDIOCF is not set # CONFIG_SND_SOC is not set # CONFIG_SOUND_PRIME is not set CONFIG_AC97_BUS=m -CONFIG_HID_SUPPORT=y -CONFIG_HID=y -# CONFIG_HIDRAW is not set
# -# USB Input Devices +# HID support # -CONFIG_USB_HID=m -# CONFIG_HID_PID is not set -CONFIG_USB_HIDDEV=y +CONFIG_HID=y +# CONFIG_HID_BATTERY_STRENGTH is not set +CONFIG_HIDRAW=y +# CONFIG_UHID is not set +CONFIG_HID_GENERIC=y
# # Special HID drivers # -CONFIG_HID_A4TECH=m -CONFIG_HID_ACRUX=m -# CONFIG_HID_ACRUX_FF is not set -CONFIG_HID_APPLE=m -CONFIG_HID_BELKIN=m -CONFIG_HID_CHERRY=m -CONFIG_HID_CHICONY=m -CONFIG_HID_PRODIKEYS=m -CONFIG_HID_CYPRESS=m -CONFIG_HID_DRAGONRISE=m -# CONFIG_DRAGONRISE_FF is not set +CONFIG_HID_A4TECH=y +# CONFIG_HID_ACRUX is not set +CONFIG_HID_APPLE=y +# CONFIG_HID_APPLEIR is not set +CONFIG_HID_AUREAL=m +CONFIG_HID_BELKIN=y +CONFIG_HID_CHERRY=y +CONFIG_HID_CHICONY=y +# CONFIG_HID_PRODIKEYS is not set +CONFIG_HID_CYPRESS=y +# CONFIG_HID_DRAGONRISE is not set # CONFIG_HID_EMS_FF is not set -CONFIG_HID_ELECOM=m -CONFIG_HID_EZKEY=m -CONFIG_HID_HOLTEK=m -# CONFIG_HOLTEK_FF is not set +# CONFIG_HID_ELECOM is not set +CONFIG_HID_EZKEY=y +# CONFIG_HID_HOLTEK is not set CONFIG_HID_KEYTOUCH=m -CONFIG_HID_KYE=m -CONFIG_HID_UCLOGIC=m -CONFIG_HID_WALTOP=m +CONFIG_HID_KYE=y +# CONFIG_HID_UCLOGIC is not set +# CONFIG_HID_WALTOP is not set CONFIG_HID_GYRATION=m +# CONFIG_HID_ICADE is not set CONFIG_HID_TWINHAN=m -CONFIG_HID_KENSINGTON=m +CONFIG_HID_KENSINGTON=y CONFIG_HID_LCPOWER=m -CONFIG_HID_LOGITECH=m +CONFIG_HID_LENOVO_TPKBD=m +CONFIG_HID_LOGITECH=y CONFIG_HID_LOGITECH_DJ=m # CONFIG_LOGITECH_FF is not set # CONFIG_LOGIRUMBLEPAD2_FF is not set # CONFIG_LOGIG940_FF is not set # CONFIG_LOGIWHEELS_FF is not set -CONFIG_HID_MAGICMOUSE=m -CONFIG_HID_MICROSOFT=m -CONFIG_HID_MONTEREY=m -CONFIG_HID_MULTITOUCH=m -CONFIG_HID_NTRIG=m +# CONFIG_HID_MAGICMOUSE is not set +CONFIG_HID_MICROSOFT=y +CONFIG_HID_MONTEREY=y +# CONFIG_HID_MULTITOUCH is not set +# CONFIG_HID_NTRIG is not set CONFIG_HID_ORTEK=m -CONFIG_HID_PANTHERLORD=m -# CONFIG_PANTHERLORD_FF is not set +# CONFIG_HID_PANTHERLORD is not set CONFIG_HID_PETALYNX=m CONFIG_HID_PICOLCD=m CONFIG_HID_PICOLCD_FB=y CONFIG_HID_PICOLCD_BACKLIGHT=y CONFIG_HID_PICOLCD_LCD=y CONFIG_HID_PICOLCD_LEDS=y -CONFIG_HID_PRIMAX=m -CONFIG_HID_QUANTA=m +CONFIG_HID_PICOLCD_CIR=y +# CONFIG_HID_PRIMAX is not set +# CONFIG_HID_PS3REMOTE is not set CONFIG_HID_ROCCAT=m -CONFIG_HID_ROCCAT_COMMON=m -CONFIG_HID_ROCCAT_ARVO=m -CONFIG_HID_ROCCAT_KONE=m -CONFIG_HID_ROCCAT_KONEPLUS=m -CONFIG_HID_ROCCAT_KOVAPLUS=m -CONFIG_HID_ROCCAT_PYRA=m +CONFIG_HID_SAITEK=m CONFIG_HID_SAMSUNG=m -CONFIG_HID_SONY=m +# CONFIG_HID_SONY is not set CONFIG_HID_SPEEDLINK=m +# CONFIG_HID_STEELSERIES is not set CONFIG_HID_SUNPLUS=m -CONFIG_HID_GREENASIA=m -# CONFIG_GREENASIA_FF is not set -CONFIG_HID_SMARTJOYPLUS=m -# CONFIG_SMARTJOYPLUS_FF is not set +# CONFIG_HID_GREENASIA is not set +# CONFIG_HID_HYPERV_MOUSE is not set +# CONFIG_HID_SMARTJOYPLUS is not set +CONFIG_HID_TIVO=m CONFIG_HID_TOPSEED=m -CONFIG_HID_THRUSTMASTER=m -# CONFIG_THRUSTMASTER_FF is not set -CONFIG_HID_WACOM=m -# CONFIG_HID_WACOM_POWER_SUPPLY is not set -CONFIG_HID_WIIMOTE=m -CONFIG_HID_ZEROPLUS=m -# CONFIG_ZEROPLUS_FF is not set +CONFIG_HID_THINGM=m +# CONFIG_HID_THRUSTMASTER is not set +# CONFIG_HID_WACOM is not set +# CONFIG_HID_WIIMOTE is not set +# CONFIG_HID_ZEROPLUS is not set CONFIG_HID_ZYDACRON=m -CONFIG_USB_SUPPORT=y -CONFIG_USB_COMMON=y -CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_HID_SENSOR_HUB=m + +# +# USB HID support +# +CONFIG_USB_HID=y +CONFIG_HID_PID=y +CONFIG_USB_HIDDEV=y + +# +# I2C HID support +# +CONFIG_I2C_HID=m CONFIG_USB_ARCH_HAS_OHCI=y CONFIG_USB_ARCH_HAS_EHCI=y CONFIG_USB_ARCH_HAS_XHCI=y +CONFIG_USB_SUPPORT=y +CONFIG_USB_COMMON=y +CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB=y # CONFIG_USB_DEBUG is not set CONFIG_USB_ANNOUNCE_NEW_DEVICES=y @@ -3730,14 +4257,12 @@ CONFIG_USB_ANNOUNCE_NEW_DEVICES=y # # Miscellaneous USB options # -CONFIG_USB_DEVICEFS=y -CONFIG_USB_DEVICE_CLASS=y -CONFIG_USB_DYNAMIC_MINORS=y -CONFIG_USB_SUSPEND=y +CONFIG_USB_DEFAULT_PERSIST=y +# CONFIG_USB_DYNAMIC_MINORS is not set # CONFIG_USB_OTG is not set -CONFIG_USB_DWC3=m -# CONFIG_USB_DWC3_DEBUG is not set -# CONFIG_USB_MON is not set +# CONFIG_USB_OTG_WHITELIST is not set +# CONFIG_USB_OTG_BLACKLIST_HUB is not set +CONFIG_USB_MON=m CONFIG_USB_WUSB=m CONFIG_USB_WUSB_CBAF=m # CONFIG_USB_WUSB_CBAF_DEBUG is not set @@ -3747,26 +4272,31 @@ CONFIG_USB_WUSB_CBAF=m # # CONFIG_USB_C67X00_HCD is not set CONFIG_USB_XHCI_HCD=y +CONFIG_USB_XHCI_PLATFORM=m # CONFIG_USB_XHCI_HCD_DEBUGGING is not set CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_ROOT_HUB_TT=y CONFIG_USB_EHCI_TT_NEWSCHED=y -CONFIG_USB_OXU210HP_HCD=m -CONFIG_USB_ISP116X_HCD=m +CONFIG_USB_EHCI_PCI=y +CONFIG_USB_EHCI_HCD_PLATFORM=y +# CONFIG_USB_OXU210HP_HCD is not set +# CONFIG_USB_ISP116X_HCD is not set # CONFIG_USB_ISP1760_HCD is not set CONFIG_USB_ISP1362_HCD=m CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_HCD_PLATFORM=y # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set CONFIG_USB_OHCI_LITTLE_ENDIAN=y CONFIG_USB_UHCI_HCD=y -CONFIG_USB_U132_HCD=m +# CONFIG_USB_U132_HCD is not set CONFIG_USB_SL811_HCD=m -# CONFIG_USB_SL811_HCD_ISO is not set +CONFIG_USB_SL811_HCD_ISO=y # CONFIG_USB_SL811_CS is not set -CONFIG_USB_R8A66597_HCD=m +# CONFIG_USB_R8A66597_HCD is not set CONFIG_USB_WHCI_HCD=m CONFIG_USB_HWA_HCD=m +CONFIG_USB_HCD_SSB=m
# # USB Device Class drivers @@ -3783,7 +4313,7 @@ CONFIG_USB_TMC=m # # also be needed; see USB_STORAGE Help for more info # -CONFIG_USB_STORAGE=m +CONFIG_USB_STORAGE=y # CONFIG_USB_STORAGE_DEBUG is not set CONFIG_USB_STORAGE_REALTEK=m CONFIG_REALTEK_AUTOPM=y @@ -3799,20 +4329,24 @@ CONFIG_USB_STORAGE_ONETOUCH=m CONFIG_USB_STORAGE_KARMA=m CONFIG_USB_STORAGE_CYPRESS_ATACB=m CONFIG_USB_STORAGE_ENE_UB6250=m -# CONFIG_USB_LIBUSUAL is not set
# # USB Imaging devices # -# CONFIG_USB_MDC800 is not set -# CONFIG_USB_MICROTEK is not set +CONFIG_USB_MDC800=m +CONFIG_USB_MICROTEK=m +CONFIG_USB_DWC3=m +CONFIG_USB_DWC3_HOST=y +# CONFIG_USB_DWC3_DEBUG is not set +CONFIG_USB_CHIPIDEA=m +# CONFIG_USB_CHIPIDEA_HOST is not set +# CONFIG_USB_CHIPIDEA_DEBUG is not set
# # USB port drivers # CONFIG_USB_USS720=m CONFIG_USB_SERIAL=m -CONFIG_USB_EZUSB=y CONFIG_USB_SERIAL_GENERIC=y CONFIG_USB_SERIAL_AIRCABLE=m CONFIG_USB_SERIAL_ARK3116=m @@ -3822,7 +4356,7 @@ CONFIG_USB_SERIAL_WHITEHEAT=m CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m CONFIG_USB_SERIAL_CP210X=m CONFIG_USB_SERIAL_CYPRESS_M8=m -CONFIG_USB_SERIAL_EMPEG=m +# CONFIG_USB_SERIAL_EMPEG is not set CONFIG_USB_SERIAL_FTDI_SIO=m CONFIG_USB_SERIAL_FUNSOFT=m CONFIG_USB_SERIAL_VISOR=m @@ -3830,16 +4364,18 @@ CONFIG_USB_SERIAL_IPAQ=m CONFIG_USB_SERIAL_IR=m CONFIG_USB_SERIAL_EDGEPORT=m CONFIG_USB_SERIAL_EDGEPORT_TI=m -CONFIG_USB_SERIAL_GARMIN=m +CONFIG_USB_SERIAL_F81232=m +# CONFIG_USB_SERIAL_GARMIN is not set CONFIG_USB_SERIAL_IPW=m CONFIG_USB_SERIAL_IUU=m -# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set +CONFIG_USB_SERIAL_KEYSPAN_PDA=m # CONFIG_USB_SERIAL_KEYSPAN is not set -# CONFIG_USB_SERIAL_KLSI is not set +CONFIG_USB_SERIAL_KLSI=m # CONFIG_USB_SERIAL_KOBIL_SCT is not set CONFIG_USB_SERIAL_MCT_U232=m +# CONFIG_USB_SERIAL_METRO is not set CONFIG_USB_SERIAL_MOS7720=m -# CONFIG_USB_SERIAL_MOS7715_PARPORT is not set +CONFIG_USB_SERIAL_MOS7715_PARPORT=y CONFIG_USB_SERIAL_MOS7840=m CONFIG_USB_SERIAL_MOTOROLA=m # CONFIG_USB_SERIAL_NAVMAN is not set @@ -3848,22 +4384,25 @@ CONFIG_USB_SERIAL_OTI6858=m CONFIG_USB_SERIAL_QCAUX=m CONFIG_USB_SERIAL_QUALCOMM=m CONFIG_USB_SERIAL_SPCP8X5=m -CONFIG_USB_SERIAL_HP4X=m -CONFIG_USB_SERIAL_SAFE=m -# CONFIG_USB_SERIAL_SAFE_PADDED is not set +# CONFIG_USB_SERIAL_HP4X is not set +# CONFIG_USB_SERIAL_SAFE is not set CONFIG_USB_SERIAL_SIEMENS_MPI=m CONFIG_USB_SERIAL_SIERRAWIRELESS=m -CONFIG_USB_SERIAL_SYMBOL=m -CONFIG_USB_SERIAL_TI=m +# CONFIG_USB_SERIAL_SYMBOL is not set +# CONFIG_USB_SERIAL_TI is not set # CONFIG_USB_SERIAL_CYBERJACK is not set CONFIG_USB_SERIAL_XIRCOM=m CONFIG_USB_SERIAL_WWAN=m CONFIG_USB_SERIAL_OPTION=m # CONFIG_USB_SERIAL_OMNINET is not set -CONFIG_USB_SERIAL_OPTICON=m -CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m -CONFIG_USB_SERIAL_ZIO=m +# CONFIG_USB_SERIAL_OPTICON is not set +# CONFIG_USB_SERIAL_VIVOPAY_SERIAL is not set +# CONFIG_USB_SERIAL_XSENS_MT is not set +# CONFIG_USB_SERIAL_ZIO is not set +# CONFIG_USB_SERIAL_WISHBONE is not set +CONFIG_USB_SERIAL_ZTE=m CONFIG_USB_SERIAL_SSU100=m +CONFIG_USB_SERIAL_QT2=m # CONFIG_USB_SERIAL_DEBUG is not set
# @@ -3871,14 +4410,14 @@ CONFIG_USB_SERIAL_SSU100=m # CONFIG_USB_EMI62=m CONFIG_USB_EMI26=m -# CONFIG_USB_ADUTUX is not set +CONFIG_USB_ADUTUX=m CONFIG_USB_SEVSEG=m # CONFIG_USB_RIO500 is not set # CONFIG_USB_LEGOTOWER is not set CONFIG_USB_LCD=m CONFIG_USB_LED=m -CONFIG_USB_CYPRESS_CY7C63=m -CONFIG_USB_CYTHERM=m +# CONFIG_USB_CYPRESS_CY7C63 is not set +# CONFIG_USB_CYTHERM is not set # CONFIG_USB_IDMOUSE is not set CONFIG_USB_FTDI_ELAN=m # CONFIG_USB_APPLEDISPLAY is not set @@ -3888,21 +4427,17 @@ CONFIG_USB_SISUSBVGA_CON=y # CONFIG_USB_TRANCEVIBRATOR is not set CONFIG_USB_IOWARRIOR=m # CONFIG_USB_TEST is not set -CONFIG_USB_ISIGHTFW=m +# CONFIG_USB_ISIGHTFW is not set CONFIG_USB_YUREX=m +CONFIG_USB_EZUSB_FX2=m +CONFIG_USB_HSIC_USB3503=m CONFIG_USB_ATM=m CONFIG_USB_SPEEDTOUCH=m CONFIG_USB_CXACRU=m CONFIG_USB_UEAGLEATM=m CONFIG_USB_XUSBATM=m +# CONFIG_USB_PHY is not set # CONFIG_USB_GADGET is not set - -# -# OTG and related infrastructure -# -CONFIG_USB_OTG_UTILS=y -CONFIG_USB_GPIO_VBUS=m -CONFIG_NOP_USB_XCEIV=m CONFIG_UWB=m CONFIG_UWB_HWA=m CONFIG_UWB_WHCI=m @@ -3918,23 +4453,27 @@ CONFIG_MMC=m CONFIG_MMC_BLOCK=m CONFIG_MMC_BLOCK_MINORS=8 CONFIG_MMC_BLOCK_BOUNCE=y -CONFIG_SDIO_UART=m -CONFIG_MMC_TEST=m +# CONFIG_SDIO_UART is not set +# CONFIG_MMC_TEST is not set
# # MMC/SD/SDIO Host Controller Drivers # CONFIG_MMC_SDHCI=m CONFIG_MMC_SDHCI_PCI=m -# CONFIG_MMC_RICOH_MMC is not set +CONFIG_MMC_RICOH_MMC=y +CONFIG_MMC_SDHCI_ACPI=m CONFIG_MMC_SDHCI_PLTFM=m +CONFIG_MMC_SDHCI_PXAV3=m +CONFIG_MMC_SDHCI_PXAV2=m CONFIG_MMC_WBSD=m CONFIG_MMC_TIFM_SD=m -CONFIG_MMC_SDRICOH_CS=m +# CONFIG_MMC_SDRICOH_CS is not set CONFIG_MMC_CB710=m CONFIG_MMC_VIA_SDMMC=m CONFIG_MMC_VUB300=m CONFIG_MMC_USHC=m +CONFIG_MMC_REALTEK_PCI=m CONFIG_MEMSTICK=m # CONFIG_MEMSTICK_DEBUG is not set
@@ -3950,6 +4489,7 @@ CONFIG_MSPRO_BLOCK=m CONFIG_MEMSTICK_TIFM_MS=m CONFIG_MEMSTICK_JMICRON_38X=m CONFIG_MEMSTICK_R592=m +CONFIG_MEMSTICK_REALTEK_PCI=m CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=y
@@ -3957,43 +4497,74 @@ CONFIG_LEDS_CLASS=y # LED drivers # CONFIG_LEDS_LM3530=m -CONFIG_LEDS_NET48XX=m -CONFIG_LEDS_NET5501=m -CONFIG_LEDS_WRAP=m +CONFIG_LEDS_LM3533=m +CONFIG_LEDS_LM3642=m CONFIG_LEDS_PCA9532=m CONFIG_LEDS_PCA9532_GPIO=y CONFIG_LEDS_GPIO=m CONFIG_LEDS_LP3944=m +CONFIG_LEDS_LP55XX_COMMON=m CONFIG_LEDS_LP5521=m CONFIG_LEDS_LP5523=m +CONFIG_LEDS_LP5562=m CONFIG_LEDS_CLEVO_MAIL=m CONFIG_LEDS_PCA955X=m -CONFIG_LEDS_REGULATOR=m +CONFIG_LEDS_PCA9633=m CONFIG_LEDS_BD2802=m CONFIG_LEDS_INTEL_SS4200=m CONFIG_LEDS_LT3593=m CONFIG_LEDS_DELL_NETBOOKS=m -CONFIG_LEDS_TRIGGERS=y +# CONFIG_LEDS_RENESAS_TPU is not set +CONFIG_LEDS_TCA6507=m +CONFIG_LEDS_LM355x=m +CONFIG_LEDS_OT200=m +CONFIG_LEDS_BLINKM=m
# # LED Triggers # +CONFIG_LEDS_TRIGGERS=y CONFIG_LEDS_TRIGGER_TIMER=m +CONFIG_LEDS_TRIGGER_ONESHOT=m CONFIG_LEDS_TRIGGER_HEARTBEAT=m CONFIG_LEDS_TRIGGER_BACKLIGHT=m +CONFIG_LEDS_TRIGGER_CPU=y CONFIG_LEDS_TRIGGER_GPIO=m CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
# # iptables trigger is under Netfilter config (LED target) # +CONFIG_LEDS_TRIGGER_TRANSIENT=m +CONFIG_LEDS_TRIGGER_CAMERA=m CONFIG_LEDS_TRIGGER_NETDEV=m # CONFIG_ACCESSIBILITY is not set # CONFIG_INFINIBAND is not set -# CONFIG_EDAC is not set +CONFIG_EDAC=y +# CONFIG_EDAC_LEGACY_SYSFS is not set +# CONFIG_EDAC_DEBUG is not set +CONFIG_EDAC_DECODE_MCE=m +CONFIG_EDAC_MCE_INJ=m +CONFIG_EDAC_MM_EDAC=m +# CONFIG_EDAC_AMD76X is not set +# CONFIG_EDAC_E7XXX is not set +CONFIG_EDAC_E752X=m +# CONFIG_EDAC_I82875P is not set +CONFIG_EDAC_I82975X=m +CONFIG_EDAC_I3000=m +CONFIG_EDAC_I3200=m +CONFIG_EDAC_X38=m +CONFIG_EDAC_I5400=m +CONFIG_EDAC_I7CORE=m +# CONFIG_EDAC_I82860 is not set +# CONFIG_EDAC_R82600 is not set +CONFIG_EDAC_I5000=m +CONFIG_EDAC_I5100=m +CONFIG_EDAC_I7300=m CONFIG_RTC_LIB=y CONFIG_RTC_CLASS=y CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_SYSTOHC=y CONFIG_RTC_HCTOSYS_DEVICE="rtc0" # CONFIG_RTC_DEBUG is not set
@@ -4018,12 +4589,13 @@ CONFIG_RTC_DRV_RS5C372=m CONFIG_RTC_DRV_ISL1208=m CONFIG_RTC_DRV_ISL12022=m CONFIG_RTC_DRV_X1205=m +CONFIG_RTC_DRV_PCF8523=m CONFIG_RTC_DRV_PCF8563=m CONFIG_RTC_DRV_PCF8583=m CONFIG_RTC_DRV_M41T80=m CONFIG_RTC_DRV_M41T80_WDT=y CONFIG_RTC_DRV_BQ32K=m -CONFIG_RTC_DRV_S35390A=m +# CONFIG_RTC_DRV_S35390A is not set CONFIG_RTC_DRV_FM3130=m CONFIG_RTC_DRV_RX8581=m CONFIG_RTC_DRV_RX8025=m @@ -4043,60 +4615,78 @@ CONFIG_RTC_DRV_DS1511=m CONFIG_RTC_DRV_DS1553=m CONFIG_RTC_DRV_DS1742=m CONFIG_RTC_DRV_STK17TA8=m -CONFIG_RTC_DRV_M48T86=m +# CONFIG_RTC_DRV_M48T86 is not set CONFIG_RTC_DRV_M48T35=m CONFIG_RTC_DRV_M48T59=m CONFIG_RTC_DRV_MSM6242=m CONFIG_RTC_DRV_BQ4802=m CONFIG_RTC_DRV_RP5C01=m CONFIG_RTC_DRV_V3020=m -CONFIG_RTC_DRV_PCF50633=m +CONFIG_RTC_DRV_DS2404=m
# # on-CPU RTC drivers # + +# +# HID Sensor RTC drivers +# +CONFIG_RTC_DRV_HID_SENSOR_TIME=m CONFIG_DMADEVICES=y # CONFIG_DMADEVICES_DEBUG is not set
# # DMA Devices # -CONFIG_INTEL_MID_DMAC=m +# CONFIG_INTEL_MID_DMAC is not set CONFIG_INTEL_IOATDMA=m +CONFIG_DW_DMAC=m +# CONFIG_DW_DMAC_BIG_ENDIAN_IO is not set CONFIG_TIMB_DMA=m CONFIG_PCH_DMA=m CONFIG_DMA_ENGINE=y +CONFIG_DMA_ACPI=y
# # DMA Clients # -CONFIG_NET_DMA=y CONFIG_ASYNC_TX_DMA=y -CONFIG_DMATEST=m +# CONFIG_DMATEST is not set CONFIG_DCA=m # CONFIG_AUXDISPLAY is not set CONFIG_UIO=m -CONFIG_UIO_CIF=m -CONFIG_UIO_PDRV=m -CONFIG_UIO_PDRV_GENIRQ=m +# CONFIG_UIO_CIF is not set +# CONFIG_UIO_PDRV is not set +# CONFIG_UIO_PDRV_GENIRQ is not set +# CONFIG_UIO_DMEM_GENIRQ is not set CONFIG_UIO_AEC=m CONFIG_UIO_SERCOS3=m CONFIG_UIO_PCI_GENERIC=m -CONFIG_UIO_NETX=m +# CONFIG_UIO_NETX is not set +# CONFIG_VFIO is not set +CONFIG_VIRT_DRIVERS=y CONFIG_VIRTIO=y -CONFIG_VIRTIO_RING=y
# # Virtio drivers # -CONFIG_VIRTIO_PCI=m +CONFIG_VIRTIO_PCI=y CONFIG_VIRTIO_BALLOON=m CONFIG_VIRTIO_MMIO=m +# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set + +# +# Microsoft Hyper-V guest support +# +CONFIG_HYPERV=m +CONFIG_HYPERV_UTILS=m +CONFIG_HYPERV_BALLOON=m
# # Xen driver support # CONFIG_XEN_BALLOON=y +CONFIG_XEN_SELFBALLOONING=y CONFIG_XEN_SCRUB_PAGES=y CONFIG_XEN_DEV_EVTCHN=m CONFIG_XEN_BACKEND=y @@ -4107,7 +4697,11 @@ CONFIG_XEN_XENBUS_FRONTEND=y CONFIG_XEN_GNTDEV=m CONFIG_XEN_GRANT_DEV_ALLOC=m CONFIG_SWIOTLB_XEN=y +CONFIG_XEN_TMEM=m CONFIG_XEN_PCIDEV_BACKEND=m +CONFIG_XEN_PRIVCMD=m +CONFIG_XEN_ACPI_PROCESSOR=m +CONFIG_XEN_HAVE_PVMMU=y CONFIG_STAGING=y CONFIG_ET131X=m CONFIG_SLICOSS=m @@ -4117,48 +4711,100 @@ CONFIG_USBIP_HOST=m # CONFIG_USBIP_DEBUG is not set # CONFIG_W35UND is not set # CONFIG_PRISM2_USB is not set -# CONFIG_ECHO is not set +CONFIG_ECHO=m # CONFIG_COMEDI is not set # CONFIG_ASUS_OLED is not set # CONFIG_PANEL is not set # CONFIG_R8187SE is not set # CONFIG_RTL8192U is not set -# CONFIG_RTL8192E is not set +# CONFIG_RTLLIB is not set # CONFIG_R8712U is not set -# CONFIG_RTS_PSTOR is not set -# CONFIG_RTS5139 is not set +CONFIG_RTS5139=m +# CONFIG_RTS5139_DEBUG is not set # CONFIG_TRANZPORT is not set -# CONFIG_POHMELFS is not set -CONFIG_IDE_PHISON=m +# CONFIG_IDE_PHISON is not set # CONFIG_LINE6_USB is not set -CONFIG_DRM_NOUVEAU=m -CONFIG_DRM_NOUVEAU_BACKLIGHT=y - -# -# I2C encoder or helper chips -# -# CONFIG_DRM_I2C_CH7006 is not set -# CONFIG_DRM_I2C_SIL164 is not set # CONFIG_USB_SERIAL_QUATECH2 is not set -# CONFIG_USB_SERIAL_QUATECH_USB2 is not set # CONFIG_VT6655 is not set # CONFIG_VT6656 is not set -# CONFIG_HYPERV_STORAGE is not set -CONFIG_HYPERV_NET=m -CONFIG_HYPERV_MOUSE=m -# CONFIG_VME_BUS is not set # CONFIG_DX_SEP is not set -# CONFIG_IIO is not set -# CONFIG_XVMALLOC is not set -# CONFIG_ZRAM is not set + +# +# IIO staging drivers +# + +# +# Accelerometers +# + +# +# Analog to digital converters +# +# CONFIG_AD7291 is not set +# CONFIG_AD7606 is not set +# CONFIG_AD799X is not set + +# +# Analog digital bi-direction converters +# +# CONFIG_ADT7316 is not set + +# +# Capacitance to digital converters +# +# CONFIG_AD7150 is not set +# CONFIG_AD7152 is not set +# CONFIG_AD7746 is not set + +# +# Direct Digital Synthesis +# + +# +# Digital gyroscope sensors +# + +# +# Network Analyzer, Impedance Converters +# +# CONFIG_AD5933 is not set + +# +# Light sensors +# +# CONFIG_SENSORS_ISL29018 is not set +# CONFIG_SENSORS_ISL29028 is not set +# CONFIG_TSL2583 is not set +# CONFIG_TSL2x7x is not set + +# +# Magnetometer sensors +# +# CONFIG_SENSORS_HMC5843 is not set + +# +# Active energy metering IC +# +# CONFIG_ADE7854 is not set + +# +# Resolver to digital converters +# + +# +# Triggers - standalone +# +# CONFIG_IIO_PERIODIC_RTC_TRIGGER is not set +# CONFIG_IIO_GPIO_TRIGGER is not set +# CONFIG_IIO_SYSFS_TRIGGER is not set +# CONFIG_IIO_SIMPLE_DUMMY is not set +# CONFIG_ZSMALLOC is not set # CONFIG_WLAGS49_H2 is not set # CONFIG_WLAGS49_H25 is not set # CONFIG_FB_SM7XX is not set # CONFIG_CRYSTALHD is not set -# CONFIG_CXT1E1 is not set # CONFIG_FB_XGI is not set # CONFIG_ACPI_QUICKSTART is not set -# CONFIG_SBE_2T3E3 is not set # CONFIG_USB_ENESTORAGE is not set # CONFIG_BCM_WIMAX is not set # CONFIG_FT1000 is not set @@ -4169,17 +4815,32 @@ CONFIG_HYPERV_MOUSE=m # CONFIG_SPEAKUP is not set # CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set # CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set -# CONFIG_DRM_PSB is not set -CONFIG_INTEL_MEI=m # CONFIG_STAGING_MEDIA is not set + +# +# Android +# +# CONFIG_ANDROID is not set +# CONFIG_USB_WPAN_HCD is not set +# CONFIG_WIMAX_GDM72XX is not set +# CONFIG_CSR_WIFI is not set +# CONFIG_NET_VENDOR_SILICOM is not set +# CONFIG_CED1401 is not set +# CONFIG_DGRP is not set +# CONFIG_FIREWIRE_SERIAL is not set +# CONFIG_USB_DWC2 is not set CONFIG_X86_PLATFORM_DEVICES=y CONFIG_ACER_WMI=m CONFIG_ACERHDF=m CONFIG_ASUS_LAPTOP=m +CONFIG_CHROMEOS_LAPTOP=m +CONFIG_DELL_LAPTOP=m CONFIG_DELL_WMI=m CONFIG_DELL_WMI_AIO=m CONFIG_FUJITSU_LAPTOP=m -CONFIG_FUJITSU_LAPTOP_DEBUG=y +# CONFIG_FUJITSU_LAPTOP_DEBUG is not set +# CONFIG_FUJITSU_TABLET is not set +CONFIG_AMILO_RFKILL=m CONFIG_TC1100_WMI=m CONFIG_HP_ACCEL=m CONFIG_HP_WMI=m @@ -4187,7 +4848,7 @@ CONFIG_MSI_LAPTOP=m CONFIG_PANASONIC_LAPTOP=m CONFIG_COMPAL_LAPTOP=m CONFIG_SONY_LAPTOP=m -# CONFIG_SONYPI_COMPAT is not set +CONFIG_SONYPI_COMPAT=y CONFIG_IDEAPAD_LAPTOP=m CONFIG_THINKPAD_ACPI=m CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y @@ -4197,21 +4858,34 @@ CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y CONFIG_THINKPAD_ACPI_VIDEO=y CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y CONFIG_SENSORS_HDAPS=m -CONFIG_INTEL_MENLOW=m +# CONFIG_INTEL_MENLOW is not set +CONFIG_EEEPC_LAPTOP=m +CONFIG_ASUS_WMI=m +CONFIG_ASUS_NB_WMI=m +CONFIG_EEEPC_WMI=m CONFIG_ACPI_WMI=m CONFIG_MSI_WMI=m -CONFIG_ACPI_ASUS=m CONFIG_TOPSTAR_LAPTOP=m CONFIG_ACPI_TOSHIBA=m CONFIG_TOSHIBA_BT_RFKILL=m CONFIG_ACPI_CMPC=m CONFIG_INTEL_IPS=m -CONFIG_IBM_RTL=m -CONFIG_XO15_EBOOK=m +# CONFIG_IBM_RTL is not set +# CONFIG_XO15_EBOOK is not set CONFIG_SAMSUNG_LAPTOP=m CONFIG_MXM_WMI=m CONFIG_INTEL_OAKTRAIL=m CONFIG_SAMSUNG_Q10=m +# CONFIG_APPLE_GMUX is not set +CONFIG_PVPANIC=m +CONFIG_CLKDEV_LOOKUP=y +CONFIG_HAVE_CLK_PREPARE=y +CONFIG_COMMON_CLK=y + +# +# Common Clock Framework +# +# CONFIG_COMMON_CLK_DEBUG is not set
# # Hardware Spinlock drivers @@ -4220,55 +4894,143 @@ CONFIG_CLKSRC_I8253=y CONFIG_CLKEVT_I8253=y CONFIG_I8253_LOCK=y CONFIG_CLKBLD_I8253=y +CONFIG_MAILBOX=y CONFIG_IOMMU_API=y CONFIG_IOMMU_SUPPORT=y CONFIG_DMAR_TABLE=y CONFIG_INTEL_IOMMU=y -CONFIG_INTEL_IOMMU_DEFAULT_ON=y +# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set CONFIG_INTEL_IOMMU_FLOPPY_WA=y -CONFIG_VIRT_DRIVERS=y -CONFIG_HYPERV=m -CONFIG_HYPERV_UTILS=m -CONFIG_PM_DEVFREQ=y
# -# DEVFREQ Governors +# Remoteproc drivers # -CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y -CONFIG_DEVFREQ_GOV_PERFORMANCE=y -CONFIG_DEVFREQ_GOV_POWERSAVE=y -CONFIG_DEVFREQ_GOV_USERSPACE=y +# CONFIG_STE_MODEM_RPROC is not set
# -# DEVFREQ Drivers +# Rpmsg drivers # +# CONFIG_PM_DEVFREQ is not set +# CONFIG_EXTCON is not set +CONFIG_MEMORY=y +CONFIG_IIO=m +CONFIG_IIO_BUFFER=y +CONFIG_IIO_BUFFER_CB=y +CONFIG_IIO_KFIFO_BUF=m +CONFIG_IIO_TRIGGER=y +CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 + +# +# Accelerometers +# +# CONFIG_HID_SENSOR_ACCEL_3D is not set +# CONFIG_IIO_ST_ACCEL_3AXIS is not set + +# +# Analog to digital converters +# +# CONFIG_MAX1363 is not set +# CONFIG_TI_ADC081C is not set +# CONFIG_VIPERBOARD_ADC is not set + +# +# Amplifiers +# + +# +# Hid Sensor IIO Common +# +CONFIG_HID_SENSOR_IIO_COMMON=m +CONFIG_HID_SENSOR_IIO_TRIGGER=m +# CONFIG_HID_SENSOR_ENUM_BASE_QUIRKS is not set + +# +# Digital to analog converters +# +# CONFIG_AD5064 is not set +# CONFIG_AD5380 is not set +# CONFIG_AD5446 is not set +# CONFIG_MAX517 is not set +# CONFIG_MCP4725 is not set + +# +# Frequency Synthesizers DDS/PLL +# + +# +# Clock Generator/Distribution +# + +# +# Phase-Locked Loop (PLL) frequency synthesizers +# + +# +# Digital gyroscope sensors +# +# CONFIG_HID_SENSOR_GYRO_3D is not set +# CONFIG_IIO_ST_GYRO_3AXIS is not set +# CONFIG_ITG3200 is not set + +# +# Inertial measurement units +# +# CONFIG_INV_MPU6050_IIO is not set + +# +# Light sensors +# +# CONFIG_ADJD_S311 is not set +# CONFIG_SENSORS_LM3533 is not set +# CONFIG_SENSORS_TSL2563 is not set +# CONFIG_VCNL4000 is not set +# CONFIG_HID_SENSOR_ALS is not set + +# +# Magnetometer sensors +# +# CONFIG_AK8975 is not set +# CONFIG_HID_SENSOR_MAGNETOMETER_3D is not set +# CONFIG_IIO_ST_MAGN_3AXIS is not set +# CONFIG_VME_BUS is not set +# CONFIG_PWM is not set +# CONFIG_IPACK_BUS is not set +# CONFIG_RESET_CONTROLLER is not set
# # Firmware Drivers # -# CONFIG_EDD is not set +CONFIG_EDD=m +# CONFIG_EDD_OFF is not set CONFIG_FIRMWARE_MEMMAP=y -# CONFIG_DELL_RBU is not set -# CONFIG_DCDBAS is not set +CONFIG_DELL_RBU=m +CONFIG_DCDBAS=m CONFIG_DMIID=y -CONFIG_DMI_SYSFS=m +CONFIG_DMI_SYSFS=y CONFIG_ISCSI_IBFT_FIND=y CONFIG_ISCSI_IBFT=m -CONFIG_SIGMA=m # CONFIG_GOOGLE_FIRMWARE is not set
# +# EFI (Extensible Firmware Interface) Support +# +CONFIG_EFI_VARS=y +CONFIG_EFI_VARS_PSTORE=y +# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set + +# # File systems # +CONFIG_DCACHE_WORD_ACCESS=y # CONFIG_EXT2_FS is not set # CONFIG_EXT3_FS is not set CONFIG_EXT4_FS=y CONFIG_EXT4_USE_FOR_EXT23=y -CONFIG_EXT4_FS_XATTR=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y # CONFIG_EXT4_DEBUG is not set CONFIG_JBD2=y +# CONFIG_JBD2_DEBUG is not set CONFIG_FS_MBCACHE=y CONFIG_REISERFS_FS=m # CONFIG_REISERFS_CHECK is not set @@ -4276,43 +5038,47 @@ CONFIG_REISERFS_PROC_INFO=y CONFIG_REISERFS_FS_XATTR=y CONFIG_REISERFS_FS_POSIX_ACL=y CONFIG_REISERFS_FS_SECURITY=y -CONFIG_JFS_FS=m -CONFIG_JFS_POSIX_ACL=y -CONFIG_JFS_SECURITY=y -# CONFIG_JFS_DEBUG is not set -CONFIG_JFS_STATISTICS=y +# CONFIG_JFS_FS is not set CONFIG_XFS_FS=m CONFIG_XFS_QUOTA=y CONFIG_XFS_POSIX_ACL=y -# CONFIG_XFS_RT is not set +CONFIG_XFS_RT=y +# CONFIG_XFS_WARN is not set # CONFIG_XFS_DEBUG is not set # CONFIG_GFS2_FS is not set -# CONFIG_BTRFS_FS is not set +# CONFIG_OCFS2_FS is not set +CONFIG_BTRFS_FS=m +CONFIG_BTRFS_FS_POSIX_ACL=y +# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set +# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set +# CONFIG_BTRFS_DEBUG is not set # CONFIG_NILFS2_FS is not set CONFIG_FS_POSIX_ACL=y -CONFIG_EXPORTFS=m +CONFIG_EXPORTFS=y CONFIG_FILE_LOCKING=y CONFIG_FSNOTIFY=y CONFIG_DNOTIFY=y CONFIG_INOTIFY_USER=y CONFIG_FANOTIFY=y +CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y CONFIG_QUOTA=y CONFIG_QUOTA_NETLINK_INTERFACE=y -CONFIG_PRINT_QUOTA_WARNING=y +# CONFIG_PRINT_QUOTA_WARNING is not set # CONFIG_QUOTA_DEBUG is not set -CONFIG_QUOTA_TREE=m -CONFIG_QFMT_V1=m -CONFIG_QFMT_V2=m +CONFIG_QUOTA_TREE=y +# CONFIG_QFMT_V1 is not set +CONFIG_QFMT_V2=y CONFIG_QUOTACTL=y -CONFIG_AUTOFS4_FS=m +CONFIG_AUTOFS4_FS=y CONFIG_FUSE_FS=m CONFIG_CUSE=m +CONFIG_GENERIC_ACL=y
# # Caches # CONFIG_FSCACHE=m -# CONFIG_FSCACHE_STATS is not set +CONFIG_FSCACHE_STATS=y # CONFIG_FSCACHE_HISTOGRAM is not set # CONFIG_FSCACHE_DEBUG is not set # CONFIG_FSCACHE_OBJECT_LIST is not set @@ -4323,7 +5089,7 @@ CONFIG_CACHEFILES=m # # CD-ROM/DVD Filesystems # -CONFIG_ISO9660_FS=m +CONFIG_ISO9660_FS=y CONFIG_JOLIET=y CONFIG_ZISOFS=y CONFIG_UDF_FS=m @@ -4333,10 +5099,10 @@ CONFIG_UDF_NLS=y # DOS/FAT/NT Filesystems # CONFIG_FAT_FS=m -# CONFIG_MSDOS_FS is not set +CONFIG_MSDOS_FS=m CONFIG_VFAT_FS=m -CONFIG_FAT_DEFAULT_CODEPAGE=850 -CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="ascii" # CONFIG_NTFS_FS is not set
# @@ -4345,39 +5111,22 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" CONFIG_PROC_FS=y # CONFIG_PROC_KCORE is not set CONFIG_PROC_SYSCTL=y -CONFIG_PROC_PAGE_MONITOR=y CONFIG_SYSFS=y CONFIG_TMPFS=y -# CONFIG_TMPFS_POSIX_ACL is not set +CONFIG_TMPFS_POSIX_ACL=y CONFIG_TMPFS_XATTR=y # CONFIG_HUGETLBFS is not set # CONFIG_HUGETLB_PAGE is not set -# CONFIG_CONFIGFS_FS is not set +CONFIG_CONFIGFS_FS=m CONFIG_MISC_FILESYSTEMS=y # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set -CONFIG_ECRYPT_FS=m +# CONFIG_ECRYPT_FS is not set # CONFIG_HFS_FS is not set # CONFIG_HFSPLUS_FS is not set # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set -CONFIG_JFFS2_FS=m -CONFIG_JFFS2_FS_DEBUG=0 -CONFIG_JFFS2_FS_WRITEBUFFER=y -# CONFIG_JFFS2_FS_WBUF_VERIFY is not set -# CONFIG_JFFS2_SUMMARY is not set -# CONFIG_JFFS2_FS_XATTR is not set -CONFIG_JFFS2_COMPRESSION_OPTIONS=y -CONFIG_JFFS2_ZLIB=y -# CONFIG_JFFS2_LZO is not set -CONFIG_JFFS2_RTIME=y -CONFIG_JFFS2_RUBIN=y -# CONFIG_JFFS2_CMODE_NONE is not set -CONFIG_JFFS2_CMODE_PRIORITY=y -# CONFIG_JFFS2_CMODE_SIZE is not set -# CONFIG_JFFS2_CMODE_FAVOURLZO is not set -# CONFIG_UBIFS_FS is not set # CONFIG_LOGFS is not set # CONFIG_CRAMFS is not set # CONFIG_SQUASHFS is not set @@ -4386,113 +5135,117 @@ CONFIG_JFFS2_CMODE_PRIORITY=y # CONFIG_OMFS_FS is not set # CONFIG_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set +# CONFIG_QNX6FS_FS is not set # CONFIG_ROMFS_FS is not set -# CONFIG_PSTORE is not set +CONFIG_PSTORE=y +# CONFIG_PSTORE_CONSOLE is not set +# CONFIG_PSTORE_FTRACE is not set +# CONFIG_PSTORE_RAM is not set # CONFIG_SYSV_FS is not set -CONFIG_UFS_FS=m -# CONFIG_UFS_FS_WRITE is not set -# CONFIG_UFS_DEBUG is not set +# CONFIG_UFS_FS is not set # CONFIG_EXOFS_FS is not set +# CONFIG_F2FS_FS is not set +CONFIG_EFIVAR_FS=m +CONFIG_ORE=m CONFIG_NETWORK_FILESYSTEMS=y CONFIG_NFS_FS=m -CONFIG_NFS_V3=y +CONFIG_NFS_V2=m +CONFIG_NFS_V3=m CONFIG_NFS_V3_ACL=y -CONFIG_NFS_V4=y -# CONFIG_NFS_V4_1 is not set -# CONFIG_NFS_FSCACHE is not set +CONFIG_NFS_V4=m +# CONFIG_NFS_SWAP is not set +CONFIG_NFS_V4_1=y +CONFIG_PNFS_FILE_LAYOUT=m +CONFIG_PNFS_BLOCK=m +CONFIG_PNFS_OBJLAYOUT=m +CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="ipfire.org" +CONFIG_NFS_FSCACHE=y # CONFIG_NFS_USE_LEGACY_DNS is not set CONFIG_NFS_USE_KERNEL_DNS=y -# CONFIG_NFS_USE_NEW_IDMAPPER is not set CONFIG_NFSD=m CONFIG_NFSD_V2_ACL=y CONFIG_NFSD_V3=y CONFIG_NFSD_V3_ACL=y CONFIG_NFSD_V4=y +# CONFIG_NFSD_FAULT_INJECTION is not set CONFIG_LOCKD=m CONFIG_LOCKD_V4=y CONFIG_NFS_ACL_SUPPORT=m CONFIG_NFS_COMMON=y CONFIG_SUNRPC=m CONFIG_SUNRPC_GSS=m +CONFIG_SUNRPC_BACKCHANNEL=y CONFIG_RPCSEC_GSS_KRB5=m +# CONFIG_SUNRPC_DEBUG is not set # CONFIG_CEPH_FS is not set CONFIG_CIFS=m CONFIG_CIFS_STATS=y -CONFIG_CIFS_STATS2=y +# CONFIG_CIFS_STATS2 is not set # CONFIG_CIFS_WEAK_PW_HASH is not set # CONFIG_CIFS_UPCALL is not set CONFIG_CIFS_XATTR=y CONFIG_CIFS_POSIX=y -# CONFIG_CIFS_DEBUG2 is not set -# CONFIG_CIFS_DFS_UPCALL is not set -# CONFIG_CIFS_FSCACHE is not set CONFIG_CIFS_ACL=y +# CONFIG_CIFS_DEBUG is not set +CONFIG_CIFS_DFS_UPCALL=y +CONFIG_CIFS_SMB2=y +CONFIG_CIFS_FSCACHE=y # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set - -# -# Partition Types -# -CONFIG_PARTITION_ADVANCED=y -# CONFIG_ACORN_PARTITION is not set -# CONFIG_OSF_PARTITION is not set -# CONFIG_AMIGA_PARTITION is not set -# CONFIG_ATARI_PARTITION is not set -# CONFIG_MAC_PARTITION is not set -CONFIG_MSDOS_PARTITION=y -CONFIG_BSD_DISKLABEL=y -# CONFIG_MINIX_SUBPARTITION is not set -# CONFIG_SOLARIS_X86_PARTITION is not set -# CONFIG_UNIXWARE_DISKLABEL is not set -CONFIG_LDM_PARTITION=y -# CONFIG_LDM_DEBUG is not set -# CONFIG_SGI_PARTITION is not set -# CONFIG_ULTRIX_PARTITION is not set -# CONFIG_SUN_PARTITION is not set -# CONFIG_KARMA_PARTITION is not set -CONFIG_EFI_PARTITION=y -# CONFIG_SYSV68_PARTITION is not set CONFIG_NLS=y -CONFIG_NLS_DEFAULT="cp850" -# CONFIG_NLS_CODEPAGE_437 is not set -# CONFIG_NLS_CODEPAGE_737 is not set -# CONFIG_NLS_CODEPAGE_775 is not set -CONFIG_NLS_CODEPAGE_850=y -# CONFIG_NLS_CODEPAGE_852 is not set -# CONFIG_NLS_CODEPAGE_855 is not set -# CONFIG_NLS_CODEPAGE_857 is not set -# CONFIG_NLS_CODEPAGE_860 is not set -# CONFIG_NLS_CODEPAGE_861 is not set -# CONFIG_NLS_CODEPAGE_862 is not set -# CONFIG_NLS_CODEPAGE_863 is not set -# CONFIG_NLS_CODEPAGE_864 is not set -# CONFIG_NLS_CODEPAGE_865 is not set -# CONFIG_NLS_CODEPAGE_866 is not set -# CONFIG_NLS_CODEPAGE_869 is not set -# CONFIG_NLS_CODEPAGE_936 is not set -# CONFIG_NLS_CODEPAGE_950 is not set -# CONFIG_NLS_CODEPAGE_932 is not set -# CONFIG_NLS_CODEPAGE_949 is not set -# CONFIG_NLS_CODEPAGE_874 is not set -# CONFIG_NLS_ISO8859_8 is not set -# CONFIG_NLS_CODEPAGE_1250 is not set -# CONFIG_NLS_CODEPAGE_1251 is not set -# CONFIG_NLS_ASCII is not set -CONFIG_NLS_ISO8859_1=y -# CONFIG_NLS_ISO8859_2 is not set -# CONFIG_NLS_ISO8859_3 is not set -# CONFIG_NLS_ISO8859_4 is not set -# CONFIG_NLS_ISO8859_5 is not set -# CONFIG_NLS_ISO8859_6 is not set -# CONFIG_NLS_ISO8859_7 is not set -# CONFIG_NLS_ISO8859_9 is not set -# CONFIG_NLS_ISO8859_13 is not set -# CONFIG_NLS_ISO8859_14 is not set -# CONFIG_NLS_ISO8859_15 is not set -# CONFIG_NLS_KOI8_R is not set -# CONFIG_NLS_KOI8_U is not set -CONFIG_NLS_UTF8=y +CONFIG_NLS_DEFAULT="utf-8" +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_CODEPAGE_737=m +CONFIG_NLS_CODEPAGE_775=m +CONFIG_NLS_CODEPAGE_850=m +CONFIG_NLS_CODEPAGE_852=m +CONFIG_NLS_CODEPAGE_855=m +CONFIG_NLS_CODEPAGE_857=m +CONFIG_NLS_CODEPAGE_860=m +CONFIG_NLS_CODEPAGE_861=m +CONFIG_NLS_CODEPAGE_862=m +CONFIG_NLS_CODEPAGE_863=m +CONFIG_NLS_CODEPAGE_864=m +CONFIG_NLS_CODEPAGE_865=m +CONFIG_NLS_CODEPAGE_866=m +CONFIG_NLS_CODEPAGE_869=m +CONFIG_NLS_CODEPAGE_936=m +CONFIG_NLS_CODEPAGE_950=m +CONFIG_NLS_CODEPAGE_932=m +CONFIG_NLS_CODEPAGE_949=m +CONFIG_NLS_CODEPAGE_874=m +CONFIG_NLS_ISO8859_8=m +CONFIG_NLS_CODEPAGE_1250=m +CONFIG_NLS_CODEPAGE_1251=m +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=m +CONFIG_NLS_ISO8859_2=m +CONFIG_NLS_ISO8859_3=m +CONFIG_NLS_ISO8859_4=m +CONFIG_NLS_ISO8859_5=m +CONFIG_NLS_ISO8859_6=m +CONFIG_NLS_ISO8859_7=m +CONFIG_NLS_ISO8859_9=m +CONFIG_NLS_ISO8859_13=m +CONFIG_NLS_ISO8859_14=m +CONFIG_NLS_ISO8859_15=m +CONFIG_NLS_KOI8_R=m +CONFIG_NLS_KOI8_U=m +CONFIG_NLS_MAC_ROMAN=m +CONFIG_NLS_MAC_CELTIC=m +CONFIG_NLS_MAC_CENTEURO=m +CONFIG_NLS_MAC_CROATIAN=m +CONFIG_NLS_MAC_CYRILLIC=m +CONFIG_NLS_MAC_GAELIC=m +CONFIG_NLS_MAC_GREEK=m +CONFIG_NLS_MAC_ICELAND=m +CONFIG_NLS_MAC_INUIT=m +CONFIG_NLS_MAC_ROMANIAN=m +CONFIG_NLS_MAC_TURKISH=m +CONFIG_NLS_UTF8=m +CONFIG_DLM=m +# CONFIG_DLM_DEBUG is not set
# # Kernel hacking @@ -4502,27 +5255,32 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4 # CONFIG_ENABLE_WARN_DEPRECATED is not set CONFIG_ENABLE_MUST_CHECK=y -CONFIG_FRAME_WARN=1024 +CONFIG_FRAME_WARN=2048 # CONFIG_MAGIC_SYSRQ is not set CONFIG_STRIP_ASM_SYMS=y +# CONFIG_READABLE_ASM is not set # CONFIG_UNUSED_SYMBOLS is not set -# CONFIG_DEBUG_FS is not set -# CONFIG_HEADERS_CHECK is not set +CONFIG_DEBUG_FS=y +CONFIG_HEADERS_CHECK=y # CONFIG_DEBUG_SECTION_MISMATCH is not set CONFIG_DEBUG_KERNEL=y -# CONFIG_DEBUG_SHIRQ is not set -# CONFIG_LOCKUP_DETECTOR is not set -# CONFIG_HARDLOCKUP_DETECTOR is not set -CONFIG_DETECT_HUNG_TASK=y -CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 -# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set -CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 +CONFIG_DEBUG_SHIRQ=y +CONFIG_LOCKUP_DETECTOR=y +CONFIG_HARDLOCKUP_DETECTOR=y +# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set +CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0 +# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set +CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 +# CONFIG_PANIC_ON_OOPS is not set +CONFIG_PANIC_ON_OOPS_VALUE=0 +# CONFIG_DETECT_HUNG_TASK is not set CONFIG_SCHED_DEBUG=y -# CONFIG_SCHEDSTATS is not set +CONFIG_SCHEDSTATS=y CONFIG_TIMER_STATS=y # CONFIG_DEBUG_OBJECTS is not set # CONFIG_SLUB_DEBUG_ON is not set # CONFIG_SLUB_STATS is not set +CONFIG_HAVE_DEBUG_KMEMLEAK=y # CONFIG_DEBUG_KMEMLEAK is not set # CONFIG_DEBUG_RT_MUTEXES is not set # CONFIG_RT_MUTEX_TESTER is not set @@ -4530,10 +5288,10 @@ CONFIG_TIMER_STATS=y # CONFIG_DEBUG_MUTEXES is not set # CONFIG_DEBUG_LOCK_ALLOC is not set # CONFIG_PROVE_LOCKING is not set -# CONFIG_SPARSE_RCU_POINTER is not set # CONFIG_LOCK_STAT is not set # CONFIG_DEBUG_ATOMIC_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +CONFIG_STACKTRACE=y # CONFIG_DEBUG_STACK_USAGE is not set # CONFIG_DEBUG_KOBJECT is not set # CONFIG_DEBUG_HIGHMEM is not set @@ -4543,38 +5301,79 @@ CONFIG_DEBUG_BUGVERBOSE=y # CONFIG_DEBUG_VIRTUAL is not set # CONFIG_DEBUG_WRITECOUNT is not set CONFIG_DEBUG_MEMORY_INIT=y -# CONFIG_DEBUG_LIST is not set +CONFIG_DEBUG_LIST=y # CONFIG_TEST_LIST_SORT is not set # CONFIG_DEBUG_SG is not set # CONFIG_DEBUG_NOTIFIERS is not set # CONFIG_DEBUG_CREDENTIALS is not set CONFIG_ARCH_WANT_FRAME_POINTERS=y -# CONFIG_FRAME_POINTER is not set +CONFIG_FRAME_POINTER=y # CONFIG_BOOT_PRINTK_DELAY is not set + +# +# RCU Debugging +# +# CONFIG_SPARSE_RCU_POINTER is not set # CONFIG_RCU_TORTURE_TEST is not set CONFIG_RCU_CPU_STALL_TIMEOUT=60 +# CONFIG_RCU_CPU_STALL_INFO is not set +# CONFIG_RCU_TRACE is not set # CONFIG_BACKTRACE_SELF_TEST is not set # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set # CONFIG_DEBUG_PER_CPU_MAPS is not set -# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set +# CONFIG_LKDTM is not set +# CONFIG_NOTIFIER_ERROR_INJECTION is not set # CONFIG_FAULT_INJECTION is not set -# CONFIG_LATENCYTOP is not set -# CONFIG_SYSCTL_SYSCALL_CHECK is not set +CONFIG_ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS=y +# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set # CONFIG_DEBUG_PAGEALLOC is not set CONFIG_USER_STACKTRACE_SUPPORT=y +CONFIG_NOP_TRACER=y CONFIG_HAVE_FUNCTION_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y CONFIG_HAVE_SYSCALL_TRACEPOINTS=y CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_TRACER_MAX_TRACE=y +CONFIG_TRACE_CLOCK=y +CONFIG_RING_BUFFER=y +CONFIG_EVENT_TRACING=y +CONFIG_CONTEXT_SWITCH_TRACER=y +CONFIG_TRACING=y +CONFIG_GENERIC_TRACER=y CONFIG_TRACING_SUPPORT=y -# CONFIG_FTRACE is not set -# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set -# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set +CONFIG_FTRACE=y +CONFIG_FUNCTION_TRACER=y +CONFIG_FUNCTION_GRAPH_TRACER=y +# CONFIG_IRQSOFF_TRACER is not set +CONFIG_SCHED_TRACER=y +CONFIG_FTRACE_SYSCALLS=y +CONFIG_TRACER_SNAPSHOT=y +# CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP is not set +CONFIG_BRANCH_PROFILE_NONE=y +# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set +# CONFIG_PROFILE_ALL_BRANCHES is not set +CONFIG_STACK_TRACER=y +CONFIG_BLK_DEV_IO_TRACE=y +# CONFIG_UPROBE_EVENT is not set +# CONFIG_PROBE_EVENTS is not set +CONFIG_DYNAMIC_FTRACE=y +CONFIG_DYNAMIC_FTRACE_WITH_REGS=y +CONFIG_FUNCTION_PROFILER=y +CONFIG_FTRACE_MCOUNT_RECORD=y +# CONFIG_FTRACE_STARTUP_TEST is not set +# CONFIG_MMIOTRACE is not set +CONFIG_RING_BUFFER_BENCHMARK=m +# CONFIG_RING_BUFFER_STARTUP_TEST is not set +CONFIG_RBTREE_TEST=m +# CONFIG_INTERVAL_TREE_TEST is not set +# CONFIG_BUILD_DOCSRC is not set +CONFIG_DYNAMIC_DEBUG=y # CONFIG_DMA_API_DEBUG is not set # CONFIG_ATOMIC64_SELFTEST is not set CONFIG_ASYNC_RAID6_TEST=m @@ -4582,19 +5381,17 @@ CONFIG_ASYNC_RAID6_TEST=m CONFIG_HAVE_ARCH_KGDB=y # CONFIG_KGDB is not set CONFIG_HAVE_ARCH_KMEMCHECK=y -# CONFIG_KMEMCHECK is not set +# CONFIG_TEST_STRING_HELPERS is not set # CONFIG_TEST_KSTRTOX is not set -# CONFIG_STRICT_DEVMEM is not set -CONFIG_X86_VERBOSE_BOOTUP=y +CONFIG_STRICT_DEVMEM=y +# CONFIG_X86_VERBOSE_BOOTUP is not set CONFIG_EARLY_PRINTK=y # CONFIG_EARLY_PRINTK_DBGP is not set -# CONFIG_DEBUG_STACKOVERFLOW is not set +CONFIG_DEBUG_STACKOVERFLOW=y # CONFIG_X86_PTDUMP is not set -CONFIG_DEBUG_RODATA=y -CONFIG_DEBUG_RODATA_TEST=y -# CONFIG_DEBUG_SET_MODULE_RONX is not set -# CONFIG_DEBUG_NX_TEST is not set +CONFIG_DEBUG_NX_TEST=m CONFIG_DOUBLEFAULT=y +# CONFIG_DEBUG_TLBFLUSH is not set # CONFIG_IOMMU_STRESS is not set CONFIG_HAVE_MMIOTRACE_SUPPORT=y CONFIG_IO_DELAY_TYPE_0X80=0 @@ -4606,20 +5403,187 @@ CONFIG_IO_DELAY_0X80=y # CONFIG_IO_DELAY_UDELAY is not set # CONFIG_IO_DELAY_NONE is not set CONFIG_DEFAULT_IO_DELAY_TYPE=0 +CONFIG_DEBUG_BOOT_PARAMS=y # CONFIG_CPA_DEBUG is not set -# CONFIG_OPTIMIZE_INLINING is not set -# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set +CONFIG_OPTIMIZE_INLINING=y +# CONFIG_DEBUG_NMI_SELFTEST is not set
# # Security options # + +# +# Grsecurity +# +CONFIG_ARCH_TRACK_EXEC_LIMIT=y +CONFIG_PAX_USERCOPY_SLABS=y +CONFIG_GRKERNSEC=y +# CONFIG_GRKERNSEC_CONFIG_AUTO is not set +CONFIG_GRKERNSEC_CONFIG_CUSTOM=y + +# +# Customize Configuration +# + +# +# PaX +# +CONFIG_PAX=y + +# +# PaX Control +# +# CONFIG_PAX_SOFTMODE is not set +CONFIG_PAX_EI_PAX=y +CONFIG_PAX_PT_PAX_FLAGS=y +# CONFIG_PAX_XATTR_PAX_FLAGS is not set +# CONFIG_PAX_NO_ACL_FLAGS is not set +CONFIG_PAX_HAVE_ACL_FLAGS=y +# CONFIG_PAX_HOOK_ACL_FLAGS is not set + +# +# Non-executable pages +# +CONFIG_PAX_NOEXEC=y +CONFIG_PAX_PAGEEXEC=y +CONFIG_PAX_SEGMEXEC=y +CONFIG_PAX_EMUTRAMP=y +CONFIG_PAX_MPROTECT=y +# CONFIG_PAX_MPROTECT_COMPAT is not set +CONFIG_PAX_ELFRELOCS=y +CONFIG_PAX_KERNEXEC_PLUGIN_METHOD="" + +# +# Address Space Layout Randomization +# +CONFIG_PAX_ASLR=y +CONFIG_PAX_RANDKSTACK=y +CONFIG_PAX_RANDUSTACK=y +CONFIG_PAX_RANDMMAP=y + +# +# Miscellaneous hardening features +# +CONFIG_PAX_MEMORY_STACKLEAK=y +CONFIG_PAX_MEMORY_STRUCTLEAK=y +CONFIG_PAX_REFCOUNT=y +CONFIG_PAX_USERCOPY=y +# CONFIG_PAX_USERCOPY_DEBUG is not set +# CONFIG_PAX_SIZE_OVERFLOW is not set +# CONFIG_PAX_LATENT_ENTROPY is not set + +# +# Memory Protections +# +# CONFIG_GRKERNSEC_KMEM is not set +CONFIG_GRKERNSEC_VM86=y +# CONFIG_GRKERNSEC_IO is not set +# CONFIG_GRKERNSEC_PERF_HARDEN is not set +CONFIG_GRKERNSEC_RAND_THREADSTACK=y +CONFIG_GRKERNSEC_PROC_MEMMAP=y +CONFIG_GRKERNSEC_BRUTE=y +CONFIG_GRKERNSEC_MODHARDEN=y +CONFIG_GRKERNSEC_HIDESYM=y +CONFIG_GRKERNSEC_KERN_LOCKOUT=y + +# +# Role Based Access Control Options +# +CONFIG_GRKERNSEC_NO_RBAC=y +# CONFIG_GRKERNSEC_ACL_HIDEKERN is not set +CONFIG_GRKERNSEC_ACL_MAXTRIES=3 +CONFIG_GRKERNSEC_ACL_TIMEOUT=30 + +# +# Filesystem Protections +# +# CONFIG_GRKERNSEC_PROC is not set +CONFIG_GRKERNSEC_LINK=y +# CONFIG_GRKERNSEC_SYMLINKOWN is not set +CONFIG_GRKERNSEC_FIFO=y +# CONFIG_GRKERNSEC_SYSFS_RESTRICT is not set +# CONFIG_GRKERNSEC_ROFS is not set +CONFIG_GRKERNSEC_DEVICE_SIDECHANNEL=y +CONFIG_GRKERNSEC_CHROOT=y +# CONFIG_GRKERNSEC_CHROOT_MOUNT is not set +CONFIG_GRKERNSEC_CHROOT_DOUBLE=y +CONFIG_GRKERNSEC_CHROOT_PIVOT=y +CONFIG_GRKERNSEC_CHROOT_CHDIR=y +# CONFIG_GRKERNSEC_CHROOT_CHMOD is not set +CONFIG_GRKERNSEC_CHROOT_FCHDIR=y +# CONFIG_GRKERNSEC_CHROOT_MKNOD is not set +CONFIG_GRKERNSEC_CHROOT_SHMAT=y +CONFIG_GRKERNSEC_CHROOT_UNIX=y +CONFIG_GRKERNSEC_CHROOT_FINDTASK=y +CONFIG_GRKERNSEC_CHROOT_NICE=y +CONFIG_GRKERNSEC_CHROOT_SYSCTL=y +# CONFIG_GRKERNSEC_CHROOT_CAPS is not set +CONFIG_GRKERNSEC_CHROOT_INITRD=y + +# +# Kernel Auditing +# +# CONFIG_GRKERNSEC_AUDIT_GROUP is not set +# CONFIG_GRKERNSEC_EXECLOG is not set +CONFIG_GRKERNSEC_RESLOG=y +# CONFIG_GRKERNSEC_CHROOT_EXECLOG is not set +# CONFIG_GRKERNSEC_AUDIT_PTRACE is not set +# CONFIG_GRKERNSEC_AUDIT_CHDIR is not set +# CONFIG_GRKERNSEC_AUDIT_MOUNT is not set +CONFIG_GRKERNSEC_SIGNAL=y +CONFIG_GRKERNSEC_FORKFAIL=y +# CONFIG_GRKERNSEC_TIME is not set +CONFIG_GRKERNSEC_PROC_IPADDR=y +# CONFIG_GRKERNSEC_RWXMAP_LOG is not set + +# +# Executable Protections +# +CONFIG_GRKERNSEC_DMESG=y +CONFIG_GRKERNSEC_HARDEN_PTRACE=y +CONFIG_GRKERNSEC_PTRACE_READEXEC=y +CONFIG_GRKERNSEC_SETXID=y +# CONFIG_GRKERNSEC_TPE is not set + +# +# Network Protections +# +CONFIG_GRKERNSEC_RANDNET=y +CONFIG_GRKERNSEC_BLACKHOLE=y +CONFIG_GRKERNSEC_NO_SIMULT_CONNECT=y +# CONFIG_GRKERNSEC_SOCKET is not set + +# +# Physical Protections +# +# CONFIG_GRKERNSEC_DENYUSB is not set + +# +# Sysctl Support +# +# CONFIG_GRKERNSEC_SYSCTL is not set + +# +# Logging Options +# +CONFIG_GRKERNSEC_FLOODTIME=10 +CONFIG_GRKERNSEC_FLOODBURST=6 CONFIG_KEYS=y # CONFIG_ENCRYPTED_KEYS is not set -# CONFIG_KEYS_DEBUG_PROC_KEYS is not set -# CONFIG_SECURITY_DMESG_RESTRICT is not set -# CONFIG_SECURITY is not set -# CONFIG_SECURITYFS is not set +CONFIG_KEYS_DEBUG_PROC_KEYS=y +CONFIG_SECURITY_DMESG_RESTRICT=y +CONFIG_SECURITY=y +CONFIG_SECURITYFS=y +CONFIG_SECURITY_NETWORK=y +CONFIG_SECURITY_NETWORK_XFRM=y +# CONFIG_SECURITY_PATH is not set # CONFIG_INTEL_TXT is not set +# CONFIG_SECURITY_SELINUX is not set +# CONFIG_SECURITY_SMACK is not set +# CONFIG_SECURITY_TOMOYO is not set +# CONFIG_SECURITY_APPARMOR is not set +# CONFIG_IMA is not set +# CONFIG_EVM is not set CONFIG_DEFAULT_SECURITY_DAC=y CONFIG_DEFAULT_SECURITY="" CONFIG_XOR_BLOCKS=m @@ -4628,58 +5592,60 @@ CONFIG_ASYNC_MEMCPY=m CONFIG_ASYNC_XOR=m CONFIG_ASYNC_PQ=m CONFIG_ASYNC_RAID6_RECOV=m -CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y -CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y CONFIG_CRYPTO=y
# # Crypto core or helper # +CONFIG_CRYPTO_FIPS=y CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_ALGAPI2=y -CONFIG_CRYPTO_AEAD=m +CONFIG_CRYPTO_AEAD=y CONFIG_CRYPTO_AEAD2=y -CONFIG_CRYPTO_BLKCIPHER=m +CONFIG_CRYPTO_BLKCIPHER=y CONFIG_CRYPTO_BLKCIPHER2=y CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_HASH2=y -CONFIG_CRYPTO_RNG=m +CONFIG_CRYPTO_RNG=y CONFIG_CRYPTO_RNG2=y CONFIG_CRYPTO_PCOMP=m CONFIG_CRYPTO_PCOMP2=y CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y -CONFIG_CRYPTO_USER=m -CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y -CONFIG_CRYPTO_GF128MUL=m -# CONFIG_CRYPTO_NULL is not set +# CONFIG_CRYPTO_USER is not set +# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set +CONFIG_CRYPTO_GF128MUL=y +CONFIG_CRYPTO_NULL=m CONFIG_CRYPTO_PCRYPT=m CONFIG_CRYPTO_WORKQUEUE=y -CONFIG_CRYPTO_CRYPTD=m +CONFIG_CRYPTO_CRYPTD=y CONFIG_CRYPTO_AUTHENC=m -# CONFIG_CRYPTO_TEST is not set +CONFIG_CRYPTO_TEST=m +CONFIG_CRYPTO_ABLK_HELPER_X86=y +CONFIG_CRYPTO_GLUE_HELPER_X86=m
# # Authenticated Encryption with Associated Data # CONFIG_CRYPTO_CCM=m CONFIG_CRYPTO_GCM=m -CONFIG_CRYPTO_SEQIV=m +CONFIG_CRYPTO_SEQIV=y
# # Block modes # -CONFIG_CRYPTO_CBC=m -CONFIG_CRYPTO_CTR=m +CONFIG_CRYPTO_CBC=y +CONFIG_CRYPTO_CTR=y CONFIG_CRYPTO_CTS=m -CONFIG_CRYPTO_ECB=m -CONFIG_CRYPTO_LRW=m +CONFIG_CRYPTO_ECB=y +CONFIG_CRYPTO_LRW=y CONFIG_CRYPTO_PCBC=m -CONFIG_CRYPTO_XTS=m +CONFIG_CRYPTO_XTS=y
# # Hash modes # +CONFIG_CRYPTO_CMAC=m CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_XCBC=m CONFIG_CRYPTO_VMAC=m @@ -4687,18 +5653,20 @@ CONFIG_CRYPTO_VMAC=m # # Digest # -CONFIG_CRYPTO_CRC32C=m -CONFIG_CRYPTO_CRC32C_INTEL=m +CONFIG_CRYPTO_CRC32C=y +CONFIG_CRYPTO_CRC32C_INTEL=y +CONFIG_CRYPTO_CRC32=y +CONFIG_CRYPTO_CRC32_PCLMUL=m CONFIG_CRYPTO_GHASH=m CONFIG_CRYPTO_MD4=m -CONFIG_CRYPTO_MD5=m +CONFIG_CRYPTO_MD5=y CONFIG_CRYPTO_MICHAEL_MIC=m CONFIG_CRYPTO_RMD128=m CONFIG_CRYPTO_RMD160=m CONFIG_CRYPTO_RMD256=m CONFIG_CRYPTO_RMD320=m CONFIG_CRYPTO_SHA1=m -CONFIG_CRYPTO_SHA256=m +CONFIG_CRYPTO_SHA256=y CONFIG_CRYPTO_SHA512=m CONFIG_CRYPTO_TGR192=m CONFIG_CRYPTO_WP512=m @@ -4706,23 +5674,25 @@ CONFIG_CRYPTO_WP512=m # # Ciphers # -CONFIG_CRYPTO_AES=m -CONFIG_CRYPTO_AES_586=m -CONFIG_CRYPTO_AES_NI_INTEL=m +CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_AES_586=y +CONFIG_CRYPTO_AES_NI_INTEL=y CONFIG_CRYPTO_ANUBIS=m CONFIG_CRYPTO_ARC4=m CONFIG_CRYPTO_BLOWFISH=m CONFIG_CRYPTO_BLOWFISH_COMMON=m CONFIG_CRYPTO_CAMELLIA=m +CONFIG_CRYPTO_CAST_COMMON=m CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST6=m CONFIG_CRYPTO_DES=m CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_KHAZAD=m CONFIG_CRYPTO_SALSA20=m -CONFIG_CRYPTO_SALSA20_586=m +# CONFIG_CRYPTO_SALSA20_586 is not set CONFIG_CRYPTO_SEED=m CONFIG_CRYPTO_SERPENT=m +CONFIG_CRYPTO_SERPENT_SSE2_586=m CONFIG_CRYPTO_TEA=m CONFIG_CRYPTO_TWOFISH=m CONFIG_CRYPTO_TWOFISH_COMMON=m @@ -4731,7 +5701,7 @@ CONFIG_CRYPTO_TWOFISH_586=m # # Compression # -CONFIG_CRYPTO_DEFLATE=y +CONFIG_CRYPTO_DEFLATE=m CONFIG_CRYPTO_ZLIB=m CONFIG_CRYPTO_LZO=m
@@ -4739,45 +5709,63 @@ CONFIG_CRYPTO_LZO=m # Random Number Generation # CONFIG_CRYPTO_ANSI_CPRNG=m -CONFIG_CRYPTO_USER_API=m -CONFIG_CRYPTO_USER_API_HASH=m -CONFIG_CRYPTO_USER_API_SKCIPHER=m +CONFIG_CRYPTO_USER_API=y +CONFIG_CRYPTO_USER_API_HASH=y +CONFIG_CRYPTO_USER_API_SKCIPHER=y CONFIG_CRYPTO_HW=y CONFIG_CRYPTO_DEV_PADLOCK=m CONFIG_CRYPTO_DEV_PADLOCK_AES=m CONFIG_CRYPTO_DEV_PADLOCK_SHA=m CONFIG_CRYPTO_DEV_GEODE=m +CONFIG_ASYMMETRIC_KEY_TYPE=m +CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=m +CONFIG_PUBLIC_KEY_ALGO_RSA=m +CONFIG_X509_CERTIFICATE_PARSER=m CONFIG_HAVE_KVM=y CONFIG_HAVE_KVM_IRQCHIP=y +CONFIG_HAVE_KVM_IRQ_ROUTING=y CONFIG_HAVE_KVM_EVENTFD=y CONFIG_KVM_APIC_ARCHITECTURE=y CONFIG_KVM_MMIO=y CONFIG_KVM_ASYNC_PF=y +CONFIG_HAVE_KVM_MSI=y +CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y CONFIG_VIRTUALIZATION=y CONFIG_KVM=m CONFIG_KVM_INTEL=m CONFIG_KVM_AMD=m -CONFIG_VHOST_NET=m -CONFIG_LGUEST=m -# CONFIG_BINARY_PRINTF is not set +CONFIG_KVM_MMU_AUDIT=y +CONFIG_KVM_DEVICE_ASSIGNMENT=y +# CONFIG_LGUEST is not set +CONFIG_BINARY_PRINTF=y
# # Library routines # CONFIG_RAID6_PQ=m CONFIG_BITREVERSE=y +CONFIG_GENERIC_STRNCPY_FROM_USER=y +CONFIG_GENERIC_STRNLEN_USER=y CONFIG_GENERIC_FIND_FIRST_BIT=y -CONFIG_CRC_CCITT=m +CONFIG_GENERIC_PCI_IOMAP=y +CONFIG_GENERIC_IOMAP=y +CONFIG_GENERIC_IO=y +CONFIG_CRC_CCITT=y CONFIG_CRC16=y -CONFIG_CRC_T10DIF=m +CONFIG_CRC_T10DIF=y CONFIG_CRC_ITU_T=m CONFIG_CRC32=y +# CONFIG_CRC32_SELFTEST is not set +CONFIG_CRC32_SLICEBY8=y +# CONFIG_CRC32_SLICEBY4 is not set +# CONFIG_CRC32_SARWATE is not set +# CONFIG_CRC32_BIT is not set CONFIG_CRC7=m CONFIG_LIBCRC32C=m CONFIG_CRC8=m CONFIG_AUDIT_GENERIC=y CONFIG_ZLIB_INFLATE=y -CONFIG_ZLIB_DEFLATE=y +CONFIG_ZLIB_DEFLATE=m CONFIG_LZO_COMPRESS=y CONFIG_LZO_DECOMPRESS=y CONFIG_XZ_DEC=y @@ -4794,6 +5782,7 @@ CONFIG_DECOMPRESS_BZIP2=y CONFIG_DECOMPRESS_LZMA=y CONFIG_DECOMPRESS_XZ=y CONFIG_DECOMPRESS_LZO=y +CONFIG_GENERIC_ALLOCATOR=y CONFIG_TEXTSEARCH=y CONFIG_TEXTSEARCH_KMP=m CONFIG_TEXTSEARCH_BM=m @@ -4803,6 +5792,13 @@ CONFIG_HAS_IOPORT=y CONFIG_HAS_DMA=y CONFIG_CHECK_SIGNATURE=y CONFIG_CPU_RMAP=y +CONFIG_DQL=y CONFIG_NLATTR=y +CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y CONFIG_AVERAGE=y +CONFIG_CLZ_TAB=y CONFIG_CORDIC=m +# CONFIG_DDR is not set +CONFIG_MPILIB=m +CONFIG_OID_REGISTRY=m +CONFIG_UCS2_STRING=y diff --git a/config/kernel/kernel.config.i586-ipfire-xen b/config/kernel/kernel.config.i586-ipfire-xen deleted file mode 100644 index 5be047d..0000000 --- a/config/kernel/kernel.config.i586-ipfire-xen +++ /dev/null @@ -1,3749 +0,0 @@ -# -# Automatically generated make config: don't edit -# Linux kernel version: 2.6.32.61-ipfire-xen -# Wed Jun 19 10:32:43 2013 -# -# CONFIG_64BIT is not set -CONFIG_X86_32=y -# CONFIG_X86_64 is not set -CONFIG_X86=y -CONFIG_OUTPUT_FORMAT="elf32-i386" -CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig" -CONFIG_GENERIC_TIME=y -CONFIG_GENERIC_CMOS_UPDATE=y -CONFIG_LOCKDEP_SUPPORT=y -CONFIG_STACKTRACE_SUPPORT=y -CONFIG_HAVE_LATENCYTOP_SUPPORT=y -CONFIG_MMU=y -CONFIG_ZONE_DMA=y -CONFIG_GENERIC_ISA_DMA=y -CONFIG_GENERIC_IOMAP=y -CONFIG_GENERIC_BUG=y -CONFIG_GENERIC_HWEIGHT=y -CONFIG_ARCH_MAY_HAVE_PC_FDC=y -# CONFIG_RWSEM_GENERIC_SPINLOCK is not set -CONFIG_RWSEM_XCHGADD_ALGORITHM=y -CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y -CONFIG_GENERIC_CALIBRATE_DELAY=y -# CONFIG_GENERIC_TIME_VSYSCALL is not set -CONFIG_ARCH_HAS_CPU_RELAX=y -CONFIG_ARCH_HAS_DEFAULT_IDLE=y -CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y -CONFIG_HAVE_SETUP_PER_CPU_AREA=y -CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y -CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y -# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set -CONFIG_ARCH_SUSPEND_POSSIBLE=y -# CONFIG_ZONE_DMA32 is not set -CONFIG_ARCH_POPULATES_NODE_MAP=y -# CONFIG_AUDIT_ARCH is not set -CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y -CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y -CONFIG_GENERIC_HARDIRQS=y -CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y -CONFIG_GENERIC_IRQ_PROBE=y -CONFIG_GENERIC_PENDING_IRQ=y -CONFIG_USE_GENERIC_SMP_HELPERS=y -CONFIG_X86_32_SMP=y -CONFIG_X86_NO_TSS=y -CONFIG_X86_NO_IDT=y -CONFIG_KTIME_SCALAR=y -CONFIG_ARCH_CPU_PROBE_RELEASE=y -CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" -CONFIG_CONSTRUCTORS=y - -# -# General setup -# -CONFIG_EXPERIMENTAL=y -CONFIG_LOCK_KERNEL=y -CONFIG_INIT_ENV_ARG_LIMIT=32 -CONFIG_LOCALVERSION="" -# CONFIG_LOCALVERSION_AUTO is not set -CONFIG_HAVE_KERNEL_GZIP=y -CONFIG_KERNEL_GZIP=y -# CONFIG_KERNEL_BZIP2 is not set -# CONFIG_KERNEL_LZMA is not set -CONFIG_SWAP=y -CONFIG_SYSVIPC=y -CONFIG_SYSVIPC_SYSCTL=y -CONFIG_POSIX_MQUEUE=y -CONFIG_POSIX_MQUEUE_SYSCTL=y -CONFIG_BSD_PROCESS_ACCT=y -CONFIG_BSD_PROCESS_ACCT_V3=y -# CONFIG_TASKSTATS is not set -CONFIG_AUDIT=y -CONFIG_AUDITSYSCALL=y -CONFIG_AUDIT_TREE=y - -# -# RCU Subsystem -# -CONFIG_TREE_RCU=y -# CONFIG_TREE_PREEMPT_RCU is not set -# CONFIG_RCU_TRACE is not set -CONFIG_RCU_FANOUT=32 -# CONFIG_RCU_FANOUT_EXACT is not set -# CONFIG_TREE_RCU_TRACE is not set -# CONFIG_IKCONFIG is not set -CONFIG_LOG_BUF_SHIFT=17 -CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y -# CONFIG_CGROUPS is not set -CONFIG_SYSFS_DEPRECATED=y -CONFIG_SYSFS_DEPRECATED_V2=y -# CONFIG_RELAY is not set -CONFIG_NAMESPACES=y -CONFIG_UTS_NS=y -CONFIG_IPC_NS=y -# CONFIG_USER_NS is not set -# CONFIG_PID_NS is not set -# CONFIG_NET_NS is not set -CONFIG_BLK_DEV_INITRD=y -CONFIG_INITRAMFS_SOURCE="" -CONFIG_RD_GZIP=y -CONFIG_RD_BZIP2=y -CONFIG_RD_LZMA=y -# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set -CONFIG_SYSCTL=y -CONFIG_ANON_INODES=y -# CONFIG_EMBEDDED is not set -CONFIG_UID16=y -CONFIG_SYSCTL_SYSCALL=y -CONFIG_KALLSYMS=y -# CONFIG_KALLSYMS_ALL is not set -# CONFIG_KALLSYMS_EXTRA_PASS is not set -CONFIG_HOTPLUG=y -CONFIG_PRINTK=y -CONFIG_BUG=y -CONFIG_ELF_CORE=y -CONFIG_PCSPKR_PLATFORM=y -CONFIG_BASE_FULL=y -CONFIG_FUTEX=y -CONFIG_EPOLL=y -CONFIG_SIGNALFD=y -CONFIG_TIMERFD=y -CONFIG_EVENTFD=y -CONFIG_SHMEM=y -CONFIG_AIO=y - -# -# Kernel Performance Events And Counters -# -CONFIG_VM_EVENT_COUNTERS=y -CONFIG_PCI_QUIRKS=y -CONFIG_SLUB_DEBUG=y -# CONFIG_COMPAT_BRK is not set -# CONFIG_SLAB is not set -CONFIG_SLUB=y -# CONFIG_SLOB is not set -# CONFIG_PROFILING is not set -CONFIG_HAVE_OPROFILE=y -# CONFIG_KPROBES is not set -CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y -CONFIG_HAVE_IOREMAP_PROT=y -CONFIG_HAVE_KPROBES=y -CONFIG_HAVE_KRETPROBES=y -CONFIG_HAVE_ARCH_TRACEHOOK=y -CONFIG_HAVE_DMA_ATTRS=y -CONFIG_HAVE_DMA_API_DEBUG=y - -# -# GCOV-based kernel profiling -# -CONFIG_SLOW_WORK=y -CONFIG_HAVE_GENERIC_DMA_COHERENT=y -CONFIG_SLABINFO=y -CONFIG_RT_MUTEXES=y -CONFIG_BASE_SMALL=0 -CONFIG_MODULES=y -# CONFIG_MODULE_FORCE_LOAD is not set -CONFIG_MODULE_UNLOAD=y -CONFIG_MODULE_FORCE_UNLOAD=y -# CONFIG_MODVERSIONS is not set -# CONFIG_MODULE_SRCVERSION_ALL is not set -CONFIG_STOP_MACHINE=y -CONFIG_BLOCK=y -CONFIG_LBDAF=y -# CONFIG_BLK_DEV_BSG is not set -# CONFIG_BLK_DEV_INTEGRITY is not set - -# -# IO Schedulers -# -CONFIG_IOSCHED_NOOP=y -CONFIG_IOSCHED_AS=y -CONFIG_IOSCHED_DEADLINE=y -CONFIG_IOSCHED_CFQ=y -# CONFIG_DEFAULT_AS is not set -# CONFIG_DEFAULT_DEADLINE is not set -CONFIG_DEFAULT_CFQ=y -# CONFIG_DEFAULT_NOOP is not set -CONFIG_DEFAULT_IOSCHED="cfq" -CONFIG_FREEZER=y - -# -# Processor type and features -# -CONFIG_SMP=y -CONFIG_SPARSE_IRQ=y -CONFIG_X86_MPPARSE=y -CONFIG_X86_XEN=y -CONFIG_SCHED_OMIT_FRAME_POINTER=y -# CONFIG_M386 is not set -# CONFIG_M486 is not set -# CONFIG_M586 is not set -CONFIG_M586TSC=y -# CONFIG_M586MMX is not set -# CONFIG_M686 is not set -# CONFIG_MPENTIUMII is not set -# CONFIG_MPENTIUMIII is not set -# CONFIG_MPENTIUMM is not set -# CONFIG_MPENTIUM4 is not set -# CONFIG_MK6 is not set -# CONFIG_MK7 is not set -# CONFIG_MK8 is not set -# CONFIG_MCRUSOE is not set -# CONFIG_MEFFICEON is not set -# CONFIG_MWINCHIPC6 is not set -# CONFIG_MWINCHIP3D is not set -# CONFIG_MGEODEGX1 is not set -# CONFIG_MGEODE_LX is not set -# CONFIG_MCYRIXIII is not set -# CONFIG_MVIAC3_2 is not set -# CONFIG_MVIAC7 is not set -# CONFIG_MPSC is not set -# CONFIG_MCORE2 is not set -# CONFIG_MATOM is not set -# CONFIG_GENERIC_CPU is not set -CONFIG_X86_GENERIC=y -CONFIG_X86_CPU=y -CONFIG_X86_L1_CACHE_BYTES=64 -CONFIG_X86_INTERNODE_CACHE_BYTES=64 -CONFIG_X86_CMPXCHG=y -CONFIG_X86_L1_CACHE_SHIFT=5 -CONFIG_X86_XADD=y -# CONFIG_X86_PPRO_FENCE is not set -CONFIG_X86_WP_WORKS_OK=y -CONFIG_X86_INVLPG=y -CONFIG_X86_BSWAP=y -CONFIG_X86_POPAD_OK=y -CONFIG_X86_ALIGNMENT_16=y -CONFIG_X86_INTEL_USERCOPY=y -CONFIG_X86_CMPXCHG64=y -CONFIG_X86_MINIMUM_CPU_FAMILY=5 -CONFIG_CPU_SUP_INTEL=y -CONFIG_CPU_SUP_CYRIX_32=y -CONFIG_CPU_SUP_AMD=y -CONFIG_CPU_SUP_CENTAUR=y -CONFIG_CPU_SUP_TRANSMETA_32=y -CONFIG_DMI=y -CONFIG_SWIOTLB=y -CONFIG_IOMMU_HELPER=y -# CONFIG_IOMMU_API is not set -CONFIG_NR_CPUS=8 -CONFIG_IRQ_TIME_ACCOUNTING=y -CONFIG_PREEMPT_NONE=y -# CONFIG_PREEMPT_VOLUNTARY is not set -# CONFIG_PREEMPT is not set -CONFIG_X86_LOCAL_APIC=y -CONFIG_X86_IO_APIC=y -# CONFIG_X86_MCE is not set -CONFIG_VM86=y -CONFIG_TOSHIBA=m -CONFIG_I8K=m -CONFIG_MICROCODE=m -CONFIG_MICROCODE_OLD_INTERFACE=y -CONFIG_X86_MSR=m -CONFIG_X86_CPUID=y -# CONFIG_NOHIGHMEM is not set -CONFIG_HIGHMEM4G=y -# CONFIG_HIGHMEM64G is not set -CONFIG_PAGE_OFFSET=0xC0000000 -CONFIG_HIGHMEM=y -CONFIG_X86_PAE=y -CONFIG_ARCH_PHYS_ADDR_T_64BIT=y -CONFIG_ILLEGAL_POINTER_VALUE=0 -CONFIG_SELECT_MEMORY_MODEL=y -CONFIG_FLATMEM_MANUAL=y -# CONFIG_DISCONTIGMEM_MANUAL is not set -# CONFIG_SPARSEMEM_MANUAL is not set -CONFIG_FLATMEM=y -CONFIG_FLAT_NODE_MEM_MAP=y -CONFIG_PAGEFLAGS_EXTENDED=y -CONFIG_SPLIT_PTLOCK_CPUS=4 -CONFIG_PHYS_ADDR_T_64BIT=y -CONFIG_ZONE_DMA_FLAG=1 -CONFIG_BOUNCE=y -CONFIG_VIRT_TO_BUS=y -CONFIG_HAVE_MLOCK=y -CONFIG_HAVE_MLOCKED_PAGE_BIT=y -CONFIG_KSM=y -CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 -# CONFIG_HIGHPTE is not set -CONFIG_MTRR=y -# CONFIG_X86_PAT is not set -CONFIG_ARCH_RANDOM=y -CONFIG_SECCOMP=y -CONFIG_CC_STACKPROTECTOR=y -# CONFIG_HZ_100 is not set -# CONFIG_HZ_250 is not set -CONFIG_HZ_300=y -# CONFIG_HZ_1000 is not set -CONFIG_HZ=300 -# CONFIG_SCHED_HRTICK is not set -# CONFIG_KEXEC is not set -CONFIG_PHYSICAL_START=0x100000 -CONFIG_PHYSICAL_ALIGN=0x2000 -CONFIG_HOTPLUG_CPU=y -CONFIG_COMPAT_VDSO=y -# CONFIG_CMDLINE_BOOL is not set - -# -# Power management and ACPI options -# -CONFIG_PM=y -# CONFIG_PM_DEBUG is not set -CONFIG_PM_SLEEP_SMP=y -CONFIG_PM_SLEEP=y -CONFIG_SUSPEND=y -CONFIG_SUSPEND_FREEZER=y -CONFIG_PM_RUNTIME=y -CONFIG_ACPI=y -CONFIG_ACPI_SLEEP=y -# CONFIG_ACPI_PROCFS is not set -CONFIG_ACPI_PROCFS_POWER=y -CONFIG_ACPI_POWER_METER=m -CONFIG_ACPI_SYSFS_POWER=y -CONFIG_ACPI_PROC_EVENT=y -CONFIG_ACPI_AC=m -CONFIG_ACPI_BATTERY=m -CONFIG_ACPI_BUTTON=m -CONFIG_ACPI_VIDEO=m -CONFIG_ACPI_FAN=m -CONFIG_ACPI_DOCK=y -CONFIG_ACPI_PROCESSOR=m -CONFIG_ACPI_HOTPLUG_CPU=y -CONFIG_ACPI_PROCESSOR_AGGREGATOR=m -CONFIG_ACPI_THERMAL=m -CONFIG_ACPI_CUSTOM_DSDT_FILE="" -# CONFIG_ACPI_CUSTOM_DSDT is not set -CONFIG_ACPI_BLACKLIST_YEAR=0 -# CONFIG_ACPI_DEBUG is not set -CONFIG_ACPI_PCI_SLOT=m -CONFIG_ACPI_CONTAINER=m -CONFIG_ACPI_SBS=m -CONFIG_ACPI_PV_SLEEP=y -CONFIG_PROCESSOR_EXTERNAL_CONTROL=y -# CONFIG_SFI is not set - -# -# CPU Frequency scaling -# - -# -# Bus options (PCI etc.) -# -CONFIG_PCI=y -# CONFIG_PCI_GOBIOS is not set -# CONFIG_PCI_GOMMCONFIG is not set -# CONFIG_PCI_GODIRECT is not set -# CONFIG_PCI_GOOLPC is not set -# CONFIG_PCI_GOXEN_FE is not set -CONFIG_PCI_GOANY=y -CONFIG_PCI_DIRECT=y -CONFIG_PCI_MMCONFIG=y -CONFIG_PCI_DOMAINS=y -CONFIG_XEN_PCIDEV_FRONTEND=y -# CONFIG_XEN_PCIDEV_FE_DEBUG is not set -CONFIG_PCIEPORTBUS=y -CONFIG_PCIEAER=y -# CONFIG_PCIE_ECRC is not set -# CONFIG_PCIEAER_INJECT is not set -CONFIG_PCIEASPM=y -# CONFIG_PCIEASPM_DEBUG is not set -CONFIG_ARCH_SUPPORTS_MSI=y -CONFIG_PCI_MSI=y -CONFIG_PCI_LEGACY=y -# CONFIG_PCI_DEBUG is not set -CONFIG_PCI_GUESTDEV=y -CONFIG_PCI_IOMULTI=y -CONFIG_PCI_RESERVE=y -CONFIG_PCI_STUB=m -CONFIG_PCI_IOV=y -CONFIG_ISA_DMA_API=y -CONFIG_SCx200=m -CONFIG_SCx200HR_TIMER=m -# CONFIG_OLPC is not set -CONFIG_K8_NB=y -CONFIG_PCCARD=m -# CONFIG_PCMCIA_DEBUG is not set -CONFIG_PCMCIA=m -CONFIG_PCMCIA_LOAD_CIS=y -CONFIG_PCMCIA_IOCTL=y -CONFIG_CARDBUS=y - -# -# PC-card bridges -# -CONFIG_YENTA=m -CONFIG_YENTA_O2=y -CONFIG_YENTA_RICOH=y -CONFIG_YENTA_TI=y -CONFIG_YENTA_ENE_TUNE=y -CONFIG_YENTA_TOSHIBA=y -CONFIG_PD6729=m -CONFIG_I82092=m -CONFIG_PCCARD_NONSTATIC=m -# CONFIG_HOTPLUG_PCI is not set - -# -# Executable file formats / Emulations -# -CONFIG_BINFMT_ELF=y -# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set -CONFIG_HAVE_AOUT=y -# CONFIG_BINFMT_AOUT is not set -# CONFIG_BINFMT_MISC is not set -CONFIG_HAVE_ATOMIC_IOMAP=y -CONFIG_NET=y - -# -# Networking options -# -CONFIG_PACKET=y -CONFIG_PACKET_MMAP=y -CONFIG_UNIX=y -CONFIG_XFRM=y -CONFIG_XFRM_USER=m -# CONFIG_XFRM_SUB_POLICY is not set -CONFIG_XFRM_MIGRATE=y -CONFIG_XFRM_STATISTICS=y -CONFIG_XFRM_IPCOMP=m -CONFIG_NET_KEY=m -CONFIG_NET_KEY_MIGRATE=y -CONFIG_INET=y -CONFIG_IP_MULTICAST=y -CONFIG_IP_ADVANCED_ROUTER=y -CONFIG_ASK_IP_FIB_HASH=y -# CONFIG_IP_FIB_TRIE is not set -CONFIG_IP_FIB_HASH=y -CONFIG_IP_MULTIPLE_TABLES=y -CONFIG_IP_ROUTE_MULTIPATH=y -CONFIG_IP_ROUTE_VERBOSE=y -# CONFIG_IP_PNP is not set -CONFIG_NET_IPIP=m -CONFIG_NET_IPGRE=m -CONFIG_NET_IPGRE_BROADCAST=y -CONFIG_IP_MROUTE=y -CONFIG_IP_PIMSM_V1=y -CONFIG_IP_PIMSM_V2=y -CONFIG_ARPD=y -CONFIG_SYN_COOKIES=y -CONFIG_INET_AH=m -CONFIG_INET_ESP=m -CONFIG_INET_IPCOMP=m -CONFIG_INET_XFRM_TUNNEL=m -CONFIG_INET_TUNNEL=m -CONFIG_INET_XFRM_MODE_TRANSPORT=y -CONFIG_INET_XFRM_MODE_TUNNEL=y -CONFIG_INET_XFRM_MODE_BEET=y -CONFIG_INET_LRO=y -CONFIG_INET_DIAG=m -CONFIG_INET_TCP_DIAG=m -CONFIG_TCP_CONG_ADVANCED=y -CONFIG_TCP_CONG_BIC=m -CONFIG_TCP_CONG_CUBIC=m -CONFIG_TCP_CONG_WESTWOOD=m -CONFIG_TCP_CONG_HTCP=m -CONFIG_TCP_CONG_HSTCP=m -CONFIG_TCP_CONG_HYBLA=m -CONFIG_TCP_CONG_VEGAS=m -CONFIG_TCP_CONG_SCALABLE=m -CONFIG_TCP_CONG_LP=m -CONFIG_TCP_CONG_VENO=m -CONFIG_TCP_CONG_YEAH=m -CONFIG_TCP_CONG_ILLINOIS=m -# CONFIG_DEFAULT_BIC is not set -# CONFIG_DEFAULT_CUBIC is not set -# CONFIG_DEFAULT_HTCP is not set -# CONFIG_DEFAULT_VEGAS is not set -# CONFIG_DEFAULT_WESTWOOD is not set -CONFIG_DEFAULT_RENO=y -CONFIG_DEFAULT_TCP_CONG="reno" -# CONFIG_TCP_MD5SIG is not set -CONFIG_IPV6=y -# CONFIG_IPV6_PRIVACY is not set -# CONFIG_IPV6_ROUTER_PREF is not set -# CONFIG_IPV6_OPTIMISTIC_DAD is not set -CONFIG_INET6_AH=m -CONFIG_INET6_ESP=m -CONFIG_INET6_IPCOMP=m -CONFIG_IPV6_MIP6=m -CONFIG_INET6_XFRM_TUNNEL=m -CONFIG_INET6_TUNNEL=m -CONFIG_INET6_XFRM_MODE_TRANSPORT=m -CONFIG_INET6_XFRM_MODE_TUNNEL=m -CONFIG_INET6_XFRM_MODE_BEET=m -CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m -CONFIG_IPV6_SIT=m -CONFIG_IPV6_NDISC_NODETYPE=y -CONFIG_IPV6_TUNNEL=m -CONFIG_IPV6_MULTIPLE_TABLES=y -# CONFIG_IPV6_SUBTREES is not set -# CONFIG_IPV6_MROUTE is not set -# CONFIG_NETWORK_SECMARK is not set -CONFIG_NETFILTER=y -# CONFIG_NETFILTER_DEBUG is not set -CONFIG_NETFILTER_ADVANCED=y -CONFIG_BRIDGE_NETFILTER=y - -# -# Core Netfilter Configuration -# -CONFIG_NETFILTER_NETLINK=m -CONFIG_NETFILTER_NETLINK_QUEUE=m -CONFIG_NETFILTER_NETLINK_LOG=m -CONFIG_NF_CONNTRACK=m -CONFIG_NF_CT_ACCT=y -CONFIG_NF_CONNTRACK_MARK=y -CONFIG_NF_CONNTRACK_EVENTS=y -CONFIG_NF_CT_PROTO_DCCP=m -CONFIG_NF_CT_PROTO_GRE=m -CONFIG_NF_CT_PROTO_SCTP=m -CONFIG_NF_CT_PROTO_UDPLITE=m -CONFIG_NF_CONNTRACK_AMANDA=m -CONFIG_NF_CONNTRACK_FTP=m -CONFIG_NF_CONNTRACK_H323=m -CONFIG_NF_CONNTRACK_IRC=m -CONFIG_NF_CONNTRACK_NETBIOS_NS=m -CONFIG_NF_CONNTRACK_PPTP=m -CONFIG_NF_CONNTRACK_SANE=m -CONFIG_NF_CONNTRACK_SIP=m -CONFIG_NF_CONNTRACK_TFTP=m -CONFIG_NF_CT_NETLINK=m -CONFIG_NETFILTER_TPROXY=m -CONFIG_NETFILTER_XTABLES=m -CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m -CONFIG_NETFILTER_XT_TARGET_CONNMARK=m -CONFIG_NETFILTER_XT_TARGET_DSCP=m -CONFIG_NETFILTER_XT_TARGET_HL=m -CONFIG_NETFILTER_XT_TARGET_LED=m -CONFIG_NETFILTER_XT_TARGET_IMQ=m -CONFIG_NETFILTER_XT_TARGET_MARK=m -CONFIG_NETFILTER_XT_TARGET_NFLOG=m -CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m -CONFIG_NETFILTER_XT_TARGET_NOTRACK=m -CONFIG_NETFILTER_XT_TARGET_RATEEST=m -CONFIG_NETFILTER_XT_TARGET_TPROXY=m -CONFIG_NETFILTER_XT_TARGET_TRACE=m -CONFIG_NETFILTER_XT_TARGET_TCPMSS=m -CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m -CONFIG_NETFILTER_XT_MATCH_CLUSTER=m -CONFIG_NETFILTER_XT_MATCH_COMMENT=m -CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m -CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m -CONFIG_NETFILTER_XT_MATCH_CONNMARK=m -CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m -CONFIG_NETFILTER_XT_MATCH_DCCP=m -CONFIG_NETFILTER_XT_MATCH_DSCP=m -CONFIG_NETFILTER_XT_MATCH_ESP=m -CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m -CONFIG_NETFILTER_XT_MATCH_HELPER=m -CONFIG_NETFILTER_XT_MATCH_HL=m -CONFIG_NETFILTER_XT_MATCH_IPRANGE=m -CONFIG_NETFILTER_XT_MATCH_LENGTH=m -CONFIG_NETFILTER_XT_MATCH_LIMIT=m -CONFIG_NETFILTER_XT_MATCH_MAC=m -CONFIG_NETFILTER_XT_MATCH_MARK=m -CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m -CONFIG_NETFILTER_XT_MATCH_OWNER=m -CONFIG_NETFILTER_XT_MATCH_POLICY=m -CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m -CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m -CONFIG_NETFILTER_XT_MATCH_QUOTA=m -CONFIG_NETFILTER_XT_MATCH_RATEEST=m -CONFIG_NETFILTER_XT_MATCH_REALM=m -CONFIG_NETFILTER_XT_MATCH_RECENT=m -CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT=y -CONFIG_NETFILTER_XT_MATCH_SCTP=m -CONFIG_NETFILTER_XT_MATCH_SOCKET=m -CONFIG_NETFILTER_XT_MATCH_STATE=m -CONFIG_NETFILTER_XT_MATCH_LAYER7=m -# CONFIG_NETFILTER_XT_MATCH_LAYER7_DEBUG is not set -CONFIG_NETFILTER_XT_MATCH_STATISTIC=m -CONFIG_NETFILTER_XT_MATCH_STRING=m -CONFIG_NETFILTER_XT_MATCH_TCPMSS=m -CONFIG_NETFILTER_XT_MATCH_TIME=m -CONFIG_NETFILTER_XT_MATCH_U32=m -CONFIG_NETFILTER_XT_MATCH_OSF=m -CONFIG_IP_VS=m -CONFIG_IP_VS_IPV6=y -# CONFIG_IP_VS_DEBUG is not set -CONFIG_IP_VS_TAB_BITS=12 - -# -# IPVS transport protocol load balancing support -# -CONFIG_IP_VS_PROTO_TCP=y -CONFIG_IP_VS_PROTO_UDP=y -CONFIG_IP_VS_PROTO_AH_ESP=y -CONFIG_IP_VS_PROTO_ESP=y -CONFIG_IP_VS_PROTO_AH=y - -# -# IPVS scheduler -# -CONFIG_IP_VS_RR=m -CONFIG_IP_VS_WRR=m -CONFIG_IP_VS_LC=m -CONFIG_IP_VS_WLC=m -CONFIG_IP_VS_LBLC=m -CONFIG_IP_VS_LBLCR=m -CONFIG_IP_VS_DH=m -CONFIG_IP_VS_SH=m -CONFIG_IP_VS_SED=m -CONFIG_IP_VS_NQ=m - -# -# IPVS application helper -# -CONFIG_IP_VS_FTP=m - -# -# IP: Netfilter Configuration -# -CONFIG_NF_DEFRAG_IPV4=m -CONFIG_NF_CONNTRACK_IPV4=m -CONFIG_NF_CONNTRACK_PROC_COMPAT=y -CONFIG_IP_NF_QUEUE=m -CONFIG_IP_NF_IPTABLES=m -CONFIG_IP_NF_MATCH_ADDRTYPE=m -CONFIG_IP_NF_MATCH_AH=m -CONFIG_IP_NF_MATCH_ECN=m -CONFIG_IP_NF_MATCH_TTL=m -CONFIG_IP_NF_FILTER=m -CONFIG_IP_NF_TARGET_REJECT=m -CONFIG_IP_NF_TARGET_LOG=m -CONFIG_IP_NF_TARGET_ULOG=m -CONFIG_NF_NAT=m -CONFIG_NF_NAT_NEEDED=y -CONFIG_IP_NF_TARGET_MASQUERADE=m -CONFIG_IP_NF_TARGET_NETMAP=m -CONFIG_IP_NF_TARGET_REDIRECT=m -CONFIG_NF_NAT_SNMP_BASIC=m -CONFIG_NF_NAT_PROTO_DCCP=m -CONFIG_NF_NAT_PROTO_GRE=m -CONFIG_NF_NAT_PROTO_UDPLITE=m -CONFIG_NF_NAT_PROTO_SCTP=m -CONFIG_NF_NAT_FTP=m -CONFIG_NF_NAT_IRC=m -CONFIG_NF_NAT_TFTP=m -CONFIG_NF_NAT_AMANDA=m -CONFIG_NF_NAT_PPTP=m -CONFIG_NF_NAT_H323=m -CONFIG_NF_NAT_SIP=m -CONFIG_IP_NF_MANGLE=m -CONFIG_IP_NF_TARGET_CLUSTERIP=m -CONFIG_IP_NF_TARGET_ECN=m -CONFIG_IP_NF_TARGET_TTL=m -CONFIG_IP_NF_RAW=m -CONFIG_IP_NF_ARPTABLES=m -CONFIG_IP_NF_ARPFILTER=m -CONFIG_IP_NF_ARP_MANGLE=m -CONFIG_IP_NF_MATCH_IPP2P=m - -# -# IPv6: Netfilter Configuration -# -CONFIG_NF_CONNTRACK_IPV6=m -CONFIG_IP6_NF_QUEUE=m -CONFIG_IP6_NF_IPTABLES=m -CONFIG_IP6_NF_MATCH_AH=m -CONFIG_IP6_NF_MATCH_EUI64=m -CONFIG_IP6_NF_MATCH_FRAG=m -CONFIG_IP6_NF_MATCH_OPTS=m -CONFIG_IP6_NF_MATCH_HL=m -CONFIG_IP6_NF_MATCH_IPV6HEADER=m -CONFIG_IP6_NF_MATCH_MH=m -CONFIG_IP6_NF_MATCH_RT=m -CONFIG_IP6_NF_TARGET_HL=m -CONFIG_IP6_NF_TARGET_LOG=m -CONFIG_IP6_NF_FILTER=m -CONFIG_IP6_NF_TARGET_REJECT=m -CONFIG_IP6_NF_MANGLE=m -CONFIG_IP6_NF_RAW=m -CONFIG_BRIDGE_NF_EBTABLES=m -CONFIG_BRIDGE_EBT_BROUTE=m -CONFIG_BRIDGE_EBT_T_FILTER=m -CONFIG_BRIDGE_EBT_T_NAT=m -CONFIG_BRIDGE_EBT_802_3=m -CONFIG_BRIDGE_EBT_AMONG=m -CONFIG_BRIDGE_EBT_ARP=m -CONFIG_BRIDGE_EBT_IP=m -CONFIG_BRIDGE_EBT_IP6=m -CONFIG_BRIDGE_EBT_LIMIT=m -CONFIG_BRIDGE_EBT_MARK=m -CONFIG_BRIDGE_EBT_PKTTYPE=m -CONFIG_BRIDGE_EBT_STP=m -CONFIG_BRIDGE_EBT_VLAN=m -CONFIG_BRIDGE_EBT_ARPREPLY=m -CONFIG_BRIDGE_EBT_DNAT=m -CONFIG_BRIDGE_EBT_MARK_T=m -CONFIG_BRIDGE_EBT_REDIRECT=m -CONFIG_BRIDGE_EBT_SNAT=m -CONFIG_BRIDGE_EBT_LOG=m -CONFIG_BRIDGE_EBT_ULOG=m -CONFIG_BRIDGE_EBT_NFLOG=m -# CONFIG_IP_DCCP is not set -# CONFIG_IP_SCTP is not set -# CONFIG_RDS is not set -# CONFIG_TIPC is not set -CONFIG_ATM=m -CONFIG_ATM_CLIP=m -CONFIG_ATM_CLIP_NO_ICMP=y -# CONFIG_ATM_LANE is not set -CONFIG_ATM_BR2684=m -# CONFIG_ATM_BR2684_IPFILTER is not set -CONFIG_STP=m -CONFIG_GARP=m -CONFIG_BRIDGE=m -CONFIG_NET_DSA=y -CONFIG_NET_DSA_TAG_DSA=y -CONFIG_NET_DSA_TAG_EDSA=y -CONFIG_NET_DSA_TAG_TRAILER=y -CONFIG_NET_DSA_MV88E6XXX=y -CONFIG_NET_DSA_MV88E6060=y -CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y -CONFIG_NET_DSA_MV88E6131=y -CONFIG_NET_DSA_MV88E6123_61_65=y -CONFIG_VLAN_8021Q=m -CONFIG_VLAN_8021Q_GVRP=y -# CONFIG_DECNET is not set -CONFIG_LLC=m -# CONFIG_LLC2 is not set -# CONFIG_IPX is not set -# CONFIG_ATALK is not set -# CONFIG_X25 is not set -# CONFIG_LAPB is not set -# CONFIG_ECONET is not set -# CONFIG_WAN_ROUTER is not set -# CONFIG_PHONET is not set -CONFIG_IEEE802154=m -CONFIG_NET_SCHED=y - -# -# Queueing/Scheduling -# -CONFIG_NET_SCH_CBQ=m -CONFIG_NET_SCH_HTB=m -CONFIG_NET_SCH_HFSC=m -CONFIG_NET_SCH_ATM=m -CONFIG_NET_SCH_PRIO=m -CONFIG_NET_SCH_MULTIQ=m -CONFIG_NET_SCH_RED=m -CONFIG_NET_SCH_SFQ=m -CONFIG_NET_SCH_TEQL=m -CONFIG_NET_SCH_TBF=m -CONFIG_NET_SCH_GRED=m -CONFIG_NET_SCH_DSMARK=m -CONFIG_NET_SCH_NETEM=m -CONFIG_NET_SCH_DRR=m -CONFIG_NET_SCH_INGRESS=m - -# -# Classification -# -CONFIG_NET_CLS=y -CONFIG_NET_CLS_BASIC=m -CONFIG_NET_CLS_TCINDEX=m -CONFIG_NET_CLS_ROUTE4=m -CONFIG_NET_CLS_ROUTE=y -CONFIG_NET_CLS_FW=m -CONFIG_NET_CLS_U32=m -CONFIG_CLS_U32_PERF=y -CONFIG_CLS_U32_MARK=y -CONFIG_NET_CLS_RSVP=m -CONFIG_NET_CLS_RSVP6=m -CONFIG_NET_CLS_FLOW=m -CONFIG_NET_EMATCH=y -CONFIG_NET_EMATCH_STACK=32 -CONFIG_NET_EMATCH_CMP=m -CONFIG_NET_EMATCH_NBYTE=m -CONFIG_NET_EMATCH_U32=m -CONFIG_NET_EMATCH_META=m -CONFIG_NET_EMATCH_TEXT=m -CONFIG_NET_CLS_ACT=y -CONFIG_NET_ACT_POLICE=m -CONFIG_NET_ACT_GACT=m -CONFIG_GACT_PROB=y -CONFIG_NET_ACT_MIRRED=m -CONFIG_NET_ACT_IPT=m -CONFIG_NET_ACT_NAT=m -CONFIG_NET_ACT_PEDIT=m -# CONFIG_NET_ACT_SIMP is not set -CONFIG_NET_ACT_SKBEDIT=m -CONFIG_NET_CLS_IND=y -CONFIG_NET_SCH_FIFO=y -# CONFIG_DCB is not set - -# -# Network testing -# -# CONFIG_NET_PKTGEN is not set -# CONFIG_HAMRADIO is not set -# CONFIG_CAN is not set -CONFIG_IRDA=m - -# -# IrDA protocols -# -CONFIG_IRLAN=m -CONFIG_IRNET=m -CONFIG_IRCOMM=m -# CONFIG_IRDA_ULTRA is not set - -# -# IrDA options -# -# CONFIG_IRDA_CACHE_LAST_LSAP is not set -# CONFIG_IRDA_FAST_RR is not set -# CONFIG_IRDA_DEBUG is not set - -# -# Infrared-port device drivers -# - -# -# SIR device drivers -# -CONFIG_IRTTY_SIR=m - -# -# Dongle support -# -# CONFIG_DONGLE is not set -CONFIG_KINGSUN_DONGLE=m -CONFIG_KSDAZZLE_DONGLE=m -CONFIG_KS959_DONGLE=m - -# -# FIR device drivers -# -CONFIG_USB_IRDA=m -CONFIG_SIGMATEL_FIR=m -CONFIG_NSC_FIR=m -CONFIG_WINBOND_FIR=m -CONFIG_TOSHIBA_FIR=m -CONFIG_SMC_IRCC_FIR=m -CONFIG_ALI_FIR=m -CONFIG_VLSI_FIR=m -CONFIG_VIA_FIR=m -CONFIG_MCS_FIR=m -CONFIG_BT=m -CONFIG_BT_L2CAP=m -CONFIG_BT_SCO=m -CONFIG_BT_RFCOMM=m -CONFIG_BT_RFCOMM_TTY=y -CONFIG_BT_BNEP=m -CONFIG_BT_BNEP_MC_FILTER=y -CONFIG_BT_BNEP_PROTO_FILTER=y -CONFIG_BT_CMTP=m -CONFIG_BT_HIDP=m - -# -# Bluetooth device drivers -# -CONFIG_BT_HCIBTUSB=m -CONFIG_BT_HCIBTSDIO=m -CONFIG_BT_HCIUART=m -CONFIG_BT_HCIUART_H4=y -CONFIG_BT_HCIUART_BCSP=y -CONFIG_BT_HCIUART_LL=y -CONFIG_BT_HCIBCM203X=m -CONFIG_BT_HCIBPA10X=m -CONFIG_BT_HCIBFUSB=m -CONFIG_BT_HCIDTL1=m -CONFIG_BT_HCIBT3C=m -CONFIG_BT_HCIBLUECARD=m -CONFIG_BT_HCIBTUART=m -CONFIG_BT_HCIVHCI=m -CONFIG_BT_MRVL=m -CONFIG_BT_MRVL_SDIO=m -CONFIG_AF_RXRPC=m -# CONFIG_AF_RXRPC_DEBUG is not set -CONFIG_RXKAD=m -CONFIG_FIB_RULES=y -CONFIG_WIRELESS=y -CONFIG_CFG80211=m -# CONFIG_NL80211_TESTMODE is not set -# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set -# CONFIG_CFG80211_REG_DEBUG is not set -# CONFIG_CFG80211_DEFAULT_PS is not set -CONFIG_CFG80211_DEFAULT_PS_VALUE=0 -CONFIG_WIRELESS_OLD_REGULATORY=y -CONFIG_WIRELESS_EXT=y -CONFIG_WIRELESS_EXT_SYSFS=y -CONFIG_LIB80211=m -CONFIG_LIB80211_CRYPT_WEP=m -CONFIG_LIB80211_CRYPT_CCMP=m -CONFIG_LIB80211_CRYPT_TKIP=m -# CONFIG_LIB80211_DEBUG is not set -CONFIG_MAC80211=m -CONFIG_MAC80211_HAS_RC=y -CONFIG_MAC80211_RC_MINSTREL=y -# CONFIG_MAC80211_RC_DEFAULT_PID is not set -CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y -CONFIG_MAC80211_RC_DEFAULT="minstrel" -CONFIG_MAC80211_MESH=y -CONFIG_MAC80211_LEDS=y -# CONFIG_MAC80211_DEBUG_MENU is not set -# CONFIG_WIMAX is not set -CONFIG_RFKILL=m -CONFIG_RFKILL_LEDS=y -CONFIG_RFKILL_INPUT=y -# CONFIG_NET_9P is not set - -# -# Device Drivers -# - -# -# Generic Driver Options -# -CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -# CONFIG_DEVTMPFS is not set -# CONFIG_STANDALONE is not set -# CONFIG_PREVENT_FIRMWARE_BUILD is not set -CONFIG_FW_LOADER=y -# CONFIG_FIRMWARE_IN_KERNEL is not set -CONFIG_EXTRA_FIRMWARE="" -# CONFIG_DEBUG_DRIVER is not set -# CONFIG_DEBUG_DEVRES is not set -CONFIG_SYS_HYPERVISOR=y -CONFIG_CONNECTOR=m -CONFIG_MTD=m -# CONFIG_MTD_DEBUG is not set -CONFIG_MTD_TESTS=m -CONFIG_MTD_CONCAT=m -CONFIG_MTD_PARTITIONS=y -# CONFIG_MTD_REDBOOT_PARTS is not set -CONFIG_MTD_AR7_PARTS=m - -# -# User Modules And Translation Layers -# -CONFIG_MTD_CHAR=m -CONFIG_MTD_BLKDEVS=m -CONFIG_MTD_BLOCK=m -# CONFIG_MTD_BLOCK_RO is not set -# CONFIG_FTL is not set -# CONFIG_NFTL is not set -# CONFIG_INFTL is not set -# CONFIG_RFD_FTL is not set -# CONFIG_SSFDC is not set -# CONFIG_MTD_OOPS is not set - -# -# RAM/ROM/Flash chip drivers -# -# CONFIG_MTD_CFI is not set -# CONFIG_MTD_JEDECPROBE is not set -CONFIG_MTD_MAP_BANK_WIDTH_1=y -CONFIG_MTD_MAP_BANK_WIDTH_2=y -CONFIG_MTD_MAP_BANK_WIDTH_4=y -# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set -CONFIG_MTD_CFI_I1=y -CONFIG_MTD_CFI_I2=y -# CONFIG_MTD_CFI_I4 is not set -# CONFIG_MTD_CFI_I8 is not set -# CONFIG_MTD_RAM is not set -# CONFIG_MTD_ROM is not set -# CONFIG_MTD_ABSENT is not set - -# -# Mapping drivers for chip access -# -# CONFIG_MTD_COMPLEX_MAPPINGS is not set -CONFIG_MTD_PHYSMAP=m -# CONFIG_MTD_PHYSMAP_COMPAT is not set -# CONFIG_MTD_TS5500 is not set -# CONFIG_MTD_INTEL_VR_NOR is not set -# CONFIG_MTD_PLATRAM is not set - -# -# Self-contained MTD device drivers -# -# CONFIG_MTD_PMC551 is not set -# CONFIG_MTD_SLRAM is not set -# CONFIG_MTD_PHRAM is not set -# CONFIG_MTD_MTDRAM is not set -# CONFIG_MTD_BLOCK2MTD is not set - -# -# Disk-On-Chip Device Drivers -# -# CONFIG_MTD_DOC2000 is not set -# CONFIG_MTD_DOC2001 is not set -# CONFIG_MTD_DOC2001PLUS is not set -# CONFIG_MTD_NAND is not set -# CONFIG_MTD_ONENAND is not set - -# -# LPDDR flash memory drivers -# -CONFIG_MTD_LPDDR=m -CONFIG_MTD_QINFO_PROBE=m - -# -# UBI - Unsorted block images -# -CONFIG_MTD_UBI=m -CONFIG_MTD_UBI_WL_THRESHOLD=4096 -CONFIG_MTD_UBI_BEB_RESERVE=1 -# CONFIG_MTD_UBI_GLUEBI is not set - -# -# UBI debugging options -# -# CONFIG_MTD_UBI_DEBUG is not set -CONFIG_PARPORT=m -CONFIG_PARPORT_PC=m -CONFIG_PARPORT_PC_FIFO=y -CONFIG_PARPORT_PC_SUPERIO=y -CONFIG_PARPORT_PC_PCMCIA=m -# CONFIG_PARPORT_GSC is not set -CONFIG_PARPORT_AX88796=m -CONFIG_PARPORT_1284=y -CONFIG_PARPORT_NOT_PC=y -CONFIG_PNP=y -# CONFIG_PNP_DEBUG_MESSAGES is not set - -# -# Protocols -# -CONFIG_PNPACPI=y -CONFIG_BLK_DEV=y -CONFIG_BLK_DEV_FD=m -# CONFIG_PARIDE is not set -CONFIG_BLK_CPQ_DA=m -CONFIG_BLK_CPQ_CISS_DA=m -# CONFIG_CISS_SCSI_TAPE is not set -CONFIG_BLK_DEV_DAC960=m -# CONFIG_BLK_DEV_UMEM is not set -# CONFIG_BLK_DEV_COW_COMMON is not set -CONFIG_BLK_DEV_LOOP=y -CONFIG_BLK_DEV_CRYPTOLOOP=m -CONFIG_BLK_DEV_NBD=m -CONFIG_BLK_DEV_OSD=m -CONFIG_BLK_DEV_SX8=m -# CONFIG_BLK_DEV_UB is not set -CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_COUNT=8 -CONFIG_BLK_DEV_RAM_SIZE=16384 -# CONFIG_BLK_DEV_XIP is not set -# CONFIG_CDROM_PKTCDVD is not set -CONFIG_ATA_OVER_ETH=m -# CONFIG_BLK_DEV_HD is not set -CONFIG_MISC_DEVICES=y -# CONFIG_IBM_ASM is not set -# CONFIG_PHANTOM is not set -# CONFIG_SGI_IOC4 is not set -CONFIG_TIFM_CORE=m -CONFIG_TIFM_7XX1=m -CONFIG_ICS932S401=m -CONFIG_ENCLOSURE_SERVICES=m -CONFIG_HP_ILO=m -CONFIG_ISL29003=m -CONFIG_C2PORT=m -CONFIG_C2PORT_DURAMAR_2150=m - -# -# EEPROM support -# -CONFIG_EEPROM_AT24=m -CONFIG_EEPROM_LEGACY=m -CONFIG_EEPROM_MAX6875=m -CONFIG_EEPROM_93CX6=m -CONFIG_CB710_CORE=m -# CONFIG_CB710_DEBUG is not set -CONFIG_CB710_DEBUG_ASSUMPTIONS=y -CONFIG_HAVE_IDE=y -# CONFIG_IDE is not set - -# -# SCSI device support -# -CONFIG_RAID_ATTRS=y -CONFIG_SCSI=m -CONFIG_SCSI_DMA=y -# CONFIG_SCSI_TGT is not set -CONFIG_SCSI_NETLINK=y -CONFIG_SCSI_PROC_FS=y - -# -# SCSI support type (disk, tape, CD-ROM) -# -CONFIG_BLK_DEV_SD=m -# CONFIG_CHR_DEV_ST is not set -# CONFIG_CHR_DEV_OSST is not set -CONFIG_BLK_DEV_SR=m -CONFIG_BLK_DEV_SR_VENDOR=y -CONFIG_CHR_DEV_SG=m -CONFIG_CHR_DEV_SCH=m -CONFIG_SCSI_ENCLOSURE=m -CONFIG_SCSI_MULTI_LUN=y -# CONFIG_SCSI_CONSTANTS is not set -# CONFIG_SCSI_LOGGING is not set -# CONFIG_SCSI_SCAN_ASYNC is not set -CONFIG_SCSI_WAIT_SCAN=m - -# -# SCSI Transports -# -CONFIG_SCSI_SPI_ATTRS=m -CONFIG_SCSI_FC_ATTRS=m -CONFIG_SCSI_ISCSI_ATTRS=m -CONFIG_SCSI_SAS_ATTRS=m -CONFIG_SCSI_SAS_LIBSAS=m -CONFIG_SCSI_SAS_ATA=y -CONFIG_SCSI_SAS_HOST_SMP=y -CONFIG_SCSI_SAS_LIBSAS_DEBUG=y -CONFIG_SCSI_SRP_ATTRS=m -CONFIG_SCSI_LOWLEVEL=y -CONFIG_ISCSI_TCP=m -CONFIG_SCSI_CXGB3_ISCSI=m -CONFIG_SCSI_BNX2_ISCSI=m -CONFIG_BE2ISCSI=m -CONFIG_BLK_DEV_3W_XXXX_RAID=m -CONFIG_SCSI_3W_9XXX=m -CONFIG_SCSI_ACARD=m -CONFIG_SCSI_AACRAID=m -CONFIG_SCSI_AIC7XXX=m -CONFIG_AIC7XXX_CMDS_PER_DEVICE=253 -CONFIG_AIC7XXX_RESET_DELAY_MS=15000 -# CONFIG_AIC7XXX_BUILD_FIRMWARE is not set -# CONFIG_AIC7XXX_DEBUG_ENABLE is not set -CONFIG_AIC7XXX_DEBUG_MASK=0 -# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set -# CONFIG_SCSI_AIC7XXX_OLD is not set -CONFIG_SCSI_AIC79XX=m -CONFIG_AIC79XX_CMDS_PER_DEVICE=32 -CONFIG_AIC79XX_RESET_DELAY_MS=15000 -# CONFIG_AIC79XX_BUILD_FIRMWARE is not set -# CONFIG_AIC79XX_DEBUG_ENABLE is not set -CONFIG_AIC79XX_DEBUG_MASK=0 -# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set -CONFIG_SCSI_AIC94XX=m -# CONFIG_AIC94XX_DEBUG is not set -CONFIG_SCSI_MVSAS=m -CONFIG_SCSI_MVSAS_DEBUG=y -CONFIG_SCSI_DPT_I2O=m -CONFIG_SCSI_ADVANSYS=m -CONFIG_SCSI_ARCMSR=m -# CONFIG_SCSI_ARCMSR_AER is not set -CONFIG_MEGARAID_NEWGEN=y -CONFIG_MEGARAID_MM=m -CONFIG_MEGARAID_MAILBOX=m -CONFIG_MEGARAID_LEGACY=m -CONFIG_MEGARAID_SAS=m -# CONFIG_SCSI_MPT2SAS is not set -CONFIG_SCSI_HPTIOP=m -CONFIG_SCSI_BUSLOGIC=m -CONFIG_SCSI_FLASHPOINT=y -CONFIG_LIBFC=m -CONFIG_LIBFCOE=m -CONFIG_FCOE=m -CONFIG_FCOE_FNIC=m -CONFIG_SCSI_DMX3191D=m -CONFIG_SCSI_EATA=m -CONFIG_SCSI_EATA_TAGGED_QUEUE=y -CONFIG_SCSI_EATA_LINKED_COMMANDS=y -CONFIG_SCSI_EATA_MAX_TAGS=16 -CONFIG_SCSI_FUTURE_DOMAIN=m -CONFIG_SCSI_GDTH=m -CONFIG_SCSI_IPS=m -CONFIG_SCSI_INITIO=m -CONFIG_SCSI_INIA100=m -CONFIG_SCSI_PPA=m -CONFIG_SCSI_IMM=m -# CONFIG_SCSI_IZIP_EPP16 is not set -# CONFIG_SCSI_IZIP_SLOW_CTR is not set -CONFIG_SCSI_STEX=m -CONFIG_SCSI_SYM53C8XX_2=m -CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 -CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 -CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 -CONFIG_SCSI_SYM53C8XX_MMIO=y -CONFIG_SCSI_IPR=m -CONFIG_SCSI_IPR_TRACE=y -CONFIG_SCSI_IPR_DUMP=y -CONFIG_SCSI_QLOGIC_1280=m -CONFIG_SCSI_QLA_FC=m -CONFIG_SCSI_QLA_ISCSI=m -CONFIG_SCSI_LPFC=m -CONFIG_SCSI_DC395x=m -CONFIG_SCSI_DC390T=m -CONFIG_SCSI_NSP32=m -# CONFIG_SCSI_DEBUG is not set -CONFIG_SCSI_PMCRAID=m -# CONFIG_SCSI_SRP is not set -CONFIG_SCSI_BFA_FC=m -CONFIG_SCSI_LOWLEVEL_PCMCIA=y -CONFIG_PCMCIA_AHA152X=m -CONFIG_PCMCIA_FDOMAIN=m -CONFIG_PCMCIA_NINJA_SCSI=m -CONFIG_PCMCIA_QLOGIC=m -CONFIG_PCMCIA_SYM53C500=m -CONFIG_SCSI_DH=m -CONFIG_SCSI_DH_RDAC=m -CONFIG_SCSI_DH_HP_SW=m -CONFIG_SCSI_DH_EMC=m -CONFIG_SCSI_DH_ALUA=m -CONFIG_SCSI_OSD_INITIATOR=m -CONFIG_SCSI_OSD_ULD=m -CONFIG_SCSI_OSD_DPRINT_SENSE=1 -# CONFIG_SCSI_OSD_DEBUG is not set -CONFIG_ATA=m -# CONFIG_ATA_NONSTANDARD is not set -CONFIG_ATA_VERBOSE_ERROR=y -CONFIG_ATA_ACPI=y -CONFIG_SATA_PMP=y -CONFIG_SATA_AHCI=m -CONFIG_SATA_SIL24=m -CONFIG_ATA_SFF=y -CONFIG_SATA_SVW=m -CONFIG_ATA_PIIX=m -CONFIG_SATA_MV=m -CONFIG_SATA_NV=m -CONFIG_PDC_ADMA=m -CONFIG_SATA_QSTOR=m -CONFIG_SATA_PROMISE=m -CONFIG_SATA_SX4=m -CONFIG_SATA_SIL=m -CONFIG_SATA_SIS=m -CONFIG_SATA_ULI=m -CONFIG_SATA_VIA=m -CONFIG_SATA_VITESSE=m -CONFIG_SATA_INIC162X=m -CONFIG_PATA_ACPI=m -CONFIG_PATA_ALI=m -CONFIG_PATA_AMD=m -CONFIG_PATA_ARTOP=m -CONFIG_PATA_ATP867X=m -CONFIG_PATA_ATIIXP=m -CONFIG_PATA_CMD640_PCI=m -CONFIG_PATA_CMD64X=m -CONFIG_PATA_CS5520=m -CONFIG_PATA_CS5530=m -CONFIG_PATA_CS5535=m -CONFIG_PATA_CS5536=m -CONFIG_PATA_CYPRESS=m -CONFIG_PATA_EFAR=m -CONFIG_ATA_GENERIC=m -CONFIG_PATA_HPT366=m -CONFIG_PATA_HPT37X=m -CONFIG_PATA_HPT3X2N=m -CONFIG_PATA_HPT3X3=m -CONFIG_PATA_HPT3X3_DMA=y -CONFIG_PATA_IT821X=m -CONFIG_PATA_IT8213=m -CONFIG_PATA_JMICRON=m -CONFIG_PATA_TRIFLEX=m -CONFIG_PATA_MARVELL=m -CONFIG_PATA_MPIIX=m -CONFIG_PATA_OLDPIIX=m -CONFIG_PATA_NETCELL=m -CONFIG_PATA_NINJA32=m -CONFIG_PATA_NS87410=m -CONFIG_PATA_NS87415=m -CONFIG_PATA_OPTI=m -CONFIG_PATA_OPTIDMA=m -CONFIG_PATA_PCMCIA=m -CONFIG_PATA_PDC_OLD=m -CONFIG_PATA_RADISYS=m -CONFIG_PATA_RDC=m -CONFIG_PATA_RZ1000=m -CONFIG_PATA_SC1200=m -CONFIG_PATA_SERVERWORKS=m -CONFIG_PATA_PDC2027X=m -CONFIG_PATA_SIL680=m -CONFIG_PATA_SIS=m -CONFIG_PATA_VIA=m -CONFIG_PATA_WINBOND=m -CONFIG_PATA_SCH=m -CONFIG_MD=y -CONFIG_BLK_DEV_MD=m -CONFIG_MD_LINEAR=m -CONFIG_MD_RAID0=m -CONFIG_MD_RAID1=m -CONFIG_MD_RAID10=m -CONFIG_MD_RAID456=m -# CONFIG_MULTICORE_RAID456 is not set -CONFIG_MD_RAID6_PQ=m -# CONFIG_ASYNC_RAID6_TEST is not set -CONFIG_MD_MULTIPATH=m -# CONFIG_MD_FAULTY is not set -CONFIG_BLK_DEV_DM=m -# CONFIG_DM_DEBUG is not set -CONFIG_DM_CRYPT=m -CONFIG_DM_SNAPSHOT=m -CONFIG_DM_MIRROR=m -CONFIG_DM_LOG_USERSPACE=m -CONFIG_DM_ZERO=m -CONFIG_DM_MULTIPATH=m -CONFIG_DM_MULTIPATH_QL=m -CONFIG_DM_MULTIPATH_ST=m -CONFIG_DM_DELAY=m -CONFIG_DM_UEVENT=y -CONFIG_FUSION=y -CONFIG_FUSION_SPI=m -CONFIG_FUSION_FC=m -CONFIG_FUSION_SAS=m -CONFIG_FUSION_MAX_SGE=128 -CONFIG_FUSION_CTL=m -# CONFIG_FUSION_LOGGING is not set - -# -# IEEE 1394 (FireWire) support -# - -# -# You can enable one or both FireWire driver stacks. -# - -# -# See the help texts for more information. -# -CONFIG_FIREWIRE=m -CONFIG_FIREWIRE_OHCI=m -CONFIG_FIREWIRE_OHCI_DEBUG=y -CONFIG_FIREWIRE_SBP2=m -CONFIG_FIREWIRE_NET=m -# CONFIG_IEEE1394 is not set -# CONFIG_I2O is not set -# CONFIG_MACINTOSH_DRIVERS is not set -CONFIG_NETDEVICES=y -CONFIG_IFB=m -CONFIG_DUMMY=m -CONFIG_BONDING=m -CONFIG_MACVLAN=m -CONFIG_EQUALIZER=m -CONFIG_IMQ=m -# CONFIG_IMQ_BEHAVIOR_AA is not set -CONFIG_IMQ_BEHAVIOR_AB=y -# CONFIG_IMQ_BEHAVIOR_BA is not set -# CONFIG_IMQ_BEHAVIOR_BB is not set -CONFIG_IMQ_NUM_DEVS=2 -CONFIG_TUN=m -CONFIG_VETH=m -CONFIG_NET_SB1000=m -# CONFIG_ARCNET is not set -CONFIG_PHYLIB=y - -# -# MII PHY device drivers -# -CONFIG_MARVELL_PHY=m -CONFIG_DAVICOM_PHY=m -CONFIG_QSEMI_PHY=m -CONFIG_LXT_PHY=m -CONFIG_CICADA_PHY=m -CONFIG_VITESSE_PHY=m -CONFIG_SMSC_PHY=m -CONFIG_BROADCOM_PHY=m -CONFIG_ICPLUS_PHY=m -CONFIG_REALTEK_PHY=m -CONFIG_NATIONAL_PHY=m -CONFIG_STE10XP=m -CONFIG_LSI_ET1011C_PHY=m -# CONFIG_FIXED_PHY is not set -CONFIG_MDIO_BITBANG=m -CONFIG_NET_ETHERNET=y -CONFIG_MII=m -CONFIG_HAPPYMEAL=m -CONFIG_SUNGEM=m -CONFIG_CASSINI=m -CONFIG_NET_VENDOR_3COM=y -CONFIG_VORTEX=m -CONFIG_TYPHOON=m -CONFIG_ETHOC=m -CONFIG_DNET=m -CONFIG_NET_TULIP=y -CONFIG_DE2104X=m -CONFIG_DE2104X_DSL=0 -CONFIG_TULIP=m -# CONFIG_TULIP_MWI is not set -# CONFIG_TULIP_MMIO is not set -# CONFIG_TULIP_NAPI is not set -CONFIG_DE4X5=m -CONFIG_WINBOND_840=m -CONFIG_DM9102=m -CONFIG_ULI526X=m -CONFIG_PCMCIA_XIRCOM=m -CONFIG_HP100=m -# CONFIG_IBM_NEW_EMAC_ZMII is not set -# CONFIG_IBM_NEW_EMAC_RGMII is not set -# CONFIG_IBM_NEW_EMAC_TAH is not set -# CONFIG_IBM_NEW_EMAC_EMAC4 is not set -# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set -# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set -# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set -CONFIG_NET_PCI=y -CONFIG_PCNET32=m -CONFIG_AMD8111_ETH=m -CONFIG_ADAPTEC_STARFIRE=m -CONFIG_B44=m -CONFIG_B44_PCI_AUTOSELECT=y -CONFIG_B44_PCICORE_AUTOSELECT=y -CONFIG_B44_PCI=y -CONFIG_FORCEDETH=m -# CONFIG_FORCEDETH_NAPI is not set -CONFIG_E100=m -CONFIG_FEALNX=m -CONFIG_NATSEMI=m -CONFIG_NE2K_PCI=m -CONFIG_8139CP=m -CONFIG_8139TOO=m -# CONFIG_8139TOO_PIO is not set -CONFIG_8139TOO_TUNE_TWISTER=y -CONFIG_8139TOO_8129=y -# CONFIG_8139_OLD_RX_RESET is not set -CONFIG_R6040=m -CONFIG_SIS900=m -CONFIG_EPIC100=m -CONFIG_SMSC9420=m -CONFIG_SUNDANCE=m -# CONFIG_SUNDANCE_MMIO is not set -CONFIG_TLAN=m -CONFIG_KS8842=m -CONFIG_KS8851_MLL=m -CONFIG_VIA_RHINE=m -CONFIG_VIA_RHINE_MMIO=y -CONFIG_SC92031=m -CONFIG_NET_POCKET=y -CONFIG_ATP=m -CONFIG_DE600=m -CONFIG_DE620=m -CONFIG_ATL2=m -CONFIG_NETDEV_1000=y -CONFIG_ACENIC=m -# CONFIG_ACENIC_OMIT_TIGON_I is not set -CONFIG_DL2K=m -CONFIG_E1000=m -CONFIG_E1000E=m -CONFIG_IP1000=m -CONFIG_IGB=m -CONFIG_IGB_DCA=y -CONFIG_IGBVF=m -CONFIG_NS83820=m -CONFIG_HAMACHI=m -CONFIG_YELLOWFIN=m -CONFIG_R8169=m -CONFIG_R8169_VLAN=y -CONFIG_SIS190=m -CONFIG_SKGE=m -CONFIG_SKY2=m -CONFIG_VIA_VELOCITY=m -CONFIG_TIGON3=m -CONFIG_BNX2=m -CONFIG_CNIC=m -CONFIG_QLA3XXX=m -CONFIG_ATL1=m -CONFIG_ATL1E=m -CONFIG_ATL1C=m -CONFIG_JME=m -CONFIG_NETDEV_10000=y -CONFIG_MDIO=m -CONFIG_CHELSIO_T1=m -# CONFIG_CHELSIO_T1_1G is not set -CONFIG_CHELSIO_T3_DEPENDS=y -CONFIG_CHELSIO_T3=m -CONFIG_ENIC=m -CONFIG_IXGBE=m -CONFIG_IXGBE_DCA=y -CONFIG_IXGB=m -CONFIG_S2IO=m -CONFIG_VXGE=m -# CONFIG_VXGE_DEBUG_TRACE_ALL is not set -CONFIG_MYRI10GE=m -CONFIG_MYRI10GE_DCA=y -CONFIG_NETXEN_NIC=m -CONFIG_NIU=m -CONFIG_MLX4_EN=m -CONFIG_MLX4_CORE=m -CONFIG_MLX4_DEBUG=y -CONFIG_TEHUTI=m -CONFIG_BNX2X=m -CONFIG_QLGE=m -# CONFIG_SFC is not set -CONFIG_BE2NET=m -# CONFIG_TR is not set -CONFIG_WLAN=y -# CONFIG_WLAN_PRE80211 is not set -CONFIG_WLAN_80211=y -CONFIG_PCMCIA_RAYCS=m -# CONFIG_LIBERTAS is not set -# CONFIG_LIBERTAS_THINFIRM is not set -CONFIG_AIRO=m -CONFIG_ATMEL=m -CONFIG_PCI_ATMEL=m -CONFIG_PCMCIA_ATMEL=m -CONFIG_AT76C50X_USB=m -CONFIG_AIRO_CS=m -CONFIG_PCMCIA_WL3501=m -# CONFIG_PRISM54 is not set -CONFIG_USB_ZD1201=m -CONFIG_USB_NET_RNDIS_WLAN=m -# CONFIG_RTL8180 is not set -# CONFIG_RTL8187 is not set -# CONFIG_ADM8211 is not set -# CONFIG_MAC80211_HWSIM is not set -# CONFIG_MWL8K is not set -# CONFIG_P54_COMMON is not set -# CONFIG_ATH_COMMON is not set -# CONFIG_IPW2100 is not set -# CONFIG_IPW2200 is not set -# CONFIG_IWLWIFI is not set -CONFIG_HOSTAP=m -CONFIG_HOSTAP_FIRMWARE=y -# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set -CONFIG_HOSTAP_PLX=m -CONFIG_HOSTAP_PCI=m -CONFIG_HOSTAP_CS=m -# CONFIG_B43 is not set -# CONFIG_B43LEGACY is not set -# CONFIG_ZD1211RW is not set -# CONFIG_RT2X00 is not set -# CONFIG_HERMES is not set -# CONFIG_WL12XX is not set -# CONFIG_IWM is not set - -# -# Enable WiMAX (Networking options) to see the WiMAX drivers -# - -# -# USB Network Adapters -# -CONFIG_USB_CATC=m -CONFIG_USB_KAWETH=m -CONFIG_USB_PEGASUS=m -CONFIG_USB_RTL8150=m -CONFIG_USB_USBNET=m -CONFIG_USB_NET_AX8817X=m -CONFIG_USB_NET_CDCETHER=m -CONFIG_USB_NET_CDC_EEM=m -CONFIG_USB_NET_DM9601=m -CONFIG_USB_NET_SMSC95XX=m -CONFIG_USB_NET_GL620A=m -CONFIG_USB_NET_NET1080=m -CONFIG_USB_NET_PLUSB=m -CONFIG_USB_NET_MCS7830=m -CONFIG_USB_NET_RNDIS_HOST=m -CONFIG_USB_NET_CDC_SUBSET=m -CONFIG_USB_ALI_M5632=y -CONFIG_USB_AN2720=y -CONFIG_USB_BELKIN=y -CONFIG_USB_ARMLINUX=y -CONFIG_USB_EPSON2888=y -CONFIG_USB_KC2190=y -CONFIG_USB_NET_ZAURUS=m -CONFIG_USB_HSO=m -CONFIG_USB_NET_INT51X1=m -CONFIG_NET_PCMCIA=y -CONFIG_PCMCIA_3C589=m -CONFIG_PCMCIA_3C574=m -CONFIG_PCMCIA_FMVJ18X=m -CONFIG_PCMCIA_PCNET=m -CONFIG_PCMCIA_NMCLAN=m -CONFIG_PCMCIA_SMC91C92=m -CONFIG_PCMCIA_XIRC2PS=m -CONFIG_PCMCIA_AXNET=m -# CONFIG_WAN is not set -CONFIG_ATM_DRIVERS=y -# CONFIG_ATM_DUMMY is not set -CONFIG_ATM_TCP=m -CONFIG_ATM_LANAI=m -CONFIG_ATM_ENI=m -CONFIG_ATM_ENI_DEBUG=y -CONFIG_ATM_ENI_TUNE_BURST=y -CONFIG_ATM_ENI_BURST_TX_16W=y -CONFIG_ATM_ENI_BURST_TX_8W=y -CONFIG_ATM_ENI_BURST_TX_4W=y -CONFIG_ATM_ENI_BURST_TX_2W=y -CONFIG_ATM_ENI_BURST_RX_16W=y -CONFIG_ATM_ENI_BURST_RX_8W=y -CONFIG_ATM_ENI_BURST_RX_4W=y -CONFIG_ATM_ENI_BURST_RX_2W=y -CONFIG_ATM_FIRESTREAM=m -CONFIG_ATM_ZATM=m -# CONFIG_ATM_ZATM_DEBUG is not set -CONFIG_ATM_NICSTAR=m -CONFIG_ATM_NICSTAR_USE_SUNI=y -CONFIG_ATM_NICSTAR_USE_IDT77105=y -CONFIG_ATM_IDT77252=m -# CONFIG_ATM_IDT77252_DEBUG is not set -# CONFIG_ATM_IDT77252_RCV_ALL is not set -CONFIG_ATM_IDT77252_USE_SUNI=y -CONFIG_ATM_AMBASSADOR=m -# CONFIG_ATM_AMBASSADOR_DEBUG is not set -CONFIG_ATM_HORIZON=m -# CONFIG_ATM_HORIZON_DEBUG is not set -CONFIG_ATM_IA=m -# CONFIG_ATM_IA_DEBUG is not set -CONFIG_ATM_FORE200E=m -CONFIG_ATM_FORE200E_USE_TASKLET=y -CONFIG_ATM_FORE200E_TX_RETRY=16 -CONFIG_ATM_FORE200E_DEBUG=0 -CONFIG_ATM_HE=m -CONFIG_ATM_HE_USE_SUNI=y -CONFIG_ATM_SOLOS=m -CONFIG_IEEE802154_DRIVERS=m -CONFIG_IEEE802154_FAKEHARD=m -# CONFIG_FDDI is not set -# CONFIG_HIPPI is not set -# CONFIG_PLIP is not set -CONFIG_PPP=m -CONFIG_PPP_MULTILINK=y -CONFIG_PPP_FILTER=y -CONFIG_PPP_ASYNC=m -CONFIG_PPP_SYNC_TTY=m -CONFIG_PPP_DEFLATE=m -CONFIG_PPP_BSDCOMP=m -CONFIG_PPP_MPPE=m -CONFIG_PPPOE=m -CONFIG_PPPOATM=m -CONFIG_PPPOL2TP=m -CONFIG_SLIP=m -CONFIG_SLIP_COMPRESSED=y -CONFIG_SLHC=m -CONFIG_SLIP_SMART=y -CONFIG_SLIP_MODE_SLIP6=y -# CONFIG_NET_FC is not set -# CONFIG_NETCONSOLE is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set -CONFIG_ISDN=y -CONFIG_ISDN_I4L=m -CONFIG_MISDN=m -CONFIG_MISDN_DSP=m -CONFIG_MISDN_L1OIP=m - -# -# mISDN hardware drivers -# -CONFIG_MISDN_HFCPCI=m -CONFIG_MISDN_HFCMULTI=m -CONFIG_MISDN_HFCUSB=m -CONFIG_MISDN_AVMFRITZ=m -CONFIG_MISDN_SPEEDFAX=m -CONFIG_MISDN_INFINEON=m -CONFIG_MISDN_W6692=m -CONFIG_MISDN_NETJET=m -CONFIG_MISDN_IPAC=m -CONFIG_MISDN_ISAR=m -CONFIG_ISDN_PPP=y -CONFIG_ISDN_PPP_VJ=y -CONFIG_ISDN_MPP=y -CONFIG_IPPP_FILTER=y -CONFIG_ISDN_PPP_BSDCOMP=m -CONFIG_ISDN_AUDIO=y -CONFIG_ISDN_TTY_FAX=y - -# -# ISDN feature submodules -# -CONFIG_ISDN_DIVERSION=m - -# -# ISDN4Linux hardware drivers -# - -# -# Passive cards -# -CONFIG_ISDN_DRV_HISAX=m - -# -# D-channel protocol features -# -CONFIG_HISAX_EURO=y -CONFIG_DE_AOC=y -# CONFIG_HISAX_NO_SENDCOMPLETE is not set -# CONFIG_HISAX_NO_LLC is not set -# CONFIG_HISAX_NO_KEYPAD is not set -CONFIG_HISAX_1TR6=y -CONFIG_HISAX_NI1=y -CONFIG_HISAX_MAX_CARDS=8 - -# -# HiSax supported cards -# -CONFIG_HISAX_16_3=y -CONFIG_HISAX_TELESPCI=y -CONFIG_HISAX_S0BOX=y -CONFIG_HISAX_FRITZPCI=y -CONFIG_HISAX_AVM_A1_PCMCIA=y -CONFIG_HISAX_ELSA=y -CONFIG_HISAX_DIEHLDIVA=y -CONFIG_HISAX_SEDLBAUER=y -CONFIG_HISAX_NETJET=y -CONFIG_HISAX_NETJET_U=y -CONFIG_HISAX_NICCY=y -CONFIG_HISAX_BKM_A4T=y -CONFIG_HISAX_SCT_QUADRO=y -CONFIG_HISAX_GAZEL=y -CONFIG_HISAX_HFC_PCI=y -CONFIG_HISAX_W6692=y -CONFIG_HISAX_HFC_SX=y -CONFIG_HISAX_ENTERNOW_PCI=y -CONFIG_HISAX_DEBUG=y - -# -# HiSax PCMCIA card service modules -# -CONFIG_HISAX_SEDLBAUER_CS=m -CONFIG_HISAX_ELSA_CS=m -CONFIG_HISAX_AVM_A1_CS=m -CONFIG_HISAX_TELES_CS=m - -# -# HiSax sub driver modules -# -CONFIG_HISAX_ST5481=m -CONFIG_HISAX_HFCUSB=m -CONFIG_HISAX_HFC4S8S=m -CONFIG_HISAX_FRITZ_PCIPNP=m - -# -# Active cards -# -CONFIG_HYSDN=m -CONFIG_HYSDN_CAPI=y -CONFIG_ISDN_HDLC=m -CONFIG_ISDN_CAPI=m -CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y -CONFIG_CAPI_TRACE=y -CONFIG_ISDN_CAPI_MIDDLEWARE=y -CONFIG_ISDN_CAPI_CAPI20=m -# CONFIG_ISDN_CAPI_CAPIFS_BOOL is not set -CONFIG_ISDN_CAPI_CAPIDRV=m - -# -# CAPI hardware drivers -# -CONFIG_CAPI_AVM=y -CONFIG_ISDN_DRV_AVMB1_B1PCI=m -# CONFIG_ISDN_DRV_AVMB1_B1PCIV4 is not set -CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m -CONFIG_ISDN_DRV_AVMB1_AVM_CS=m -CONFIG_ISDN_DRV_AVMB1_T1PCI=m -CONFIG_ISDN_DRV_AVMB1_C4=m -CONFIG_CAPI_EICON=y -CONFIG_ISDN_DIVAS=m -CONFIG_ISDN_DIVAS_BRIPCI=y -CONFIG_ISDN_DIVAS_PRIPCI=y -CONFIG_ISDN_DIVAS_DIVACAPI=m -CONFIG_ISDN_DIVAS_USERIDI=m -CONFIG_ISDN_DIVAS_MAINT=m -CONFIG_ISDN_DRV_GIGASET=m -CONFIG_GIGASET_BASE=m -CONFIG_GIGASET_M105=m -CONFIG_GIGASET_M101=m -# CONFIG_GIGASET_DEBUG is not set -# CONFIG_PHONE is not set - -# -# Input device support -# -CONFIG_INPUT=y -CONFIG_INPUT_FF_MEMLESS=m -CONFIG_INPUT_POLLDEV=m - -# -# Userland interfaces -# -CONFIG_INPUT_MOUSEDEV=y -# CONFIG_INPUT_MOUSEDEV_PSAUX is not set -CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 -# CONFIG_INPUT_JOYDEV is not set -# CONFIG_INPUT_EVDEV is not set -# CONFIG_INPUT_EVBUG is not set - -# -# Input Device Drivers -# -CONFIG_INPUT_KEYBOARD=y -CONFIG_KEYBOARD_ADP5588=m -CONFIG_KEYBOARD_ATKBD=y -CONFIG_QT2160=m -CONFIG_KEYBOARD_LKKBD=m -CONFIG_KEYBOARD_LM8323=m -CONFIG_KEYBOARD_MAX7359=m -CONFIG_KEYBOARD_NEWTON=m -CONFIG_KEYBOARD_OPENCORES=m -CONFIG_KEYBOARD_STOWAWAY=m -CONFIG_KEYBOARD_SUNKBD=m -CONFIG_KEYBOARD_XTKBD=m -# CONFIG_INPUT_MOUSE is not set -# CONFIG_INPUT_JOYSTICK is not set -# CONFIG_INPUT_TABLET is not set -# CONFIG_INPUT_TOUCHSCREEN is not set -CONFIG_INPUT_MISC=y -CONFIG_INPUT_PCSPKR=m -CONFIG_INPUT_APANEL=m -# CONFIG_INPUT_WISTRON_BTNS is not set -# CONFIG_INPUT_ATLAS_BTNS is not set -CONFIG_INPUT_ATI_REMOTE=m -CONFIG_INPUT_ATI_REMOTE2=m -CONFIG_INPUT_KEYSPAN_REMOTE=m -CONFIG_INPUT_POWERMATE=m -CONFIG_INPUT_YEALINK=m -CONFIG_INPUT_CM109=m -# CONFIG_INPUT_UINPUT is not set -CONFIG_INPUT_WINBOND_CIR=m -CONFIG_INPUT_PCF50633_PMU=m -CONFIG_INPUT_WM831X_ON=m - -# -# Hardware I/O ports -# -CONFIG_SERIO=y -CONFIG_SERIO_I8042=y -CONFIG_SERIO_SERPORT=y -# CONFIG_SERIO_CT82C710 is not set -# CONFIG_SERIO_PARKBD is not set -# CONFIG_SERIO_PCIPS2 is not set -CONFIG_SERIO_LIBPS2=y -# CONFIG_SERIO_RAW is not set -# CONFIG_GAMEPORT is not set - -# -# Character devices -# -CONFIG_VT=y -CONFIG_CONSOLE_TRANSLATIONS=y -CONFIG_VT_CONSOLE=y -CONFIG_HW_CONSOLE=y -CONFIG_VT_HW_CONSOLE_BINDING=y -CONFIG_DEVKMEM=y -# CONFIG_SERIAL_NONSTANDARD is not set -CONFIG_NOZOMI=m - -# -# Serial drivers -# -CONFIG_FIX_EARLYCON_MEM=y - -# -# Non-8250 serial port support -# -CONFIG_SERIAL_CORE=m -CONFIG_SERIAL_JSM=m -CONFIG_UNIX98_PTYS=y -# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set -# CONFIG_LEGACY_PTYS is not set -CONFIG_PRINTER=m -# CONFIG_LP_CONSOLE is not set -CONFIG_PPDEV=m -CONFIG_IPMI_HANDLER=m -CONFIG_IPMI_PANIC_EVENT=y -# CONFIG_IPMI_PANIC_STRING is not set -CONFIG_IPMI_DEVICE_INTERFACE=m -CONFIG_IPMI_SI=m -CONFIG_IPMI_WATCHDOG=m -CONFIG_IPMI_POWEROFF=m -CONFIG_HW_RANDOM=m -CONFIG_HW_RANDOM_TIMERIOMEM=m -CONFIG_HW_RANDOM_INTEL=m -CONFIG_HW_RANDOM_AMD=m -CONFIG_HW_RANDOM_GEODE=m -CONFIG_HW_RANDOM_VIA=m -CONFIG_NVRAM=m -# CONFIG_R3964 is not set -# CONFIG_APPLICOM is not set -# CONFIG_SONYPI is not set - -# -# PCMCIA character devices -# -CONFIG_SYNCLINK_CS=m -# CONFIG_CARDMAN_4000 is not set -# CONFIG_CARDMAN_4040 is not set -CONFIG_IPWIRELESS=m -# CONFIG_MWAVE is not set -CONFIG_SCx200_GPIO=m -CONFIG_PC8736x_GPIO=m -CONFIG_NSC_GPIO=m -CONFIG_CS5535_GPIO=m -# CONFIG_RAW_DRIVER is not set -CONFIG_HANGCHECK_TIMER=m -# CONFIG_TCG_TPM is not set -# CONFIG_TELCLOCK is not set -CONFIG_DEVPORT=y -CONFIG_I2C=m -CONFIG_I2C_BOARDINFO=y -CONFIG_I2C_COMPAT=y -CONFIG_I2C_CHARDEV=m -CONFIG_I2C_HELPER_AUTO=y -CONFIG_I2C_ALGOBIT=m -CONFIG_I2C_ALGOPCA=m - -# -# I2C Hardware Bus support -# - -# -# PC SMBus host controller drivers -# -CONFIG_I2C_ALI1535=m -CONFIG_I2C_ALI1563=m -CONFIG_I2C_ALI15X3=m -CONFIG_I2C_AMD756=m -CONFIG_I2C_AMD756_S4882=m -CONFIG_I2C_AMD8111=m -CONFIG_I2C_I801=m -CONFIG_I2C_ISCH=m -CONFIG_I2C_PIIX4=m -CONFIG_I2C_NFORCE2=m -CONFIG_I2C_NFORCE2_S4985=m -CONFIG_I2C_SIS5595=m -CONFIG_I2C_SIS630=m -CONFIG_I2C_SIS96X=m -CONFIG_I2C_VIA=m -CONFIG_I2C_VIAPRO=m - -# -# ACPI drivers -# -CONFIG_I2C_SCMI=m - -# -# I2C system bus drivers (mostly embedded / system-on-chip) -# -CONFIG_I2C_OCORES=m -CONFIG_I2C_SIMTEC=m - -# -# External I2C/SMBus adapter drivers -# -CONFIG_I2C_PARPORT=m -CONFIG_I2C_PARPORT_LIGHT=m -# CONFIG_I2C_TAOS_EVM is not set -CONFIG_I2C_TINY_USB=m - -# -# Graphics adapter I2C/DDC channel drivers -# -CONFIG_I2C_VOODOO3=m - -# -# Other I2C/SMBus bus drivers -# -CONFIG_I2C_PCA_PLATFORM=m -CONFIG_I2C_STUB=m -# CONFIG_SCx200_I2C is not set -CONFIG_SCx200_ACB=m - -# -# Miscellaneous I2C Chip support -# -CONFIG_DS1682=m -CONFIG_SENSORS_TSL2550=m -# CONFIG_I2C_DEBUG_CORE is not set -# CONFIG_I2C_DEBUG_ALGO is not set -# CONFIG_I2C_DEBUG_BUS is not set -# CONFIG_I2C_DEBUG_CHIP is not set -# CONFIG_SPI is not set - -# -# PPS support -# -CONFIG_PPS=m -# CONFIG_PPS_DEBUG is not set -CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y -# CONFIG_GPIOLIB is not set -CONFIG_W1=m -CONFIG_W1_CON=y - -# -# 1-wire Bus Masters -# -CONFIG_W1_MASTER_MATROX=m -CONFIG_W1_MASTER_DS2490=m -CONFIG_W1_MASTER_DS2482=m - -# -# 1-wire Slaves -# -CONFIG_W1_SLAVE_THERM=m -CONFIG_W1_SLAVE_SMEM=m -CONFIG_W1_SLAVE_DS2431=m -CONFIG_W1_SLAVE_DS2433=m -CONFIG_W1_SLAVE_DS2433_CRC=y -CONFIG_W1_SLAVE_DS2760=m -CONFIG_W1_SLAVE_BQ27000=m -CONFIG_POWER_SUPPLY=y -# CONFIG_POWER_SUPPLY_DEBUG is not set -# CONFIG_PDA_POWER is not set -CONFIG_WM831X_POWER=m -CONFIG_WM8350_POWER=m -# CONFIG_BATTERY_DS2760 is not set -CONFIG_BATTERY_DS2782=m -CONFIG_BATTERY_BQ27x00=m -CONFIG_BATTERY_MAX17040=m -CONFIG_CHARGER_PCF50633=m -CONFIG_HWMON=m -CONFIG_HWMON_VID=m -# CONFIG_HWMON_DEBUG_CHIP is not set - -# -# Native drivers -# -CONFIG_SENSORS_ABITUGURU=m -CONFIG_SENSORS_ABITUGURU3=m -CONFIG_SENSORS_AD7414=m -CONFIG_SENSORS_AD7418=m -CONFIG_SENSORS_ADM1021=m -CONFIG_SENSORS_ADM1025=m -CONFIG_SENSORS_ADM1026=m -CONFIG_SENSORS_ADM1029=m -CONFIG_SENSORS_ADM1031=m -CONFIG_SENSORS_ADM9240=m -CONFIG_SENSORS_ADT7462=m -CONFIG_SENSORS_ADT7470=m -CONFIG_SENSORS_ADT7473=m -CONFIG_SENSORS_ADT7475=m -CONFIG_SENSORS_K8TEMP=m -CONFIG_SENSORS_ASB100=m -CONFIG_SENSORS_ATXP1=m -CONFIG_SENSORS_DS1621=m -CONFIG_SENSORS_I5K_AMB=m -CONFIG_SENSORS_F71805F=m -CONFIG_SENSORS_F71882FG=m -CONFIG_SENSORS_F75375S=m -CONFIG_SENSORS_FSCHMD=m -CONFIG_SENSORS_G760A=m -CONFIG_SENSORS_GL518SM=m -CONFIG_SENSORS_GL520SM=m -CONFIG_SENSORS_CORETEMP=m -CONFIG_SENSORS_IBMAEM=m -CONFIG_SENSORS_IBMPEX=m -CONFIG_SENSORS_IT87=m -CONFIG_SENSORS_LM63=m -CONFIG_SENSORS_LM75=m -CONFIG_SENSORS_LM77=m -CONFIG_SENSORS_LM78=m -CONFIG_SENSORS_LM80=m -CONFIG_SENSORS_LM83=m -CONFIG_SENSORS_LM85=m -CONFIG_SENSORS_LM87=m -CONFIG_SENSORS_LM90=m -CONFIG_SENSORS_LM92=m -CONFIG_SENSORS_LM93=m -CONFIG_SENSORS_LTC4215=m -CONFIG_SENSORS_LTC4245=m -CONFIG_SENSORS_LM95241=m -CONFIG_SENSORS_MAX1619=m -CONFIG_SENSORS_MAX6650=m -CONFIG_SENSORS_PC87360=m -CONFIG_SENSORS_PC87427=m -CONFIG_SENSORS_PCF8591=m -CONFIG_SENSORS_SIS5595=m -CONFIG_SENSORS_DME1737=m -CONFIG_SENSORS_SMSC47M1=m -CONFIG_SENSORS_SMSC47M192=m -CONFIG_SENSORS_SMSC47B397=m -CONFIG_SENSORS_ADS7828=m -CONFIG_SENSORS_THMC50=m -CONFIG_SENSORS_TMP401=m -CONFIG_SENSORS_TMP421=m -CONFIG_SENSORS_VIA686A=m -CONFIG_SENSORS_VT1211=m -CONFIG_SENSORS_VT8231=m -CONFIG_SENSORS_W83781D=m -CONFIG_SENSORS_W83791D=m -CONFIG_SENSORS_W83792D=m -CONFIG_SENSORS_W83793=m -CONFIG_SENSORS_W83L785TS=m -CONFIG_SENSORS_W83L786NG=m -CONFIG_SENSORS_W83627HF=m -CONFIG_SENSORS_W83627EHF=m -CONFIG_SENSORS_WM831X=m -CONFIG_SENSORS_WM8350=m -CONFIG_SENSORS_HDAPS=m -CONFIG_SENSORS_APPLESMC=m - -# -# ACPI drivers -# -CONFIG_SENSORS_ATK0110=m -CONFIG_SENSORS_LIS3LV02D=m -CONFIG_THERMAL=y -CONFIG_WATCHDOG=y -# CONFIG_WATCHDOG_NOWAYOUT is not set - -# -# Watchdog Device Drivers -# -CONFIG_SOFT_WATCHDOG=m -CONFIG_WM831X_WATCHDOG=m -CONFIG_WM8350_WATCHDOG=m -CONFIG_ACQUIRE_WDT=m -CONFIG_ADVANTECH_WDT=m -CONFIG_ALIM1535_WDT=m -CONFIG_ALIM7101_WDT=m -CONFIG_SC520_WDT=m -CONFIG_SBC_FITPC2_WATCHDOG=m -CONFIG_EUROTECH_WDT=m -CONFIG_IB700_WDT=m -CONFIG_IBMASR=m -CONFIG_WAFER_WDT=m -CONFIG_I6300ESB_WDT=m -CONFIG_ITCO_WDT=m -# CONFIG_ITCO_VENDOR_SUPPORT is not set -CONFIG_IT8712F_WDT=m -CONFIG_IT87_WDT=m -CONFIG_HP_WATCHDOG=m -CONFIG_SC1200_WDT=m -CONFIG_SCx200_WDT=m -CONFIG_PC87413_WDT=m -CONFIG_60XX_WDT=m -CONFIG_SBC8360_WDT=m -CONFIG_SBC7240_WDT=m -CONFIG_CPU5_WDT=m -CONFIG_SMSC_SCH311X_WDT=m -CONFIG_SMSC37B787_WDT=m -CONFIG_W83627HF_WDT=m -CONFIG_W83697HF_WDT=m -CONFIG_W83697UG_WDT=m -CONFIG_W83877F_WDT=m -CONFIG_W83977F_WDT=m -CONFIG_MACHZ_WDT=m -CONFIG_SBC_EPX_C3_WATCHDOG=m - -# -# PCI-based Watchdog Cards -# -CONFIG_PCIPCWATCHDOG=m -CONFIG_WDTPCI=m - -# -# USB-based Watchdog Cards -# -CONFIG_USBPCWATCHDOG=m -CONFIG_SSB_POSSIBLE=y - -# -# Sonics Silicon Backplane -# -CONFIG_SSB=m -CONFIG_SSB_SPROM=y -CONFIG_SSB_PCIHOST_POSSIBLE=y -CONFIG_SSB_PCIHOST=y -# CONFIG_SSB_B43_PCI_BRIDGE is not set -CONFIG_SSB_PCMCIAHOST_POSSIBLE=y -CONFIG_SSB_PCMCIAHOST=y -CONFIG_SSB_SDIOHOST_POSSIBLE=y -CONFIG_SSB_SDIOHOST=y -# CONFIG_SSB_DEBUG is not set -CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y -CONFIG_SSB_DRIVER_PCICORE=y - -# -# Multifunction device drivers -# -CONFIG_MFD_CORE=m -CONFIG_MFD_SM501=m -CONFIG_HTC_PASIC3=m -# CONFIG_MFD_TMIO is not set -CONFIG_MFD_WM8400=m -CONFIG_MFD_WM831X=m -CONFIG_MFD_WM8350=m -CONFIG_MFD_WM8350_I2C=m -CONFIG_MFD_PCF50633=m -CONFIG_PCF50633_ADC=m -CONFIG_PCF50633_GPIO=m -CONFIG_AB3100_CORE=m -CONFIG_AB3100_OTP=m -# CONFIG_REGULATOR is not set -CONFIG_MEDIA_SUPPORT=m - -# -# Multimedia core support -# -CONFIG_VIDEO_DEV=m -CONFIG_VIDEO_V4L2_COMMON=m -# CONFIG_VIDEO_ALLOW_V4L1 is not set -CONFIG_VIDEO_V4L1_COMPAT=y -CONFIG_DVB_CORE=m -CONFIG_VIDEO_MEDIA=m - -# -# Multimedia drivers -# -# CONFIG_MEDIA_ATTACH is not set -CONFIG_MEDIA_TUNER=m -# CONFIG_MEDIA_TUNER_CUSTOMISE is not set -CONFIG_MEDIA_TUNER_SIMPLE=m -CONFIG_MEDIA_TUNER_TDA8290=m -CONFIG_MEDIA_TUNER_TDA9887=m -CONFIG_MEDIA_TUNER_TEA5761=m -CONFIG_MEDIA_TUNER_TEA5767=m -CONFIG_MEDIA_TUNER_MT20XX=m -CONFIG_MEDIA_TUNER_XC2028=m -CONFIG_MEDIA_TUNER_XC5000=m -CONFIG_MEDIA_TUNER_MC44S803=m -CONFIG_VIDEO_V4L2=m -CONFIG_VIDEO_CAPTURE_DRIVERS=y -# CONFIG_VIDEO_ADV_DEBUG is not set -# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set -# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set - -# -# Encoders/decoders and other helper chips -# - -# -# Audio decoders -# -# CONFIG_VIDEO_TVAUDIO is not set -# CONFIG_VIDEO_TDA7432 is not set -# CONFIG_VIDEO_TDA9840 is not set -# CONFIG_VIDEO_TDA9875 is not set -# CONFIG_VIDEO_TEA6415C is not set -# CONFIG_VIDEO_TEA6420 is not set -# CONFIG_VIDEO_MSP3400 is not set -# CONFIG_VIDEO_CS5345 is not set -# CONFIG_VIDEO_CS53L32A is not set -# CONFIG_VIDEO_M52790 is not set -# CONFIG_VIDEO_TLV320AIC23B is not set -# CONFIG_VIDEO_WM8775 is not set -# CONFIG_VIDEO_WM8739 is not set -# CONFIG_VIDEO_VP27SMPX is not set - -# -# RDS decoders -# -# CONFIG_VIDEO_SAA6588 is not set - -# -# Video decoders -# -# CONFIG_VIDEO_ADV7180 is not set -# CONFIG_VIDEO_BT819 is not set -# CONFIG_VIDEO_BT856 is not set -# CONFIG_VIDEO_BT866 is not set -# CONFIG_VIDEO_KS0127 is not set -# CONFIG_VIDEO_OV7670 is not set -# CONFIG_VIDEO_MT9V011 is not set -# CONFIG_VIDEO_TCM825X is not set -# CONFIG_VIDEO_SAA7110 is not set -# CONFIG_VIDEO_SAA711X is not set -# CONFIG_VIDEO_SAA717X is not set -# CONFIG_VIDEO_TVP514X is not set -# CONFIG_VIDEO_TVP5150 is not set -# CONFIG_VIDEO_VPX3220 is not set - -# -# Video and audio decoders -# -# CONFIG_VIDEO_CX25840 is not set - -# -# MPEG video encoders -# -# CONFIG_VIDEO_CX2341X is not set - -# -# Video encoders -# -# CONFIG_VIDEO_SAA7127 is not set -# CONFIG_VIDEO_SAA7185 is not set -# CONFIG_VIDEO_ADV7170 is not set -# CONFIG_VIDEO_ADV7175 is not set -# CONFIG_VIDEO_THS7303 is not set -# CONFIG_VIDEO_ADV7343 is not set - -# -# Video improvement chips -# -# CONFIG_VIDEO_UPD64031A is not set -# CONFIG_VIDEO_UPD64083 is not set -# CONFIG_VIDEO_VIVI is not set -# CONFIG_VIDEO_BT848 is not set -# CONFIG_VIDEO_SAA5246A is not set -# CONFIG_VIDEO_SAA5249 is not set -# CONFIG_VIDEO_ZORAN is not set -# CONFIG_VIDEO_SAA7134 is not set -# CONFIG_VIDEO_HEXIUM_ORION is not set -# CONFIG_VIDEO_HEXIUM_GEMINI is not set -# CONFIG_VIDEO_CX88 is not set -# CONFIG_VIDEO_CX23885 is not set -# CONFIG_VIDEO_AU0828 is not set -# CONFIG_VIDEO_IVTV is not set -# CONFIG_VIDEO_CX18 is not set -# CONFIG_VIDEO_SAA7164 is not set -# CONFIG_VIDEO_CAFE_CCIC is not set -# CONFIG_SOC_CAMERA is not set -CONFIG_V4L_USB_DRIVERS=y -# CONFIG_USB_VIDEO_CLASS is not set -CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y -# CONFIG_USB_GSPCA is not set -# CONFIG_VIDEO_PVRUSB2 is not set -# CONFIG_VIDEO_HDPVR is not set -# CONFIG_VIDEO_EM28XX is not set -# CONFIG_VIDEO_CX231XX is not set -# CONFIG_VIDEO_USBVISION is not set -# CONFIG_USB_ET61X251 is not set -# CONFIG_USB_SN9C102 is not set -# CONFIG_USB_ZC0301 is not set -CONFIG_USB_PWC_INPUT_EVDEV=y -# CONFIG_USB_ZR364XX is not set -# CONFIG_USB_STKWEBCAM is not set -# CONFIG_USB_S2255 is not set -CONFIG_RADIO_ADAPTERS=y -# CONFIG_RADIO_GEMTEK_PCI is not set -# CONFIG_RADIO_MAXIRADIO is not set -# CONFIG_RADIO_MAESTRO is not set -# CONFIG_I2C_SI4713 is not set -# CONFIG_RADIO_SI4713 is not set -# CONFIG_USB_DSBR is not set -# CONFIG_RADIO_SI470X is not set -# CONFIG_USB_MR800 is not set -# CONFIG_RADIO_TEA5764 is not set -CONFIG_DVB_MAX_ADAPTERS=8 -# CONFIG_DVB_DYNAMIC_MINORS is not set -CONFIG_DVB_CAPTURE_DRIVERS=y - -# -# Supported SAA7146 based PCI Adapters -# -# CONFIG_TTPCI_EEPROM is not set -# CONFIG_DVB_AV7110 is not set -# CONFIG_DVB_BUDGET_CORE is not set - -# -# Supported USB Adapters -# -# CONFIG_DVB_USB is not set -# CONFIG_DVB_TTUSB_BUDGET is not set -# CONFIG_DVB_TTUSB_DEC is not set -# CONFIG_SMS_SIANO_MDTV is not set - -# -# Supported FlexCopII (B2C2) Adapters -# -# CONFIG_DVB_B2C2_FLEXCOP is not set - -# -# Supported BT878 Adapters -# - -# -# Supported Pluto2 Adapters -# -# CONFIG_DVB_PLUTO2 is not set - -# -# Supported SDMC DM1105 Adapters -# -# CONFIG_DVB_DM1105 is not set - -# -# Supported Earthsoft PT1 Adapters -# -# CONFIG_DVB_PT1 is not set - -# -# Supported DVB Frontends -# -# CONFIG_DVB_FE_CUSTOMISE is not set -CONFIG_DAB=y -# CONFIG_USB_DABUSB is not set - -# -# Graphics support -# -CONFIG_AGP=m -CONFIG_AGP_ALI=m -CONFIG_AGP_ATI=m -CONFIG_AGP_AMD=m -CONFIG_AGP_AMD64=m -CONFIG_AGP_INTEL=m -CONFIG_AGP_NVIDIA=m -CONFIG_AGP_SIS=m -CONFIG_AGP_SWORKS=m -CONFIG_AGP_VIA=m -CONFIG_AGP_EFFICEON=m -CONFIG_VGA_ARB=y -CONFIG_DRM=m -CONFIG_DRM_KMS_HELPER=m -CONFIG_DRM_TTM=m -CONFIG_DRM_TDFX=m -CONFIG_DRM_R128=m -CONFIG_DRM_RADEON=m -CONFIG_DRM_I810=m -CONFIG_DRM_I830=m -CONFIG_DRM_I915=m -CONFIG_DRM_I915_KMS=y -CONFIG_DRM_MGA=m -CONFIG_DRM_SIS=m -CONFIG_DRM_VIA=m -CONFIG_DRM_SAVAGE=m -CONFIG_VGASTATE=m -CONFIG_VIDEO_OUTPUT_CONTROL=m -CONFIG_FB=y -CONFIG_FIRMWARE_EDID=y -CONFIG_FB_DDC=m -CONFIG_FB_BOOT_VESA_SUPPORT=y -CONFIG_FB_CFB_FILLRECT=y -CONFIG_FB_CFB_COPYAREA=y -CONFIG_FB_CFB_IMAGEBLIT=y -# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set -CONFIG_FB_SYS_FILLRECT=m -CONFIG_FB_SYS_COPYAREA=m -CONFIG_FB_SYS_IMAGEBLIT=m -# CONFIG_FB_FOREIGN_ENDIAN is not set -CONFIG_FB_SYS_FOPS=m -CONFIG_FB_DEFERRED_IO=y -CONFIG_FB_SVGALIB=m -# CONFIG_FB_MACMODES is not set -CONFIG_FB_BACKLIGHT=y -CONFIG_FB_MODE_HELPERS=y -CONFIG_FB_TILEBLITTING=y - -# -# Frame buffer hardware drivers -# -CONFIG_FB_CIRRUS=m -CONFIG_FB_PM2=m -CONFIG_FB_PM2_FIFO_DISCONNECT=y -CONFIG_FB_CYBER2000=m -# CONFIG_FB_ARC is not set -CONFIG_FB_ASILIANT=y -# CONFIG_FB_IMSTT is not set -# CONFIG_FB_VGA16 is not set -CONFIG_FB_UVESA=m -CONFIG_FB_VESA=y -# CONFIG_FB_N411 is not set -# CONFIG_FB_HGA is not set -# CONFIG_FB_S1D13XXX is not set -CONFIG_FB_NVIDIA=m -CONFIG_FB_NVIDIA_I2C=y -# CONFIG_FB_NVIDIA_DEBUG is not set -CONFIG_FB_NVIDIA_BACKLIGHT=y -CONFIG_FB_RIVA=m -CONFIG_FB_RIVA_I2C=y -# CONFIG_FB_RIVA_DEBUG is not set -CONFIG_FB_RIVA_BACKLIGHT=y -CONFIG_FB_I810=m -CONFIG_FB_I810_GTF=y -CONFIG_FB_I810_I2C=y -CONFIG_FB_LE80578=m -CONFIG_FB_CARILLO_RANCH=m -CONFIG_FB_MATROX=m -CONFIG_FB_MATROX_MILLENIUM=y -CONFIG_FB_MATROX_MYSTIQUE=y -CONFIG_FB_MATROX_G=y -CONFIG_FB_MATROX_I2C=m -CONFIG_FB_MATROX_MAVEN=m -CONFIG_FB_RADEON=m -CONFIG_FB_RADEON_I2C=y -CONFIG_FB_RADEON_BACKLIGHT=y -# CONFIG_FB_RADEON_DEBUG is not set -CONFIG_FB_ATY128=m -CONFIG_FB_ATY128_BACKLIGHT=y -CONFIG_FB_ATY=m -CONFIG_FB_ATY_CT=y -# CONFIG_FB_ATY_GENERIC_LCD is not set -CONFIG_FB_ATY_GX=y -CONFIG_FB_ATY_BACKLIGHT=y -CONFIG_FB_S3=m -CONFIG_FB_SAVAGE=m -CONFIG_FB_SAVAGE_I2C=y -CONFIG_FB_SAVAGE_ACCEL=y -CONFIG_FB_SIS=m -CONFIG_FB_SIS_300=y -CONFIG_FB_SIS_315=y -CONFIG_FB_VIA=m -CONFIG_FB_NEOMAGIC=m -CONFIG_FB_KYRO=m -CONFIG_FB_3DFX=m -CONFIG_FB_3DFX_ACCEL=y -CONFIG_FB_3DFX_I2C=y -CONFIG_FB_VOODOO1=m -CONFIG_FB_VT8623=m -CONFIG_FB_TRIDENT=m -CONFIG_FB_ARK=m -CONFIG_FB_PM3=m -# CONFIG_FB_CARMINE is not set -CONFIG_FB_GEODE=y -CONFIG_FB_GEODE_LX=m -CONFIG_FB_GEODE_GX=m -CONFIG_FB_GEODE_GX1=m -CONFIG_FB_TMIO=m -CONFIG_FB_TMIO_ACCELL=y -CONFIG_FB_SM501=m -# CONFIG_FB_VIRTUAL is not set -CONFIG_FB_METRONOME=m -CONFIG_FB_MB862XX=m -CONFIG_FB_MB862XX_PCI_GDC=y -CONFIG_FB_BROADSHEET=m -CONFIG_BACKLIGHT_LCD_SUPPORT=y -CONFIG_LCD_CLASS_DEVICE=m -# CONFIG_LCD_ILI9320 is not set -CONFIG_LCD_PLATFORM=m -CONFIG_BACKLIGHT_CLASS_DEVICE=y -CONFIG_BACKLIGHT_GENERIC=m -CONFIG_BACKLIGHT_PROGEAR=m -CONFIG_BACKLIGHT_CARILLO_RANCH=m -CONFIG_BACKLIGHT_MBP_NVIDIA=m -CONFIG_BACKLIGHT_SAHARA=m -CONFIG_BACKLIGHT_WM831X=m - -# -# Display device support -# -CONFIG_DISPLAY_SUPPORT=m - -# -# Display hardware drivers -# - -# -# Console display driver support -# -CONFIG_VGA_CONSOLE=y -# CONFIG_VGACON_SOFT_SCROLLBACK is not set -CONFIG_DUMMY_CONSOLE=y -CONFIG_FRAMEBUFFER_CONSOLE=y -# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set -# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set -# CONFIG_FONTS is not set -CONFIG_FONT_8x8=y -CONFIG_FONT_8x16=y -CONFIG_LOGO=y -CONFIG_LOGO_LINUX_MONO=y -CONFIG_LOGO_LINUX_VGA16=y -CONFIG_LOGO_LINUX_CLUT224=y -CONFIG_SOUND=m -CONFIG_SOUND_OSS_CORE=y -CONFIG_SOUND_OSS_CORE_PRECLAIM=y -CONFIG_SND=m -CONFIG_SND_TIMER=m -CONFIG_SND_PCM=m -CONFIG_SND_HWDEP=m -CONFIG_SND_RAWMIDI=m -CONFIG_SND_JACK=y -CONFIG_SND_SEQUENCER=m -CONFIG_SND_SEQ_DUMMY=m -CONFIG_SND_OSSEMUL=y -CONFIG_SND_MIXER_OSS=m -CONFIG_SND_PCM_OSS=m -CONFIG_SND_PCM_OSS_PLUGINS=y -CONFIG_SND_SEQUENCER_OSS=y -CONFIG_SND_DYNAMIC_MINORS=y -CONFIG_SND_SUPPORT_OLD_API=y -CONFIG_SND_VERBOSE_PROCFS=y -# CONFIG_SND_VERBOSE_PRINTK is not set -# CONFIG_SND_DEBUG is not set -CONFIG_SND_VMASTER=y -CONFIG_SND_DMA_SGBUF=y -CONFIG_SND_RAWMIDI_SEQ=m -CONFIG_SND_OPL3_LIB_SEQ=m -# CONFIG_SND_OPL4_LIB_SEQ is not set -# CONFIG_SND_SBAWE_SEQ is not set -CONFIG_SND_EMU10K1_SEQ=m -CONFIG_SND_MPU401_UART=m -CONFIG_SND_OPL3_LIB=m -CONFIG_SND_VX_LIB=m -CONFIG_SND_AC97_CODEC=m -CONFIG_SND_DRIVERS=y -CONFIG_SND_DUMMY=m -CONFIG_SND_VIRMIDI=m -CONFIG_SND_MTPAV=m -CONFIG_SND_MTS64=m -CONFIG_SND_SERIAL_U16550=m -CONFIG_SND_MPU401=m -CONFIG_SND_PORTMAN2X4=m -# CONFIG_SND_AC97_POWER_SAVE is not set -CONFIG_SND_SB_COMMON=m -CONFIG_SND_SB16_DSP=m -CONFIG_SND_PCI=y -CONFIG_SND_AD1889=m -CONFIG_SND_ALS300=m -CONFIG_SND_ALS4000=m -CONFIG_SND_ALI5451=m -CONFIG_SND_ATIIXP=m -CONFIG_SND_ATIIXP_MODEM=m -CONFIG_SND_AU8810=m -CONFIG_SND_AU8820=m -CONFIG_SND_AU8830=m -# CONFIG_SND_AW2 is not set -# CONFIG_SND_AZT3328 is not set -CONFIG_SND_BT87X=m -# CONFIG_SND_BT87X_OVERCLOCK is not set -CONFIG_SND_CA0106=m -CONFIG_SND_CMIPCI=m -CONFIG_SND_OXYGEN_LIB=m -CONFIG_SND_OXYGEN=m -CONFIG_SND_CS4281=m -CONFIG_SND_CS46XX=m -CONFIG_SND_CS46XX_NEW_DSP=y -CONFIG_SND_CS5530=m -CONFIG_SND_CS5535AUDIO=m -CONFIG_SND_CTXFI=m -CONFIG_SND_DARLA20=m -CONFIG_SND_GINA20=m -CONFIG_SND_LAYLA20=m -CONFIG_SND_DARLA24=m -CONFIG_SND_GINA24=m -CONFIG_SND_LAYLA24=m -CONFIG_SND_MONA=m -CONFIG_SND_MIA=m -CONFIG_SND_ECHO3G=m -CONFIG_SND_INDIGO=m -CONFIG_SND_INDIGOIO=m -CONFIG_SND_INDIGODJ=m -CONFIG_SND_INDIGOIOX=m -CONFIG_SND_INDIGODJX=m -CONFIG_SND_EMU10K1=m -CONFIG_SND_EMU10K1X=m -CONFIG_SND_ENS1370=m -CONFIG_SND_ENS1371=m -CONFIG_SND_ES1938=m -CONFIG_SND_ES1968=m -CONFIG_SND_FM801=m -# CONFIG_SND_FM801_TEA575X_BOOL is not set -CONFIG_SND_HDA_INTEL=m -CONFIG_SND_HDA_HWDEP=y -CONFIG_SND_HDA_RECONFIG=y -# CONFIG_SND_HDA_INPUT_BEEP is not set -# CONFIG_SND_HDA_INPUT_JACK is not set -CONFIG_SND_HDA_PATCH_LOADER=y -CONFIG_SND_HDA_CODEC_REALTEK=y -CONFIG_SND_HDA_CODEC_ANALOG=y -CONFIG_SND_HDA_CODEC_SIGMATEL=y -CONFIG_SND_HDA_CODEC_VIA=y -CONFIG_SND_HDA_CODEC_ATIHDMI=y -CONFIG_SND_HDA_CODEC_NVHDMI=y -CONFIG_SND_HDA_CODEC_INTELHDMI=y -CONFIG_SND_HDA_ELD=y -CONFIG_SND_HDA_CODEC_CIRRUS=y -CONFIG_SND_HDA_CODEC_CONEXANT=y -CONFIG_SND_HDA_CODEC_CA0110=y -CONFIG_SND_HDA_CODEC_CMEDIA=y -CONFIG_SND_HDA_CODEC_SI3054=y -CONFIG_SND_HDA_GENERIC=y -# CONFIG_SND_HDA_POWER_SAVE is not set -CONFIG_SND_HDSP=m -CONFIG_SND_HDSPM=m -CONFIG_SND_HIFIER=m -CONFIG_SND_ICE1712=m -CONFIG_SND_ICE1724=m -CONFIG_SND_INTEL8X0=m -CONFIG_SND_INTEL8X0M=m -CONFIG_SND_KORG1212=m -CONFIG_SND_LX6464ES=m -CONFIG_SND_MAESTRO3=m -CONFIG_SND_MIXART=m -CONFIG_SND_NM256=m -CONFIG_SND_PCXHR=m -CONFIG_SND_RIPTIDE=m -CONFIG_SND_RME32=m -CONFIG_SND_RME96=m -CONFIG_SND_RME9652=m -CONFIG_SND_SIS7019=m -CONFIG_SND_SONICVIBES=m -CONFIG_SND_TRIDENT=m -CONFIG_SND_VIA82XX=m -CONFIG_SND_VIA82XX_MODEM=m -CONFIG_SND_VIRTUOSO=m -CONFIG_SND_VX222=m -CONFIG_SND_YMFPCI=m -CONFIG_SND_USB=y -CONFIG_SND_USB_AUDIO=m -CONFIG_SND_USB_USX2Y=m -CONFIG_SND_USB_CAIAQ=m -CONFIG_SND_USB_CAIAQ_INPUT=y -CONFIG_SND_USB_US122L=m -CONFIG_SND_PCMCIA=y -CONFIG_SND_VXPOCKET=m -CONFIG_SND_PDAUDIOCF=m -CONFIG_SND_SOC=m -CONFIG_SND_SOC_I2C_AND_SPI=m -CONFIG_SND_SOC_ALL_CODECS=m -CONFIG_SND_SOC_WM_HUBS=m -CONFIG_SND_SOC_AD73311=m -CONFIG_SND_SOC_AK4535=m -CONFIG_SND_SOC_AK4642=m -CONFIG_SND_SOC_CS4270=m -CONFIG_SND_SOC_L3=m -CONFIG_SND_SOC_PCM3008=m -CONFIG_SND_SOC_SPDIF=m -CONFIG_SND_SOC_SSM2602=m -CONFIG_SND_SOC_TLV320AIC23=m -CONFIG_SND_SOC_TLV320AIC3X=m -CONFIG_SND_SOC_UDA134X=m -CONFIG_SND_SOC_UDA1380=m -CONFIG_SND_SOC_WM8350=m -CONFIG_SND_SOC_WM8400=m -CONFIG_SND_SOC_WM8510=m -CONFIG_SND_SOC_WM8523=m -CONFIG_SND_SOC_WM8580=m -CONFIG_SND_SOC_WM8728=m -CONFIG_SND_SOC_WM8731=m -CONFIG_SND_SOC_WM8750=m -CONFIG_SND_SOC_WM8753=m -CONFIG_SND_SOC_WM8776=m -CONFIG_SND_SOC_WM8900=m -CONFIG_SND_SOC_WM8903=m -CONFIG_SND_SOC_WM8940=m -CONFIG_SND_SOC_WM8960=m -CONFIG_SND_SOC_WM8961=m -CONFIG_SND_SOC_WM8971=m -CONFIG_SND_SOC_WM8974=m -CONFIG_SND_SOC_WM8988=m -CONFIG_SND_SOC_WM8990=m -CONFIG_SND_SOC_WM8993=m -CONFIG_SND_SOC_WM9081=m -CONFIG_SND_SOC_MAX9877=m -# CONFIG_SOUND_PRIME is not set -CONFIG_AC97_BUS=m -CONFIG_HID_SUPPORT=y -CONFIG_HID=y -# CONFIG_HIDRAW is not set - -# -# USB Input Devices -# -CONFIG_USB_HID=m -# CONFIG_HID_PID is not set -CONFIG_USB_HIDDEV=y - -# -# Special HID drivers -# -CONFIG_HID_A4TECH=m -CONFIG_HID_APPLE=m -CONFIG_HID_BELKIN=m -CONFIG_HID_CHERRY=m -CONFIG_HID_CHICONY=m -CONFIG_HID_CYPRESS=m -CONFIG_HID_DRAGONRISE=m -# CONFIG_DRAGONRISE_FF is not set -CONFIG_HID_EZKEY=m -CONFIG_HID_KYE=m -CONFIG_HID_GYRATION=m -CONFIG_HID_TWINHAN=m -CONFIG_HID_KENSINGTON=m -CONFIG_HID_LOGITECH=m -# CONFIG_LOGITECH_FF is not set -# CONFIG_LOGIRUMBLEPAD2_FF is not set -CONFIG_HID_MICROSOFT=m -CONFIG_HID_MONTEREY=m -CONFIG_HID_NTRIG=m -CONFIG_HID_PANTHERLORD=m -# CONFIG_PANTHERLORD_FF is not set -CONFIG_HID_PETALYNX=m -CONFIG_HID_SAMSUNG=m -CONFIG_HID_SONY=m -CONFIG_HID_SUNPLUS=m -CONFIG_HID_GREENASIA=m -# CONFIG_GREENASIA_FF is not set -CONFIG_HID_SMARTJOYPLUS=m -# CONFIG_SMARTJOYPLUS_FF is not set -CONFIG_HID_TOPSEED=m -CONFIG_HID_THRUSTMASTER=m -# CONFIG_THRUSTMASTER_FF is not set -CONFIG_HID_WACOM=m -CONFIG_HID_ZEROPLUS=m -# CONFIG_ZEROPLUS_FF is not set -CONFIG_USB_SUPPORT=y -CONFIG_USB_ARCH_HAS_HCD=y -CONFIG_USB_ARCH_HAS_OHCI=y -CONFIG_USB_ARCH_HAS_EHCI=y -CONFIG_USB=y -# CONFIG_USB_DEBUG is not set -CONFIG_USB_ANNOUNCE_NEW_DEVICES=y - -# -# Miscellaneous USB options -# -CONFIG_USB_DEVICEFS=y -CONFIG_USB_DEVICE_CLASS=y -CONFIG_USB_DYNAMIC_MINORS=y -CONFIG_USB_SUSPEND=y -# CONFIG_USB_OTG is not set -# CONFIG_USB_MON is not set -CONFIG_USB_WUSB=m -CONFIG_USB_WUSB_CBAF=m -# CONFIG_USB_WUSB_CBAF_DEBUG is not set - -# -# USB Host Controller Drivers -# -# CONFIG_USB_C67X00_HCD is not set -CONFIG_USB_XHCI_HCD=y -# CONFIG_USB_XHCI_HCD_DEBUGGING is not set -CONFIG_USB_EHCI_HCD=y -CONFIG_USB_EHCI_ROOT_HUB_TT=y -CONFIG_USB_EHCI_TT_NEWSCHED=y -CONFIG_USB_OXU210HP_HCD=m -CONFIG_USB_ISP116X_HCD=m -# CONFIG_USB_ISP1760_HCD is not set -CONFIG_USB_ISP1362_HCD=m -CONFIG_USB_OHCI_HCD=y -# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set -# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set -CONFIG_USB_OHCI_LITTLE_ENDIAN=y -CONFIG_USB_UHCI_HCD=y -CONFIG_USB_U132_HCD=m -CONFIG_USB_SL811_HCD=m -# CONFIG_USB_SL811_CS is not set -CONFIG_USB_R8A66597_HCD=m -CONFIG_USB_WHCI_HCD=m -CONFIG_USB_HWA_HCD=m - -# -# USB Device Class drivers -# -CONFIG_USB_ACM=m -CONFIG_USB_PRINTER=m -CONFIG_USB_WDM=m -CONFIG_USB_TMC=m - -# -# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may -# - -# -# also be needed; see USB_STORAGE Help for more info -# -CONFIG_USB_STORAGE=m -# CONFIG_USB_STORAGE_DEBUG is not set -# CONFIG_USB_STORAGE_DATAFAB is not set -CONFIG_USB_STORAGE_FREECOM=m -CONFIG_USB_STORAGE_ISD200=m -CONFIG_USB_STORAGE_USBAT=m -CONFIG_USB_STORAGE_SDDR09=m -CONFIG_USB_STORAGE_SDDR55=m -CONFIG_USB_STORAGE_JUMPSHOT=m -CONFIG_USB_STORAGE_ALAUDA=m -CONFIG_USB_STORAGE_ONETOUCH=m -CONFIG_USB_STORAGE_KARMA=m -CONFIG_USB_STORAGE_CYPRESS_ATACB=m -# CONFIG_USB_LIBUSUAL is not set - -# -# USB Imaging devices -# -# CONFIG_USB_MDC800 is not set -# CONFIG_USB_MICROTEK is not set - -# -# USB port drivers -# -CONFIG_USB_USS720=m -CONFIG_USB_SERIAL=m -CONFIG_USB_EZUSB=y -CONFIG_USB_SERIAL_GENERIC=y -CONFIG_USB_SERIAL_AIRCABLE=m -CONFIG_USB_SERIAL_ARK3116=m -CONFIG_USB_SERIAL_BELKIN=m -CONFIG_USB_SERIAL_CH341=m -CONFIG_USB_SERIAL_WHITEHEAT=m -CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m -CONFIG_USB_SERIAL_CP210X=m -CONFIG_USB_SERIAL_CYPRESS_M8=m -CONFIG_USB_SERIAL_EMPEG=m -CONFIG_USB_SERIAL_FTDI_SIO=m -# CONFIG_USB_SERIAL_FUNSOFT is not set -# CONFIG_USB_SERIAL_VISOR is not set -# CONFIG_USB_SERIAL_IPAQ is not set -# CONFIG_USB_SERIAL_IR is not set -CONFIG_USB_SERIAL_EDGEPORT=m -# CONFIG_USB_SERIAL_EDGEPORT_TI is not set -CONFIG_USB_SERIAL_GARMIN=m -CONFIG_USB_SERIAL_IPW=m -CONFIG_USB_SERIAL_IUU=m -# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set -# CONFIG_USB_SERIAL_KEYSPAN is not set -# CONFIG_USB_SERIAL_KLSI is not set -# CONFIG_USB_SERIAL_KOBIL_SCT is not set -CONFIG_USB_SERIAL_MCT_U232=m -CONFIG_USB_SERIAL_MOS7720=m -CONFIG_USB_SERIAL_MOS7840=m -CONFIG_USB_SERIAL_MOTOROLA=m -# CONFIG_USB_SERIAL_NAVMAN is not set -CONFIG_USB_SERIAL_PL2303=m -CONFIG_USB_SERIAL_OTI6858=m -# CONFIG_USB_SERIAL_QUALCOMM is not set -CONFIG_USB_SERIAL_SPCP8X5=m -CONFIG_USB_SERIAL_HP4X=m -CONFIG_USB_SERIAL_SAFE=m -# CONFIG_USB_SERIAL_SAFE_PADDED is not set -CONFIG_USB_SERIAL_SIEMENS_MPI=m -CONFIG_USB_SERIAL_SIERRAWIRELESS=m -CONFIG_USB_SERIAL_SYMBOL=m -CONFIG_USB_SERIAL_TI=m -# CONFIG_USB_SERIAL_CYBERJACK is not set -CONFIG_USB_SERIAL_XIRCOM=m -CONFIG_USB_SERIAL_OPTION=m -# CONFIG_USB_SERIAL_OMNINET is not set -CONFIG_USB_SERIAL_OPTICON=m -# CONFIG_USB_SERIAL_DEBUG is not set - -# -# USB Miscellaneous drivers -# -CONFIG_USB_EMI62=m -CONFIG_USB_EMI26=m -# CONFIG_USB_ADUTUX is not set -CONFIG_USB_SEVSEG=m -# CONFIG_USB_RIO500 is not set -# CONFIG_USB_LEGOTOWER is not set -CONFIG_USB_LCD=m -CONFIG_USB_BERRY_CHARGE=m -CONFIG_USB_LED=m -CONFIG_USB_CYPRESS_CY7C63=m -CONFIG_USB_CYTHERM=m -# CONFIG_USB_IDMOUSE is not set -CONFIG_USB_FTDI_ELAN=m -# CONFIG_USB_APPLEDISPLAY is not set -CONFIG_USB_SISUSBVGA=m -CONFIG_USB_SISUSBVGA_CON=y -# CONFIG_USB_LD is not set -# CONFIG_USB_TRANCEVIBRATOR is not set -CONFIG_USB_IOWARRIOR=m -# CONFIG_USB_TEST is not set -CONFIG_USB_ISIGHTFW=m -CONFIG_USB_VST=m -CONFIG_USB_ATM=m -CONFIG_USB_SPEEDTOUCH=m -CONFIG_USB_CXACRU=m -CONFIG_USB_UEAGLEATM=m -CONFIG_USB_XUSBATM=m -# CONFIG_USB_GADGET is not set - -# -# OTG and related infrastructure -# -CONFIG_USB_OTG_UTILS=y -CONFIG_NOP_USB_XCEIV=m -CONFIG_UWB=m -CONFIG_UWB_HWA=m -CONFIG_UWB_WHCI=m -CONFIG_UWB_WLP=m -CONFIG_UWB_I1480U=m -CONFIG_UWB_I1480U_WLP=m -CONFIG_MMC=m -# CONFIG_MMC_DEBUG is not set -# CONFIG_MMC_UNSAFE_RESUME is not set - -# -# MMC/SD/SDIO Card Drivers -# -CONFIG_MMC_BLOCK=m -CONFIG_MMC_BLOCK_BOUNCE=y -CONFIG_SDIO_UART=m -CONFIG_MMC_TEST=m - -# -# MMC/SD/SDIO Host Controller Drivers -# -CONFIG_MMC_SDHCI=m -CONFIG_MMC_SDHCI_PCI=m -CONFIG_MMC_RICOH_MMC=m -CONFIG_MMC_SDHCI_PLTFM=m -CONFIG_MMC_WBSD=m -# CONFIG_MMC_AT91 is not set -# CONFIG_MMC_ATMELMCI is not set -CONFIG_MMC_TIFM_SD=m -CONFIG_MMC_SDRICOH_CS=m -CONFIG_MMC_CB710=m -CONFIG_MMC_VIA_SDMMC=m -CONFIG_MEMSTICK=m -# CONFIG_MEMSTICK_DEBUG is not set - -# -# MemoryStick drivers -# -# CONFIG_MEMSTICK_UNSAFE_RESUME is not set -CONFIG_MSPRO_BLOCK=m - -# -# MemoryStick Host Controller Drivers -# -CONFIG_MEMSTICK_TIFM_MS=m -CONFIG_MEMSTICK_JMICRON_38X=m -CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=m - -# -# LED drivers -# -CONFIG_LEDS_NET48XX=m -CONFIG_LEDS_WRAP=m -CONFIG_LEDS_ALIX2=m -CONFIG_LEDS_PCA9532=m -CONFIG_LEDS_LP3944=m -CONFIG_LEDS_CLEVO_MAIL=m -CONFIG_LEDS_PCA955X=m -CONFIG_LEDS_WM831X_STATUS=m -CONFIG_LEDS_WM8350=m -CONFIG_LEDS_BD2802=m - -# -# LED Triggers -# -CONFIG_LEDS_TRIGGERS=y -CONFIG_LEDS_TRIGGER_TIMER=m -CONFIG_LEDS_TRIGGER_HEARTBEAT=m -CONFIG_LEDS_TRIGGER_BACKLIGHT=m -CONFIG_LEDS_TRIGGER_DEFAULT_ON=m - -# -# iptables trigger is under Netfilter config (LED target) -# -CONFIG_LEDS_TRIGGER_NETDEV=m -# CONFIG_ACCESSIBILITY is not set -# CONFIG_INFINIBAND is not set -# CONFIG_EDAC is not set -CONFIG_RTC_LIB=m -CONFIG_RTC_CLASS=m - -# -# RTC interfaces -# -CONFIG_RTC_INTF_SYSFS=y -CONFIG_RTC_INTF_PROC=y -CONFIG_RTC_INTF_DEV=y -# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set -CONFIG_RTC_DRV_TEST=m - -# -# I2C RTC drivers -# -CONFIG_RTC_DRV_DS1307=m -CONFIG_RTC_DRV_DS1374=m -CONFIG_RTC_DRV_DS1672=m -CONFIG_RTC_DRV_MAX6900=m -CONFIG_RTC_DRV_RS5C372=m -CONFIG_RTC_DRV_ISL1208=m -CONFIG_RTC_DRV_X1205=m -CONFIG_RTC_DRV_PCF8563=m -CONFIG_RTC_DRV_PCF8583=m -CONFIG_RTC_DRV_M41T80=m -# CONFIG_RTC_DRV_M41T80_WDT is not set -CONFIG_RTC_DRV_S35390A=m -CONFIG_RTC_DRV_FM3130=m -CONFIG_RTC_DRV_RX8581=m -CONFIG_RTC_DRV_RX8025=m - -# -# SPI RTC drivers -# - -# -# Platform RTC drivers -# -CONFIG_RTC_DRV_CMOS=m -CONFIG_RTC_DRV_DS1286=m -CONFIG_RTC_DRV_DS1511=m -CONFIG_RTC_DRV_DS1553=m -CONFIG_RTC_DRV_DS1742=m -CONFIG_RTC_DRV_STK17TA8=m -CONFIG_RTC_DRV_M48T86=m -CONFIG_RTC_DRV_M48T35=m -CONFIG_RTC_DRV_M48T59=m -CONFIG_RTC_DRV_BQ4802=m -CONFIG_RTC_DRV_V3020=m -CONFIG_RTC_DRV_WM831X=m -CONFIG_RTC_DRV_WM8350=m -CONFIG_RTC_DRV_PCF50633=m -CONFIG_RTC_DRV_AB3100=m - -# -# on-CPU RTC drivers -# -CONFIG_DMADEVICES=y - -# -# DMA Devices -# -CONFIG_ASYNC_TX_DISABLE_CHANNEL_SWITCH=y -CONFIG_INTEL_IOATDMA=m -CONFIG_DMA_ENGINE=y - -# -# DMA Clients -# -CONFIG_NET_DMA=y -# CONFIG_ASYNC_TX_DMA is not set -CONFIG_DMATEST=m -CONFIG_DCA=m -# CONFIG_AUXDISPLAY is not set -CONFIG_UIO=m -CONFIG_UIO_CIF=m -CONFIG_UIO_PDRV=m -CONFIG_UIO_PDRV_GENIRQ=m -CONFIG_UIO_SMX=m -CONFIG_UIO_AEC=m -CONFIG_UIO_SERCOS3=m -CONFIG_UIO_PCI_GENERIC=m - -# -# TI VLYNQ -# -CONFIG_XEN=y -CONFIG_XEN_INTERFACE_VERSION=0x00030207 - -# -# XEN -# -CONFIG_XEN_PRIVILEGED_GUEST=y -# CONFIG_XEN_UNPRIVILEGED_GUEST is not set -CONFIG_XEN_PRIVCMD=y -CONFIG_XEN_XENBUS_DEV=y -CONFIG_XEN_NETDEV_ACCEL_SFC_UTIL=y -CONFIG_XEN_BACKEND=y -CONFIG_XEN_BLKDEV_BACKEND=y -CONFIG_XEN_BLKDEV_TAP=y -CONFIG_XEN_BLKDEV_TAP2=m -CONFIG_XEN_BLKBACK_PAGEMAP=y -CONFIG_XEN_NETDEV_BACKEND=y -CONFIG_XEN_NETDEV_TX_SHIFT=8 -# CONFIG_XEN_NETDEV_PIPELINED_TRANSMITTER is not set -CONFIG_XEN_NETDEV_LOOPBACK=y -CONFIG_XEN_PCIDEV_BACKEND=y -CONFIG_XEN_PCIDEV_BACKEND_VPCI=y -# CONFIG_XEN_PCIDEV_BACKEND_PASS is not set -# CONFIG_XEN_PCIDEV_BACKEND_SLOT is not set -# CONFIG_XEN_PCIDEV_BACKEND_CONTROLLER is not set -CONFIG_XEN_PCIDEV_BE_DEBUG=y -# CONFIG_XEN_TPMDEV_BACKEND is not set -CONFIG_XEN_SCSI_BACKEND=m -CONFIG_XEN_USB_BACKEND=m -CONFIG_XEN_BLKDEV_FRONTEND=y -CONFIG_XEN_NETDEV_FRONTEND=y -CONFIG_XEN_NETDEV_ACCEL_SFC_FRONTEND=y -CONFIG_XEN_SCSI_FRONTEND=m -CONFIG_XEN_USB_FRONTEND=m -CONFIG_XEN_USB_FRONTEND_HCD_STATS=y -# CONFIG_XEN_USB_FRONTEND_HCD_PM is not set -CONFIG_XEN_GRANT_DEV=y -CONFIG_XEN_FRAMEBUFFER=y -CONFIG_XEN_KEYBOARD=y -CONFIG_XEN_DISABLE_SERIAL=y -CONFIG_XEN_SYSFS=y -CONFIG_XEN_NR_GUEST_DEVICES=256 -# CONFIG_XEN_COMPAT_030002_AND_LATER is not set -# CONFIG_XEN_COMPAT_030004_AND_LATER is not set -# CONFIG_XEN_COMPAT_030100_AND_LATER is not set -CONFIG_XEN_COMPAT_030200_AND_LATER=y -# CONFIG_XEN_COMPAT_030300_AND_LATER is not set -# CONFIG_XEN_COMPAT_030400_AND_LATER is not set -# CONFIG_XEN_COMPAT_LATEST_ONLY is not set -CONFIG_XEN_COMPAT=0x030200 -CONFIG_XEN_VCPU_INFO_PLACEMENT=y -CONFIG_HAVE_IRQ_IGNORE_UNHANDLED=y -CONFIG_IRQ_PER_CPU=y -CONFIG_NO_IDLE_HZ=y -CONFIG_XEN_SMPBOOT=y -CONFIG_XEN_DEVMEM=y -CONFIG_XEN_BALLOON=y -CONFIG_XEN_SCRUB_PAGES=y -CONFIG_STAGING=y -# CONFIG_STAGING_EXCLUDE_BUILD is not set -CONFIG_ET131X=m -# CONFIG_ET131X_DEBUG is not set -CONFIG_SLICOSS=m -# CONFIG_VIDEO_GO7007 is not set -# CONFIG_VIDEO_CX25821 is not set -# CONFIG_USB_IP_COMMON is not set -# CONFIG_W35UND is not set -# CONFIG_PRISM2_USB is not set -# CONFIG_ECHO is not set -# CONFIG_POCH is not set -# CONFIG_OTUS is not set -# CONFIG_RT2860 is not set -# CONFIG_RT2870 is not set -# CONFIG_RT3090 is not set -# CONFIG_COMEDI is not set -# CONFIG_ASUS_OLED is not set -# CONFIG_PANEL is not set -# CONFIG_ALTERA_PCIE_CHDMA is not set -# CONFIG_RTL8187SE is not set -# CONFIG_RTL8192SU is not set -# CONFIG_RTL8192E is not set -# CONFIG_TRANZPORT is not set - -# -# Android -# - -# -# Qualcomm MSM Camera And Video -# - -# -# Camera Sensor Selection -# -# CONFIG_INPUT_GPIO is not set -# CONFIG_DST is not set -# CONFIG_POHMELFS is not set -# CONFIG_B3DFG is not set -# CONFIG_IDE_PHISON is not set -# CONFIG_PLAN9AUTH is not set -# CONFIG_LINE6_USB is not set -# CONFIG_DRM_RADEON_KMS is not set -# CONFIG_USB_SERIAL_QUATECH2 is not set -# CONFIG_USB_SERIAL_QUATECH_USB2 is not set -# CONFIG_VT6655 is not set -# CONFIG_VT6656 is not set -# CONFIG_FB_UDL is not set -# CONFIG_VME_BUS is not set - -# -# RAR Register Driver -# -# CONFIG_RAR_REGISTER is not set -# CONFIG_IIO is not set -CONFIG_X86_PLATFORM_DEVICES=y -CONFIG_ACER_WMI=m -CONFIG_ASUS_LAPTOP=m -CONFIG_DELL_WMI=m -CONFIG_FUJITSU_LAPTOP=m -CONFIG_FUJITSU_LAPTOP_DEBUG=y -CONFIG_TC1100_WMI=m -CONFIG_HP_WMI=m -CONFIG_MSI_LAPTOP=m -CONFIG_PANASONIC_LAPTOP=m -CONFIG_COMPAL_LAPTOP=m -CONFIG_SONY_LAPTOP=m -# CONFIG_SONYPI_COMPAT is not set -CONFIG_THINKPAD_ACPI=m -# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set -# CONFIG_THINKPAD_ACPI_DEBUG is not set -# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set -CONFIG_THINKPAD_ACPI_VIDEO=y -CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y -CONFIG_INTEL_MENLOW=m -CONFIG_ACPI_WMI=m -CONFIG_ACPI_ASUS=m -CONFIG_TOPSTAR_LAPTOP=m -CONFIG_ACPI_TOSHIBA=m - -# -# Firmware Drivers -# -# CONFIG_EDD is not set -CONFIG_FIRMWARE_MEMMAP=y -# CONFIG_DELL_RBU is not set -# CONFIG_DCDBAS is not set -CONFIG_DMIID=y -CONFIG_ISCSI_IBFT_FIND=y -CONFIG_ISCSI_IBFT=m - -# -# File systems -# -CONFIG_EXT2_FS=m -CONFIG_EXT2_FS_XATTR=y -CONFIG_EXT2_FS_POSIX_ACL=y -CONFIG_EXT2_FS_SECURITY=y -# CONFIG_EXT2_FS_XIP is not set -CONFIG_EXT3_FS=m -# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set -CONFIG_EXT3_FS_XATTR=y -CONFIG_EXT3_FS_POSIX_ACL=y -CONFIG_EXT3_FS_SECURITY=y -CONFIG_EXT4_FS=m -CONFIG_EXT4_FS_XATTR=y -CONFIG_EXT4_FS_POSIX_ACL=y -CONFIG_EXT4_FS_SECURITY=y -# CONFIG_EXT4_DEBUG is not set -CONFIG_JBD=m -CONFIG_JBD2=m -CONFIG_FS_MBCACHE=m -CONFIG_REISER4_FS=m -# CONFIG_REISER4_DEBUG is not set -CONFIG_REISERFS_FS=m -# CONFIG_REISERFS_CHECK is not set -CONFIG_REISERFS_PROC_INFO=y -CONFIG_REISERFS_FS_XATTR=y -CONFIG_REISERFS_FS_POSIX_ACL=y -CONFIG_REISERFS_FS_SECURITY=y -CONFIG_JFS_FS=m -CONFIG_JFS_POSIX_ACL=y -CONFIG_JFS_SECURITY=y -# CONFIG_JFS_DEBUG is not set -CONFIG_JFS_STATISTICS=y -CONFIG_FS_POSIX_ACL=y -CONFIG_XFS_FS=m -CONFIG_XFS_QUOTA=y -CONFIG_XFS_POSIX_ACL=y -# CONFIG_XFS_RT is not set -# CONFIG_XFS_DEBUG is not set -# CONFIG_GFS2_FS is not set -# CONFIG_OCFS2_FS is not set -# CONFIG_BTRFS_FS is not set -# CONFIG_NILFS2_FS is not set -CONFIG_FILE_LOCKING=y -CONFIG_FSNOTIFY=y -CONFIG_DNOTIFY=y -CONFIG_INOTIFY=y -CONFIG_INOTIFY_USER=y -CONFIG_QUOTA=y -CONFIG_QUOTA_NETLINK_INTERFACE=y -CONFIG_PRINT_QUOTA_WARNING=y -CONFIG_QUOTA_TREE=m -CONFIG_QFMT_V1=m -CONFIG_QFMT_V2=m -CONFIG_QUOTACTL=y -CONFIG_AUTOFS_FS=m -CONFIG_AUTOFS4_FS=m -CONFIG_FUSE_FS=m -CONFIG_CUSE=m - -# -# Caches -# -# CONFIG_FSCACHE is not set - -# -# CD-ROM/DVD Filesystems -# -CONFIG_ISO9660_FS=m -CONFIG_JOLIET=y -CONFIG_ZISOFS=y -CONFIG_UDF_FS=m -CONFIG_UDF_NLS=y - -# -# DOS/FAT/NT Filesystems -# -CONFIG_FAT_FS=m -# CONFIG_MSDOS_FS is not set -CONFIG_VFAT_FS=m -CONFIG_FAT_DEFAULT_CODEPAGE=850 -CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" -# CONFIG_NTFS_FS is not set - -# -# Pseudo filesystems -# -CONFIG_PROC_FS=y -# CONFIG_PROC_KCORE is not set -CONFIG_PROC_SYSCTL=y -CONFIG_PROC_PAGE_MONITOR=y -CONFIG_SYSFS=y -CONFIG_TMPFS=y -# CONFIG_TMPFS_POSIX_ACL is not set -# CONFIG_HUGETLB_PAGE is not set -# CONFIG_CONFIGFS_FS is not set -CONFIG_MISC_FILESYSTEMS=y -# CONFIG_ADFS_FS is not set -# CONFIG_AFFS_FS is not set -CONFIG_ECRYPT_FS=m -# CONFIG_HFS_FS is not set -# CONFIG_HFSPLUS_FS is not set -# CONFIG_BEFS_FS is not set -# CONFIG_BFS_FS is not set -# CONFIG_EFS_FS is not set -CONFIG_JFFS2_FS=m -CONFIG_JFFS2_FS_DEBUG=0 -CONFIG_JFFS2_FS_WRITEBUFFER=y -# CONFIG_JFFS2_FS_WBUF_VERIFY is not set -# CONFIG_JFFS2_SUMMARY is not set -# CONFIG_JFFS2_FS_XATTR is not set -CONFIG_JFFS2_COMPRESSION_OPTIONS=y -CONFIG_JFFS2_ZLIB=y -# CONFIG_JFFS2_LZO is not set -CONFIG_JFFS2_RTIME=y -CONFIG_JFFS2_RUBIN=y -# CONFIG_JFFS2_CMODE_NONE is not set -CONFIG_JFFS2_CMODE_PRIORITY=y -# CONFIG_JFFS2_CMODE_SIZE is not set -# CONFIG_JFFS2_CMODE_FAVOURLZO is not set -# CONFIG_UBIFS_FS is not set -# CONFIG_CRAMFS is not set -# CONFIG_SQUASHFS is not set -# CONFIG_VXFS_FS is not set -# CONFIG_MINIX_FS is not set -# CONFIG_OMFS_FS is not set -# CONFIG_HPFS_FS is not set -# CONFIG_QNX4FS_FS is not set -# CONFIG_ROMFS_FS is not set -# CONFIG_SYSV_FS is not set -CONFIG_UFS_FS=m -# CONFIG_UFS_FS_WRITE is not set -# CONFIG_UFS_DEBUG is not set -# CONFIG_EXOFS_FS is not set -CONFIG_NETWORK_FILESYSTEMS=y -CONFIG_NFS_FS=m -CONFIG_NFS_V3=y -CONFIG_NFS_V3_ACL=y -CONFIG_NFS_V4=y -# CONFIG_NFS_V4_1 is not set -CONFIG_NFSD=m -CONFIG_NFSD_V2_ACL=y -CONFIG_NFSD_V3=y -CONFIG_NFSD_V3_ACL=y -# CONFIG_NFSD_V4 is not set -CONFIG_LOCKD=m -CONFIG_LOCKD_V4=y -CONFIG_EXPORTFS=m -CONFIG_NFS_ACL_SUPPORT=m -CONFIG_NFS_COMMON=y -CONFIG_SUNRPC=m -CONFIG_SUNRPC_GSS=m -CONFIG_RPCSEC_GSS_KRB5=m -# CONFIG_RPCSEC_GSS_SPKM3 is not set -CONFIG_SMB_FS=m -# CONFIG_SMB_NLS_DEFAULT is not set -CONFIG_CIFS=m -CONFIG_CIFS_STATS=y -CONFIG_CIFS_STATS2=y -# CONFIG_CIFS_WEAK_PW_HASH is not set -# CONFIG_CIFS_UPCALL is not set -CONFIG_CIFS_XATTR=y -CONFIG_CIFS_POSIX=y -# CONFIG_CIFS_DEBUG2 is not set -# CONFIG_CIFS_DFS_UPCALL is not set -# CONFIG_CIFS_EXPERIMENTAL is not set -# CONFIG_NCP_FS is not set -# CONFIG_CODA_FS is not set -# CONFIG_AFS_FS is not set - -# -# Partition Types -# -CONFIG_PARTITION_ADVANCED=y -# CONFIG_ACORN_PARTITION is not set -# CONFIG_OSF_PARTITION is not set -# CONFIG_AMIGA_PARTITION is not set -# CONFIG_ATARI_PARTITION is not set -# CONFIG_MAC_PARTITION is not set -CONFIG_MSDOS_PARTITION=y -CONFIG_BSD_DISKLABEL=y -# CONFIG_MINIX_SUBPARTITION is not set -# CONFIG_SOLARIS_X86_PARTITION is not set -# CONFIG_UNIXWARE_DISKLABEL is not set -CONFIG_LDM_PARTITION=y -# CONFIG_LDM_DEBUG is not set -# CONFIG_SGI_PARTITION is not set -# CONFIG_ULTRIX_PARTITION is not set -# CONFIG_SUN_PARTITION is not set -# CONFIG_KARMA_PARTITION is not set -CONFIG_EFI_PARTITION=y -# CONFIG_SYSV68_PARTITION is not set -CONFIG_NLS=y -CONFIG_NLS_DEFAULT="cp850" -# CONFIG_NLS_CODEPAGE_437 is not set -# CONFIG_NLS_CODEPAGE_737 is not set -# CONFIG_NLS_CODEPAGE_775 is not set -CONFIG_NLS_CODEPAGE_850=y -# CONFIG_NLS_CODEPAGE_852 is not set -# CONFIG_NLS_CODEPAGE_855 is not set -# CONFIG_NLS_CODEPAGE_857 is not set -# CONFIG_NLS_CODEPAGE_860 is not set -# CONFIG_NLS_CODEPAGE_861 is not set -# CONFIG_NLS_CODEPAGE_862 is not set -# CONFIG_NLS_CODEPAGE_863 is not set -# CONFIG_NLS_CODEPAGE_864 is not set -# CONFIG_NLS_CODEPAGE_865 is not set -# CONFIG_NLS_CODEPAGE_866 is not set -# CONFIG_NLS_CODEPAGE_869 is not set -# CONFIG_NLS_CODEPAGE_936 is not set -# CONFIG_NLS_CODEPAGE_950 is not set -# CONFIG_NLS_CODEPAGE_932 is not set -# CONFIG_NLS_CODEPAGE_949 is not set -# CONFIG_NLS_CODEPAGE_874 is not set -# CONFIG_NLS_ISO8859_8 is not set -# CONFIG_NLS_CODEPAGE_1250 is not set -# CONFIG_NLS_CODEPAGE_1251 is not set -# CONFIG_NLS_ASCII is not set -CONFIG_NLS_ISO8859_1=y -# CONFIG_NLS_ISO8859_2 is not set -# CONFIG_NLS_ISO8859_3 is not set -# CONFIG_NLS_ISO8859_4 is not set -# CONFIG_NLS_ISO8859_5 is not set -# CONFIG_NLS_ISO8859_6 is not set -# CONFIG_NLS_ISO8859_7 is not set -# CONFIG_NLS_ISO8859_9 is not set -# CONFIG_NLS_ISO8859_13 is not set -# CONFIG_NLS_ISO8859_14 is not set -# CONFIG_NLS_ISO8859_15 is not set -# CONFIG_NLS_KOI8_R is not set -# CONFIG_NLS_KOI8_U is not set -CONFIG_NLS_UTF8=y -# CONFIG_DLM is not set - -# -# Kernel hacking -# -CONFIG_TRACE_IRQFLAGS_SUPPORT=y -# CONFIG_PRINTK_TIME is not set -# CONFIG_ENABLE_WARN_DEPRECATED is not set -CONFIG_ENABLE_MUST_CHECK=y -CONFIG_FRAME_WARN=1024 -# CONFIG_MAGIC_SYSRQ is not set -CONFIG_STRIP_ASM_SYMS=y -# CONFIG_UNUSED_SYMBOLS is not set -# CONFIG_DEBUG_FS is not set -# CONFIG_HEADERS_CHECK is not set -CONFIG_DEBUG_KERNEL=y -# CONFIG_DEBUG_SHIRQ is not set -CONFIG_DETECT_SOFTLOCKUP=y -# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set -CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 -CONFIG_DETECT_HUNG_TASK=y -# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set -CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 -CONFIG_SCHED_DEBUG=y -# CONFIG_SCHEDSTATS is not set -CONFIG_TIMER_STATS=y -# CONFIG_DEBUG_OBJECTS is not set -# CONFIG_SLUB_DEBUG_ON is not set -# CONFIG_SLUB_STATS is not set -# CONFIG_DEBUG_KMEMLEAK is not set -# CONFIG_DEBUG_RT_MUTEXES is not set -# CONFIG_RT_MUTEX_TESTER is not set -# CONFIG_DEBUG_SPINLOCK is not set -# CONFIG_DEBUG_MUTEXES is not set -# CONFIG_DEBUG_LOCK_ALLOC is not set -# CONFIG_PROVE_LOCKING is not set -# CONFIG_LOCK_STAT is not set -# CONFIG_DEBUG_SPINLOCK_SLEEP is not set -# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set -# CONFIG_DEBUG_KOBJECT is not set -# CONFIG_DEBUG_HIGHMEM is not set -CONFIG_DEBUG_BUGVERBOSE=y -# CONFIG_DEBUG_INFO is not set -# CONFIG_DEBUG_VM is not set -# CONFIG_DEBUG_VIRTUAL is not set -# CONFIG_DEBUG_WRITECOUNT is not set -CONFIG_DEBUG_MEMORY_INIT=y -# CONFIG_DEBUG_LIST is not set -# CONFIG_DEBUG_SG is not set -# CONFIG_DEBUG_NOTIFIERS is not set -# CONFIG_DEBUG_CREDENTIALS is not set -CONFIG_ARCH_WANT_FRAME_POINTERS=y -# CONFIG_FRAME_POINTER is not set -# CONFIG_BOOT_PRINTK_DELAY is not set -# CONFIG_RCU_TORTURE_TEST is not set -# CONFIG_RCU_CPU_STALL_DETECTOR is not set -# CONFIG_BACKTRACE_SELF_TEST is not set -# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set -# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set -# CONFIG_FAULT_INJECTION is not set -# CONFIG_LATENCYTOP is not set -# CONFIG_SYSCTL_SYSCALL_CHECK is not set -# CONFIG_DEBUG_PAGEALLOC is not set -CONFIG_USER_STACKTRACE_SUPPORT=y -CONFIG_HAVE_FUNCTION_TRACER=y -CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y -CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y -CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y -CONFIG_HAVE_DYNAMIC_FTRACE=y -CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y -CONFIG_HAVE_SYSCALL_TRACEPOINTS=y -CONFIG_TRACING_SUPPORT=y -# CONFIG_FTRACE is not set -# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set -# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set -# CONFIG_DMA_API_DEBUG is not set -# CONFIG_SAMPLES is not set -CONFIG_HAVE_ARCH_KMEMCHECK=y -# CONFIG_KMEMCHECK is not set -# CONFIG_STRICT_DEVMEM is not set -CONFIG_EARLY_PRINTK=y -# CONFIG_EARLY_PRINTK_DBGP is not set -# CONFIG_DEBUG_STACKOVERFLOW is not set -# CONFIG_DEBUG_STACK_USAGE is not set -# CONFIG_DEBUG_PER_CPU_MAPS is not set -# CONFIG_X86_PTDUMP is not set -CONFIG_DEBUG_RODATA=y -CONFIG_DEBUG_RODATA_TEST=y -# CONFIG_DEBUG_NX_TEST is not set -# CONFIG_4KSTACKS is not set -# CONFIG_IOMMU_STRESS is not set -CONFIG_IO_DELAY_TYPE_0X80=0 -CONFIG_IO_DELAY_TYPE_0XED=1 -CONFIG_IO_DELAY_TYPE_UDELAY=2 -CONFIG_IO_DELAY_TYPE_NONE=3 -CONFIG_IO_DELAY_0X80=y -# CONFIG_IO_DELAY_0XED is not set -# CONFIG_IO_DELAY_UDELAY is not set -# CONFIG_IO_DELAY_NONE is not set -CONFIG_DEFAULT_IO_DELAY_TYPE=0 -# CONFIG_CPA_DEBUG is not set -# CONFIG_OPTIMIZE_INLINING is not set - -# -# Security options -# -CONFIG_KEYS=y -# CONFIG_KEYS_DEBUG_PROC_KEYS is not set -# CONFIG_SECURITY is not set -# CONFIG_SECURITYFS is not set -# CONFIG_SECURITY_FILE_CAPABILITIES is not set -# CONFIG_IMA is not set -CONFIG_XOR_BLOCKS=m -CONFIG_ASYNC_CORE=m -CONFIG_ASYNC_MEMCPY=m -CONFIG_ASYNC_XOR=m -CONFIG_ASYNC_PQ=m -CONFIG_ASYNC_RAID6_RECOV=m -CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y -CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y -CONFIG_CRYPTO=y - -# -# Crypto core or helper -# -CONFIG_CRYPTO_FIPS=y -CONFIG_CRYPTO_ALGAPI=y -CONFIG_CRYPTO_ALGAPI2=y -CONFIG_CRYPTO_AEAD=m -CONFIG_CRYPTO_AEAD2=y -CONFIG_CRYPTO_BLKCIPHER=m -CONFIG_CRYPTO_BLKCIPHER2=y -CONFIG_CRYPTO_HASH=y -CONFIG_CRYPTO_HASH2=y -CONFIG_CRYPTO_RNG=m -CONFIG_CRYPTO_RNG2=y -CONFIG_CRYPTO_PCOMP=y -CONFIG_CRYPTO_MANAGER=y -CONFIG_CRYPTO_MANAGER2=y -CONFIG_CRYPTO_GF128MUL=m -# CONFIG_CRYPTO_NULL is not set -CONFIG_CRYPTO_WORKQUEUE=y -CONFIG_CRYPTO_CRYPTD=m -CONFIG_CRYPTO_AUTHENC=m -# CONFIG_CRYPTO_TEST is not set - -# -# Authenticated Encryption with Associated Data -# -CONFIG_CRYPTO_CCM=m -CONFIG_CRYPTO_GCM=m -CONFIG_CRYPTO_SEQIV=m - -# -# Block modes -# -CONFIG_CRYPTO_CBC=m -CONFIG_CRYPTO_CTR=m -CONFIG_CRYPTO_CTS=m -CONFIG_CRYPTO_ECB=m -CONFIG_CRYPTO_LRW=m -CONFIG_CRYPTO_PCBC=m -CONFIG_CRYPTO_XTS=m - -# -# Hash modes -# -CONFIG_CRYPTO_HMAC=y -CONFIG_CRYPTO_XCBC=m -CONFIG_CRYPTO_VMAC=m - -# -# Digest -# -CONFIG_CRYPTO_CRC32C=m -CONFIG_CRYPTO_CRC32C_INTEL=m -CONFIG_CRYPTO_GHASH=m -# CONFIG_CRYPTO_MD4 is not set -CONFIG_CRYPTO_MD5=m -CONFIG_CRYPTO_MICHAEL_MIC=m -CONFIG_CRYPTO_RMD128=m -CONFIG_CRYPTO_RMD160=m -CONFIG_CRYPTO_RMD256=m -CONFIG_CRYPTO_RMD320=m -CONFIG_CRYPTO_SHA1=m -CONFIG_CRYPTO_SHA256=m -CONFIG_CRYPTO_SHA512=m -CONFIG_CRYPTO_TGR192=m -CONFIG_CRYPTO_WP512=m - -# -# Ciphers -# -CONFIG_CRYPTO_AES=m -CONFIG_CRYPTO_AES_586=m -CONFIG_CRYPTO_ANUBIS=m -CONFIG_CRYPTO_ARC4=m -CONFIG_CRYPTO_BLOWFISH=m -CONFIG_CRYPTO_CAMELLIA=m -CONFIG_CRYPTO_CAST5=m -CONFIG_CRYPTO_CAST6=m -CONFIG_CRYPTO_DES=m -CONFIG_CRYPTO_FCRYPT=m -CONFIG_CRYPTO_KHAZAD=m -CONFIG_CRYPTO_SALSA20=m -CONFIG_CRYPTO_SALSA20_586=m -CONFIG_CRYPTO_SEED=m -CONFIG_CRYPTO_SERPENT=m -CONFIG_CRYPTO_TEA=m -CONFIG_CRYPTO_TWOFISH=m -CONFIG_CRYPTO_TWOFISH_COMMON=m -CONFIG_CRYPTO_TWOFISH_586=m - -# -# Compression -# -CONFIG_CRYPTO_DEFLATE=y -CONFIG_CRYPTO_ZLIB=m -CONFIG_CRYPTO_LZO=m - -# -# Random Number Generation -# -CONFIG_CRYPTO_ANSI_CPRNG=m -CONFIG_CRYPTO_HW=y -CONFIG_CRYPTO_DEV_PADLOCK=m -CONFIG_CRYPTO_DEV_PADLOCK_AES=m -CONFIG_CRYPTO_DEV_PADLOCK_SHA=m -CONFIG_CRYPTO_DEV_GEODE=m -CONFIG_CRYPTO_DEV_HIFN_795X=m -CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y -# CONFIG_BINARY_PRINTF is not set - -# -# Library routines -# -CONFIG_BITREVERSE=y -CONFIG_GENERIC_FIND_FIRST_BIT=y -CONFIG_GENERIC_FIND_NEXT_BIT=y -CONFIG_GENERIC_FIND_LAST_BIT=y -CONFIG_CRC_CCITT=m -CONFIG_CRC16=m -CONFIG_CRC_T10DIF=m -CONFIG_CRC_ITU_T=m -CONFIG_CRC32=y -CONFIG_CRC7=m -CONFIG_LIBCRC32C=m -CONFIG_AUDIT_GENERIC=y -CONFIG_ZLIB_INFLATE=y -CONFIG_ZLIB_DEFLATE=y -CONFIG_LZO_COMPRESS=m -CONFIG_LZO_DECOMPRESS=m -CONFIG_DECOMPRESS_GZIP=y -CONFIG_DECOMPRESS_BZIP2=y -CONFIG_DECOMPRESS_LZMA=y -CONFIG_TEXTSEARCH=y -CONFIG_TEXTSEARCH_KMP=m -CONFIG_TEXTSEARCH_BM=m -CONFIG_TEXTSEARCH_FSM=m -CONFIG_HAS_IOMEM=y -CONFIG_HAS_IOPORT=y -CONFIG_HAS_DMA=y -CONFIG_CHECK_SIGNATURE=y -CONFIG_NLATTR=y diff --git a/config/menu/10-system.menu b/config/menu/10-system.menu index b56a1ec..5755366 100644 --- a/config/menu/10-system.menu +++ b/config/menu/10-system.menu @@ -40,6 +40,12 @@ 'title' => "$Lang::tr{'system information'}", 'enabled' => 1, }; + $subsystem->{'42.shutdown'} = { + 'caption' => $Lang::tr{'shutdown'}, + 'uri' => '/cgi-bin/shutdown.cgi', + 'title' => "$Lang::tr{'shutdown'}", + 'enabled' => 1, + }; $subsystem->{'99.credits'} = { 'caption' => $Lang::tr{'credits'}, 'uri' => '/cgi-bin/credits.cgi', diff --git a/config/menu/20-status.menu b/config/menu/20-status.menu index c0b780a..8899310 100644 --- a/config/menu/20-status.menu +++ b/config/menu/20-status.menu @@ -46,6 +46,12 @@ 'title' => "$Lang::tr{'hardware graphs'}", 'enabled' => 1, }; + $substatus->{'61.entropy'} = { + 'caption' => "$Lang::tr{'entropy'}", + 'uri' => '/cgi-bin/entropy.cgi', + 'title' => "$Lang::tr{'entropy graphs'}", + 'enabled' => 1, + }; $substatus->{'71.connections'} = { 'caption' => $Lang::tr{'connections'}, 'uri' => '/cgi-bin/connections.cgi', diff --git a/config/menu/40-services.menu b/config/menu/40-services.menu index 9901e8f..2f4d96e 100644 --- a/config/menu/40-services.menu +++ b/config/menu/40-services.menu @@ -1,5 +1,5 @@ $subservices->{'10.ipsec'} = { - 'caption' => 'IPSec', + 'caption' => $Lang::tr{'ipsec'}, 'uri' => '/cgi-bin/vpnmain.cgi', 'title' => "$Lang::tr{'virtual private networking'}", 'enabled' => 1, diff --git a/config/menu/50-firewall.menu b/config/menu/50-firewall.menu index de28f8e..ce6fd9d 100644 --- a/config/menu/50-firewall.menu +++ b/config/menu/50-firewall.menu @@ -1,52 +1,40 @@ - $subfirewall->{'10.dnat'} = { - 'caption' => $Lang::tr{'ssport forwarding'}, - 'uri' => '/cgi-bin/portfw.cgi', - 'title' => "$Lang::tr{'ssport forwarding'}", - 'enabled' => 1, - }; - $subfirewall->{'20.xtaccess'} = { - 'caption' => $Lang::tr{'external access'}, - 'uri' => '/cgi-bin/xtaccess.cgi', - 'title' => "$Lang::tr{'external access'}", - 'enabled' => 1, - }; - $subfirewall->{'30.wireless'} = { - 'caption' => $Lang::tr{'blue access'}, - 'uri' => '/cgi-bin/wireless.cgi', - 'title' => "$Lang::tr{'blue access'}", + $subfirewall->{'10.forward'} = { + 'caption' => $Lang::tr{'fwdfw menu'}, + 'uri' => '/cgi-bin/firewall.cgi', + 'title' => "$Lang::tr{'fwdfw menu'}", 'enabled' => 1, - }; - $subfirewall->{'40.dmz'} = { - 'caption' => $Lang::tr{'ssdmz pinholes'}, - 'uri' => '/cgi-bin/dmzholes.cgi', - 'title' => "$Lang::tr{'dmz pinhole configuration'}", + }; + $subfirewall->{'20.fwhost'} = { + 'caption' => $Lang::tr{'fwhost menu'}, + 'uri' => '/cgi-bin/fwhosts.cgi', + 'title' => "$Lang::tr{'fwhost menu'}", 'enabled' => 1, - }; - $subfirewall->{'50.outgoing'} = { - 'caption' => $Lang::tr{'outgoing firewall'}, - 'uri' => '/cgi-bin/outgoingfw.cgi', - 'title' => "$Lang::tr{'outgoing firewall'}", + }; + $subfirewall->{'30.optionsfw'} = { + 'caption' => $Lang::tr{'options fw'}, + 'uri' => '/cgi-bin/optionsfw.cgi', + 'title' => "$Lang::tr{'options fw'}", 'enabled' => 1, }; - $subfirewall->{'51.outgoinggrp'} = { - 'caption' => $Lang::tr{'outgoing firewall groups'}, - 'uri' => '/cgi-bin/outgoinggrp.cgi', - 'title' => "$Lang::tr{'outgoing firewall groups'}", + $subfirewall->{'40.p2p'} = { + 'caption' => $Lang::tr{'p2p block'}, + 'uri' => '/cgi-bin/p2p-block.cgi', + 'title' => "P2P-Block", 'enabled' => 1, }; - $subfirewall->{'60.upnp'} = { + $subfirewall->{'60.wireless'} = { + 'caption' => $Lang::tr{'blue access'}, + 'uri' => '/cgi-bin/wireless.cgi', + 'title' => "$Lang::tr{'blue access'}", + 'enabled' => 1, + }; + $subfirewall->{'70.upnp'} = { 'caption' => 'UPnP', 'uri' => '/cgi-bin/upnp.cgi', 'title' => "Universal Plug and Play", 'enabled' => 0, }; - $subfirewall->{'60.optingsfw'} = { - 'caption' => $Lang::tr{'options fw'}, - 'uri' => '/cgi-bin/optionsfw.cgi', - 'title' => "$Lang::tr{'options fw'}", - 'enabled' => 1, - }; - $subfirewall->{'70.iptables'} = { + $subfirewall->{'90.iptables'} = { 'caption' => $Lang::tr{'ipts'}, 'uri' => '/cgi-bin/iptables.cgi', 'title' => "$Lang::tr{'ipts'}", diff --git a/config/outgoingfw/defaultservices b/config/outgoingfw/defaultservices deleted file mode 100644 index f2cf475..0000000 --- a/config/outgoingfw/defaultservices +++ /dev/null @@ -1,34 +0,0 @@ -bootpc,68,tcp&udp,Bootstrap Protocol Client -bootps,67,tcp&udp,Bootstrap Protocol Server -domain,53,tcp&udp,Domain Name Server -echo,7,tcp&udp,Echo -ftp,21,tcp&udp,File Transfer Control -ftp-data,20,tcp&udp,File Control Data -http,80,tcp,Hypertext Transfer Protocol -https,443,tcp,secure HTTP -imap,143,tcp,Interactive Mail Access Protocol -imap3,220,tcp,Interactive Mail Access Protocol v3 -imaps,993,tcp,secure IMAP -ipfire-https,444,tcp,IPFire HTTPS -ipfire-ssh,222,tcp&udp,IPFire SSH -irc,194,tcp&udp,Internet Relay Chat -ircd,6667,tcp&udp,Internet Relay Chat -microsoft-ds,445,tcp&udp,Netbios Filesharing -nameserver,42,tcp&udp,Host Name Server -netbios-dgm,138,tcp&udp,NETBIOS Datagram Service -netbios-ns,137,tcp&udp,NETBIOS Name Server -netbios-ssn,139,tcp&udp,NETBIOS Session Service -nfs,2049,tcp&udp,Network File System -ntp,123,udp,Network Time Protocol -pop3,110,tcp,POP3 Email -pop3s,995,tcp,secure POP3 Email -sftp,115,tcp&udp,secure File Transfer Protocol -smtp,25,tcp,Simple Mail Transfer Protocol -smtps,465,tcp,secure Simple Mail Transfer Protocol -snmp,161,tcp&udp,Simple Network Management -snmptrap,162,udp,SNMP Trap -ssh,22,tcp&udp,SSH -telnet,23,tcp&udp,Telnet -tftp,69,tcp&udp,Trivial File Transfer -time,37,tcp&udp,Time -wins,1512,tcp&udp,Windows Internet Name Service diff --git a/config/outgoingfw/outgoingfw.pl b/config/outgoingfw/outgoingfw.pl deleted file mode 100644 index 1208567..0000000 --- a/config/outgoingfw/outgoingfw.pl +++ /dev/null @@ -1,286 +0,0 @@ -#!/usr/bin/perl -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - - -use strict; -# enable only the following on debugging purpose -#use warnings; - -require '/var/ipfire/general-functions.pl'; -require "${General::swroot}/lang.pl"; - -my %outfwsettings = (); -my %checked = (); -my %selected= () ; -my %netsettings = (); -my $errormessage = ""; -my $configentry = ""; -my @configs = (); -my @configline = (); -my $p2pentry = ""; -my @p2ps = (); -my @p2pline = (); -my $CMD = ""; -my $P2PSTRING = ""; - -my $DEBUG = 0; - -my $configfile = "/var/ipfire/outgoing/rules"; -my $p2pfile = "/var/ipfire/outgoing/p2protocols"; - -### Values that have to be initialized -$outfwsettings{'ACTION'} = ''; -$outfwsettings{'VALID'} = 'yes'; -$outfwsettings{'EDIT'} = 'no'; -$outfwsettings{'NAME'} = ''; -$outfwsettings{'SNET'} = ''; -$outfwsettings{'SIP'} = ''; -$outfwsettings{'SPORT'} = ''; -$outfwsettings{'SMAC'} = ''; -$outfwsettings{'DIP'} = ''; -$outfwsettings{'DPORT'} = ''; -$outfwsettings{'PROT'} = ''; -$outfwsettings{'STATE'} = ''; -$outfwsettings{'DISPLAY_DIP'} = ''; -$outfwsettings{'DISPLAY_DPORT'} = ''; -$outfwsettings{'DISPLAY_SMAC'} = ''; -$outfwsettings{'DISPLAY_SIP'} = ''; -$outfwsettings{'POLICY'} = 'MODE0'; - -my @SOURCE = ""; -my $SOURCE = ""; -my $DESTINATION = ""; -my @PROTO = ""; -my $PROTO = ""; -my $DPORT = ""; -my $DEV = ""; -my $MAC = ""; -my $DO = ""; -my $DAY = ""; - -# read files -&General::readhash("${General::swroot}/outgoing/settings", %outfwsettings); -&General::readhash("${General::swroot}/ethernet/settings", %netsettings); - -$netsettings{'RED_DEV'}=`cat /var/ipfire/red/iface`; -$netsettings{'RED_IP'}=`cat /var/ipfire/red/local-ipaddress`; - -open( FILE, "< $configfile" ) or die "Unable to read $configfile"; -@configs = <FILE>; -close FILE; - -if ( $outfwsettings{'POLICY'} eq 'MODE1' ) { - $outfwsettings{'STATE'} = "ALLOW"; - $DO = "RETURN"; -} elsif ( $outfwsettings{'POLICY'} eq 'MODE2' ) { - $outfwsettings{'STATE'} = "DENY"; - $DO = "DROP -m comment --comment 'DROP_OUTGOINGFW '"; -} - -### Initialize IPTables -system("/sbin/iptables --flush OUTGOINGFW >/dev/null 2>&1"); -system("/sbin/iptables --delete-chain OUTGOINGFW >/dev/null 2>&1"); -system("/sbin/iptables -N OUTGOINGFW >/dev/null 2>&1"); - -system("/sbin/iptables --flush OUTGOINGFWMAC >/dev/null 2>&1"); -system("/sbin/iptables --delete-chain OUTGOINGFWMAC >/dev/null 2>&1"); -system("/sbin/iptables -N OUTGOINGFWMAC >/dev/null 2>&1"); - -if ( $outfwsettings{'POLICY'} eq 'MODE0' ) { - &firewall_local_reload(); - exit 0 -} - -if ( $outfwsettings{'POLICY'} eq 'MODE1' ) { - $CMD = "/sbin/iptables -A OUTGOINGFW -m state --state ESTABLISHED,RELATED -j RETURN"; - if ($DEBUG) { print "$CMD\n"; } else { system("$CMD"); } - $CMD = "/sbin/iptables -A OUTGOINGFWMAC -m state --state ESTABLISHED,RELATED -j RETURN"; - if ($DEBUG) { print "$CMD\n"; } else { system("$CMD"); } - $CMD = "/sbin/iptables -A OUTGOINGFW -p icmp -j RETURN"; - if ($DEBUG) { print "$CMD\n"; } else { system("$CMD"); } - $CMD = "/sbin/iptables -A OUTGOINGFWMAC -p icmp -j RETURN"; - if ($DEBUG) { print "$CMD\n"; } else { system("$CMD"); } -} - -foreach $configentry (sort @configs) -{ - @SOURCE = ""; - $DESTINATION = ""; - $PROTO = ""; - $DPORT = ""; - $DEV = ""; - $MAC = ""; - @configline = split( /;/, $configentry ); - - if ($outfwsettings{'STATE'} eq $configline[0]) { - if ($configline[2] eq 'green') { - @SOURCE = ("$netsettings{'GREEN_NETADDRESS'}/$netsettings{'GREEN_NETMASK'}"); - $DEV = $netsettings{'GREEN_DEV'}; - } elsif ($configline[2] eq 'red') { - @SOURCE = ("$netsettings{'RED_IP'}"); - $DEV = ""; - } elsif ($configline[2] eq 'blue') { - @SOURCE = ("$netsettings{'BLUE_NETADDRESS'}/$netsettings{'BLUE_NETMASK'}"); - $DEV = $netsettings{'BLUE_DEV'}; - } elsif ($configline[2] eq 'orange') { - @SOURCE = ("$netsettings{'ORANGE_NETADDRESS'}/$netsettings{'ORANGE_NETMASK'}"); - $DEV = $netsettings{'ORANGE_DEV'}; - } elsif ($configline[2] eq 'ipsec') { - @SOURCE = ""; - $DEV = "ipsec+"; - } elsif ($configline[2] eq 'ovpn') { - @SOURCE = ""; - $DEV = "tun+"; - } elsif ($configline[2] eq 'ip') { - @SOURCE = ("$configline[5]"); - $DEV = ""; - } elsif ($configline[2] eq 'mac') { - @SOURCE = ("$configline[6]"); - $DEV = ""; - } elsif ($configline[2] eq 'all') { - @SOURCE = ("0/0"); - $DEV = ""; - } else { - if ( -e "/var/ipfire/outgoing/groups/ipgroups/$configline[2]" ) { - @SOURCE = `cat /var/ipfire/outgoing/groups/ipgroups/$configline[2]`; - } elsif ( -e "/var/ipfire/outgoing/groups/macgroups/$configline[2]" ) { - @SOURCE = `cat /var/ipfire/outgoing/groups/macgroups/$configline[2]`; - $configline[2] = "mac"; - } - $DEV = ""; - } - - if ($configline[7]) { $DESTINATION = "$configline[7]"; } else { $DESTINATION = "0/0"; } - - if ($configline[3] eq 'tcp') { - @PROTO = ("tcp"); - } elsif ($configline[3] eq 'udp') { - @PROTO = ("udp"); - } elsif ($configline[3] eq 'esp') { - @PROTO = ("esp"); - } elsif ($configline[3] eq 'gre') { - @PROTO = ("gre"); - } else { - @PROTO = ("tcp","udp"); - } - - my $macrule = 0; - foreach $PROTO (@PROTO){ - foreach $SOURCE (@SOURCE) { - $SOURCE =~ s/\s//gi; - - if ( $SOURCE eq "" || $configline[1] eq "" ){next;} - - if ( ( $configline[6] ne "" || $configline[2] eq 'mac' ) && $configline[2] ne 'all'){ - $SOURCE =~ s/[^a-zA-Z0-9]/:/gi; - $CMD = "-m mac --mac-source $SOURCE -d $DESTINATION -p $PROTO"; - $macrule = 1; - } else { - $CMD = "-s $SOURCE -d $DESTINATION -p $PROTO"; - } - - if ($configline[8] && ( $configline[3] ne 'esp' || $configline[3] ne 'gre') ) { - $DPORT = "$configline[8]"; - $CMD = "$CMD -m multiport --destination-port $DPORT"; - } - - if ($DEV) { - $CMD = "$CMD -i $DEV"; - } - - if ($configline[17] && $configline[18]) { - $DAY = ""; - if ($configline[10]){$DAY = "Mon,"} - if ($configline[11]){$DAY .= "Tue,"} - if ($configline[12]){$DAY .= "Wed,"} - if ($configline[13]){$DAY .= "Thu,"} - if ($configline[14]){$DAY .= "Fri,"} - if ($configline[15]){$DAY .= "Sat,"} - if ($configline[16]){$DAY .= "Sun"} - $CMD = "$CMD -m time --timestart $configline[17] --timestop $configline[18] --weekdays $DAY"; - } - - $CMD = "$CMD -o $netsettings{'RED_DEV'}"; - - if ( $configline[9] eq $Lang::tr{'aktiv'} && $outfwsettings{'POLICY'} eq 'MODE1' ) { - applyrule("$CMD -m limit --limit 10/minute -j LOG --log-prefix 'LOG_OUTGOINGFW '", $macrule); - } elsif ( $configline[9] eq $Lang::tr{'aktiv'} && $outfwsettings{'POLICY'} eq 'MODE2' ) { - applyrule("$CMD -m limit --limit 10/minute -j LOG --log-prefix 'DROP_OUTGOINGFW '", $macrule); - } - - applyrule("$CMD -j $DO", $macrule); - } - } - } -} - -### Do the P2P-Stuff here -open( FILE, "< $p2pfile" ) or die "Unable to read $p2pfile"; -@p2ps = <FILE>; -close FILE; - -$CMD = "-m ipp2p"; - -foreach $p2pentry (sort @p2ps) { - @p2pline = split( /;/, $p2pentry ); - if ( $outfwsettings{'POLICY'} eq 'MODE2' ) { - $DO = "DROP"; - if ("$p2pline[2]" eq "off") { - $P2PSTRING = "$P2PSTRING --$p2pline[1]"; - } - } else { - $DO = "RETURN"; - if ("$p2pline[2]" eq "on") { - $P2PSTRING = "$P2PSTRING --$p2pline[1]"; - } - } -} -if ($P2PSTRING) { - applyrule("$CMD $P2PSTRING -j $DO", 0); -} - -if ( $outfwsettings{'POLICY'} eq 'MODE1' ) { - if ( $outfwsettings{'MODE1LOG'} eq 'on' ) { - applyrule("-o $netsettings{'RED_DEV'} -m limit --limit 10/minute -j LOG --log-prefix 'DROP_OUTGOINGFW '", 0); - } - - applyrule("-o $netsettings{'RED_DEV'} -j DROP -m comment --comment 'DROP_OUTGOINGFW '", 0); -} - -&firewall_local_reload(); - -sub applyrule($$) { - my $cmd = shift; - my $macrule = shift; - - system("/sbin/iptables -A OUTGOINGFWMAC $cmd"); - if ($macrule == 0) { - system("/sbin/iptables -A OUTGOINGFW $cmd"); - } -} - -sub firewall_local_reload() { - my $script = "/etc/sysconfig/firewall.local"; - - if ( -x $script ) { - system("$script reload >/dev/null 2>&1"); - } -} diff --git a/config/ovpn/settings b/config/ovpn/settings index e69de29..b78fc32 100644 --- a/config/ovpn/settings +++ b/config/ovpn/settings @@ -0,0 +1,6 @@ +ENABLED=off +ENABLED_BLUE=off +ENABLED_ORANGE=off +DDEST_PORT=1149 +DPROTOCOL=udp +VPN_IP= diff --git a/config/rootfiles/common/Net_SSLeay b/config/rootfiles/common/Net_SSLeay index 63002ef..8d5ee2a 100644 --- a/config/rootfiles/common/Net_SSLeay +++ b/config/rootfiles/common/Net_SSLeay @@ -1,5 +1,6 @@ #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/Net/SSLeay usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/Net/SSLeay.pm +#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/Net/SSLeay.pod usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/Net/SSLeay/Handle.pm #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Net/SSLeay #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Net/SSLeay/.packlist @@ -36,6 +37,7 @@ usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Net/SSLeay/head_h usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Net/SSLeay/http_cat.al usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Net/SSLeay/https_cat.al usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Net/SSLeay/httpx_cat.al +usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Net/SSLeay/initialize.al usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Net/SSLeay/make_form.al usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Net/SSLeay/make_headers.al usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Net/SSLeay/new_x_ctx.al diff --git a/config/rootfiles/common/apache2 b/config/rootfiles/common/apache2 index c18b5ed..092a16f 100644 --- a/config/rootfiles/common/apache2 +++ b/config/rootfiles/common/apache2 @@ -606,6 +606,7 @@ etc/httpd/conf/mime.types #srv/web/ipfire/manual/mod/mod_authz_groupfile.html.ko.euc-kr #srv/web/ipfire/manual/mod/mod_authz_host.html #srv/web/ipfire/manual/mod/mod_authz_host.html.en +#srv/web/ipfire/manual/mod/mod_authz_host.html.fr #srv/web/ipfire/manual/mod/mod_authz_host.html.ja.utf8 #srv/web/ipfire/manual/mod/mod_authz_host.html.ko.euc-kr #srv/web/ipfire/manual/mod/mod_authz_owner.html @@ -1330,12 +1331,12 @@ usr/lib/apr-util-1/apr_dbd_sqlite3.so #usr/lib/libapr-1.la usr/lib/libapr-1.so usr/lib/libapr-1.so.0 -usr/lib/libapr-1.so.0.4.6 +usr/lib/libapr-1.so.0.4.8 #usr/lib/libaprutil-1.a #usr/lib/libaprutil-1.la usr/lib/libaprutil-1.so usr/lib/libaprutil-1.so.0 -usr/lib/libaprutil-1.so.0.4.1 +usr/lib/libaprutil-1.so.0.5.2 #usr/lib/pkgconfig/apr-1.pc #usr/lib/pkgconfig/apr-util-1.pc #usr/sbin/ab @@ -1391,9 +1392,12 @@ srv/web/ipfire/cgi-bin/dns.cgi srv/web/ipfire/cgi-bin/dnsforward.cgi srv/web/ipfire/cgi-bin/ddns.cgi srv/web/ipfire/cgi-bin/dhcp.cgi -srv/web/ipfire/cgi-bin/dmzholes.cgi +srv/web/ipfire/cgi-bin/entropy.cgi srv/web/ipfire/cgi-bin/extrahd.cgi srv/web/ipfire/cgi-bin/fireinfo.cgi +srv/web/ipfire/cgi-bin/firewall.cgi +srv/web/ipfire/cgi-bin/fwhosts.cgi +srv/web/ipfire/cgi-bin/gpl.cgi srv/web/ipfire/cgi-bin/gui.cgi srv/web/ipfire/cgi-bin/hardwaregraphs.cgi srv/web/ipfire/cgi-bin/hosts.cgi @@ -1409,18 +1413,17 @@ srv/web/ipfire/cgi-bin/modem.cgi srv/web/ipfire/cgi-bin/netexternal.cgi srv/web/ipfire/cgi-bin/netinternal.cgi srv/web/ipfire/cgi-bin/netother.cgi -srv/web/ipfire/cgi-bin/outgoingfw.cgi -srv/web/ipfire/cgi-bin/outgoinggrp.cgi srv/web/ipfire/cgi-bin/optionsfw.cgi srv/web/ipfire/cgi-bin/ovpnmain.cgi +srv/web/ipfire/cgi-bin/p2p-block.cgi srv/web/ipfire/cgi-bin/pakfire.cgi -srv/web/ipfire/cgi-bin/portfw.cgi srv/web/ipfire/cgi-bin/pppsetup.cgi srv/web/ipfire/cgi-bin/proxy.cgi srv/web/ipfire/cgi-bin/qos.cgi srv/web/ipfire/cgi-bin/remote.cgi srv/web/ipfire/cgi-bin/routing.cgi srv/web/ipfire/cgi-bin/services.cgi +srv/web/ipfire/cgi-bin/shutdown.cgi srv/web/ipfire/cgi-bin/speed.cgi srv/web/ipfire/cgi-bin/system.cgi srv/web/ipfire/cgi-bin/time.cgi @@ -1433,6 +1436,5 @@ srv/web/ipfire/cgi-bin/wakeonlan.cgi srv/web/ipfire/cgi-bin/webaccess.cgi srv/web/ipfire/cgi-bin/wireless.cgi srv/web/ipfire/cgi-bin/wirelessclient.cgi -srv/web/ipfire/cgi-bin/xtaccess.cgi srv/web/ipfire/html var/updatecache diff --git a/config/rootfiles/common/armv5tel/dracut b/config/rootfiles/common/armv5tel/dracut index 4d4ed18..9c41aba 100644 --- a/config/rootfiles/common/armv5tel/dracut +++ b/config/rootfiles/common/armv5tel/dracut @@ -1,7 +1,7 @@ #boot/ipfirerd-KVER-kirkwood.img -#boot/ipfirerd-KVER-omap.img +#boot/ipfirerd-KVER-multi.img #boot/uInit-ipfire-kirkwood -#boot/uInit-ipfire-omap +#boot/uInit-ipfire-multi etc/dracut.conf etc/dracut.conf.d #etc/dracut.conf.d/dracut.conf @@ -10,7 +10,6 @@ sbin/dracut-catimages sbin/dracut-gencmdline sbin/lsinitrd sbin/mkinitrd -sbin/switch_root usr/share/dracut usr/share/dracut/dracut-functions usr/share/dracut/modules.d @@ -55,6 +54,7 @@ usr/share/dracut/modules.d/99base/check usr/share/dracut/modules.d/99base/dracut-lib.sh usr/share/dracut/modules.d/99base/init usr/share/dracut/modules.d/99base/initqueue +#usr/share/dracut/modules.d/99base/init~ usr/share/dracut/modules.d/99base/install usr/share/dracut/modules.d/99base/loginit usr/share/dracut/modules.d/99base/parse-blacklist.sh @@ -63,3 +63,4 @@ usr/share/dracut/modules.d/99base/parse-root-opts.sh #usr/share/man/man8/dracut-catimages.8 #usr/share/man/man8/dracut-gencmdline.8 #usr/share/man/man8/dracut.8 +sbin/switch_root diff --git a/config/rootfiles/common/armv5tel/glibc b/config/rootfiles/common/armv5tel/glibc index 2810389..5453861 100644 --- a/config/rootfiles/common/armv5tel/glibc +++ b/config/rootfiles/common/armv5tel/glibc @@ -48,8 +48,8 @@ sbin/ldconfig #sbin/sln #usr/bin/catchsegv #usr/bin/gencat -#usr/bin/getconf -#usr/bin/getent +usr/bin/getconf +usr/bin/getent #usr/bin/iconv usr/bin/ldd usr/bin/locale diff --git a/config/rootfiles/common/armv5tel/initscripts b/config/rootfiles/common/armv5tel/initscripts index 25fca8d..4716b97 100644 --- a/config/rootfiles/common/armv5tel/initscripts +++ b/config/rootfiles/common/armv5tel/initscripts @@ -74,25 +74,20 @@ etc/rc.d/init.d/networking/red.down/10-ipsec etc/rc.d/init.d/networking/red.down/10-miniupnpd etc/rc.d/init.d/networking/red.down/10-ovpn etc/rc.d/init.d/networking/red.down/20-RL-firewall -etc/rc.d/init.d/networking/red.down/99-D-dialctrl.pl #etc/rc.d/init.d/networking/red.up etc/rc.d/init.d/networking/red.up/01-conntrack-cleanup etc/rc.d/init.d/networking/red.up/05-RS-dnsmasq etc/rc.d/init.d/networking/red.up/10-miniupnpd etc/rc.d/init.d/networking/red.up/10-multicast etc/rc.d/init.d/networking/red.up/20-RL-firewall -etc/rc.d/init.d/networking/red.up/22-outgoingfwctrl etc/rc.d/init.d/networking/red.up/23-RS-snort etc/rc.d/init.d/networking/red.up/24-RS-qos -etc/rc.d/init.d/networking/red.up/25-portfw -etc/rc.d/init.d/networking/red.up/26-xtaccess etc/rc.d/init.d/networking/red.up/27-RS-squid etc/rc.d/init.d/networking/red.up/30-ddns etc/rc.d/init.d/networking/red.up/40-ipac etc/rc.d/init.d/networking/red.up/50-ipsec etc/rc.d/init.d/networking/red.up/50-ovpn etc/rc.d/init.d/networking/red.up/98-leds -etc/rc.d/init.d/networking/red.up/99-U-dialctrl.pl etc/rc.d/init.d/networking/red.up/99-fireinfo etc/rc.d/init.d/networking/red.up/99-pakfire-update etc/rc.d/init.d/networking/wpa_supplicant.exe @@ -108,6 +103,7 @@ etc/rc.d/init.d/fsresize etc/rc.d/init.d/random etc/rc.d/init.d/rc etc/rc.d/init.d/reboot +etc/rc.d/init.d/rngd #etc/rc.d/init.d/samba #etc/rc.d/init.d/sane etc/rc.d/init.d/sendsignals @@ -213,6 +209,7 @@ etc/rc.d/rc6.d/S90localnet etc/rc.d/rc6.d/S99reboot #etc/rc.d/rcsysinit.d etc/rc.d/rcsysinit.d/S00mountkernfs +etc/rc.d/rcsysinit.d/S01sysctl etc/rc.d/rcsysinit.d/S05modules etc/rc.d/rcsysinit.d/S10udev etc/rc.d/rcsysinit.d/S19waitdrives @@ -225,8 +222,9 @@ etc/rc.d/rcsysinit.d/S60setclock etc/rc.d/rcsysinit.d/S70console etc/rc.d/rcsysinit.d/S75firstsetup etc/rc.d/rcsysinit.d/S80localnet -etc/rc.d/rcsysinit.d/S90sysctl +etc/rc.d/rcsysinit.d/S85firewall etc/rc.d/rcsysinit.d/S91network-vlans +etc/rc.d/rcsysinit.d/S92rngd etc/rc.d/rc3.d/S15fireinfo #etc/sysconfig etc/sysconfig/createfiles diff --git a/config/rootfiles/common/armv5tel/installer b/config/rootfiles/common/armv5tel/installer deleted file mode 100644 index ef5e901..0000000 --- a/config/rootfiles/common/armv5tel/installer +++ /dev/null @@ -1,3 +0,0 @@ -#etc/system-release -#opt/pakfire/db/core/mine -#var/ipfire/firebuild diff --git a/config/rootfiles/common/armv5tel/linux b/config/rootfiles/common/armv5tel/linux index 2206ce3..8c4c97f 100644 --- a/config/rootfiles/common/armv5tel/linux +++ b/config/rootfiles/common/armv5tel/linux @@ -1,4 +1,4 @@ -etc/modprobe.d/framebuffer -etc/modprobe.d/ipv6 -etc/modprobe.d/isdn +etc/modprobe.d/framebuffer.conf +etc/modprobe.d/ipv6.conf +etc/modprobe.d/isdn.conf sbin/gen_init_cpio diff --git a/config/rootfiles/common/armv5tel/linux-headers b/config/rootfiles/common/armv5tel/linux-headers index 3b8dd3a..b9040c3 100644 --- a/config/rootfiles/common/armv5tel/linux-headers +++ b/config/rootfiles/common/armv5tel/linux-headers @@ -10,6 +10,7 @@ #usr/include/asm-generic/ioctl.h #usr/include/asm-generic/ioctls.h #usr/include/asm-generic/ipcbuf.h +#usr/include/asm-generic/kvm_para.h #usr/include/asm-generic/mman-common.h #usr/include/asm-generic/mman.h #usr/include/asm-generic/msgbuf.h @@ -34,7 +35,6 @@ #usr/include/asm-generic/types.h #usr/include/asm-generic/ucontext.h #usr/include/asm-generic/unistd.h -#usr/include/asm/a.out.h #usr/include/asm/auxvec.h #usr/include/asm/bitsperlong.h #usr/include/asm/byteorder.h @@ -44,6 +44,8 @@ #usr/include/asm/ioctl.h #usr/include/asm/ioctls.h #usr/include/asm/ipcbuf.h +#usr/include/asm/kvm.h +#usr/include/asm/kvm_para.h #usr/include/asm/mman.h #usr/include/asm/msgbuf.h #usr/include/asm/param.h @@ -68,20 +70,23 @@ #usr/include/asm/unistd.h #usr/include/drm #usr/include/drm/drm.h +#usr/include/drm/drm_fourcc.h #usr/include/drm/drm_mode.h #usr/include/drm/drm_sarea.h +#usr/include/drm/exynos_drm.h #usr/include/drm/i810_drm.h #usr/include/drm/i915_drm.h #usr/include/drm/mga_drm.h #usr/include/drm/nouveau_drm.h +#usr/include/drm/qxl_drm.h #usr/include/drm/r128_drm.h #usr/include/drm/radeon_drm.h #usr/include/drm/savage_drm.h #usr/include/drm/sis_drm.h +#usr/include/drm/tegra_drm.h #usr/include/drm/via_drm.h #usr/include/drm/vmwgfx_drm.h #usr/include/linux -#usr/include/linux/a.out.h #usr/include/linux/acct.h #usr/include/linux/adb.h #usr/include/linux/adfs_fs.h @@ -118,11 +123,11 @@ #usr/include/linux/baycom.h #usr/include/linux/bfs_fs.h #usr/include/linux/binfmts.h -#usr/include/linux/blk_types.h #usr/include/linux/blkpg.h #usr/include/linux/blktrace_api.h #usr/include/linux/bpqether.h #usr/include/linux/bsg.h +#usr/include/linux/btrfs.h #usr/include/linux/byteorder #usr/include/linux/byteorder/big_endian.h #usr/include/linux/byteorder/little_endian.h @@ -140,7 +145,6 @@ #usr/include/linux/capi.h #usr/include/linux/cciss_defs.h #usr/include/linux/cciss_ioctl.h -#usr/include/linux/cdk.h #usr/include/linux/cdrom.h #usr/include/linux/cgroupstats.h #usr/include/linux/chio.h @@ -149,7 +153,6 @@ #usr/include/linux/coda.h #usr/include/linux/coda_psdev.h #usr/include/linux/coff.h -#usr/include/linux/comstats.h #usr/include/linux/connector.h #usr/include/linux/const.h #usr/include/linux/cramfs_fs.h @@ -186,7 +189,6 @@ #usr/include/linux/errqueue.h #usr/include/linux/ethtool.h #usr/include/linux/eventpoll.h -#usr/include/linux/ext2_fs.h #usr/include/linux/fadvise.h #usr/include/linux/falloc.h #usr/include/linux/fanotify.h @@ -206,7 +208,6 @@ #usr/include/linux/futex.h #usr/include/linux/gameport.h #usr/include/linux/gen_stats.h -#usr/include/linux/generic_serial.h #usr/include/linux/genetlink.h #usr/include/linux/gfs2_ondisk.h #usr/include/linux/gigaset_dev.h @@ -219,6 +220,9 @@ #usr/include/linux/hiddev.h #usr/include/linux/hidraw.h #usr/include/linux/hpet.h +#usr/include/linux/hsi +#usr/include/linux/hsi/hsi_char.h +#usr/include/linux/hw_breakpoint.h #usr/include/linux/hysdn_if.h #usr/include/linux/i2c-dev.h #usr/include/linux/i2c.h @@ -235,7 +239,6 @@ #usr/include/linux/if_bonding.h #usr/include/linux/if_bridge.h #usr/include/linux/if_cablemodem.h -#usr/include/linux/if_ec.h #usr/include/linux/if_eql.h #usr/include/linux/if_ether.h #usr/include/linux/if_fc.h @@ -252,8 +255,7 @@ #usr/include/linux/if_pppol2tp.h #usr/include/linux/if_pppox.h #usr/include/linux/if_slip.h -#usr/include/linux/if_strip.h -#usr/include/linux/if_tr.h +#usr/include/linux/if_team.h #usr/include/linux/if_tun.h #usr/include/linux/if_tunnel.h #usr/include/linux/if_vlan.h @@ -295,8 +297,11 @@ #usr/include/linux/kernel-page-flags.h #usr/include/linux/kernel.h #usr/include/linux/kernelcapi.h +#usr/include/linux/kexec.h #usr/include/linux/keyboard.h #usr/include/linux/keyctl.h +#usr/include/linux/kvm.h +#usr/include/linux/kvm_para.h #usr/include/linux/l2tp.h #usr/include/linux/limits.h #usr/include/linux/llc.h @@ -306,7 +311,9 @@ #usr/include/linux/major.h #usr/include/linux/map_to_7segment.h #usr/include/linux/matroxfb.h +#usr/include/linux/mdio.h #usr/include/linux/media.h +#usr/include/linux/mei.h #usr/include/linux/mempolicy.h #usr/include/linux/meye.h #usr/include/linux/mii.h @@ -331,6 +338,7 @@ #usr/include/linux/net.h #usr/include/linux/net_dropmon.h #usr/include/linux/net_tstamp.h +#usr/include/linux/netconf.h #usr/include/linux/netdevice.h #usr/include/linux/netfilter #usr/include/linux/netfilter.h @@ -344,9 +352,13 @@ #usr/include/linux/netfilter/nf_conntrack_sctp.h #usr/include/linux/netfilter/nf_conntrack_tcp.h #usr/include/linux/netfilter/nf_conntrack_tuple_common.h +#usr/include/linux/netfilter/nf_nat.h #usr/include/linux/netfilter/nfnetlink.h +#usr/include/linux/netfilter/nfnetlink_acct.h #usr/include/linux/netfilter/nfnetlink_compat.h #usr/include/linux/netfilter/nfnetlink_conntrack.h +#usr/include/linux/netfilter/nfnetlink_cthelper.h +#usr/include/linux/netfilter/nfnetlink_cttimeout.h #usr/include/linux/netfilter/nfnetlink_log.h #usr/include/linux/netfilter/nfnetlink_queue.h #usr/include/linux/netfilter/x_tables.h @@ -359,6 +371,7 @@ #usr/include/linux/netfilter/xt_DSCP.h #usr/include/linux/netfilter/xt_IDLETIMER.h #usr/include/linux/netfilter/xt_LED.h +#usr/include/linux/netfilter/xt_LOG.h #usr/include/linux/netfilter/xt_MARK.h #usr/include/linux/netfilter/xt_NFLOG.h #usr/include/linux/netfilter/xt_NFQUEUE.h @@ -369,9 +382,11 @@ #usr/include/linux/netfilter/xt_TEE.h #usr/include/linux/netfilter/xt_TPROXY.h #usr/include/linux/netfilter/xt_addrtype.h +#usr/include/linux/netfilter/xt_bpf.h #usr/include/linux/netfilter/xt_cluster.h #usr/include/linux/netfilter/xt_comment.h #usr/include/linux/netfilter/xt_connbytes.h +#usr/include/linux/netfilter/xt_connlabel.h #usr/include/linux/netfilter/xt_connlimit.h #usr/include/linux/netfilter/xt_connmark.h #usr/include/linux/netfilter/xt_conntrack.h @@ -379,6 +394,7 @@ #usr/include/linux/netfilter/xt_dccp.h #usr/include/linux/netfilter/xt_devgroup.h #usr/include/linux/netfilter/xt_dscp.h +#usr/include/linux/netfilter/xt_ecn.h #usr/include/linux/netfilter/xt_esp.h #usr/include/linux/netfilter/xt_hashlimit.h #usr/include/linux/netfilter/xt_helper.h @@ -389,6 +405,7 @@ #usr/include/linux/netfilter/xt_mac.h #usr/include/linux/netfilter/xt_mark.h #usr/include/linux/netfilter/xt_multiport.h +#usr/include/linux/netfilter/xt_nfacct.h #usr/include/linux/netfilter/xt_osf.h #usr/include/linux/netfilter/xt_owner.h #usr/include/linux/netfilter/xt_physdev.h @@ -435,26 +452,22 @@ #usr/include/linux/netfilter_decnet.h #usr/include/linux/netfilter_ipv4 #usr/include/linux/netfilter_ipv4.h -#usr/include/linux/netfilter_ipv4/ip_queue.h #usr/include/linux/netfilter_ipv4/ip_tables.h #usr/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h #usr/include/linux/netfilter_ipv4/ipt_ECN.h #usr/include/linux/netfilter_ipv4/ipt_LOG.h #usr/include/linux/netfilter_ipv4/ipt_REJECT.h -#usr/include/linux/netfilter_ipv4/ipt_SAME.h #usr/include/linux/netfilter_ipv4/ipt_TTL.h #usr/include/linux/netfilter_ipv4/ipt_ULOG.h -#usr/include/linux/netfilter_ipv4/ipt_addrtype.h #usr/include/linux/netfilter_ipv4/ipt_ah.h #usr/include/linux/netfilter_ipv4/ipt_ecn.h -#usr/include/linux/netfilter_ipv4/ipt_realm.h #usr/include/linux/netfilter_ipv4/ipt_ttl.h -#usr/include/linux/netfilter_ipv4/nf_nat.h #usr/include/linux/netfilter_ipv6 #usr/include/linux/netfilter_ipv6.h #usr/include/linux/netfilter_ipv6/ip6_tables.h #usr/include/linux/netfilter_ipv6/ip6t_HL.h #usr/include/linux/netfilter_ipv6/ip6t_LOG.h +#usr/include/linux/netfilter_ipv6/ip6t_NPT.h #usr/include/linux/netfilter_ipv6/ip6t_REJECT.h #usr/include/linux/netfilter_ipv6/ip6t_ah.h #usr/include/linux/netfilter_ipv6/ip6t_frag.h @@ -464,6 +477,7 @@ #usr/include/linux/netfilter_ipv6/ip6t_opts.h #usr/include/linux/netfilter_ipv6/ip6t_rt.h #usr/include/linux/netlink.h +#usr/include/linux/netlink_diag.h #usr/include/linux/netrom.h #usr/include/linux/nfc.h #usr/include/linux/nfs.h @@ -476,6 +490,7 @@ #usr/include/linux/nfs_mount.h #usr/include/linux/nfsacl.h #usr/include/linux/nfsd +#usr/include/linux/nfsd/cld.h #usr/include/linux/nfsd/debug.h #usr/include/linux/nfsd/export.h #usr/include/linux/nfsd/nfsfh.h @@ -486,6 +501,8 @@ #usr/include/linux/omap3isp.h #usr/include/linux/omapfb.h #usr/include/linux/oom.h +#usr/include/linux/openvswitch.h +#usr/include/linux/packet_diag.h #usr/include/linux/param.h #usr/include/linux/parport.h #usr/include/linux/patchkey.h @@ -505,6 +522,7 @@ #usr/include/linux/posix_types.h #usr/include/linux/ppdev.h #usr/include/linux/ppp-comp.h +#usr/include/linux/ppp-ioctl.h #usr/include/linux/ppp_defs.h #usr/include/linux/pps.h #usr/include/linux/prctl.h @@ -533,7 +551,9 @@ #usr/include/linux/scc.h #usr/include/linux/sched.h #usr/include/linux/screen_info.h +#usr/include/linux/sctp.h #usr/include/linux/sdla.h +#usr/include/linux/seccomp.h #usr/include/linux/securebits.h #usr/include/linux/selinux_netlink.h #usr/include/linux/sem.h @@ -545,6 +565,7 @@ #usr/include/linux/signal.h #usr/include/linux/signalfd.h #usr/include/linux/snmp.h +#usr/include/linux/sock_diag.h #usr/include/linux/socket.h #usr/include/linux/sockios.h #usr/include/linux/som.h @@ -563,6 +584,7 @@ #usr/include/linux/swab.h #usr/include/linux/synclink.h #usr/include/linux/sysctl.h +#usr/include/linux/sysinfo.h #usr/include/linux/taskstats.h #usr/include/linux/tc_act #usr/include/linux/tc_act/tc_csum.h @@ -578,6 +600,7 @@ #usr/include/linux/tc_ematch/tc_em_nbyte.h #usr/include/linux/tc_ematch/tc_em_text.h #usr/include/linux/tcp.h +#usr/include/linux/tcp_metrics.h #usr/include/linux/telephony.h #usr/include/linux/termios.h #usr/include/linux/time.h @@ -588,14 +611,17 @@ #usr/include/linux/tipc_config.h #usr/include/linux/toshiba.h #usr/include/linux/tty.h +#usr/include/linux/tty_flags.h #usr/include/linux/types.h #usr/include/linux/udf_fs_i.h #usr/include/linux/udp.h +#usr/include/linux/uhid.h #usr/include/linux/uinput.h #usr/include/linux/uio.h #usr/include/linux/ultrasound.h #usr/include/linux/un.h #usr/include/linux/unistd.h +#usr/include/linux/unix_diag.h #usr/include/linux/usb #usr/include/linux/usb/audio.h #usr/include/linux/usb/cdc.h @@ -610,11 +636,16 @@ #usr/include/linux/usbdevice_fs.h #usr/include/linux/utime.h #usr/include/linux/utsname.h +#usr/include/linux/uuid.h #usr/include/linux/uvcvideo.h +#usr/include/linux/v4l2-common.h +#usr/include/linux/v4l2-controls.h +#usr/include/linux/v4l2-dv-timings.h #usr/include/linux/v4l2-mediabus.h #usr/include/linux/v4l2-subdev.h #usr/include/linux/version.h #usr/include/linux/veth.h +#usr/include/linux/vfio.h #usr/include/linux/vhost.h #usr/include/linux/videodev2.h #usr/include/linux/virtio_9p.h @@ -664,11 +695,14 @@ #usr/include/sound/asequencer.h #usr/include/sound/asound.h #usr/include/sound/asound_fm.h +#usr/include/sound/compress_offload.h +#usr/include/sound/compress_params.h #usr/include/sound/emu10k1.h #usr/include/sound/hdsp.h #usr/include/sound/hdspm.h #usr/include/sound/sb16_csp.h #usr/include/sound/sfnt_info.h +#usr/include/uapi #usr/include/video #usr/include/video/edid.h #usr/include/video/sisfb.h diff --git a/config/rootfiles/common/armv5tel/linux-kirkwood b/config/rootfiles/common/armv5tel/linux-kirkwood index 58acd22..cb6858f 100644 --- a/config/rootfiles/common/armv5tel/linux-kirkwood +++ b/config/rootfiles/common/armv5tel/linux-kirkwood @@ -1,22 +1,53 @@ boot/System.map-KVER-ipfire-kirkwood #boot/System.map-ipfire-kirkwood boot/config-KVER-ipfire-kirkwood +boot/dtb-KVER-ipfire-kirkwood +#boot/dtb-KVER-ipfire-kirkwood/kirkwood-cloudbox.dtb +#boot/dtb-KVER-ipfire-kirkwood/kirkwood-dns320.dtb +#boot/dtb-KVER-ipfire-kirkwood/kirkwood-dns325.dtb +#boot/dtb-KVER-ipfire-kirkwood/kirkwood-dockstar.dtb +#boot/dtb-KVER-ipfire-kirkwood/kirkwood-dreamplug.dtb +#boot/dtb-KVER-ipfire-kirkwood/kirkwood-goflexnet.dtb +#boot/dtb-KVER-ipfire-kirkwood/kirkwood-guruplug-server-plus.dtb +#boot/dtb-KVER-ipfire-kirkwood/kirkwood-ib62x0.dtb +#boot/dtb-KVER-ipfire-kirkwood/kirkwood-iconnect.dtb +#boot/dtb-KVER-ipfire-kirkwood/kirkwood-iomega_ix2_200.dtb +#boot/dtb-KVER-ipfire-kirkwood/kirkwood-is2.dtb +#boot/dtb-KVER-ipfire-kirkwood/kirkwood-km_kirkwood.dtb +#boot/dtb-KVER-ipfire-kirkwood/kirkwood-lschlv2.dtb +#boot/dtb-KVER-ipfire-kirkwood/kirkwood-lsxhl.dtb +#boot/dtb-KVER-ipfire-kirkwood/kirkwood-mplcec4.dtb +#boot/dtb-KVER-ipfire-kirkwood/kirkwood-netgear_readynas_duo_v2.dtb +#boot/dtb-KVER-ipfire-kirkwood/kirkwood-ns2.dtb +#boot/dtb-KVER-ipfire-kirkwood/kirkwood-ns2lite.dtb +#boot/dtb-KVER-ipfire-kirkwood/kirkwood-ns2max.dtb +#boot/dtb-KVER-ipfire-kirkwood/kirkwood-ns2mini.dtb +#boot/dtb-KVER-ipfire-kirkwood/kirkwood-nsa310.dtb +#boot/dtb-KVER-ipfire-kirkwood/kirkwood-openblocks_a6.dtb +#boot/dtb-KVER-ipfire-kirkwood/kirkwood-topkick.dtb +#boot/dtb-KVER-ipfire-kirkwood/kirkwood-ts219-6281.dtb +#boot/dtb-KVER-ipfire-kirkwood/kirkwood-ts219-6282.dtb boot/uImage-ipfire-kirkwood boot/vmlinuz-KVER-ipfire-kirkwood -etc/modprobe.d/framebuffer -etc/modprobe.d/ipv6 -etc/modprobe.d/isdn +etc/modprobe.d/framebuffer.conf +etc/modprobe.d/ipv6.conf +etc/modprobe.d/isdn.conf lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/build #lib/modules/KVER-ipfire-kirkwood/kernel +#lib/modules/KVER-ipfire-kirkwood/kernel/arch +#lib/modules/KVER-ipfire-kirkwood/kernel/arch/arm +#lib/modules/KVER-ipfire-kirkwood/kernel/arch/arm/crypto +#lib/modules/KVER-ipfire-kirkwood/kernel/arch/arm/crypto/aes-arm.ko #lib/modules/KVER-ipfire-kirkwood/kernel/crypto -#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/aes_generic.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/af_alg.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/algif_hash.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/algif_skcipher.ko #lib/modules/KVER-ipfire-kirkwood/kernel/crypto/ansi_cprng.ko #lib/modules/KVER-ipfire-kirkwood/kernel/crypto/anubis.ko #lib/modules/KVER-ipfire-kirkwood/kernel/crypto/arc4.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/asymmetric_keys +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/asymmetric_keys/asymmetric_keys.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/asymmetric_keys/public_key.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/asymmetric_keys/rsa.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/asymmetric_keys/x509_key_parser.ko #lib/modules/KVER-ipfire-kirkwood/kernel/crypto/async_tx #lib/modules/KVER-ipfire-kirkwood/kernel/crypto/async_tx/async_memcpy.ko #lib/modules/KVER-ipfire-kirkwood/kernel/crypto/async_tx/async_pq.ko @@ -28,18 +59,16 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/crypto/authencesn.ko #lib/modules/KVER-ipfire-kirkwood/kernel/crypto/blowfish_common.ko #lib/modules/KVER-ipfire-kirkwood/kernel/crypto/blowfish_generic.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/camellia.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/cast5.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/cast6.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/cbc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/camellia_generic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/cast5_generic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/cast6_generic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/cast_common.ko #lib/modules/KVER-ipfire-kirkwood/kernel/crypto/ccm.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/crc32c.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/cryptd.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/crypto_user.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/ctr.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/cmac.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/crypto_null.ko #lib/modules/KVER-ipfire-kirkwood/kernel/crypto/cts.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/deflate.ko #lib/modules/KVER-ipfire-kirkwood/kernel/crypto/des_generic.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/ecb.ko #lib/modules/KVER-ipfire-kirkwood/kernel/crypto/fcrypt.ko #lib/modules/KVER-ipfire-kirkwood/kernel/crypto/gcm.ko #lib/modules/KVER-ipfire-kirkwood/kernel/crypto/gf128mul.ko @@ -48,7 +77,6 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/crypto/lrw.ko #lib/modules/KVER-ipfire-kirkwood/kernel/crypto/lzo.ko #lib/modules/KVER-ipfire-kirkwood/kernel/crypto/md4.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/md5.ko #lib/modules/KVER-ipfire-kirkwood/kernel/crypto/michael_mic.ko #lib/modules/KVER-ipfire-kirkwood/kernel/crypto/pcbc.ko #lib/modules/KVER-ipfire-kirkwood/kernel/crypto/rmd128.ko @@ -57,11 +85,9 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/crypto/rmd320.ko #lib/modules/KVER-ipfire-kirkwood/kernel/crypto/salsa20_generic.ko #lib/modules/KVER-ipfire-kirkwood/kernel/crypto/seed.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/seqiv.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/serpent.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/sha1_generic.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/sha256_generic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/serpent_generic.ko #lib/modules/KVER-ipfire-kirkwood/kernel/crypto/sha512_generic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/tcrypt.ko #lib/modules/KVER-ipfire-kirkwood/kernel/crypto/tea.ko #lib/modules/KVER-ipfire-kirkwood/kernel/crypto/tgr192.ko #lib/modules/KVER-ipfire-kirkwood/kernel/crypto/twofish_common.ko @@ -75,12 +101,8 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/acard-ahci.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/ahci.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/ahci_platform.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/ata_generic.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/ata_piix.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/libahci.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/libata.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_ali.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_amd.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_arasan_cf.ko @@ -101,7 +123,6 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_it8213.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_it821x.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_jmicron.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_legacy.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_marvell.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_mpiix.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_netcell.ko @@ -111,14 +132,11 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_oldpiix.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_opti.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_optidma.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_pcmcia.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_pdc2027x.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_pdc202xx_old.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_piccolo.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_radisys.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_rdc.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_rz1000.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_sc1200.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_sch.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_serverworks.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_sil680.ko @@ -127,6 +145,7 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_triflex.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_via.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pdc_adma.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_highbank.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_inic162x.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_mv.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_nv.ko @@ -141,59 +160,38 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_via.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_vsc.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/ambassador.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/atmtcp.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/eni.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/firestream.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/fore_200e.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/horizon.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/idt77105.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/idt77252.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/iphase.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/lanai.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/nicstar.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/solos-pci.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/suni.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/uPD98402.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/zatm.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/base -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/base/regmap -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/base/regmap/regmap-i2c.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bcma -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bcma/bcma.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/DAC960.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/aoe -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/aoe/aoe.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/cciss.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/cpqarray.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/cryptoloop.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/mg_disk.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/nbd.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/osdblk.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/rbd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/nvme.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/rsxx +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/rsxx/rsxx.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/sx8.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/umem.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/ath3k.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/bcm203x.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/bfusb.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/bluecard_cs.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/bpa10x.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/bt3c_cs.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/btmrvl.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/btmrvl_sdio.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/btsdio.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/btuart_cs.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/btusb.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/btwilink.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/dtl1_cs.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/hci_uart.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/hci_vhci.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/cdrom -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/cdrom/cdrom.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/hw_random -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/hw_random/rng-core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/hw_random/atmel-rng.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/hw_random/exynos-rng.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/hw_random/timeriomem-rng.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/ipmi #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/ipmi/ipmi_devintf.ko @@ -202,110 +200,70 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/ipmi/ipmi_si.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/ipmi/ipmi_watchdog.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/lp.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/nvram.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/pcmcia -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/pcmcia/synclink_cs.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/ppdev.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/connector -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/connector/cn.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/clk +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/clk/clk-si5351.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/crypto #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/crypto/hifn_795x.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/crypto/mv_cesa.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/dma -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/dma/dmatest.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/dma/timb_dma.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/firewire #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/firewire/firewire-core.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/firewire/firewire-net.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/firewire/firewire-ohci.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/firewire/firewire-sbp2.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-adp5588.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-generic.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-it8761e.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-janz-ttl.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-max7300.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-max730x.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-max732x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-adnp.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-mcp23s08.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-ml-ioh.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-pca953x.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-pcf857x.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-rdc321x.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-vx855.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-ts5500.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-viperboard.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/drm.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/mga -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/mga/mga.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/r128 -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/r128/r128.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/savage -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/savage/savage.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/tdfx -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/tdfx/tdfx.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/ttm -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/ttm/ttm.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/via -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/via/via.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/vmwgfx -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/vmwgfx/vmwgfx.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/stub -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/stub/poulsbo.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/drm_kms_helper.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/drm_usb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/i2c +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/i2c/ch7006.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/i2c/sil164.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/i2c/tda998x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/udl +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/udl/udl.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-a4tech.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-apple.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-axff.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-belkin.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-cherry.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-chicony.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-cypress.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-dr.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-elecom.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-ezkey.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-gaff.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-aureal.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-gyration.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-holtekff.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-kensington.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-keytouch.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-kye.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-lcpower.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-lenovo-tpkbd.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-logitech-dj.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-logitech.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-magicmouse.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-microsoft.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-monterey.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-multitouch.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-ntrig.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-ortek.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-petalynx.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-picolcd.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-pl.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-primax.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-prodikeys.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-quanta.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-roccat-arvo.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-roccat-common.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-roccat-isku.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-roccat-kone.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-roccat-koneplus.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-roccat-konepure.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-roccat-kovaplus.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-roccat-lua.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-roccat-pyra.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-roccat-savu.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-roccat.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-saitek.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-samsung.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-sjoy.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-sony.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-sensor-hub.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-speedlink.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-sunplus.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-tmff.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-thingm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-tivo.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-topseed.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-twinhan.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-uclogic.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-wacom.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-waltop.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-wiimote.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-zpff.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-zydacron.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/usbhid -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/usbhid/usbhid.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/i2c-hid +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/i2c-hid/i2c-hid.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hsi +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hsi/clients +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hsi/clients/hsi_char.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hsi/hsi.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ad7414.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ad7418.ko @@ -317,10 +275,12 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/adm9240.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ads1015.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ads7828.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/adt7410.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/adt7411.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/adt7462.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/adt7470.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/adt7475.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/adt7x10.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/amc6821.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/asc7621.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/atxp1.ko @@ -328,7 +288,6 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ds1621.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ds620.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/emc1403.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/emc2103.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/emc6w201.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/f71805f.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/f71882fg.ko @@ -336,16 +295,15 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/g760a.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/gl518sm.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/gl520sm.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/gpio-fan.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/hih6130.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/hwmon-vid.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/hwmon.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/i5k_amb.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ibmaem.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ibmpex.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ina209.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ina2xx.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/it87.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/jc42.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lineage-pem.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm63.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm73.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm75.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm77.ko @@ -357,6 +315,7 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm90.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm92.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm93.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm95234.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm95241.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm95245.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ltc4151.ko @@ -366,9 +325,13 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/max16065.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/max1619.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/max1668.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/max197.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/max6639.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/max6642.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/max6650.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/max6697.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/mcp3021.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/nct6775.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ntc_thermistor.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pc87360.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pc87427.ko @@ -376,7 +339,6 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/adm1275.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/lm25066.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/ltc2978.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/max16064.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/max34440.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/max8688.ko @@ -384,14 +346,12 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/pmbus_core.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/ucd9000.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/ucd9200.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/zl6100.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/sch5627.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/sch5636.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/sch56xx-common.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/sht15.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/sht21.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/sis5595.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/smm665.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/smsc47b397.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/smsc47m1.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/smsc47m192.ko @@ -421,16 +381,12 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-ali15x3.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-amd756.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-amd8111.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-designware-core.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-designware-pci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-cbus-gpio.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-diolan-u2c.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-eg20t.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-gpio.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-i801.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-intel-mid.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-isch.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-nforce2.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-ocores.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-parport-light.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-parport.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-pca-platform.ko @@ -439,59 +395,48 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-sis5595.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-sis630.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-sis96x.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-stub.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-taos-evm.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-tiny-usb.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-via.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-viapro.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-xiic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-viperboard.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/i2c-dev.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/i2c-mux.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/i2c-smbus.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/muxes -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/muxes/gpio-i2cmux.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/muxes/pca9541.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/muxes/pca954x.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ieee802154 -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ieee802154/fakehard.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/i2c-stub.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/iio +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/iio/common +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/iio/common/hid-sensors +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/iio/common/hid-sensors/hid-sensor-iio-common.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/iio/common/hid-sensors/hid-sensor-trigger.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/iio/industrialio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/iio/kfifo_buf.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/ff-memless.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/input-polldev.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/adp5588-keys.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/adp5589-keys.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/gpio_keys.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/gpio_keys_polled.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/lkkbd.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/lm8323.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/matrix_keypad.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/max7359_keypad.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/mcs_touchkey.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/mpr121_touchkey.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/newtonkbd.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/opencores-kbd.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/qt1070.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/qt2160.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/stowaway.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/sunkbd.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/tca6416-keypad.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/xtkbd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/lm8333.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/matrix-keymap.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/88pm860x_onkey.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/ad714x-i2c.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/ad714x.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/ati_remote2.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/bma150.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/cm109.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/keyspan_remote.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/pcf50633-input.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/pcf8574_keypad.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/powermate.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/pwm-beeper.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/retu-pwrbutton.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/rotary_encoder.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/uinput.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/yealink.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/mouse +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/mouse/appletouch.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/mouse/bcm5974.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/mouse/cyapa.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/mouse/psmouse.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/mouse/sermouse.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/mouse/synaptics_i2c.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/mouse/synaptics_usb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/mouse/vsxxxaa.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/serio #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/serio/altera_ps2.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/serio/ps2mult.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/serio/apbps2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/serio/arc_ps2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/serio/serio_raw.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/sparse-keymap.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/capi @@ -500,18 +445,11 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/capi/kernelcapi.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/divert #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/divert/dss1_divert.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/gigaset -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/gigaset/bas_gigaset.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/gigaset/gigaset.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/gigaset/ser_gigaset.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/gigaset/usb_gigaset.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/avm -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/avm/avm_cs.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/avm/b1.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/avm/b1dma.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/avm/b1pci.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/avm/c4.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/avm/t1pci.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/eicon @@ -520,75 +458,65 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/eicon/divacapi.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/eicon/divadidd.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/eicon/divas.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN/avmfritz.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN/hfcmulti.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN/hfcpci.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN/hfcsusb.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN/mISDNinfineon.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN/mISDNipac.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN/mISDNisar.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN/netjet.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN/speedfax.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN/w6692.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax/avma1_cs.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax/elsa_cs.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax/hfc4s8s_l1.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax/hfc_usb.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax/hisax.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax/hisax_fcpcipnp.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax/hisax_isac.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax/hisax_st5481.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax/sedlbauer_cs.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax/teles_cs.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hysdn #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hysdn/hysdn.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/i4l #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/i4l/isdn.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/i4l/isdn_bsdcomp.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/i4l/isdnhdlc.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/mISDN -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/mISDN/l1oip.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/mISDN/mISDN_core.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/mISDN/mISDN_dsp.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-88pm860x.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-bd2802.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-gpio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-blinkm.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-lm3530.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-lm3533.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-lm355x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-lm3642.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-lp3944.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-lp5521.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-lp5523.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-lp5562.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-lp55xx-common.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-lt3593.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-pca9532.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-pca955x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-netxbig.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-ns2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-ot200.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-pca9633.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-pwm.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-regulator.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/ledtrig-backlight.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/ledtrig-gpio.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/ledtrig-heartbeat.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/ledtrig-netdev.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/ledtrig-timer.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-tca6507.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/trigger +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/trigger/ledtrig-backlight.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/trigger/ledtrig-camera.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/trigger/ledtrig-gpio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/trigger/ledtrig-heartbeat.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/trigger/ledtrig-netdev.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/trigger/ledtrig-oneshot.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/trigger/ledtrig-timer.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/trigger/ledtrig-transient.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/bcache +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/bcache/bcache.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-bio-prison.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-bufio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-cache-cleaner.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-cache-mq.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-cache.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-crypt.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-delay.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-flakey.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-log-userspace.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-log.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-mirror.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-mod.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-multipath.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-queue-length.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-raid.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-region-hash.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-round-robin.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-service-time.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-snapshot.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-thin-pool.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-zero.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-verity.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/faulty.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/linear.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/md-mod.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/multipath.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/persistent-data #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/persistent-data/dm-persistent-data.ko @@ -598,31 +526,243 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/raid456.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/mc44s803.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/mt20xx.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/tda18271.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/tda827x.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/tda8290.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/tda9887.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/tea5761.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/tea5767.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/tuner-simple.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/tuner-types.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/tuner-xc2028.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/xc4000.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/xc5000.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb/dvb-core -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb/dvb-core/dvb-core.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/media.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/b2c2 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/b2c2/b2c2-flexcop.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/btcx-risc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/cx2341x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/cypress_firmware.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/saa7146 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/saa7146/saa7146.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/saa7146/saa7146_vv.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/siano +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/siano/smsdvb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/siano/smsmdtv.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tveeprom.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/a8293.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/af9013.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/af9033.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/atbm8830.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/au8522_common.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/au8522_decoder.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/au8522_dig.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/bcm3510.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/cx22700.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/cx22702.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/cx24110.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/cx24113.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/cx24116.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/cx24123.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/cxd2820r.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/dib0070.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/dib0090.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/dib3000mb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/dib3000mc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/dib7000m.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/dib7000p.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/dib8000.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/dibx000_common.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/drxd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/drxk.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/ds3000.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/dvb-pll.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/ec100.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/isl6405.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/isl6421.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/isl6423.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/it913x-fe.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/itd1000.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/ix2505v.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/l64781.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/lg2160.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/lgdt3305.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/lgdt330x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/lgs8gxx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/lnbp21.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/lnbp22.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/m88dc2800.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/m88ds3103.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/m88rs2000.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/mb86a16.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/mb86a20s.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/mt312.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/mt352.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/nxt200x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/nxt6000.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/or51132.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/or51211.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/rtl2830.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/rtl2832.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/s5h1409.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/s5h1411.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/s5h1420.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/s921.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/si21xx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/sp8870.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/sp887x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/stb0899.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/stb6000.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/stb6100.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/stv0288.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/stv0297.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/stv0299.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/stv0367.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/stv0900.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/stv090x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/stv6110.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/stv6110x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/tda10021.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/tda10023.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/tda10048.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/tda1004x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/tda10071.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/tda10086.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/tda18271c2dd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/tda665x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/tda8083.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/tda8261.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/tda826x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/ts2020.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/tua6100.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/ves1820.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/ves1x93.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/zl10036.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/zl10039.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/zl10353.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/firewire +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/firewire/firedtv.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/adv7180.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/cs5345.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/cs53l32a.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/cx25840 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/cx25840/cx25840.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/m52790.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/msp3400.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/mt9v011.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/ov7670.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/saa6588.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/saa7115.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/saa7127.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/saa717x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/soc_camera +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/soc_camera/imx074.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/soc_camera/mt9m001.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/soc_camera/mt9m111.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/soc_camera/mt9t031.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/soc_camera/mt9t112.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/soc_camera/mt9v022.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/soc_camera/ov2640.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/soc_camera/ov5642.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/soc_camera/ov6650.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/soc_camera/ov772x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/soc_camera/ov9640.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/soc_camera/ov9740.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/soc_camera/rj54n1cb0c.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/soc_camera/tw9910.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/tda7432.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/tda9840.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/tea6415c.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/tea6420.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/tvaudio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/tvp5150.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/upd64031a.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/upd64083.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/vp27smpx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/wm8739.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/wm8775.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/b2c2 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/b2c2/b2c2-flexcop-pci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/bt8xx +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/bt8xx/bt878.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/bt8xx/bttv.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/bt8xx/dst.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/bt8xx/dst_ca.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/bt8xx/dvb-bt8xx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/cx18 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/cx18/cx18-alsa.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/cx18/cx18.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/cx23885 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/cx23885/altera-ci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/cx23885/cx23885.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/cx25821 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/cx25821/cx25821-alsa.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/cx25821/cx25821.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/cx88 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/cx88/cx88-alsa.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/cx88/cx88-blackbird.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/cx88/cx88-dvb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/cx88/cx88-vp3054-i2c.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/cx88/cx8800.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/cx88/cx8802.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/cx88/cx88xx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/dm1105 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/dm1105/dm1105.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/ivtv +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/ivtv/ivtv-alsa.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/ivtv/ivtv.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/ivtv/ivtvfb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/mantis +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/mantis/hopper.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/mantis/mantis.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/mantis/mantis_core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/ngene +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/ngene/ngene.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/pluto2 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/pluto2/pluto2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/pt1 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/pt1/earth-pt1.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/saa7134 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/saa7134/saa6752hs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/saa7134/saa7134-alsa.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/saa7134/saa7134-dvb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/saa7134/saa7134-empress.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/saa7134/saa7134.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/saa7146 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/saa7146/hexium_gemini.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/saa7146/hexium_orion.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/saa7146/mxb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/saa7164 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/saa7164/saa7164.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/ttpci +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/ttpci/budget-av.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/ttpci/budget-ci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/ttpci/budget-core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/ttpci/budget-patch.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/ttpci/budget.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/ttpci/dvb-ttpci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/ttpci/ttpci-eeprom.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/platform +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/platform/m2m-deinterlace.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/platform/marvell-ccic +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/platform/marvell-ccic/cafe_ccic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/platform/sh_veu.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/platform/soc_camera +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/platform/soc_camera/soc_camera.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/platform/soc_camera/soc_camera_platform.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/platform/soc_camera/soc_mediabus.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/platform/timblogiw.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/gpio-ir-recv.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/iguanair.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/imon.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/ir-jvc-decoder.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/ir-lirc-codec.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/ir-mce_kbd-decoder.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/ir-nec-decoder.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/ir-rc5-decoder.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/ir-rc5-sz-decoder.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/ir-rc6-decoder.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/ir-sanyo-decoder.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/ir-sony-decoder.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-adstech-dvb-t-pci.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-alink-dtu-m.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-anysee.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-apac-viewcomp.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-asus-pc39.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-asus-ps3-100.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-ati-tv-wonder-hd-600.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-ati-x10.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-avermedia-a16d.ko @@ -646,6 +786,7 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-dm1105-nec.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvb-t.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvbt-pro.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-dvbsky.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-em-terratec.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-encore-enltv-fm53.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-encore-enltv.ko @@ -662,13 +803,18 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-imon-mce.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-imon-pad.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-iodata-bctv7e.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-it913x-v1.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-it913x-v2.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-kaiomy.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-kworld-315u.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-kworld-pc150u.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-kworld-plus-tv-analog.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-leadtek-y04g0051.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-lirc.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-lme2510.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-manli.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-medion-x10-digitainer.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-medion-x10-or2x.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-medion-x10.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-msi-digivox-ii.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-msi-digivox-iii.ko @@ -692,6 +838,7 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-pv951.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-rc6-mce.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-real-audio-220-32-keys.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-reddo.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-snapstream-firefly.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-streamzap.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-tbs-nec.ko @@ -701,6 +848,7 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-terratec-slim.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-tevii-nec.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-tivo.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-total-media-in-hand-02.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-total-media-in-hand.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-trekstor.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-tt-1500.ko @@ -711,12 +859,186 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-winfast-usbii-deluxe.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-winfast.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/lirc_dev.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/rc-core.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/video -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/video/ir-kbd-i2c.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/video/v4l2-common.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/video/v4l2-int-device.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/video/videodev.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/mceusb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/rc-loopback.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/redrat3.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/streamzap.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/ttusbir.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/e4000.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/fc0011.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/fc0012.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/fc0013.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/fc2580.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/max2165.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/mt2060.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/mt2063.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/mt2131.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/mt2266.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/mxl5005s.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/mxl5007t.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/qt1010.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/r820t.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/tda18212.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/tda18218.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/tua9001.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/tuner_it913x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/au0828 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/au0828/au0828.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/b2c2 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/b2c2/b2c2-flexcop-usb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/cpia2 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/cpia2/cpia2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/cx231xx +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/cx231xx/cx231xx-alsa.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/cx231xx/cx231xx-dvb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/cx231xx/cx231xx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb-v2 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-af9015.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-af9035.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-anysee.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-au6610.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-az6007.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-ce6230.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-dvbsky.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-ec168.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-gl861.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-it913x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-lmedm04.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-mxl111sf.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-rtl28xxu.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb-v2/dvb_usb_v2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb-v2/mxl111sf-demod.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb-v2/mxl111sf-tuner.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb/dvb-usb-a800.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb/dvb-usb-af9005-remote.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb/dvb-usb-af9005.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb/dvb-usb-az6027.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb/dvb-usb-cinergyT2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb/dvb-usb-cxusb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb/dvb-usb-dib0700.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb/dvb-usb-dibusb-common.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb/dvb-usb-dibusb-mb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb/dvb-usb-digitv.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb/dvb-usb-dtt200u.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb/dvb-usb-dtv5100.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb/dvb-usb-dw2102.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb/dvb-usb-friio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb/dvb-usb-gp8psk.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb/dvb-usb-m920x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb/dvb-usb-nova-t-usb2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb/dvb-usb-opera.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb/dvb-usb-pctv452e.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb/dvb-usb-ttusb2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb/dvb-usb-umt-010.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb/dvb-usb-vp702x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb/dvb-usb-vp7045.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/dvb-usb/dvb-usb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/em28xx +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/em28xx/em28xx-alsa.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/em28xx/em28xx-dvb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/em28xx/em28xx-rc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/em28xx/em28xx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gl860 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gl860/gspca_gl860.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_benq.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_conex.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_cpia1.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_etoms.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_finepix.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_jeilinj.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_jl2005bcd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_kinect.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_konica.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_main.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_mars.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_mr97310a.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_nw80x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_ov519.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_ov534.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_ov534_9.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_pac207.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_pac7302.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_pac7311.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_se401.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_sn9c2028.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_sn9c20x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_sonixb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_sonixj.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_spca1528.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_spca500.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_spca501.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_spca505.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_spca506.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_spca508.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_spca561.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_sq905.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_sq905c.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_sq930x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_stk014.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_stv0680.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_sunplus.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_t613.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_tv8532.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_vc032x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_vicam.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_xirlink_cit.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/gspca_zc3xx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/m5602 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/m5602/gspca_m5602.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/stv06xx +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/gspca/stv06xx/gspca_stv06xx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/hdpvr +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/hdpvr/hdpvr.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/pvrusb2 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/pvrusb2/pvrusb2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/pwc +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/pwc/pwc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/s2255 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/s2255/s2255drv.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/siano +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/siano/smsusb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/sn9c102 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/sn9c102/sn9c102.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/stk1160 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/stk1160/stk1160.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/stkwebcam +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/stkwebcam/stkwebcam.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/tlg2300 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/tlg2300/poseidon.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/tm6000 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/tm6000/tm6000-alsa.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/tm6000/tm6000-dvb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/tm6000/tm6000.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/ttusb-budget +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/ttusb-dec +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/ttusb-dec/ttusb_dec.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/ttusb-dec/ttusbdecfe.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/usbvision +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/usbvision/usbvision.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/uvc +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/uvc/uvcvideo.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/zr364xx +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/zr364xx/zr364xx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/v4l2-core +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/v4l2-core/tuner.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/v4l2-core/v4l2-int-device.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/v4l2-core/v4l2-mem2mem.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/v4l2-core/videobuf-core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/v4l2-core/videobuf-dma-contig.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/v4l2-core/videobuf-dma-sg.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/v4l2-core/videobuf-dvb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/v4l2-core/videobuf-vmalloc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/v4l2-core/videobuf2-core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/v4l2-core/videobuf2-dma-contig.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/v4l2-core/videobuf2-memops.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/v4l2-core/videobuf2-vmalloc.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/memstick #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/memstick/core #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/memstick/core/memstick.ko @@ -724,6 +1046,7 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/memstick/host #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/memstick/host/jmb38x_ms.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/memstick/host/r592.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/memstick/host/rtsx_pci_ms.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/memstick/host/tifm_ms.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/message #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/message/fusion @@ -733,34 +1056,31 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/message/fusion/mptsas.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/message/fusion/mptscsih.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/message/fusion/mptspi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/message/i2o +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/message/i2o/i2o_block.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/message/i2o/i2o_bus.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/message/i2o/i2o_core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/message/i2o/i2o_proc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/message/i2o/i2o_scsi.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/htc-pasic3.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/janz-cmodio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/lm3533-core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/lm3533-ctrlbank.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/lpc_ich.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/lpc_sch.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/pcf50633-adc.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/pcf50633-gpio.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/pcf50633.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/rdc321x-southbridge.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/retu-mfd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/rtsx_pci.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/sm501.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/timberdale.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/tps6105x.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/tps65010.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/tps6507x.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/ucb1400_core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/viperboard.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/vx855.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/wl1273-core.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/wm8400-core.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/apds9802als.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/apds990x.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/bh1770glc.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/bh1780gli.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/bmp085.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/c2port -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/c2port/core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/altera-stapl +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/altera-stapl/altera-stapl.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/bmp085-i2c.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/cb710 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/cb710/cb710.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/ds1682.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/dummy-irq.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/eeprom #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/eeprom/at24.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/eeprom/eeprom.ko @@ -768,99 +1088,52 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/eeprom/max6875.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/enclosure.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/fsa9480.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/hmc6352.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/hpilo.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/ics932s401.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/isl29003.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/isl29020.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/iwmc3200top -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/iwmc3200top/iwmc3200top.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/lis3lv02d -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/lis3lv02d/lis3lv02d.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/lis3lv02d/lis3lv02d_i2c.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/pch_phub.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/ti-st #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/ti-st/st_drv.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/tifm_7xx1.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/tifm_core.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/tsl2550.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/card -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/card/mmc_block.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/card/mmc_test.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/card/sdio_uart.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/core -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/core/mmc_core.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/cb710-mmc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/dw_mmc-exynos.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/dw_mmc-pci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/dw_mmc-pltfm.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/dw_mmc.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/mvsdio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/rtsx_pci_sdmmc.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/sdhci-pci.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/sdhci-pltfm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/sdhci-pxav2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/sdhci-pxav3.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/sdhci.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/sdricoh_cs.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/tifm_sd.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/ushc.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/via-sdmmc.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/vub300.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/ar7part.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/chips -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/chips/chipreg.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/lpddr -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/lpddr/lpddr_cmds.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/lpddr/qinfo_probe.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/maps -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/maps/physmap.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/mtd.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/mtd_blkdevs.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/mtdblock.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/mtdchar.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/nand -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/nand/nand.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/nand/nand_ecc.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/nand/nand_ids.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/nand/orion_nand.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/nand/plat_nand.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/ofpart.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/sm_ftl.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/tests -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/tests/mtd_nandecctest.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/tests/mtd_oobtest.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/tests/mtd_pagetest.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/tests/mtd_readtest.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/tests/mtd_speedtest.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/tests/mtd_stresstest.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/tests/mtd_subpagetest.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/tests/mtd_torturetest.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/ubi -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/ubi/ubi.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/bonding #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/bonding/bonding.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/dummy.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/eql.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/3com -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/3com/3c574_cs.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/3com/3c589_cs.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/3com/3c59x.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/3com/typhoon.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/8390 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/8390/8390.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/8390/ax88796.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/8390/axnet_cs.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/8390/ne2k-pci.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/8390/pcnet_cs.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/adaptec #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/adaptec/starfire.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/alteon #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/alteon/acenic.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/amd #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/amd/amd8111e.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/amd/nmclan_cs.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/amd/pcnet32.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/atheros +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/atheros/alx +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/atheros/alx/alx.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/atheros/atl1c #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/atheros/atl1c/atl1c.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/atheros/atl1e @@ -878,6 +1151,11 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/brocade #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/brocade/bna #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/brocade/bna/bna.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/cadence +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/cadence/at91_ether.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/cadence/macb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/calxeda +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/calxeda/xgmac.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/chelsio #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/chelsio/cxgb #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/chelsio/cxgb/cxgb.ko @@ -887,6 +1165,8 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/chelsio/cxgb4/cxgb4.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/chelsio/cxgb4vf #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/cirrus +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/cirrus/cs89x0.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/cisco #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/cisco/enic #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/cisco/enic/enic.ko @@ -895,15 +1175,12 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dec #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dec/tulip #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dec/tulip/de2104x.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dec/tulip/de4x5.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dec/tulip/dmfe.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dec/tulip/tulip.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dec/tulip/uli526x.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dec/tulip/winbond-840.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dec/tulip/xircom_cb.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dlink -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dlink/de600.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dlink/de620.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dlink/dl2k.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dlink/sundance.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dnet.ko @@ -912,8 +1189,6 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/emulex/benet/be2net.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/ethoc.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/fealnx.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/fujitsu -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/fujitsu/fmvj18x_cs.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/hp #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/hp/hp100.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/icplus @@ -935,15 +1210,10 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/jme.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/marvell #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/marvell/mv643xx_eth.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/marvell/mvmdio.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/marvell/skge.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/marvell/sky2.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/mellanox -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/mellanox/mlx4 -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/mellanox/mlx4/mlx4_core.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/mellanox/mlx4/mlx4_en.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/micrel -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/micrel/ks8842.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/micrel/ks8851_mll.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/micrel/ksz884x.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/myricom #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/myricom/myri10ge @@ -960,9 +1230,6 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/oki-semi #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/oki-semi/pch_gbe #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/packetengines -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/packetengines/hamachi.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/packetengines/yellowfin.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/qlogic #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/qlogic/netxen #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/qlogic/netxen/netxen_nic.ko @@ -977,8 +1244,6 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/realtek/8139cp.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/realtek/8139too.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/realtek/r8169.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/seeq -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/seeq/seeq8005.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/sfc #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/sfc/sfc.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/silan @@ -989,7 +1254,6 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/smsc #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/smsc/epic100.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/smsc/smc911x.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/smsc/smc91c92_cs.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/smsc/smc91x.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/smsc/smsc911x.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/smsc/smsc9420.ko @@ -1007,35 +1271,31 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/via #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/via/via-rhine.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/via/via-velocity.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/xircom -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/xircom/xirc2ps_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/wiznet +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/wiznet/w5100.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/wiznet/w5300.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ifb.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/imq.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/irda -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/irda/irda-usb.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/irda/irtty-sir.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/irda/kingsun-sir.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/irda/ks959-sir.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/irda/ksdazzle-sir.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/irda/mcs7780.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/irda/sir-dev.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/irda/stir4200.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/irda/vlsi_ir.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/macvlan.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/macvtap.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/mdio.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/mii.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/netconsole.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/amd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/at803x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/bcm87xx.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/broadcom.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/cicada.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/davicom.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/dp83640.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/et1011c.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/icplus.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/lxt.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/marvell.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/mdio-bitbang.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/mdio-gpio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/mdio-mux-gpio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/mdio-mux-mmioreg.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/mdio-mux.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/micrel.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/national.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/qsemi.ko @@ -1055,13 +1315,14 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ppp/pptp.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/slip #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/slip/slhc.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/slip/slip.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/tun.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/asix.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/ax88179_178a.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/catc.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/cdc_eem.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/cdc_ether.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/cdc_mbim.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/cdc_ncm.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/cdc_subset.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/cx82310_eth.ko @@ -1069,6 +1330,7 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/gl620a.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/hso.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/int51x1.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/ipheth.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/kalmia.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/kaweth.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/lg-vl600.ko @@ -1076,6 +1338,8 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/net1080.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/pegasus.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/plusb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/qmi_wwan.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/r8152.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/rndis_host.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/rtl8150.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/sierra_net.ko @@ -1086,60 +1350,141 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/veth.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/vmxnet3 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/vmxnet3/vmxnet3.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/dlci.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/dscc4.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/farsync.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/hdlc.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/hdlc_cisco.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/hdlc_fr.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/hdlc_ppp.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/hdlc_raw.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/hdlc_raw_eth.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/lmc -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/lmc/lmc.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/pc300too.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/pci200syn.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/wanxl.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/vxlan.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/airo.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/airo_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/adm8211.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/at76c50x-usb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/ath +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/ath/ar5523 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/ath/ar5523/ar5523.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/ath/ath.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/ath/ath5k +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/ath/ath5k/ath5k.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/ath/ath9k +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/ath/ath9k/ath9k.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/ath/ath9k/ath9k_common.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/ath/ath9k/ath9k_htc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/ath/ath9k/ath9k_hw.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/ath/carl9170 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/ath/carl9170/carl9170.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/ath/wil6210 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/ath/wil6210/wil6210.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/atmel.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/atmel_cs.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/atmel_pci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/b43 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/b43/b43.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/b43legacy +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/b43legacy/b43legacy.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/hostap #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/hostap/hostap.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/hostap/hostap_cs.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/hostap/hostap_pci.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/hostap/hostap_plx.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/ray_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/ipw2x00 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/ipw2x00/ipw2100.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/ipw2x00/ipw2200.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/ipw2x00/libipw.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/iwlegacy +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/iwlegacy/iwl3945.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/iwlegacy/iwl4965.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/iwlegacy/iwlegacy.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/libertas +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/libertas/libertas.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/libertas/libertas_sdio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/libertas/usb8xxx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/libertas_tf +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/libertas_tf/libertas_tf.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/libertas_tf/libertas_tf_usb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/mac80211_hwsim.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/mwifiex +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/mwifiex/mwifiex.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/mwifiex/mwifiex_sdio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/mwifiex/mwifiex_usb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/mwl8k.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/orinoco +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/orinoco/orinoco.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/orinoco/orinoco_nortel.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/orinoco/orinoco_plx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/orinoco/orinoco_tmd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/orinoco/orinoco_usb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/p54 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/p54/p54common.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/p54/p54pci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/p54/p54usb.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/rndis_wlan.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/wl3501_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/rt2x00 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/rt2x00/rt2400pci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/rt2x00/rt2500pci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/rt2x00/rt2500usb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/rt2x00/rt2800lib.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/rt2x00/rt2800pci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/rt2x00/rt2800usb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/rt2x00/rt2x00lib.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/rt2x00/rt2x00mmio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/rt2x00/rt2x00pci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/rt2x00/rt2x00usb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/rt2x00/rt61pci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/rt2x00/rt73usb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/rtl818x +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/rtl818x/rtl8180 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/rtl818x/rtl8180/rtl8180.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/rtl818x/rtl8187 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/rtl818x/rtl8187/rtl8187.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/rtlwifi +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/rtlwifi/rtl8188ee +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/rtlwifi/rtl8188ee/rtl8188ee.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/rtlwifi/rtl8192c +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/rtlwifi/rtl8192ce +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/rtlwifi/rtl8192ce/rtl8192ce.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/rtlwifi/rtl8192cu +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/rtlwifi/rtl8192cu/rtl8192cu.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/rtlwifi/rtl8192de +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/rtlwifi/rtl8192de/rtl8192de.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/rtlwifi/rtl8192se +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/rtlwifi/rtl8192se/rtl8192se.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/rtlwifi/rtl8723ae +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/rtlwifi/rtl8723ae/rtl8723ae.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/rtlwifi/rtlwifi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/ti +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/ti/wl1251 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/ti/wl1251/wl1251.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/ti/wl1251/wl1251_sdio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/ti/wl12xx +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/ti/wl12xx/wl12xx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/ti/wl18xx +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/ti/wl18xx/wl18xx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/ti/wlcore +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/ti/wlcore/wlcore.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/ti/wlcore/wlcore_sdio.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/zd1201.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/zd1211rw +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/zd1211rw/zd1211rw.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/parport #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/parport/parport.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/parport/parport_ax88796.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pci -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pci/pci-stub.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/parport/parport_pc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/parport/parport_serial.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pcmcia -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pcmcia/i82092.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pcmcia/pcmcia.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pcmcia/pcmcia_core.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pcmcia/pcmcia_rsrc.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pcmcia/pd6729.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pcmcia/yenta_socket.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pinctrl +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pinctrl/pinctrl-single.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/power +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/power/88pm860x_battery.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/power/88pm860x_charger.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/power/generic-adc-battery.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pps #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pps/pps_core.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ptp #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ptp/ptp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ptp/ptp_pch.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/regulator -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/regulator/fixed.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/regulator/gpio-regulator.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/regulator/lp8755.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-88pm80x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-88pm860x.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-bq32k.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-bq4802.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-cmos.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-ds1286.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-ds1307.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-ds1374.ko @@ -1147,18 +1492,19 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-ds1553.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-ds1672.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-ds1742.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-ds2404.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-ds3232.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-em3027.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-fm3130.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-hid-sensor-time.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-isl12022.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-isl1208.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-m41t80.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-m48t35.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-m48t59.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-m48t86.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-max6900.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-msm6242.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-pcf50633.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-pcf8523.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-pcf8563.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-pcf8583.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-rp5c01.ko @@ -1166,7 +1512,7 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-rv3029c2.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-rx8025.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-rx8581.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-s35390a.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-snvs.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-stk17ta8.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-v3020.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-x1205.ko @@ -1193,6 +1539,8 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/bnx2i #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/bnx2i/bnx2i.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/ch.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/csiostor +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/csiostor/csiostor.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/cxgbi #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/cxgbi/cxgb3i #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/cxgbi/cxgb3i/cxgb3i.ko @@ -1201,19 +1549,18 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/cxgbi/libcxgbi.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/dc395x.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/device_handler -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/device_handler/scsi_dh.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/device_handler/scsi_dh_alua.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/device_handler/scsi_dh_emc.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/device_handler/scsi_dh_hp_sw.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/device_handler/scsi_dh_rdac.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/dmx3191d.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/dpt_i2o.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/fcoe #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/fcoe/fcoe.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/fcoe/libfcoe.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/fdomain.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/hpsa.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/hptiop.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/imm.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/initio.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/ipr.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/ips.ko @@ -1234,77 +1581,80 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/megaraid/megaraid_sas.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/mpt2sas #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/mpt2sas/mpt2sas.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/mpt3sas +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/mpt3sas/mpt3sas.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/mvsas #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/mvsas/mvsas.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/mvumi.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/osd #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/osd/libosd.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/osd/osd.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/pcmcia -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/pcmcia/aha152x_cs.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/pcmcia/fdomain_cs.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/pcmcia/nsp_cs.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/pcmcia/qlogic_cs.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/pcmcia/sym53c500_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/osst.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/pm8001 -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/pm8001/pm8001.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/pm8001/pm80xx.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/pmcraid.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/ppa.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/qla1280.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/qla2xxx #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/qla2xxx/qla2xxx.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/qla4xxx #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/qla4xxx/qla4xxx.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/qlogicfas408.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/raid_class.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/scsi_mod.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/scsi_tgt.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/scsi_transport_fc.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/scsi_transport_iscsi.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/scsi_transport_sas.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/scsi_transport_spi.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/scsi_transport_srp.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/scsi_wait_scan.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/sd_mod.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/ses.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/sg.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/sr_mod.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/st.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/stex.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/sym53c8xx_2 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/sym53c8xx_2/sym53c8xx.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/tmscsim.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/ufs +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/ufs/ufshcd-pci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/ufs/ufshcd-pltfrm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/ufs/ufshcd.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ssb #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ssb/ssb.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/ced1401 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/ced1401/cedusb.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/et131x #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/et131x/et131x.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/phison -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/phison/phison.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/fwserial +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/fwserial/firewire-serial.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/rts5139 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/rts5139/rts5139.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/silicom +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/silicom/bpctl_mod.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/silicom/bypasslib +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/silicom/bypasslib/bypass.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/usbip #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/usbip/usbip-core.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/usbip/usbip-host.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/usbip/vhci-hcd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/thermal +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/thermal/kirkwood_thermal.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/ipwireless -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/ipwireless/ipwireless.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/cyclades.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/n_gsm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/n_hdlc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/n_r3964.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/nozomi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/rocket.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial/8250_dw.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial/altera_jtaguart.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial/altera_uart.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial/mfd.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial/pch_uart.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial/serial_cs.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial/timbuart.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial/uartlite.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial/xilinx_uartps.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial/arc_uart.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial/jsm +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial/jsm/jsm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial/rp2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial/sccnxp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/synclink_gt.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/synclinkmp.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uio #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uio/uio.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uio/uio_aec.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uio/uio_cif.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uio/uio_netx.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uio/uio_pci_generic.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uio/uio_pdrv.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uio/uio_pdrv_genirq.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uio/uio_sercos3.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/atm @@ -1313,44 +1663,49 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/atm/ueagle-atm.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/atm/usbatm.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/atm/xusbatm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/chipidea +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/chipidea/ci13xxx_imx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/chipidea/ci13xxx_msm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/chipidea/ci13xxx_pci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/chipidea/ci_hdrc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/chipidea/usbmisc_imx.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/class #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/class/cdc-acm.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/class/cdc-wdm.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/class/usblp.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/class/usbtmc.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/dwc3 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/dwc3/dwc3-exynos.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/dwc3/dwc3-omap.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/dwc3/dwc3-pci.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/dwc3/dwc3.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host/hwa-hc.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host/isp116x-hcd.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host/isp1362-hcd.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host/oxu210hp-hcd.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host/r8a66597-hcd.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host/sl811-hcd.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host/u132-hcd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host/ssb-hcd.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host/whci #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host/whci/whci-hcd.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host/xhci-hcd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/image +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/image/mdc800.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/image/microtek.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/cypress_cy7c63.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/cytherm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/adutux.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/emi26.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/emi62.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/ezusb.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/ftdi-elan.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/iowarrior.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/isight_firmware.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/sisusbvga #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/sisusbvga/sisusbvga.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/usb3503.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/usblcd.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/usbled.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/usbsevseg.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/uss720.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/yurex.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/otg -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/otg/gpio_vbus.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/otg/nop-usb-xceiv.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/mon +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/mon/usbmon.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/aircable.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/ark3116.ko @@ -1359,11 +1714,9 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/cp210x.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/cypress_m8.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/digi_acceleport.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/empeg.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/f81232.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/ftdi_sio.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/funsoft.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/garmin_gps.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/hp4x.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/io_edgeport.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/io_ti.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/ipaq.ko @@ -1371,31 +1724,27 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/ir-usb.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/iuu_phoenix.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/keyspan_pda.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/kl5kusb105.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/mct_u232.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/mos7720.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/mos7840.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/moto_modem.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/opticon.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/option.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/oti6858.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/pl2303.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/qcaux.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/qcserial.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/safe_serial.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/quatech2.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/siemens_mpi.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/sierra.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/spcp8x5.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/ssu100.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/symbolserial.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/ti_usb_3410_5052.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/usb_wwan.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/usbserial.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/visor.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/vivopay-serial.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/whiteheat.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/zio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/zte_ev.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/uas.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-alauda.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-cypress.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-datafab.ko @@ -1409,7 +1758,6 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-sddr09.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-sddr55.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-usbat.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/usb-storage.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/wusbcore #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/wusbcore/wusb-cbaf.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/wusbcore/wusb-wa.ko @@ -1425,154 +1773,164 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uwb/whc-rc.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uwb/whci.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/arkfb.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/aty -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/aty/aty128fb.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/aty/atyfb.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/aty/radeonfb.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/backlight -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/backlight/88pm860x_bl.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/backlight/adp8860_bl.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/backlight/adp8870_bl.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/backlight/generic_bl.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/backlight/lcd.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/backlight/pcf50633-backlight.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/backlight/platform_lcd.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/cirrusfb.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/cyber2000fb.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/display -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/display/display.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/fb_ddc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/cfbcopyarea.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/cfbfillrect.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/cfbimgblt.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/fb_sys_fops.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/kyro -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/kyro/kyrofb.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/macmodes.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox/g450_pll.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox/i2c-matroxfb.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox/matroxfb_DAC1064.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox/matroxfb_Ti3026.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox/matroxfb_accel.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox/matroxfb_base.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox/matroxfb_crtc2.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox/matroxfb_g450.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox/matroxfb_maven.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox/matroxfb_misc.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/metronomefb.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/neofb.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/nvidia -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/nvidia/nvidiafb.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/output.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/pm2fb.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/pm3fb.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/riva -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/riva/rivafb.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/s3fb.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/sis -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/sis/sisfb.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/sm501fb.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/smscufx.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/sstfb.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/svgalib.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/ssd1307fb.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/syscopyarea.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/sysfillrect.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/sysimgblt.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/tdfxfb.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/tmiofb.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/tridentfb.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/uvesafb.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/vgastate.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/vt8623fb.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/masters #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/masters/ds1wm.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/masters/ds2482.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/masters/ds2490.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/masters/matrox_w1.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/masters/w1-gpio.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves/w1_bq27000.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves/w1_ds2408.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves/w1_ds2413.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves/w1_ds2423.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves/w1_ds2431.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves/w1_ds2433.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves/w1_ds2760.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves/w1_ds2780.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves/w1_ds2781.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves/w1_ds28e04.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves/w1_smem.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves/w1_therm.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/wire.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/watchdog #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/watchdog/alim7101_wdt.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/watchdog/max63xx_wdt.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/watchdog/i6300esb.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/watchdog/orion_wdt.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/watchdog/pcwd_pci.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/watchdog/pcwd_usb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/watchdog/retu_wdt.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/watchdog/softdog.ko #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/watchdog/wdt_pci.ko #lib/modules/KVER-ipfire-kirkwood/kernel/fs -#lib/modules/KVER-ipfire-kirkwood/kernel/fs/autofs4 -#lib/modules/KVER-ipfire-kirkwood/kernel/fs/autofs4/autofs4.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/btrfs +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/btrfs/btrfs.ko #lib/modules/KVER-ipfire-kirkwood/kernel/fs/cachefiles #lib/modules/KVER-ipfire-kirkwood/kernel/fs/cachefiles/cachefiles.ko #lib/modules/KVER-ipfire-kirkwood/kernel/fs/cifs #lib/modules/KVER-ipfire-kirkwood/kernel/fs/cifs/cifs.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/fs/ecryptfs -#lib/modules/KVER-ipfire-kirkwood/kernel/fs/ecryptfs/ecryptfs.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/fs/exportfs -#lib/modules/KVER-ipfire-kirkwood/kernel/fs/exportfs/exportfs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/configfs +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/configfs/configfs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/dlm +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/dlm/dlm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/exofs +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/exofs/libore.ko #lib/modules/KVER-ipfire-kirkwood/kernel/fs/fat #lib/modules/KVER-ipfire-kirkwood/kernel/fs/fat/fat.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/fat/msdos.ko #lib/modules/KVER-ipfire-kirkwood/kernel/fs/fat/vfat.ko #lib/modules/KVER-ipfire-kirkwood/kernel/fs/fscache #lib/modules/KVER-ipfire-kirkwood/kernel/fs/fscache/fscache.ko #lib/modules/KVER-ipfire-kirkwood/kernel/fs/fuse #lib/modules/KVER-ipfire-kirkwood/kernel/fs/fuse/cuse.ko #lib/modules/KVER-ipfire-kirkwood/kernel/fs/fuse/fuse.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/fs/isofs -#lib/modules/KVER-ipfire-kirkwood/kernel/fs/isofs/isofs.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/fs/jffs2 -#lib/modules/KVER-ipfire-kirkwood/kernel/fs/jffs2/jffs2.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/fs/jfs -#lib/modules/KVER-ipfire-kirkwood/kernel/fs/jfs/jfs.ko #lib/modules/KVER-ipfire-kirkwood/kernel/fs/lockd #lib/modules/KVER-ipfire-kirkwood/kernel/fs/lockd/lockd.ko #lib/modules/KVER-ipfire-kirkwood/kernel/fs/nfs +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nfs/blocklayout +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nfs/blocklayout/blocklayoutdriver.ko #lib/modules/KVER-ipfire-kirkwood/kernel/fs/nfs/nfs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nfs/nfs_layout_nfsv41_files.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nfs/nfsv2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nfs/nfsv3.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nfs/nfsv4.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nfs/objlayout +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nfs/objlayout/objlayoutdriver.ko #lib/modules/KVER-ipfire-kirkwood/kernel/fs/nfs_common #lib/modules/KVER-ipfire-kirkwood/kernel/fs/nfs_common/nfs_acl.ko #lib/modules/KVER-ipfire-kirkwood/kernel/fs/nfsd #lib/modules/KVER-ipfire-kirkwood/kernel/fs/nfsd/nfsd.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/fs/quota -#lib/modules/KVER-ipfire-kirkwood/kernel/fs/quota/quota_tree.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/fs/quota/quota_v1.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/fs/quota/quota_v2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/mac-celtic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/mac-centeuro.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/mac-croatian.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/mac-cyrillic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/mac-gaelic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/mac-greek.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/mac-iceland.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/mac-inuit.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/mac-roman.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/mac-romanian.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/mac-turkish.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/nls_cp1250.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/nls_cp1251.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/nls_cp1255.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/nls_cp737.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/nls_cp775.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/nls_cp850.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/nls_cp852.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/nls_cp855.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/nls_cp857.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/nls_cp860.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/nls_cp861.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/nls_cp862.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/nls_cp863.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/nls_cp864.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/nls_cp865.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/nls_cp866.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/nls_cp869.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/nls_cp874.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/nls_cp932.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/nls_cp936.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/nls_cp949.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/nls_cp950.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/nls_euc-jp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/nls_iso8859-1.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/nls_iso8859-13.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/nls_iso8859-14.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/nls_iso8859-15.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/nls_iso8859-2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/nls_iso8859-3.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/nls_iso8859-4.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/nls_iso8859-5.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/nls_iso8859-6.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/nls_iso8859-7.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/nls_iso8859-9.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/nls_koi8-r.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/nls_koi8-ru.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/nls_koi8-u.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nls/nls_utf8.ko #lib/modules/KVER-ipfire-kirkwood/kernel/fs/reiserfs #lib/modules/KVER-ipfire-kirkwood/kernel/fs/reiserfs/reiserfs.ko #lib/modules/KVER-ipfire-kirkwood/kernel/fs/udf #lib/modules/KVER-ipfire-kirkwood/kernel/fs/udf/udf.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/fs/ufs -#lib/modules/KVER-ipfire-kirkwood/kernel/fs/ufs/ufs.ko #lib/modules/KVER-ipfire-kirkwood/kernel/fs/xfs #lib/modules/KVER-ipfire-kirkwood/kernel/fs/xfs/xfs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/kernel +#lib/modules/KVER-ipfire-kirkwood/kernel/kernel/trace +#lib/modules/KVER-ipfire-kirkwood/kernel/kernel/trace/ring_buffer_benchmark.ko #lib/modules/KVER-ipfire-kirkwood/kernel/lib +#lib/modules/KVER-ipfire-kirkwood/kernel/lib/asn1_decoder.ko #lib/modules/KVER-ipfire-kirkwood/kernel/lib/cordic.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/lib/crc-ccitt.ko #lib/modules/KVER-ipfire-kirkwood/kernel/lib/crc-itu-t.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/lib/crc-t10dif.ko #lib/modules/KVER-ipfire-kirkwood/kernel/lib/crc7.ko #lib/modules/KVER-ipfire-kirkwood/kernel/lib/crc8.ko #lib/modules/KVER-ipfire-kirkwood/kernel/lib/libcrc32c.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/lib/mpi +#lib/modules/KVER-ipfire-kirkwood/kernel/lib/mpi/mpi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/lib/oid_registry.ko #lib/modules/KVER-ipfire-kirkwood/kernel/lib/raid6 #lib/modules/KVER-ipfire-kirkwood/kernel/lib/raid6/raid6_pq.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/lib/rbtree_test.ko #lib/modules/KVER-ipfire-kirkwood/kernel/lib/ts_bm.ko #lib/modules/KVER-ipfire-kirkwood/kernel/lib/ts_fsm.ko #lib/modules/KVER-ipfire-kirkwood/kernel/lib/ts_kmp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/lib/zlib_deflate +#lib/modules/KVER-ipfire-kirkwood/kernel/lib/zlib_deflate/zlib_deflate.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net #lib/modules/KVER-ipfire-kirkwood/kernel/net/802 #lib/modules/KVER-ipfire-kirkwood/kernel/net/802/garp.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/802/p8022.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/802/psnap.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/802/stp.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/8021q #lib/modules/KVER-ipfire-kirkwood/kernel/net/8021q/8021q.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/atm @@ -1593,7 +1951,6 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/net/bluetooth/rfcomm #lib/modules/KVER-ipfire-kirkwood/kernel/net/bluetooth/rfcomm/rfcomm.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge -#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/bridge.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter #lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_802_3.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_among.ko @@ -1611,64 +1968,45 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_redirect.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_snat.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_stp.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_ulog.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_vlan.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebtable_broute.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebtable_filter.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebtable_nat.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebtables.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/ceph -#lib/modules/KVER-ipfire-kirkwood/kernel/net/ceph/libceph.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/ieee802154 -#lib/modules/KVER-ipfire-kirkwood/kernel/net/ieee802154/6lowpan.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/ieee802154/af_802154.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/ieee802154/ieee802154.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/core +#lib/modules/KVER-ipfire-kirkwood/kernel/net/core/netprio_cgroup.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4 #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/ah4.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/esp4.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/gre.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/inet_diag.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/ip_gre.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/ip_tunnel.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/ip_vti.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/ipcomp.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/ipip.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/arp_tables.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/arpt_mangle.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/arptable_filter.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ip_queue.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ip_tables.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_CLUSTERIP.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_ECN.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_LOG.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_MASQUERADE.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_NETMAP.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_REDIRECT.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_REJECT.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_ULOG.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_ah.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_ecn.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_ipp2p.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_rpfilter.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/iptable_filter.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/iptable_mangle.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/iptable_nat.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/iptable_raw.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_conntrack_ipv4.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_defrag_ipv4.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_amanda.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_ftp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/iptable_security.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_h323.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_irc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_ipv4.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_pptp.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_proto_dccp.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_proto_gre.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_proto_sctp.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_proto_udplite.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_sip.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_snmp_basic.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_tftp.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_bic.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_cubic.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_diag.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_highspeed.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_htcp.ko @@ -1681,17 +2019,21 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_westwood.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_yeah.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tunnel4.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/udp_diag.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/xfrm4_mode_beet.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/xfrm4_mode_transport.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/xfrm4_mode_tunnel.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/xfrm4_tunnel.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6 #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/ah6.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/esp6.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/ip6_gre.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/ip6_tunnel.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/ipcomp6.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/mip6.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter -#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6_queue.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6_tables.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6t_LOG.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6t_MASQUERADE.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6t_NPT.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6t_REJECT.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6t_ah.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6t_eui64.ko @@ -1699,12 +2041,14 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6t_hbh.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6t_ipv6header.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6t_mh.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6t_rpfilter.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6t_rt.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6table_filter.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6table_mangle.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6table_nat.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6table_raw.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/nf_conntrack_ipv6.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/nf_defrag_ipv6.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6table_security.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/nf_nat_ipv6.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/sit.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/tunnel6.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/xfrm6_mode_beet.ko @@ -1712,28 +2056,31 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/xfrm6_mode_transport.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/xfrm6_mode_tunnel.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/xfrm6_tunnel.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/irda -#lib/modules/KVER-ipfire-kirkwood/kernel/net/irda/ircomm -#lib/modules/KVER-ipfire-kirkwood/kernel/net/irda/ircomm/ircomm-tty.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/irda/ircomm/ircomm.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/irda/irda.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/irda/irlan -#lib/modules/KVER-ipfire-kirkwood/kernel/net/irda/irlan/irlan.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/irda/irnet -#lib/modules/KVER-ipfire-kirkwood/kernel/net/irda/irnet/irnet.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/key #lib/modules/KVER-ipfire-kirkwood/kernel/net/key/af_key.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/l2tp #lib/modules/KVER-ipfire-kirkwood/kernel/net/l2tp/l2tp_core.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/l2tp/l2tp_eth.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/l2tp/l2tp_ip.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/l2tp/l2tp_ip6.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/l2tp/l2tp_netlink.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/l2tp/l2tp_ppp.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/llc -#lib/modules/KVER-ipfire-kirkwood/kernel/net/llc/llc.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/mac80211 #lib/modules/KVER-ipfire-kirkwood/kernel/net/mac80211/mac80211.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/ipset +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/ipset/ip_set.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/ipset/ip_set_bitmap_ip.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/ipset/ip_set_bitmap_ipmac.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/ipset/ip_set_bitmap_port.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/ipset/ip_set_hash_ip.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/ipset/ip_set_hash_ipport.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/ipset/ip_set_hash_ipportip.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/ipset/ip_set_hash_ipportnet.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/ipset/ip_set_hash_net.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/ipset/ip_set_hash_netiface.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/ipset/ip_set_hash_netport.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/ipset/ip_set_list_set.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/ipvs #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/ipvs/ip_vs.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/ipvs/ip_vs_dh.ko @@ -1748,7 +2095,6 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/ipvs/ip_vs_sh.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/ipvs/ip_vs_wlc.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/ipvs/ip_vs_wrr.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_amanda.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_broadcast.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_ftp.ko @@ -1765,33 +2111,51 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_sip.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_snmp.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_tftp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_nat.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_nat_amanda.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_nat_ftp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_nat_irc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_nat_proto_dccp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_nat_proto_sctp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_nat_proto_udplite.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_nat_sip.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_nat_tftp.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_tproxy_core.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nfnetlink.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nfnetlink_acct.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nfnetlink_cthelper.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nfnetlink_cttimeout.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nfnetlink_log.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nfnetlink_queue.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/x_tables.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_AUDIT.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_CHECKSUM.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_CLASSIFY.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_CONNSECMARK.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_CT.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_DSCP.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_HL.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_HMARK.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_IDLETIMER.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_IMQ.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_LED.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_LOG.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_NETMAP.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_NFLOG.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_NFQUEUE.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_NOTRACK.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_RATEEST.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_REDIRECT.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_SECMARK.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_TCPMSS.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_TCPOPTSTRIP.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_TEE.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_TPROXY.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_TRACE.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_addrtype.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_bpf.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_cluster.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_comment.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_connbytes.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_connlabel.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_connlimit.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_connmark.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_conntrack.ko @@ -1799,18 +2163,20 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_dccp.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_devgroup.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_dscp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_ecn.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_esp.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_hashlimit.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_helper.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_hl.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_iprange.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_ipvs.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_layer7.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_length.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_limit.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_mac.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_mark.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_multiport.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_nat.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_nfacct.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_osf.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_owner.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_physdev.ko @@ -1821,20 +2187,21 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_realm.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_recent.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_sctp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_set.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_socket.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_state.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_statistic.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_string.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_tcpmss.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_tcpudp.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_time.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_u32.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netlink +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netlink/netlink_diag.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/openvswitch +#lib/modules/KVER-ipfire-kirkwood/kernel/net/openvswitch/openvswitch.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/rfkill #lib/modules/KVER-ipfire-kirkwood/kernel/net/rfkill/rfkill-regulator.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/rfkill/rfkill.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/rxrpc -#lib/modules/KVER-ipfire-kirkwood/kernel/net/rxrpc/af-rxrpc.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/rxrpc/rxkad.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/sched #lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/act_csum.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/act_gact.ko @@ -1846,6 +2213,7 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/act_simple.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/act_skbedit.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/cls_basic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/cls_cgroup.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/cls_flow.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/cls_fw.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/cls_route.ko @@ -1854,6 +2222,7 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/cls_tcindex.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/cls_u32.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/em_cmp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/em_ipset.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/em_meta.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/em_nbyte.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/em_text.ko @@ -1861,8 +2230,10 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_atm.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_cbq.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_choke.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_codel.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_drr.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_dsmark.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_fq_codel.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_gred.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_hfsc.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_htb.ko @@ -1870,6 +2241,7 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_mqprio.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_multiq.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_netem.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_plug.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_prio.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_qfq.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_red.ko @@ -1877,11 +2249,17 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_sfq.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_tbf.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_teql.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sctp +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sctp/sctp.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/sunrpc #lib/modules/KVER-ipfire-kirkwood/kernel/net/sunrpc/auth_gss #lib/modules/KVER-ipfire-kirkwood/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/sunrpc/sunrpc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/unix +#lib/modules/KVER-ipfire-kirkwood/kernel/net/unix/unix_diag.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/vmw_vsock +#lib/modules/KVER-ipfire-kirkwood/kernel/net/vmw_vsock/vsock.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/wireless #lib/modules/KVER-ipfire-kirkwood/kernel/net/wireless/cfg80211.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/wireless/lib80211.ko @@ -1890,7 +2268,6 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/net/wireless/lib80211_crypt_wep.ko #lib/modules/KVER-ipfire-kirkwood/kernel/net/xfrm #lib/modules/KVER-ipfire-kirkwood/kernel/net/xfrm/xfrm_ipcomp.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/net/xfrm/xfrm_user.ko #lib/modules/KVER-ipfire-kirkwood/kernel/sound #lib/modules/KVER-ipfire-kirkwood/kernel/sound/ac97_bus.ko #lib/modules/KVER-ipfire-kirkwood/kernel/sound/core @@ -1907,6 +2284,7 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/seq/snd-seq-midi.ko #lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/seq/snd-seq-virmidi.ko #lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/seq/snd-seq.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/snd-compress.ko #lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/snd-hrtimer.ko #lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/snd-hwdep.ko #lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/snd-page-alloc.ko @@ -1933,12 +2311,10 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/sound/firewire #lib/modules/KVER-ipfire-kirkwood/kernel/sound/firewire/snd-firewire-lib.ko #lib/modules/KVER-ipfire-kirkwood/kernel/sound/firewire/snd-firewire-speakers.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/sound/firewire/snd-isight.ko #lib/modules/KVER-ipfire-kirkwood/kernel/sound/i2c #lib/modules/KVER-ipfire-kirkwood/kernel/sound/i2c/other #lib/modules/KVER-ipfire-kirkwood/kernel/sound/i2c/other/snd-ak4113.ko #lib/modules/KVER-ipfire-kirkwood/kernel/sound/i2c/other/snd-ak4114.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/sound/i2c/other/snd-ak4117.ko #lib/modules/KVER-ipfire-kirkwood/kernel/sound/i2c/other/snd-ak4xxx-adda.ko #lib/modules/KVER-ipfire-kirkwood/kernel/sound/i2c/other/snd-pt2258.ko #lib/modules/KVER-ipfire-kirkwood/kernel/sound/i2c/other/snd-tea575x-tuner.ko @@ -1947,6 +2323,8 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci #lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ac97 #lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ac97/snd-ac97-codec.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ali5451 +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ali5451/snd-ali5451.ko #lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/au88x0 #lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/au88x0/snd-au8810.ko #lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/au88x0/snd-au8820.ko @@ -2047,15 +2425,16 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/vx222/snd-vx222.ko #lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ymfpci #lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ymfpci/snd-ymfpci.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pcmcia -#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pcmcia/pdaudiocf -#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pcmcia/pdaudiocf/snd-pdaudiocf.ko -#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pcmcia/vx -#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pcmcia/vx/snd-vxpocket.ko #lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc/atmel +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc/atmel/snd-soc-atmel-pcm.ko #lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc/codecs #lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc/codecs/snd-soc-alc5623.ko #lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc/codecs/snd-soc-cs42l51.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc/dwc +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc/dwc/designware_i2s.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc/generic +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc/generic/snd-soc-simple-card.ko #lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc/kirkwood #lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc/kirkwood/snd-soc-kirkwood-i2s.ko #lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc/kirkwood/snd-soc-kirkwood.ko @@ -2079,19 +2458,14 @@ lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/modules.alias #lib/modules/KVER-ipfire-kirkwood/modules.alias.bin #lib/modules/KVER-ipfire-kirkwood/modules.builtin -#lib/modules/KVER-ipfire-kirkwood/modules.ccwmap +#lib/modules/KVER-ipfire-kirkwood/modules.builtin.bin #lib/modules/KVER-ipfire-kirkwood/modules.dep #lib/modules/KVER-ipfire-kirkwood/modules.dep.bin -#lib/modules/KVER-ipfire-kirkwood/modules.ieee1394map -#lib/modules/KVER-ipfire-kirkwood/modules.inputmap -#lib/modules/KVER-ipfire-kirkwood/modules.isapnpmap -#lib/modules/KVER-ipfire-kirkwood/modules.ofmap +#lib/modules/KVER-ipfire-kirkwood/modules.devname #lib/modules/KVER-ipfire-kirkwood/modules.order -#lib/modules/KVER-ipfire-kirkwood/modules.pcimap -#lib/modules/KVER-ipfire-kirkwood/modules.seriomap +#lib/modules/KVER-ipfire-kirkwood/modules.softdep #lib/modules/KVER-ipfire-kirkwood/modules.symbols #lib/modules/KVER-ipfire-kirkwood/modules.symbols.bin -#lib/modules/KVER-ipfire-kirkwood/modules.usbmap #lib/modules/KVER-ipfire-kirkwood/source sbin/gen_init_cpio boot/uInit-ipfire-kirkwood diff --git a/config/rootfiles/common/armv5tel/linux-multi b/config/rootfiles/common/armv5tel/linux-multi new file mode 100644 index 0000000..89107a3 --- /dev/null +++ b/config/rootfiles/common/armv5tel/linux-multi @@ -0,0 +1,2433 @@ +boot/System.map-KVER-ipfire-multi +#boot/System.map-ipfire-multi +boot/config-KVER-ipfire-multi +boot/dtb-KVER-ipfire-multi +#boot/dtb-KVER-ipfire-multi/am335x-bone.dtb +#boot/dtb-KVER-ipfire-multi/am335x-evm.dtb +#boot/dtb-KVER-ipfire-multi/am335x-evmsk.dtb +#boot/dtb-KVER-ipfire-multi/armada-370-db.dtb +#boot/dtb-KVER-ipfire-multi/armada-370-mirabox.dtb +#boot/dtb-KVER-ipfire-multi/armada-370-rd.dtb +#boot/dtb-KVER-ipfire-multi/armada-xp-db.dtb +#boot/dtb-KVER-ipfire-multi/armada-xp-gp.dtb +#boot/dtb-KVER-ipfire-multi/armada-xp-openblocks-ax3-4.dtb +#boot/dtb-KVER-ipfire-multi/imx25-karo-tx25.dtb +#boot/dtb-KVER-ipfire-multi/imx25-pdk.dtb +#boot/dtb-KVER-ipfire-multi/imx27-apf27.dtb +#boot/dtb-KVER-ipfire-multi/imx27-apf27dev.dtb +#boot/dtb-KVER-ipfire-multi/imx27-pdk.dtb +#boot/dtb-KVER-ipfire-multi/imx27-phytec-phycore.dtb +#boot/dtb-KVER-ipfire-multi/imx31-bug.dtb +#boot/dtb-KVER-ipfire-multi/imx51-apf51.dtb +#boot/dtb-KVER-ipfire-multi/imx51-apf51dev.dtb +#boot/dtb-KVER-ipfire-multi/imx51-babbage.dtb +#boot/dtb-KVER-ipfire-multi/imx53-ard.dtb +#boot/dtb-KVER-ipfire-multi/imx53-evk.dtb +#boot/dtb-KVER-ipfire-multi/imx53-mba53.dtb +#boot/dtb-KVER-ipfire-multi/imx53-qsb.dtb +#boot/dtb-KVER-ipfire-multi/imx53-smd.dtb +#boot/dtb-KVER-ipfire-multi/imx6dl-sabreauto.dtb +#boot/dtb-KVER-ipfire-multi/imx6dl-sabresd.dtb +#boot/dtb-KVER-ipfire-multi/imx6dl-wandboard.dtb +#boot/dtb-KVER-ipfire-multi/imx6q-arm2.dtb +#boot/dtb-KVER-ipfire-multi/imx6q-cm-fx6.dtb +#boot/dtb-KVER-ipfire-multi/imx6q-sabreauto.dtb +#boot/dtb-KVER-ipfire-multi/imx6q-sabrelite.dtb +#boot/dtb-KVER-ipfire-multi/imx6q-sabresd.dtb +#boot/dtb-KVER-ipfire-multi/imx6q-sbc6x.dtb +#boot/dtb-KVER-ipfire-multi/imx6q-wandboard.dtb +#boot/dtb-KVER-ipfire-multi/omap2420-h4.dtb +#boot/dtb-KVER-ipfire-multi/omap3-beagle-xm.dtb +#boot/dtb-KVER-ipfire-multi/omap3-beagle.dtb +#boot/dtb-KVER-ipfire-multi/omap3-devkit8000.dtb +#boot/dtb-KVER-ipfire-multi/omap3-evm.dtb +#boot/dtb-KVER-ipfire-multi/omap3-igep0020.dtb +#boot/dtb-KVER-ipfire-multi/omap3-igep0030.dtb +#boot/dtb-KVER-ipfire-multi/omap3-tobi.dtb +#boot/dtb-KVER-ipfire-multi/omap3430-sdp.dtb +#boot/dtb-KVER-ipfire-multi/omap4-panda-a4.dtb +#boot/dtb-KVER-ipfire-multi/omap4-panda-es.dtb +#boot/dtb-KVER-ipfire-multi/omap4-panda.dtb +#boot/dtb-KVER-ipfire-multi/omap4-sdp.dtb +#boot/dtb-KVER-ipfire-multi/omap4-var-som.dtb +#boot/dtb-KVER-ipfire-multi/omap5-evm.dtb +#boot/dtb-KVER-ipfire-multi/sun4i-a10-cubieboard.dtb +#boot/dtb-KVER-ipfire-multi/sun4i-a10-hackberry.dtb +#boot/dtb-KVER-ipfire-multi/sun4i-a10-mini-xplus.dtb +#boot/dtb-KVER-ipfire-multi/sun5i-a13-olinuxino.dtb +#boot/dtb-KVER-ipfire-multi/vexpress-v2p-ca15-tc1.dtb +#boot/dtb-KVER-ipfire-multi/vexpress-v2p-ca15_a7.dtb +#boot/dtb-KVER-ipfire-multi/vexpress-v2p-ca5s.dtb +#boot/dtb-KVER-ipfire-multi/vexpress-v2p-ca9.dtb +#boot/dtb-KVER-ipfire-multi/vt8500-bv07.dtb +#boot/dtb-KVER-ipfire-multi/wm8505-ref.dtb +#boot/dtb-KVER-ipfire-multi/wm8650-mid.dtb +#boot/dtb-KVER-ipfire-multi/wm8850-w70v2.dtb +#boot/dtb-KVER-ipfire-multi/xenvm-4.2.dtb +#boot/dtb-KVER-ipfire-multi/zynq-zc702.dtb +boot/vmlinuz-KVER-ipfire-multi +boot/zImage-ipfire-multi +lib/modules/KVER-ipfire-multi +#lib/modules/KVER-ipfire-multi/build +#lib/modules/KVER-ipfire-multi/kernel +#lib/modules/KVER-ipfire-multi/kernel/arch +#lib/modules/KVER-ipfire-multi/kernel/arch/arm +#lib/modules/KVER-ipfire-multi/kernel/arch/arm/crypto +#lib/modules/KVER-ipfire-multi/kernel/arch/arm/crypto/aes-arm.ko +#lib/modules/KVER-ipfire-multi/kernel/arch/arm/mach-imx +#lib/modules/KVER-ipfire-multi/kernel/arch/arm/mach-imx/devices +#lib/modules/KVER-ipfire-multi/kernel/arch/arm/mach-imx/devices/wand-rfkill.ko +#lib/modules/KVER-ipfire-multi/kernel/arch/arm/oprofile +#lib/modules/KVER-ipfire-multi/kernel/arch/arm/oprofile/oprofile.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto +#lib/modules/KVER-ipfire-multi/kernel/crypto/ansi_cprng.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/anubis.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/arc4.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/asymmetric_keys +#lib/modules/KVER-ipfire-multi/kernel/crypto/asymmetric_keys/asymmetric_keys.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/asymmetric_keys/public_key.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/asymmetric_keys/rsa.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/asymmetric_keys/x509_key_parser.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/async_tx +#lib/modules/KVER-ipfire-multi/kernel/crypto/async_tx/async_memcpy.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/async_tx/async_pq.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/async_tx/async_raid6_recov.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/async_tx/async_tx.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/async_tx/async_xor.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/async_tx/raid6test.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/authenc.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/authencesn.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/blowfish_common.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/blowfish_generic.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/camellia_generic.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/cast5_generic.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/cast6_generic.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/cast_common.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/ccm.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/cmac.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/crypto_null.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/cts.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/deflate.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/des_generic.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/fcrypt.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/gcm.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/gf128mul.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/ghash-generic.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/khazad.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/lrw.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/lzo.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/md4.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/michael_mic.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/pcbc.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/pcrypt.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/rmd128.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/rmd160.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/rmd256.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/rmd320.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/salsa20_generic.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/seed.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/serpent_generic.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/sha512_generic.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/tcrypt.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/tea.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/tgr192.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/twofish_common.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/twofish_generic.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/vmac.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/wp512.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/xcbc.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/xor.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/xts.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/zlib.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/ahci_imx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/ahci_platform.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/libahci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_arasan_cf.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_imx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/sata_highbank.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/sata_mv.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/atm +#lib/modules/KVER-ipfire-multi/kernel/drivers/atm/atmtcp.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/atm/eni.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/atm/fore_200e.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/atm/he.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/atm/idt77252.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/atm/iphase.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/atm/lanai.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/atm/nicstar.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/atm/solos-pci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/atm/suni.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/block +#lib/modules/KVER-ipfire-multi/kernel/drivers/block/cryptoloop.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/bluetooth +#lib/modules/KVER-ipfire-multi/kernel/drivers/bluetooth/ath3k.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/bluetooth/bcm203x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/bluetooth/bfusb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/bluetooth/bpa10x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/bluetooth/btmrvl.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/bluetooth/btmrvl_sdio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/bluetooth/btsdio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/bluetooth/btusb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/bluetooth/btwilink.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/bluetooth/hci_uart.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/bluetooth/hci_vhci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/char +#lib/modules/KVER-ipfire-multi/kernel/drivers/char/hw_random +#lib/modules/KVER-ipfire-multi/kernel/drivers/char/hw_random/atmel-rng.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/char/hw_random/exynos-rng.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/char/hw_random/timeriomem-rng.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/char/ipmi +#lib/modules/KVER-ipfire-multi/kernel/drivers/char/ipmi/ipmi_devintf.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/char/ipmi/ipmi_msghandler.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/char/ipmi/ipmi_poweroff.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/char/ipmi/ipmi_si.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/char/ipmi/ipmi_watchdog.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/char/lp.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/char/ppdev.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/clk +#lib/modules/KVER-ipfire-multi/kernel/drivers/clk/clk-axi-clkgen.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/clk/clk-si5351.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/cpufreq +#lib/modules/KVER-ipfire-multi/kernel/drivers/cpufreq/imx6q-cpufreq.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/crypto +#lib/modules/KVER-ipfire-multi/kernel/drivers/crypto/hifn_795x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/crypto/mv_cesa.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/dma +#lib/modules/KVER-ipfire-multi/kernel/drivers/dma/timb_dma.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/firewire +#lib/modules/KVER-ipfire-multi/kernel/drivers/firewire/firewire-core.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/firewire/firewire-ohci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/firewire/firewire-sbp2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpio +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpio/gpio-adnp.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpio/gpio-mcp23s08.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpio/gpio-ts5500.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpio/gpio-viperboard.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/drm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/drm_kms_helper.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/drm_usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/exynos +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/exynos/exynosdrm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/i2c +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/i2c/ch7006.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/i2c/sil164.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/i2c/tda998x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/omapdrm +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/omapdrm/omapdrm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/tilcdc +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/tilcdc/tilcdc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/udl +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/udl/udl.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-aureal.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-gyration.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-keytouch.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-lcpower.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-lenovo-tpkbd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-logitech-dj.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-ortek.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-petalynx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-picolcd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-roccat-arvo.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-roccat-common.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-roccat-isku.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-roccat-kone.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-roccat-koneplus.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-roccat-konepure.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-roccat-kovaplus.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-roccat-lua.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-roccat-pyra.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-roccat-savu.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-roccat.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-saitek.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-samsung.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-sensor-hub.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-speedlink.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-sunplus.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-thingm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-tivo.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-topseed.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-twinhan.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-zydacron.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/i2c-hid +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/i2c-hid/i2c-hid.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hsi +#lib/modules/KVER-ipfire-multi/kernel/drivers/hsi/clients +#lib/modules/KVER-ipfire-multi/kernel/drivers/hsi/clients/hsi_char.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hsi/hsi.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/ad7414.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/ad7418.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/adm1021.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/adm1025.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/adm1026.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/adm1029.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/adm1031.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/adm9240.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/ads1015.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/ads7828.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/adt7410.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/adt7411.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/adt7462.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/adt7470.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/adt7475.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/adt7x10.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/amc6821.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/asc7621.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/atxp1.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/dme1737.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/ds1621.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/ds620.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/emc1403.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/emc6w201.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/f71805f.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/f71882fg.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/f75375s.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/g760a.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/gl518sm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/gl520sm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/hih6130.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/hwmon-vid.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/ibmaem.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/ibmpex.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/ina209.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/ina2xx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/it87.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/lineage-pem.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/lm73.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/lm75.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/lm77.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/lm78.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/lm80.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/lm83.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/lm85.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/lm87.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/lm90.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/lm92.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/lm93.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/lm95234.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/lm95241.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/lm95245.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/ltc4151.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/ltc4215.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/ltc4245.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/ltc4261.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/max16065.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/max1619.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/max1668.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/max197.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/max6639.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/max6642.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/max6650.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/max6697.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/mcp3021.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/nct6775.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/ntc_thermistor.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/pc87360.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/pc87427.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/pcf8591.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/pmbus +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/pmbus/adm1275.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/pmbus/lm25066.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/pmbus/max16064.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/pmbus/max34440.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/pmbus/max8688.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/pmbus/pmbus.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/pmbus/pmbus_core.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/pmbus/ucd9000.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/pmbus/ucd9200.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/sch5627.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/sch5636.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/sch56xx-common.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/sht15.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/sht21.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/smsc47b397.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/smsc47m1.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/smsc47m192.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/thmc50.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/tmp102.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/tmp401.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/tmp421.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/twl4030-madc-hwmon.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/vt1211.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/w83627ehf.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/w83627hf.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/w83781d.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/w83791d.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/w83792d.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/w83793.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/w83795.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/w83l785ts.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/w83l786ng.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/algos +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/algos/i2c-algo-bit.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/algos/i2c-algo-pca.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/busses +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/busses/i2c-cbus-gpio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/busses/i2c-diolan-u2c.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/busses/i2c-gpio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/busses/i2c-imx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/busses/i2c-parport-light.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/busses/i2c-parport.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/busses/i2c-pca-platform.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/busses/i2c-simtec.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/busses/i2c-tiny-usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/busses/i2c-versatile.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/busses/i2c-viperboard.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/i2c-dev.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/i2c-smbus.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/i2c-stub.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/iio +#lib/modules/KVER-ipfire-multi/kernel/drivers/iio/common +#lib/modules/KVER-ipfire-multi/kernel/drivers/iio/common/hid-sensors +#lib/modules/KVER-ipfire-multi/kernel/drivers/iio/common/hid-sensors/hid-sensor-iio-common.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/iio/common/hid-sensors/hid-sensor-trigger.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/iio/industrialio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/iio/kfifo_buf.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/ff-memless.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/input-polldev.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/keyboard +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/keyboard/gpio_keys_polled.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/keyboard/imx_keypad.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/keyboard/lm8333.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/keyboard/omap4-keypad.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/keyboard/twl4030_keypad.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/matrix-keymap.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/misc +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/misc/ati_remote2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/misc/cm109.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/misc/keyspan_remote.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/misc/powermate.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/misc/pwm-beeper.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/misc/retu-pwrbutton.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/misc/rotary_encoder.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/misc/twl4030-pwrbutton.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/misc/twl4030-vibra.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/misc/uinput.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/misc/yealink.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/mouse +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/mouse/appletouch.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/mouse/bcm5974.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/mouse/cyapa.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/mouse/psmouse.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/mouse/sermouse.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/mouse/synaptics_i2c.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/mouse/synaptics_usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/mouse/vsxxxaa.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/serio +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/serio/altera_ps2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/serio/ambakmi.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/serio/apbps2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/serio/arc_ps2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/serio/serio_raw.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/sparse-keymap.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/capi +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/capi/capi.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/capi/capidrv.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/capi/kernelcapi.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/divert +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/divert/dss1_divert.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/hisax +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/hisax/hfc4s8s_l1.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/hisax/hfc_usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/hisax/hisax.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/hisax/hisax_st5481.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/i4l +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/i4l/isdn.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/i4l/isdn_bsdcomp.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/i4l/isdnhdlc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/leds-bd2802.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/leds-blinkm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/leds-lm3530.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/leds-lm3533.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/leds-lm355x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/leds-lm3642.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/leds-lp3944.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/leds-lp5521.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/leds-lp5523.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/leds-lp5562.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/leds-lp55xx-common.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/leds-lt3593.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/leds-ot200.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/leds-pca9532.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/leds-pca955x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/leds-pca9633.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/leds-pwm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/leds-regulator.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/leds-tca6507.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/trigger +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/trigger/ledtrig-backlight.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/trigger/ledtrig-camera.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/trigger/ledtrig-gpio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/trigger/ledtrig-heartbeat.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/trigger/ledtrig-netdev.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/trigger/ledtrig-oneshot.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/trigger/ledtrig-timer.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/trigger/ledtrig-transient.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/bcache +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/bcache/bcache.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/dm-bio-prison.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/dm-bufio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/dm-cache-cleaner.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/dm-cache-mq.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/dm-cache.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/dm-crypt.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/dm-log-userspace.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/dm-multipath.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/dm-queue-length.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/dm-raid.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/dm-round-robin.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/dm-service-time.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/dm-verity.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/faulty.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/linear.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/multipath.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/persistent-data +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/persistent-data/dm-persistent-data.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/raid0.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/raid1.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/raid10.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/raid456.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/common +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/common/b2c2 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/common/b2c2/b2c2-flexcop.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/common/btcx-risc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/common/cx2341x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/common/cypress_firmware.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/common/saa7146 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/common/saa7146/saa7146.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/common/saa7146/saa7146_vv.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/common/siano +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/common/siano/smsdvb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/common/siano/smsmdtv.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/common/tveeprom.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/a8293.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/af9013.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/af9033.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/atbm8830.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/au8522_common.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/au8522_decoder.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/au8522_dig.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/bcm3510.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/cx22702.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/cx24110.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/cx24113.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/cx24116.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/cx24123.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/cxd2820r.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/dib0070.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/dib0090.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/dib3000mb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/dib3000mc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/dib7000m.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/dib7000p.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/dib8000.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/dibx000_common.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/drxd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/drxk.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/ds3000.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/dvb-pll.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/ec100.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/isl6405.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/isl6421.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/isl6423.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/it913x-fe.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/itd1000.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/ix2505v.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/l64781.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/lg2160.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/lgdt3305.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/lgdt330x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/lgs8gxx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/lnbp21.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/lnbp22.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/m88dc2800.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/m88ds3103.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/m88rs2000.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/mb86a16.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/mb86a20s.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/mt312.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/mt352.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/nxt200x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/nxt6000.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/or51132.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/or51211.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/rtl2830.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/rtl2832.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/s5h1409.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/s5h1411.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/s5h1420.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/s921.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/si21xx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/sp8870.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/sp887x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/stb0899.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/stb6000.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/stb6100.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/stv0288.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/stv0297.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/stv0299.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/stv0367.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/stv0900.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/stv090x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/stv6110.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/stv6110x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/tda10021.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/tda10023.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/tda10048.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/tda1004x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/tda10071.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/tda10086.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/tda18271c2dd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/tda665x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/tda8083.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/tda8261.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/tda826x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/ts2020.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/tua6100.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/ves1820.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/ves1x93.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/zl10036.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/zl10039.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/zl10353.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/adv7180.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/cs5345.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/cs53l32a.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/cx25840 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/cx25840/cx25840.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/m52790.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/msp3400.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/mt9v011.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/saa6588.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/saa7115.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/saa7127.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/saa717x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/soc_camera +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/soc_camera/imx074.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/soc_camera/mt9m001.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/soc_camera/mt9m111.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/soc_camera/mt9t031.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/soc_camera/mt9t112.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/soc_camera/mt9v022.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/soc_camera/ov2640.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/soc_camera/ov5642.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/soc_camera/ov6650.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/soc_camera/ov772x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/soc_camera/ov9640.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/soc_camera/ov9740.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/soc_camera/rj54n1cb0c.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/soc_camera/tw9910.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/tda7432.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/tda9840.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/tea6415c.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/tea6420.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/tvaudio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/tvp5150.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/upd64031a.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/upd64083.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/vp27smpx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/wm8739.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/wm8775.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/b2c2 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/b2c2/b2c2-flexcop-pci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/bt8xx +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/bt8xx/bt878.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/bt8xx/bttv.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/bt8xx/dst.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/bt8xx/dst_ca.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/bt8xx/dvb-bt8xx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/cx18 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/cx18/cx18-alsa.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/cx18/cx18.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/cx23885 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/cx23885/altera-ci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/cx23885/cx23885.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/cx25821 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/cx25821/cx25821-alsa.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/cx25821/cx25821.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/cx88 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/cx88/cx88-alsa.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/cx88/cx88-blackbird.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/cx88/cx88-dvb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/cx88/cx88-vp3054-i2c.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/cx88/cx8800.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/cx88/cx8802.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/cx88/cx88xx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/ddbridge +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/ddbridge/ddbridge.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/dm1105 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/dm1105/dm1105.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/ivtv +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/ivtv/ivtv-alsa.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/ivtv/ivtv.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/ivtv/ivtvfb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/mantis +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/mantis/hopper.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/mantis/mantis.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/mantis/mantis_core.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/ngene +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/ngene/ngene.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/pluto2 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/pluto2/pluto2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/pt1 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/pt1/earth-pt1.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/saa7134 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/saa7134/saa6752hs.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/saa7134/saa7134-alsa.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/saa7134/saa7134-dvb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/saa7134/saa7134-empress.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/saa7134/saa7134.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/saa7146 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/saa7146/hexium_gemini.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/saa7146/hexium_orion.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/saa7146/mxb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/saa7164 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/saa7164/saa7164.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/ttpci +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/ttpci/budget-av.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/ttpci/budget-ci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/ttpci/budget-core.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/ttpci/budget-patch.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/ttpci/budget.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/ttpci/dvb-ttpci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/ttpci/ttpci-eeprom.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/platform +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/platform/m2m-deinterlace.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/platform/sh_veu.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/platform/soc_camera +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/platform/soc_camera/mx3_camera.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/platform/soc_camera/soc_camera.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/platform/soc_camera/soc_camera_platform.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/platform/soc_camera/soc_mediabus.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/platform/timblogiw.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/gpio-ir-recv.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/iguanair.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/imon.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/ir-jvc-decoder.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/ir-lirc-codec.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/ir-mce_kbd-decoder.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/ir-nec-decoder.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/ir-rc5-decoder.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/ir-rc5-sz-decoder.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/ir-rc6-decoder.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/ir-sanyo-decoder.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/ir-sony-decoder.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-adstech-dvb-t-pci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-alink-dtu-m.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-anysee.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-apac-viewcomp.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-asus-pc39.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-asus-ps3-100.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-ati-tv-wonder-hd-600.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-ati-x10.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-avermedia-a16d.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-avermedia-cardbus.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-avermedia-dvbt.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-avermedia-m135a.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-avermedia-m733a-rm-k6.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-avermedia-rm-ks.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-avermedia.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-avertv-303.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-azurewave-ad-tu700.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-behold-columbus.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-behold.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-budget-ci-old.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-cinergy-1400.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-cinergy.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-dib0700-nec.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-dib0700-rc5.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-digitalnow-tinytwin.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-digittrade.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-dm1105-nec.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvb-t.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvbt-pro.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-dvbsky.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-em-terratec.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-encore-enltv-fm53.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-encore-enltv.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-encore-enltv2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-evga-indtube.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-eztv.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-flydvb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-flyvideo.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-fusionhdtv-mce.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-gadmei-rm008z.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-genius-tvgo-a11mce.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-gotview7135.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-hauppauge.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-imon-mce.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-imon-pad.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-iodata-bctv7e.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-it913x-v1.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-it913x-v2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-kaiomy.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-kworld-315u.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-kworld-pc150u.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-kworld-plus-tv-analog.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-leadtek-y04g0051.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-lirc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-lme2510.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-manli.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-medion-x10-digitainer.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-medion-x10-or2x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-medion-x10.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-msi-digivox-ii.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-msi-digivox-iii.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-msi-tvanywhere-plus.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-msi-tvanywhere.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-nebula.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-nec-terratec-cinergy-xs.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-norwood.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-npgtech.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-pctv-sedna.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-pinnacle-color.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-pinnacle-grey.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-pinnacle-pctv-hd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-pixelview-002t.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-pixelview-mk12.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-pixelview-new.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-pixelview.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-powercolor-real-angel.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-proteus-2309.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-purpletv.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-pv951.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-rc6-mce.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-real-audio-220-32-keys.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-reddo.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-snapstream-firefly.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-streamzap.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-tbs-nec.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-technisat-usb2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-terratec-cinergy-xs.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-terratec-slim-2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-terratec-slim.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-tevii-nec.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-tivo.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-total-media-in-hand-02.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-total-media-in-hand.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-trekstor.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-tt-1500.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-twinhan1027.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-videomate-m1f.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-videomate-s350.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-videomate-tv-pvr.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-winfast-usbii-deluxe.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-winfast.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/lirc_dev.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/mceusb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/rc-loopback.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/redrat3.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/streamzap.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/ttusbir.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/e4000.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/fc0011.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/fc0012.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/fc0013.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/fc2580.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/max2165.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/mt2060.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/mt2063.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/mt2131.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/mt2266.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/mxl5005s.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/mxl5007t.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/qt1010.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/r820t.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/tda18212.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/tda18218.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/tua9001.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/tuner_it913x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/au0828 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/au0828/au0828.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/b2c2 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/b2c2/b2c2-flexcop-usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/cpia2 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/cpia2/cpia2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/cx231xx +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/cx231xx/cx231xx-alsa.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/cx231xx/cx231xx-dvb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/cx231xx/cx231xx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb-v2 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-af9015.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-af9035.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-anysee.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-au6610.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-az6007.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-ce6230.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-dvbsky.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-ec168.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-gl861.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-it913x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-lmedm04.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-mxl111sf.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-rtl28xxu.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb-v2/dvb_usb_v2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb-v2/mxl111sf-demod.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb-v2/mxl111sf-tuner.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-a800.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-af9005-remote.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-af9005.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-az6027.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-cinergyT2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-cxusb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-dib0700.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-dibusb-common.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-dibusb-mb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-digitv.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-dtt200u.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-dtv5100.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-dw2102.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-friio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-gp8psk.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-m920x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-nova-t-usb2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-opera.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-pctv452e.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-ttusb2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-umt-010.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-vp702x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-vp7045.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/em28xx +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/em28xx/em28xx-alsa.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/em28xx/em28xx-dvb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/em28xx/em28xx-rc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/em28xx/em28xx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gl860 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gl860/gspca_gl860.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_benq.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_conex.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_cpia1.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_etoms.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_finepix.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_jeilinj.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_jl2005bcd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_kinect.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_konica.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_main.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_mars.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_mr97310a.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_nw80x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_ov519.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_ov534.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_ov534_9.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_pac207.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_pac7302.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_pac7311.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_se401.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_sn9c2028.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_sn9c20x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_sonixb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_sonixj.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_spca1528.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_spca500.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_spca501.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_spca505.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_spca506.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_spca508.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_spca561.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_sq905.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_sq905c.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_sq930x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_stk014.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_stv0680.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_sunplus.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_t613.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_tv8532.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_vc032x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_vicam.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_xirlink_cit.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_zc3xx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/m5602 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/m5602/gspca_m5602.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/stv06xx +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/stv06xx/gspca_stv06xx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/hdpvr +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/hdpvr/hdpvr.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/pvrusb2 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/pvrusb2/pvrusb2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/pwc +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/pwc/pwc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/s2255 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/s2255/s2255drv.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/siano +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/siano/smsusb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/sn9c102 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/sn9c102/sn9c102.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/stk1160 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/stk1160/stk1160.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/stkwebcam +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/stkwebcam/stkwebcam.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/tlg2300 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/tlg2300/poseidon.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/tm6000 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/tm6000/tm6000-alsa.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/tm6000/tm6000-dvb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/tm6000/tm6000.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/usbvision +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/usbvision/usbvision.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/uvc +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/uvc/uvcvideo.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/zr364xx +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/zr364xx/zr364xx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/v4l2-core +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/v4l2-core/tuner.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/v4l2-core/v4l2-int-device.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/v4l2-core/v4l2-mem2mem.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/v4l2-core/videobuf-dma-sg.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/v4l2-core/videobuf-dvb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/v4l2-core/videobuf-vmalloc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/v4l2-core/videobuf2-core.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/v4l2-core/videobuf2-dma-contig.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/v4l2-core/videobuf2-memops.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/v4l2-core/videobuf2-vmalloc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/memstick +#lib/modules/KVER-ipfire-multi/kernel/drivers/memstick/core +#lib/modules/KVER-ipfire-multi/kernel/drivers/memstick/core/memstick.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/memstick/core/mspro_block.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mfd +#lib/modules/KVER-ipfire-multi/kernel/drivers/mfd/lm3533-core.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mfd/lm3533-ctrlbank.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mfd/retu-mfd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mfd/sm501.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mfd/viperboard.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mfd/wl1273-core.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/misc +#lib/modules/KVER-ipfire-multi/kernel/drivers/misc/altera-stapl +#lib/modules/KVER-ipfire-multi/kernel/drivers/misc/altera-stapl/altera-stapl.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/misc/bmp085-i2c.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/misc/ds1682.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/misc/dummy-irq.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/misc/eeprom +#lib/modules/KVER-ipfire-multi/kernel/drivers/misc/eeprom/at24.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/misc/eeprom/eeprom.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/misc/eeprom/eeprom_93cx6.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/misc/eeprom/max6875.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/misc/enclosure.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/misc/fsa9480.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/misc/ics932s401.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/misc/ti-st +#lib/modules/KVER-ipfire-multi/kernel/drivers/misc/ti-st/st_drv.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mmc +#lib/modules/KVER-ipfire-multi/kernel/drivers/mmc/host +#lib/modules/KVER-ipfire-multi/kernel/drivers/mmc/host/dw_mmc-exynos.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mmc/host/dw_mmc-pltfm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mmc/host/dw_mmc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mmc/host/mmci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mmc/host/mxcmmc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mmc/host/sdhci-pxav2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mmc/host/sdhci-pxav3.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mmc/host/ushc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mmc/host/vub300.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mmc/host/wmt-sdmmc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mtd +#lib/modules/KVER-ipfire-multi/kernel/drivers/mtd/devices +#lib/modules/KVER-ipfire-multi/kernel/drivers/mtd/devices/elm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mtd/nand +#lib/modules/KVER-ipfire-multi/kernel/drivers/mtd/nand/gpmi-nand +#lib/modules/KVER-ipfire-multi/kernel/drivers/mtd/nand/gpmi-nand/gpmi_nand.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mtd/nand/mxc_nand.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/bonding +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/bonding/bonding.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/dummy.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/3com +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/3com/typhoon.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/8390 +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/8390/8390.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/8390/ax88796.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/8390/ne2k-pci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/adaptec +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/adaptec/starfire.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/alteon +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/alteon/acenic.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/amd +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/amd/amd8111e.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/amd/pcnet32.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/atheros +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/atheros/alx +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/atheros/alx/alx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/atheros/atl1c +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/atheros/atl1c/atl1c.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/atheros/atl1e +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/atheros/atl1e/atl1e.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/atheros/atlx +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/atheros/atlx/atl1.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/atheros/atlx/atl2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/broadcom +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/broadcom/b44.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/broadcom/bnx2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/broadcom/bnx2x +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/broadcom/bnx2x/bnx2x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/broadcom/cnic.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/broadcom/tg3.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/brocade +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/brocade/bna +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/brocade/bna/bna.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/cadence +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/cadence/at91_ether.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/cadence/macb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/calxeda +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/calxeda/xgmac.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/chelsio +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/chelsio/cxgb +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/chelsio/cxgb/cxgb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/chelsio/cxgb3 +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/chelsio/cxgb3/cxgb3.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/chelsio/cxgb4 +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/chelsio/cxgb4/cxgb4.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/chelsio/cxgb4vf +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/cirrus +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/cirrus/cs89x0.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/cisco +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/cisco/enic +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/cisco/enic/enic.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/davicom +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/davicom/dm9000.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/dec +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/dec/tulip +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/dec/tulip/de2104x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/dec/tulip/dmfe.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/dec/tulip/tulip.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/dec/tulip/uli526x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/dec/tulip/winbond-840.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/dlink +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/dlink/dl2k.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/dlink/sundance.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/dnet.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/emulex +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/emulex/benet +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/emulex/benet/be2net.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/ethoc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/faraday +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/faraday/ftgmac100.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/faraday/ftmac100.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/fealnx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/freescale +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/freescale/fec.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/hp +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/hp/hp100.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/icplus +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/icplus/ipg.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/intel +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/intel/e100.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/intel/e1000 +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/intel/e1000/e1000.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/intel/e1000e +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/intel/igb +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/intel/igb/igb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/intel/igbvf +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/intel/igbvf/igbvf.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/intel/ixgb +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/intel/ixgb/ixgb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/intel/ixgbe +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/intel/ixgbe/ixgbe.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/jme.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/marvell +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/marvell/mv643xx_eth.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/marvell/mvmdio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/marvell/mvneta.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/marvell/skge.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/marvell/sky2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/mellanox +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/mellanox/mlx4 +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/mellanox/mlx4/mlx4_core.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/mellanox/mlx4/mlx4_en.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/micrel +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/micrel/ks8842.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/micrel/ks8851_mll.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/micrel/ksz884x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/myricom +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/myricom/myri10ge +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/myricom/myri10ge/myri10ge.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/natsemi +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/natsemi/natsemi.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/natsemi/ns83820.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/neterion +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/neterion/s2io.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/neterion/vxge +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/neterion/vxge/vxge.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/nvidia +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/nvidia/forcedeth.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/oki-semi +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/oki-semi/pch_gbe +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/packetengines +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/packetengines/hamachi.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/packetengines/yellowfin.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/qlogic +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/qlogic/netxen +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/qlogic/netxen/netxen_nic.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/qlogic/qla3xxx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/qlogic/qlcnic +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/qlogic/qlcnic/qlcnic.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/qlogic/qlge +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/qlogic/qlge/qlge.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/rdc +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/rdc/r6040.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/realtek +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/realtek/8139cp.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/realtek/8139too.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/realtek/r8169.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/sfc +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/sfc/sfc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/silan +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/silan/sc92031.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/sis +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/sis/sis190.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/sis/sis900.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/smsc +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/smsc/epic100.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/smsc/smc911x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/smsc/smc91x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/smsc/smsc911x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/smsc/smsc9420.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/stmicro +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/stmicro/stmmac +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/stmicro/stmmac/stmmac.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/sun +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/sun/cassini.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/sun/niu.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/sun/sungem.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/sun/sunhme.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/tehuti +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/tehuti/tehuti.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/ti +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/ti/davinci_cpdma.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/ti/davinci_emac.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/ti/davinci_mdio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/ti/ti_cpsw.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/ti/tlan.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/via +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/via/via-rhine.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/via/via-velocity.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/wiznet +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/wiznet/w5100.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/wiznet/w5300.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ifb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/imq.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/macvlan.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/macvtap.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/mdio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/mii.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/netconsole.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/amd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/at803x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/bcm87xx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/broadcom.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/cicada.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/davicom.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/et1011c.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/icplus.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/lxt.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/marvell.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/mdio-bitbang.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/mdio-mux-gpio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/mdio-mux-mmioreg.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/mdio-mux.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/micrel.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/national.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/qsemi.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/realtek.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/smsc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/ste10Xp.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/vitesse.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ppp +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ppp/bsd_comp.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ppp/ppp_async.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ppp/ppp_deflate.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ppp/ppp_generic.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ppp/ppp_mppe.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ppp/ppp_synctty.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ppp/pppoe.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ppp/pppox.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ppp/pptp.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/slip +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/slip/slhc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/sungem_phy.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/tun.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/asix.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/ax88179_178a.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/catc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/cdc_eem.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/cdc_ether.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/cdc_mbim.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/cdc_ncm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/cdc_subset.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/cx82310_eth.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/dm9601.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/gl620a.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/hso.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/int51x1.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/ipheth.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/kalmia.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/kaweth.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/lg-vl600.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/mcs7830.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/net1080.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/pegasus.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/plusb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/qmi_wwan.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/r8152.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/rndis_host.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/rtl8150.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/sierra_net.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/smsc75xx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/smsc95xx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/usbnet.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/zaurus.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/veth.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/vmxnet3 +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/vmxnet3/vmxnet3.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/vxlan.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/adm8211.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/at76c50x-usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ath +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ath/ar5523 +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ath/ar5523/ar5523.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ath/ath.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ath/ath9k +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ath/ath9k/ath9k.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ath/ath9k/ath9k_common.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ath/ath9k/ath9k_htc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ath/ath9k/ath9k_hw.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ath/carl9170 +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ath/carl9170/carl9170.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/atmel.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/atmel_pci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/b43 +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/b43/b43.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/b43legacy +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/b43legacy/b43legacy.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/brcm80211 +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/brcm80211/brcmfmac +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/brcm80211/brcmfmac/brcmfmac.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/brcm80211/brcmutil +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/brcm80211/brcmutil/brcmutil.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/hostap +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/hostap/hostap.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/hostap/hostap_pci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/hostap/hostap_plx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ipw2x00 +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ipw2x00/ipw2100.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ipw2x00/ipw2200.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ipw2x00/libipw.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/iwlegacy +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/iwlegacy/iwl3945.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/iwlegacy/iwl4965.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/iwlegacy/iwlegacy.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/iwlwifi +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/iwlwifi/dvm +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/iwlwifi/dvm/iwldvm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/iwlwifi/iwlwifi.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/iwlwifi/mvm +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/iwlwifi/mvm/iwlmvm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/libertas +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/libertas/libertas.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/libertas/libertas_sdio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/libertas/usb8xxx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/libertas_tf +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/libertas_tf/libertas_tf.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/libertas_tf/libertas_tf_usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/mac80211_hwsim.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/mwifiex +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/mwifiex/mwifiex.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/mwifiex/mwifiex_pcie.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/mwifiex/mwifiex_sdio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/mwifiex/mwifiex_usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/mwl8k.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/orinoco +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/orinoco/orinoco.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/orinoco/orinoco_nortel.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/orinoco/orinoco_plx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/orinoco/orinoco_tmd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/orinoco/orinoco_usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/p54 +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/p54/p54common.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/p54/p54pci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/p54/p54usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/prism54 +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/prism54/prism54.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rndis_wlan.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rt2x00 +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rt2x00/rt2500usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rt2x00/rt2800lib.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rt2x00/rt2800usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rt2x00/rt2x00lib.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rt2x00/rt2x00usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rt2x00/rt73usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtl818x +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtl818x/rtl8180 +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtl818x/rtl8180/rtl8180.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtl818x/rtl8187 +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtl818x/rtl8187/rtl8187.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtlwifi +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtlwifi/rtl8188ee +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtlwifi/rtl8188ee/rtl8188ee.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtlwifi/rtl8192c +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtlwifi/rtl8192ce +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtlwifi/rtl8192ce/rtl8192ce.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtlwifi/rtl8192cu +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtlwifi/rtl8192cu/rtl8192cu.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtlwifi/rtl8192de +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtlwifi/rtl8192de/rtl8192de.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtlwifi/rtl8192se +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtlwifi/rtl8192se/rtl8192se.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtlwifi/rtl8723ae +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtlwifi/rtl8723ae/rtl8723ae.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtlwifi/rtlwifi.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ti +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ti/wl1251 +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ti/wl1251/wl1251.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ti/wl1251/wl1251_sdio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ti/wl12xx +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ti/wl12xx/wl12xx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ti/wl18xx +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ti/wl18xx/wl18xx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ti/wlcore +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ti/wlcore/wlcore.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ti/wlcore/wlcore_sdio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/zd1201.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/zd1211rw +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/zd1211rw/zd1211rw.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/parport +#lib/modules/KVER-ipfire-multi/kernel/drivers/parport/parport.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/power +#lib/modules/KVER-ipfire-multi/kernel/drivers/power/88pm860x_battery.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/power/88pm860x_charger.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/power/generic-adc-battery.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/pps +#lib/modules/KVER-ipfire-multi/kernel/drivers/pps/pps_core.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ptp +#lib/modules/KVER-ipfire-multi/kernel/drivers/ptp/ptp.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ptp/ptp_pch.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/pwm +#lib/modules/KVER-ipfire-multi/kernel/drivers/pwm/pwm-imx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/pwm/pwm-twl-led.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/pwm/pwm-twl.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/pwm/pwm-vt8500.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/anatop-regulator.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/lp8755.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/vexpress.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-88pm80x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-88pm860x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-bq32k.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-bq4802.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-ds1286.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-ds1307.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-ds1374.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-ds1511.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-ds1553.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-ds1672.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-ds1742.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-ds2404.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-ds3232.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-em3027.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-fm3130.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-hid-sensor-time.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-imxdi.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-isl12022.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-isl1208.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-m41t80.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-m48t35.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-m48t59.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-max6900.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-msm6242.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-mv.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-mxc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-pcf8523.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-pcf8563.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-pcf8583.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-pl030.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-pl031.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-rp5c01.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-rs5c372.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-rv3029c2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-rx8025.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-rx8581.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-snvs.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-stk17ta8.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-v3020.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-vt8500.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-x1205.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/3w-9xxx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/3w-sas.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/3w-xxxx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/a100u2w.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/aacraid +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/aacraid/aacraid.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/aic7xxx +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/aic7xxx/aic79xx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/aic7xxx/aic7xxx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/aic94xx +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/aic94xx/aic94xx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/arcmsr +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/arcmsr/arcmsr.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/atp870u.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/be2iscsi +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/be2iscsi/be2iscsi.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/bfa +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/bfa/bfa.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/bnx2fc +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/bnx2fc/bnx2fc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/bnx2i +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/bnx2i/bnx2i.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/ch.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/csiostor +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/csiostor/csiostor.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/cxgbi +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/cxgbi/cxgb3i +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/cxgbi/cxgb3i/cxgb3i.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/cxgbi/cxgb4i +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/cxgbi/cxgb4i/cxgb4i.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/cxgbi/libcxgbi.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/dc395x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/device_handler +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/device_handler/scsi_dh_alua.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/device_handler/scsi_dh_emc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/device_handler/scsi_dh_hp_sw.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/device_handler/scsi_dh_rdac.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/dmx3191d.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/fcoe +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/fcoe/fcoe.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/fcoe/libfcoe.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/fdomain.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/hpsa.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/hptiop.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/initio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/ipr.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/ips.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/iscsi_boot_sysfs.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/iscsi_tcp.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/libfc +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/libfc/libfc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/libiscsi.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/libiscsi_tcp.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/libsas +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/libsas/libsas.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/libsrp.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/lpfc +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/lpfc/lpfc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/megaraid +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/megaraid.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/megaraid/megaraid_sas.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/mpt2sas +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/mpt2sas/mpt2sas.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/mpt3sas +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/mpt3sas/mpt3sas.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/mvsas +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/mvsas/mvsas.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/mvumi.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/nsp32.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/osd +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/osd/libosd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/osd/osd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/osst.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/pm8001 +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/pm8001/pm80xx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/pmcraid.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/qla1280.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/qla2xxx +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/qla2xxx/qla2xxx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/qla4xxx +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/qla4xxx/qla4xxx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/raid_class.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/scsi_debug.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/scsi_tgt.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/scsi_transport_fc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/scsi_transport_iscsi.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/scsi_transport_sas.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/scsi_transport_spi.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/scsi_transport_srp.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/ses.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/st.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/stex.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/sym53c8xx_2 +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/sym53c8xx_2/sym53c8xx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/tmscsim.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/ufs +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/ufs/ufshcd-pci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/ufs/ufshcd-pltfrm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/ufs/ufshcd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ssb +#lib/modules/KVER-ipfire-multi/kernel/drivers/ssb/ssb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/staging +#lib/modules/KVER-ipfire-multi/kernel/drivers/staging/ced1401 +#lib/modules/KVER-ipfire-multi/kernel/drivers/staging/ced1401/cedusb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/staging/imx-drm +#lib/modules/KVER-ipfire-multi/kernel/drivers/staging/imx-drm/imxdrm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/staging/imx-drm/parallel-display.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/staging/rts5139 +#lib/modules/KVER-ipfire-multi/kernel/drivers/staging/rts5139/rts5139.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/staging/usbip +#lib/modules/KVER-ipfire-multi/kernel/drivers/staging/usbip/usbip-core.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/staging/usbip/usbip-host.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/staging/usbip/vhci-hcd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/thermal +#lib/modules/KVER-ipfire-multi/kernel/drivers/thermal/armada_thermal.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/thermal/imx_thermal.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/tty +#lib/modules/KVER-ipfire-multi/kernel/drivers/tty/n_gsm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/tty/n_hdlc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/tty/n_r3964.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/tty/serial +#lib/modules/KVER-ipfire-multi/kernel/drivers/tty/serial/arc_uart.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/tty/serial/sccnxp.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/uio +#lib/modules/KVER-ipfire-multi/kernel/drivers/uio/uio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/atm +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/atm/cxacru.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/atm/speedtch.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/atm/ueagle-atm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/atm/usbatm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/atm/xusbatm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/chipidea +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/chipidea/ci13xxx_imx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/chipidea/ci13xxx_msm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/chipidea/ci13xxx_pci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/chipidea/ci_hdrc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/chipidea/usbmisc_imx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/class +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/class/cdc-acm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/class/cdc-wdm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/class/usblp.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/class/usbtmc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/dwc3 +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/dwc3/dwc3-exynos.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/dwc3/dwc3-omap.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/dwc3/dwc3-pci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/dwc3/dwc3.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/host +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/host/ehci-mxc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/host/isp1362-hcd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/host/sl811-hcd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/host/ssb-hcd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/image +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/image/mdc800.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/image/microtek.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/misc +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/misc/adutux.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/misc/emi26.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/misc/emi62.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/misc/ezusb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/misc/ftdi-elan.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/misc/iowarrior.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/misc/sisusbvga +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/misc/sisusbvga/sisusbvga.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/misc/usb3503.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/misc/usblcd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/misc/usbled.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/misc/usbsevseg.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/misc/uss720.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/misc/yurex.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/mon +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/mon/usbmon.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/phy +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/phy/phy-gpio-vbus-usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/phy/phy-isp1301.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/phy/phy-mxs-usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/phy/phy-nop.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/phy/phy-omap-usb3.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/phy/phy-rcar-usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/phy/phy-samsung-usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/phy/phy-samsung-usb2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/phy/phy-samsung-usb3.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/aircable.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/ark3116.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/belkin_sa.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/ch341.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/cp210x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/cypress_m8.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/digi_acceleport.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/f81232.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/ftdi_sio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/funsoft.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/io_edgeport.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/io_ti.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/ipaq.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/ipw.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/ir-usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/iuu_phoenix.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/keyspan_pda.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/kl5kusb105.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/mct_u232.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/mos7720.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/mos7840.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/moto_modem.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/option.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/oti6858.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/pl2303.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/qcaux.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/qcserial.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/quatech2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/siemens_mpi.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/sierra.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/spcp8x5.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/ssu100.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/usb_wwan.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/usbserial.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/visor.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/whiteheat.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/zte_ev.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/storage +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/storage/ums-alauda.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/storage/ums-cypress.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/storage/ums-datafab.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/storage/ums-eneub6250.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/storage/ums-freecom.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/storage/ums-isd200.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/storage/ums-jumpshot.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/storage/ums-karma.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/storage/ums-onetouch.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/storage/ums-realtek.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/storage/ums-sddr09.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/storage/ums-sddr55.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/storage/ums-usbat.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/amba-clcd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/backlight +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/backlight/lcd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/backlight/platform_lcd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/cfbcopyarea.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/cfbfillrect.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/cfbimgblt.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/fb_sys_fops.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/omap2 +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/omap2/displays +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/omap2/displays/panel-generic-dpi.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/omap2/displays/panel-picodlp.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/omap2/displays/panel-sharp-ls037v7dw01.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/omap2/displays/panel-taal.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/omap2/displays/panel-tfp410.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/omap2/omapfb +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/omap2/omapfb/omapfb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/smscufx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/ssd1307fb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/w1 +#lib/modules/KVER-ipfire-multi/kernel/drivers/w1/masters +#lib/modules/KVER-ipfire-multi/kernel/drivers/w1/masters/ds1wm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/w1/masters/ds2482.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/w1/masters/ds2490.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/w1/masters/mxc_w1.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/w1/slaves +#lib/modules/KVER-ipfire-multi/kernel/drivers/w1/slaves/w1_bq27000.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/w1/slaves/w1_ds2408.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/w1/slaves/w1_ds2413.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/w1/slaves/w1_ds2423.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/w1/slaves/w1_ds2431.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/w1/slaves/w1_ds2433.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/w1/slaves/w1_ds2760.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/w1/slaves/w1_ds2780.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/w1/slaves/w1_ds2781.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/w1/slaves/w1_ds28e04.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/w1/slaves/w1_smem.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/w1/slaves/w1_therm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/w1/wire.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/watchdog +#lib/modules/KVER-ipfire-multi/kernel/drivers/watchdog/imx2_wdt.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/watchdog/mpcore_wdt.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/watchdog/omap_wdt.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/watchdog/pcwd_usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/watchdog/retu_wdt.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/watchdog/softdog.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/watchdog/sp805_wdt.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/watchdog/twl4030_wdt.ko +#lib/modules/KVER-ipfire-multi/kernel/fs +#lib/modules/KVER-ipfire-multi/kernel/fs/btrfs +#lib/modules/KVER-ipfire-multi/kernel/fs/btrfs/btrfs.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/cachefiles +#lib/modules/KVER-ipfire-multi/kernel/fs/cachefiles/cachefiles.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/cifs +#lib/modules/KVER-ipfire-multi/kernel/fs/cifs/cifs.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/configfs +#lib/modules/KVER-ipfire-multi/kernel/fs/configfs/configfs.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/dlm +#lib/modules/KVER-ipfire-multi/kernel/fs/dlm/dlm.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/exofs +#lib/modules/KVER-ipfire-multi/kernel/fs/exofs/libore.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/fat +#lib/modules/KVER-ipfire-multi/kernel/fs/fat/fat.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/fat/msdos.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/fat/vfat.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/fscache +#lib/modules/KVER-ipfire-multi/kernel/fs/fscache/fscache.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/fuse +#lib/modules/KVER-ipfire-multi/kernel/fs/fuse/cuse.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/fuse/fuse.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/lockd +#lib/modules/KVER-ipfire-multi/kernel/fs/lockd/lockd.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nfs +#lib/modules/KVER-ipfire-multi/kernel/fs/nfs/blocklayout +#lib/modules/KVER-ipfire-multi/kernel/fs/nfs/blocklayout/blocklayoutdriver.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nfs/nfs.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nfs/nfs_layout_nfsv41_files.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nfs/nfsv2.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nfs/nfsv3.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nfs/nfsv4.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nfs/objlayout +#lib/modules/KVER-ipfire-multi/kernel/fs/nfs/objlayout/objlayoutdriver.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nfs_common +#lib/modules/KVER-ipfire-multi/kernel/fs/nfs_common/nfs_acl.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nfsd +#lib/modules/KVER-ipfire-multi/kernel/fs/nfsd/nfsd.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/mac-celtic.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/mac-centeuro.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/mac-croatian.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/mac-cyrillic.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/mac-gaelic.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/mac-greek.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/mac-iceland.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/mac-inuit.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/mac-roman.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/mac-romanian.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/mac-turkish.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp1250.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp1251.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp1255.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp737.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp775.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp850.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp852.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp855.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp857.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp860.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp861.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp862.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp863.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp864.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp865.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp866.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp869.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp874.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp932.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp936.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp949.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp950.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_euc-jp.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_iso8859-1.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_iso8859-13.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_iso8859-14.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_iso8859-15.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_iso8859-2.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_iso8859-3.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_iso8859-4.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_iso8859-5.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_iso8859-6.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_iso8859-7.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_iso8859-9.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_koi8-r.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_koi8-ru.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_koi8-u.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_utf8.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/reiserfs +#lib/modules/KVER-ipfire-multi/kernel/fs/reiserfs/reiserfs.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/udf +#lib/modules/KVER-ipfire-multi/kernel/fs/udf/udf.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/xfs +#lib/modules/KVER-ipfire-multi/kernel/fs/xfs/xfs.ko +#lib/modules/KVER-ipfire-multi/kernel/kernel +#lib/modules/KVER-ipfire-multi/kernel/kernel/trace +#lib/modules/KVER-ipfire-multi/kernel/kernel/trace/ring_buffer_benchmark.ko +#lib/modules/KVER-ipfire-multi/kernel/lib +#lib/modules/KVER-ipfire-multi/kernel/lib/asn1_decoder.ko +#lib/modules/KVER-ipfire-multi/kernel/lib/bch.ko +#lib/modules/KVER-ipfire-multi/kernel/lib/cordic.ko +#lib/modules/KVER-ipfire-multi/kernel/lib/crc-itu-t.ko +#lib/modules/KVER-ipfire-multi/kernel/lib/crc7.ko +#lib/modules/KVER-ipfire-multi/kernel/lib/crc8.ko +#lib/modules/KVER-ipfire-multi/kernel/lib/libcrc32c.ko +#lib/modules/KVER-ipfire-multi/kernel/lib/mpi +#lib/modules/KVER-ipfire-multi/kernel/lib/mpi/mpi.ko +#lib/modules/KVER-ipfire-multi/kernel/lib/oid_registry.ko +#lib/modules/KVER-ipfire-multi/kernel/lib/raid6 +#lib/modules/KVER-ipfire-multi/kernel/lib/raid6/raid6_pq.ko +#lib/modules/KVER-ipfire-multi/kernel/lib/rbtree_test.ko +#lib/modules/KVER-ipfire-multi/kernel/lib/ts_bm.ko +#lib/modules/KVER-ipfire-multi/kernel/lib/ts_fsm.ko +#lib/modules/KVER-ipfire-multi/kernel/lib/ts_kmp.ko +#lib/modules/KVER-ipfire-multi/kernel/lib/zlib_deflate +#lib/modules/KVER-ipfire-multi/kernel/lib/zlib_deflate/zlib_deflate.ko +#lib/modules/KVER-ipfire-multi/kernel/net +#lib/modules/KVER-ipfire-multi/kernel/net/802 +#lib/modules/KVER-ipfire-multi/kernel/net/802/garp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/8021q +#lib/modules/KVER-ipfire-multi/kernel/net/8021q/8021q.ko +#lib/modules/KVER-ipfire-multi/kernel/net/atm +#lib/modules/KVER-ipfire-multi/kernel/net/atm/atm.ko +#lib/modules/KVER-ipfire-multi/kernel/net/atm/br2684.ko +#lib/modules/KVER-ipfire-multi/kernel/net/atm/clip.ko +#lib/modules/KVER-ipfire-multi/kernel/net/atm/pppoatm.ko +#lib/modules/KVER-ipfire-multi/kernel/net/batman-adv +#lib/modules/KVER-ipfire-multi/kernel/net/batman-adv/batman-adv.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bluetooth +#lib/modules/KVER-ipfire-multi/kernel/net/bluetooth/bluetooth.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bluetooth/bnep +#lib/modules/KVER-ipfire-multi/kernel/net/bluetooth/bnep/bnep.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bluetooth/cmtp +#lib/modules/KVER-ipfire-multi/kernel/net/bluetooth/cmtp/cmtp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bluetooth/hidp +#lib/modules/KVER-ipfire-multi/kernel/net/bluetooth/hidp/hidp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bluetooth/rfcomm +#lib/modules/KVER-ipfire-multi/kernel/net/bluetooth/rfcomm/rfcomm.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebt_802_3.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebt_among.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebt_arp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebt_arpreply.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebt_dnat.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebt_ip.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebt_ip6.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebt_limit.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebt_log.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebt_mark.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebt_mark_m.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebt_nflog.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebt_pkttype.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebt_redirect.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebt_snat.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebt_stp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebt_vlan.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebtable_broute.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebtable_filter.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebtable_nat.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebtables.ko +#lib/modules/KVER-ipfire-multi/kernel/net/core +#lib/modules/KVER-ipfire-multi/kernel/net/core/netprio_cgroup.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4 +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/ah4.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/esp4.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/gre.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/inet_diag.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/ip_gre.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/ip_tunnel.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/ip_vti.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/ipcomp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/ipip.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter/arp_tables.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter/arpt_mangle.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter/arptable_filter.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter/ipt_CLUSTERIP.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter/ipt_ECN.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter/ipt_MASQUERADE.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter/ipt_REJECT.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter/ipt_ah.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter/ipt_ipp2p.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter/ipt_rpfilter.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter/iptable_filter.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter/iptable_mangle.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter/iptable_nat.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter/iptable_raw.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter/iptable_security.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter/nf_nat_h323.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter/nf_nat_ipv4.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter/nf_nat_pptp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter/nf_nat_proto_gre.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter/nf_nat_snmp_basic.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/tcp_bic.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/tcp_diag.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/tcp_highspeed.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/tcp_htcp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/tcp_hybla.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/tcp_illinois.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/tcp_lp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/tcp_scalable.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/tcp_vegas.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/tcp_veno.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/tcp_westwood.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/tcp_yeah.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/tunnel4.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/udp_diag.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/xfrm4_mode_beet.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/xfrm4_mode_transport.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/xfrm4_mode_tunnel.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/xfrm4_tunnel.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6 +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/ah6.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/esp6.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/ip6_gre.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/ip6_tunnel.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/ipcomp6.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/mip6.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/netfilter +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/netfilter/ip6t_MASQUERADE.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/netfilter/ip6t_NPT.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/netfilter/ip6t_REJECT.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/netfilter/ip6t_ah.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/netfilter/ip6t_eui64.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/netfilter/ip6t_frag.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/netfilter/ip6t_hbh.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/netfilter/ip6t_ipv6header.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/netfilter/ip6t_mh.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/netfilter/ip6t_rpfilter.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/netfilter/ip6t_rt.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/netfilter/ip6table_filter.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/netfilter/ip6table_mangle.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/netfilter/ip6table_nat.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/netfilter/ip6table_raw.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/netfilter/ip6table_security.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/netfilter/nf_nat_ipv6.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/sit.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/tunnel6.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/xfrm6_mode_beet.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/xfrm6_mode_ro.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/xfrm6_mode_transport.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/xfrm6_mode_tunnel.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/xfrm6_tunnel.ko +#lib/modules/KVER-ipfire-multi/kernel/net/key +#lib/modules/KVER-ipfire-multi/kernel/net/key/af_key.ko +#lib/modules/KVER-ipfire-multi/kernel/net/l2tp +#lib/modules/KVER-ipfire-multi/kernel/net/l2tp/l2tp_core.ko +#lib/modules/KVER-ipfire-multi/kernel/net/l2tp/l2tp_eth.ko +#lib/modules/KVER-ipfire-multi/kernel/net/l2tp/l2tp_ip.ko +#lib/modules/KVER-ipfire-multi/kernel/net/l2tp/l2tp_ip6.ko +#lib/modules/KVER-ipfire-multi/kernel/net/l2tp/l2tp_netlink.ko +#lib/modules/KVER-ipfire-multi/kernel/net/l2tp/l2tp_ppp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/mac80211 +#lib/modules/KVER-ipfire-multi/kernel/net/mac80211/mac80211.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipset +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipset/ip_set.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipset/ip_set_bitmap_ip.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipset/ip_set_bitmap_ipmac.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipset/ip_set_bitmap_port.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipset/ip_set_hash_ip.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipset/ip_set_hash_ipport.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipset/ip_set_hash_ipportip.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipset/ip_set_hash_ipportnet.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipset/ip_set_hash_net.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipset/ip_set_hash_netiface.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipset/ip_set_hash_netport.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipset/ip_set_list_set.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipvs +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipvs/ip_vs.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipvs/ip_vs_dh.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipvs/ip_vs_ftp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipvs/ip_vs_lblc.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipvs/ip_vs_lblcr.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipvs/ip_vs_lc.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipvs/ip_vs_nq.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipvs/ip_vs_pe_sip.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipvs/ip_vs_rr.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipvs/ip_vs_sed.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipvs/ip_vs_sh.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipvs/ip_vs_wlc.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipvs/ip_vs_wrr.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_conntrack_amanda.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_conntrack_broadcast.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_conntrack_ftp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_conntrack_h323.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_conntrack_irc.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_conntrack_netbios_ns.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_conntrack_netlink.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_conntrack_pptp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_conntrack_proto_dccp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_conntrack_proto_gre.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_conntrack_proto_sctp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_conntrack_proto_udplite.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_conntrack_sane.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_conntrack_sip.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_conntrack_snmp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_conntrack_tftp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_nat.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_nat_amanda.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_nat_ftp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_nat_irc.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_nat_proto_dccp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_nat_proto_sctp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_nat_proto_udplite.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_nat_sip.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_nat_tftp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_tproxy_core.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nfnetlink.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nfnetlink_acct.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nfnetlink_cthelper.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nfnetlink_cttimeout.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nfnetlink_log.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nfnetlink_queue.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_AUDIT.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_CHECKSUM.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_CLASSIFY.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_CONNSECMARK.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_CT.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_DSCP.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_HL.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_HMARK.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_IDLETIMER.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_IMQ.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_LED.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_LOG.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_NETMAP.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_NFLOG.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_NFQUEUE.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_RATEEST.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_REDIRECT.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_SECMARK.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_TCPMSS.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_TCPOPTSTRIP.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_TEE.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_TPROXY.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_TRACE.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_addrtype.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_bpf.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_cluster.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_comment.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_connbytes.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_connlabel.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_connlimit.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_connmark.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_conntrack.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_cpu.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_dccp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_devgroup.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_dscp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_ecn.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_esp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_hashlimit.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_helper.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_hl.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_iprange.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_layer7.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_length.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_limit.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_mac.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_mark.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_multiport.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_nat.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_nfacct.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_osf.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_owner.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_physdev.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_pkttype.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_policy.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_quota.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_rateest.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_realm.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_recent.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_sctp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_set.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_socket.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_state.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_statistic.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_string.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_tcpmss.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_time.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_u32.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netlink +#lib/modules/KVER-ipfire-multi/kernel/net/netlink/netlink_diag.ko +#lib/modules/KVER-ipfire-multi/kernel/net/openvswitch +#lib/modules/KVER-ipfire-multi/kernel/net/openvswitch/openvswitch.ko +#lib/modules/KVER-ipfire-multi/kernel/net/rfkill +#lib/modules/KVER-ipfire-multi/kernel/net/rfkill/rfkill-regulator.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched +#lib/modules/KVER-ipfire-multi/kernel/net/sched/act_csum.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/act_gact.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/act_ipt.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/act_mirred.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/act_nat.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/act_pedit.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/act_police.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/act_simple.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/act_skbedit.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/cls_basic.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/cls_cgroup.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/cls_flow.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/cls_fw.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/cls_route.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/cls_rsvp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/cls_rsvp6.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/cls_tcindex.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/cls_u32.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/em_cmp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/em_ipset.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/em_meta.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/em_nbyte.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/em_text.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/em_u32.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_atm.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_cbq.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_choke.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_codel.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_drr.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_dsmark.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_fq_codel.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_gred.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_hfsc.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_htb.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_ingress.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_mqprio.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_multiq.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_netem.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_plug.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_prio.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_qfq.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_red.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_sfb.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_sfq.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_tbf.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_teql.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sctp +#lib/modules/KVER-ipfire-multi/kernel/net/sctp/sctp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sunrpc +#lib/modules/KVER-ipfire-multi/kernel/net/sunrpc/auth_gss +#lib/modules/KVER-ipfire-multi/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sunrpc/sunrpc.ko +#lib/modules/KVER-ipfire-multi/kernel/net/unix +#lib/modules/KVER-ipfire-multi/kernel/net/unix/unix_diag.ko +#lib/modules/KVER-ipfire-multi/kernel/net/vmw_vsock +#lib/modules/KVER-ipfire-multi/kernel/net/vmw_vsock/vsock.ko +#lib/modules/KVER-ipfire-multi/kernel/net/wireless +#lib/modules/KVER-ipfire-multi/kernel/net/wireless/cfg80211.ko +#lib/modules/KVER-ipfire-multi/kernel/net/wireless/lib80211.ko +#lib/modules/KVER-ipfire-multi/kernel/net/wireless/lib80211_crypt_ccmp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/wireless/lib80211_crypt_tkip.ko +#lib/modules/KVER-ipfire-multi/kernel/net/wireless/lib80211_crypt_wep.ko +#lib/modules/KVER-ipfire-multi/kernel/net/xfrm +#lib/modules/KVER-ipfire-multi/kernel/net/xfrm/xfrm_ipcomp.ko +#lib/modules/KVER-ipfire-multi/kernel/sound +#lib/modules/KVER-ipfire-multi/kernel/sound/ac97_bus.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/arm +#lib/modules/KVER-ipfire-multi/kernel/sound/arm/snd-aaci.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/core +#lib/modules/KVER-ipfire-multi/kernel/sound/core/oss +#lib/modules/KVER-ipfire-multi/kernel/sound/core/oss/snd-mixer-oss.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/core/oss/snd-pcm-oss.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/core/seq +#lib/modules/KVER-ipfire-multi/kernel/sound/core/seq/oss +#lib/modules/KVER-ipfire-multi/kernel/sound/core/seq/oss/snd-seq-oss.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/core/seq/snd-seq-device.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/core/seq/snd-seq-dummy.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/core/seq/snd-seq-midi-emul.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/core/seq/snd-seq-midi-event.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/core/seq/snd-seq-midi.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/core/seq/snd-seq-virmidi.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/core/seq/snd-seq.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/core/snd-compress.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/core/snd-hrtimer.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/core/snd-hwdep.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/core/snd-page-alloc.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/core/snd-pcm.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/core/snd-rawmidi.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/core/snd-timer.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/core/snd.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/drivers +#lib/modules/KVER-ipfire-multi/kernel/sound/drivers/mpu401 +#lib/modules/KVER-ipfire-multi/kernel/sound/drivers/mpu401/snd-mpu401-uart.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/drivers/mpu401/snd-mpu401.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/drivers/opl3 +#lib/modules/KVER-ipfire-multi/kernel/sound/drivers/opl3/snd-opl3-lib.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/drivers/opl3/snd-opl3-synth.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/drivers/snd-aloop.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/drivers/snd-dummy.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/drivers/snd-mtpav.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/drivers/snd-mts64.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/drivers/snd-portman2x4.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/drivers/snd-serial-u16550.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/drivers/snd-virmidi.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/drivers/vx +#lib/modules/KVER-ipfire-multi/kernel/sound/drivers/vx/snd-vx-lib.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/i2c +#lib/modules/KVER-ipfire-multi/kernel/sound/i2c/other +#lib/modules/KVER-ipfire-multi/kernel/sound/i2c/other/snd-ak4113.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/i2c/other/snd-ak4114.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/i2c/other/snd-ak4xxx-adda.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/i2c/other/snd-pt2258.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/i2c/other/snd-tea575x-tuner.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/i2c/snd-cs8427.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/i2c/snd-i2c.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/ac97 +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/ac97/snd-ac97-codec.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/ali5451 +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/ali5451/snd-ali5451.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/au88x0 +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/au88x0/snd-au8810.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/au88x0/snd-au8820.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/au88x0/snd-au8830.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/aw2 +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/aw2/snd-aw2.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/ca0106 +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/ca0106/snd-ca0106.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/cs46xx +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/cs46xx/snd-cs46xx.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/cs5535audio +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/cs5535audio/snd-cs5535audio.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/ctxfi +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/ctxfi/snd-ctxfi.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/echoaudio +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/echoaudio/snd-darla20.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/echoaudio/snd-darla24.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/echoaudio/snd-echo3g.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/echoaudio/snd-gina20.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/echoaudio/snd-gina24.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/echoaudio/snd-indigo.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/echoaudio/snd-indigodj.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/echoaudio/snd-indigodjx.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/echoaudio/snd-indigoio.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/echoaudio/snd-indigoiox.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/echoaudio/snd-layla20.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/echoaudio/snd-layla24.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/echoaudio/snd-mia.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/echoaudio/snd-mona.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/emu10k1 +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/emu10k1/snd-emu10k1-synth.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/emu10k1/snd-emu10k1.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/emu10k1/snd-emu10k1x.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/hda +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/hda/snd-hda-codec-analog.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/hda/snd-hda-codec-ca0110.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/hda/snd-hda-codec-ca0132.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/hda/snd-hda-codec-cirrus.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/hda/snd-hda-codec-cmedia.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/hda/snd-hda-codec-conexant.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/hda/snd-hda-codec-hdmi.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/hda/snd-hda-codec-idt.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/hda/snd-hda-codec-realtek.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/hda/snd-hda-codec-si3054.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/hda/snd-hda-codec-via.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/hda/snd-hda-codec.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/hda/snd-hda-intel.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/ice1712 +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/ice1712/snd-ice1712.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/ice1712/snd-ice1724.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/ice1712/snd-ice17xx-ak4xxx.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/korg1212 +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/korg1212/snd-korg1212.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/lola +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/lola/snd-lola.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/mixart +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/mixart/snd-mixart.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/nm256 +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/nm256/snd-nm256.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/oxygen +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/oxygen/snd-oxygen-lib.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/oxygen/snd-oxygen.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/oxygen/snd-virtuoso.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/pcxhr +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/pcxhr/snd-pcxhr.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/riptide +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/riptide/snd-riptide.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/rme9652 +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/rme9652/snd-hdsp.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/rme9652/snd-hdspm.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/rme9652/snd-rme9652.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-ad1889.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-als300.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-atiixp-modem.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-atiixp.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-azt3328.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-bt87x.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-cmipci.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-cs4281.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-ens1370.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-ens1371.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-es1938.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-es1968.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-fm801.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-intel8x0.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-intel8x0m.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-maestro3.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-rme32.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-rme96.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-sonicvibes.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-via82xx-modem.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-via82xx.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/trident +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/trident/snd-trident.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/vx222 +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/vx222/snd-vx222.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/ymfpci +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/ymfpci/snd-ymfpci.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/atmel +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/atmel/snd-soc-atmel-pcm.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/codecs +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/codecs/snd-soc-omap-hdmi-codec.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/codecs/snd-soc-sgtl5000.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/codecs/snd-soc-tlv320aic23.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/codecs/snd-soc-tlv320aic3x.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/codecs/snd-soc-tpa6130a2.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/codecs/snd-soc-twl4030.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/dwc +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/dwc/designware_i2s.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/fsl +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/fsl/snd-soc-fsl-ssi.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/fsl/snd-soc-fsl-utils.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/fsl/snd-soc-imx-audmux.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/fsl/snd-soc-imx-pcm.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/fsl/snd-soc-imx-sgtl5000.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/generic +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/generic/snd-soc-simple-card.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/omap +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/omap/snd-soc-am3517evm.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/omap/snd-soc-omap-hdmi-card.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/omap/snd-soc-omap-hdmi.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/omap/snd-soc-omap-mcbsp.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/omap/snd-soc-omap-twl4030.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/omap/snd-soc-omap.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/omap/snd-soc-omap3pandora.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/omap/snd-soc-rx51.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/snd-soc-core.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soundcore.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/synth +#lib/modules/KVER-ipfire-multi/kernel/sound/synth/emux +#lib/modules/KVER-ipfire-multi/kernel/sound/synth/emux/snd-emux-synth.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/synth/snd-util-mem.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/usb +#lib/modules/KVER-ipfire-multi/kernel/sound/usb/6fire +#lib/modules/KVER-ipfire-multi/kernel/sound/usb/6fire/snd-usb-6fire.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/usb/caiaq +#lib/modules/KVER-ipfire-multi/kernel/sound/usb/caiaq/snd-usb-caiaq.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/usb/misc +#lib/modules/KVER-ipfire-multi/kernel/sound/usb/misc/snd-ua101.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/usb/snd-usb-audio.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/usb/snd-usbmidi-lib.ko +#lib/modules/KVER-ipfire-multi/modules.alias +#lib/modules/KVER-ipfire-multi/modules.alias.bin +#lib/modules/KVER-ipfire-multi/modules.builtin +#lib/modules/KVER-ipfire-multi/modules.builtin.bin +#lib/modules/KVER-ipfire-multi/modules.dep +#lib/modules/KVER-ipfire-multi/modules.dep.bin +#lib/modules/KVER-ipfire-multi/modules.devname +#lib/modules/KVER-ipfire-multi/modules.order +#lib/modules/KVER-ipfire-multi/modules.softdep +#lib/modules/KVER-ipfire-multi/modules.symbols +#lib/modules/KVER-ipfire-multi/modules.symbols.bin +#lib/modules/KVER-ipfire-multi/source +boot/uInit-ipfire-multi diff --git a/config/rootfiles/common/armv5tel/linux-omap b/config/rootfiles/common/armv5tel/linux-omap deleted file mode 100644 index 708ec05..0000000 --- a/config/rootfiles/common/armv5tel/linux-omap +++ /dev/null @@ -1,1479 +0,0 @@ -boot/System.map-KVER-ipfire-omap -#boot/System.map-ipfire-omap -boot/config-KVER-ipfire-omap -boot/uImage-ipfire-omap -boot/vmlinuz-KVER-ipfire-omap -lib/modules/KVER-ipfire-omap -#lib/modules/KVER-ipfire-omap/build -#lib/modules/KVER-ipfire-omap/kernel -#lib/modules/KVER-ipfire-omap/kernel/crypto -#lib/modules/KVER-ipfire-omap/kernel/crypto/aes_generic.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/af_alg.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/algif_hash.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/algif_skcipher.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/ansi_cprng.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/anubis.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/arc4.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/async_tx -#lib/modules/KVER-ipfire-omap/kernel/crypto/async_tx/async_memcpy.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/async_tx/async_pq.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/async_tx/async_raid6_recov.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/async_tx/async_tx.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/async_tx/async_xor.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/async_tx/raid6test.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/authenc.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/authencesn.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/blowfish_common.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/blowfish_generic.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/camellia.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/cast5.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/cast6.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/cbc.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/ccm.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/crc32c.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/cryptd.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/crypto_user.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/ctr.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/cts.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/des_generic.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/ecb.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/fcrypt.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/gcm.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/gf128mul.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/ghash-generic.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/khazad.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/lrw.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/lzo.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/md4.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/md5.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/michael_mic.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/pcbc.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/pcrypt.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/rmd128.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/rmd160.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/rmd256.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/rmd320.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/salsa20_generic.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/seed.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/seqiv.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/serpent.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/sha1_generic.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/sha256_generic.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/sha512_generic.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/tea.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/tgr192.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/twofish_common.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/twofish_generic.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/vmac.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/wp512.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/xcbc.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/xor.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/xts.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/zlib.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers -#lib/modules/KVER-ipfire-omap/kernel/drivers/ata -#lib/modules/KVER-ipfire-omap/kernel/drivers/ata/ahci_platform.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/ata/libahci.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/ata/libata.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/ata/pata_arasan_cf.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/ata/pata_of_platform.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/ata/pata_platform.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/ata/sata_mv.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/atm -#lib/modules/KVER-ipfire-omap/kernel/drivers/atm/atmtcp.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/base -#lib/modules/KVER-ipfire-omap/kernel/drivers/base/regmap -#lib/modules/KVER-ipfire-omap/kernel/drivers/base/regmap/regmap-i2c.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/bcma -#lib/modules/KVER-ipfire-omap/kernel/drivers/bcma/bcma.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/block -#lib/modules/KVER-ipfire-omap/kernel/drivers/block/aoe -#lib/modules/KVER-ipfire-omap/kernel/drivers/block/aoe/aoe.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/block/cryptoloop.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/block/mg_disk.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/block/nbd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/block/osdblk.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/block/rbd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth -#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/ath3k.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/bcm203x.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/bfusb.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/bpa10x.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/btmrvl.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/btmrvl_sdio.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/btsdio.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/btusb.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/btwilink.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/hci_uart.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/hci_vhci.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/cdrom -#lib/modules/KVER-ipfire-omap/kernel/drivers/cdrom/cdrom.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/char -#lib/modules/KVER-ipfire-omap/kernel/drivers/char/hw_random -#lib/modules/KVER-ipfire-omap/kernel/drivers/char/hw_random/omap-rng.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/char/hw_random/rng-core.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/char/hw_random/timeriomem-rng.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/char/ipmi -#lib/modules/KVER-ipfire-omap/kernel/drivers/char/ipmi/ipmi_devintf.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/char/ipmi/ipmi_msghandler.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/char/ipmi/ipmi_poweroff.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/char/ipmi/ipmi_si.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/char/ipmi/ipmi_watchdog.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/char/lp.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/char/nvram.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/char/ppdev.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/connector -#lib/modules/KVER-ipfire-omap/kernel/drivers/connector/cn.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/crypto -#lib/modules/KVER-ipfire-omap/kernel/drivers/crypto/omap-aes.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/crypto/omap-sham.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/dma -#lib/modules/KVER-ipfire-omap/kernel/drivers/dma/dmatest.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/dma/dw_dmac.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/dma/timb_dma.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio -#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-adp5588.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-generic.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-it8761e.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-max7300.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-max730x.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-max732x.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-mcp23s08.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-pca953x.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-pcf857x.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-twl4030.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/gpu -#lib/modules/KVER-ipfire-omap/kernel/drivers/gpu/drm -#lib/modules/KVER-ipfire-omap/kernel/drivers/gpu/drm/drm.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-a4tech.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-apple.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-axff.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-belkin.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-cherry.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-chicony.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-cypress.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-dr.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-elecom.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-ezkey.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-gaff.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-gyration.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-holtekff.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-kensington.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-keytouch.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-kye.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-lcpower.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-logitech-dj.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-logitech.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-magicmouse.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-microsoft.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-monterey.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-multitouch.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-ntrig.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-ortek.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-petalynx.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-picolcd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-pl.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-primax.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-prodikeys.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-quanta.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-roccat-arvo.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-roccat-common.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-roccat-kone.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-roccat-koneplus.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-roccat-kovaplus.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-roccat-pyra.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-roccat.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-samsung.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-sjoy.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-sony.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-speedlink.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-sunplus.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-tmff.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-topseed.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-twinhan.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-uclogic.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-wacom.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-waltop.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-wiimote.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-zpff.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-zydacron.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/usbhid -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/usbhid/usbhid.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/usbhid/usbkbd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/usbhid/usbmouse.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ad7414.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ad7418.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adm1021.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adm1025.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adm1026.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adm1029.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adm1031.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adm9240.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ads1015.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ads7828.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adt7411.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adt7462.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adt7470.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adt7475.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/amc6821.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/asc7621.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/atxp1.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/dme1737.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ds1621.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ds620.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/emc1403.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/emc2103.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/emc6w201.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/f71805f.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/f71882fg.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/f75375s.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/g760a.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/gl518sm.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/gl520sm.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/gpio-fan.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/hwmon-vid.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/hwmon.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ibmaem.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ibmpex.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/it87.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/jc42.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lineage-pem.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm63.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm73.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm75.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm77.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm78.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm80.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm83.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm85.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm87.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm90.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm92.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm93.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm95241.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm95245.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ltc4151.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ltc4215.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ltc4245.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ltc4261.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/max16065.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/max1619.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/max1668.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/max6639.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/max6642.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/max6650.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ntc_thermistor.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pc87360.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pc87427.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pcf8591.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/adm1275.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/lm25066.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/ltc2978.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/max16064.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/max34440.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/max8688.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/pmbus.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/pmbus_core.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/ucd9000.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/ucd9200.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/zl6100.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/sch5627.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/sch5636.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/sch56xx-common.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/sht15.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/sht21.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/smm665.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/smsc47b397.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/smsc47m1.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/smsc47m192.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/thmc50.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/tmp102.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/tmp401.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/tmp421.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/twl4030-madc-hwmon.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/vt1211.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83627ehf.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83627hf.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83781d.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83791d.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83792d.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83793.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83795.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83l785ts.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83l786ng.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwspinlock -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwspinlock/hwspinlock_core.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwspinlock/omap_hwspinlock.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/algos -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/algos/i2c-algo-bit.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/algos/i2c-algo-pca.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-diolan-u2c.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-gpio.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-ocores.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-parport-light.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-parport.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-pca-platform.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-simtec.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-stub.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-taos-evm.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-tiny-usb.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-xiic.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/i2c-dev.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/i2c-mux.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/i2c-smbus.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/muxes -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/muxes/gpio-i2cmux.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/muxes/pca9541.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/muxes/pca954x.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/ieee802154 -#lib/modules/KVER-ipfire-omap/kernel/drivers/ieee802154/fakehard.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/ff-memless.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/input-polldev.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/adp5588-keys.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/adp5589-keys.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/gpio_keys.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/gpio_keys_polled.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/lkkbd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/lm8323.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/matrix_keypad.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/max7359_keypad.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/mcs_touchkey.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/mpr121_touchkey.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/newtonkbd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/omap-keypad.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/omap4-keypad.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/opencores-kbd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/qt1070.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/qt2160.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/stowaway.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/sunkbd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/tca6416-keypad.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/twl4030_keypad.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/xtkbd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/ad714x-i2c.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/ad714x.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/ati_remote2.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/bma150.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/cm109.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/keyspan_remote.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/pcf50633-input.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/pcf8574_keypad.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/powermate.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/pwm-beeper.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/rotary_encoder.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/twl4030-pwrbutton.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/twl4030-vibra.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/twl6040-vibra.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/yealink.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/serio -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/serio/altera_ps2.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/serio/ps2mult.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/sparse-keymap.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/capi -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/capi/capi.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/capi/capidrv.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/capi/kernelcapi.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/divert -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/divert/dss1_divert.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/gigaset -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/gigaset/bas_gigaset.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/gigaset/gigaset.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/gigaset/ser_gigaset.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/gigaset/usb_gigaset.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/hardware -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/hardware/mISDN -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/hardware/mISDN/hfcsusb.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/hisax -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/hisax/hfc4s8s_l1.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/hisax/hfc_usb.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/hisax/hisax.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/hisax/hisax_st5481.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/i4l -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/i4l/isdn.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/i4l/isdn_bsdcomp.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/i4l/isdnhdlc.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/mISDN -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/mISDN/l1oip.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/mISDN/mISDN_core.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/mISDN/mISDN_dsp.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/leds -#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-bd2802.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-gpio.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-lm3530.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-lp3944.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-lp5521.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-lp5523.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-lt3593.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-pca9532.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-pca955x.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-regulator.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/ledtrig-backlight.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/ledtrig-default-on.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/ledtrig-gpio.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/ledtrig-netdev.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/ledtrig-timer.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-bufio.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-crypt.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-delay.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-flakey.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-log-userspace.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-log.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-mirror.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-mod.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-multipath.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-queue-length.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-raid.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-region-hash.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-round-robin.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-service-time.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-snapshot.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-thin-pool.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-zero.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/linear.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/md-mod.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/multipath.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/persistent-data -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/persistent-data/dm-persistent-data.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/raid0.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/raid1.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/raid10.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/raid456.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/mc44s803.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/mt20xx.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tda18271.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tda827x.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tda8290.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tda9887.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tea5761.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tea5767.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tuner-simple.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tuner-types.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tuner-xc2028.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/xc4000.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/xc5000.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/dvb -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/dvb/dvb-core -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/dvb/dvb-core/dvb-core.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/media.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/radio -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/radio/wl128x -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/radio/wl128x/fm_drv.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-adstech-dvb-t-pci.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-alink-dtu-m.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-anysee.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-apac-viewcomp.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-asus-pc39.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-ati-tv-wonder-hd-600.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-ati-x10.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-avermedia-a16d.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-avermedia-cardbus.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-avermedia-dvbt.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-avermedia-m135a.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-avermedia-m733a-rm-k6.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-avermedia-rm-ks.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-avermedia.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-avertv-303.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-azurewave-ad-tu700.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-behold-columbus.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-behold.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-budget-ci-old.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-cinergy-1400.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-cinergy.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-dib0700-nec.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-dib0700-rc5.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-digitalnow-tinytwin.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-digittrade.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-dm1105-nec.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvb-t.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvbt-pro.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-em-terratec.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-encore-enltv-fm53.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-encore-enltv.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-encore-enltv2.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-evga-indtube.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-eztv.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-flydvb.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-flyvideo.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-fusionhdtv-mce.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-gadmei-rm008z.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-genius-tvgo-a11mce.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-gotview7135.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-hauppauge.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-imon-mce.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-imon-pad.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-iodata-bctv7e.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-kaiomy.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-kworld-315u.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-kworld-plus-tv-analog.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-leadtek-y04g0051.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-lirc.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-lme2510.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-manli.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-medion-x10.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-msi-digivox-ii.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-msi-digivox-iii.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-msi-tvanywhere-plus.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-msi-tvanywhere.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-nebula.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-nec-terratec-cinergy-xs.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-norwood.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-npgtech.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pctv-sedna.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pinnacle-color.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pinnacle-grey.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pinnacle-pctv-hd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pixelview-002t.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pixelview-mk12.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pixelview-new.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pixelview.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-powercolor-real-angel.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-proteus-2309.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-purpletv.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pv951.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-rc6-mce.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-real-audio-220-32-keys.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-snapstream-firefly.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-streamzap.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-tbs-nec.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-technisat-usb2.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-terratec-cinergy-xs.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-terratec-slim-2.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-terratec-slim.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-tevii-nec.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-tivo.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-total-media-in-hand.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-trekstor.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-tt-1500.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-twinhan1027.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-videomate-m1f.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-videomate-s350.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-videomate-tv-pvr.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-winfast-usbii-deluxe.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-winfast.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/lirc_dev.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/rc-core.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/video -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/video/ir-kbd-i2c.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/video/v4l2-common.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/video/v4l2-int-device.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/video/videodev.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/memstick -#lib/modules/KVER-ipfire-omap/kernel/drivers/memstick/core -#lib/modules/KVER-ipfire-omap/kernel/drivers/memstick/core/memstick.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/memstick/core/mspro_block.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd -#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/htc-pasic3.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/pcf50633-adc.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/pcf50633-gpio.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/pcf50633.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/sm501.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/tps6105x.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/tps65010.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/tps6507x.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/twl4030-madc.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/twl6030-pwm.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/wl1273-core.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/wm8400-core.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/apds9802als.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/apds990x.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/bh1770glc.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/bh1780gli.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/bmp085.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/c2port -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/c2port/core.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/ds1682.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/eeprom -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/eeprom/at24.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/eeprom/eeprom.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/eeprom/eeprom_93cx6.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/eeprom/max6875.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/enclosure.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/fsa9480.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/hmc6352.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/ics932s401.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/isl29003.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/isl29020.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/iwmc3200top -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/iwmc3200top/iwmc3200top.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/lis3lv02d -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/lis3lv02d/lis3lv02d.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/lis3lv02d/lis3lv02d_i2c.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/ti-st -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/ti-st/st_drv.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/tsl2550.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc -#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/card -#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/card/mmc_block.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/card/mmc_test.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/card/sdio_uart.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/host -#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/host/dw_mmc.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/host/sdhci-pltfm.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/host/sdhci.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/host/ushc.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/host/vub300.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/ar7part.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/chips -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/chips/chipreg.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/lpddr -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/lpddr/lpddr_cmds.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/lpddr/qinfo_probe.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/maps -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/maps/physmap.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/mtd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/mtd_blkdevs.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/mtdblock.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/mtdchar.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/nand -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/nand/nand_ecc.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/ofpart.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/sm_ftl.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests/mtd_nandecctest.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests/mtd_oobtest.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests/mtd_pagetest.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests/mtd_readtest.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests/mtd_speedtest.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests/mtd_stresstest.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests/mtd_subpagetest.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests/mtd_torturetest.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/ubi -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/ubi/ubi.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/bonding -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/bonding/bonding.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/dummy.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/eql.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/8390 -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/8390/ax88796.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/broadcom -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/broadcom/b44.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/davicom -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/davicom/dm9000.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/dlink -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/dlink/de600.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/dlink/de620.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/dnet.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/ethoc.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/micrel -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/micrel/ks8842.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/micrel/ks8851_mll.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/seeq -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/seeq/seeq8005.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/smsc -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/smsc/smc911x.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/smsc/smc91x.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/smsc/smsc911x.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/stmicro -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/stmicro/stmmac -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/stmicro/stmmac/stmmac.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ifb.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/imq.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda/irda-usb.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda/irtty-sir.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda/kingsun-sir.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda/ks959-sir.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda/ksdazzle-sir.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda/mcs7780.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda/sir-dev.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda/stir4200.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/macvlan.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/macvtap.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/mii.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/broadcom.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/cicada.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/davicom.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/dp83640.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/et1011c.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/icplus.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/lxt.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/marvell.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/mdio-bitbang.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/mdio-gpio.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/micrel.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/national.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/qsemi.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/realtek.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/smsc.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/ste10Xp.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/vitesse.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/bsd_comp.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/ppp_async.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/ppp_deflate.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/ppp_generic.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/ppp_mppe.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/ppp_synctty.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/pppoe.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/pppox.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/pptp.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/slip -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/slip/slhc.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/slip/slip.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/tun.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/asix.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/catc.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/cdc_eem.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/cdc_ether.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/cdc_ncm.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/cdc_subset.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/cx82310_eth.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/dm9601.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/gl620a.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/hso.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/int51x1.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/kalmia.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/kaweth.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/lg-vl600.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/mcs7830.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/net1080.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/pegasus.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/plusb.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/rndis_host.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/rtl8150.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/sierra_net.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/smsc75xx.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/smsc95xx.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/usbnet.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/zaurus.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/veth.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wan -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wan/dlci.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wan/hdlc.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wan/hdlc_cisco.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wan/hdlc_fr.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wan/hdlc_ppp.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wan/hdlc_raw.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wan/hdlc_raw_eth.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wireless -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wireless/at76c50x-usb.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wireless/hostap -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wireless/hostap/hostap.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wireless/rndis_wlan.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wireless/zd1201.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/parport -#lib/modules/KVER-ipfire-omap/kernel/drivers/parport/parport.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/parport/parport_ax88796.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/power -#lib/modules/KVER-ipfire-omap/kernel/drivers/power/gpio-charger.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/power/twl4030_charger.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/pps -#lib/modules/KVER-ipfire-omap/kernel/drivers/pps/pps_core.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/ptp -#lib/modules/KVER-ipfire-omap/kernel/drivers/ptp/ptp.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/regulator -#lib/modules/KVER-ipfire-omap/kernel/drivers/regulator/gpio-regulator.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-cmos.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-ds1286.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-ds1307.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-ds1374.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-ds1511.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-ds1553.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-ds1672.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-ds1742.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-ds3232.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-em3027.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-fm3130.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-isl12022.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-isl1208.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-m41t80.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-m48t35.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-m48t59.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-m48t86.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-max6900.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-msm6242.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-pcf50633.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-pcf8563.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-pcf8583.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-rp5c01.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-rs5c372.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-rv3029c2.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-rx8025.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-rx8581.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-s35390a.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-stk17ta8.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-v3020.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-x1205.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/ch.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/device_handler -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/device_handler/scsi_dh.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/device_handler/scsi_dh_alua.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/device_handler/scsi_dh_emc.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/device_handler/scsi_dh_hp_sw.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/device_handler/scsi_dh_rdac.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/fcoe -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/fcoe/libfcoe.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/iscsi_boot_sysfs.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/iscsi_tcp.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/libfc -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/libfc/libfc.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/libiscsi.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/libiscsi_tcp.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/libsas -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/libsas/libsas.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/osd -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/osd/libosd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/osd/osd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/raid_class.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/scsi_mod.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/scsi_transport_fc.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/scsi_transport_iscsi.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/scsi_transport_sas.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/scsi_transport_spi.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/scsi_transport_srp.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/scsi_wait_scan.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/sd_mod.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/ses.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/sg.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/sr_mod.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/ssb -#lib/modules/KVER-ipfire-omap/kernel/drivers/ssb/ssb.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/staging -#lib/modules/KVER-ipfire-omap/kernel/drivers/staging/usbip -#lib/modules/KVER-ipfire-omap/kernel/drivers/staging/usbip/usbip-core.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/staging/usbip/usbip-host.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/staging/usbip/vhci-hcd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/tty -#lib/modules/KVER-ipfire-omap/kernel/drivers/tty/n_gsm.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/tty/serial -#lib/modules/KVER-ipfire-omap/kernel/drivers/tty/serial/8250_dw.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/tty/serial/altera_jtaguart.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/tty/serial/altera_uart.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/tty/serial/timbuart.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/tty/serial/xilinx_uartps.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/uio -#lib/modules/KVER-ipfire-omap/kernel/drivers/uio/uio.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/uio/uio_pdrv.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/uio/uio_pdrv_genirq.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/atm -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/atm/cxacru.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/atm/speedtch.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/atm/ueagle-atm.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/atm/usbatm.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/atm/xusbatm.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/class -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/class/cdc-acm.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/class/cdc-wdm.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/class/usblp.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/class/usbtmc.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/dwc3 -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/dwc3/dwc3-omap.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/dwc3/dwc3.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/host -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/host/isp116x-hcd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/host/isp1362-hcd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/host/oxu210hp-hcd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/host/r8a66597-hcd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/host/sl811-hcd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/host/u132-hcd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/cypress_cy7c63.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/cytherm.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/emi26.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/emi62.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/ftdi-elan.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/iowarrior.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/isight_firmware.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/sisusbvga -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/sisusbvga/sisusbvga.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/usblcd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/usbled.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/usbsevseg.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/uss720.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/yurex.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/otg -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/otg/gpio_vbus.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/otg/twl4030-usb.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/otg/twl6030-usb.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/aircable.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/ark3116.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/belkin_sa.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/ch341.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/cp210x.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/cypress_m8.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/digi_acceleport.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/empeg.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/ftdi_sio.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/funsoft.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/garmin_gps.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/hp4x.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/io_edgeport.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/io_ti.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/ipaq.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/ipw.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/ir-usb.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/iuu_phoenix.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/keyspan_pda.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/mct_u232.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/mos7720.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/mos7840.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/moto_modem.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/opticon.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/option.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/oti6858.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/pl2303.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/qcaux.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/qcserial.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/safe_serial.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/siemens_mpi.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/sierra.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/spcp8x5.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/ssu100.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/symbolserial.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/ti_usb_3410_5052.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/usb_wwan.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/usbserial.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/visor.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/vivopay-serial.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/whiteheat.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/zio.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/uas.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-alauda.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-cypress.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-datafab.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-eneub6250.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-freecom.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-isd200.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-jumpshot.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-karma.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-onetouch.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-realtek.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-sddr09.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-sddr55.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-usbat.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/usb-storage.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/video -#lib/modules/KVER-ipfire-omap/kernel/drivers/video/backlight -#lib/modules/KVER-ipfire-omap/kernel/drivers/video/backlight/adp8860_bl.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/video/backlight/adp8870_bl.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/video/backlight/lcd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/video/backlight/pcf50633-backlight.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/video/backlight/platform_lcd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/video/backlight/pwm_bl.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/video/fb_sys_fops.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/video/metronomefb.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/video/output.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/video/sm501fb.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/video/smscufx.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/video/syscopyarea.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/video/sysfillrect.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/video/sysimgblt.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/video/tmiofb.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/video/uvesafb.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/w1 -#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/masters -#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/masters/ds1wm.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/masters/ds2482.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/masters/ds2490.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/masters/omap_hdq.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/masters/w1-gpio.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves -#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_bq27000.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_ds2408.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_ds2423.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_ds2431.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_ds2433.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_ds2760.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_ds2780.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_smem.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_therm.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/wire.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/watchdog -#lib/modules/KVER-ipfire-omap/kernel/drivers/watchdog/dw_wdt.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/watchdog/max63xx_wdt.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/watchdog/mpcore_wdt.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/watchdog/omap_wdt.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/watchdog/pcwd_usb.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/watchdog/softdog.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/watchdog/twl4030_wdt.ko -#lib/modules/KVER-ipfire-omap/kernel/fs -#lib/modules/KVER-ipfire-omap/kernel/fs/autofs4 -#lib/modules/KVER-ipfire-omap/kernel/fs/autofs4/autofs4.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/cachefiles -#lib/modules/KVER-ipfire-omap/kernel/fs/cachefiles/cachefiles.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/cifs -#lib/modules/KVER-ipfire-omap/kernel/fs/cifs/cifs.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/ecryptfs -#lib/modules/KVER-ipfire-omap/kernel/fs/ecryptfs/ecryptfs.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/exportfs -#lib/modules/KVER-ipfire-omap/kernel/fs/exportfs/exportfs.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/fat -#lib/modules/KVER-ipfire-omap/kernel/fs/fat/fat.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/fat/vfat.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/fscache -#lib/modules/KVER-ipfire-omap/kernel/fs/fscache/fscache.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/fuse -#lib/modules/KVER-ipfire-omap/kernel/fs/fuse/cuse.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/fuse/fuse.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/isofs -#lib/modules/KVER-ipfire-omap/kernel/fs/isofs/isofs.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/jffs2 -#lib/modules/KVER-ipfire-omap/kernel/fs/jffs2/jffs2.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/jfs -#lib/modules/KVER-ipfire-omap/kernel/fs/jfs/jfs.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/lockd -#lib/modules/KVER-ipfire-omap/kernel/fs/lockd/lockd.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/nfs -#lib/modules/KVER-ipfire-omap/kernel/fs/nfs/nfs.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/nfs_common -#lib/modules/KVER-ipfire-omap/kernel/fs/nfs_common/nfs_acl.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/nfsd -#lib/modules/KVER-ipfire-omap/kernel/fs/nfsd/nfsd.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/quota -#lib/modules/KVER-ipfire-omap/kernel/fs/quota/quota_tree.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/quota/quota_v1.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/quota/quota_v2.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/reiserfs -#lib/modules/KVER-ipfire-omap/kernel/fs/reiserfs/reiserfs.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/udf -#lib/modules/KVER-ipfire-omap/kernel/fs/udf/udf.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/ufs -#lib/modules/KVER-ipfire-omap/kernel/fs/ufs/ufs.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/xfs -#lib/modules/KVER-ipfire-omap/kernel/fs/xfs/xfs.ko -#lib/modules/KVER-ipfire-omap/kernel/lib -#lib/modules/KVER-ipfire-omap/kernel/lib/cordic.ko -#lib/modules/KVER-ipfire-omap/kernel/lib/crc-ccitt.ko -#lib/modules/KVER-ipfire-omap/kernel/lib/crc-itu-t.ko -#lib/modules/KVER-ipfire-omap/kernel/lib/crc-t10dif.ko -#lib/modules/KVER-ipfire-omap/kernel/lib/crc7.ko -#lib/modules/KVER-ipfire-omap/kernel/lib/crc8.ko -#lib/modules/KVER-ipfire-omap/kernel/lib/libcrc32c.ko -#lib/modules/KVER-ipfire-omap/kernel/lib/raid6 -#lib/modules/KVER-ipfire-omap/kernel/lib/raid6/raid6_pq.ko -#lib/modules/KVER-ipfire-omap/kernel/lib/ts_bm.ko -#lib/modules/KVER-ipfire-omap/kernel/lib/ts_fsm.ko -#lib/modules/KVER-ipfire-omap/kernel/lib/ts_kmp.ko -#lib/modules/KVER-ipfire-omap/kernel/net -#lib/modules/KVER-ipfire-omap/kernel/net/802 -#lib/modules/KVER-ipfire-omap/kernel/net/802/garp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/802/p8022.ko -#lib/modules/KVER-ipfire-omap/kernel/net/802/psnap.ko -#lib/modules/KVER-ipfire-omap/kernel/net/802/stp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/8021q -#lib/modules/KVER-ipfire-omap/kernel/net/8021q/8021q.ko -#lib/modules/KVER-ipfire-omap/kernel/net/atm -#lib/modules/KVER-ipfire-omap/kernel/net/atm/atm.ko -#lib/modules/KVER-ipfire-omap/kernel/net/atm/br2684.ko -#lib/modules/KVER-ipfire-omap/kernel/net/atm/clip.ko -#lib/modules/KVER-ipfire-omap/kernel/net/atm/pppoatm.ko -#lib/modules/KVER-ipfire-omap/kernel/net/batman-adv -#lib/modules/KVER-ipfire-omap/kernel/net/batman-adv/batman-adv.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth -#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/bluetooth.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/bnep -#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/bnep/bnep.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/cmtp -#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/cmtp/cmtp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/hidp -#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/hidp/hidp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/rfcomm -#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/rfcomm/rfcomm.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/bridge.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_802_3.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_among.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_arp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_arpreply.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_dnat.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_ip.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_ip6.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_limit.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_log.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_mark.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_mark_m.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_nflog.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_pkttype.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_redirect.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_snat.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_stp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_ulog.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_vlan.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebtable_broute.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebtable_filter.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebtable_nat.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebtables.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ceph -#lib/modules/KVER-ipfire-omap/kernel/net/ceph/libceph.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ieee802154 -#lib/modules/KVER-ipfire-omap/kernel/net/ieee802154/6lowpan.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ieee802154/af_802154.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ieee802154/ieee802154.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4 -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/ah4.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/esp4.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/gre.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/inet_diag.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/ip_gre.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/ipcomp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/ipip.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/arp_tables.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/arpt_mangle.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/arptable_filter.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ip_queue.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ip_tables.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_CLUSTERIP.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_ECN.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_LOG.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_MASQUERADE.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_NETMAP.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_REDIRECT.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_REJECT.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_ULOG.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_ah.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_ecn.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_ipp2p.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/iptable_filter.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/iptable_mangle.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/iptable_nat.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/iptable_raw.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_conntrack_ipv4.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_defrag_ipv4.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_amanda.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_ftp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_h323.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_irc.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_pptp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_proto_dccp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_proto_gre.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_proto_sctp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_proto_udplite.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_sip.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_snmp_basic.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_tftp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_bic.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_cubic.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_diag.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_highspeed.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_htcp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_hybla.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_illinois.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_lp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_scalable.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_vegas.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_veno.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_westwood.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_yeah.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tunnel4.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/xfrm4_tunnel.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6 -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/ah6.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/esp6.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/ip6_tunnel.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/ipcomp6.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/mip6.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6_queue.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6_tables.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_LOG.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_REJECT.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_ah.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_eui64.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_frag.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_hbh.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_ipv6header.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_mh.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_rt.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6table_filter.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6table_mangle.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6table_raw.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/nf_conntrack_ipv6.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/nf_defrag_ipv6.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/sit.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/tunnel6.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/xfrm6_mode_beet.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/xfrm6_mode_ro.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/xfrm6_mode_transport.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/xfrm6_mode_tunnel.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/xfrm6_tunnel.ko -#lib/modules/KVER-ipfire-omap/kernel/net/irda -#lib/modules/KVER-ipfire-omap/kernel/net/irda/ircomm -#lib/modules/KVER-ipfire-omap/kernel/net/irda/ircomm/ircomm-tty.ko -#lib/modules/KVER-ipfire-omap/kernel/net/irda/ircomm/ircomm.ko -#lib/modules/KVER-ipfire-omap/kernel/net/irda/irda.ko -#lib/modules/KVER-ipfire-omap/kernel/net/irda/irlan -#lib/modules/KVER-ipfire-omap/kernel/net/irda/irlan/irlan.ko -#lib/modules/KVER-ipfire-omap/kernel/net/irda/irnet -#lib/modules/KVER-ipfire-omap/kernel/net/irda/irnet/irnet.ko -#lib/modules/KVER-ipfire-omap/kernel/net/key -#lib/modules/KVER-ipfire-omap/kernel/net/key/af_key.ko -#lib/modules/KVER-ipfire-omap/kernel/net/l2tp -#lib/modules/KVER-ipfire-omap/kernel/net/l2tp/l2tp_core.ko -#lib/modules/KVER-ipfire-omap/kernel/net/l2tp/l2tp_eth.ko -#lib/modules/KVER-ipfire-omap/kernel/net/l2tp/l2tp_ip.ko -#lib/modules/KVER-ipfire-omap/kernel/net/l2tp/l2tp_netlink.ko -#lib/modules/KVER-ipfire-omap/kernel/net/l2tp/l2tp_ppp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/llc -#lib/modules/KVER-ipfire-omap/kernel/net/llc/llc.ko -#lib/modules/KVER-ipfire-omap/kernel/net/mac80211 -#lib/modules/KVER-ipfire-omap/kernel/net/mac80211/mac80211.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/ipvs -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/ipvs/ip_vs.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/ipvs/ip_vs_dh.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/ipvs/ip_vs_ftp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/ipvs/ip_vs_lblc.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/ipvs/ip_vs_lblcr.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/ipvs/ip_vs_lc.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/ipvs/ip_vs_nq.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/ipvs/ip_vs_pe_sip.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/ipvs/ip_vs_rr.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/ipvs/ip_vs_sed.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/ipvs/ip_vs_sh.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/ipvs/ip_vs_wlc.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/ipvs/ip_vs_wrr.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_amanda.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_broadcast.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_ftp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_h323.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_irc.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_netbios_ns.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_netlink.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_pptp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_proto_dccp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_proto_gre.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_proto_sctp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_proto_udplite.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_sane.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_sip.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_snmp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_tftp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_tproxy_core.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nfnetlink.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nfnetlink_log.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nfnetlink_queue.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/x_tables.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_AUDIT.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_CHECKSUM.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_CLASSIFY.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_CT.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_DSCP.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_HL.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_IDLETIMER.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_IMQ.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_LED.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_NFLOG.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_NFQUEUE.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_NOTRACK.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_RATEEST.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_TCPMSS.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_TCPOPTSTRIP.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_TEE.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_TPROXY.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_TRACE.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_addrtype.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_cluster.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_comment.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_connbytes.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_connlimit.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_connmark.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_conntrack.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_cpu.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_dccp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_devgroup.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_dscp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_esp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_hashlimit.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_helper.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_hl.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_iprange.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_ipvs.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_layer7.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_length.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_limit.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_mac.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_mark.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_multiport.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_osf.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_owner.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_physdev.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_pkttype.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_policy.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_quota.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_rateest.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_realm.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_recent.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_sctp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_socket.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_state.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_statistic.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_string.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_tcpmss.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_tcpudp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_time.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_u32.ko -#lib/modules/KVER-ipfire-omap/kernel/net/rfkill -#lib/modules/KVER-ipfire-omap/kernel/net/rfkill/rfkill-gpio.ko -#lib/modules/KVER-ipfire-omap/kernel/net/rfkill/rfkill-regulator.ko -#lib/modules/KVER-ipfire-omap/kernel/net/rfkill/rfkill.ko -#lib/modules/KVER-ipfire-omap/kernel/net/rxrpc -#lib/modules/KVER-ipfire-omap/kernel/net/rxrpc/af-rxrpc.ko -#lib/modules/KVER-ipfire-omap/kernel/net/rxrpc/rxkad.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched -#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_csum.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_gact.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_ipt.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_mirred.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_nat.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_pedit.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_police.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_simple.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_skbedit.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/cls_basic.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/cls_flow.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/cls_fw.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/cls_route.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/cls_rsvp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/cls_rsvp6.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/cls_tcindex.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/cls_u32.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/em_cmp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/em_meta.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/em_nbyte.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/em_text.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/em_u32.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_atm.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_cbq.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_choke.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_drr.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_dsmark.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_gred.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_hfsc.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_htb.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_ingress.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_mqprio.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_multiq.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_netem.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_prio.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_qfq.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_red.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_sfb.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_sfq.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_tbf.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_teql.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sunrpc -#lib/modules/KVER-ipfire-omap/kernel/net/sunrpc/auth_gss -#lib/modules/KVER-ipfire-omap/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sunrpc/sunrpc.ko -#lib/modules/KVER-ipfire-omap/kernel/net/wireless -#lib/modules/KVER-ipfire-omap/kernel/net/wireless/cfg80211.ko -#lib/modules/KVER-ipfire-omap/kernel/net/wireless/lib80211.ko -#lib/modules/KVER-ipfire-omap/kernel/net/wireless/lib80211_crypt_ccmp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/wireless/lib80211_crypt_tkip.ko -#lib/modules/KVER-ipfire-omap/kernel/net/wireless/lib80211_crypt_wep.ko -#lib/modules/KVER-ipfire-omap/kernel/net/xfrm -#lib/modules/KVER-ipfire-omap/kernel/net/xfrm/xfrm_ipcomp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/xfrm/xfrm_user.ko -#lib/modules/KVER-ipfire-omap/kernel/sound -#lib/modules/KVER-ipfire-omap/kernel/sound/core -#lib/modules/KVER-ipfire-omap/kernel/sound/core/oss -#lib/modules/KVER-ipfire-omap/kernel/sound/core/oss/snd-mixer-oss.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/core/oss/snd-pcm-oss.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq -#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq/oss -#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq/oss/snd-seq-oss.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq/snd-seq-device.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq/snd-seq-dummy.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq/snd-seq-midi-event.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq/snd-seq-midi.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq/snd-seq-virmidi.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq/snd-seq.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/core/snd-hrtimer.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/core/snd-hwdep.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/core/snd-page-alloc.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/core/snd-pcm.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/core/snd-rawmidi.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/core/snd-timer.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/core/snd.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/drivers -#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/mpu401 -#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/mpu401/snd-mpu401-uart.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/mpu401/snd-mpu401.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/snd-aloop.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/snd-dummy.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/snd-mtpav.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/snd-mts64.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/snd-portman2x4.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/snd-serial-u16550.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/snd-virmidi.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/soc -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/codecs -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/codecs/snd-soc-tlv320aic23.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/codecs/snd-soc-tlv320aic3x.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/codecs/snd-soc-tpa6130a2.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/codecs/snd-soc-twl4030.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/codecs/snd-soc-twl6040.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-am3517evm.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-igep0020.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-omap-mcbsp.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-omap-mcpdm.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-omap.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-omap3beagle.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-omap3evm.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-omap3pandora.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-overo.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-rx51.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-sdp3430.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-sdp4430.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-zoom2.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/snd-soc-core.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/soundcore.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/usb -#lib/modules/KVER-ipfire-omap/kernel/sound/usb/6fire -#lib/modules/KVER-ipfire-omap/kernel/sound/usb/6fire/snd-usb-6fire.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/usb/caiaq -#lib/modules/KVER-ipfire-omap/kernel/sound/usb/caiaq/snd-usb-caiaq.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/usb/misc -#lib/modules/KVER-ipfire-omap/kernel/sound/usb/misc/snd-ua101.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/usb/snd-usb-audio.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/usb/snd-usbmidi-lib.ko -#lib/modules/KVER-ipfire-omap/modules.alias -#lib/modules/KVER-ipfire-omap/modules.alias.bin -#lib/modules/KVER-ipfire-omap/modules.builtin -#lib/modules/KVER-ipfire-omap/modules.ccwmap -#lib/modules/KVER-ipfire-omap/modules.dep -#lib/modules/KVER-ipfire-omap/modules.dep.bin -#lib/modules/KVER-ipfire-omap/modules.ieee1394map -#lib/modules/KVER-ipfire-omap/modules.inputmap -#lib/modules/KVER-ipfire-omap/modules.isapnpmap -#lib/modules/KVER-ipfire-omap/modules.ofmap -#lib/modules/KVER-ipfire-omap/modules.order -#lib/modules/KVER-ipfire-omap/modules.pcimap -#lib/modules/KVER-ipfire-omap/modules.seriomap -#lib/modules/KVER-ipfire-omap/modules.symbols -#lib/modules/KVER-ipfire-omap/modules.symbols.bin -#lib/modules/KVER-ipfire-omap/modules.usbmap -#lib/modules/KVER-ipfire-omap/source -boot/uInit-ipfire-omap diff --git a/config/rootfiles/common/armv5tel/linux-rpi b/config/rootfiles/common/armv5tel/linux-rpi index 6021079..98f513e 100644 --- a/config/rootfiles/common/armv5tel/linux-rpi +++ b/config/rootfiles/common/armv5tel/linux-rpi @@ -9,16 +9,23 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel #lib/modules/KVER-ipfire-rpi/kernel/arch #lib/modules/KVER-ipfire-rpi/kernel/arch/arm +#lib/modules/KVER-ipfire-rpi/kernel/arch/arm/crypto +#lib/modules/KVER-ipfire-rpi/kernel/arch/arm/crypto/aes-arm.ko +#lib/modules/KVER-ipfire-rpi/kernel/arch/arm/crypto/sha1-arm.ko #lib/modules/KVER-ipfire-rpi/kernel/arch/arm/mach-bcm2708 -#lib/modules/KVER-ipfire-rpi/kernel/arch/arm/mach-bcm2708/dmaer.ko +#lib/modules/KVER-ipfire-rpi/kernel/arch/arm/mach-bcm2708/dmaer_master.ko #lib/modules/KVER-ipfire-rpi/kernel/crypto -#lib/modules/KVER-ipfire-rpi/kernel/crypto/aes_generic.ko #lib/modules/KVER-ipfire-rpi/kernel/crypto/af_alg.ko #lib/modules/KVER-ipfire-rpi/kernel/crypto/algif_hash.ko #lib/modules/KVER-ipfire-rpi/kernel/crypto/algif_skcipher.ko #lib/modules/KVER-ipfire-rpi/kernel/crypto/ansi_cprng.ko #lib/modules/KVER-ipfire-rpi/kernel/crypto/anubis.ko #lib/modules/KVER-ipfire-rpi/kernel/crypto/arc4.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/asymmetric_keys +#lib/modules/KVER-ipfire-rpi/kernel/crypto/asymmetric_keys/asymmetric_keys.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/asymmetric_keys/public_key.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/asymmetric_keys/rsa.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/asymmetric_keys/x509_key_parser.ko #lib/modules/KVER-ipfire-rpi/kernel/crypto/async_tx #lib/modules/KVER-ipfire-rpi/kernel/crypto/async_tx/async_memcpy.ko #lib/modules/KVER-ipfire-rpi/kernel/crypto/async_tx/async_pq.ko @@ -30,13 +37,16 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/crypto/authencesn.ko #lib/modules/KVER-ipfire-rpi/kernel/crypto/blowfish_common.ko #lib/modules/KVER-ipfire-rpi/kernel/crypto/blowfish_generic.ko -#lib/modules/KVER-ipfire-rpi/kernel/crypto/camellia.ko -#lib/modules/KVER-ipfire-rpi/kernel/crypto/cast5.ko -#lib/modules/KVER-ipfire-rpi/kernel/crypto/cast6.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/camellia_generic.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/cast5_generic.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/cast6_generic.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/cast_common.ko #lib/modules/KVER-ipfire-rpi/kernel/crypto/cbc.ko #lib/modules/KVER-ipfire-rpi/kernel/crypto/ccm.ko -#lib/modules/KVER-ipfire-rpi/kernel/crypto/crc32c.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/cmac.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/crc32.ko #lib/modules/KVER-ipfire-rpi/kernel/crypto/cryptd.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/crypto_null.ko #lib/modules/KVER-ipfire-rpi/kernel/crypto/crypto_user.ko #lib/modules/KVER-ipfire-rpi/kernel/crypto/ctr.ko #lib/modules/KVER-ipfire-rpi/kernel/crypto/cts.ko @@ -60,9 +70,8 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/crypto/salsa20_generic.ko #lib/modules/KVER-ipfire-rpi/kernel/crypto/seed.ko #lib/modules/KVER-ipfire-rpi/kernel/crypto/seqiv.ko -#lib/modules/KVER-ipfire-rpi/kernel/crypto/serpent.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/serpent_generic.ko #lib/modules/KVER-ipfire-rpi/kernel/crypto/sha1_generic.ko -#lib/modules/KVER-ipfire-rpi/kernel/crypto/sha256_generic.ko #lib/modules/KVER-ipfire-rpi/kernel/crypto/sha512_generic.ko #lib/modules/KVER-ipfire-rpi/kernel/crypto/tea.ko #lib/modules/KVER-ipfire-rpi/kernel/crypto/tgr192.ko @@ -76,18 +85,14 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/crypto/zlib.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers #lib/modules/KVER-ipfire-rpi/kernel/drivers/ata -#lib/modules/KVER-ipfire-rpi/kernel/drivers/ata/ahci_platform.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/ata/libahci.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/ata/libata.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/ata/pata_arasan_cf.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/ata/sata_mv.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/atm #lib/modules/KVER-ipfire-rpi/kernel/drivers/atm/atmtcp.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/base #lib/modules/KVER-ipfire-rpi/kernel/drivers/base/regmap #lib/modules/KVER-ipfire-rpi/kernel/drivers/base/regmap/regmap-i2c.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/bcma -#lib/modules/KVER-ipfire-rpi/kernel/drivers/bcma/bcma.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/base/regmap/regmap-mmio.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/base/regmap/regmap-spi.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/block #lib/modules/KVER-ipfire-rpi/kernel/drivers/block/aoe #lib/modules/KVER-ipfire-rpi/kernel/drivers/block/aoe/aoe.ko @@ -105,15 +110,11 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth/btmrvl_sdio.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth/btsdio.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth/btusb.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth/btwilink.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth/hci_uart.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth/hci_vhci.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/cdrom #lib/modules/KVER-ipfire-rpi/kernel/drivers/cdrom/cdrom.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/char -#lib/modules/KVER-ipfire-rpi/kernel/drivers/char/hw_random -#lib/modules/KVER-ipfire-rpi/kernel/drivers/char/hw_random/rng-core.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/char/hw_random/timeriomem-rng.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/char/ipmi #lib/modules/KVER-ipfire-rpi/kernel/drivers/char/ipmi/ipmi_devintf.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/char/ipmi/ipmi_msghandler.ko @@ -130,41 +131,46 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/drivers/dma #lib/modules/KVER-ipfire-rpi/kernel/drivers/dma/dmatest.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio +#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-74x164.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-adnp.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-adp5588.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-generic.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-it8761e.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-grgpio.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-max7300.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-max7301.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-max730x.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-max732x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-mc33880.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-mcp23s08.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-pca953x.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-pcf857x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-rcar.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-ts5500.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/gpu #lib/modules/KVER-ipfire-rpi/kernel/drivers/gpu/drm #lib/modules/KVER-ipfire-rpi/kernel/drivers/gpu/drm/drm.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpu/drm/drm_kms_helper.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpu/drm/drm_usb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpu/drm/i2c +#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpu/drm/i2c/tda998x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpu/drm/udl +#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpu/drm/udl/udl.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hid -#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-a4tech.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-apple.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-aureal.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-axff.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-belkin.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-cherry.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-chicony.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-cypress.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-dr.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-elecom.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-ezkey.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-gaff.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-gyration.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-holtek-kbd.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-holtekff.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-kensington.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-icade.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-keytouch.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-kye.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-lcpower.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-lenovo-tpkbd.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-logitech-dj.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-logitech.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-magicmouse.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-microsoft.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-monterey.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-multitouch.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-ntrig.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-ortek.ko @@ -173,19 +179,28 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-pl.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-primax.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-prodikeys.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-quanta.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-ps3remote.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-roccat-arvo.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-roccat-common.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-roccat-isku.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-roccat-kone.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-roccat-koneplus.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-roccat-konepure.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-roccat-kovaplus.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-roccat-lua.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-roccat-pyra.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-roccat-savu.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-roccat.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-saitek.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-samsung.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-sensor-hub.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-sjoy.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-sony.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-speedlink.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-steelseries.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-sunplus.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-thingm.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-tivo.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-tmff.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-topseed.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-twinhan.ko @@ -195,11 +210,19 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-wiimote.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-zpff.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-zydacron.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/i2c-hid +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/i2c-hid/i2c-hid.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/usbhid #lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/usbhid/usbhid.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hsi +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hsi/clients +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hsi/clients/hsi_char.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hsi/hsi.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ad7314.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ad7414.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ad7418.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adcxx.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adm1021.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adm1025.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adm1026.ko @@ -208,10 +231,14 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adm9240.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ads1015.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ads7828.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ads7871.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adt7310.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adt7410.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adt7411.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adt7462.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adt7470.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adt7475.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adt7x10.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/amc6821.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/asc7621.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/atxp1.ko @@ -228,14 +255,19 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/gl518sm.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/gl520sm.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/gpio-fan.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/hih6130.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/hwmon-vid.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/hwmon.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ibmaem.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ibmpex.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/iio_hwmon.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ina209.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ina2xx.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/it87.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/jc42.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lineage-pem.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm63.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm70.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm73.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm75.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm77.ko @@ -247,18 +279,24 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm90.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm92.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm93.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm95234.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm95241.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm95245.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ltc4151.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ltc4215.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ltc4245.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ltc4261.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/max1111.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/max16065.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/max1619.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/max1668.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/max197.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/max6639.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/max6642.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/max6650.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/max6697.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/mcp3021.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/nct6775.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ntc_thermistor.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pc87360.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pc87427.ko @@ -304,28 +342,33 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/algos/i2c-algo-pca.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses #lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-bcm2708.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-cbus-gpio.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-designware-core.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-designware-platform.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-diolan-u2c.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-gpio.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-nomadik.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-ocores.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-parport-light.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-parport.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-pca-platform.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-simtec.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-stub.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-taos-evm.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-tiny-usb.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-xiic.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/i2c-dev.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/i2c-mux.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/i2c-smbus.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/i2c-stub.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/muxes -#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/muxes/gpio-i2cmux.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/muxes/pca9541.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/muxes/pca954x.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/ieee802154 -#lib/modules/KVER-ipfire-rpi/kernel/drivers/ieee802154/fakehard.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/muxes/i2c-mux-gpio.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/muxes/i2c-mux-pca9541.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/muxes/i2c-mux-pca954x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/iio +#lib/modules/KVER-ipfire-rpi/kernel/drivers/iio/common +#lib/modules/KVER-ipfire-rpi/kernel/drivers/iio/common/hid-sensors +#lib/modules/KVER-ipfire-rpi/kernel/drivers/iio/common/hid-sensors/hid-sensor-iio-common.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/iio/industrialio.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/input #lib/modules/KVER-ipfire-rpi/kernel/drivers/input/ff-memless.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/input/input-polldev.ko @@ -336,6 +379,7 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/gpio_keys_polled.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/lkkbd.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/lm8323.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/lm8333.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/matrix_keypad.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/max7359_keypad.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/mcs_touchkey.ko @@ -344,26 +388,22 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/opencores-kbd.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/qt1070.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/qt2160.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/samsung-keypad.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/stowaway.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/sunkbd.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/tca6416-keypad.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/tca8418_keypad.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/xtkbd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/matrix-keymap.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc -#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/88pm860x_onkey.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/ad714x-i2c.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/ad714x.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/ati_remote2.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/bma150.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/cm109.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/keyspan_remote.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/pcf50633-input.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/pcf8574_keypad.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/powermate.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/rotary_encoder.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/yealink.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/pwm-beeper.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/input/serio #lib/modules/KVER-ipfire-rpi/kernel/drivers/input/serio/altera_ps2.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/input/serio/ambakmi.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/serio/apbps2.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/serio/arc_ps2.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/input/serio/ps2mult.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/input/sparse-keymap.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn @@ -395,24 +435,43 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/mISDN/mISDN_core.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/mISDN/mISDN_dsp.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/leds -#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-88pm860x.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-bd2802.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-blinkm.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-dac124s085.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-gpio.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-lm3530.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-lm355x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-lm3642.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-lp3944.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-lp5521.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-lp5523.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-lp5562.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-lp55xx-common.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-lt3593.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-ot200.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-pca9532.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-pca955x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-pca9633.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-pwm.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-regulator.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/ledtrig-backlight.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/ledtrig-gpio.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/ledtrig-heartbeat.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/ledtrig-netdev.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/ledtrig-timer.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-tca6507.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/trigger +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/trigger/ledtrig-backlight.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/trigger/ledtrig-camera.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/trigger/ledtrig-gpio.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/trigger/ledtrig-heartbeat.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/trigger/ledtrig-netdev.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/trigger/ledtrig-oneshot.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/trigger/ledtrig-timer.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/trigger/ledtrig-transient.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/md +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/bcache +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/bcache/bcache.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-bio-prison.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-bufio.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-cache-cleaner.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-cache-mq.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-cache.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-crypt.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-delay.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-flakey.ko @@ -428,6 +487,7 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-service-time.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-snapshot.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-thin-pool.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-verity.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-zero.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/md/linear.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/md/md-mod.ko @@ -440,31 +500,126 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/drivers/md/raid456.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/media #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common -#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners -#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/mc44s803.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/mt20xx.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/tda18271.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/tda827x.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/tda8290.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/tda9887.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/tea5761.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/tea5767.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/tuner-simple.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/tuner-types.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/tuner-xc2028.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/xc4000.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/xc5000.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb -#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb/dvb-core -#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb/dvb-core/dvb-core.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/b2c2 +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/b2c2/b2c2-flexcop.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/cx2341x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/cypress_firmware.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/siano +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/siano/smsdvb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/siano/smsmdtv.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tveeprom.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-core +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-core/dvb-core.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/a8293.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/af9013.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/af9033.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/atbm8830.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/au8522_common.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/au8522_decoder.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/au8522_dig.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/bcm3510.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/cx22702.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/cx24113.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/cx24116.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/cx24123.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/cxd2820r.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/dib0070.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/dib0090.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/dib3000mb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/dib3000mc.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/dib7000m.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/dib7000p.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/dib8000.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/dibx000_common.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/drxd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/drxk.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/ds3000.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/dvb-pll.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/ec100.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/isl6421.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/isl6423.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/it913x-fe.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/itd1000.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/ix2505v.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/lg2160.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/lgdt3305.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/lgdt330x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/lgs8gxx.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/lnbp21.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/lnbp22.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/m88ds3103.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/m88rs2000.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/mb86a20s.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/mt312.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/mt352.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/nxt200x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/nxt6000.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/rtl2830.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/rtl2832.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/s5h1409.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/s5h1411.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/s5h1420.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/s921.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/si21xx.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/stb0899.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/stb6000.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/stb6100.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/stv0288.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/stv0297.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/stv0299.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/stv0900.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/stv090x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/stv6110.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/stv6110x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/tda10023.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/tda10048.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/tda1004x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/tda10071.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/tda10086.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/tda18271c2dd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/tda826x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/ts2020.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/zl10039.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb-frontends/zl10353.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/i2c +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/i2c/cs53l32a.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/i2c/cx25840 +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/i2c/cx25840/cx25840.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/i2c/ir-kbd-i2c.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/i2c/msp3400.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/i2c/mt9v011.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/i2c/saa7115.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/i2c/tvp5150.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/i2c/wm8775.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/media.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/pci +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/pci/ttpci +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/pci/ttpci/ttpci-eeprom.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/platform +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/platform/bcm2835 +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/platform/bcm2835/bcm2835-v4l2.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/ati_remote.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/gpio-ir-recv.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/iguanair.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/imon.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/ir-jvc-decoder.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/ir-lirc-codec.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/ir-mce_kbd-decoder.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/ir-nec-decoder.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/ir-rc5-decoder.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/ir-rc5-sz-decoder.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/ir-rc6-decoder.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/ir-sanyo-decoder.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/ir-sony-decoder.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-adstech-dvb-t-pci.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-alink-dtu-m.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-anysee.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-apac-viewcomp.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-asus-pc39.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-asus-ps3-100.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-ati-tv-wonder-hd-600.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-ati-x10.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-avermedia-a16d.ko @@ -488,6 +643,7 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-dm1105-nec.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvb-t.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvbt-pro.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-dvbsky.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-em-terratec.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-encore-enltv-fm53.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-encore-enltv.ko @@ -504,13 +660,18 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-imon-mce.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-imon-pad.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-iodata-bctv7e.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-it913x-v1.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-it913x-v2.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-kaiomy.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-kworld-315u.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-kworld-pc150u.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-kworld-plus-tv-analog.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-leadtek-y04g0051.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-lirc.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-lme2510.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-manli.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-medion-x10-digitainer.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-medion-x10-or2x.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-medion-x10.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-msi-digivox-ii.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-msi-digivox-iii.ko @@ -534,6 +695,7 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-pv951.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-rc6-mce.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-real-audio-220-32-keys.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-reddo.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-snapstream-firefly.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-streamzap.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-tbs-nec.ko @@ -543,6 +705,7 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-terratec-slim.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-tevii-nec.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-tivo.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-total-media-in-hand-02.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-total-media-in-hand.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-trekstor.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-tt-1500.ko @@ -553,37 +716,202 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-winfast-usbii-deluxe.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-winfast.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/lirc_dev.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/mceusb.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/rc-core.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/video -#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/video/ir-kbd-i2c.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/video/v4l2-common.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/video/v4l2-int-device.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/video/videodev.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/rc-loopback.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/redrat3.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/streamzap.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/ttusbir.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/tuners +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/tuners/e4000.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/tuners/fc0011.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/tuners/fc0012.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/tuners/fc0013.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/tuners/fc2580.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/tuners/max2165.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/tuners/mc44s803.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/tuners/mt2060.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/tuners/mt2063.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/tuners/mt20xx.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/tuners/mt2266.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/tuners/mxl5005s.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/tuners/mxl5007t.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/tuners/qt1010.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/tuners/r820t.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/tuners/tda18212.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/tuners/tda18218.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/tuners/tda18271.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/tuners/tda827x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/tuners/tda8290.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/tuners/tda9887.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/tuners/tea5761.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/tuners/tea5767.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/tuners/tua9001.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/tuners/tuner-simple.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/tuners/tuner-types.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/tuners/tuner-xc2028.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/tuners/tuner_it913x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/tuners/xc4000.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/tuners/xc5000.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/au0828 +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/au0828/au0828.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/b2c2 +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/b2c2/b2c2-flexcop-usb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/cpia2 +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/cpia2/cpia2.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/cx231xx +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/cx231xx/cx231xx-alsa.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/cx231xx/cx231xx-dvb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/cx231xx/cx231xx.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb-v2 +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-af9015.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-af9035.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-anysee.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-au6610.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-az6007.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-ce6230.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-dvbsky.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-ec168.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-gl861.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-it913x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-lmedm04.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-mxl111sf.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-rtl28xxu.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb-v2/dvb_usb_v2.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb-v2/mxl111sf-demod.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb-v2/mxl111sf-tuner.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb/dvb-usb-a800.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb/dvb-usb-af9005-remote.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb/dvb-usb-af9005.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb/dvb-usb-az6027.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb/dvb-usb-cinergyT2.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb/dvb-usb-cxusb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb/dvb-usb-dib0700.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb/dvb-usb-dibusb-common.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb/dvb-usb-dibusb-mb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb/dvb-usb-digitv.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb/dvb-usb-dtt200u.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb/dvb-usb-dtv5100.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb/dvb-usb-dw2102.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb/dvb-usb-friio.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb/dvb-usb-gp8psk.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb/dvb-usb-m920x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb/dvb-usb-nova-t-usb2.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb/dvb-usb-opera.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb/dvb-usb-pctv452e.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb/dvb-usb-ttusb2.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb/dvb-usb-umt-010.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb/dvb-usb-vp702x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb/dvb-usb-vp7045.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/dvb-usb/dvb-usb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/em28xx +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/em28xx/em28xx-alsa.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/em28xx/em28xx-dvb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/em28xx/em28xx-rc.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/em28xx/em28xx.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gl860 +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gl860/gspca_gl860.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_benq.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_conex.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_cpia1.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_etoms.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_finepix.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_jeilinj.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_jl2005bcd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_kinect.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_konica.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_main.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_mars.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_mr97310a.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_nw80x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_ov519.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_ov534.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_ov534_9.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_pac207.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_pac7302.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_pac7311.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_se401.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_sn9c2028.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_sn9c20x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_sonixb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_sonixj.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_spca1528.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_spca500.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_spca501.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_spca505.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_spca506.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_spca508.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_spca561.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_sq905.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_sq905c.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_sq930x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_stk014.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_stv0680.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_sunplus.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_t613.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_topro.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_tv8532.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_vc032x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_vicam.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_xirlink_cit.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/gspca_zc3xx.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/m5602 +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/m5602/gspca_m5602.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/stv06xx +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/gspca/stv06xx/gspca_stv06xx.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/hdpvr +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/hdpvr/hdpvr.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/pvrusb2 +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/pvrusb2/pvrusb2.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/pwc +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/pwc/pwc.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/s2255 +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/s2255/s2255drv.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/siano +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/siano/smsusb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/sn9c102 +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/sn9c102/sn9c102.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/stk1160 +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/stk1160/stk1160.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/stkwebcam +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/stkwebcam/stkwebcam.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/tlg2300 +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/tlg2300/poseidon.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/tm6000 +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/tm6000/tm6000-alsa.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/tm6000/tm6000-dvb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/tm6000/tm6000.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/usbvision +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/usbvision/usbvision.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/uvc +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/uvc/uvcvideo.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/zr364xx +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/usb/zr364xx/zr364xx.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/v4l2-core +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/v4l2-core/tuner.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/v4l2-core/v4l2-common.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/v4l2-core/v4l2-int-device.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/v4l2-core/videobuf-core.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/v4l2-core/videobuf-dvb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/v4l2-core/videobuf-vmalloc.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/v4l2-core/videobuf2-core.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/v4l2-core/videobuf2-memops.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/v4l2-core/videobuf2-vmalloc.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/v4l2-core/videodev.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/memstick #lib/modules/KVER-ipfire-rpi/kernel/drivers/memstick/core #lib/modules/KVER-ipfire-rpi/kernel/drivers/memstick/core/memstick.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/memstick/core/mspro_block.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd -#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/htc-pasic3.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/pcf50633-adc.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/pcf50633-gpio.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/pcf50633.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/sm501.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/tps6105x.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/tps65010.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/tps6507x.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/ucb1400_core.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/wl1273-core.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/wm8400-core.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/mfd-core.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/misc -#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/apds9802als.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/apds990x.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/bh1770glc.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/bh1780gli.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/bmp085.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/c2port -#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/c2port/core.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/ds1682.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/dummy-irq.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/eeprom #lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/eeprom/at24.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/eeprom/eeprom.ko @@ -591,23 +919,13 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/eeprom/max6875.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/enclosure.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/fsa9480.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/hmc6352.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/ics932s401.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/isl29003.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/isl29020.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/iwmc3200top -#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/iwmc3200top/iwmc3200top.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/lis3lv02d -#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/lis3lv02d/lis3lv02d.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/lis3lv02d/lis3lv02d_i2c.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/ti-st -#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/ti-st/st_drv.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/tsl2550.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc #lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/card #lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/card/mmc_test.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/card/sdio_uart.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/host +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/host/dw_mmc-exynos.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/host/dw_mmc-pltfm.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/host/dw_mmc.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/host/mmci.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/host/sdhci-pltfm.ko @@ -616,9 +934,9 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/host/ushc.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/host/vub300.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd -#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/ar7part.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/chips #lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/chips/chipreg.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/cmdlinepart.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/lpddr #lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/lpddr/lpddr_cmds.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/lpddr/qinfo_probe.ko @@ -627,23 +945,12 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/mtd.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/mtd_blkdevs.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/mtdblock.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/mtdchar.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/nand #lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/nand/nand.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/nand/nand_ecc.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/nand/nand_ids.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/nand/plat_nand.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/ofpart.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/sm_ftl.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/tests -#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/tests/mtd_nandecctest.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/tests/mtd_oobtest.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/tests/mtd_pagetest.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/tests/mtd_readtest.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/tests/mtd_speedtest.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/tests/mtd_stresstest.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/tests/mtd_subpagetest.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/tests/mtd_torturetest.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/ubi #lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/ubi/ubi.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net @@ -656,18 +963,28 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/8390/ax88796.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/broadcom #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/broadcom/b44.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/cadence +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/cadence/at91_ether.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/cadence/macb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/calxeda +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/calxeda/xgmac.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/cirrus +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/cirrus/cs89x0.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/davicom #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/davicom/dm9000.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/dlink -#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/dlink/de600.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/dlink/de620.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/dnet.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/ethoc.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/faraday +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/faraday/ftgmac100.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/faraday/ftmac100.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/marvell +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/marvell/mvmdio.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/micrel #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/micrel/ks8842.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/micrel/ks8851.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/micrel/ks8851_mll.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/seeq -#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/seeq/seeq8005.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/microchip +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/microchip/enc28j60.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/smsc #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/smsc/smc911x.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/smsc/smc91x.ko @@ -675,31 +992,33 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/stmicro #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/stmicro/stmmac #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/stmicro/stmmac/stmmac.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/wiznet +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/wiznet/w5100.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/wiznet/w5300.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ieee802154 +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ieee802154/fakehard.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ieee802154/fakelb.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ifb.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/imq.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/irda -#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/irda/irda-usb.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/irda/irtty-sir.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/irda/kingsun-sir.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/irda/ks959-sir.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/irda/ksdazzle-sir.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/irda/mcs7780.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/irda/sir-dev.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/irda/stir4200.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/macvlan.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/macvtap.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/mii.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/amd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/at803x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/bcm87xx.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/broadcom.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/cicada.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/davicom.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/dp83640.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/et1011c.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/icplus.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/lxt.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/marvell.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/mdio-bitbang.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/mdio-gpio.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/mdio-mux-gpio.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/mdio-mux-mmioreg.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/mdio-mux.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/micrel.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/national.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/qsemi.ko @@ -720,12 +1039,21 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/slip #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/slip/slhc.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/slip/slip.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/team +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/team/team.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/team/team_mode_activebackup.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/team/team_mode_broadcast.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/team/team_mode_loadbalance.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/team/team_mode_random.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/team/team_mode_roundrobin.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/tun.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/asix.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/ax88179_178a.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/catc.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/cdc_eem.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/cdc_ether.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/cdc_mbim.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/cdc_ncm.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/cdc_subset.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/cx82310_eth.ko @@ -740,6 +1068,8 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/net1080.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/pegasus.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/plusb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/qmi_wwan.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/r8152.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/rndis_host.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/rtl8150.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/sierra_net.ko @@ -748,6 +1078,7 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/usbnet.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/zaurus.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/veth.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/vxlan.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wan #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wan/dlci.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wan/hdlc.ko @@ -758,10 +1089,77 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wan/hdlc_raw_eth.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/at76c50x-usb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/ath +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/ath/ar5523 +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/ath/ar5523/ar5523.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/ath/ath.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/ath/ath6kl +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/ath/ath6kl/ath6kl_core.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/ath/ath6kl/ath6kl_sdio.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/ath/ath6kl/ath6kl_usb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/ath/ath9k +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/ath/ath9k/ath9k.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/ath/ath9k/ath9k_common.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/ath/ath9k/ath9k_htc.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/ath/ath9k/ath9k_hw.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/ath/carl9170 +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/ath/carl9170/carl9170.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/b43 +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/b43/b43.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/b43legacy +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/b43legacy/b43legacy.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/brcm80211 +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/brcm80211/brcmfmac +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/brcm80211/brcmfmac/brcmfmac.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/brcm80211/brcmsmac +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/brcm80211/brcmsmac/brcmsmac.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/brcm80211/brcmutil +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/brcm80211/brcmutil/brcmutil.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/hostap #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/hostap/hostap.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/libertas +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/libertas/libertas.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/libertas/libertas_sdio.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/libertas/libertas_spi.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/libertas/usb8xxx.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/libertas_tf +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/libertas_tf/libertas_tf.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/libertas_tf/libertas_tf_usb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/mwifiex +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/mwifiex/mwifiex.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/mwifiex/mwifiex_sdio.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/mwifiex/mwifiex_usb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/p54 +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/p54/p54common.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/p54/p54spi.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/p54/p54usb.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/rndis_wlan.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/rt2x00 +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/rt2x00/rt2500usb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/rt2x00/rt2800lib.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/rt2x00/rt2800usb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/rt2x00/rt2x00lib.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/rt2x00/rt2x00usb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/rt2x00/rt73usb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/rtl818x +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/rtl818x/rtl8187 +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/rtl818x/rtl8187/rtl8187.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/rtl8192cu +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/rtl8192cu/8192cu.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/ti +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/ti/wl1251 +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/ti/wl1251/wl1251.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/ti/wl1251/wl1251_sdio.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/ti/wl12xx +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/ti/wl12xx/wl12xx.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/ti/wl18xx +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/ti/wl18xx/wl18xx.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/ti/wlcore +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/ti/wlcore/wlcore.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/ti/wlcore/wlcore_sdio.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/zd1201.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/zd1211rw +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/zd1211rw/zd1211rw.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/parport #lib/modules/KVER-ipfire-rpi/kernel/drivers/parport/parport.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/parport/parport_ax88796.ko @@ -777,34 +1175,47 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-bq4802.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-cmos.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-ds1286.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-ds1305.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-ds1307.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-ds1374.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-ds1390.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-ds1511.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-ds1553.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-ds1672.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-ds1742.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-ds2404.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-ds3232.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-ds3234.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-em3027.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-fm3130.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-hid-sensor-time.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-isl12022.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-isl1208.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-m41t80.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-m41t93.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-m41t94.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-m48t35.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-m48t59.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-m48t86.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-max6900.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-max6902.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-msm6242.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-pcf50633.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-pcf2123.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-pcf8523.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-pcf8563.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-pcf8583.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-pl030.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-pl031.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-r9701.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-rp5c01.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-rs5c348.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-rs5c372.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-rv3029c2.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-rx4581.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-rx8025.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-rx8581.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-s35390a.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-snvs.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-stk17ta8.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-v3020.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-x1205.ko @@ -835,13 +1246,25 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/scsi_transport_sas.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/scsi_transport_spi.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/scsi_transport_srp.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/scsi_wait_scan.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/ses.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/sg.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/sr_mod.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/ufs +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/ufs/ufshcd-pltfrm.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/ufs/ufshcd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/spi +#lib/modules/KVER-ipfire-rpi/kernel/drivers/spi/spi-bcm2708.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/spi/spi-bitbang.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/spi/spi-gpio.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/spi/spi-oc-tiny.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/spi/spi-pl022.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/ssb #lib/modules/KVER-ipfire-rpi/kernel/drivers/ssb/ssb.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/staging +#lib/modules/KVER-ipfire-rpi/kernel/drivers/staging/echo +#lib/modules/KVER-ipfire-rpi/kernel/drivers/staging/echo/echo.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/staging/rts5139 +#lib/modules/KVER-ipfire-rpi/kernel/drivers/staging/rts5139/rts5139.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/staging/usbip #lib/modules/KVER-ipfire-rpi/kernel/drivers/staging/usbip/usbip-core.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/staging/usbip/usbip-host.ko @@ -849,13 +1272,18 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/drivers/tty #lib/modules/KVER-ipfire-rpi/kernel/drivers/tty/n_gsm.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/tty/serial -#lib/modules/KVER-ipfire-rpi/kernel/drivers/tty/serial/8250_dw.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/tty/serial/8250 +#lib/modules/KVER-ipfire-rpi/kernel/drivers/tty/serial/8250/8250_dw.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/tty/serial/8250/8250_em.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/tty/serial/altera_jtaguart.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/tty/serial/altera_uart.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/tty/serial/arc_uart.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/tty/serial/sccnxp.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/tty/serial/timbuart.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/tty/serial/xilinx_uartps.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/uio #lib/modules/KVER-ipfire-rpi/kernel/drivers/uio/uio.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/uio/uio_dmem_genirq.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/uio/uio_pdrv.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/uio/uio_pdrv_genirq.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb @@ -870,41 +1298,32 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/class/cdc-wdm.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/class/usblp.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/class/usbtmc.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/dwc3 -#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/dwc3/dwc3-omap.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/dwc3/dwc3.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/host -#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/host/isp116x-hcd.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/host/isp1362-hcd.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/host/oxu210hp-hcd.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/host/r8a66597-hcd.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/host/sl811-hcd.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/host/u132-hcd.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/cypress_cy7c63.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/cytherm.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/emi26.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/emi62.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/ezusb.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/ftdi-elan.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/iowarrior.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/isight_firmware.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/usb3503.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/usblcd.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/usbled.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/usbsevseg.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/uss720.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/yurex.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/otg -#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/otg/gpio_vbus.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/otg/nop-usb-xceiv.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/aircable.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/ark3116.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/belkin_sa.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/ch341.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/cp210x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/cyberjack.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/cypress_m8.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/digi_acceleport.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/empeg.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/f81232.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/ftdi_sio.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/funsoft.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/garmin_gps.ko @@ -915,17 +1334,24 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/ipw.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/ir-usb.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/iuu_phoenix.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/keyspan.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/keyspan_pda.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/kl5kusb105.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/kobil_sct.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/mct_u232.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/metro-usb.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/mos7720.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/mos7840.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/moto_modem.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/navman.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/omninet.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/opticon.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/option.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/oti6858.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/pl2303.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/qcaux.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/qcserial.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/quatech2.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/safe_serial.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/siemens_mpi.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/sierra.ko @@ -938,9 +1364,11 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/visor.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/vivopay-serial.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/whiteheat.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/wishbone-serial.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/xsens_mt.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/zio.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/zte_ev.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage -#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/uas.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-alauda.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-cypress.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-datafab.ko @@ -956,23 +1384,13 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-usbat.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/usb-storage.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/video -#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/backlight -#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/backlight/88pm860x_bl.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/backlight/adp8860_bl.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/backlight/adp8870_bl.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/backlight/generic_bl.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/backlight/lcd.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/backlight/pcf50633-backlight.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/backlight/platform_lcd.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/video/fb_sys_fops.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/metronomefb.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/video/output.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/sm501fb.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/video/smscufx.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/video/syscopyarea.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/video/sysfillrect.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/video/sysimgblt.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/tmiofb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/udlfb.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/video/uvesafb.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/w1 #lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/masters @@ -983,24 +1401,26 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves #lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves/w1_bq27000.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves/w1_ds2408.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves/w1_ds2413.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves/w1_ds2423.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves/w1_ds2431.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves/w1_ds2433.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves/w1_ds2760.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves/w1_ds2780.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves/w1_ds2781.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves/w1_ds28e04.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves/w1_smem.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves/w1_therm.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/wire.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/watchdog #lib/modules/KVER-ipfire-rpi/kernel/drivers/watchdog/bcm2708_wdog.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/watchdog/dw_wdt.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/watchdog/max63xx_wdt.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/watchdog/pcwd_usb.ko #lib/modules/KVER-ipfire-rpi/kernel/drivers/watchdog/softdog.ko -#lib/modules/KVER-ipfire-rpi/kernel/drivers/watchdog/sp805_wdt.ko #lib/modules/KVER-ipfire-rpi/kernel/fs #lib/modules/KVER-ipfire-rpi/kernel/fs/autofs4 #lib/modules/KVER-ipfire-rpi/kernel/fs/autofs4/autofs4.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/btrfs +#lib/modules/KVER-ipfire-rpi/kernel/fs/btrfs/btrfs.ko #lib/modules/KVER-ipfire-rpi/kernel/fs/cachefiles #lib/modules/KVER-ipfire-rpi/kernel/fs/cachefiles/cachefiles.ko #lib/modules/KVER-ipfire-rpi/kernel/fs/cifs @@ -1027,6 +1447,9 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/fs/lockd/lockd.ko #lib/modules/KVER-ipfire-rpi/kernel/fs/nfs #lib/modules/KVER-ipfire-rpi/kernel/fs/nfs/nfs.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/nfs/nfsv2.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/nfs/nfsv3.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/nfs/nfsv4.ko #lib/modules/KVER-ipfire-rpi/kernel/fs/nfs_common #lib/modules/KVER-ipfire-rpi/kernel/fs/nfs_common/nfs_acl.ko #lib/modules/KVER-ipfire-rpi/kernel/fs/nfsd @@ -1044,6 +1467,7 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/fs/xfs #lib/modules/KVER-ipfire-rpi/kernel/fs/xfs/xfs.ko #lib/modules/KVER-ipfire-rpi/kernel/lib +#lib/modules/KVER-ipfire-rpi/kernel/lib/asn1_decoder.ko #lib/modules/KVER-ipfire-rpi/kernel/lib/cordic.ko #lib/modules/KVER-ipfire-rpi/kernel/lib/crc-ccitt.ko #lib/modules/KVER-ipfire-rpi/kernel/lib/crc-itu-t.ko @@ -1051,6 +1475,9 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/lib/crc7.ko #lib/modules/KVER-ipfire-rpi/kernel/lib/crc8.ko #lib/modules/KVER-ipfire-rpi/kernel/lib/libcrc32c.ko +#lib/modules/KVER-ipfire-rpi/kernel/lib/mpi +#lib/modules/KVER-ipfire-rpi/kernel/lib/mpi/mpi.ko +#lib/modules/KVER-ipfire-rpi/kernel/lib/oid_registry.ko #lib/modules/KVER-ipfire-rpi/kernel/lib/raid6 #lib/modules/KVER-ipfire-rpi/kernel/lib/raid6/raid6_pq.ko #lib/modules/KVER-ipfire-rpi/kernel/lib/ts_bm.ko @@ -1108,6 +1535,8 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebtables.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ceph #lib/modules/KVER-ipfire-rpi/kernel/net/ceph/libceph.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/core +#lib/modules/KVER-ipfire-rpi/kernel/net/core/netprio_cgroup.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ieee802154 #lib/modules/KVER-ipfire-rpi/kernel/net/ieee802154/6lowpan.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ieee802154/af_802154.ko @@ -1118,44 +1547,35 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/gre.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/inet_diag.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/ip_gre.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/ip_tunnel.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/ip_vti.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/ipcomp.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/ipip.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter #lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/arp_tables.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/arpt_mangle.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/arptable_filter.ko -#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ip_queue.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ip_tables.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_CLUSTERIP.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_ECN.ko -#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_LOG.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_MASQUERADE.ko -#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_NETMAP.ko -#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_REDIRECT.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_REJECT.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_ULOG.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_ah.ko -#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_ecn.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_ipp2p.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_rpfilter.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/iptable_filter.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/iptable_mangle.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/iptable_nat.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/iptable_raw.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/iptable_security.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_conntrack_ipv4.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_defrag_ipv4.ko -#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat.ko -#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_amanda.ko -#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_ftp.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_h323.ko -#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_irc.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_ipv4.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_pptp.ko -#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_proto_dccp.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_proto_gre.ko -#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_proto_sctp.ko -#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_proto_udplite.ko -#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_sip.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_snmp_basic.ko -#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_tftp.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_bic.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_cubic.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_diag.ko @@ -1170,17 +1590,17 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_westwood.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_yeah.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tunnel4.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/udp_diag.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/xfrm4_tunnel.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv6 #lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/ah6.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/esp6.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/ip6_gre.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/ip6_tunnel.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/ipcomp6.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/mip6.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter -#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6_queue.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6_tables.ko -#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6t_LOG.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6t_REJECT.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6t_ah.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6t_eui64.ko @@ -1188,10 +1608,12 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6t_hbh.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6t_ipv6header.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6t_mh.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6t_rpfilter.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6t_rt.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6table_filter.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6table_mangle.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6table_raw.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6table_security.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/nf_conntrack_ipv6.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/nf_defrag_ipv6.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/sit.ko @@ -1201,27 +1623,21 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/xfrm6_mode_transport.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/xfrm6_mode_tunnel.ko #lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/xfrm6_tunnel.ko -#lib/modules/KVER-ipfire-rpi/kernel/net/irda -#lib/modules/KVER-ipfire-rpi/kernel/net/irda/ircomm -#lib/modules/KVER-ipfire-rpi/kernel/net/irda/ircomm/ircomm-tty.ko -#lib/modules/KVER-ipfire-rpi/kernel/net/irda/ircomm/ircomm.ko -#lib/modules/KVER-ipfire-rpi/kernel/net/irda/irda.ko -#lib/modules/KVER-ipfire-rpi/kernel/net/irda/irlan -#lib/modules/KVER-ipfire-rpi/kernel/net/irda/irlan/irlan.ko -#lib/modules/KVER-ipfire-rpi/kernel/net/irda/irnet -#lib/modules/KVER-ipfire-rpi/kernel/net/irda/irnet/irnet.ko #lib/modules/KVER-ipfire-rpi/kernel/net/key #lib/modules/KVER-ipfire-rpi/kernel/net/key/af_key.ko #lib/modules/KVER-ipfire-rpi/kernel/net/l2tp #lib/modules/KVER-ipfire-rpi/kernel/net/l2tp/l2tp_core.ko #lib/modules/KVER-ipfire-rpi/kernel/net/l2tp/l2tp_eth.ko #lib/modules/KVER-ipfire-rpi/kernel/net/l2tp/l2tp_ip.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/l2tp/l2tp_ip6.ko #lib/modules/KVER-ipfire-rpi/kernel/net/l2tp/l2tp_netlink.ko #lib/modules/KVER-ipfire-rpi/kernel/net/l2tp/l2tp_ppp.ko #lib/modules/KVER-ipfire-rpi/kernel/net/llc #lib/modules/KVER-ipfire-rpi/kernel/net/llc/llc.ko #lib/modules/KVER-ipfire-rpi/kernel/net/mac80211 #lib/modules/KVER-ipfire-rpi/kernel/net/mac80211/mac80211.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/mac802154 +#lib/modules/KVER-ipfire-rpi/kernel/net/mac802154/mac802154.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/ipvs #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/ipvs/ip_vs.ko @@ -1237,7 +1653,6 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/ipvs/ip_vs_sh.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/ipvs/ip_vs_wlc.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/ipvs/ip_vs_wrr.ko -#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_amanda.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_broadcast.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_ftp.ko @@ -1254,8 +1669,20 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_sip.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_snmp.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_tftp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_nat.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_nat_amanda.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_nat_ftp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_nat_irc.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_nat_proto_dccp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_nat_proto_sctp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_nat_proto_udplite.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_nat_sip.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_nat_tftp.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_tproxy_core.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nfnetlink.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nfnetlink_acct.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nfnetlink_cthelper.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nfnetlink_cttimeout.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nfnetlink_log.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nfnetlink_queue.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/x_tables.ko @@ -1265,22 +1692,27 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_CT.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_DSCP.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_HL.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_HMARK.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_IDLETIMER.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_IMQ.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_LED.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_LOG.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_NETMAP.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_NFLOG.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_NFQUEUE.ko -#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_NOTRACK.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_RATEEST.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_REDIRECT.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_TCPMSS.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_TCPOPTSTRIP.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_TEE.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_TPROXY.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_TRACE.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_addrtype.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_bpf.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_cluster.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_comment.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_connbytes.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_connlabel.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_connlimit.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_connmark.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_conntrack.ko @@ -1288,6 +1720,7 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_dccp.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_devgroup.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_dscp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_ecn.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_esp.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_hashlimit.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_helper.ko @@ -1300,6 +1733,8 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_mac.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_mark.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_multiport.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_nat.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_nfacct.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_osf.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_owner.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_physdev.ko @@ -1318,6 +1753,10 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_tcpudp.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_time.ko #lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_u32.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netlink +#lib/modules/KVER-ipfire-rpi/kernel/net/netlink/netlink_diag.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/openvswitch +#lib/modules/KVER-ipfire-rpi/kernel/net/openvswitch/openvswitch.ko #lib/modules/KVER-ipfire-rpi/kernel/net/rfkill #lib/modules/KVER-ipfire-rpi/kernel/net/rfkill/rfkill-gpio.ko #lib/modules/KVER-ipfire-rpi/kernel/net/rfkill/rfkill-regulator.ko @@ -1336,6 +1775,7 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/net/sched/act_simple.ko #lib/modules/KVER-ipfire-rpi/kernel/net/sched/act_skbedit.ko #lib/modules/KVER-ipfire-rpi/kernel/net/sched/cls_basic.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/cls_cgroup.ko #lib/modules/KVER-ipfire-rpi/kernel/net/sched/cls_flow.ko #lib/modules/KVER-ipfire-rpi/kernel/net/sched/cls_fw.ko #lib/modules/KVER-ipfire-rpi/kernel/net/sched/cls_route.ko @@ -1351,8 +1791,10 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_atm.ko #lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_cbq.ko #lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_choke.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_codel.ko #lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_drr.ko #lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_dsmark.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_fq_codel.ko #lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_gred.ko #lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_hfsc.ko #lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_htb.ko @@ -1360,6 +1802,7 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_mqprio.ko #lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_multiq.ko #lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_netem.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_plug.ko #lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_prio.ko #lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_qfq.ko #lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_red.ko @@ -1372,6 +1815,8 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko #lib/modules/KVER-ipfire-rpi/kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko #lib/modules/KVER-ipfire-rpi/kernel/net/sunrpc/sunrpc.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/unix +#lib/modules/KVER-ipfire-rpi/kernel/net/unix/unix_diag.ko #lib/modules/KVER-ipfire-rpi/kernel/net/wireless #lib/modules/KVER-ipfire-rpi/kernel/net/wireless/cfg80211.ko #lib/modules/KVER-ipfire-rpi/kernel/net/wireless/lib80211.ko @@ -1379,6 +1824,7 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/net/wireless/lib80211_crypt_tkip.ko #lib/modules/KVER-ipfire-rpi/kernel/net/wireless/lib80211_crypt_wep.ko #lib/modules/KVER-ipfire-rpi/kernel/net/xfrm +#lib/modules/KVER-ipfire-rpi/kernel/net/xfrm/xfrm_algo.ko #lib/modules/KVER-ipfire-rpi/kernel/net/xfrm/xfrm_ipcomp.ko #lib/modules/KVER-ipfire-rpi/kernel/net/xfrm/xfrm_user.ko #lib/modules/KVER-ipfire-rpi/kernel/sound @@ -1399,6 +1845,7 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/sound/core/seq/snd-seq-midi.ko #lib/modules/KVER-ipfire-rpi/kernel/sound/core/seq/snd-seq-virmidi.ko #lib/modules/KVER-ipfire-rpi/kernel/sound/core/seq/snd-seq.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/core/snd-compress.ko #lib/modules/KVER-ipfire-rpi/kernel/sound/core/snd-hrtimer.ko #lib/modules/KVER-ipfire-rpi/kernel/sound/core/snd-hwdep.ko #lib/modules/KVER-ipfire-rpi/kernel/sound/core/snd-page-alloc.ko @@ -1421,6 +1868,19 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/kernel/sound/pci/ac97 #lib/modules/KVER-ipfire-rpi/kernel/sound/pci/ac97/snd-ac97-codec.ko #lib/modules/KVER-ipfire-rpi/kernel/sound/soc +#lib/modules/KVER-ipfire-rpi/kernel/sound/soc/bcm +#lib/modules/KVER-ipfire-rpi/kernel/sound/soc/bcm/snd-soc-bcm2708-i2s.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/soc/bcm/snd-soc-hifiberry-dac.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/soc/bcm/snd-soc-hifiberry-digi.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/soc/bcm/snd-soc-rpi-dac.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/soc/codecs +#lib/modules/KVER-ipfire-rpi/kernel/sound/soc/codecs/snd-soc-pcm1794a.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/soc/codecs/snd-soc-pcm5102a.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/soc/codecs/snd-soc-wm8804.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/soc/dwc +#lib/modules/KVER-ipfire-rpi/kernel/sound/soc/dwc/designware_i2s.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/soc/generic +#lib/modules/KVER-ipfire-rpi/kernel/sound/soc/generic/snd-soc-simple-card.ko #lib/modules/KVER-ipfire-rpi/kernel/sound/soc/snd-soc-core.ko #lib/modules/KVER-ipfire-rpi/kernel/sound/soundcore.ko #lib/modules/KVER-ipfire-rpi/kernel/sound/usb @@ -1435,17 +1895,12 @@ lib/modules/KVER-ipfire-rpi #lib/modules/KVER-ipfire-rpi/modules.alias #lib/modules/KVER-ipfire-rpi/modules.alias.bin #lib/modules/KVER-ipfire-rpi/modules.builtin -#lib/modules/KVER-ipfire-rpi/modules.ccwmap +#lib/modules/KVER-ipfire-rpi/modules.builtin.bin #lib/modules/KVER-ipfire-rpi/modules.dep #lib/modules/KVER-ipfire-rpi/modules.dep.bin -#lib/modules/KVER-ipfire-rpi/modules.ieee1394map -#lib/modules/KVER-ipfire-rpi/modules.inputmap -#lib/modules/KVER-ipfire-rpi/modules.isapnpmap -#lib/modules/KVER-ipfire-rpi/modules.ofmap +#lib/modules/KVER-ipfire-rpi/modules.devname #lib/modules/KVER-ipfire-rpi/modules.order -#lib/modules/KVER-ipfire-rpi/modules.pcimap -#lib/modules/KVER-ipfire-rpi/modules.seriomap +#lib/modules/KVER-ipfire-rpi/modules.softdep #lib/modules/KVER-ipfire-rpi/modules.symbols #lib/modules/KVER-ipfire-rpi/modules.symbols.bin -#lib/modules/KVER-ipfire-rpi/modules.usbmap #lib/modules/KVER-ipfire-rpi/source diff --git a/config/rootfiles/common/armv5tel/lm_sensors b/config/rootfiles/common/armv5tel/lm_sensors index 774e47d..4d17590 100644 --- a/config/rootfiles/common/armv5tel/lm_sensors +++ b/config/rootfiles/common/armv5tel/lm_sensors @@ -8,7 +8,7 @@ usr/bin/sensors-conf-convert #usr/lib/libsensors.a usr/lib/libsensors.so usr/lib/libsensors.so.4 -usr/lib/libsensors.so.4.3.1 +usr/lib/libsensors.so.4.3.2 #usr/man/man1/sensors.1 #usr/man/man3/libsensors.3 #usr/man/man5/sensors.conf.5 diff --git a/config/rootfiles/common/armv5tel/rpi-firmware b/config/rootfiles/common/armv5tel/rpi-firmware index 3024548..3fb7693 100644 --- a/config/rootfiles/common/armv5tel/rpi-firmware +++ b/config/rootfiles/common/armv5tel/rpi-firmware @@ -2,8 +2,9 @@ boot/bootcode.bin boot/cmdline.txt boot/config.txt -#boot/first32k.bin -boot/start.elf -boot/start_cd.elf boot/fixup.dat boot/fixup_cd.dat +boot/fixup_x.dat +boot/start.elf +boot/start_cd.elf +boot/start_x.elf diff --git a/config/rootfiles/common/armv5tel/u-boot b/config/rootfiles/common/armv5tel/u-boot index 759d41d..b139d7e 100644 --- a/config/rootfiles/common/armv5tel/u-boot +++ b/config/rootfiles/common/armv5tel/u-boot @@ -1,6 +1,16 @@ #boot/MLO -#boot/u-boot.bin -usr/bin/mkimage boot/boot.scr boot/boot.script boot/convert_bootscript +#boot/u-boot.img +usr/bin/mkimage +#usr/share/u-boot +#usr/share/u-boot/pandaboard +#usr/share/u-boot/pandaboard/MLO +#usr/share/u-boot/pandaboard/u-boot.img +#usr/share/u-boot/wandboard_dl +#usr/share/u-boot/wandboard_dl/u-boot.imx +#usr/share/u-boot/wandboard_quad +#usr/share/u-boot/wandboard_quad/u-boot.imx +#usr/share/u-boot/wandboard_solo +#usr/share/u-boot/wandboard_solo/u-boot.imx diff --git a/config/rootfiles/common/armv5tel/util-linux b/config/rootfiles/common/armv5tel/util-linux index d3a010c..85b027d 100644 --- a/config/rootfiles/common/armv5tel/util-linux +++ b/config/rootfiles/common/armv5tel/util-linux @@ -1,17 +1,27 @@ -#bin/arch bin/dmesg +bin/findmnt +bin/lsblk bin/more bin/mount bin/umount -etc/fdprm +bin/wdctl +#etc/fcron.daily +etc/fcron.daily/trim +lib/libblkid.so.1.1.0 +lib/libmount.so.1 +lib/libmount.so.1.1.0 +lib/libuuid.so.1.3.0 sbin/agetty +sbin/blkdiscard sbin/blockdev sbin/cfdisk +sbin/chcpu sbin/ctrlaltdel -#sbin/elvtune sbin/fdisk #sbin/fsck.cramfs sbin/fsck.minix +sbin/fsfreeze +sbin/fstrim sbin/hwclock sbin/losetup sbin/mkfs @@ -19,46 +29,160 @@ sbin/mkfs #sbin/mkfs.cramfs sbin/mkfs.minix sbin/mkswap +sbin/nologin #sbin/pivot_root +sbin/raw sbin/sfdisk +sbin/swaplabel sbin/swapoff sbin/swapon +sbin/switch_root +sbin/wipefs #usr/bin/cal -#usr/bin/chkdupexe +#usr/bin/chrt #usr/bin/col #usr/bin/colcrt #usr/bin/colrm #usr/bin/column #usr/bin/cytune -#usr/bin/ddate -usr/bin/fdformat +usr/bin/eject +usr/bin/fallocate usr/bin/flock usr/bin/getopt #usr/bin/hexdump +usr/bin/ionice +#usr/bin/ipcmk #usr/bin/ipcrm #usr/bin/ipcs #usr/bin/isosize -#usr/bin/line +#usr/bin/linux32 +#usr/bin/linux64 usr/bin/logger #usr/bin/look +usr/bin/lscpu +usr/bin/lslocks #usr/bin/mcookie #usr/bin/namei +usr/bin/nsenter usr/bin/pg -#usr/bin/raw +usr/bin/prlimit usr/bin/rename usr/bin/renice #usr/bin/rev #usr/bin/script -#usr/bin/setfdprm +#usr/bin/scriptreplay +#usr/bin/setarch #usr/bin/setsid #usr/bin/setterm #usr/bin/tailf +#usr/bin/taskset #usr/bin/ul +#usr/bin/unshare #usr/bin/whereis -#usr/bin/write +#usr/include/libmount +#usr/include/libmount/libmount.h +#usr/lib/libblkid.la +#usr/lib/libmount.a +#usr/lib/libmount.la +usr/lib/libmount.so +#usr/lib/libuuid.la +#usr/lib/pkgconfig/mount.pc +usr/sbin/addpart +usr/sbin/delpart +usr/sbin/fdformat +usr/sbin/ldattach +usr/sbin/partx #usr/sbin/readprofile -#usr/sbin/tunelp -#usr/share/info/ipc.info +usr/sbin/resizepart +usr/sbin/rtcwake +#usr/share/bash-completion +#usr/share/bash-completion/completions +#usr/share/bash-completion/completions/addpart +#usr/share/bash-completion/completions/blkdiscard +#usr/share/bash-completion/completions/blkid +#usr/share/bash-completion/completions/blockdev +#usr/share/bash-completion/completions/cal +#usr/share/bash-completion/completions/cfdisk +#usr/share/bash-completion/completions/chcpu +#usr/share/bash-completion/completions/chrt +#usr/share/bash-completion/completions/col +#usr/share/bash-completion/completions/colcrt +#usr/share/bash-completion/completions/colrm +#usr/share/bash-completion/completions/column +#usr/share/bash-completion/completions/ctrlaltdel +#usr/share/bash-completion/completions/cytune +#usr/share/bash-completion/completions/delpart +#usr/share/bash-completion/completions/dmesg +#usr/share/bash-completion/completions/eject +#usr/share/bash-completion/completions/fallocate +#usr/share/bash-completion/completions/fdformat +#usr/share/bash-completion/completions/fdisk +#usr/share/bash-completion/completions/findmnt +#usr/share/bash-completion/completions/flock +#usr/share/bash-completion/completions/fsck +#usr/share/bash-completion/completions/fsck.cramfs +#usr/share/bash-completion/completions/fsck.minix +#usr/share/bash-completion/completions/fsfreeze +#usr/share/bash-completion/completions/fstrim +#usr/share/bash-completion/completions/getopt +#usr/share/bash-completion/completions/hexdump +#usr/share/bash-completion/completions/hwclock +#usr/share/bash-completion/completions/ionice +#usr/share/bash-completion/completions/ipcrm +#usr/share/bash-completion/completions/ipcs +#usr/share/bash-completion/completions/isosize +#usr/share/bash-completion/completions/ldattach +#usr/share/bash-completion/completions/logger +#usr/share/bash-completion/completions/look +#usr/share/bash-completion/completions/losetup +#usr/share/bash-completion/completions/lsblk +#usr/share/bash-completion/completions/lscpu +#usr/share/bash-completion/completions/lslocks +#usr/share/bash-completion/completions/mcookie +#usr/share/bash-completion/completions/mesg +#usr/share/bash-completion/completions/mkfs +#usr/share/bash-completion/completions/mkfs.bfs +#usr/share/bash-completion/completions/mkfs.cramfs +#usr/share/bash-completion/completions/mkfs.minix +#usr/share/bash-completion/completions/mkswap +#usr/share/bash-completion/completions/more +#usr/share/bash-completion/completions/mountpoint +#usr/share/bash-completion/completions/namei +#usr/share/bash-completion/completions/nsenter +#usr/share/bash-completion/completions/partx +#usr/share/bash-completion/completions/pg +#usr/share/bash-completion/completions/pivot_root +#usr/share/bash-completion/completions/prlimit +#usr/share/bash-completion/completions/raw +#usr/share/bash-completion/completions/readprofile +#usr/share/bash-completion/completions/rename +#usr/share/bash-completion/completions/renice +#usr/share/bash-completion/completions/resizepart +#usr/share/bash-completion/completions/rev +#usr/share/bash-completion/completions/rtcwake +#usr/share/bash-completion/completions/script +#usr/share/bash-completion/completions/scriptreplay +#usr/share/bash-completion/completions/setarch +#usr/share/bash-completion/completions/setsid +#usr/share/bash-completion/completions/setterm +#usr/share/bash-completion/completions/sfdisk +#usr/share/bash-completion/completions/swaplabel +#usr/share/bash-completion/completions/swapon +#usr/share/bash-completion/completions/tailf +#usr/share/bash-completion/completions/taskset +#usr/share/bash-completion/completions/ul +#usr/share/bash-completion/completions/unshare +#usr/share/bash-completion/completions/utmpdump +#usr/share/bash-completion/completions/uuidd +#usr/share/bash-completion/completions/uuidgen +#usr/share/bash-completion/completions/wall +#usr/share/bash-completion/completions/wdctl +#usr/share/bash-completion/completions/whereis +#usr/share/bash-completion/completions/wipefs +#usr/share/doc/util-linux +#usr/share/doc/util-linux/getopt +#usr/share/doc/util-linux/getopt/getopt-parse.bash +#usr/share/doc/util-linux/getopt/getopt-parse.tcsh #usr/share/locale/ca/LC_MESSAGES/util-linux.mo #usr/share/locale/cs/LC_MESSAGES/util-linux.mo #usr/share/locale/da/LC_MESSAGES/util-linux.mo @@ -67,12 +191,21 @@ usr/bin/renice #usr/share/locale/et #usr/share/locale/et/LC_MESSAGES #usr/share/locale/et/LC_MESSAGES/util-linux.mo +#usr/share/locale/eu +#usr/share/locale/eu/LC_MESSAGES +#usr/share/locale/eu/LC_MESSAGES/util-linux.mo #usr/share/locale/fi/LC_MESSAGES/util-linux.mo #usr/share/locale/fr/LC_MESSAGES/util-linux.mo +#usr/share/locale/gl/LC_MESSAGES/util-linux.mo +#usr/share/locale/hr/LC_MESSAGES/util-linux.mo +#usr/share/locale/hu/LC_MESSAGES/util-linux.mo +#usr/share/locale/id/LC_MESSAGES/util-linux.mo #usr/share/locale/it/LC_MESSAGES/util-linux.mo #usr/share/locale/ja/LC_MESSAGES/util-linux.mo #usr/share/locale/nl/LC_MESSAGES/util-linux.mo +#usr/share/locale/pl/LC_MESSAGES/util-linux.mo #usr/share/locale/pt_BR/LC_MESSAGES/util-linux.mo +#usr/share/locale/ru/LC_MESSAGES/util-linux.mo #usr/share/locale/sl #usr/share/locale/sl/LC_MESSAGES #usr/share/locale/sl/LC_MESSAGES/util-linux.mo @@ -81,68 +214,90 @@ usr/bin/renice #usr/share/locale/uk #usr/share/locale/uk/LC_MESSAGES #usr/share/locale/uk/LC_MESSAGES/util-linux.mo -#usr/share/man/man1/arch.1 +#usr/share/locale/vi/LC_MESSAGES/util-linux.mo +#usr/share/locale/zh_CN/LC_MESSAGES/util-linux.mo +#usr/share/locale/zh_TW/LC_MESSAGES/util-linux.mo #usr/share/man/man1/cal.1 -#usr/share/man/man1/chkdupexe.1 +#usr/share/man/man1/chrt.1 #usr/share/man/man1/col.1 #usr/share/man/man1/colcrt.1 #usr/share/man/man1/colrm.1 #usr/share/man/man1/column.1 -#usr/share/man/man1/ddate.1 +#usr/share/man/man1/dmesg.1 +#usr/share/man/man1/eject.1 +#usr/share/man/man1/fallocate.1 #usr/share/man/man1/flock.1 #usr/share/man/man1/getopt.1 #usr/share/man/man1/hexdump.1 -#usr/share/man/man1/line.1 +#usr/share/man/man1/ionice.1 +#usr/share/man/man1/ipcmk.1 +#usr/share/man/man1/ipcrm.1 +#usr/share/man/man1/ipcs.1 #usr/share/man/man1/look.1 +#usr/share/man/man1/lscpu.1 #usr/share/man/man1/mcookie.1 #usr/share/man/man1/more.1 #usr/share/man/man1/namei.1 +#usr/share/man/man1/nsenter.1 #usr/share/man/man1/pg.1 -#usr/share/man/man1/readprofile.1 +#usr/share/man/man1/prlimit.1 #usr/share/man/man1/rename.1 +#usr/share/man/man1/renice.1 #usr/share/man/man1/rev.1 #usr/share/man/man1/script.1 +#usr/share/man/man1/scriptreplay.1 +#usr/share/man/man1/setsid.1 #usr/share/man/man1/setterm.1 #usr/share/man/man1/tailf.1 +#usr/share/man/man1/taskset.1 #usr/share/man/man1/ul.1 +#usr/share/man/man1/unshare.1 #usr/share/man/man1/whereis.1 -#usr/share/man/man1/write.1 +#usr/share/man/man3/uuid_generate_time_safe.3 #usr/share/man/man5/fstab.5 -#usr/share/man/man5/nfs.5 +#usr/share/man/man8/addpart.8 #usr/share/man/man8/agetty.8 +#usr/share/man/man8/blkdiscard.8 #usr/share/man/man8/blockdev.8 #usr/share/man/man8/cfdisk.8 +#usr/share/man/man8/chcpu.8 #usr/share/man/man8/ctrlaltdel.8 #usr/share/man/man8/cytune.8 -#usr/share/man/man8/dmesg.8 -#usr/share/man/man8/elvtune.8 +#usr/share/man/man8/delpart.8 #usr/share/man/man8/fdformat.8 #usr/share/man/man8/fdisk.8 +#usr/share/man/man8/findmnt.8 +#usr/share/man/man8/fsck.cramfs.8 #usr/share/man/man8/fsck.minix.8 +#usr/share/man/man8/fsfreeze.8 +#usr/share/man/man8/fstrim.8 #usr/share/man/man8/hwclock.8 -#usr/share/man/man8/ipcrm.8 -#usr/share/man/man8/ipcs.8 #usr/share/man/man8/isosize.8 +#usr/share/man/man8/ldattach.8 +#usr/share/man/man8/linux32.8 +#usr/share/man/man8/linux64.8 #usr/share/man/man8/losetup.8 +#usr/share/man/man8/lsblk.8 +#usr/share/man/man8/lslocks.8 #usr/share/man/man8/mkfs.8 #usr/share/man/man8/mkfs.bfs.8 +#usr/share/man/man8/mkfs.cramfs.8 #usr/share/man/man8/mkfs.minix.8 #usr/share/man/man8/mkswap.8 #usr/share/man/man8/mount.8 +#usr/share/man/man8/nologin.8 +#usr/share/man/man8/partx.8 #usr/share/man/man8/pivot_root.8 #usr/share/man/man8/raw.8 -#usr/share/man/man8/renice.8 -#usr/share/man/man8/setfdprm.8 -#usr/share/man/man8/setsid.8 +#usr/share/man/man8/readprofile.8 +#usr/share/man/man8/resizepart.8 +#usr/share/man/man8/rtcwake.8 +#usr/share/man/man8/setarch.8 #usr/share/man/man8/sfdisk.8 -#usr/share/man/man8/sln.8 +#usr/share/man/man8/swaplabel.8 #usr/share/man/man8/swapoff.8 #usr/share/man/man8/swapon.8 -#usr/share/man/man8/tunelp.8 +#usr/share/man/man8/switch_root.8 #usr/share/man/man8/umount.8 -#usr/share/misc/getopt -#usr/share/misc/getopt/getopt-parse.bash -#usr/share/misc/getopt/getopt-parse.tcsh -#usr/share/misc/getopt/getopt-test.bash -#usr/share/misc/getopt/getopt-test.tcsh -var/lib/hwclock +#usr/share/man/man8/wdctl.8 +#usr/share/man/man8/wipefs.8 diff --git a/config/rootfiles/common/as86 b/config/rootfiles/common/as86 deleted file mode 100644 index 96a23e3..0000000 --- a/config/rootfiles/common/as86 +++ /dev/null @@ -1,5 +0,0 @@ -#usr/bin/as86 -#usr/bin/as86_encap -#var/ipfire/firebuild -#etc/system-release -#opt/pakfire/db/core/mine diff --git a/config/rootfiles/common/compat-drivers b/config/rootfiles/common/compat-drivers deleted file mode 100644 index 5a562d2..0000000 --- a/config/rootfiles/common/compat-drivers +++ /dev/null @@ -1,2 +0,0 @@ -lib/udev/rules.d/50-compat_firmware.rules -lib/udev/compat_firmware.sh diff --git a/config/rootfiles/common/configroot b/config/rootfiles/common/configroot index 5a169d8..b5de989 100644 --- a/config/rootfiles/common/configroot +++ b/config/rootfiles/common/configroot @@ -1,3 +1,8 @@ +usr/sbin/convert-dmz +usr/sbin/convert-outgoingfw +usr/sbin/convert-portfw +usr/sbin/convert-xtaccess +usr/sbin/firewall-policy #var/ipfire var/ipfire/addon-lang var/ipfire/auth @@ -26,8 +31,6 @@ var/ipfire/dhcp #var/ipfire/dhcp/fixleases #var/ipfire/dhcp/settings var/ipfire/dhcpc -var/ipfire/dmzholes -#var/ipfire/dmzholes/config var/ipfire/dns #var/ipfire/dns/settings var/ipfire/dnsforward @@ -39,13 +42,29 @@ var/ipfire/ethernet #var/ipfire/ethernet/settings #var/ipfire/ethernet/vlans #var/ipfire/ethernet/wireless -#var/ipfire/extrahd +var/ipfire/extrahd #var/ipfire/extrahd/bin -var/ipfire/extrahd/bin/extrahd.pl -var/ipfire/extrahd/devices -var/ipfire/extrahd/partitions -var/ipfire/extrahd/scan -var/ipfire/extrahd/settings +#var/ipfire/extrahd/bin/extrahd.pl +#var/ipfire/extrahd/devices +#var/ipfire/extrahd/partitions +#var/ipfire/extrahd/scan +#var/ipfire/extrahd/settings +var/ipfire/firewall +#var/ipfire/firewall/config +#var/ipfire/firewall/dmz +#var/ipfire/firewall/input +#var/ipfire/firewall/nat +#var/ipfire/firewall/outgoing +#var/ipfire/firewall/p2protocols +#var/ipfire/firewall/settings +var/ipfire/fwhosts +#var/ipfire/fwhosts/customgroups +#var/ipfire/fwhosts/customhosts +#var/ipfire/fwhosts/customnetworks +#var/ipfire/fwhosts/customservicegrp +#var/ipfire/fwhosts/customservices +#var/ipfire/fwhosts/customservices.default +#var/ipfire/fwhosts/icmp-types var/ipfire/fwlogs #var/ipfire/fwlogs/ipsettings #var/ipfire/fwlogs/portsettings @@ -106,24 +125,14 @@ var/ipfire/net-traffic #var/ipfire/nfs/nfs-server var/ipfire/optionsfw #var/ipfire/optionsfw/settings -var/ipfire/outgoing -#var/ipfire/outgoing/bin -#var/ipfire/outgoing/bin/outgoingfw.pl -var/ipfire/outgoing/defaultservices -#var/ipfire/outgoing/groups -#var/ipfire/outgoing/groups/ipgroups -#var/ipfire/outgoing/groups/macgroups -#var/ipfire/outgoing/p2protocols -#var/ipfire/outgoing/rules -#var/ipfire/outgoing/settings var/ipfire/ovpn -var/ipfire/ovpn/ccd.conf -var/ipfire/ovpn/ccdroute -var/ipfire/ovpn/ccdroute2 +#var/ipfire/ovpn/ccd.conf +#var/ipfire/ovpn/ccdroute +#var/ipfire/ovpn/ccdroute2 var/ipfire/pakfire #var/ipfire/pakfire/settings #var/ipfire/patches -var/ipfire/portfw +#var/ipfire/portfw #var/ipfire/portfw/config var/ipfire/ppp #var/ipfire/ppp/fake-resolv.conf @@ -189,7 +198,3 @@ var/ipfire/wakeonlan var/ipfire/wireless #var/ipfire/wireless/config #var/ipfire/wireless/settings -var/ipfire/xtaccess -#var/ipfire/xtaccess/config -var/ipfire/firebuild -etc/system-release diff --git a/config/rootfiles/common/cyrus-sasl b/config/rootfiles/common/cyrus-sasl index 4fe13bc..08a7321 100644 --- a/config/rootfiles/common/cyrus-sasl +++ b/config/rootfiles/common/cyrus-sasl @@ -37,53 +37,53 @@ usr/lib/sasl2/libsasldb.so usr/lib/sasl2/libsasldb.so.2 usr/lib/sasl2/libsasldb.so.2.0.21 usr/lib/sasl2/smtpd.conf -#usr/man/man3/sasl.3 -#usr/man/man3/sasl_authorize_t.3 -#usr/man/man3/sasl_auxprop.3 -#usr/man/man3/sasl_auxprop_getctx.3 -#usr/man/man3/sasl_auxprop_request.3 -#usr/man/man3/sasl_callbacks.3 -#usr/man/man3/sasl_canon_user_t.3 -#usr/man/man3/sasl_chalprompt_t.3 -#usr/man/man3/sasl_checkapop.3 -#usr/man/man3/sasl_checkpass.3 -#usr/man/man3/sasl_client_init.3 -#usr/man/man3/sasl_client_new.3 -#usr/man/man3/sasl_client_start.3 -#usr/man/man3/sasl_client_step.3 -#usr/man/man3/sasl_decode.3 -#usr/man/man3/sasl_dispose.3 -#usr/man/man3/sasl_done.3 -#usr/man/man3/sasl_encode.3 -#usr/man/man3/sasl_encodev.3 -#usr/man/man3/sasl_errdetail.3 -#usr/man/man3/sasl_errors.3 -#usr/man/man3/sasl_errstring.3 -#usr/man/man3/sasl_getopt_t.3 -#usr/man/man3/sasl_getpath_t.3 -#usr/man/man3/sasl_getprop.3 -#usr/man/man3/sasl_getrealm_t.3 -#usr/man/man3/sasl_getsecret_t.3 -#usr/man/man3/sasl_getsimple_t.3 -#usr/man/man3/sasl_global_listmech.3 -#usr/man/man3/sasl_idle.3 -#usr/man/man3/sasl_listmech.3 -#usr/man/man3/sasl_log_t.3 -#usr/man/man3/sasl_server_init.3 -#usr/man/man3/sasl_server_new.3 -#usr/man/man3/sasl_server_start.3 -#usr/man/man3/sasl_server_step.3 -#usr/man/man3/sasl_server_userdb_checkpass_t.3 -#usr/man/man3/sasl_server_userdb_setpass_t.3 -#usr/man/man3/sasl_setpass.3 -#usr/man/man3/sasl_setprop.3 -#usr/man/man3/sasl_user_exists.3 -#usr/man/man3/sasl_verifyfile_t.3 -#usr/man/man8/saslauthd.8 -#usr/man/man8/sasldblistusers2.8 -#usr/man/man8/saslpasswd2.8 +#usr/man/cat8 +#usr/man/cat8/saslauthd.8 usr/sbin/saslauthd usr/sbin/sasldblistusers2 usr/sbin/saslpasswd2 +#usr/share/man/man3/sasl.3 +#usr/share/man/man3/sasl_authorize_t.3 +#usr/share/man/man3/sasl_auxprop.3 +#usr/share/man/man3/sasl_auxprop_getctx.3 +#usr/share/man/man3/sasl_auxprop_request.3 +#usr/share/man/man3/sasl_callbacks.3 +#usr/share/man/man3/sasl_canon_user_t.3 +#usr/share/man/man3/sasl_chalprompt_t.3 +#usr/share/man/man3/sasl_checkapop.3 +#usr/share/man/man3/sasl_checkpass.3 +#usr/share/man/man3/sasl_client_init.3 +#usr/share/man/man3/sasl_client_new.3 +#usr/share/man/man3/sasl_client_start.3 +#usr/share/man/man3/sasl_client_step.3 +#usr/share/man/man3/sasl_decode.3 +#usr/share/man/man3/sasl_dispose.3 +#usr/share/man/man3/sasl_done.3 +#usr/share/man/man3/sasl_encode.3 +#usr/share/man/man3/sasl_encodev.3 +#usr/share/man/man3/sasl_errdetail.3 +#usr/share/man/man3/sasl_errors.3 +#usr/share/man/man3/sasl_errstring.3 +#usr/share/man/man3/sasl_getopt_t.3 +#usr/share/man/man3/sasl_getpath_t.3 +#usr/share/man/man3/sasl_getprop.3 +#usr/share/man/man3/sasl_getrealm_t.3 +#usr/share/man/man3/sasl_getsecret_t.3 +#usr/share/man/man3/sasl_getsimple_t.3 +#usr/share/man/man3/sasl_global_listmech.3 +#usr/share/man/man3/sasl_idle.3 +#usr/share/man/man3/sasl_listmech.3 +#usr/share/man/man3/sasl_log_t.3 +#usr/share/man/man3/sasl_server_init.3 +#usr/share/man/man3/sasl_server_new.3 +#usr/share/man/man3/sasl_server_start.3 +#usr/share/man/man3/sasl_server_step.3 +#usr/share/man/man3/sasl_server_userdb_checkpass_t.3 +#usr/share/man/man3/sasl_server_userdb_setpass_t.3 +#usr/share/man/man3/sasl_setpass.3 +#usr/share/man/man3/sasl_setprop.3 +#usr/share/man/man3/sasl_user_exists.3 +#usr/share/man/man3/sasl_verifyfile_t.3 +#usr/share/man/man8/sasldblistusers2.8 +#usr/share/man/man8/saslpasswd2.8 var/lib/sasl -var/run/saslauthd diff --git a/config/rootfiles/common/dosfstools b/config/rootfiles/common/dosfstools index 2a1b0ef..4b38c29 100644 --- a/config/rootfiles/common/dosfstools +++ b/config/rootfiles/common/dosfstools @@ -5,6 +5,7 @@ sbin/fsck.vfat sbin/mkdosfs sbin/mkfs.msdos sbin/mkfs.vfat +#share #share/doc #share/doc/dosfstools #share/doc/dosfstools/ANNOUNCE.mkdosfs @@ -16,6 +17,8 @@ sbin/mkfs.vfat #share/doc/dosfstools/README.dosfstools-2.x #share/doc/dosfstools/README.mkdosfs #share/doc/dosfstools/TODO.dosfstools-2.x +#share/man +#share/man/man8 #share/man/man8/dosfsck.8 #share/man/man8/dosfslabel.8 #share/man/man8/fsck.msdos.8 diff --git a/config/rootfiles/common/dvb-firmwares b/config/rootfiles/common/dvb-firmwares index 3a521b1..53dec97 100644 --- a/config/rootfiles/common/dvb-firmwares +++ b/config/rootfiles/common/dvb-firmwares @@ -21,3 +21,4 @@ lib/firmware/dvb-usb-vp702x-01.fw lib/firmware/dvb-usb-vp7045-01.fw lib/firmware/dvb-usb-wt220u-01.fw lib/firmware/dvb-usb-wt220u-02.fw +lib/firmware/v4l-cx23885-enc.fw diff --git a/config/rootfiles/common/eject b/config/rootfiles/common/eject deleted file mode 100644 index 988d1b7..0000000 --- a/config/rootfiles/common/eject +++ /dev/null @@ -1,14 +0,0 @@ -usr/bin/eject -usr/bin/volname -#usr/man/man1/eject.1 -#usr/man/man1/volname.1 -#usr/share/locale/cs_CZ -#usr/share/locale/cs_CZ/LC_MESSAGES -#usr/share/locale/cs_CZ/LC_MESSAGES/eject.mo -#usr/share/locale/de/LC_MESSAGES/eject.mo -#usr/share/locale/es/LC_MESSAGES/eject.mo -#usr/share/locale/fr/LC_MESSAGES/eject.mo -#usr/share/locale/ja/LC_MESSAGES/eject.mo -#usr/share/locale/pt_BR/LC_MESSAGES/eject.mo -#usr/share/locale/tr/LC_MESSAGES/eject.mo -#usr/share/locale/zh_TW/LC_MESSAGES/eject.mo diff --git a/config/rootfiles/common/fireinfo b/config/rootfiles/common/fireinfo index ab7ecef..a4e209f 100644 --- a/config/rootfiles/common/fireinfo +++ b/config/rootfiles/common/fireinfo @@ -1,15 +1,27 @@ usr/bin/sendprofile -usr/lib/python2.7/site-packages/_fireinfo.so usr/lib/python2.7/site-packages/fireinfo usr/lib/python2.7/site-packages/fireinfo/__init__.py usr/lib/python2.7/site-packages/fireinfo/__init__.pyc +usr/lib/python2.7/site-packages/fireinfo/__init__.pyo +#usr/lib/python2.7/site-packages/fireinfo/_fireinfo.la +usr/lib/python2.7/site-packages/fireinfo/_fireinfo.so +usr/lib/python2.7/site-packages/fireinfo/bios.py +usr/lib/python2.7/site-packages/fireinfo/bios.pyc +usr/lib/python2.7/site-packages/fireinfo/bios.pyo usr/lib/python2.7/site-packages/fireinfo/cpu.py usr/lib/python2.7/site-packages/fireinfo/cpu.pyc +usr/lib/python2.7/site-packages/fireinfo/cpu.pyo usr/lib/python2.7/site-packages/fireinfo/device.py usr/lib/python2.7/site-packages/fireinfo/device.pyc +usr/lib/python2.7/site-packages/fireinfo/device.pyo usr/lib/python2.7/site-packages/fireinfo/hypervisor.py usr/lib/python2.7/site-packages/fireinfo/hypervisor.pyc +usr/lib/python2.7/site-packages/fireinfo/hypervisor.pyo usr/lib/python2.7/site-packages/fireinfo/network.py usr/lib/python2.7/site-packages/fireinfo/network.pyc +usr/lib/python2.7/site-packages/fireinfo/network.pyo usr/lib/python2.7/site-packages/fireinfo/system.py usr/lib/python2.7/site-packages/fireinfo/system.pyc +usr/lib/python2.7/site-packages/fireinfo/system.pyo +usr/share/doc/fireinfo +usr/share/doc/fireinfo/COPYING diff --git a/config/rootfiles/common/fstrim b/config/rootfiles/common/fstrim deleted file mode 100644 index 775fa92..0000000 --- a/config/rootfiles/common/fstrim +++ /dev/null @@ -1,2 +0,0 @@ -etc/fcron.daily/trim -usr/bin/fstrim diff --git a/config/rootfiles/common/i586/dracut b/config/rootfiles/common/i586/dracut index cb57182..27d8243 100644 --- a/config/rootfiles/common/i586/dracut +++ b/config/rootfiles/common/i586/dracut @@ -7,7 +7,6 @@ sbin/dracut-catimages sbin/dracut-gencmdline sbin/lsinitrd sbin/mkinitrd -sbin/switch_root usr/share/dracut usr/share/dracut/dracut-functions usr/share/dracut/modules.d @@ -52,6 +51,7 @@ usr/share/dracut/modules.d/99base/check usr/share/dracut/modules.d/99base/dracut-lib.sh usr/share/dracut/modules.d/99base/init usr/share/dracut/modules.d/99base/initqueue +#usr/share/dracut/modules.d/99base/init~ usr/share/dracut/modules.d/99base/install usr/share/dracut/modules.d/99base/loginit usr/share/dracut/modules.d/99base/parse-blacklist.sh @@ -60,3 +60,4 @@ usr/share/dracut/modules.d/99base/parse-root-opts.sh #usr/share/man/man8/dracut-catimages.8 #usr/share/man/man8/dracut-gencmdline.8 #usr/share/man/man8/dracut.8 +sbin/switch_root diff --git a/config/rootfiles/common/i586/glibc b/config/rootfiles/common/i586/glibc index d17d7da..8eb200d 100644 --- a/config/rootfiles/common/i586/glibc +++ b/config/rootfiles/common/i586/glibc @@ -48,8 +48,8 @@ sbin/ldconfig #sbin/sln #usr/bin/catchsegv #usr/bin/gencat -#usr/bin/getconf -#usr/bin/getent +usr/bin/getconf +usr/bin/getent #usr/bin/iconv usr/bin/ldd #usr/bin/lddlibc4 diff --git a/config/rootfiles/common/i586/initscripts b/config/rootfiles/common/i586/initscripts index 3aca59e..07a39f4 100644 --- a/config/rootfiles/common/i586/initscripts +++ b/config/rootfiles/common/i586/initscripts @@ -76,25 +76,20 @@ etc/rc.d/init.d/networking/red.down/10-ipsec etc/rc.d/init.d/networking/red.down/10-miniupnpd etc/rc.d/init.d/networking/red.down/10-ovpn etc/rc.d/init.d/networking/red.down/20-RL-firewall -etc/rc.d/init.d/networking/red.down/99-D-dialctrl.pl #etc/rc.d/init.d/networking/red.up etc/rc.d/init.d/networking/red.up/01-conntrack-cleanup etc/rc.d/init.d/networking/red.up/05-RS-dnsmasq etc/rc.d/init.d/networking/red.up/10-miniupnpd etc/rc.d/init.d/networking/red.up/10-multicast etc/rc.d/init.d/networking/red.up/20-RL-firewall -etc/rc.d/init.d/networking/red.up/22-outgoingfwctrl etc/rc.d/init.d/networking/red.up/23-RS-snort etc/rc.d/init.d/networking/red.up/24-RS-qos -etc/rc.d/init.d/networking/red.up/25-portfw -etc/rc.d/init.d/networking/red.up/26-xtaccess etc/rc.d/init.d/networking/red.up/27-RS-squid etc/rc.d/init.d/networking/red.up/30-ddns etc/rc.d/init.d/networking/red.up/40-ipac etc/rc.d/init.d/networking/red.up/50-ipsec etc/rc.d/init.d/networking/red.up/50-ovpn etc/rc.d/init.d/networking/red.up/98-leds -etc/rc.d/init.d/networking/red.up/99-U-dialctrl.pl etc/rc.d/init.d/networking/red.up/99-fireinfo etc/rc.d/init.d/networking/red.up/99-pakfire-update etc/rc.d/init.d/networking/wpa_supplicant.exe @@ -110,6 +105,7 @@ etc/rc.d/init.d/fsresize etc/rc.d/init.d/random etc/rc.d/init.d/rc etc/rc.d/init.d/reboot +etc/rc.d/init.d/rngd #etc/rc.d/init.d/samba #etc/rc.d/init.d/sane etc/rc.d/init.d/sendsignals @@ -219,6 +215,7 @@ etc/rc.d/rc6.d/S90localnet etc/rc.d/rc6.d/S99reboot #etc/rc.d/rcsysinit.d etc/rc.d/rcsysinit.d/S00mountkernfs +etc/rc.d/rcsysinit.d/S01sysctl etc/rc.d/rcsysinit.d/S05modules etc/rc.d/rcsysinit.d/S10udev etc/rc.d/rcsysinit.d/S19checkfstab @@ -232,8 +229,9 @@ etc/rc.d/rcsysinit.d/S60setclock etc/rc.d/rcsysinit.d/S70console etc/rc.d/rcsysinit.d/S75firstsetup etc/rc.d/rcsysinit.d/S80localnet -etc/rc.d/rcsysinit.d/S90sysctl +etc/rc.d/rcsysinit.d/S85firewall etc/rc.d/rcsysinit.d/S91network-vlans +etc/rc.d/rcsysinit.d/S92rngd etc/rc.d/rc3.d/S15fireinfo #etc/sysconfig etc/sysconfig/createfiles diff --git a/config/rootfiles/common/i586/linux b/config/rootfiles/common/i586/linux index 20b6410..daaa176 100644 --- a/config/rootfiles/common/i586/linux +++ b/config/rootfiles/common/i586/linux @@ -3,42 +3,40 @@ boot/System.map-ipfire boot/config-KVER-ipfire boot/vmlinuz-KVER-ipfire boot/vmlinuz-ipfire -etc/modprobe.d/framebuffer -etc/modprobe.d/ipv6 -etc/modprobe.d/isdn +etc/modprobe.d/framebuffer.conf +etc/modprobe.d/ipv6.conf +etc/modprobe.d/isdn.conf lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/build #lib/modules/KVER-ipfire/kernel #lib/modules/KVER-ipfire/kernel/arch #lib/modules/KVER-ipfire/kernel/arch/x86 #lib/modules/KVER-ipfire/kernel/arch/x86/crypto -#lib/modules/KVER-ipfire/kernel/arch/x86/crypto/aes-i586.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/crypto/aesni-intel.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/crypto/crc32c-intel.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/crypto/salsa20-i586.ko +#lib/modules/KVER-ipfire/kernel/arch/x86/crypto/crc32-pclmul.ko +#lib/modules/KVER-ipfire/kernel/arch/x86/crypto/glue_helper.ko +#lib/modules/KVER-ipfire/kernel/arch/x86/crypto/serpent-sse2-i586.ko #lib/modules/KVER-ipfire/kernel/arch/x86/crypto/twofish-i586.ko #lib/modules/KVER-ipfire/kernel/arch/x86/kernel -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/apm.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/mcheck -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/mcheck/mce-inject.ko #lib/modules/KVER-ipfire/kernel/arch/x86/kernel/microcode.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/msr.ko +#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/test_nx.ko #lib/modules/KVER-ipfire/kernel/arch/x86/kvm #lib/modules/KVER-ipfire/kernel/arch/x86/kvm/kvm-amd.ko #lib/modules/KVER-ipfire/kernel/arch/x86/kvm/kvm-intel.ko #lib/modules/KVER-ipfire/kernel/arch/x86/kvm/kvm.ko #lib/modules/KVER-ipfire/kernel/arch/x86/platform +#lib/modules/KVER-ipfire/kernel/arch/x86/platform/iris +#lib/modules/KVER-ipfire/kernel/arch/x86/platform/iris/iris.ko #lib/modules/KVER-ipfire/kernel/arch/x86/platform/scx200 #lib/modules/KVER-ipfire/kernel/arch/x86/platform/scx200/scx200.ko #lib/modules/KVER-ipfire/kernel/crypto -#lib/modules/KVER-ipfire/kernel/crypto/aes_generic.ko -#lib/modules/KVER-ipfire/kernel/crypto/af_alg.ko -#lib/modules/KVER-ipfire/kernel/crypto/algif_hash.ko -#lib/modules/KVER-ipfire/kernel/crypto/algif_skcipher.ko #lib/modules/KVER-ipfire/kernel/crypto/ansi_cprng.ko #lib/modules/KVER-ipfire/kernel/crypto/anubis.ko #lib/modules/KVER-ipfire/kernel/crypto/arc4.ko +#lib/modules/KVER-ipfire/kernel/crypto/asymmetric_keys +#lib/modules/KVER-ipfire/kernel/crypto/asymmetric_keys/asymmetric_keys.ko +#lib/modules/KVER-ipfire/kernel/crypto/asymmetric_keys/public_key.ko +#lib/modules/KVER-ipfire/kernel/crypto/asymmetric_keys/rsa.ko +#lib/modules/KVER-ipfire/kernel/crypto/asymmetric_keys/x509_key_parser.ko #lib/modules/KVER-ipfire/kernel/crypto/async_tx #lib/modules/KVER-ipfire/kernel/crypto/async_tx/async_memcpy.ko #lib/modules/KVER-ipfire/kernel/crypto/async_tx/async_pq.ko @@ -50,27 +48,22 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/crypto/authencesn.ko #lib/modules/KVER-ipfire/kernel/crypto/blowfish_common.ko #lib/modules/KVER-ipfire/kernel/crypto/blowfish_generic.ko -#lib/modules/KVER-ipfire/kernel/crypto/camellia.ko -#lib/modules/KVER-ipfire/kernel/crypto/cast5.ko -#lib/modules/KVER-ipfire/kernel/crypto/cast6.ko -#lib/modules/KVER-ipfire/kernel/crypto/cbc.ko +#lib/modules/KVER-ipfire/kernel/crypto/camellia_generic.ko +#lib/modules/KVER-ipfire/kernel/crypto/cast5_generic.ko +#lib/modules/KVER-ipfire/kernel/crypto/cast6_generic.ko +#lib/modules/KVER-ipfire/kernel/crypto/cast_common.ko #lib/modules/KVER-ipfire/kernel/crypto/ccm.ko -#lib/modules/KVER-ipfire/kernel/crypto/crc32c.ko -#lib/modules/KVER-ipfire/kernel/crypto/cryptd.ko -#lib/modules/KVER-ipfire/kernel/crypto/crypto_user.ko -#lib/modules/KVER-ipfire/kernel/crypto/ctr.ko +#lib/modules/KVER-ipfire/kernel/crypto/cmac.ko +#lib/modules/KVER-ipfire/kernel/crypto/crypto_null.ko #lib/modules/KVER-ipfire/kernel/crypto/cts.ko +#lib/modules/KVER-ipfire/kernel/crypto/deflate.ko #lib/modules/KVER-ipfire/kernel/crypto/des_generic.ko -#lib/modules/KVER-ipfire/kernel/crypto/ecb.ko #lib/modules/KVER-ipfire/kernel/crypto/fcrypt.ko #lib/modules/KVER-ipfire/kernel/crypto/gcm.ko -#lib/modules/KVER-ipfire/kernel/crypto/gf128mul.ko #lib/modules/KVER-ipfire/kernel/crypto/ghash-generic.ko #lib/modules/KVER-ipfire/kernel/crypto/khazad.ko -#lib/modules/KVER-ipfire/kernel/crypto/lrw.ko #lib/modules/KVER-ipfire/kernel/crypto/lzo.ko #lib/modules/KVER-ipfire/kernel/crypto/md4.ko -#lib/modules/KVER-ipfire/kernel/crypto/md5.ko #lib/modules/KVER-ipfire/kernel/crypto/michael_mic.ko #lib/modules/KVER-ipfire/kernel/crypto/pcbc.ko #lib/modules/KVER-ipfire/kernel/crypto/pcrypt.ko @@ -80,11 +73,10 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/crypto/rmd320.ko #lib/modules/KVER-ipfire/kernel/crypto/salsa20_generic.ko #lib/modules/KVER-ipfire/kernel/crypto/seed.ko -#lib/modules/KVER-ipfire/kernel/crypto/seqiv.ko -#lib/modules/KVER-ipfire/kernel/crypto/serpent.ko +#lib/modules/KVER-ipfire/kernel/crypto/serpent_generic.ko #lib/modules/KVER-ipfire/kernel/crypto/sha1_generic.ko -#lib/modules/KVER-ipfire/kernel/crypto/sha256_generic.ko #lib/modules/KVER-ipfire/kernel/crypto/sha512_generic.ko +#lib/modules/KVER-ipfire/kernel/crypto/tcrypt.ko #lib/modules/KVER-ipfire/kernel/crypto/tea.ko #lib/modules/KVER-ipfire/kernel/crypto/tgr192.ko #lib/modules/KVER-ipfire/kernel/crypto/twofish_common.ko @@ -93,32 +85,21 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/crypto/wp512.ko #lib/modules/KVER-ipfire/kernel/crypto/xcbc.ko #lib/modules/KVER-ipfire/kernel/crypto/xor.ko -#lib/modules/KVER-ipfire/kernel/crypto/xts.ko #lib/modules/KVER-ipfire/kernel/crypto/zlib.ko #lib/modules/KVER-ipfire/kernel/drivers #lib/modules/KVER-ipfire/kernel/drivers/acpi -#lib/modules/KVER-ipfire/kernel/drivers/acpi/ac.ko +#lib/modules/KVER-ipfire/kernel/drivers/acpi/acpi_i2c.ko #lib/modules/KVER-ipfire/kernel/drivers/acpi/acpi_ipmi.ko #lib/modules/KVER-ipfire/kernel/drivers/acpi/acpi_pad.ko -#lib/modules/KVER-ipfire/kernel/drivers/acpi/battery.ko -#lib/modules/KVER-ipfire/kernel/drivers/acpi/button.ko -#lib/modules/KVER-ipfire/kernel/drivers/acpi/container.ko +#lib/modules/KVER-ipfire/kernel/drivers/acpi/custom_method.ko #lib/modules/KVER-ipfire/kernel/drivers/acpi/ec_sys.ko -#lib/modules/KVER-ipfire/kernel/drivers/acpi/fan.ko -#lib/modules/KVER-ipfire/kernel/drivers/acpi/pci_slot.ko -#lib/modules/KVER-ipfire/kernel/drivers/acpi/processor.ko #lib/modules/KVER-ipfire/kernel/drivers/acpi/sbs.ko #lib/modules/KVER-ipfire/kernel/drivers/acpi/sbshc.ko -#lib/modules/KVER-ipfire/kernel/drivers/acpi/thermal.ko #lib/modules/KVER-ipfire/kernel/drivers/acpi/video.ko #lib/modules/KVER-ipfire/kernel/drivers/ata #lib/modules/KVER-ipfire/kernel/drivers/ata/acard-ahci.ko -#lib/modules/KVER-ipfire/kernel/drivers/ata/ahci.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/ahci_platform.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/ata_generic.ko -#lib/modules/KVER-ipfire/kernel/drivers/ata/ata_piix.ko -#lib/modules/KVER-ipfire/kernel/drivers/ata/libahci.ko -#lib/modules/KVER-ipfire/kernel/drivers/ata/libata.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_acpi.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_ali.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_amd.ko @@ -130,7 +111,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_cmd64x.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_cs5520.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_cs5530.ko -#lib/modules/KVER-ipfire/kernel/drivers/ata/pata_cs5535.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_cs5536.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_cypress.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_efar.ko @@ -156,6 +136,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_pdc2027x.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_pdc202xx_old.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_piccolo.ko +#lib/modules/KVER-ipfire/kernel/drivers/ata/pata_platform.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_radisys.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_rdc.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_rz1000.ko @@ -168,6 +149,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_triflex.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_via.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pdc_adma.ko +#lib/modules/KVER-ipfire/kernel/drivers/ata/sata_highbank.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/sata_inic162x.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/sata_mv.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/sata_nv.ko @@ -189,7 +171,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/atm/fore_200e.ko #lib/modules/KVER-ipfire/kernel/drivers/atm/he.ko #lib/modules/KVER-ipfire/kernel/drivers/atm/horizon.ko -#lib/modules/KVER-ipfire/kernel/drivers/atm/idt77105.ko #lib/modules/KVER-ipfire/kernel/drivers/atm/idt77252.ko #lib/modules/KVER-ipfire/kernel/drivers/atm/iphase.ko #lib/modules/KVER-ipfire/kernel/drivers/atm/lanai.ko @@ -201,20 +182,19 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/base #lib/modules/KVER-ipfire/kernel/drivers/base/regmap #lib/modules/KVER-ipfire/kernel/drivers/base/regmap/regmap-i2c.ko -#lib/modules/KVER-ipfire/kernel/drivers/bcma -#lib/modules/KVER-ipfire/kernel/drivers/bcma/bcma.ko #lib/modules/KVER-ipfire/kernel/drivers/block #lib/modules/KVER-ipfire/kernel/drivers/block/DAC960.ko -#lib/modules/KVER-ipfire/kernel/drivers/block/aoe -#lib/modules/KVER-ipfire/kernel/drivers/block/aoe/aoe.ko #lib/modules/KVER-ipfire/kernel/drivers/block/cciss.ko #lib/modules/KVER-ipfire/kernel/drivers/block/cpqarray.ko #lib/modules/KVER-ipfire/kernel/drivers/block/cryptoloop.ko #lib/modules/KVER-ipfire/kernel/drivers/block/floppy.ko -#lib/modules/KVER-ipfire/kernel/drivers/block/nbd.ko -#lib/modules/KVER-ipfire/kernel/drivers/block/osdblk.ko -#lib/modules/KVER-ipfire/kernel/drivers/block/rbd.ko +#lib/modules/KVER-ipfire/kernel/drivers/block/mtip32xx +#lib/modules/KVER-ipfire/kernel/drivers/block/mtip32xx/mtip32xx.ko +#lib/modules/KVER-ipfire/kernel/drivers/block/nvme.ko +#lib/modules/KVER-ipfire/kernel/drivers/block/rsxx +#lib/modules/KVER-ipfire/kernel/drivers/block/rsxx/rsxx.ko #lib/modules/KVER-ipfire/kernel/drivers/block/sx8.ko +#lib/modules/KVER-ipfire/kernel/drivers/block/umem.ko #lib/modules/KVER-ipfire/kernel/drivers/block/virtio_blk.ko #lib/modules/KVER-ipfire/kernel/drivers/bluetooth #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/ath3k.ko @@ -222,38 +202,22 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/bfusb.ko #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/bluecard_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/bpa10x.ko -#lib/modules/KVER-ipfire/kernel/drivers/bluetooth/bt3c_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/btmrvl.ko #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/btmrvl_sdio.ko #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/btsdio.ko #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/btuart_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/btusb.ko #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/btwilink.ko -#lib/modules/KVER-ipfire/kernel/drivers/bluetooth/dtl1_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/hci_uart.ko #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/hci_vhci.ko -#lib/modules/KVER-ipfire/kernel/drivers/cdrom -#lib/modules/KVER-ipfire/kernel/drivers/cdrom/cdrom.ko #lib/modules/KVER-ipfire/kernel/drivers/char -#lib/modules/KVER-ipfire/kernel/drivers/char/agp -#lib/modules/KVER-ipfire/kernel/drivers/char/agp/agpgart.ko -#lib/modules/KVER-ipfire/kernel/drivers/char/agp/ali-agp.ko -#lib/modules/KVER-ipfire/kernel/drivers/char/agp/amd-k7-agp.ko -#lib/modules/KVER-ipfire/kernel/drivers/char/agp/amd64-agp.ko -#lib/modules/KVER-ipfire/kernel/drivers/char/agp/ati-agp.ko -#lib/modules/KVER-ipfire/kernel/drivers/char/agp/efficeon-agp.ko -#lib/modules/KVER-ipfire/kernel/drivers/char/agp/intel-agp.ko -#lib/modules/KVER-ipfire/kernel/drivers/char/agp/intel-gtt.ko -#lib/modules/KVER-ipfire/kernel/drivers/char/agp/nvidia-agp.ko -#lib/modules/KVER-ipfire/kernel/drivers/char/agp/sis-agp.ko -#lib/modules/KVER-ipfire/kernel/drivers/char/agp/sworks-agp.ko -#lib/modules/KVER-ipfire/kernel/drivers/char/agp/via-agp.ko #lib/modules/KVER-ipfire/kernel/drivers/char/hangcheck-timer.ko #lib/modules/KVER-ipfire/kernel/drivers/char/hw_random #lib/modules/KVER-ipfire/kernel/drivers/char/hw_random/amd-rng.ko +#lib/modules/KVER-ipfire/kernel/drivers/char/hw_random/atmel-rng.ko +#lib/modules/KVER-ipfire/kernel/drivers/char/hw_random/exynos-rng.ko #lib/modules/KVER-ipfire/kernel/drivers/char/hw_random/geode-rng.ko #lib/modules/KVER-ipfire/kernel/drivers/char/hw_random/intel-rng.ko -#lib/modules/KVER-ipfire/kernel/drivers/char/hw_random/rng-core.ko #lib/modules/KVER-ipfire/kernel/drivers/char/hw_random/timeriomem-rng.ko #lib/modules/KVER-ipfire/kernel/drivers/char/hw_random/via-rng.ko #lib/modules/KVER-ipfire/kernel/drivers/char/hw_random/virtio-rng.ko @@ -268,91 +232,87 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/char/mwave #lib/modules/KVER-ipfire/kernel/drivers/char/mwave/mwave.ko #lib/modules/KVER-ipfire/kernel/drivers/char/nsc_gpio.ko -#lib/modules/KVER-ipfire/kernel/drivers/char/nvram.ko #lib/modules/KVER-ipfire/kernel/drivers/char/pc8736x_gpio.ko -#lib/modules/KVER-ipfire/kernel/drivers/char/pcmcia -#lib/modules/KVER-ipfire/kernel/drivers/char/pcmcia/synclink_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/char/ppdev.ko -#lib/modules/KVER-ipfire/kernel/drivers/char/scx200_gpio.ko +#lib/modules/KVER-ipfire/kernel/drivers/char/sonypi.ko #lib/modules/KVER-ipfire/kernel/drivers/char/toshiba.ko #lib/modules/KVER-ipfire/kernel/drivers/clocksource #lib/modules/KVER-ipfire/kernel/drivers/clocksource/cs5535-clockevt.ko #lib/modules/KVER-ipfire/kernel/drivers/clocksource/scx200_hrt.ko -#lib/modules/KVER-ipfire/kernel/drivers/connector -#lib/modules/KVER-ipfire/kernel/drivers/connector/cn.ko #lib/modules/KVER-ipfire/kernel/drivers/cpufreq -#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/acpi-cpufreq.ko -#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/cpufreq-nforce2.ko #lib/modules/KVER-ipfire/kernel/drivers/cpufreq/cpufreq_conservative.ko #lib/modules/KVER-ipfire/kernel/drivers/cpufreq/cpufreq_ondemand.ko #lib/modules/KVER-ipfire/kernel/drivers/cpufreq/cpufreq_powersave.ko -#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/cpufreq_userspace.ko -#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/e_powersaver.ko -#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/gx-suspmod.ko -#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/longhaul.ko -#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/longrun.ko -#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/mperf.ko -#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/p4-clockmod.ko -#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/pcc-cpufreq.ko -#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/powernow-k6.ko -#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/powernow-k7.ko -#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/powernow-k8.ko -#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/speedstep-centrino.ko -#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/speedstep-ich.ko -#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/speedstep-lib.ko -#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/speedstep-smi.ko +#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/cpufreq_stats.ko #lib/modules/KVER-ipfire/kernel/drivers/crypto -#lib/modules/KVER-ipfire/kernel/drivers/crypto/geode-aes.ko.off +#lib/modules/KVER-ipfire/kernel/drivers/crypto/geode-aes.ko #lib/modules/KVER-ipfire/kernel/drivers/crypto/hifn_795x.ko #lib/modules/KVER-ipfire/kernel/drivers/crypto/padlock-aes.ko #lib/modules/KVER-ipfire/kernel/drivers/crypto/padlock-sha.ko #lib/modules/KVER-ipfire/kernel/drivers/dca #lib/modules/KVER-ipfire/kernel/drivers/dca/dca.ko #lib/modules/KVER-ipfire/kernel/drivers/dma -#lib/modules/KVER-ipfire/kernel/drivers/dma/dmatest.ko -#lib/modules/KVER-ipfire/kernel/drivers/dma/intel_mid_dma.ko +#lib/modules/KVER-ipfire/kernel/drivers/dma/dw_dmac.ko #lib/modules/KVER-ipfire/kernel/drivers/dma/ioat #lib/modules/KVER-ipfire/kernel/drivers/dma/ioat/ioatdma.ko #lib/modules/KVER-ipfire/kernel/drivers/dma/pch_dma.ko #lib/modules/KVER-ipfire/kernel/drivers/dma/timb_dma.ko +#lib/modules/KVER-ipfire/kernel/drivers/edac +#lib/modules/KVER-ipfire/kernel/drivers/edac/e752x_edac.ko +#lib/modules/KVER-ipfire/kernel/drivers/edac/edac_core.ko +#lib/modules/KVER-ipfire/kernel/drivers/edac/edac_mce_amd.ko +#lib/modules/KVER-ipfire/kernel/drivers/edac/i3000_edac.ko +#lib/modules/KVER-ipfire/kernel/drivers/edac/i3200_edac.ko +#lib/modules/KVER-ipfire/kernel/drivers/edac/i5000_edac.ko +#lib/modules/KVER-ipfire/kernel/drivers/edac/i5100_edac.ko +#lib/modules/KVER-ipfire/kernel/drivers/edac/i5400_edac.ko +#lib/modules/KVER-ipfire/kernel/drivers/edac/i7300_edac.ko +#lib/modules/KVER-ipfire/kernel/drivers/edac/i7core_edac.ko +#lib/modules/KVER-ipfire/kernel/drivers/edac/i82975x_edac.ko +#lib/modules/KVER-ipfire/kernel/drivers/edac/mce_amd_inj.ko +#lib/modules/KVER-ipfire/kernel/drivers/edac/x38_edac.ko #lib/modules/KVER-ipfire/kernel/drivers/firewire #lib/modules/KVER-ipfire/kernel/drivers/firewire/firewire-core.ko -#lib/modules/KVER-ipfire/kernel/drivers/firewire/firewire-net.ko #lib/modules/KVER-ipfire/kernel/drivers/firewire/firewire-ohci.ko #lib/modules/KVER-ipfire/kernel/drivers/firewire/firewire-sbp2.ko #lib/modules/KVER-ipfire/kernel/drivers/firmware -#lib/modules/KVER-ipfire/kernel/drivers/firmware/dmi-sysfs.ko +#lib/modules/KVER-ipfire/kernel/drivers/firmware/dcdbas.ko +#lib/modules/KVER-ipfire/kernel/drivers/firmware/dell_rbu.ko +#lib/modules/KVER-ipfire/kernel/drivers/firmware/edd.ko #lib/modules/KVER-ipfire/kernel/drivers/firmware/iscsi_ibft.ko -#lib/modules/KVER-ipfire/kernel/drivers/firmware/sigma.ko #lib/modules/KVER-ipfire/kernel/drivers/gpio -#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-adp5588.ko #lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-cs5535.ko -#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-generic.ko -#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-it8761e.ko -#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-janz-ttl.ko -#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-max7300.ko -#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-max730x.ko -#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-max732x.ko -#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-mcp23s08.ko -#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-ml-ioh.ko -#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-pca953x.ko -#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-pcf857x.ko -#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-pch.ko -#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-rdc321x.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-ich.ko #lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-sch.ko -#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-vx855.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-ts5500.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-viperboard.ko #lib/modules/KVER-ipfire/kernel/drivers/gpu #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/ast +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/ast/ast.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/cirrus +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/cirrus/cirrus.ko #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/drm.ko #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/drm_kms_helper.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/drm_usb.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/gma500 +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/gma500/gma500_gfx.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/i2c +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/i2c/ch7006.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/i2c/sil164.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/i2c/tda998x.ko #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/i810 #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/i810/i810.ko #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/i915 #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/i915/i915.ko #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/mga #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/mga/mga.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/mgag200 +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/mgag200/mgag200.ko #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/nouveau #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/nouveau/nouveau.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/qxl +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/qxl/qxl.ko #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/r128 #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/r128/r128.ko #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/radeon @@ -365,68 +325,51 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/tdfx/tdfx.ko #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/ttm #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/ttm/ttm.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/udl +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/udl/udl.ko #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/via #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/via/via.ko #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/vmwgfx #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/vmwgfx/vmwgfx.ko -#lib/modules/KVER-ipfire/kernel/drivers/gpu/stub -#lib/modules/KVER-ipfire/kernel/drivers/gpu/stub/poulsbo.ko #lib/modules/KVER-ipfire/kernel/drivers/hid -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-a4tech.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-apple.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-axff.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-belkin.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-cherry.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-chicony.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-cypress.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-dr.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-elecom.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-ezkey.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-gaff.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-aureal.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-gyration.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-holtekff.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-kensington.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-keytouch.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-kye.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-lcpower.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-lenovo-tpkbd.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-logitech-dj.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-logitech.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-magicmouse.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-microsoft.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-monterey.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-multitouch.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-ntrig.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-ortek.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-petalynx.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-picolcd.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-pl.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-primax.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-prodikeys.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-quanta.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat-arvo.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat-common.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat-isku.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat-kone.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat-koneplus.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat-konepure.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat-kovaplus.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat-lua.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat-pyra.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat-savu.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-saitek.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-samsung.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-sjoy.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-sony.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-sensor-hub.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-speedlink.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-sunplus.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-tmff.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-thingm.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-tivo.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-topseed.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-twinhan.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-uclogic.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-wacom.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-waltop.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-wiimote.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-zpff.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-zydacron.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/usbhid -#lib/modules/KVER-ipfire/kernel/drivers/hid/usbhid/usbhid.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/i2c-hid +#lib/modules/KVER-ipfire/kernel/drivers/hid/i2c-hid/i2c-hid.ko +#lib/modules/KVER-ipfire/kernel/drivers/hsi +#lib/modules/KVER-ipfire/kernel/drivers/hsi/clients +#lib/modules/KVER-ipfire/kernel/drivers/hsi/clients/hsi_char.ko +#lib/modules/KVER-ipfire/kernel/drivers/hsi/hsi.ko #lib/modules/KVER-ipfire/kernel/drivers/hv +#lib/modules/KVER-ipfire/kernel/drivers/hv/hv_balloon.ko #lib/modules/KVER-ipfire/kernel/drivers/hv/hv_utils.ko #lib/modules/KVER-ipfire/kernel/drivers/hv/hv_vmbus.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon @@ -443,10 +386,12 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/hwmon/adm9240.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/ads1015.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/ads7828.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/adt7410.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/adt7411.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/adt7462.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/adt7470.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/adt7475.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/adt7x10.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/amc6821.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/applesmc.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/asb100.ko @@ -458,7 +403,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/hwmon/ds1621.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/ds620.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/emc1403.ko -#lib/modules/KVER-ipfire/kernel/drivers/hwmon/emc2103.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/emc6w201.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/f71805f.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/f71882fg.ko @@ -468,14 +412,14 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/hwmon/g760a.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/gl518sm.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/gl520sm.ko -#lib/modules/KVER-ipfire/kernel/drivers/hwmon/gpio-fan.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/hih6130.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/hwmon-vid.ko -#lib/modules/KVER-ipfire/kernel/drivers/hwmon/hwmon.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/i5k_amb.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/ibmaem.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/ibmpex.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/ina209.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/ina2xx.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/it87.ko -#lib/modules/KVER-ipfire/kernel/drivers/hwmon/jc42.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/k10temp.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/k8temp.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/lineage-pem.ko @@ -491,6 +435,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/hwmon/lm90.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/lm92.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/lm93.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/lm95234.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/lm95241.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/lm95245.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/ltc4151.ko @@ -500,9 +445,13 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/hwmon/max16065.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/max1619.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/max1668.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/max197.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/max6639.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/max6642.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/max6650.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/max6697.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/mcp3021.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/nct6775.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/ntc_thermistor.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/pc87360.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/pc87427.ko @@ -510,7 +459,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus #lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/adm1275.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/lm25066.ko -#lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/ltc2978.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/max16064.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/max34440.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/max8688.ko @@ -518,14 +466,12 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/pmbus_core.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/ucd9000.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/ucd9200.ko -#lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/zl6100.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/sch5627.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/sch5636.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/sch56xx-common.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/sht15.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/sht21.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/sis5595.ko -#lib/modules/KVER-ipfire/kernel/drivers/hwmon/smm665.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/smsc47b397.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/smsc47m1.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/smsc47m192.ko @@ -557,20 +503,17 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-amd756-s4882.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-amd756.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-amd8111.ko +#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-cbus-gpio.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-designware-core.ko -#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-designware-pci.ko +#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-designware-platform.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-diolan-u2c.ko -#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-eg20t.ko -#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-gpio.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-i801.ko -#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-intel-mid.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-isch.ko +#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-ismt.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-nforce2-s4985.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-nforce2.ko -#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-ocores.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-parport-light.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-parport.ko -#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-pca-isa.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-pca-platform.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-piix4.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-scmi.ko @@ -578,66 +521,55 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-sis5595.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-sis630.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-sis96x.ko -#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-stub.ko -#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-taos-evm.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-tiny-usb.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-via.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-viapro.ko -#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-xiic.ko +#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-viperboard.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/scx200_acb.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/i2c-core.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/i2c-dev.ko -#lib/modules/KVER-ipfire/kernel/drivers/i2c/i2c-mux.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/i2c-smbus.ko -#lib/modules/KVER-ipfire/kernel/drivers/i2c/muxes -#lib/modules/KVER-ipfire/kernel/drivers/i2c/muxes/gpio-i2cmux.ko -#lib/modules/KVER-ipfire/kernel/drivers/i2c/muxes/pca9541.ko -#lib/modules/KVER-ipfire/kernel/drivers/i2c/muxes/pca954x.ko -#lib/modules/KVER-ipfire/kernel/drivers/ieee802154 -#lib/modules/KVER-ipfire/kernel/drivers/ieee802154/fakehard.ko +#lib/modules/KVER-ipfire/kernel/drivers/iio +#lib/modules/KVER-ipfire/kernel/drivers/iio/common +#lib/modules/KVER-ipfire/kernel/drivers/iio/common/hid-sensors +#lib/modules/KVER-ipfire/kernel/drivers/iio/common/hid-sensors/hid-sensor-iio-common.ko +#lib/modules/KVER-ipfire/kernel/drivers/iio/common/hid-sensors/hid-sensor-trigger.ko +#lib/modules/KVER-ipfire/kernel/drivers/iio/industrialio.ko +#lib/modules/KVER-ipfire/kernel/drivers/iio/kfifo_buf.ko #lib/modules/KVER-ipfire/kernel/drivers/input -#lib/modules/KVER-ipfire/kernel/drivers/input/ff-memless.ko #lib/modules/KVER-ipfire/kernel/drivers/input/input-polldev.ko #lib/modules/KVER-ipfire/kernel/drivers/input/keyboard -#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/adp5588-keys.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/adp5589-keys.ko #lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/gpio_keys.ko #lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/gpio_keys_polled.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/lkkbd.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/lm8323.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/matrix_keypad.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/max7359_keypad.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/mcs_touchkey.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/mpr121_touchkey.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/newtonkbd.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/opencores-kbd.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/qt1070.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/qt2160.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/stowaway.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/sunkbd.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/tca6416-keypad.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/xtkbd.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/lm8333.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/matrix-keymap.ko #lib/modules/KVER-ipfire/kernel/drivers/input/misc -#lib/modules/KVER-ipfire/kernel/drivers/input/misc/ad714x-i2c.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/misc/ad714x.ko #lib/modules/KVER-ipfire/kernel/drivers/input/misc/apanel.ko #lib/modules/KVER-ipfire/kernel/drivers/input/misc/ati_remote2.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/misc/bma150.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/misc/atlas_btns.ko #lib/modules/KVER-ipfire/kernel/drivers/input/misc/cm109.ko #lib/modules/KVER-ipfire/kernel/drivers/input/misc/keyspan_remote.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/misc/pcf50633-input.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/misc/pcf8574_keypad.ko #lib/modules/KVER-ipfire/kernel/drivers/input/misc/pcspkr.ko #lib/modules/KVER-ipfire/kernel/drivers/input/misc/powermate.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/misc/retu-pwrbutton.ko #lib/modules/KVER-ipfire/kernel/drivers/input/misc/rotary_encoder.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/misc/uinput.ko #lib/modules/KVER-ipfire/kernel/drivers/input/misc/yealink.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/mouse +#lib/modules/KVER-ipfire/kernel/drivers/input/mouse/appletouch.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/mouse/bcm5974.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/mouse/cyapa.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/mouse/psmouse.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/mouse/sermouse.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/mouse/synaptics_i2c.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/mouse/synaptics_usb.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/mouse/vsxxxaa.ko #lib/modules/KVER-ipfire/kernel/drivers/input/serio #lib/modules/KVER-ipfire/kernel/drivers/input/serio/altera_ps2.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/serio/ps2mult.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/serio/arc_ps2.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/serio/serio_raw.ko #lib/modules/KVER-ipfire/kernel/drivers/input/sparse-keymap.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn -#lib/modules/KVER-ipfire/kernel/drivers/isdn/act2000 -#lib/modules/KVER-ipfire/kernel/drivers/isdn/act2000/act2000.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/capi #lib/modules/KVER-ipfire/kernel/drivers/isdn/capi/capi.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/capi/capidrv.ko @@ -651,14 +583,10 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/isdn/gigaset/usb_gigaset.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware #lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/avm -#lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/avm/avm_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/avm/b1.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/avm/b1dma.ko -#lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/avm/b1isa.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/avm/b1pci.ko -#lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/avm/c4.ko -#lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/avm/t1isa.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/avm/t1pci.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/eicon #lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/eicon/diva_idi.ko @@ -678,77 +606,72 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/mISDN/speedfax.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/mISDN/w6692.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/hisax -#lib/modules/KVER-ipfire/kernel/drivers/isdn/hisax/avma1_cs.ko -#lib/modules/KVER-ipfire/kernel/drivers/isdn/hisax/elsa_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/hisax/hfc4s8s_l1.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/hisax/hfc_usb.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/hisax/hisax.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/hisax/hisax_fcpcipnp.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/hisax/hisax_isac.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/hisax/hisax_st5481.ko -#lib/modules/KVER-ipfire/kernel/drivers/isdn/hisax/sedlbauer_cs.ko -#lib/modules/KVER-ipfire/kernel/drivers/isdn/hisax/teles_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/hysdn #lib/modules/KVER-ipfire/kernel/drivers/isdn/hysdn/hysdn.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/i4l #lib/modules/KVER-ipfire/kernel/drivers/isdn/i4l/isdn.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/i4l/isdn_bsdcomp.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/i4l/isdnhdlc.ko -#lib/modules/KVER-ipfire/kernel/drivers/isdn/icn -#lib/modules/KVER-ipfire/kernel/drivers/isdn/icn/icn.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/mISDN #lib/modules/KVER-ipfire/kernel/drivers/isdn/mISDN/l1oip.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/mISDN/mISDN_core.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/mISDN/mISDN_dsp.ko -#lib/modules/KVER-ipfire/kernel/drivers/isdn/pcbit -#lib/modules/KVER-ipfire/kernel/drivers/isdn/pcbit/pcbit.ko -#lib/modules/KVER-ipfire/kernel/drivers/isdn/sc -#lib/modules/KVER-ipfire/kernel/drivers/isdn/sc/sc.ko #lib/modules/KVER-ipfire/kernel/drivers/leds #lib/modules/KVER-ipfire/kernel/drivers/leds/dell-led.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/leds-bd2802.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-blinkm.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/leds-clevo-mail.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/leds-gpio.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/leds-lm3530.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-lm3533.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-lm355x.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-lm3642.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/leds-lp3944.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/leds-lp5521.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/leds-lp5523.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-lp5562.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-lp55xx-common.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/leds-lt3593.ko -#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-net48xx.ko -#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-net5501.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-ot200.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/leds-pca9532.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/leds-pca955x.ko -#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-regulator.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-pca9633.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/leds-ss4200.ko -#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-wrap.ko -#lib/modules/KVER-ipfire/kernel/drivers/leds/ledtrig-backlight.ko -#lib/modules/KVER-ipfire/kernel/drivers/leds/ledtrig-default-on.ko -#lib/modules/KVER-ipfire/kernel/drivers/leds/ledtrig-gpio.ko -#lib/modules/KVER-ipfire/kernel/drivers/leds/ledtrig-heartbeat.ko -#lib/modules/KVER-ipfire/kernel/drivers/leds/ledtrig-netdev.ko -#lib/modules/KVER-ipfire/kernel/drivers/leds/ledtrig-timer.ko -#lib/modules/KVER-ipfire/kernel/drivers/lguest -#lib/modules/KVER-ipfire/kernel/drivers/lguest/lg.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-tca6507.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/trigger +#lib/modules/KVER-ipfire/kernel/drivers/leds/trigger/ledtrig-backlight.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/trigger/ledtrig-camera.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/trigger/ledtrig-default-on.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/trigger/ledtrig-gpio.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/trigger/ledtrig-heartbeat.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/trigger/ledtrig-netdev.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/trigger/ledtrig-oneshot.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/trigger/ledtrig-timer.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/trigger/ledtrig-transient.ko #lib/modules/KVER-ipfire/kernel/drivers/md +#lib/modules/KVER-ipfire/kernel/drivers/md/bcache +#lib/modules/KVER-ipfire/kernel/drivers/md/bcache/bcache.ko +#lib/modules/KVER-ipfire/kernel/drivers/md/dm-bio-prison.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-bufio.ko +#lib/modules/KVER-ipfire/kernel/drivers/md/dm-cache-cleaner.ko +#lib/modules/KVER-ipfire/kernel/drivers/md/dm-cache-mq.ko +#lib/modules/KVER-ipfire/kernel/drivers/md/dm-cache.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-crypt.ko -#lib/modules/KVER-ipfire/kernel/drivers/md/dm-delay.ko -#lib/modules/KVER-ipfire/kernel/drivers/md/dm-flakey.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-log-userspace.ko -#lib/modules/KVER-ipfire/kernel/drivers/md/dm-log.ko -#lib/modules/KVER-ipfire/kernel/drivers/md/dm-mirror.ko -#lib/modules/KVER-ipfire/kernel/drivers/md/dm-mod.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-multipath.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-queue-length.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-raid.ko -#lib/modules/KVER-ipfire/kernel/drivers/md/dm-region-hash.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-round-robin.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-service-time.ko -#lib/modules/KVER-ipfire/kernel/drivers/md/dm-snapshot.ko -#lib/modules/KVER-ipfire/kernel/drivers/md/dm-thin-pool.ko -#lib/modules/KVER-ipfire/kernel/drivers/md/dm-zero.ko +#lib/modules/KVER-ipfire/kernel/drivers/md/dm-verity.ko +#lib/modules/KVER-ipfire/kernel/drivers/md/faulty.ko #lib/modules/KVER-ipfire/kernel/drivers/md/linear.ko -#lib/modules/KVER-ipfire/kernel/drivers/md/md-mod.ko #lib/modules/KVER-ipfire/kernel/drivers/md/multipath.ko #lib/modules/KVER-ipfire/kernel/drivers/md/persistent-data #lib/modules/KVER-ipfire/kernel/drivers/md/persistent-data/dm-persistent-data.ko @@ -758,31 +681,272 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/md/raid456.ko #lib/modules/KVER-ipfire/kernel/drivers/media #lib/modules/KVER-ipfire/kernel/drivers/media/common -#lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners -#lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/mc44s803.ko -#lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/mt20xx.ko -#lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tda18271.ko -#lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tda827x.ko -#lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tda8290.ko -#lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tda9887.ko -#lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tea5761.ko -#lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tea5767.ko -#lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tuner-simple.ko -#lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tuner-types.ko -#lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tuner-xc2028.ko -#lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/xc4000.ko -#lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/xc5000.ko -#lib/modules/KVER-ipfire/kernel/drivers/media/dvb -#lib/modules/KVER-ipfire/kernel/drivers/media/dvb/dvb-core -#lib/modules/KVER-ipfire/kernel/drivers/media/dvb/dvb-core/dvb-core.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/common/b2c2 +#lib/modules/KVER-ipfire/kernel/drivers/media/common/b2c2/b2c2-flexcop.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/common/btcx-risc.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/common/cx2341x.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/common/cypress_firmware.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/common/saa7146 +#lib/modules/KVER-ipfire/kernel/drivers/media/common/saa7146/saa7146.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/common/saa7146/saa7146_vv.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/common/siano +#lib/modules/KVER-ipfire/kernel/drivers/media/common/siano/smsdvb.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/common/siano/smsmdtv.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/common/tveeprom.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-core +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-core/dvb-core.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/a8293.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/af9013.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/af9033.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/atbm8830.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/au8522_common.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/au8522_decoder.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/au8522_dig.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/bcm3510.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/cx22700.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/cx22702.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/cx24110.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/cx24113.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/cx24116.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/cx24123.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/cxd2820r.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/dib0070.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/dib0090.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/dib3000mb.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/dib3000mc.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/dib7000m.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/dib7000p.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/dib8000.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/dibx000_common.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/drxd.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/drxk.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/ds3000.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/dvb-pll.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/ec100.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/isl6405.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/isl6421.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/isl6423.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/it913x-fe.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/itd1000.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/ix2505v.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/l64781.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/lg2160.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/lgdt3305.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/lgdt330x.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/lgs8gxx.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/lnbp21.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/lnbp22.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/m88dc2800.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/m88ds3103.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/m88rs2000.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/mb86a16.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/mb86a20s.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/mt312.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/mt352.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/nxt200x.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/nxt6000.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/or51132.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/or51211.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/rtl2830.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/rtl2832.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/s5h1409.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/s5h1411.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/s5h1420.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/s921.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/si21xx.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/sp8870.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/sp887x.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/stb0899.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/stb6000.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/stb6100.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/stv0288.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/stv0297.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/stv0299.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/stv0367.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/stv0900.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/stv090x.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/stv6110.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/stv6110x.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/tda10021.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/tda10023.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/tda10048.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/tda1004x.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/tda10071.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/tda10086.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/tda18271c2dd.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/tda665x.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/tda8083.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/tda8261.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/tda826x.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/ts2020.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/tua6100.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/ves1820.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/ves1x93.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/zl10036.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/zl10039.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/zl10353.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/firewire +#lib/modules/KVER-ipfire/kernel/drivers/media/firewire/firedtv.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/adv7170.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/adv7175.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/adv7180.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/bt819.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/bt856.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/bt866.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/cs5345.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/cs53l32a.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/cx25840 +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/cx25840/cx25840.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/ir-kbd-i2c.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/ks0127.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/m52790.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/msp3400.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/mt9v011.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/ov7670.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/saa6588.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/saa7110.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/saa7115.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/saa7127.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/saa717x.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/saa7185.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/soc_camera +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/soc_camera/imx074.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/soc_camera/mt9m001.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/soc_camera/mt9m111.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/soc_camera/mt9t031.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/soc_camera/mt9t112.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/soc_camera/mt9v022.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/soc_camera/ov2640.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/soc_camera/ov5642.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/soc_camera/ov6650.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/soc_camera/ov772x.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/soc_camera/ov9640.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/soc_camera/ov9740.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/soc_camera/rj54n1cb0c.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/soc_camera/tw9910.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/tda7432.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/tda9840.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/tea6415c.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/tea6420.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/tvaudio.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/tvp5150.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/upd64031a.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/upd64083.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/vp27smpx.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/vpx3220.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/wm8739.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/wm8775.ko #lib/modules/KVER-ipfire/kernel/drivers/media/media.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/b2c2 +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/b2c2/b2c2-flexcop-pci.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/bt8xx +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/bt8xx/bt878.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/bt8xx/bttv.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/bt8xx/dst.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/bt8xx/dst_ca.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/bt8xx/dvb-bt8xx.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/cx18 +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/cx18/cx18-alsa.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/cx18/cx18.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/cx23885 +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/cx23885/altera-ci.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/cx23885/cx23885.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/cx25821 +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/cx25821/cx25821-alsa.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/cx25821/cx25821.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/cx88 +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/cx88/cx88-alsa.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/cx88/cx88-blackbird.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/cx88/cx88-dvb.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/cx88/cx88-vp3054-i2c.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/cx88/cx8800.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/cx88/cx8802.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/cx88/cx88xx.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/ddbridge +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/ddbridge/ddbridge.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/dm1105 +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/dm1105/dm1105.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/ivtv +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/ivtv/ivtv-alsa.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/ivtv/ivtv.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/ivtv/ivtvfb.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/mantis +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/mantis/hopper.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/mantis/mantis.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/mantis/mantis_core.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/meye +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/meye/meye.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/ngene +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/ngene/ngene.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/pluto2 +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/pluto2/pluto2.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/pt1 +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/pt1/earth-pt1.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/saa7134 +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/saa7134/saa6752hs.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/saa7134/saa7134-alsa.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/saa7134/saa7134-dvb.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/saa7134/saa7134-empress.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/saa7134/saa7134.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/saa7146 +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/saa7146/hexium_gemini.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/saa7146/hexium_orion.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/saa7146/mxb.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/saa7164 +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/saa7164/saa7164.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/ttpci +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/ttpci/budget-av.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/ttpci/budget-ci.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/ttpci/budget-core.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/ttpci/budget-patch.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/ttpci/budget.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/ttpci/dvb-ttpci.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/ttpci/ttpci-eeprom.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/zoran +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/zoran/videocodec.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/zoran/zr36016.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/zoran/zr36050.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/zoran/zr36060.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/zoran/zr36067.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/platform +#lib/modules/KVER-ipfire/kernel/drivers/media/platform/m2m-deinterlace.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/platform/marvell-ccic +#lib/modules/KVER-ipfire/kernel/drivers/media/platform/marvell-ccic/cafe_ccic.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/platform/sh_veu.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/platform/soc_camera +#lib/modules/KVER-ipfire/kernel/drivers/media/platform/soc_camera/sh_mobile_ceu_camera.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/platform/soc_camera/sh_mobile_csi2.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/platform/soc_camera/soc_camera.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/platform/soc_camera/soc_camera_platform.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/platform/soc_camera/soc_mediabus.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/platform/timblogiw.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/ati_remote.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/ene_ir.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/fintek-cir.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/gpio-ir-recv.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/iguanair.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/imon.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/ir-jvc-decoder.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/ir-lirc-codec.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/ir-mce_kbd-decoder.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/ir-nec-decoder.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/ir-rc5-decoder.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/ir-rc5-sz-decoder.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/ir-rc6-decoder.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/ir-sanyo-decoder.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/ir-sony-decoder.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/ite-cir.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-adstech-dvb-t-pci.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-alink-dtu-m.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-anysee.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-apac-viewcomp.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-asus-pc39.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-asus-ps3-100.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-ati-tv-wonder-hd-600.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-ati-x10.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-avermedia-a16d.ko @@ -806,6 +970,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-dm1105-nec.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvb-t.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvbt-pro.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-dvbsky.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-em-terratec.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-encore-enltv-fm53.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-encore-enltv.ko @@ -822,13 +987,18 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-imon-mce.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-imon-pad.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-iodata-bctv7e.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-it913x-v1.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-it913x-v2.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-kaiomy.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-kworld-315u.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-kworld-pc150u.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-kworld-plus-tv-analog.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-leadtek-y04g0051.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-lirc.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-lme2510.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-manli.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-medion-x10-digitainer.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-medion-x10-or2x.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-medion-x10.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-msi-digivox-ii.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-msi-digivox-iii.ko @@ -852,6 +1022,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-pv951.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-rc6-mce.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-real-audio-220-32-keys.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-reddo.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-snapstream-firefly.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-streamzap.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-tbs-nec.ko @@ -861,6 +1032,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-terratec-slim.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-tevii-nec.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-tivo.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-total-media-in-hand-02.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-total-media-in-hand.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-trekstor.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-tt-1500.ko @@ -871,12 +1043,203 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-winfast-usbii-deluxe.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-winfast.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/lirc_dev.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/mceusb.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/nuvoton-cir.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/rc-core.ko -#lib/modules/KVER-ipfire/kernel/drivers/media/video -#lib/modules/KVER-ipfire/kernel/drivers/media/video/ir-kbd-i2c.ko -#lib/modules/KVER-ipfire/kernel/drivers/media/video/v4l2-common.ko -#lib/modules/KVER-ipfire/kernel/drivers/media/video/v4l2-int-device.ko -#lib/modules/KVER-ipfire/kernel/drivers/media/video/videodev.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/rc-loopback.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/redrat3.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/streamzap.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/ttusbir.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/winbond-cir.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/e4000.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/fc0011.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/fc0012.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/fc0013.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/fc2580.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/max2165.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/mc44s803.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/mt2060.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/mt2063.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/mt20xx.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/mt2131.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/mt2266.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/mxl5005s.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/mxl5007t.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/qt1010.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/r820t.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/tda18212.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/tda18218.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/tda18271.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/tda827x.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/tda8290.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/tda9887.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/tua9001.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/tuner-simple.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/tuner-types.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/tuner-xc2028.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/tuner_it913x.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/xc4000.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/xc5000.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/au0828 +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/au0828/au0828.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/b2c2 +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/b2c2/b2c2-flexcop-usb.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/cpia2 +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/cpia2/cpia2.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/cx231xx +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/cx231xx/cx231xx-alsa.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/cx231xx/cx231xx-dvb.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/cx231xx/cx231xx.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb-v2 +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-af9015.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-af9035.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-anysee.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-au6610.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-az6007.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-ce6230.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-dvbsky.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-ec168.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-gl861.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-it913x.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-lmedm04.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-mxl111sf.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-rtl28xxu.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb-v2/dvb_usb_v2.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb-v2/mxl111sf-demod.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb-v2/mxl111sf-tuner.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-a800.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-af9005-remote.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-af9005.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-az6027.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-cinergyT2.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-cxusb.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-dib0700.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-dibusb-common.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-dibusb-mb.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-digitv.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-dtt200u.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-dtv5100.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-dw2102.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-friio.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-gp8psk.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-m920x.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-nova-t-usb2.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-opera.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-pctv452e.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-ttusb2.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-umt-010.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-vp702x.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-vp7045.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/em28xx +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/em28xx/em28xx-alsa.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/em28xx/em28xx-dvb.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/em28xx/em28xx-rc.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/em28xx/em28xx.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gl860 +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gl860/gspca_gl860.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_benq.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_conex.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_cpia1.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_etoms.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_finepix.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_jeilinj.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_jl2005bcd.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_kinect.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_konica.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_main.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_mars.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_mr97310a.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_nw80x.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_ov519.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_ov534.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_ov534_9.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_pac207.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_pac7302.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_pac7311.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_se401.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_sn9c2028.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_sn9c20x.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_sonixb.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_sonixj.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_spca1528.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_spca500.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_spca501.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_spca505.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_spca506.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_spca508.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_spca561.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_sq905.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_sq905c.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_sq930x.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_stk014.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_stv0680.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_sunplus.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_t613.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_topro.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_tv8532.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_vc032x.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_vicam.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_xirlink_cit.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_zc3xx.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/m5602 +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/m5602/gspca_m5602.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/stv06xx +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/stv06xx/gspca_stv06xx.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/hdpvr +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/hdpvr/hdpvr.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/pvrusb2 +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/pvrusb2/pvrusb2.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/pwc +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/pwc/pwc.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/s2255 +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/s2255/s2255drv.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/siano +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/siano/smsusb.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/sn9c102 +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/sn9c102/sn9c102.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/stk1160 +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/stk1160/stk1160.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/stkwebcam +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/stkwebcam/stkwebcam.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/tlg2300 +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/tlg2300/poseidon.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/tm6000 +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/tm6000/tm6000-alsa.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/tm6000/tm6000-dvb.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/tm6000/tm6000.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/ttusb-budget +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/ttusb-dec +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/ttusb-dec/ttusb_dec.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/ttusb-dec/ttusbdecfe.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/usbvision +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/usbvision/usbvision.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/uvc +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/uvc/uvcvideo.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/zr364xx +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/zr364xx/zr364xx.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/v4l2-core +#lib/modules/KVER-ipfire/kernel/drivers/media/v4l2-core/tuner.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/v4l2-core/v4l2-common.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/v4l2-core/v4l2-int-device.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/v4l2-core/v4l2-mem2mem.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/v4l2-core/videobuf-core.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/v4l2-core/videobuf-dma-contig.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/v4l2-core/videobuf-dma-sg.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/v4l2-core/videobuf-dvb.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/v4l2-core/videobuf-vmalloc.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/v4l2-core/videobuf2-core.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/v4l2-core/videobuf2-dma-contig.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/v4l2-core/videobuf2-memops.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/v4l2-core/videobuf2-vmalloc.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/v4l2-core/videodev.ko #lib/modules/KVER-ipfire/kernel/drivers/memstick #lib/modules/KVER-ipfire/kernel/drivers/memstick/core #lib/modules/KVER-ipfire/kernel/drivers/memstick/core/memstick.ko @@ -884,6 +1247,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/memstick/host #lib/modules/KVER-ipfire/kernel/drivers/memstick/host/jmb38x_ms.ko #lib/modules/KVER-ipfire/kernel/drivers/memstick/host/r592.ko +#lib/modules/KVER-ipfire/kernel/drivers/memstick/host/rtsx_pci_ms.ko #lib/modules/KVER-ipfire/kernel/drivers/memstick/host/tifm_ms.ko #lib/modules/KVER-ipfire/kernel/drivers/message #lib/modules/KVER-ipfire/kernel/drivers/message/fusion @@ -893,38 +1257,35 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/message/fusion/mptsas.ko #lib/modules/KVER-ipfire/kernel/drivers/message/fusion/mptscsih.ko #lib/modules/KVER-ipfire/kernel/drivers/message/fusion/mptspi.ko +#lib/modules/KVER-ipfire/kernel/drivers/message/i2o +#lib/modules/KVER-ipfire/kernel/drivers/message/i2o/i2o_block.ko +#lib/modules/KVER-ipfire/kernel/drivers/message/i2o/i2o_bus.ko +#lib/modules/KVER-ipfire/kernel/drivers/message/i2o/i2o_config.ko +#lib/modules/KVER-ipfire/kernel/drivers/message/i2o/i2o_core.ko +#lib/modules/KVER-ipfire/kernel/drivers/message/i2o/i2o_proc.ko +#lib/modules/KVER-ipfire/kernel/drivers/message/i2o/i2o_scsi.ko #lib/modules/KVER-ipfire/kernel/drivers/mfd #lib/modules/KVER-ipfire/kernel/drivers/mfd/cs5535-mfd.ko -#lib/modules/KVER-ipfire/kernel/drivers/mfd/htc-pasic3.ko -#lib/modules/KVER-ipfire/kernel/drivers/mfd/janz-cmodio.ko +#lib/modules/KVER-ipfire/kernel/drivers/mfd/lm3533-core.ko +#lib/modules/KVER-ipfire/kernel/drivers/mfd/lm3533-ctrlbank.ko +#lib/modules/KVER-ipfire/kernel/drivers/mfd/lpc_ich.ko #lib/modules/KVER-ipfire/kernel/drivers/mfd/lpc_sch.ko #lib/modules/KVER-ipfire/kernel/drivers/mfd/mfd-core.ko -#lib/modules/KVER-ipfire/kernel/drivers/mfd/pcf50633-adc.ko -#lib/modules/KVER-ipfire/kernel/drivers/mfd/pcf50633-gpio.ko -#lib/modules/KVER-ipfire/kernel/drivers/mfd/pcf50633.ko -#lib/modules/KVER-ipfire/kernel/drivers/mfd/rdc321x-southbridge.ko +#lib/modules/KVER-ipfire/kernel/drivers/mfd/retu-mfd.ko +#lib/modules/KVER-ipfire/kernel/drivers/mfd/rtsx_pci.ko #lib/modules/KVER-ipfire/kernel/drivers/mfd/sm501.ko -#lib/modules/KVER-ipfire/kernel/drivers/mfd/timberdale.ko -#lib/modules/KVER-ipfire/kernel/drivers/mfd/tps6105x.ko -#lib/modules/KVER-ipfire/kernel/drivers/mfd/tps65010.ko -#lib/modules/KVER-ipfire/kernel/drivers/mfd/tps6507x.ko -#lib/modules/KVER-ipfire/kernel/drivers/mfd/ucb1400_core.ko +#lib/modules/KVER-ipfire/kernel/drivers/mfd/viperboard.ko #lib/modules/KVER-ipfire/kernel/drivers/mfd/vx855.ko #lib/modules/KVER-ipfire/kernel/drivers/mfd/wl1273-core.ko -#lib/modules/KVER-ipfire/kernel/drivers/mfd/wm8400-core.ko #lib/modules/KVER-ipfire/kernel/drivers/misc -#lib/modules/KVER-ipfire/kernel/drivers/misc/apds9802als.ko -#lib/modules/KVER-ipfire/kernel/drivers/misc/apds990x.ko -#lib/modules/KVER-ipfire/kernel/drivers/misc/bh1770glc.ko -#lib/modules/KVER-ipfire/kernel/drivers/misc/bh1780gli.ko -#lib/modules/KVER-ipfire/kernel/drivers/misc/bmp085.ko -#lib/modules/KVER-ipfire/kernel/drivers/misc/c2port -#lib/modules/KVER-ipfire/kernel/drivers/misc/c2port/c2port-duramar2150.ko -#lib/modules/KVER-ipfire/kernel/drivers/misc/c2port/core.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/altera-stapl +#lib/modules/KVER-ipfire/kernel/drivers/misc/altera-stapl/altera-stapl.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/bmp085-i2c.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/cb710 #lib/modules/KVER-ipfire/kernel/drivers/misc/cb710/cb710.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/cs5535-mfgpt.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/ds1682.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/dummy-irq.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/eeprom #lib/modules/KVER-ipfire/kernel/drivers/misc/eeprom/at24.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/eeprom/eeprom.ko @@ -932,76 +1293,48 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/misc/eeprom/max6875.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/enclosure.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/fsa9480.ko -#lib/modules/KVER-ipfire/kernel/drivers/misc/hmc6352.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/hpilo.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/ibmasm +#lib/modules/KVER-ipfire/kernel/drivers/misc/ibmasm/ibmasm.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/ics932s401.ko -#lib/modules/KVER-ipfire/kernel/drivers/misc/isl29003.ko -#lib/modules/KVER-ipfire/kernel/drivers/misc/isl29020.ko -#lib/modules/KVER-ipfire/kernel/drivers/misc/iwmc3200top -#lib/modules/KVER-ipfire/kernel/drivers/misc/iwmc3200top/iwmc3200top.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/lis3lv02d #lib/modules/KVER-ipfire/kernel/drivers/misc/lis3lv02d/lis3lv02d.ko -#lib/modules/KVER-ipfire/kernel/drivers/misc/lis3lv02d/lis3lv02d_i2c.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/mei +#lib/modules/KVER-ipfire/kernel/drivers/misc/mei/mei-me.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/mei/mei.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/pch_phub.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/ti-st #lib/modules/KVER-ipfire/kernel/drivers/misc/ti-st/st_drv.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/tifm_7xx1.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/tifm_core.ko -#lib/modules/KVER-ipfire/kernel/drivers/misc/tsl2550.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/vmw_balloon.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/vmw_vmci +#lib/modules/KVER-ipfire/kernel/drivers/misc/vmw_vmci/vmw_vmci.ko #lib/modules/KVER-ipfire/kernel/drivers/mmc #lib/modules/KVER-ipfire/kernel/drivers/mmc/card #lib/modules/KVER-ipfire/kernel/drivers/mmc/card/mmc_block.ko -#lib/modules/KVER-ipfire/kernel/drivers/mmc/card/mmc_test.ko -#lib/modules/KVER-ipfire/kernel/drivers/mmc/card/sdio_uart.ko #lib/modules/KVER-ipfire/kernel/drivers/mmc/core #lib/modules/KVER-ipfire/kernel/drivers/mmc/core/mmc_core.ko #lib/modules/KVER-ipfire/kernel/drivers/mmc/host #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/cb710-mmc.ko +#lib/modules/KVER-ipfire/kernel/drivers/mmc/host/rtsx_pci_sdmmc.ko +#lib/modules/KVER-ipfire/kernel/drivers/mmc/host/sdhci-acpi.ko #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/sdhci-pci.ko #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/sdhci-pltfm.ko +#lib/modules/KVER-ipfire/kernel/drivers/mmc/host/sdhci-pxav2.ko +#lib/modules/KVER-ipfire/kernel/drivers/mmc/host/sdhci-pxav3.ko #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/sdhci.ko -#lib/modules/KVER-ipfire/kernel/drivers/mmc/host/sdricoh_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/tifm_sd.ko #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/ushc.ko #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/via-sdmmc.ko #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/vub300.ko #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/wbsd.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd -#lib/modules/KVER-ipfire/kernel/drivers/mtd/ar7part.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd/chips -#lib/modules/KVER-ipfire/kernel/drivers/mtd/chips/chipreg.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd/lpddr -#lib/modules/KVER-ipfire/kernel/drivers/mtd/lpddr/lpddr_cmds.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd/lpddr/qinfo_probe.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd/maps -#lib/modules/KVER-ipfire/kernel/drivers/mtd/maps/physmap.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd/mtd.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd/mtd_blkdevs.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd/mtdblock.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd/mtdchar.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd/nand -#lib/modules/KVER-ipfire/kernel/drivers/mtd/nand/nand_ecc.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd/sm_ftl.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd/tests -#lib/modules/KVER-ipfire/kernel/drivers/mtd/tests/mtd_nandecctest.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd/tests/mtd_oobtest.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd/tests/mtd_pagetest.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd/tests/mtd_readtest.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd/tests/mtd_speedtest.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd/tests/mtd_stresstest.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd/tests/mtd_subpagetest.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd/tests/mtd_torturetest.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd/ubi -#lib/modules/KVER-ipfire/kernel/drivers/mtd/ubi/ubi.ko #lib/modules/KVER-ipfire/kernel/drivers/net #lib/modules/KVER-ipfire/kernel/drivers/net/bonding #lib/modules/KVER-ipfire/kernel/drivers/net/bonding/bonding.ko #lib/modules/KVER-ipfire/kernel/drivers/net/dummy.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/eql.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/3com -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/3com/3c501.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/3com/3c509.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/3com/3c515.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/3com/3c574_cs.ko @@ -1009,24 +1342,13 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/3com/3c59x.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/3com/typhoon.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390 -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/3c503.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/8390.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/8390p.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/ac3200.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/axnet_cs.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/e2100.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/es3210.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/hp-plus.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/hp.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/lne390.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/ne.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/ne2.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/ne2k-pci.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/ne3210.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/pcnet_cs.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/smc-mca.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/smc-ultra.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/smc-ultra32.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/wd.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/adaptec #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/adaptec/starfire.ko @@ -1034,12 +1356,13 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/alteon/acenic.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/amd #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/amd/amd8111e.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/amd/depca.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/amd/lance.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/amd/ni65.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/amd/nmclan_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/amd/pcnet32.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/atheros +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/atheros/alx +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/atheros/alx/alx.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/atheros/atl1c #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/atheros/atl1c/atl1c.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/atheros/atl1e @@ -1057,6 +1380,11 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/brocade #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/brocade/bna #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/brocade/bna/bna.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/cadence +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/cadence/at91_ether.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/cadence/macb.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/calxeda +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/calxeda/xgmac.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/chelsio #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/chelsio/cxgb #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/chelsio/cxgb/cxgb.ko @@ -1072,7 +1400,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/cisco/enic #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/cisco/enic/enic.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec/ewrk3.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec/tulip #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec/tulip/de2104x.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec/tulip/de4x5.ko @@ -1082,8 +1409,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec/tulip/winbond-840.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec/tulip/xircom_cb.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dlink -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dlink/de600.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dlink/de620.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dlink/dl2k.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dlink/sundance.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dnet.ko @@ -1093,22 +1418,9 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/ethoc.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/fealnx.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/fujitsu -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/fujitsu/at1700.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/fujitsu/eth16i.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/fujitsu/fmvj18x_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/hp #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/hp/hp100.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/3c505.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/3c507.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/3c523.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/3c527.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/82596.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/eepro.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/eexpress.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/lp486e.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/ni52.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/znet.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/icplus #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/icplus/ipg.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel @@ -1129,6 +1441,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/ixgbevf/ixgbevf.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/jme.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/marvell +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/marvell/mvmdio.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/marvell/skge.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/marvell/sky2.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/mellanox @@ -1143,7 +1456,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/myricom/myri10ge #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/myricom/myri10ge/myri10ge.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/natsemi -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/natsemi/ibmlana.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/natsemi/natsemi.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/natsemi/ns83820.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/neterion @@ -1155,9 +1467,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/oki-semi #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/oki-semi/pch_gbe #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/packetengines -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/packetengines/hamachi.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/packetengines/yellowfin.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/qlogic #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/qlogic/netxen #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/qlogic/netxen/netxen_nic.ko @@ -1173,8 +1482,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/realtek/8139too.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/realtek/atp.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/realtek/r8169.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/seeq -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/seeq/seeq8005.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/sfc #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/sfc/sfc.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/silan @@ -1202,41 +1509,32 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/via #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/via/via-rhine.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/via/via-velocity.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/wiznet +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/wiznet/w5100.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/wiznet/w5300.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/xircom #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/xircom/xirc2ps_cs.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/hyperv +#lib/modules/KVER-ipfire/kernel/drivers/net/hyperv/hv_netvsc.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ifb.ko #lib/modules/KVER-ipfire/kernel/drivers/net/imq.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/irda -#lib/modules/KVER-ipfire/kernel/drivers/net/irda/ali-ircc.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/irda/donauboe.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/irda/irda-usb.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/irda/irtty-sir.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/irda/kingsun-sir.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/irda/ks959-sir.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/irda/ksdazzle-sir.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/irda/mcs7780.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/irda/nsc-ircc.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/irda/sir-dev.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/irda/smsc-ircc2.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/irda/stir4200.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/irda/via-ircc.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/irda/vlsi_ir.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/irda/w83977af_ir.ko #lib/modules/KVER-ipfire/kernel/drivers/net/macvlan.ko #lib/modules/KVER-ipfire/kernel/drivers/net/macvtap.ko #lib/modules/KVER-ipfire/kernel/drivers/net/mdio.ko #lib/modules/KVER-ipfire/kernel/drivers/net/mii.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/netconsole.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy +#lib/modules/KVER-ipfire/kernel/drivers/net/phy/amd.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/phy/at803x.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/phy/bcm87xx.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/broadcom.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/cicada.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/davicom.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/phy/dp83640.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/et1011c.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/icplus.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/lxt.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/marvell.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/mdio-bitbang.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/phy/mdio-gpio.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/micrel.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/national.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/qsemi.ko @@ -1254,17 +1552,17 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/net/ppp/pppoe.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ppp/pppox.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ppp/pptp.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/sb1000.ko #lib/modules/KVER-ipfire/kernel/drivers/net/slip #lib/modules/KVER-ipfire/kernel/drivers/net/slip/slhc.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/slip/slip.ko #lib/modules/KVER-ipfire/kernel/drivers/net/sungem_phy.ko #lib/modules/KVER-ipfire/kernel/drivers/net/tun.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb #lib/modules/KVER-ipfire/kernel/drivers/net/usb/asix.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/usb/ax88179_178a.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/catc.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/cdc_eem.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/cdc_ether.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/usb/cdc_mbim.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/cdc_ncm.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/cdc_subset.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/cx82310_eth.ko @@ -1272,6 +1570,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/net/usb/gl620a.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/hso.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/int51x1.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/usb/ipheth.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/kalmia.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/kaweth.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/lg-vl600.ko @@ -1279,6 +1578,8 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/net/usb/net1080.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/pegasus.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/plusb.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/usb/qmi_wwan.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/usb/r8152.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/rndis_host.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/rtl8150.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/sierra_net.ko @@ -1290,45 +1591,135 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/net/virtio_net.ko #lib/modules/KVER-ipfire/kernel/drivers/net/vmxnet3 #lib/modules/KVER-ipfire/kernel/drivers/net/vmxnet3/vmxnet3.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/c101.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/cosa.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/dlci.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/dscc4.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/farsync.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/hdlc.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/hdlc_cisco.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/hdlc_fr.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/hdlc_ppp.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/hdlc_raw.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/hdlc_raw_eth.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/hostess_sv11.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/lmc -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/lmc/lmc.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/n2.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/pc300too.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/pci200syn.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/sbni.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/sdla.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/sealevel.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/wanxl.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/z85230.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/vxlan.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/adm8211.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/airo.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/airo_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/at76c50x-usb.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/ar5523 +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/ar5523/ar5523.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/ath.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/ath5k +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/ath5k/ath5k.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/ath9k +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/ath9k/ath9k.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/ath9k/ath9k_common.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/ath9k/ath9k_htc.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/ath9k/ath9k_hw.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/carl9170 +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/carl9170/carl9170.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/wil6210 +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/wil6210/wil6210.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/atmel.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/atmel_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/atmel_pci.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/b43 +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/b43/b43.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/b43legacy +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/b43legacy/b43legacy.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/brcm80211 +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/brcm80211/brcmfmac +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/brcm80211/brcmfmac/brcmfmac.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/brcm80211/brcmutil +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/brcm80211/brcmutil/brcmutil.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/hostap #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/hostap/hostap.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/hostap/hostap_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/hostap/hostap_pci.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/hostap/hostap_plx.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ray_cs.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ipw2x00 +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ipw2x00/ipw2100.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ipw2x00/ipw2200.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ipw2x00/libipw.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/iwlegacy +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/iwlegacy/iwl3945.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/iwlegacy/iwl4965.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/iwlegacy/iwlegacy.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/iwlwifi +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/iwlwifi/dvm +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/iwlwifi/dvm/iwldvm.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/iwlwifi/iwlwifi.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/iwlwifi/mvm +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/iwlwifi/mvm/iwlmvm.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas/libertas.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas/libertas_cs.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas/libertas_sdio.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas/usb8xxx.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas_tf +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas_tf/libertas_tf.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas_tf/libertas_tf_usb.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/mac80211_hwsim.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/mwifiex +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/mwifiex/mwifiex.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/mwifiex/mwifiex_pcie.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/mwifiex/mwifiex_sdio.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/mwifiex/mwifiex_usb.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/mwl8k.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/orinoco +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/orinoco/orinoco.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/orinoco/orinoco_cs.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/orinoco/orinoco_nortel.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/orinoco/orinoco_plx.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/orinoco/orinoco_tmd.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/orinoco/orinoco_usb.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/orinoco/spectrum_cs.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/p54 +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/p54/p54common.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/p54/p54pci.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/p54/p54usb.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rndis_wlan.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00 +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt2400pci.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt2500pci.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt2500usb.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt2800lib.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt2800pci.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt2800usb.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt2x00lib.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt2x00mmio.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt2x00pci.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt2x00usb.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt61pci.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt73usb.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtl818x +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtl818x/rtl8180 +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtl818x/rtl8180/rtl8180.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtl818x/rtl8187 +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtl818x/rtl8187/rtl8187.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtlwifi +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtlwifi/rtl8188ee +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtlwifi/rtl8188ee/rtl8188ee.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtlwifi/rtl8192c +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtlwifi/rtl8192ce +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtlwifi/rtl8192ce/rtl8192ce.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtlwifi/rtl8192cu +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtlwifi/rtl8192cu/rtl8192cu.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtlwifi/rtl8192de +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtlwifi/rtl8192de/rtl8192de.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtlwifi/rtl8192se +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtlwifi/rtl8192se/rtl8192se.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtlwifi/rtl8723ae +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtlwifi/rtl8723ae/rtl8723ae.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtlwifi/rtlwifi.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ti +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ti/wl1251 +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ti/wl1251/wl1251.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ti/wl1251/wl1251_sdio.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ti/wl12xx +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ti/wl12xx/wl12xx.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ti/wl18xx +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ti/wl18xx/wl18xx.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ti/wlcore +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ti/wlcore/wlcore.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ti/wlcore/wlcore_sdio.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/wl3501_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/zd1201.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/zd1211rw +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/zd1211rw/zd1211rw.ko #lib/modules/KVER-ipfire/kernel/drivers/parport #lib/modules/KVER-ipfire/kernel/drivers/parport/parport.ko #lib/modules/KVER-ipfire/kernel/drivers/parport/parport_ax88796.ko @@ -1336,7 +1727,11 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/parport/parport_pc.ko #lib/modules/KVER-ipfire/kernel/drivers/parport/parport_serial.ko #lib/modules/KVER-ipfire/kernel/drivers/pci -#lib/modules/KVER-ipfire/kernel/drivers/pci/pci-stub.ko +#lib/modules/KVER-ipfire/kernel/drivers/pci/hotplug +#lib/modules/KVER-ipfire/kernel/drivers/pci/hotplug/acpiphp_ibm.ko +#lib/modules/KVER-ipfire/kernel/drivers/pci/pcie +#lib/modules/KVER-ipfire/kernel/drivers/pci/pcie/aer +#lib/modules/KVER-ipfire/kernel/drivers/pci/pcie/aer/aer_inject.ko #lib/modules/KVER-ipfire/kernel/drivers/pcmcia #lib/modules/KVER-ipfire/kernel/drivers/pcmcia/i82092.ko #lib/modules/KVER-ipfire/kernel/drivers/pcmcia/i82365.ko @@ -1350,25 +1745,30 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/platform/x86 #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/acer-wmi.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/acerhdf.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/amilo-rfkill.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/asus-laptop.ko -#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/asus_acpi.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/asus-nb-wmi.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/asus-wmi.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/chromeos_laptop.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/classmate-laptop.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/compal-laptop.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/dell-laptop.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/dell-wmi-aio.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/dell-wmi.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/eeepc-laptop.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/eeepc-wmi.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/fujitsu-laptop.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/hdaps.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/hp-wmi.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/hp_accel.ko -#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/ibm_rtl.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/ideapad-laptop.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/intel_ips.ko -#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/intel_menlow.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/intel_oaktrail.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/msi-laptop.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/msi-wmi.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/mxm-wmi.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/panasonic-laptop.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/pvpanic.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/samsung-laptop.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/samsung-q10.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/sony-laptop.ko @@ -1378,14 +1778,13 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/toshiba_acpi.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/toshiba_bluetooth.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/wmi.ko -#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/xo15-ebook.ko +#lib/modules/KVER-ipfire/kernel/drivers/power +#lib/modules/KVER-ipfire/kernel/drivers/power/generic-adc-battery.ko #lib/modules/KVER-ipfire/kernel/drivers/pps #lib/modules/KVER-ipfire/kernel/drivers/pps/pps_core.ko #lib/modules/KVER-ipfire/kernel/drivers/ptp #lib/modules/KVER-ipfire/kernel/drivers/ptp/ptp.ko -#lib/modules/KVER-ipfire/kernel/drivers/regulator -#lib/modules/KVER-ipfire/kernel/drivers/regulator/fixed.ko -#lib/modules/KVER-ipfire/kernel/drivers/regulator/gpio-regulator.ko +#lib/modules/KVER-ipfire/kernel/drivers/ptp/ptp_pch.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-bq32k.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-bq4802.ko @@ -1396,18 +1795,19 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-ds1553.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-ds1672.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-ds1742.ko +#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-ds2404.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-ds3232.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-em3027.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-fm3130.ko +#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-hid-sensor-time.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-isl12022.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-isl1208.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-m41t80.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-m48t35.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-m48t59.ko -#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-m48t86.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-max6900.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-msm6242.ko -#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-pcf50633.ko +#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-pcf8523.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-pcf8563.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-pcf8583.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-rp5c01.ko @@ -1415,7 +1815,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-rv3029c2.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-rx8025.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-rx8581.ko -#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-s35390a.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-stk17ta8.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-v3020.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-x1205.ko @@ -1426,8 +1825,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/scsi/53c700.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/BusLogic.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/NCR53c406a.ko -#lib/modules/KVER-ipfire/kernel/drivers/scsi/NCR_D700.ko -#lib/modules/KVER-ipfire/kernel/drivers/scsi/NCR_Q720_mod.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/a100u2w.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/aacraid #lib/modules/KVER-ipfire/kernel/drivers/scsi/aacraid/aacraid.ko @@ -1452,6 +1849,8 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/scsi/bnx2i #lib/modules/KVER-ipfire/kernel/drivers/scsi/bnx2i/bnx2i.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/ch.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/csiostor +#lib/modules/KVER-ipfire/kernel/drivers/scsi/csiostor/csiostor.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/cxgbi #lib/modules/KVER-ipfire/kernel/drivers/scsi/cxgbi/cxgb3i #lib/modules/KVER-ipfire/kernel/drivers/scsi/cxgbi/cxgb3i/cxgb3i.ko @@ -1460,7 +1859,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/scsi/cxgbi/libcxgbi.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/dc395x.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/device_handler -#lib/modules/KVER-ipfire/kernel/drivers/scsi/device_handler/scsi_dh.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/device_handler/scsi_dh_alua.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/device_handler/scsi_dh_emc.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/device_handler/scsi_dh_hp_sw.ko @@ -1472,7 +1870,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/scsi/fcoe #lib/modules/KVER-ipfire/kernel/drivers/scsi/fcoe/fcoe.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/fcoe/libfcoe.ko -#lib/modules/KVER-ipfire/kernel/drivers/scsi/fd_mcs.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/fdomain.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/fnic #lib/modules/KVER-ipfire/kernel/drivers/scsi/fnic/fnic.ko @@ -1481,7 +1878,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/scsi/gdth.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/hpsa.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/hptiop.ko -#lib/modules/KVER-ipfire/kernel/drivers/scsi/ibmmca.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/hv_storvsc.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/imm.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/in2000.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/initio.ko @@ -1506,6 +1903,8 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/scsi/megaraid/megaraid_sas.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/mpt2sas #lib/modules/KVER-ipfire/kernel/drivers/scsi/mpt2sas/mpt2sas.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/mpt3sas +#lib/modules/KVER-ipfire/kernel/drivers/scsi/mpt3sas/mpt3sas.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/mvsas #lib/modules/KVER-ipfire/kernel/drivers/scsi/mvsas/mvsas.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/mvumi.ko @@ -1513,6 +1912,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/scsi/osd #lib/modules/KVER-ipfire/kernel/drivers/scsi/osd/libosd.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/osd/osd.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/osst.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/pas16.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/pcmcia #lib/modules/KVER-ipfire/kernel/drivers/scsi/pcmcia/aha152x_cs.ko @@ -1521,7 +1921,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/scsi/pcmcia/qlogic_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/pcmcia/sym53c500_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/pm8001 -#lib/modules/KVER-ipfire/kernel/drivers/scsi/pm8001/pm8001.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/pm8001/pm80xx.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/pmcraid.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/ppa.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/qla1280.ko @@ -1532,18 +1932,15 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/scsi/qlogicfas.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/qlogicfas408.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/raid_class.ko -#lib/modules/KVER-ipfire/kernel/drivers/scsi/scsi_mod.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/scsi_tgt.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/scsi_transport_fc.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/scsi_transport_iscsi.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/scsi_transport_sas.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/scsi_transport_spi.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/scsi_transport_srp.ko -#lib/modules/KVER-ipfire/kernel/drivers/scsi/scsi_wait_scan.ko -#lib/modules/KVER-ipfire/kernel/drivers/scsi/sd_mod.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/ses.ko -#lib/modules/KVER-ipfire/kernel/drivers/scsi/sg.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/sim710.ko -#lib/modules/KVER-ipfire/kernel/drivers/scsi/sr_mod.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/st.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/stex.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/sym53c416.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/sym53c8xx_2 @@ -1551,55 +1948,53 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/scsi/t128.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/tmscsim.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/u14-34f.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/ufs +#lib/modules/KVER-ipfire/kernel/drivers/scsi/ufs/ufshcd-pci.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/ufs/ufshcd-pltfrm.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/ufs/ufshcd.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/ultrastor.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/virtio_scsi.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/vmw_pvscsi.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/wd7000.ko #lib/modules/KVER-ipfire/kernel/drivers/ssb #lib/modules/KVER-ipfire/kernel/drivers/ssb/ssb.ko #lib/modules/KVER-ipfire/kernel/drivers/staging +#lib/modules/KVER-ipfire/kernel/drivers/staging/echo +#lib/modules/KVER-ipfire/kernel/drivers/staging/echo/echo.ko #lib/modules/KVER-ipfire/kernel/drivers/staging/et131x #lib/modules/KVER-ipfire/kernel/drivers/staging/et131x/et131x.ko -#lib/modules/KVER-ipfire/kernel/drivers/staging/hv -#lib/modules/KVER-ipfire/kernel/drivers/staging/hv/hv_mouse.ko -#lib/modules/KVER-ipfire/kernel/drivers/staging/hv/hv_netvsc.ko -#lib/modules/KVER-ipfire/kernel/drivers/staging/hv/hv_storvsc.ko -#lib/modules/KVER-ipfire/kernel/drivers/staging/mei -#lib/modules/KVER-ipfire/kernel/drivers/staging/mei/mei.ko -#lib/modules/KVER-ipfire/kernel/drivers/staging/phison -#lib/modules/KVER-ipfire/kernel/drivers/staging/phison/phison.ko +#lib/modules/KVER-ipfire/kernel/drivers/staging/rts5139 +#lib/modules/KVER-ipfire/kernel/drivers/staging/rts5139/rts5139.ko #lib/modules/KVER-ipfire/kernel/drivers/staging/slicoss #lib/modules/KVER-ipfire/kernel/drivers/staging/slicoss/slicoss.ko #lib/modules/KVER-ipfire/kernel/drivers/staging/usbip #lib/modules/KVER-ipfire/kernel/drivers/staging/usbip/usbip-core.ko #lib/modules/KVER-ipfire/kernel/drivers/staging/usbip/usbip-host.ko #lib/modules/KVER-ipfire/kernel/drivers/staging/usbip/vhci-hcd.ko +#lib/modules/KVER-ipfire/kernel/drivers/thermal +#lib/modules/KVER-ipfire/kernel/drivers/thermal/intel_powerclamp.ko #lib/modules/KVER-ipfire/kernel/drivers/tty -#lib/modules/KVER-ipfire/kernel/drivers/tty/ipwireless -#lib/modules/KVER-ipfire/kernel/drivers/tty/ipwireless/ipwireless.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/cyclades.ko #lib/modules/KVER-ipfire/kernel/drivers/tty/n_gsm.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/n_hdlc.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/n_r3964.ko #lib/modules/KVER-ipfire/kernel/drivers/tty/nozomi.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/rocket.ko #lib/modules/KVER-ipfire/kernel/drivers/tty/serial -#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/8250_accent.ko -#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/8250_boca.ko -#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/8250_exar_st16c554.ko -#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/8250_fourport.ko -#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/8250_hub6.ko -#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/altera_jtaguart.ko -#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/altera_uart.ko -#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/mfd.ko -#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/pch_uart.ko -#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/serial_cs.ko -#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/timbuart.ko -#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/uartlite.ko -#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/xilinx_uartps.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/8250 +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/8250/8250_dw.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/arc_uart.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/jsm +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/jsm/jsm.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/rp2.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/sccnxp.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/synclink.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/synclink_gt.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/synclinkmp.ko #lib/modules/KVER-ipfire/kernel/drivers/uio #lib/modules/KVER-ipfire/kernel/drivers/uio/uio.ko #lib/modules/KVER-ipfire/kernel/drivers/uio/uio_aec.ko -#lib/modules/KVER-ipfire/kernel/drivers/uio/uio_cif.ko -#lib/modules/KVER-ipfire/kernel/drivers/uio/uio_netx.ko #lib/modules/KVER-ipfire/kernel/drivers/uio/uio_pci_generic.ko -#lib/modules/KVER-ipfire/kernel/drivers/uio/uio_pdrv.ko -#lib/modules/KVER-ipfire/kernel/drivers/uio/uio_pdrv_genirq.ko #lib/modules/KVER-ipfire/kernel/drivers/uio/uio_sercos3.ko #lib/modules/KVER-ipfire/kernel/drivers/usb #lib/modules/KVER-ipfire/kernel/drivers/usb/atm @@ -1608,44 +2003,47 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/usb/atm/ueagle-atm.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/atm/usbatm.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/atm/xusbatm.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/chipidea +#lib/modules/KVER-ipfire/kernel/drivers/usb/chipidea/ci13xxx_msm.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/chipidea/ci13xxx_pci.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/chipidea/ci_hdrc.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/class #lib/modules/KVER-ipfire/kernel/drivers/usb/class/cdc-acm.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/class/cdc-wdm.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/class/usblp.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/class/usbtmc.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/dwc3 +#lib/modules/KVER-ipfire/kernel/drivers/usb/dwc3/dwc3-exynos.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/dwc3/dwc3-omap.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/dwc3/dwc3-pci.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/dwc3/dwc3.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/host #lib/modules/KVER-ipfire/kernel/drivers/usb/host/hwa-hc.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/host/isp116x-hcd.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/host/isp1362-hcd.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/host/oxu210hp-hcd.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/host/r8a66597-hcd.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/host/sl811-hcd.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/host/u132-hcd.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/host/ssb-hcd.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/host/whci #lib/modules/KVER-ipfire/kernel/drivers/usb/host/whci/whci-hcd.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/host/xhci-hcd.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/image +#lib/modules/KVER-ipfire/kernel/drivers/usb/image/mdc800.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/image/microtek.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/misc -#lib/modules/KVER-ipfire/kernel/drivers/usb/misc/cypress_cy7c63.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/misc/cytherm.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/misc/adutux.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/misc/emi26.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/misc/emi62.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/misc/ezusb.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/misc/ftdi-elan.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/misc/iowarrior.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/misc/isight_firmware.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/misc/sisusbvga #lib/modules/KVER-ipfire/kernel/drivers/usb/misc/sisusbvga/sisusbvga.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/misc/usb3503.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/misc/usblcd.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/misc/usbled.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/misc/usbsevseg.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/misc/uss720.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/misc/yurex.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/otg -#lib/modules/KVER-ipfire/kernel/drivers/usb/otg/gpio_vbus.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/otg/nop-usb-xceiv.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/mon +#lib/modules/KVER-ipfire/kernel/drivers/usb/mon/usbmon.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/aircable.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/ark3116.ko @@ -1654,11 +2052,9 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/cp210x.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/cypress_m8.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/digi_acceleport.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/empeg.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/f81232.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/ftdi_sio.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/funsoft.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/garmin_gps.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/hp4x.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/io_edgeport.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/io_ti.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/ipaq.ko @@ -1666,31 +2062,27 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/ir-usb.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/iuu_phoenix.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/keyspan_pda.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/kl5kusb105.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/mct_u232.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/mos7720.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/mos7840.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/moto_modem.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/opticon.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/option.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/oti6858.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/pl2303.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/qcaux.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/qcserial.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/safe_serial.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/quatech2.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/siemens_mpi.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/sierra.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/spcp8x5.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/ssu100.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/symbolserial.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/ti_usb_3410_5052.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/usb_wwan.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/usbserial.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/visor.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/vivopay-serial.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/whiteheat.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/zio.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/zte_ev.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/storage -#lib/modules/KVER-ipfire/kernel/drivers/usb/storage/uas.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-alauda.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-cypress.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-datafab.ko @@ -1704,7 +2096,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-sddr09.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-sddr55.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-usbat.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/storage/usb-storage.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/wusbcore #lib/modules/KVER-ipfire/kernel/drivers/usb/wusbcore/wusb-cbaf.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/wusbcore/wusb-wa.ko @@ -1721,53 +2112,38 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/uwb/whci.ko #lib/modules/KVER-ipfire/kernel/drivers/vhost #lib/modules/KVER-ipfire/kernel/drivers/vhost/vhost_net.ko +#lib/modules/KVER-ipfire/kernel/drivers/vhost/vringh.ko #lib/modules/KVER-ipfire/kernel/drivers/video +#lib/modules/KVER-ipfire/kernel/drivers/video/arcfb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/arkfb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/aty -#lib/modules/KVER-ipfire/kernel/drivers/video/aty/aty128fb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/aty/atyfb.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/aty/radeonfb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/backlight -#lib/modules/KVER-ipfire/kernel/drivers/video/backlight/adp8860_bl.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/backlight/adp8870_bl.ko #lib/modules/KVER-ipfire/kernel/drivers/video/backlight/apple_bl.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/backlight/cr_bllcd.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/backlight/generic_bl.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/backlight/kb3886_bl.ko #lib/modules/KVER-ipfire/kernel/drivers/video/backlight/lcd.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/backlight/pcf50633-backlight.ko #lib/modules/KVER-ipfire/kernel/drivers/video/backlight/platform_lcd.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/backlight/progear_bl.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/cirrusfb.ko +#lib/modules/KVER-ipfire/kernel/drivers/video/console +#lib/modules/KVER-ipfire/kernel/drivers/video/console/mdacon.ko #lib/modules/KVER-ipfire/kernel/drivers/video/cyber2000fb.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/display -#lib/modules/KVER-ipfire/kernel/drivers/video/display/display.ko #lib/modules/KVER-ipfire/kernel/drivers/video/fb_ddc.ko #lib/modules/KVER-ipfire/kernel/drivers/video/fb_sys_fops.ko #lib/modules/KVER-ipfire/kernel/drivers/video/geode #lib/modules/KVER-ipfire/kernel/drivers/video/geode/gx1fb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/geode/gxfb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/geode/lxfb.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/i810 -#lib/modules/KVER-ipfire/kernel/drivers/video/i810/i810fb.ko +#lib/modules/KVER-ipfire/kernel/drivers/video/hgafb.ko +#lib/modules/KVER-ipfire/kernel/drivers/video/hyperv_fb.ko +#lib/modules/KVER-ipfire/kernel/drivers/video/i740fb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/kyro #lib/modules/KVER-ipfire/kernel/drivers/video/kyro/kyrofb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/macmodes.ko #lib/modules/KVER-ipfire/kernel/drivers/video/matrox -#lib/modules/KVER-ipfire/kernel/drivers/video/matrox/g450_pll.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/matrox/i2c-matroxfb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/matrox/matroxfb_DAC1064.ko #lib/modules/KVER-ipfire/kernel/drivers/video/matrox/matroxfb_Ti3026.ko #lib/modules/KVER-ipfire/kernel/drivers/video/matrox/matroxfb_accel.ko #lib/modules/KVER-ipfire/kernel/drivers/video/matrox/matroxfb_base.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/matrox/matroxfb_crtc2.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/matrox/matroxfb_g450.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/matrox/matroxfb_maven.ko #lib/modules/KVER-ipfire/kernel/drivers/video/matrox/matroxfb_misc.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/metronomefb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/neofb.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/nvidia -#lib/modules/KVER-ipfire/kernel/drivers/video/nvidia/nvidiafb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/output.ko #lib/modules/KVER-ipfire/kernel/drivers/video/pm2fb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/pm3fb.ko @@ -1776,22 +2152,18 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/video/s3fb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/savage #lib/modules/KVER-ipfire/kernel/drivers/video/savage/savagefb.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/sis -#lib/modules/KVER-ipfire/kernel/drivers/video/sis/sisfb.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/sm501fb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/smscufx.ko #lib/modules/KVER-ipfire/kernel/drivers/video/sstfb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/svgalib.ko #lib/modules/KVER-ipfire/kernel/drivers/video/syscopyarea.ko #lib/modules/KVER-ipfire/kernel/drivers/video/sysfillrect.ko #lib/modules/KVER-ipfire/kernel/drivers/video/sysimgblt.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/tdfxfb.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/tmiofb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/tridentfb.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/uvesafb.ko +#lib/modules/KVER-ipfire/kernel/drivers/video/udlfb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/vermilion #lib/modules/KVER-ipfire/kernel/drivers/video/vermilion/crvml.ko #lib/modules/KVER-ipfire/kernel/drivers/video/vermilion/vmlfb.ko +#lib/modules/KVER-ipfire/kernel/drivers/video/vga16fb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/vgastate.ko #lib/modules/KVER-ipfire/kernel/drivers/video/via #lib/modules/KVER-ipfire/kernel/drivers/video/via/viafb.ko @@ -1799,32 +2171,28 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/virtio #lib/modules/KVER-ipfire/kernel/drivers/virtio/virtio_balloon.ko #lib/modules/KVER-ipfire/kernel/drivers/virtio/virtio_mmio.ko -#lib/modules/KVER-ipfire/kernel/drivers/virtio/virtio_pci.ko #lib/modules/KVER-ipfire/kernel/drivers/w1 #lib/modules/KVER-ipfire/kernel/drivers/w1/masters #lib/modules/KVER-ipfire/kernel/drivers/w1/masters/ds1wm.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/masters/ds2482.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/masters/ds2490.ko -#lib/modules/KVER-ipfire/kernel/drivers/w1/masters/matrox_w1.ko -#lib/modules/KVER-ipfire/kernel/drivers/w1/masters/w1-gpio.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_bq27000.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_ds2408.ko +#lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_ds2413.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_ds2423.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_ds2431.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_ds2433.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_ds2760.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_ds2780.ko +#lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_ds2781.ko +#lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_ds28e04.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_smem.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_therm.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/wire.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog -#lib/modules/KVER-ipfire/kernel/drivers/watchdog/acquirewdt.ko -#lib/modules/KVER-ipfire/kernel/drivers/watchdog/advantechwdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/alim1535_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/alim7101_wdt.ko -#lib/modules/KVER-ipfire/kernel/drivers/watchdog/cpu5wdt.ko -#lib/modules/KVER-ipfire/kernel/drivers/watchdog/eurotechwdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/f71808e_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/geodewdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/hpwdt.ko @@ -1832,96 +2200,145 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/watchdog/iTCO_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/ib700wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/ibmasr.ko +#lib/modules/KVER-ipfire/kernel/drivers/watchdog/ie6xx_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/it8712f_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/it87_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/machzwd.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/nv_tco.ko -#lib/modules/KVER-ipfire/kernel/drivers/watchdog/pc87413_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/pcwd_pci.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/pcwd_usb.ko -#lib/modules/KVER-ipfire/kernel/drivers/watchdog/sbc60xxwdt.ko -#lib/modules/KVER-ipfire/kernel/drivers/watchdog/sbc7240_wdt.ko -#lib/modules/KVER-ipfire/kernel/drivers/watchdog/sbc8360.ko -#lib/modules/KVER-ipfire/kernel/drivers/watchdog/sbc_epx_c3.ko +#lib/modules/KVER-ipfire/kernel/drivers/watchdog/retu_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/sbc_fitpc2_wdt.ko -#lib/modules/KVER-ipfire/kernel/drivers/watchdog/sc1200wdt.ko -#lib/modules/KVER-ipfire/kernel/drivers/watchdog/sc520_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/sch311x_wdt.ko -#lib/modules/KVER-ipfire/kernel/drivers/watchdog/scx200_wdt.ko -#lib/modules/KVER-ipfire/kernel/drivers/watchdog/smsc37b787_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/softdog.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/sp5100_tco.ko +#lib/modules/KVER-ipfire/kernel/drivers/watchdog/via_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/w83627hf_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/w83697hf_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/w83697ug_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/w83877f_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/w83977f_wdt.ko -#lib/modules/KVER-ipfire/kernel/drivers/watchdog/wafer5823wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/wdt_pci.ko #lib/modules/KVER-ipfire/kernel/fs -#lib/modules/KVER-ipfire/kernel/fs/autofs4 -#lib/modules/KVER-ipfire/kernel/fs/autofs4/autofs4.ko +#lib/modules/KVER-ipfire/kernel/fs/btrfs +#lib/modules/KVER-ipfire/kernel/fs/btrfs/btrfs.ko #lib/modules/KVER-ipfire/kernel/fs/cachefiles #lib/modules/KVER-ipfire/kernel/fs/cachefiles/cachefiles.ko #lib/modules/KVER-ipfire/kernel/fs/cifs #lib/modules/KVER-ipfire/kernel/fs/cifs/cifs.ko -#lib/modules/KVER-ipfire/kernel/fs/ecryptfs -#lib/modules/KVER-ipfire/kernel/fs/ecryptfs/ecryptfs.ko -#lib/modules/KVER-ipfire/kernel/fs/exportfs -#lib/modules/KVER-ipfire/kernel/fs/exportfs/exportfs.ko +#lib/modules/KVER-ipfire/kernel/fs/configfs +#lib/modules/KVER-ipfire/kernel/fs/configfs/configfs.ko +#lib/modules/KVER-ipfire/kernel/fs/dlm +#lib/modules/KVER-ipfire/kernel/fs/dlm/dlm.ko +#lib/modules/KVER-ipfire/kernel/fs/efivarfs +#lib/modules/KVER-ipfire/kernel/fs/efivarfs/efivarfs.ko +#lib/modules/KVER-ipfire/kernel/fs/exofs +#lib/modules/KVER-ipfire/kernel/fs/exofs/libore.ko #lib/modules/KVER-ipfire/kernel/fs/fat #lib/modules/KVER-ipfire/kernel/fs/fat/fat.ko +#lib/modules/KVER-ipfire/kernel/fs/fat/msdos.ko #lib/modules/KVER-ipfire/kernel/fs/fat/vfat.ko #lib/modules/KVER-ipfire/kernel/fs/fscache #lib/modules/KVER-ipfire/kernel/fs/fscache/fscache.ko #lib/modules/KVER-ipfire/kernel/fs/fuse #lib/modules/KVER-ipfire/kernel/fs/fuse/cuse.ko #lib/modules/KVER-ipfire/kernel/fs/fuse/fuse.ko -#lib/modules/KVER-ipfire/kernel/fs/isofs -#lib/modules/KVER-ipfire/kernel/fs/isofs/isofs.ko -#lib/modules/KVER-ipfire/kernel/fs/jffs2 -#lib/modules/KVER-ipfire/kernel/fs/jffs2/jffs2.ko -#lib/modules/KVER-ipfire/kernel/fs/jfs -#lib/modules/KVER-ipfire/kernel/fs/jfs/jfs.ko #lib/modules/KVER-ipfire/kernel/fs/lockd #lib/modules/KVER-ipfire/kernel/fs/lockd/lockd.ko #lib/modules/KVER-ipfire/kernel/fs/nfs +#lib/modules/KVER-ipfire/kernel/fs/nfs/blocklayout +#lib/modules/KVER-ipfire/kernel/fs/nfs/blocklayout/blocklayoutdriver.ko #lib/modules/KVER-ipfire/kernel/fs/nfs/nfs.ko +#lib/modules/KVER-ipfire/kernel/fs/nfs/nfs_layout_nfsv41_files.ko +#lib/modules/KVER-ipfire/kernel/fs/nfs/nfsv2.ko +#lib/modules/KVER-ipfire/kernel/fs/nfs/nfsv3.ko +#lib/modules/KVER-ipfire/kernel/fs/nfs/nfsv4.ko +#lib/modules/KVER-ipfire/kernel/fs/nfs/objlayout +#lib/modules/KVER-ipfire/kernel/fs/nfs/objlayout/objlayoutdriver.ko #lib/modules/KVER-ipfire/kernel/fs/nfs_common #lib/modules/KVER-ipfire/kernel/fs/nfs_common/nfs_acl.ko #lib/modules/KVER-ipfire/kernel/fs/nfsd #lib/modules/KVER-ipfire/kernel/fs/nfsd/nfsd.ko -#lib/modules/KVER-ipfire/kernel/fs/quota -#lib/modules/KVER-ipfire/kernel/fs/quota/quota_tree.ko -#lib/modules/KVER-ipfire/kernel/fs/quota/quota_v1.ko -#lib/modules/KVER-ipfire/kernel/fs/quota/quota_v2.ko +#lib/modules/KVER-ipfire/kernel/fs/nls +#lib/modules/KVER-ipfire/kernel/fs/nls/mac-celtic.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/mac-centeuro.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/mac-croatian.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/mac-cyrillic.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/mac-gaelic.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/mac-greek.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/mac-iceland.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/mac-inuit.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/mac-roman.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/mac-romanian.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/mac-turkish.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp1250.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp1251.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp1255.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp737.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp775.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp850.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp852.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp855.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp857.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp860.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp861.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp862.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp863.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp864.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp865.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp866.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp869.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp874.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp932.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp936.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp949.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp950.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_euc-jp.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_iso8859-1.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_iso8859-13.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_iso8859-14.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_iso8859-15.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_iso8859-2.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_iso8859-3.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_iso8859-4.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_iso8859-5.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_iso8859-6.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_iso8859-7.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_iso8859-9.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_koi8-r.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_koi8-ru.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_koi8-u.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_utf8.ko #lib/modules/KVER-ipfire/kernel/fs/reiserfs #lib/modules/KVER-ipfire/kernel/fs/reiserfs/reiserfs.ko #lib/modules/KVER-ipfire/kernel/fs/udf #lib/modules/KVER-ipfire/kernel/fs/udf/udf.ko -#lib/modules/KVER-ipfire/kernel/fs/ufs -#lib/modules/KVER-ipfire/kernel/fs/ufs/ufs.ko #lib/modules/KVER-ipfire/kernel/fs/xfs #lib/modules/KVER-ipfire/kernel/fs/xfs/xfs.ko +#lib/modules/KVER-ipfire/kernel/kernel +#lib/modules/KVER-ipfire/kernel/kernel/trace +#lib/modules/KVER-ipfire/kernel/kernel/trace/ring_buffer_benchmark.ko #lib/modules/KVER-ipfire/kernel/lib +#lib/modules/KVER-ipfire/kernel/lib/asn1_decoder.ko #lib/modules/KVER-ipfire/kernel/lib/cordic.ko -#lib/modules/KVER-ipfire/kernel/lib/crc-ccitt.ko #lib/modules/KVER-ipfire/kernel/lib/crc-itu-t.ko -#lib/modules/KVER-ipfire/kernel/lib/crc-t10dif.ko #lib/modules/KVER-ipfire/kernel/lib/crc7.ko #lib/modules/KVER-ipfire/kernel/lib/crc8.ko #lib/modules/KVER-ipfire/kernel/lib/libcrc32c.ko +#lib/modules/KVER-ipfire/kernel/lib/mpi +#lib/modules/KVER-ipfire/kernel/lib/mpi/mpi.ko +#lib/modules/KVER-ipfire/kernel/lib/oid_registry.ko #lib/modules/KVER-ipfire/kernel/lib/raid6 #lib/modules/KVER-ipfire/kernel/lib/raid6/raid6_pq.ko +#lib/modules/KVER-ipfire/kernel/lib/rbtree_test.ko #lib/modules/KVER-ipfire/kernel/lib/ts_bm.ko #lib/modules/KVER-ipfire/kernel/lib/ts_fsm.ko #lib/modules/KVER-ipfire/kernel/lib/ts_kmp.ko +#lib/modules/KVER-ipfire/kernel/lib/zlib_deflate +#lib/modules/KVER-ipfire/kernel/lib/zlib_deflate/zlib_deflate.ko #lib/modules/KVER-ipfire/kernel/net #lib/modules/KVER-ipfire/kernel/net/802 #lib/modules/KVER-ipfire/kernel/net/802/garp.ko -#lib/modules/KVER-ipfire/kernel/net/802/p8022.ko -#lib/modules/KVER-ipfire/kernel/net/802/psnap.ko -#lib/modules/KVER-ipfire/kernel/net/802/stp.ko #lib/modules/KVER-ipfire/kernel/net/8021q #lib/modules/KVER-ipfire/kernel/net/8021q/8021q.ko #lib/modules/KVER-ipfire/kernel/net/atm @@ -1942,7 +2359,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/bluetooth/rfcomm #lib/modules/KVER-ipfire/kernel/net/bluetooth/rfcomm/rfcomm.ko #lib/modules/KVER-ipfire/kernel/net/bridge -#lib/modules/KVER-ipfire/kernel/net/bridge/bridge.ko #lib/modules/KVER-ipfire/kernel/net/bridge/netfilter #lib/modules/KVER-ipfire/kernel/net/bridge/netfilter/ebt_802_3.ko #lib/modules/KVER-ipfire/kernel/net/bridge/netfilter/ebt_among.ko @@ -1960,64 +2376,45 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/bridge/netfilter/ebt_redirect.ko #lib/modules/KVER-ipfire/kernel/net/bridge/netfilter/ebt_snat.ko #lib/modules/KVER-ipfire/kernel/net/bridge/netfilter/ebt_stp.ko -#lib/modules/KVER-ipfire/kernel/net/bridge/netfilter/ebt_ulog.ko #lib/modules/KVER-ipfire/kernel/net/bridge/netfilter/ebt_vlan.ko #lib/modules/KVER-ipfire/kernel/net/bridge/netfilter/ebtable_broute.ko #lib/modules/KVER-ipfire/kernel/net/bridge/netfilter/ebtable_filter.ko #lib/modules/KVER-ipfire/kernel/net/bridge/netfilter/ebtable_nat.ko #lib/modules/KVER-ipfire/kernel/net/bridge/netfilter/ebtables.ko -#lib/modules/KVER-ipfire/kernel/net/ceph -#lib/modules/KVER-ipfire/kernel/net/ceph/libceph.ko -#lib/modules/KVER-ipfire/kernel/net/ieee802154 -#lib/modules/KVER-ipfire/kernel/net/ieee802154/6lowpan.ko -#lib/modules/KVER-ipfire/kernel/net/ieee802154/af_802154.ko -#lib/modules/KVER-ipfire/kernel/net/ieee802154/ieee802154.ko +#lib/modules/KVER-ipfire/kernel/net/core +#lib/modules/KVER-ipfire/kernel/net/core/netprio_cgroup.ko #lib/modules/KVER-ipfire/kernel/net/ipv4 #lib/modules/KVER-ipfire/kernel/net/ipv4/ah4.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/esp4.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/gre.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/inet_diag.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/ip_gre.ko +#lib/modules/KVER-ipfire/kernel/net/ipv4/ip_tunnel.ko +#lib/modules/KVER-ipfire/kernel/net/ipv4/ip_vti.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/ipcomp.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/ipip.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/arp_tables.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/arpt_mangle.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/arptable_filter.ko -#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ip_queue.ko -#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ip_tables.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_CLUSTERIP.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_ECN.ko -#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_LOG.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_MASQUERADE.ko -#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_NETMAP.ko -#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_REDIRECT.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_REJECT.ko -#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_ULOG.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_ah.ko -#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_ecn.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_ipp2p.ko +#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_rpfilter.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/iptable_filter.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/iptable_mangle.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/iptable_nat.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/iptable_raw.ko -#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/nf_conntrack_ipv4.ko -#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/nf_defrag_ipv4.ko -#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/nf_nat.ko -#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/nf_nat_amanda.ko -#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/nf_nat_ftp.ko +#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/iptable_security.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/nf_nat_h323.ko -#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/nf_nat_irc.ko +#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/nf_nat_ipv4.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/nf_nat_pptp.ko -#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/nf_nat_proto_dccp.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/nf_nat_proto_gre.ko -#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/nf_nat_proto_sctp.ko -#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/nf_nat_proto_udplite.ko -#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/nf_nat_sip.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/nf_nat_snmp_basic.ko -#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/nf_nat_tftp.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/tcp_bic.ko -#lib/modules/KVER-ipfire/kernel/net/ipv4/tcp_cubic.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/tcp_diag.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/tcp_highspeed.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/tcp_htcp.ko @@ -2030,17 +2427,21 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/ipv4/tcp_westwood.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/tcp_yeah.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/tunnel4.ko +#lib/modules/KVER-ipfire/kernel/net/ipv4/udp_diag.ko +#lib/modules/KVER-ipfire/kernel/net/ipv4/xfrm4_mode_beet.ko +#lib/modules/KVER-ipfire/kernel/net/ipv4/xfrm4_mode_transport.ko +#lib/modules/KVER-ipfire/kernel/net/ipv4/xfrm4_mode_tunnel.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/xfrm4_tunnel.ko #lib/modules/KVER-ipfire/kernel/net/ipv6 #lib/modules/KVER-ipfire/kernel/net/ipv6/ah6.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/esp6.ko +#lib/modules/KVER-ipfire/kernel/net/ipv6/ip6_gre.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/ip6_tunnel.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/ipcomp6.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/mip6.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter -#lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6_queue.ko -#lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6_tables.ko -#lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6t_LOG.ko +#lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6t_MASQUERADE.ko +#lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6t_NPT.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6t_REJECT.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6t_ah.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6t_eui64.ko @@ -2048,12 +2449,14 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6t_hbh.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6t_ipv6header.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6t_mh.ko +#lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6t_rpfilter.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6t_rt.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6table_filter.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6table_mangle.ko +#lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6table_nat.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6table_raw.ko -#lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/nf_conntrack_ipv6.ko -#lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/nf_defrag_ipv6.ko +#lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6table_security.ko +#lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/nf_nat_ipv6.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/sit.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/tunnel6.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/xfrm6_mode_beet.ko @@ -2061,28 +2464,31 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/ipv6/xfrm6_mode_transport.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/xfrm6_mode_tunnel.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/xfrm6_tunnel.ko -#lib/modules/KVER-ipfire/kernel/net/irda -#lib/modules/KVER-ipfire/kernel/net/irda/ircomm -#lib/modules/KVER-ipfire/kernel/net/irda/ircomm/ircomm-tty.ko -#lib/modules/KVER-ipfire/kernel/net/irda/ircomm/ircomm.ko -#lib/modules/KVER-ipfire/kernel/net/irda/irda.ko -#lib/modules/KVER-ipfire/kernel/net/irda/irlan -#lib/modules/KVER-ipfire/kernel/net/irda/irlan/irlan.ko -#lib/modules/KVER-ipfire/kernel/net/irda/irnet -#lib/modules/KVER-ipfire/kernel/net/irda/irnet/irnet.ko #lib/modules/KVER-ipfire/kernel/net/key #lib/modules/KVER-ipfire/kernel/net/key/af_key.ko #lib/modules/KVER-ipfire/kernel/net/l2tp #lib/modules/KVER-ipfire/kernel/net/l2tp/l2tp_core.ko #lib/modules/KVER-ipfire/kernel/net/l2tp/l2tp_eth.ko #lib/modules/KVER-ipfire/kernel/net/l2tp/l2tp_ip.ko +#lib/modules/KVER-ipfire/kernel/net/l2tp/l2tp_ip6.ko #lib/modules/KVER-ipfire/kernel/net/l2tp/l2tp_netlink.ko #lib/modules/KVER-ipfire/kernel/net/l2tp/l2tp_ppp.ko -#lib/modules/KVER-ipfire/kernel/net/llc -#lib/modules/KVER-ipfire/kernel/net/llc/llc.ko #lib/modules/KVER-ipfire/kernel/net/mac80211 #lib/modules/KVER-ipfire/kernel/net/mac80211/mac80211.ko #lib/modules/KVER-ipfire/kernel/net/netfilter +#lib/modules/KVER-ipfire/kernel/net/netfilter/ipset +#lib/modules/KVER-ipfire/kernel/net/netfilter/ipset/ip_set.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/ipset/ip_set_bitmap_ip.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/ipset/ip_set_bitmap_ipmac.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/ipset/ip_set_bitmap_port.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/ipset/ip_set_hash_ip.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/ipset/ip_set_hash_ipport.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/ipset/ip_set_hash_ipportip.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/ipset/ip_set_hash_ipportnet.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/ipset/ip_set_hash_net.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/ipset/ip_set_hash_netiface.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/ipset/ip_set_hash_netport.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/ipset/ip_set_list_set.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/ipvs #lib/modules/KVER-ipfire/kernel/net/netfilter/ipvs/ip_vs.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/ipvs/ip_vs_dh.ko @@ -2097,7 +2503,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/netfilter/ipvs/ip_vs_sh.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/ipvs/ip_vs_wlc.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/ipvs/ip_vs_wrr.ko -#lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_amanda.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_broadcast.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_ftp.ko @@ -2114,33 +2519,51 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_sip.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_snmp.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_tftp.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/nf_nat.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/nf_nat_amanda.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/nf_nat_ftp.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/nf_nat_irc.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/nf_nat_proto_dccp.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/nf_nat_proto_sctp.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/nf_nat_proto_udplite.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/nf_nat_sip.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/nf_nat_tftp.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_tproxy_core.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nfnetlink.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/nfnetlink_acct.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/nfnetlink_cthelper.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/nfnetlink_cttimeout.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nfnetlink_log.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nfnetlink_queue.ko -#lib/modules/KVER-ipfire/kernel/net/netfilter/x_tables.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_AUDIT.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_CHECKSUM.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_CLASSIFY.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_CONNSECMARK.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_CT.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_DSCP.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_HL.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_HMARK.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_IDLETIMER.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_IMQ.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_LED.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_LOG.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_NETMAP.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_NFLOG.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_NFQUEUE.ko -#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_NOTRACK.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_RATEEST.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_REDIRECT.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_SECMARK.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_TCPMSS.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_TCPOPTSTRIP.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_TEE.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_TPROXY.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_TRACE.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_addrtype.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_bpf.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_cluster.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_comment.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_connbytes.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_connlabel.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_connlimit.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_connmark.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_conntrack.ko @@ -2148,18 +2571,20 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_dccp.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_devgroup.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_dscp.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_ecn.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_esp.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_hashlimit.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_helper.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_hl.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_iprange.ko -#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_ipvs.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_layer7.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_length.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_limit.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_mac.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_mark.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_multiport.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_nat.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_nfacct.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_osf.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_owner.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_physdev.ko @@ -2170,20 +2595,21 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_realm.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_recent.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_sctp.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_set.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_socket.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_state.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_statistic.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_string.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_tcpmss.ko -#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_tcpudp.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_time.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_u32.ko +#lib/modules/KVER-ipfire/kernel/net/netlink +#lib/modules/KVER-ipfire/kernel/net/netlink/netlink_diag.ko +#lib/modules/KVER-ipfire/kernel/net/openvswitch +#lib/modules/KVER-ipfire/kernel/net/openvswitch/openvswitch.ko #lib/modules/KVER-ipfire/kernel/net/rfkill -#lib/modules/KVER-ipfire/kernel/net/rfkill/rfkill-regulator.ko +#lib/modules/KVER-ipfire/kernel/net/rfkill/rfkill-gpio.ko #lib/modules/KVER-ipfire/kernel/net/rfkill/rfkill.ko -#lib/modules/KVER-ipfire/kernel/net/rxrpc -#lib/modules/KVER-ipfire/kernel/net/rxrpc/af-rxrpc.ko -#lib/modules/KVER-ipfire/kernel/net/rxrpc/rxkad.ko #lib/modules/KVER-ipfire/kernel/net/sched #lib/modules/KVER-ipfire/kernel/net/sched/act_csum.ko #lib/modules/KVER-ipfire/kernel/net/sched/act_gact.ko @@ -2195,6 +2621,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/sched/act_simple.ko #lib/modules/KVER-ipfire/kernel/net/sched/act_skbedit.ko #lib/modules/KVER-ipfire/kernel/net/sched/cls_basic.ko +#lib/modules/KVER-ipfire/kernel/net/sched/cls_cgroup.ko #lib/modules/KVER-ipfire/kernel/net/sched/cls_flow.ko #lib/modules/KVER-ipfire/kernel/net/sched/cls_fw.ko #lib/modules/KVER-ipfire/kernel/net/sched/cls_route.ko @@ -2203,6 +2630,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/sched/cls_tcindex.ko #lib/modules/KVER-ipfire/kernel/net/sched/cls_u32.ko #lib/modules/KVER-ipfire/kernel/net/sched/em_cmp.ko +#lib/modules/KVER-ipfire/kernel/net/sched/em_ipset.ko #lib/modules/KVER-ipfire/kernel/net/sched/em_meta.ko #lib/modules/KVER-ipfire/kernel/net/sched/em_nbyte.ko #lib/modules/KVER-ipfire/kernel/net/sched/em_text.ko @@ -2210,8 +2638,10 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/sched/sch_atm.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_cbq.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_choke.ko +#lib/modules/KVER-ipfire/kernel/net/sched/sch_codel.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_drr.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_dsmark.ko +#lib/modules/KVER-ipfire/kernel/net/sched/sch_fq_codel.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_gred.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_hfsc.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_htb.ko @@ -2219,6 +2649,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/sched/sch_mqprio.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_multiq.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_netem.ko +#lib/modules/KVER-ipfire/kernel/net/sched/sch_plug.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_prio.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_qfq.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_red.ko @@ -2226,11 +2657,18 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/sched/sch_sfq.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_tbf.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_teql.ko +#lib/modules/KVER-ipfire/kernel/net/sctp +#lib/modules/KVER-ipfire/kernel/net/sctp/sctp.ko #lib/modules/KVER-ipfire/kernel/net/sunrpc #lib/modules/KVER-ipfire/kernel/net/sunrpc/auth_gss #lib/modules/KVER-ipfire/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko #lib/modules/KVER-ipfire/kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko #lib/modules/KVER-ipfire/kernel/net/sunrpc/sunrpc.ko +#lib/modules/KVER-ipfire/kernel/net/unix +#lib/modules/KVER-ipfire/kernel/net/unix/unix_diag.ko +#lib/modules/KVER-ipfire/kernel/net/vmw_vsock +#lib/modules/KVER-ipfire/kernel/net/vmw_vsock/vmw_vsock_vmci_transport.ko +#lib/modules/KVER-ipfire/kernel/net/vmw_vsock/vsock.ko #lib/modules/KVER-ipfire/kernel/net/wireless #lib/modules/KVER-ipfire/kernel/net/wireless/cfg80211.ko #lib/modules/KVER-ipfire/kernel/net/wireless/lib80211.ko @@ -2239,7 +2677,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/wireless/lib80211_crypt_wep.ko #lib/modules/KVER-ipfire/kernel/net/xfrm #lib/modules/KVER-ipfire/kernel/net/xfrm/xfrm_ipcomp.ko -#lib/modules/KVER-ipfire/kernel/net/xfrm/xfrm_user.ko #lib/modules/KVER-ipfire/kernel/sound #lib/modules/KVER-ipfire/kernel/sound/ac97_bus.ko #lib/modules/KVER-ipfire/kernel/sound/core @@ -2273,6 +2710,8 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/sound/drivers/opl4 #lib/modules/KVER-ipfire/kernel/sound/drivers/opl4/snd-opl4-lib.ko #lib/modules/KVER-ipfire/kernel/sound/drivers/opl4/snd-opl4-synth.ko +#lib/modules/KVER-ipfire/kernel/sound/drivers/pcsp +#lib/modules/KVER-ipfire/kernel/sound/drivers/pcsp/snd-pcsp.ko #lib/modules/KVER-ipfire/kernel/sound/drivers/snd-aloop.ko #lib/modules/KVER-ipfire/kernel/sound/drivers/snd-dummy.ko #lib/modules/KVER-ipfire/kernel/sound/drivers/snd-mtpav.ko @@ -2285,12 +2724,10 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/sound/firewire #lib/modules/KVER-ipfire/kernel/sound/firewire/snd-firewire-lib.ko #lib/modules/KVER-ipfire/kernel/sound/firewire/snd-firewire-speakers.ko -#lib/modules/KVER-ipfire/kernel/sound/firewire/snd-isight.ko #lib/modules/KVER-ipfire/kernel/sound/i2c #lib/modules/KVER-ipfire/kernel/sound/i2c/other #lib/modules/KVER-ipfire/kernel/sound/i2c/other/snd-ak4113.ko #lib/modules/KVER-ipfire/kernel/sound/i2c/other/snd-ak4114.ko -#lib/modules/KVER-ipfire/kernel/sound/i2c/other/snd-ak4117.ko #lib/modules/KVER-ipfire/kernel/sound/i2c/other/snd-ak4xxx-adda.ko #lib/modules/KVER-ipfire/kernel/sound/i2c/other/snd-pt2258.ko #lib/modules/KVER-ipfire/kernel/sound/i2c/other/snd-tea575x-tuner.ko @@ -2340,6 +2777,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/sound/isa/snd-adlib.ko #lib/modules/KVER-ipfire/kernel/sound/isa/snd-als100.ko #lib/modules/KVER-ipfire/kernel/sound/isa/snd-azt2320.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/snd-cmi8328.ko #lib/modules/KVER-ipfire/kernel/sound/isa/snd-cmi8330.ko #lib/modules/KVER-ipfire/kernel/sound/isa/snd-es18xx.ko #lib/modules/KVER-ipfire/kernel/sound/isa/snd-opl3sa2.ko @@ -2360,8 +2798,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/sound/pci/au88x0/snd-au8810.ko #lib/modules/KVER-ipfire/kernel/sound/pci/au88x0/snd-au8820.ko #lib/modules/KVER-ipfire/kernel/sound/pci/au88x0/snd-au8830.ko -#lib/modules/KVER-ipfire/kernel/sound/pci/aw2 -#lib/modules/KVER-ipfire/kernel/sound/pci/aw2/snd-aw2.ko #lib/modules/KVER-ipfire/kernel/sound/pci/ca0106 #lib/modules/KVER-ipfire/kernel/sound/pci/ca0106/snd-ca0106.ko #lib/modules/KVER-ipfire/kernel/sound/pci/cs46xx @@ -2449,7 +2885,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/sound/pci/snd-maestro3.ko #lib/modules/KVER-ipfire/kernel/sound/pci/snd-rme32.ko #lib/modules/KVER-ipfire/kernel/sound/pci/snd-rme96.ko -#lib/modules/KVER-ipfire/kernel/sound/pci/snd-sis7019.ko #lib/modules/KVER-ipfire/kernel/sound/pci/snd-sonicvibes.ko #lib/modules/KVER-ipfire/kernel/sound/pci/snd-via82xx-modem.ko #lib/modules/KVER-ipfire/kernel/sound/pci/snd-via82xx.ko @@ -2459,11 +2894,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/sound/pci/vx222/snd-vx222.ko #lib/modules/KVER-ipfire/kernel/sound/pci/ymfpci #lib/modules/KVER-ipfire/kernel/sound/pci/ymfpci/snd-ymfpci.ko -#lib/modules/KVER-ipfire/kernel/sound/pcmcia -#lib/modules/KVER-ipfire/kernel/sound/pcmcia/pdaudiocf -#lib/modules/KVER-ipfire/kernel/sound/pcmcia/pdaudiocf/snd-pdaudiocf.ko -#lib/modules/KVER-ipfire/kernel/sound/pcmcia/vx -#lib/modules/KVER-ipfire/kernel/sound/pcmcia/vx/snd-vxpocket.ko #lib/modules/KVER-ipfire/kernel/sound/soundcore.ko #lib/modules/KVER-ipfire/kernel/sound/synth #lib/modules/KVER-ipfire/kernel/sound/synth/emux @@ -2484,19 +2914,14 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/modules.alias #lib/modules/KVER-ipfire/modules.alias.bin #lib/modules/KVER-ipfire/modules.builtin -#lib/modules/KVER-ipfire/modules.ccwmap +#lib/modules/KVER-ipfire/modules.builtin.bin #lib/modules/KVER-ipfire/modules.dep #lib/modules/KVER-ipfire/modules.dep.bin -#lib/modules/KVER-ipfire/modules.ieee1394map -#lib/modules/KVER-ipfire/modules.inputmap -#lib/modules/KVER-ipfire/modules.isapnpmap -#lib/modules/KVER-ipfire/modules.ofmap +#lib/modules/KVER-ipfire/modules.devname #lib/modules/KVER-ipfire/modules.order -#lib/modules/KVER-ipfire/modules.pcimap -#lib/modules/KVER-ipfire/modules.seriomap +#lib/modules/KVER-ipfire/modules.softdep #lib/modules/KVER-ipfire/modules.symbols #lib/modules/KVER-ipfire/modules.symbols.bin -#lib/modules/KVER-ipfire/modules.usbmap #lib/modules/KVER-ipfire/source sbin/gen_init_cpio boot/ipfirerd-KVER.img diff --git a/config/rootfiles/common/i586/linux-headers b/config/rootfiles/common/i586/linux-headers index e518ab3..6bfdcca 100644 --- a/config/rootfiles/common/i586/linux-headers +++ b/config/rootfiles/common/i586/linux-headers @@ -10,6 +10,7 @@ #usr/include/asm-generic/ioctl.h #usr/include/asm-generic/ioctls.h #usr/include/asm-generic/ipcbuf.h +#usr/include/asm-generic/kvm_para.h #usr/include/asm-generic/mman-common.h #usr/include/asm-generic/mman.h #usr/include/asm-generic/msgbuf.h @@ -60,10 +61,12 @@ #usr/include/asm/msr.h #usr/include/asm/mtrr.h #usr/include/asm/param.h +#usr/include/asm/perf_regs.h #usr/include/asm/poll.h #usr/include/asm/posix_types.h #usr/include/asm/posix_types_32.h #usr/include/asm/posix_types_64.h +#usr/include/asm/posix_types_x32.h #usr/include/asm/prctl.h #usr/include/asm/processor-flags.h #usr/include/asm/ptrace-abi.h @@ -80,6 +83,7 @@ #usr/include/asm/sockios.h #usr/include/asm/stat.h #usr/include/asm/statfs.h +#usr/include/asm/svm.h #usr/include/asm/swab.h #usr/include/asm/termbits.h #usr/include/asm/termios.h @@ -88,20 +92,26 @@ #usr/include/asm/unistd.h #usr/include/asm/unistd_32.h #usr/include/asm/unistd_64.h +#usr/include/asm/unistd_x32.h #usr/include/asm/vm86.h +#usr/include/asm/vmx.h #usr/include/asm/vsyscall.h #usr/include/drm #usr/include/drm/drm.h +#usr/include/drm/drm_fourcc.h #usr/include/drm/drm_mode.h #usr/include/drm/drm_sarea.h +#usr/include/drm/exynos_drm.h #usr/include/drm/i810_drm.h #usr/include/drm/i915_drm.h #usr/include/drm/mga_drm.h #usr/include/drm/nouveau_drm.h +#usr/include/drm/qxl_drm.h #usr/include/drm/r128_drm.h #usr/include/drm/radeon_drm.h #usr/include/drm/savage_drm.h #usr/include/drm/sis_drm.h +#usr/include/drm/tegra_drm.h #usr/include/drm/via_drm.h #usr/include/drm/vmwgfx_drm.h #usr/include/linux @@ -142,11 +152,11 @@ #usr/include/linux/baycom.h #usr/include/linux/bfs_fs.h #usr/include/linux/binfmts.h -#usr/include/linux/blk_types.h #usr/include/linux/blkpg.h #usr/include/linux/blktrace_api.h #usr/include/linux/bpqether.h #usr/include/linux/bsg.h +#usr/include/linux/btrfs.h #usr/include/linux/byteorder #usr/include/linux/byteorder/big_endian.h #usr/include/linux/byteorder/little_endian.h @@ -164,7 +174,6 @@ #usr/include/linux/capi.h #usr/include/linux/cciss_defs.h #usr/include/linux/cciss_ioctl.h -#usr/include/linux/cdk.h #usr/include/linux/cdrom.h #usr/include/linux/cgroupstats.h #usr/include/linux/chio.h @@ -173,7 +182,6 @@ #usr/include/linux/coda.h #usr/include/linux/coda_psdev.h #usr/include/linux/coff.h -#usr/include/linux/comstats.h #usr/include/linux/connector.h #usr/include/linux/const.h #usr/include/linux/cramfs_fs.h @@ -210,7 +218,6 @@ #usr/include/linux/errqueue.h #usr/include/linux/ethtool.h #usr/include/linux/eventpoll.h -#usr/include/linux/ext2_fs.h #usr/include/linux/fadvise.h #usr/include/linux/falloc.h #usr/include/linux/fanotify.h @@ -230,7 +237,6 @@ #usr/include/linux/futex.h #usr/include/linux/gameport.h #usr/include/linux/gen_stats.h -#usr/include/linux/generic_serial.h #usr/include/linux/genetlink.h #usr/include/linux/gfs2_ondisk.h #usr/include/linux/gigaset_dev.h @@ -243,6 +249,9 @@ #usr/include/linux/hiddev.h #usr/include/linux/hidraw.h #usr/include/linux/hpet.h +#usr/include/linux/hsi +#usr/include/linux/hsi/hsi_char.h +#usr/include/linux/hw_breakpoint.h #usr/include/linux/hysdn_if.h #usr/include/linux/i2c-dev.h #usr/include/linux/i2c.h @@ -259,7 +268,6 @@ #usr/include/linux/if_bonding.h #usr/include/linux/if_bridge.h #usr/include/linux/if_cablemodem.h -#usr/include/linux/if_ec.h #usr/include/linux/if_eql.h #usr/include/linux/if_ether.h #usr/include/linux/if_fc.h @@ -276,8 +284,7 @@ #usr/include/linux/if_pppol2tp.h #usr/include/linux/if_pppox.h #usr/include/linux/if_slip.h -#usr/include/linux/if_strip.h -#usr/include/linux/if_tr.h +#usr/include/linux/if_team.h #usr/include/linux/if_tun.h #usr/include/linux/if_tunnel.h #usr/include/linux/if_vlan.h @@ -319,6 +326,7 @@ #usr/include/linux/kernel-page-flags.h #usr/include/linux/kernel.h #usr/include/linux/kernelcapi.h +#usr/include/linux/kexec.h #usr/include/linux/keyboard.h #usr/include/linux/keyctl.h #usr/include/linux/kvm.h @@ -332,7 +340,9 @@ #usr/include/linux/major.h #usr/include/linux/map_to_7segment.h #usr/include/linux/matroxfb.h +#usr/include/linux/mdio.h #usr/include/linux/media.h +#usr/include/linux/mei.h #usr/include/linux/mempolicy.h #usr/include/linux/meye.h #usr/include/linux/mii.h @@ -357,6 +367,7 @@ #usr/include/linux/net.h #usr/include/linux/net_dropmon.h #usr/include/linux/net_tstamp.h +#usr/include/linux/netconf.h #usr/include/linux/netdevice.h #usr/include/linux/netfilter #usr/include/linux/netfilter.h @@ -370,9 +381,13 @@ #usr/include/linux/netfilter/nf_conntrack_sctp.h #usr/include/linux/netfilter/nf_conntrack_tcp.h #usr/include/linux/netfilter/nf_conntrack_tuple_common.h +#usr/include/linux/netfilter/nf_nat.h #usr/include/linux/netfilter/nfnetlink.h +#usr/include/linux/netfilter/nfnetlink_acct.h #usr/include/linux/netfilter/nfnetlink_compat.h #usr/include/linux/netfilter/nfnetlink_conntrack.h +#usr/include/linux/netfilter/nfnetlink_cthelper.h +#usr/include/linux/netfilter/nfnetlink_cttimeout.h #usr/include/linux/netfilter/nfnetlink_log.h #usr/include/linux/netfilter/nfnetlink_queue.h #usr/include/linux/netfilter/x_tables.h @@ -385,6 +400,7 @@ #usr/include/linux/netfilter/xt_DSCP.h #usr/include/linux/netfilter/xt_IDLETIMER.h #usr/include/linux/netfilter/xt_LED.h +#usr/include/linux/netfilter/xt_LOG.h #usr/include/linux/netfilter/xt_MARK.h #usr/include/linux/netfilter/xt_NFLOG.h #usr/include/linux/netfilter/xt_NFQUEUE.h @@ -395,9 +411,11 @@ #usr/include/linux/netfilter/xt_TEE.h #usr/include/linux/netfilter/xt_TPROXY.h #usr/include/linux/netfilter/xt_addrtype.h +#usr/include/linux/netfilter/xt_bpf.h #usr/include/linux/netfilter/xt_cluster.h #usr/include/linux/netfilter/xt_comment.h #usr/include/linux/netfilter/xt_connbytes.h +#usr/include/linux/netfilter/xt_connlabel.h #usr/include/linux/netfilter/xt_connlimit.h #usr/include/linux/netfilter/xt_connmark.h #usr/include/linux/netfilter/xt_conntrack.h @@ -405,6 +423,7 @@ #usr/include/linux/netfilter/xt_dccp.h #usr/include/linux/netfilter/xt_devgroup.h #usr/include/linux/netfilter/xt_dscp.h +#usr/include/linux/netfilter/xt_ecn.h #usr/include/linux/netfilter/xt_esp.h #usr/include/linux/netfilter/xt_hashlimit.h #usr/include/linux/netfilter/xt_helper.h @@ -415,6 +434,7 @@ #usr/include/linux/netfilter/xt_mac.h #usr/include/linux/netfilter/xt_mark.h #usr/include/linux/netfilter/xt_multiport.h +#usr/include/linux/netfilter/xt_nfacct.h #usr/include/linux/netfilter/xt_osf.h #usr/include/linux/netfilter/xt_owner.h #usr/include/linux/netfilter/xt_physdev.h @@ -461,26 +481,22 @@ #usr/include/linux/netfilter_decnet.h #usr/include/linux/netfilter_ipv4 #usr/include/linux/netfilter_ipv4.h -#usr/include/linux/netfilter_ipv4/ip_queue.h #usr/include/linux/netfilter_ipv4/ip_tables.h #usr/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h #usr/include/linux/netfilter_ipv4/ipt_ECN.h #usr/include/linux/netfilter_ipv4/ipt_LOG.h #usr/include/linux/netfilter_ipv4/ipt_REJECT.h -#usr/include/linux/netfilter_ipv4/ipt_SAME.h #usr/include/linux/netfilter_ipv4/ipt_TTL.h #usr/include/linux/netfilter_ipv4/ipt_ULOG.h -#usr/include/linux/netfilter_ipv4/ipt_addrtype.h #usr/include/linux/netfilter_ipv4/ipt_ah.h #usr/include/linux/netfilter_ipv4/ipt_ecn.h -#usr/include/linux/netfilter_ipv4/ipt_realm.h #usr/include/linux/netfilter_ipv4/ipt_ttl.h -#usr/include/linux/netfilter_ipv4/nf_nat.h #usr/include/linux/netfilter_ipv6 #usr/include/linux/netfilter_ipv6.h #usr/include/linux/netfilter_ipv6/ip6_tables.h #usr/include/linux/netfilter_ipv6/ip6t_HL.h #usr/include/linux/netfilter_ipv6/ip6t_LOG.h +#usr/include/linux/netfilter_ipv6/ip6t_NPT.h #usr/include/linux/netfilter_ipv6/ip6t_REJECT.h #usr/include/linux/netfilter_ipv6/ip6t_ah.h #usr/include/linux/netfilter_ipv6/ip6t_frag.h @@ -490,6 +506,7 @@ #usr/include/linux/netfilter_ipv6/ip6t_opts.h #usr/include/linux/netfilter_ipv6/ip6t_rt.h #usr/include/linux/netlink.h +#usr/include/linux/netlink_diag.h #usr/include/linux/netrom.h #usr/include/linux/nfc.h #usr/include/linux/nfs.h @@ -502,6 +519,7 @@ #usr/include/linux/nfs_mount.h #usr/include/linux/nfsacl.h #usr/include/linux/nfsd +#usr/include/linux/nfsd/cld.h #usr/include/linux/nfsd/debug.h #usr/include/linux/nfsd/export.h #usr/include/linux/nfsd/nfsfh.h @@ -512,6 +530,8 @@ #usr/include/linux/omap3isp.h #usr/include/linux/omapfb.h #usr/include/linux/oom.h +#usr/include/linux/openvswitch.h +#usr/include/linux/packet_diag.h #usr/include/linux/param.h #usr/include/linux/parport.h #usr/include/linux/patchkey.h @@ -531,6 +551,7 @@ #usr/include/linux/posix_types.h #usr/include/linux/ppdev.h #usr/include/linux/ppp-comp.h +#usr/include/linux/ppp-ioctl.h #usr/include/linux/ppp_defs.h #usr/include/linux/pps.h #usr/include/linux/prctl.h @@ -559,7 +580,9 @@ #usr/include/linux/scc.h #usr/include/linux/sched.h #usr/include/linux/screen_info.h +#usr/include/linux/sctp.h #usr/include/linux/sdla.h +#usr/include/linux/seccomp.h #usr/include/linux/securebits.h #usr/include/linux/selinux_netlink.h #usr/include/linux/sem.h @@ -571,6 +594,7 @@ #usr/include/linux/signal.h #usr/include/linux/signalfd.h #usr/include/linux/snmp.h +#usr/include/linux/sock_diag.h #usr/include/linux/socket.h #usr/include/linux/sockios.h #usr/include/linux/som.h @@ -589,6 +613,7 @@ #usr/include/linux/swab.h #usr/include/linux/synclink.h #usr/include/linux/sysctl.h +#usr/include/linux/sysinfo.h #usr/include/linux/taskstats.h #usr/include/linux/tc_act #usr/include/linux/tc_act/tc_csum.h @@ -604,6 +629,7 @@ #usr/include/linux/tc_ematch/tc_em_nbyte.h #usr/include/linux/tc_ematch/tc_em_text.h #usr/include/linux/tcp.h +#usr/include/linux/tcp_metrics.h #usr/include/linux/telephony.h #usr/include/linux/termios.h #usr/include/linux/time.h @@ -614,14 +640,17 @@ #usr/include/linux/tipc_config.h #usr/include/linux/toshiba.h #usr/include/linux/tty.h +#usr/include/linux/tty_flags.h #usr/include/linux/types.h #usr/include/linux/udf_fs_i.h #usr/include/linux/udp.h +#usr/include/linux/uhid.h #usr/include/linux/uinput.h #usr/include/linux/uio.h #usr/include/linux/ultrasound.h #usr/include/linux/un.h #usr/include/linux/unistd.h +#usr/include/linux/unix_diag.h #usr/include/linux/usb #usr/include/linux/usb/audio.h #usr/include/linux/usb/cdc.h @@ -636,11 +665,16 @@ #usr/include/linux/usbdevice_fs.h #usr/include/linux/utime.h #usr/include/linux/utsname.h +#usr/include/linux/uuid.h #usr/include/linux/uvcvideo.h +#usr/include/linux/v4l2-common.h +#usr/include/linux/v4l2-controls.h +#usr/include/linux/v4l2-dv-timings.h #usr/include/linux/v4l2-mediabus.h #usr/include/linux/v4l2-subdev.h #usr/include/linux/version.h #usr/include/linux/veth.h +#usr/include/linux/vfio.h #usr/include/linux/vhost.h #usr/include/linux/videodev2.h #usr/include/linux/virtio_9p.h @@ -690,11 +724,14 @@ #usr/include/sound/asequencer.h #usr/include/sound/asound.h #usr/include/sound/asound_fm.h +#usr/include/sound/compress_offload.h +#usr/include/sound/compress_params.h #usr/include/sound/emu10k1.h #usr/include/sound/hdsp.h #usr/include/sound/hdspm.h #usr/include/sound/sb16_csp.h #usr/include/sound/sfnt_info.h +#usr/include/uapi #usr/include/video #usr/include/video/edid.h #usr/include/video/sisfb.h diff --git a/config/rootfiles/common/i586/lm_sensors b/config/rootfiles/common/i586/lm_sensors index 217ac54..f23b97c 100644 --- a/config/rootfiles/common/i586/lm_sensors +++ b/config/rootfiles/common/i586/lm_sensors @@ -8,7 +8,7 @@ usr/bin/sensors-conf-convert #usr/lib/libsensors.a usr/lib/libsensors.so usr/lib/libsensors.so.4 -usr/lib/libsensors.so.4.3.1 +usr/lib/libsensors.so.4.3.2 #usr/man/man1/sensors.1 #usr/man/man3/libsensors.3 #usr/man/man5/sensors.conf.5 diff --git a/config/rootfiles/common/i586/mISDN b/config/rootfiles/common/i586/mISDN deleted file mode 100644 index 4cf067a..0000000 --- a/config/rootfiles/common/i586/mISDN +++ /dev/null @@ -1,23 +0,0 @@ -etc/modprobe.d/mISDN -#lib/modules/2.6.32.15-ipfire/mISDN -#lib/modules/2.6.32.15-ipfire/mISDN/avmfritz.ko -#lib/modules/2.6.32.15-ipfire/mISDN/hfcmulti.ko -#lib/modules/2.6.32.15-ipfire/mISDN/hfcpci.ko -#lib/modules/2.6.32.15-ipfire/mISDN/hfcsusb.ko -#lib/modules/2.6.32.15-ipfire/mISDN/l1oip.ko -#lib/modules/2.6.32.15-ipfire/mISDN/mISDN_core.ko -#lib/modules/2.6.32.15-ipfire/mISDN/mISDN_dsp.ko -#lib/modules/2.6.32.15-ipfire/mISDN/mISDN_dsp_kb1ec.ko -#lib/modules/2.6.32.15-ipfire/mISDN/mISDN_dsp_mec2.ko -#lib/modules/2.6.32.15-ipfire/mISDN/mISDN_dsp_mg2ec.ko -#lib/modules/2.6.32.15-ipfire/mISDN/mISDN_dsp_octwareec.ko -#lib/modules/2.6.32.15-ipfire/mISDN/mISDN_dsp_oslec.ko -#lib/modules/2.6.32.15-ipfire/mISDN/mISDN_l1loop.ko -#lib/modules/2.6.32.15-ipfire/mISDN/mISDNinfineon.ko -#lib/modules/2.6.32.15-ipfire/mISDN/mISDNipac.ko -#lib/modules/2.6.32.15-ipfire/mISDN/mISDNisar.ko -#lib/modules/2.6.32.15-ipfire/mISDN/octvqe -#lib/modules/2.6.32.15-ipfire/mISDN/octvqe/octvqe.ko -#lib/modules/2.6.32.15-ipfire/mISDN/speedfax.ko -#lib/modules/2.6.32.15-ipfire/mISDN/w6692.ko -#lib/modules/2.6.32.15-ipfire/mISDN/xhfc.ko diff --git a/config/rootfiles/common/i586/strongswan-padlock b/config/rootfiles/common/i586/strongswan-padlock index 02aa457..952e7ae 100644 --- a/config/rootfiles/common/i586/strongswan-padlock +++ b/config/rootfiles/common/i586/strongswan-padlock @@ -1 +1,2 @@ +etc/strongswan.d/charon/padlock.conf usr/lib/ipsec/plugins/libstrongswan-padlock.so diff --git a/config/rootfiles/common/i586/util-linux b/config/rootfiles/common/i586/util-linux index f0a2b2b..ea3de18 100644 --- a/config/rootfiles/common/i586/util-linux +++ b/config/rootfiles/common/i586/util-linux @@ -1,17 +1,27 @@ -#bin/arch bin/dmesg +bin/findmnt +bin/lsblk bin/more bin/mount bin/umount -etc/fdprm +bin/wdctl +#etc/fcron.daily +etc/fcron.daily/trim +lib/libblkid.so.1.1.0 +lib/libmount.so.1 +lib/libmount.so.1.1.0 +lib/libuuid.so.1.3.0 sbin/agetty +sbin/blkdiscard sbin/blockdev sbin/cfdisk +sbin/chcpu sbin/ctrlaltdel -#sbin/elvtune sbin/fdisk #sbin/fsck.cramfs sbin/fsck.minix +sbin/fsfreeze +sbin/fstrim sbin/hwclock sbin/losetup sbin/mkfs @@ -19,50 +29,161 @@ sbin/mkfs #sbin/mkfs.cramfs sbin/mkfs.minix sbin/mkswap +sbin/nologin #sbin/pivot_root +sbin/raw sbin/sfdisk +sbin/swaplabel sbin/swapoff sbin/swapon +sbin/switch_root +sbin/wipefs #usr/bin/cal -#usr/bin/chkdupexe +#usr/bin/chrt #usr/bin/col #usr/bin/colcrt #usr/bin/colrm #usr/bin/column #usr/bin/cytune -#usr/bin/ddate -usr/bin/fdformat +usr/bin/eject +usr/bin/fallocate usr/bin/flock usr/bin/getopt #usr/bin/hexdump +#usr/bin/i386 +usr/bin/ionice +#usr/bin/ipcmk #usr/bin/ipcrm #usr/bin/ipcs #usr/bin/isosize -#usr/bin/line +#usr/bin/linux32 +#usr/bin/linux64 usr/bin/logger #usr/bin/look +usr/bin/lscpu +usr/bin/lslocks #usr/bin/mcookie #usr/bin/namei +#usr/bin/nsenter usr/bin/pg -#usr/bin/raw +usr/bin/prlimit usr/bin/rename usr/bin/renice #usr/bin/rev #usr/bin/script -#usr/bin/setfdprm +#usr/bin/scriptreplay +#usr/bin/setarch #usr/bin/setsid #usr/bin/setterm #usr/bin/tailf +#usr/bin/taskset #usr/bin/ul +#usr/bin/unshare #usr/bin/whereis -#usr/bin/write -#usr/sbin/ramsize -usr/sbin/rdev +#usr/include/libmount +#usr/include/libmount/libmount.h +#usr/lib/libblkid.la +#usr/lib/libmount.a +#usr/lib/libmount.la +#usr/lib/libmount.so +#usr/lib/libuuid.la +#usr/lib/pkgconfig/mount.pc +usr/sbin/addpart +usr/sbin/delpart +usr/sbin/fdformat +usr/sbin/ldattach +usr/sbin/partx #usr/sbin/readprofile -#usr/sbin/rootflags -#usr/sbin/tunelp -#usr/sbin/vidmode -#usr/share/info/ipc.info +usr/sbin/resizepart +usr/sbin/rtcwake +usr/share/bash-completion +#usr/share/bash-completion/completions +#usr/share/bash-completion/completions/addpart +#usr/share/bash-completion/completions/blkdiscard +#usr/share/bash-completion/completions/blkid +#usr/share/bash-completion/completions/blockdev +#usr/share/bash-completion/completions/cal +#usr/share/bash-completion/completions/cfdisk +#usr/share/bash-completion/completions/chcpu +#usr/share/bash-completion/completions/chrt +#usr/share/bash-completion/completions/col +#usr/share/bash-completion/completions/colcrt +#usr/share/bash-completion/completions/colrm +#usr/share/bash-completion/completions/column +#usr/share/bash-completion/completions/ctrlaltdel +#usr/share/bash-completion/completions/cytune +#usr/share/bash-completion/completions/delpart +#usr/share/bash-completion/completions/dmesg +#usr/share/bash-completion/completions/eject +#usr/share/bash-completion/completions/fallocate +#usr/share/bash-completion/completions/fdformat +#usr/share/bash-completion/completions/fdisk +#usr/share/bash-completion/completions/findmnt +#usr/share/bash-completion/completions/flock +#usr/share/bash-completion/completions/fsck +#usr/share/bash-completion/completions/fsck.cramfs +#usr/share/bash-completion/completions/fsck.minix +#usr/share/bash-completion/completions/fsfreeze +#usr/share/bash-completion/completions/fstrim +#usr/share/bash-completion/completions/getopt +#usr/share/bash-completion/completions/hexdump +#usr/share/bash-completion/completions/hwclock +#usr/share/bash-completion/completions/ionice +#usr/share/bash-completion/completions/ipcrm +#usr/share/bash-completion/completions/ipcs +#usr/share/bash-completion/completions/isosize +#usr/share/bash-completion/completions/ldattach +#usr/share/bash-completion/completions/logger +#usr/share/bash-completion/completions/look +#usr/share/bash-completion/completions/losetup +#usr/share/bash-completion/completions/lsblk +#usr/share/bash-completion/completions/lscpu +#usr/share/bash-completion/completions/lslocks +#usr/share/bash-completion/completions/mcookie +#usr/share/bash-completion/completions/mesg +#usr/share/bash-completion/completions/mkfs +#usr/share/bash-completion/completions/mkfs.bfs +#usr/share/bash-completion/completions/mkfs.cramfs +#usr/share/bash-completion/completions/mkfs.minix +#usr/share/bash-completion/completions/mkswap +#usr/share/bash-completion/completions/more +#usr/share/bash-completion/completions/mountpoint +#usr/share/bash-completion/completions/namei +#usr/share/bash-completion/completions/nsenter +#usr/share/bash-completion/completions/partx +#usr/share/bash-completion/completions/pg +#usr/share/bash-completion/completions/pivot_root +#usr/share/bash-completion/completions/prlimit +#usr/share/bash-completion/completions/raw +#usr/share/bash-completion/completions/readprofile +#usr/share/bash-completion/completions/rename +#usr/share/bash-completion/completions/renice +#usr/share/bash-completion/completions/resizepart +#usr/share/bash-completion/completions/rev +#usr/share/bash-completion/completions/rtcwake +#usr/share/bash-completion/completions/script +#usr/share/bash-completion/completions/scriptreplay +#usr/share/bash-completion/completions/setarch +#usr/share/bash-completion/completions/setsid +#usr/share/bash-completion/completions/setterm +#usr/share/bash-completion/completions/sfdisk +#usr/share/bash-completion/completions/swaplabel +#usr/share/bash-completion/completions/swapon +#usr/share/bash-completion/completions/tailf +#usr/share/bash-completion/completions/taskset +#usr/share/bash-completion/completions/ul +#usr/share/bash-completion/completions/unshare +#usr/share/bash-completion/completions/utmpdump +#usr/share/bash-completion/completions/uuidd +#usr/share/bash-completion/completions/uuidgen +#usr/share/bash-completion/completions/wall +#usr/share/bash-completion/completions/wdctl +#usr/share/bash-completion/completions/whereis +#usr/share/bash-completion/completions/wipefs +#usr/share/doc/util-linux +#usr/share/doc/util-linux/getopt +#usr/share/doc/util-linux/getopt/getopt-parse.bash +#usr/share/doc/util-linux/getopt/getopt-parse.tcsh #usr/share/locale/ca/LC_MESSAGES/util-linux.mo #usr/share/locale/cs/LC_MESSAGES/util-linux.mo #usr/share/locale/da/LC_MESSAGES/util-linux.mo @@ -71,12 +192,21 @@ usr/sbin/rdev #usr/share/locale/et #usr/share/locale/et/LC_MESSAGES #usr/share/locale/et/LC_MESSAGES/util-linux.mo +#usr/share/locale/eu +#usr/share/locale/eu/LC_MESSAGES +#usr/share/locale/eu/LC_MESSAGES/util-linux.mo #usr/share/locale/fi/LC_MESSAGES/util-linux.mo #usr/share/locale/fr/LC_MESSAGES/util-linux.mo +#usr/share/locale/gl/LC_MESSAGES/util-linux.mo +#usr/share/locale/hr/LC_MESSAGES/util-linux.mo +#usr/share/locale/hu/LC_MESSAGES/util-linux.mo +#usr/share/locale/id/LC_MESSAGES/util-linux.mo #usr/share/locale/it/LC_MESSAGES/util-linux.mo #usr/share/locale/ja/LC_MESSAGES/util-linux.mo #usr/share/locale/nl/LC_MESSAGES/util-linux.mo +#usr/share/locale/pl/LC_MESSAGES/util-linux.mo #usr/share/locale/pt_BR/LC_MESSAGES/util-linux.mo +#usr/share/locale/ru/LC_MESSAGES/util-linux.mo #usr/share/locale/sl #usr/share/locale/sl/LC_MESSAGES #usr/share/locale/sl/LC_MESSAGES/util-linux.mo @@ -85,72 +215,92 @@ usr/sbin/rdev #usr/share/locale/uk #usr/share/locale/uk/LC_MESSAGES #usr/share/locale/uk/LC_MESSAGES/util-linux.mo -#usr/share/man/man1/arch.1 +#usr/share/locale/vi/LC_MESSAGES/util-linux.mo +#usr/share/locale/zh_CN/LC_MESSAGES/util-linux.mo +#usr/share/locale/zh_TW/LC_MESSAGES/util-linux.mo #usr/share/man/man1/cal.1 -#usr/share/man/man1/chkdupexe.1 +#usr/share/man/man1/chrt.1 #usr/share/man/man1/col.1 #usr/share/man/man1/colcrt.1 #usr/share/man/man1/colrm.1 #usr/share/man/man1/column.1 -#usr/share/man/man1/ddate.1 +#usr/share/man/man1/dmesg.1 +#usr/share/man/man1/eject.1 +#usr/share/man/man1/fallocate.1 #usr/share/man/man1/flock.1 #usr/share/man/man1/getopt.1 #usr/share/man/man1/hexdump.1 -#usr/share/man/man1/line.1 +#usr/share/man/man1/ionice.1 +#usr/share/man/man1/ipcmk.1 +#usr/share/man/man1/ipcrm.1 +#usr/share/man/man1/ipcs.1 #usr/share/man/man1/look.1 +#usr/share/man/man1/lscpu.1 #usr/share/man/man1/mcookie.1 #usr/share/man/man1/more.1 #usr/share/man/man1/namei.1 +#usr/share/man/man1/nsenter.1 #usr/share/man/man1/pg.1 -#usr/share/man/man1/readprofile.1 +#usr/share/man/man1/prlimit.1 #usr/share/man/man1/rename.1 +#usr/share/man/man1/renice.1 #usr/share/man/man1/rev.1 #usr/share/man/man1/script.1 +#usr/share/man/man1/scriptreplay.1 +#usr/share/man/man1/setsid.1 #usr/share/man/man1/setterm.1 #usr/share/man/man1/tailf.1 +#usr/share/man/man1/taskset.1 #usr/share/man/man1/ul.1 +#usr/share/man/man1/unshare.1 #usr/share/man/man1/whereis.1 -#usr/share/man/man1/write.1 +#usr/share/man/man3/uuid_generate_time_safe.3 #usr/share/man/man5/fstab.5 -#usr/share/man/man5/nfs.5 +#usr/share/man/man8/addpart.8 #usr/share/man/man8/agetty.8 +#usr/share/man/man8/blkdiscard.8 #usr/share/man/man8/blockdev.8 #usr/share/man/man8/cfdisk.8 +#usr/share/man/man8/chcpu.8 #usr/share/man/man8/ctrlaltdel.8 #usr/share/man/man8/cytune.8 -#usr/share/man/man8/dmesg.8 -#usr/share/man/man8/elvtune.8 +#usr/share/man/man8/delpart.8 #usr/share/man/man8/fdformat.8 #usr/share/man/man8/fdisk.8 +#usr/share/man/man8/findmnt.8 +#usr/share/man/man8/fsck.cramfs.8 #usr/share/man/man8/fsck.minix.8 +#usr/share/man/man8/fsfreeze.8 +#usr/share/man/man8/fstrim.8 #usr/share/man/man8/hwclock.8 -#usr/share/man/man8/ipcrm.8 -#usr/share/man/man8/ipcs.8 +#usr/share/man/man8/i386.8 #usr/share/man/man8/isosize.8 +#usr/share/man/man8/ldattach.8 +#usr/share/man/man8/linux32.8 +#usr/share/man/man8/linux64.8 #usr/share/man/man8/losetup.8 +#usr/share/man/man8/lsblk.8 +#usr/share/man/man8/lslocks.8 #usr/share/man/man8/mkfs.8 #usr/share/man/man8/mkfs.bfs.8 +#usr/share/man/man8/mkfs.cramfs.8 #usr/share/man/man8/mkfs.minix.8 #usr/share/man/man8/mkswap.8 #usr/share/man/man8/mount.8 +#usr/share/man/man8/nologin.8 +#usr/share/man/man8/partx.8 #usr/share/man/man8/pivot_root.8 -#usr/share/man/man8/ramsize.8 #usr/share/man/man8/raw.8 -#usr/share/man/man8/rdev.8 -#usr/share/man/man8/renice.8 -#usr/share/man/man8/rootflags.8 -#usr/share/man/man8/setfdprm.8 -#usr/share/man/man8/setsid.8 +#usr/share/man/man8/readprofile.8 +#usr/share/man/man8/resizepart.8 +#usr/share/man/man8/rtcwake.8 +#usr/share/man/man8/setarch.8 #usr/share/man/man8/sfdisk.8 -#usr/share/man/man8/sln.8 +#usr/share/man/man8/swaplabel.8 #usr/share/man/man8/swapoff.8 #usr/share/man/man8/swapon.8 -#usr/share/man/man8/tunelp.8 +#usr/share/man/man8/switch_root.8 #usr/share/man/man8/umount.8 -#usr/share/man/man8/vidmode.8 -#usr/share/misc/getopt -#usr/share/misc/getopt/getopt-parse.bash -#usr/share/misc/getopt/getopt-parse.tcsh -#usr/share/misc/getopt/getopt-test.bash -#usr/share/misc/getopt/getopt-test.tcsh -var/lib/hwclock +#usr/share/man/man8/wdctl.8 +#usr/share/man/man8/wipefs.8 + diff --git a/config/rootfiles/common/iptables b/config/rootfiles/common/iptables index 39225a4..a0f1290 100644 --- a/config/rootfiles/common/iptables +++ b/config/rootfiles/common/iptables @@ -16,12 +16,19 @@ lib/libiptc.so.0 lib/libiptc.so.0.0.0 #lib/libxtables.la lib/libxtables.so -lib/libxtables.so.7 -lib/libxtables.so.7.0.0 +lib/libxtables.so.10 +lib/libxtables.so.10.0.0 lib/xtables +#lib/xtables/libip6t_DNAT.so +#lib/xtables/libip6t_DNPT.so #lib/xtables/libip6t_HL.so #lib/xtables/libip6t_LOG.so +#lib/xtables/libip6t_MASQUERADE.so +#lib/xtables/libip6t_NETMAP.so +#lib/xtables/libip6t_REDIRECT.so #lib/xtables/libip6t_REJECT.so +#lib/xtables/libip6t_SNAT.so +#lib/xtables/libip6t_SNPT.so #lib/xtables/libip6t_ah.so #lib/xtables/libip6t_dst.so #lib/xtables/libip6t_eui64.so @@ -58,6 +65,7 @@ lib/xtables #lib/xtables/libxt_CONNSECMARK.so #lib/xtables/libxt_CT.so #lib/xtables/libxt_DSCP.so +#lib/xtables/libxt_HMARK.so #lib/xtables/libxt_IDLETIMER.so #lib/xtables/libxt_IMQ.so #lib/xtables/libxt_LED.so @@ -68,6 +76,7 @@ lib/xtables #lib/xtables/libxt_RATEEST.so #lib/xtables/libxt_SECMARK.so #lib/xtables/libxt_SET.so +#lib/xtables/libxt_SYNPROXY.so #lib/xtables/libxt_TCPMSS.so #lib/xtables/libxt_TCPOPTSTRIP.so #lib/xtables/libxt_TEE.so @@ -75,6 +84,7 @@ lib/xtables #lib/xtables/libxt_TPROXY.so #lib/xtables/libxt_TRACE.so #lib/xtables/libxt_addrtype.so +#lib/xtables/libxt_bpf.so #lib/xtables/libxt_cluster.so #lib/xtables/libxt_comment.so #lib/xtables/libxt_connbytes.so @@ -128,9 +138,6 @@ sbin/iptables-restore sbin/iptables-save sbin/iptables-xml sbin/xtables-multi -#usr/include/iptables -#usr/include/iptables.h -#usr/include/iptables/internal.h #usr/include/libipq.h #usr/include/libiptc #usr/include/libiptc/ipt_kernel_headers.h @@ -138,8 +145,6 @@ sbin/xtables-multi #usr/include/libiptc/libiptc.h #usr/include/libiptc/libxtc.h #usr/include/libiptc/xtcshared.h -#usr/include/libipulog -#usr/include/libipulog/libipulog.h #usr/include/libnetfilter_conntrack #usr/include/libnetfilter_conntrack/libnetfilter_conntrack.h #usr/include/libnetfilter_conntrack/libnetfilter_conntrack_dccp.h @@ -153,36 +158,13 @@ sbin/xtables-multi #usr/include/libnetfilter_cttimeout #usr/include/libnetfilter_cttimeout/libnetfilter_cttimeout.h #usr/include/libnetfilter_queue -#usr/include/libnetfilter_queue/libipq.h #usr/include/libnetfilter_queue/libnetfilter_queue.h #usr/include/libnetfilter_queue/linux_nfnetlink_queue.h #usr/include/libnfnetlink #usr/include/libnfnetlink/libnfnetlink.h #usr/include/libnfnetlink/linux_nfnetlink.h #usr/include/libnfnetlink/linux_nfnetlink_compat.h -#usr/include/linux/netfilter/Kbuild -#usr/include/linux/netfilter/ipset/Kbuild -#usr/include/linux/netfilter/ipset/ip_set_ahash.h -#usr/include/linux/netfilter/ipset/ip_set_getport.h -#usr/include/linux/netfilter/ipset/ip_set_timeout.h -#usr/include/linux/netfilter/ipset/pfxlen.h -#usr/include/linux/netfilter/nf_conntrack_amanda.h -#usr/include/linux/netfilter/nf_conntrack_dccp.h -#usr/include/linux/netfilter/nf_conntrack_h323.h -#usr/include/linux/netfilter/nf_conntrack_h323_asn1.h -#usr/include/linux/netfilter/nf_conntrack_h323_types.h -#usr/include/linux/netfilter/nf_conntrack_irc.h -#usr/include/linux/netfilter/nf_conntrack_pptp.h -#usr/include/linux/netfilter/nf_conntrack_proto_gre.h -#usr/include/linux/netfilter/nf_conntrack_sane.h -#usr/include/linux/netfilter/nf_conntrack_sip.h -#usr/include/linux/netfilter/nf_conntrack_snmp.h -#usr/include/linux/netfilter/nf_conntrack_tftp.h -#usr/include/linux/netfilter/xt_IMQ.h -#usr/include/linux/netfilter/xt_layer7.h -#usr/include/net/netfilter -#usr/include/net/netfilter/nf_conntrack_tuple.h -#usr/include/net/netfilter/nf_nat.h +#usr/include/xtables-version.h #usr/include/xtables.h #usr/lib/libnetfilter_conntrack.la usr/lib/libnetfilter_conntrack.so @@ -192,16 +174,10 @@ usr/lib/libnetfilter_conntrack.so.3.4.0 usr/lib/libnetfilter_cttimeout.so usr/lib/libnetfilter_cttimeout.so.1 usr/lib/libnetfilter_cttimeout.so.1.0.0 -#usr/lib/libnetfilter_queue.a #usr/lib/libnetfilter_queue.la usr/lib/libnetfilter_queue.so usr/lib/libnetfilter_queue.so.1 -usr/lib/libnetfilter_queue.so.1.1.0 -#usr/lib/libnetfilter_queue_libipq.a -#usr/lib/libnetfilter_queue_libipq.la -usr/lib/libnetfilter_queue_libipq.so -usr/lib/libnetfilter_queue_libipq.so.1 -usr/lib/libnetfilter_queue_libipq.so.1.0.0 +usr/lib/libnetfilter_queue.so.1.2.0 #usr/lib/libnfnetlink.a #usr/lib/libnfnetlink.la usr/lib/libnfnetlink.so @@ -231,6 +207,7 @@ usr/lib/libnfnetlink.so.0.2.0 #usr/share/man/man8/ip6tables-restore.8 #usr/share/man/man8/ip6tables-save.8 #usr/share/man/man8/ip6tables.8 +#usr/share/man/man8/iptables-extensions.8 #usr/share/man/man8/iptables-restore.8 #usr/share/man/man8/iptables-save.8 #usr/share/man/man8/iptables.8 diff --git a/config/rootfiles/common/jquery b/config/rootfiles/common/jquery new file mode 100644 index 0000000..cb55288 --- /dev/null +++ b/config/rootfiles/common/jquery @@ -0,0 +1 @@ +srv/web/ipfire/html/include/jquery.js diff --git a/config/rootfiles/common/kmod b/config/rootfiles/common/kmod new file mode 100644 index 0000000..14e7654 --- /dev/null +++ b/config/rootfiles/common/kmod @@ -0,0 +1,13 @@ +bin/kmod +sbin/depmod +sbin/insmod +sbin/lsmod +sbin/modinfo +sbin/modprobe +sbin/rmmod +#usr/include/libkmod.h +#usr/lib/libkmod.la +usr/lib/libkmod.so +usr/lib/libkmod.so.2 +usr/lib/libkmod.so.2.2.3 +#usr/lib/pkgconfig/libkmod.pc diff --git a/config/rootfiles/common/libnl b/config/rootfiles/common/libnl index 2beb800..960e1c8 100644 --- a/config/rootfiles/common/libnl +++ b/config/rootfiles/common/libnl @@ -53,7 +53,8 @@ #usr/include/netlink/socket.h #usr/include/netlink/types.h #usr/include/netlink/utils.h +#usr/lib/libnl.a usr/lib/libnl.so usr/lib/libnl.so.1 -usr/lib/libnl.so.1.1 +usr/lib/libnl.so.1.1.4 #usr/lib/pkgconfig/libnl-1.pc diff --git a/config/rootfiles/common/libusbx b/config/rootfiles/common/libusbx new file mode 100644 index 0000000..62d6492 --- /dev/null +++ b/config/rootfiles/common/libusbx @@ -0,0 +1,8 @@ +#usr/include/libusb-1.0 +#usr/include/libusb-1.0/libusb.h +#usr/lib/libusb-1.0.a +#usr/lib/libusb-1.0.la +#usr/lib/libusb-1.0.so +usr/lib/libusb-1.0.so.0 +usr/lib/libusb-1.0.so.0.1.0 +#usr/lib/pkgconfig/libusb-1.0.pc diff --git a/config/rootfiles/common/libxml2 b/config/rootfiles/common/libxml2 index ea2eb77..07c1edd 100644 --- a/config/rootfiles/common/libxml2 +++ b/config/rootfiles/common/libxml2 @@ -54,7 +54,7 @@ #usr/lib/libxml2.la usr/lib/libxml2.so usr/lib/libxml2.so.2 -usr/lib/libxml2.so.2.6.26 +usr/lib/libxml2.so.2.6.32 #usr/lib/pkgconfig/libxml-2.0.pc usr/lib/python2.7/site-packages/drv_libxml2.py usr/lib/python2.7/site-packages/libxml2.py @@ -62,219 +62,217 @@ usr/lib/python2.7/site-packages/libxml2.py #usr/lib/python2.7/site-packages/libxml2mod.la usr/lib/python2.7/site-packages/libxml2mod.so #usr/lib/xml2Conf.sh -#usr/man/man1/xml2-config.1 -#usr/man/man1/xmlcatalog.1 -#usr/man/man1/xmllint.1 -#usr/man/man3/libxml.3 #usr/share/aclocal/libxml.m4 -#usr/share/doc/libxml2-2.6.26 -#usr/share/doc/libxml2-2.6.26/Copyright -#usr/share/doc/libxml2-2.6.26/examples -#usr/share/doc/libxml2-2.6.26/examples/testHTML.c -#usr/share/doc/libxml2-2.6.26/examples/testSAX.c -#usr/share/doc/libxml2-2.6.26/examples/testXPath.c -#usr/share/doc/libxml2-2.6.26/examples/xmllint.c -#usr/share/doc/libxml2-2.6.26/html -#usr/share/doc/libxml2-2.6.26/html/DOM.gif -#usr/share/doc/libxml2-2.6.26/html/FAQ.html -#usr/share/doc/libxml2-2.6.26/html/Libxml2-Logo-180x168.gif -#usr/share/doc/libxml2-2.6.26/html/Libxml2-Logo-90x34.gif -#usr/share/doc/libxml2-2.6.26/html/encoding.html -#usr/share/doc/libxml2-2.6.26/html/examples.xml -#usr/share/doc/libxml2-2.6.26/html/examples.xsl -#usr/share/doc/libxml2-2.6.26/html/html -#usr/share/doc/libxml2-2.6.26/html/html/book1.html -#usr/share/doc/libxml2-2.6.26/html/html/home.png -#usr/share/doc/libxml2-2.6.26/html/html/index.html -#usr/share/doc/libxml2-2.6.26/html/html/left.png -#usr/share/doc/libxml2-2.6.26/html/html/libxml-DOCBparser.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-HTMLparser.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-HTMLtree.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-SAX.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-SAX2.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-c14n.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-catalog.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-chvalid.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-debugXML.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-dict.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-encoding.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-entities.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-globals.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-hash.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-lib.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-list.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-nanoftp.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-nanohttp.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-parser.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-parserInternals.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-pattern.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-relaxng.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-schemasInternals.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-schematron.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-threads.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-tree.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-uri.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-valid.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-xinclude.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-xlink.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-xmlIO.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-xmlautomata.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-xmlerror.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-xmlexports.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-xmlmemory.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-xmlmodule.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-xmlreader.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-xmlregexp.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-xmlsave.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-xmlschemas.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-xmlschemastypes.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-xmlstring.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-xmlunicode.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-xmlversion.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-xmlwriter.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-xpath.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-xpathInternals.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-xpointer.html -#usr/share/doc/libxml2-2.6.26/html/html/right.png -#usr/share/doc/libxml2-2.6.26/html/html/up.png -#usr/share/doc/libxml2-2.6.26/html/io1.c -#usr/share/doc/libxml2-2.6.26/html/io1.res -#usr/share/doc/libxml2-2.6.26/html/io2.c -#usr/share/doc/libxml2-2.6.26/html/io2.res -#usr/share/doc/libxml2-2.6.26/html/libxml.gif -#usr/share/doc/libxml2-2.6.26/html/parse1.c -#usr/share/doc/libxml2-2.6.26/html/parse2.c -#usr/share/doc/libxml2-2.6.26/html/parse3.c -#usr/share/doc/libxml2-2.6.26/html/parse4.c -#usr/share/doc/libxml2-2.6.26/html/reader1.c -#usr/share/doc/libxml2-2.6.26/html/reader1.res -#usr/share/doc/libxml2-2.6.26/html/reader2.c -#usr/share/doc/libxml2-2.6.26/html/reader3.c -#usr/share/doc/libxml2-2.6.26/html/reader3.res -#usr/share/doc/libxml2-2.6.26/html/reader4.c -#usr/share/doc/libxml2-2.6.26/html/reader4.res -#usr/share/doc/libxml2-2.6.26/html/redhat.gif -#usr/share/doc/libxml2-2.6.26/html/smallfootonly.gif -#usr/share/doc/libxml2-2.6.26/html/structure.gif -#usr/share/doc/libxml2-2.6.26/html/test1.xml -#usr/share/doc/libxml2-2.6.26/html/test2.xml -#usr/share/doc/libxml2-2.6.26/html/test3.xml -#usr/share/doc/libxml2-2.6.26/html/testWriter.c -#usr/share/doc/libxml2-2.6.26/html/tree1.c -#usr/share/doc/libxml2-2.6.26/html/tree1.res -#usr/share/doc/libxml2-2.6.26/html/tree2.c -#usr/share/doc/libxml2-2.6.26/html/tree2.res -#usr/share/doc/libxml2-2.6.26/html/tst.xml -#usr/share/doc/libxml2-2.6.26/html/tutorial -#usr/share/doc/libxml2-2.6.26/html/tutorial/apa.html -#usr/share/doc/libxml2-2.6.26/html/tutorial/apb.html -#usr/share/doc/libxml2-2.6.26/html/tutorial/apc.html -#usr/share/doc/libxml2-2.6.26/html/tutorial/apd.html -#usr/share/doc/libxml2-2.6.26/html/tutorial/ape.html -#usr/share/doc/libxml2-2.6.26/html/tutorial/apf.html -#usr/share/doc/libxml2-2.6.26/html/tutorial/apg.html -#usr/share/doc/libxml2-2.6.26/html/tutorial/aph.html -#usr/share/doc/libxml2-2.6.26/html/tutorial/api.html -#usr/share/doc/libxml2-2.6.26/html/tutorial/ar01s02.html -#usr/share/doc/libxml2-2.6.26/html/tutorial/ar01s03.html -#usr/share/doc/libxml2-2.6.26/html/tutorial/ar01s04.html -#usr/share/doc/libxml2-2.6.26/html/tutorial/ar01s05.html -#usr/share/doc/libxml2-2.6.26/html/tutorial/ar01s06.html -#usr/share/doc/libxml2-2.6.26/html/tutorial/ar01s07.html -#usr/share/doc/libxml2-2.6.26/html/tutorial/ar01s08.html -#usr/share/doc/libxml2-2.6.26/html/tutorial/ar01s09.html -#usr/share/doc/libxml2-2.6.26/html/tutorial/images -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/blank.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/callouts -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/callouts/1.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/callouts/10.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/callouts/2.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/callouts/3.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/callouts/4.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/callouts/5.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/callouts/6.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/callouts/7.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/callouts/8.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/callouts/9.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/caution.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/draft.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/home.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/important.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/next.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/note.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/prev.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/tip.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/toc-blank.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/toc-minus.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/toc-plus.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/up.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/warning.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/includeaddattribute.c -#usr/share/doc/libxml2-2.6.26/html/tutorial/includeaddkeyword.c -#usr/share/doc/libxml2-2.6.26/html/tutorial/includeconvert.c -#usr/share/doc/libxml2-2.6.26/html/tutorial/includegetattribute.c -#usr/share/doc/libxml2-2.6.26/html/tutorial/includekeyword.c -#usr/share/doc/libxml2-2.6.26/html/tutorial/includexpath.c -#usr/share/doc/libxml2-2.6.26/html/tutorial/index.html -#usr/share/doc/libxml2-2.6.26/html/tutorial/ix01.html -#usr/share/doc/libxml2-2.6.26/html/tutorial/xmltutorial.pdf -#usr/share/doc/libxml2-2.6.26/html/w3c.png -#usr/share/doc/libxml2-2.6.26/html/writer.xml -#usr/share/doc/libxml2-2.6.26/html/xml.html -#usr/share/doc/libxml2-2.6.26/html/xpath1.c -#usr/share/doc/libxml2-2.6.26/html/xpath1.res -#usr/share/doc/libxml2-2.6.26/html/xpath2.c -#usr/share/doc/libxml2-2.6.26/html/xpath2.res -#usr/share/doc/libxml2-python-2.6.26 -#usr/share/doc/libxml2-python-2.6.26/TODO -#usr/share/doc/libxml2-python-2.6.26/examples -#usr/share/doc/libxml2-python-2.6.26/examples/attribs.py -#usr/share/doc/libxml2-python-2.6.26/examples/build.py -#usr/share/doc/libxml2-python-2.6.26/examples/ctxterror.py -#usr/share/doc/libxml2-python-2.6.26/examples/cutnpaste.py -#usr/share/doc/libxml2-python-2.6.26/examples/dtdvalid.py -#usr/share/doc/libxml2-python-2.6.26/examples/error.py -#usr/share/doc/libxml2-python-2.6.26/examples/inbuf.py -#usr/share/doc/libxml2-python-2.6.26/examples/indexes.py -#usr/share/doc/libxml2-python-2.6.26/examples/invalid.xml -#usr/share/doc/libxml2-python-2.6.26/examples/nsdel.py -#usr/share/doc/libxml2-python-2.6.26/examples/outbuf.py -#usr/share/doc/libxml2-python-2.6.26/examples/push.py -#usr/share/doc/libxml2-python-2.6.26/examples/pushSAX.py -#usr/share/doc/libxml2-python-2.6.26/examples/pushSAXhtml.py -#usr/share/doc/libxml2-python-2.6.26/examples/reader.py -#usr/share/doc/libxml2-python-2.6.26/examples/reader2.py -#usr/share/doc/libxml2-python-2.6.26/examples/reader3.py -#usr/share/doc/libxml2-python-2.6.26/examples/reader4.py -#usr/share/doc/libxml2-python-2.6.26/examples/reader5.py -#usr/share/doc/libxml2-python-2.6.26/examples/reader6.py -#usr/share/doc/libxml2-python-2.6.26/examples/reader7.py -#usr/share/doc/libxml2-python-2.6.26/examples/reader8.py -#usr/share/doc/libxml2-python-2.6.26/examples/readererr.py -#usr/share/doc/libxml2-python-2.6.26/examples/readernext.py -#usr/share/doc/libxml2-python-2.6.26/examples/regexp.py -#usr/share/doc/libxml2-python-2.6.26/examples/relaxng.py -#usr/share/doc/libxml2-python-2.6.26/examples/resolver.py -#usr/share/doc/libxml2-python-2.6.26/examples/schema.py -#usr/share/doc/libxml2-python-2.6.26/examples/serialize.py -#usr/share/doc/libxml2-python-2.6.26/examples/sync.py -#usr/share/doc/libxml2-python-2.6.26/examples/test.dtd -#usr/share/doc/libxml2-python-2.6.26/examples/thread2.py -#usr/share/doc/libxml2-python-2.6.26/examples/tst.py -#usr/share/doc/libxml2-python-2.6.26/examples/tst.xml -#usr/share/doc/libxml2-python-2.6.26/examples/tstLastError.py -#usr/share/doc/libxml2-python-2.6.26/examples/tstURI.py -#usr/share/doc/libxml2-python-2.6.26/examples/tstmem.py -#usr/share/doc/libxml2-python-2.6.26/examples/tstxpath.py -#usr/share/doc/libxml2-python-2.6.26/examples/valid.xml -#usr/share/doc/libxml2-python-2.6.26/examples/validDTD.py -#usr/share/doc/libxml2-python-2.6.26/examples/validRNG.py -#usr/share/doc/libxml2-python-2.6.26/examples/validSchemas.py -#usr/share/doc/libxml2-python-2.6.26/examples/validate.py -#usr/share/doc/libxml2-python-2.6.26/examples/walker.py -#usr/share/doc/libxml2-python-2.6.26/examples/xpath.py -#usr/share/doc/libxml2-python-2.6.26/examples/xpathext.py -#usr/share/doc/libxml2-python-2.6.26/examples/xpathret.py +#usr/share/doc/libxml2-2.6.32 +#usr/share/doc/libxml2-2.6.32/Copyright +#usr/share/doc/libxml2-2.6.32/examples +#usr/share/doc/libxml2-2.6.32/examples/testHTML.c +#usr/share/doc/libxml2-2.6.32/examples/testSAX.c +#usr/share/doc/libxml2-2.6.32/examples/testXPath.c +#usr/share/doc/libxml2-2.6.32/examples/xmllint.c +#usr/share/doc/libxml2-2.6.32/html +#usr/share/doc/libxml2-2.6.32/html/DOM.gif +#usr/share/doc/libxml2-2.6.32/html/FAQ.html +#usr/share/doc/libxml2-2.6.32/html/Libxml2-Logo-180x168.gif +#usr/share/doc/libxml2-2.6.32/html/Libxml2-Logo-90x34.gif +#usr/share/doc/libxml2-2.6.32/html/encoding.html +#usr/share/doc/libxml2-2.6.32/html/examples.xml +#usr/share/doc/libxml2-2.6.32/html/examples.xsl +#usr/share/doc/libxml2-2.6.32/html/html +#usr/share/doc/libxml2-2.6.32/html/html/book1.html +#usr/share/doc/libxml2-2.6.32/html/html/home.png +#usr/share/doc/libxml2-2.6.32/html/html/index.html +#usr/share/doc/libxml2-2.6.32/html/html/left.png +#usr/share/doc/libxml2-2.6.32/html/html/libxml-DOCBparser.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-HTMLparser.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-HTMLtree.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-SAX.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-SAX2.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-c14n.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-catalog.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-chvalid.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-debugXML.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-dict.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-encoding.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-entities.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-globals.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-hash.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-lib.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-list.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-nanoftp.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-nanohttp.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-parser.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-parserInternals.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-pattern.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-relaxng.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-schemasInternals.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-schematron.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-threads.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-tree.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-uri.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-valid.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-xinclude.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-xlink.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-xmlIO.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-xmlautomata.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-xmlerror.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-xmlexports.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-xmlmemory.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-xmlmodule.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-xmlreader.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-xmlregexp.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-xmlsave.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-xmlschemas.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-xmlschemastypes.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-xmlstring.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-xmlunicode.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-xmlversion.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-xmlwriter.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-xpath.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-xpathInternals.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-xpointer.html +#usr/share/doc/libxml2-2.6.32/html/html/right.png +#usr/share/doc/libxml2-2.6.32/html/html/up.png +#usr/share/doc/libxml2-2.6.32/html/io1.c +#usr/share/doc/libxml2-2.6.32/html/io1.res +#usr/share/doc/libxml2-2.6.32/html/io2.c +#usr/share/doc/libxml2-2.6.32/html/io2.res +#usr/share/doc/libxml2-2.6.32/html/libxml.gif +#usr/share/doc/libxml2-2.6.32/html/parse1.c +#usr/share/doc/libxml2-2.6.32/html/parse2.c +#usr/share/doc/libxml2-2.6.32/html/parse3.c +#usr/share/doc/libxml2-2.6.32/html/parse4.c +#usr/share/doc/libxml2-2.6.32/html/reader1.c +#usr/share/doc/libxml2-2.6.32/html/reader1.res +#usr/share/doc/libxml2-2.6.32/html/reader2.c +#usr/share/doc/libxml2-2.6.32/html/reader3.c +#usr/share/doc/libxml2-2.6.32/html/reader3.res +#usr/share/doc/libxml2-2.6.32/html/reader4.c +#usr/share/doc/libxml2-2.6.32/html/reader4.res +#usr/share/doc/libxml2-2.6.32/html/redhat.gif +#usr/share/doc/libxml2-2.6.32/html/smallfootonly.gif +#usr/share/doc/libxml2-2.6.32/html/structure.gif +#usr/share/doc/libxml2-2.6.32/html/test1.xml +#usr/share/doc/libxml2-2.6.32/html/test2.xml +#usr/share/doc/libxml2-2.6.32/html/test3.xml +#usr/share/doc/libxml2-2.6.32/html/testWriter.c +#usr/share/doc/libxml2-2.6.32/html/tree1.c +#usr/share/doc/libxml2-2.6.32/html/tree1.res +#usr/share/doc/libxml2-2.6.32/html/tree2.c +#usr/share/doc/libxml2-2.6.32/html/tree2.res +#usr/share/doc/libxml2-2.6.32/html/tst.xml +#usr/share/doc/libxml2-2.6.32/html/tutorial +#usr/share/doc/libxml2-2.6.32/html/tutorial/apa.html +#usr/share/doc/libxml2-2.6.32/html/tutorial/apb.html +#usr/share/doc/libxml2-2.6.32/html/tutorial/apc.html +#usr/share/doc/libxml2-2.6.32/html/tutorial/apd.html +#usr/share/doc/libxml2-2.6.32/html/tutorial/ape.html +#usr/share/doc/libxml2-2.6.32/html/tutorial/apf.html +#usr/share/doc/libxml2-2.6.32/html/tutorial/apg.html +#usr/share/doc/libxml2-2.6.32/html/tutorial/aph.html +#usr/share/doc/libxml2-2.6.32/html/tutorial/api.html +#usr/share/doc/libxml2-2.6.32/html/tutorial/ar01s02.html +#usr/share/doc/libxml2-2.6.32/html/tutorial/ar01s03.html +#usr/share/doc/libxml2-2.6.32/html/tutorial/ar01s04.html +#usr/share/doc/libxml2-2.6.32/html/tutorial/ar01s05.html +#usr/share/doc/libxml2-2.6.32/html/tutorial/ar01s06.html +#usr/share/doc/libxml2-2.6.32/html/tutorial/ar01s07.html +#usr/share/doc/libxml2-2.6.32/html/tutorial/ar01s08.html +#usr/share/doc/libxml2-2.6.32/html/tutorial/ar01s09.html +#usr/share/doc/libxml2-2.6.32/html/tutorial/images +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/blank.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/callouts +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/callouts/1.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/callouts/10.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/callouts/2.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/callouts/3.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/callouts/4.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/callouts/5.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/callouts/6.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/callouts/7.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/callouts/8.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/callouts/9.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/caution.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/draft.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/home.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/important.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/next.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/note.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/prev.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/tip.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/toc-blank.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/toc-minus.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/toc-plus.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/up.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/warning.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/includeaddattribute.c +#usr/share/doc/libxml2-2.6.32/html/tutorial/includeaddkeyword.c +#usr/share/doc/libxml2-2.6.32/html/tutorial/includeconvert.c +#usr/share/doc/libxml2-2.6.32/html/tutorial/includegetattribute.c +#usr/share/doc/libxml2-2.6.32/html/tutorial/includekeyword.c +#usr/share/doc/libxml2-2.6.32/html/tutorial/includexpath.c +#usr/share/doc/libxml2-2.6.32/html/tutorial/index.html +#usr/share/doc/libxml2-2.6.32/html/tutorial/ix01.html +#usr/share/doc/libxml2-2.6.32/html/tutorial/xmltutorial.pdf +#usr/share/doc/libxml2-2.6.32/html/w3c.png +#usr/share/doc/libxml2-2.6.32/html/writer.xml +#usr/share/doc/libxml2-2.6.32/html/xml.html +#usr/share/doc/libxml2-2.6.32/html/xpath1.c +#usr/share/doc/libxml2-2.6.32/html/xpath1.res +#usr/share/doc/libxml2-2.6.32/html/xpath2.c +#usr/share/doc/libxml2-2.6.32/html/xpath2.res +#usr/share/doc/libxml2-python-2.6.32 +#usr/share/doc/libxml2-python-2.6.32/TODO +#usr/share/doc/libxml2-python-2.6.32/examples +#usr/share/doc/libxml2-python-2.6.32/examples/attribs.py +#usr/share/doc/libxml2-python-2.6.32/examples/build.py +#usr/share/doc/libxml2-python-2.6.32/examples/compareNodes.py +#usr/share/doc/libxml2-python-2.6.32/examples/ctxterror.py +#usr/share/doc/libxml2-python-2.6.32/examples/cutnpaste.py +#usr/share/doc/libxml2-python-2.6.32/examples/dtdvalid.py +#usr/share/doc/libxml2-python-2.6.32/examples/error.py +#usr/share/doc/libxml2-python-2.6.32/examples/inbuf.py +#usr/share/doc/libxml2-python-2.6.32/examples/indexes.py +#usr/share/doc/libxml2-python-2.6.32/examples/invalid.xml +#usr/share/doc/libxml2-python-2.6.32/examples/nsdel.py +#usr/share/doc/libxml2-python-2.6.32/examples/outbuf.py +#usr/share/doc/libxml2-python-2.6.32/examples/push.py +#usr/share/doc/libxml2-python-2.6.32/examples/pushSAX.py +#usr/share/doc/libxml2-python-2.6.32/examples/pushSAXhtml.py +#usr/share/doc/libxml2-python-2.6.32/examples/reader.py +#usr/share/doc/libxml2-python-2.6.32/examples/reader2.py +#usr/share/doc/libxml2-python-2.6.32/examples/reader3.py +#usr/share/doc/libxml2-python-2.6.32/examples/reader4.py +#usr/share/doc/libxml2-python-2.6.32/examples/reader5.py +#usr/share/doc/libxml2-python-2.6.32/examples/reader6.py +#usr/share/doc/libxml2-python-2.6.32/examples/reader7.py +#usr/share/doc/libxml2-python-2.6.32/examples/reader8.py +#usr/share/doc/libxml2-python-2.6.32/examples/readererr.py +#usr/share/doc/libxml2-python-2.6.32/examples/readernext.py +#usr/share/doc/libxml2-python-2.6.32/examples/regexp.py +#usr/share/doc/libxml2-python-2.6.32/examples/relaxng.py +#usr/share/doc/libxml2-python-2.6.32/examples/resolver.py +#usr/share/doc/libxml2-python-2.6.32/examples/schema.py +#usr/share/doc/libxml2-python-2.6.32/examples/serialize.py +#usr/share/doc/libxml2-python-2.6.32/examples/sync.py +#usr/share/doc/libxml2-python-2.6.32/examples/test.dtd +#usr/share/doc/libxml2-python-2.6.32/examples/thread2.py +#usr/share/doc/libxml2-python-2.6.32/examples/tst.py +#usr/share/doc/libxml2-python-2.6.32/examples/tst.xml +#usr/share/doc/libxml2-python-2.6.32/examples/tstLastError.py +#usr/share/doc/libxml2-python-2.6.32/examples/tstURI.py +#usr/share/doc/libxml2-python-2.6.32/examples/tstmem.py +#usr/share/doc/libxml2-python-2.6.32/examples/tstxpath.py +#usr/share/doc/libxml2-python-2.6.32/examples/valid.xml +#usr/share/doc/libxml2-python-2.6.32/examples/validDTD.py +#usr/share/doc/libxml2-python-2.6.32/examples/validRNG.py +#usr/share/doc/libxml2-python-2.6.32/examples/validSchemas.py +#usr/share/doc/libxml2-python-2.6.32/examples/validate.py +#usr/share/doc/libxml2-python-2.6.32/examples/walker.py +#usr/share/doc/libxml2-python-2.6.32/examples/xpath.py +#usr/share/doc/libxml2-python-2.6.32/examples/xpathext.py +#usr/share/doc/libxml2-python-2.6.32/examples/xpathns.py +#usr/share/doc/libxml2-python-2.6.32/examples/xpathret.py #usr/share/gtk-doc #usr/share/gtk-doc/html #usr/share/gtk-doc/html/libxml2 @@ -333,3 +331,7 @@ usr/lib/python2.7/site-packages/libxml2mod.so #usr/share/gtk-doc/html/libxml2/right.png #usr/share/gtk-doc/html/libxml2/style.css #usr/share/gtk-doc/html/libxml2/up.png +#usr/share/man/man1/xml2-config.1 +#usr/share/man/man1/xmlcatalog.1 +#usr/share/man/man1/xmllint.1 +#usr/share/man/man3/libxml.3 diff --git a/config/rootfiles/common/linux-firmware b/config/rootfiles/common/linux-firmware index 78bcc64..d828b8d 100644 --- a/config/rootfiles/common/linux-firmware +++ b/config/rootfiles/common/linux-firmware @@ -7,21 +7,28 @@ lib/firmware/LICENCE.OLPC lib/firmware/LICENCE.agere lib/firmware/LICENCE.atheros_firmware lib/firmware/LICENCE.broadcom_bcm43xx +lib/firmware/LICENCE.ca0132 lib/firmware/LICENCE.chelsio_firmware +lib/firmware/LICENCE.cw1200 lib/firmware/LICENCE.ene_firmware +lib/firmware/LICENCE.go7007 lib/firmware/LICENCE.i2400m +lib/firmware/LICENCE.ibt_firmware lib/firmware/LICENCE.iwlwifi_firmware lib/firmware/LICENCE.mwl8335 lib/firmware/LICENCE.myri10ge_firmware lib/firmware/LICENCE.phanfw lib/firmware/LICENCE.qla2xxx lib/firmware/LICENCE.ralink-firmware.txt +lib/firmware/LICENCE.ralink_a_mediatek_company_firmware lib/firmware/LICENCE.rtlwifi_firmware.txt lib/firmware/LICENCE.tda7706-firmware.txt lib/firmware/LICENCE.ti-connectivity lib/firmware/LICENCE.ueagle-atm4-firmware lib/firmware/LICENCE.via_vt6656 +lib/firmware/LICENCE.wl1251 lib/firmware/LICENCE.xc5000 +lib/firmware/LICENSE.amd-ucode lib/firmware/LICENSE.dib0700 lib/firmware/LICENSE.radeon #lib/firmware/Makefile @@ -46,6 +53,11 @@ lib/firmware/advansys/38C1600.bin lib/firmware/advansys/mcode.bin lib/firmware/agere_ap_fw.bin lib/firmware/agere_sta_fw.bin +#lib/firmware/amd-ucode +lib/firmware/amd-ucode/microcode_amd.bin +lib/firmware/amd-ucode/microcode_amd.bin.asc +lib/firmware/amd-ucode/microcode_amd_fam15h.bin +lib/firmware/amd-ucode/microcode_amd_fam15h.bin.asc #lib/firmware/ar3k #lib/firmware/ar3k/1020200 lib/firmware/ar3k/1020200/PS_ASIC.pst @@ -73,6 +85,7 @@ lib/firmware/ar3k/AthrBT_0x01020200.dfu lib/firmware/ar3k/AthrBT_0x01020201.dfu lib/firmware/ar3k/AthrBT_0x11020000.dfu lib/firmware/ar3k/AthrBT_0x31010000.dfu +lib/firmware/ar3k/AthrBT_0x41020000.dfu lib/firmware/ar3k/ramps_0x01020001_26.dfu lib/firmware/ar3k/ramps_0x01020200_26.dfu lib/firmware/ar3k/ramps_0x01020200_40.dfu @@ -80,6 +93,8 @@ lib/firmware/ar3k/ramps_0x01020201_26.dfu lib/firmware/ar3k/ramps_0x01020201_40.dfu lib/firmware/ar3k/ramps_0x11020000_40.dfu lib/firmware/ar3k/ramps_0x31010000_40.dfu +lib/firmware/ar3k/ramps_0x41020000_40.dfu +lib/firmware/ar5523.bin lib/firmware/ar7010.fw lib/firmware/ar7010_1_1.fw lib/firmware/ar9170-1.fw @@ -178,6 +193,7 @@ lib/firmware/bnx2x/bnx2x-e1-7.0.23.0.fw lib/firmware/bnx2x/bnx2x-e1-7.0.29.0.fw lib/firmware/bnx2x/bnx2x-e1-7.2.16.0.fw lib/firmware/bnx2x/bnx2x-e1-7.2.51.0.fw +lib/firmware/bnx2x/bnx2x-e1-7.8.17.0.fw lib/firmware/bnx2x/bnx2x-e1-7.8.2.0.fw lib/firmware/bnx2x/bnx2x-e1h-6.0.34.0.fw lib/firmware/bnx2x/bnx2x-e1h-6.2.5.0.fw @@ -187,6 +203,7 @@ lib/firmware/bnx2x/bnx2x-e1h-7.0.23.0.fw lib/firmware/bnx2x/bnx2x-e1h-7.0.29.0.fw lib/firmware/bnx2x/bnx2x-e1h-7.2.16.0.fw lib/firmware/bnx2x/bnx2x-e1h-7.2.51.0.fw +lib/firmware/bnx2x/bnx2x-e1h-7.8.17.0.fw lib/firmware/bnx2x/bnx2x-e1h-7.8.2.0.fw lib/firmware/bnx2x/bnx2x-e2-6.0.34.0.fw lib/firmware/bnx2x/bnx2x-e2-6.2.5.0.fw @@ -196,15 +213,152 @@ lib/firmware/bnx2x/bnx2x-e2-7.0.23.0.fw lib/firmware/bnx2x/bnx2x-e2-7.0.29.0.fw lib/firmware/bnx2x/bnx2x-e2-7.2.16.0.fw lib/firmware/bnx2x/bnx2x-e2-7.2.51.0.fw +lib/firmware/bnx2x/bnx2x-e2-7.8.17.0.fw lib/firmware/bnx2x/bnx2x-e2-7.8.2.0.fw #lib/firmware/brcm lib/firmware/brcm/bcm4329-fullmac-4.bin lib/firmware/brcm/bcm43xx-0.fw lib/firmware/brcm/bcm43xx_hdr-0.fw lib/firmware/brcm/brcmfmac43236b.bin -lib/firmware/brcm/brcmfmac4329.bin -lib/firmware/brcm/brcmfmac4330.bin -lib/firmware/brcm/brcmfmac4334.bin +lib/firmware/brcm/brcmfmac43241b0-sdio.bin +lib/firmware/brcm/brcmfmac43241b4-sdio.bin +lib/firmware/brcm/brcmfmac4329-sdio.bin +lib/firmware/brcm/brcmfmac4330-sdio.bin +lib/firmware/brcm/brcmfmac4334-sdio.bin +lib/firmware/brcm/brcmfmac4335-sdio.bin +lib/firmware/carl9170-1.fw +#lib/firmware/carl9170fw +#lib/firmware/carl9170fw/CMakeLists.txt +#lib/firmware/carl9170fw/COPYRIGHT +#lib/firmware/carl9170fw/GPL +#lib/firmware/carl9170fw/Kconfig +#lib/firmware/carl9170fw/README +#lib/firmware/carl9170fw/autogen.sh +#lib/firmware/carl9170fw/carlfw +#lib/firmware/carl9170fw/carlfw/CMakeLists.txt +#lib/firmware/carl9170fw/carlfw/Kconfig +#lib/firmware/carl9170fw/carlfw/carl9170.lds +#lib/firmware/carl9170fw/carlfw/include +#lib/firmware/carl9170fw/carlfw/include/cam.h +#lib/firmware/carl9170fw/carlfw/include/carl9170.h +#lib/firmware/carl9170fw/carlfw/include/cmd.h +#lib/firmware/carl9170fw/carlfw/include/config.h +#lib/firmware/carl9170fw/carlfw/include/dma.h +#lib/firmware/carl9170fw/carlfw/include/fwdsc.h +#lib/firmware/carl9170fw/carlfw/include/gpio.h +#lib/firmware/carl9170fw/carlfw/include/hostif.h +#lib/firmware/carl9170fw/carlfw/include/io.h +#lib/firmware/carl9170fw/carlfw/include/printf.h +#lib/firmware/carl9170fw/carlfw/include/rf.h +#lib/firmware/carl9170fw/carlfw/include/rom.h +#lib/firmware/carl9170fw/carlfw/include/timer.h +#lib/firmware/carl9170fw/carlfw/include/uart.h +#lib/firmware/carl9170fw/carlfw/include/usb.h +#lib/firmware/carl9170fw/carlfw/include/usb_fifo.h +#lib/firmware/carl9170fw/carlfw/include/wl.h +#lib/firmware/carl9170fw/carlfw/include/wol.h +#lib/firmware/carl9170fw/carlfw/src +#lib/firmware/carl9170fw/carlfw/src/ashlsi3.S +#lib/firmware/carl9170fw/carlfw/src/cam.c +#lib/firmware/carl9170fw/carlfw/src/cmd.c +#lib/firmware/carl9170fw/carlfw/src/dma.c +#lib/firmware/carl9170fw/carlfw/src/fw.c +#lib/firmware/carl9170fw/carlfw/src/gpio.c +#lib/firmware/carl9170fw/carlfw/src/hostif.c +#lib/firmware/carl9170fw/carlfw/src/main.c +#lib/firmware/carl9170fw/carlfw/src/memcpy.S +#lib/firmware/carl9170fw/carlfw/src/memset.S +#lib/firmware/carl9170fw/carlfw/src/printf.c +#lib/firmware/carl9170fw/carlfw/src/reboot.S +#lib/firmware/carl9170fw/carlfw/src/rf.c +#lib/firmware/carl9170fw/carlfw/src/uart.c +#lib/firmware/carl9170fw/carlfw/src/udivsi3_i4i-Os.S +#lib/firmware/carl9170fw/carlfw/src/wlan.c +#lib/firmware/carl9170fw/carlfw/src/wol.c +#lib/firmware/carl9170fw/carlfw/usb +#lib/firmware/carl9170fw/carlfw/usb/Kconfig +#lib/firmware/carl9170fw/carlfw/usb/fifo.c +#lib/firmware/carl9170fw/carlfw/usb/main.c +#lib/firmware/carl9170fw/carlfw/usb/usb.c +#lib/firmware/carl9170fw/config +#lib/firmware/carl9170fw/config/CMakeLists.txt +#lib/firmware/carl9170fw/config/conf.c +#lib/firmware/carl9170fw/config/confdata.c +#lib/firmware/carl9170fw/config/expr.c +#lib/firmware/carl9170fw/config/expr.h +#lib/firmware/carl9170fw/config/lkc.h +#lib/firmware/carl9170fw/config/lkc_proto.h +#lib/firmware/carl9170fw/config/menu.c +#lib/firmware/carl9170fw/config/symbol.c +#lib/firmware/carl9170fw/config/util.c +#lib/firmware/carl9170fw/config/zconf.gperf +#lib/firmware/carl9170fw/config/zconf.l +#lib/firmware/carl9170fw/config/zconf.y +#lib/firmware/carl9170fw/extra +#lib/firmware/carl9170fw/extra/FindGPERF.cmake +#lib/firmware/carl9170fw/extra/FindPackageHandleStandardArgs.cmake +#lib/firmware/carl9170fw/extra/FindUSB-1.0.cmake +#lib/firmware/carl9170fw/extra/GCCVersion.cmake +#lib/firmware/carl9170fw/extra/libusb-zeropacket.diff +#lib/firmware/carl9170fw/extra/sh-elf-linux.cmake +#lib/firmware/carl9170fw/genapi.sh +#lib/firmware/carl9170fw/include +#lib/firmware/carl9170fw/include/linux +#lib/firmware/carl9170fw/include/linux/ch9.h +#lib/firmware/carl9170fw/include/linux/compiler.h +#lib/firmware/carl9170fw/include/linux/ieee80211.h +#lib/firmware/carl9170fw/include/linux/types.h +#lib/firmware/carl9170fw/include/shared +#lib/firmware/carl9170fw/include/shared/eeprom.h +#lib/firmware/carl9170fw/include/shared/fwcmd.h +#lib/firmware/carl9170fw/include/shared/fwdesc.h +#lib/firmware/carl9170fw/include/shared/hw.h +#lib/firmware/carl9170fw/include/shared/phy.h +#lib/firmware/carl9170fw/include/shared/version.h +#lib/firmware/carl9170fw/include/shared/wlan.h +#lib/firmware/carl9170fw/minifw +#lib/firmware/carl9170fw/minifw/CMakeLists.txt +#lib/firmware/carl9170fw/minifw/Kconfig +#lib/firmware/carl9170fw/minifw/miniboot.S +#lib/firmware/carl9170fw/minifw/miniboot.lds +#lib/firmware/carl9170fw/toolchain +#lib/firmware/carl9170fw/toolchain/Makefile +#lib/firmware/carl9170fw/toolchain/SHA256SUMS +#lib/firmware/carl9170fw/tools +#lib/firmware/carl9170fw/tools/CMakeLists.txt +#lib/firmware/carl9170fw/tools/Kconfig +#lib/firmware/carl9170fw/tools/carlu +#lib/firmware/carl9170fw/tools/carlu/CMakeLists.txt +#lib/firmware/carl9170fw/tools/carlu/src +#lib/firmware/carl9170fw/tools/carlu/src/carlu.h +#lib/firmware/carl9170fw/tools/carlu/src/cmd.c +#lib/firmware/carl9170fw/tools/carlu/src/cmd.h +#lib/firmware/carl9170fw/tools/carlu/src/debug.c +#lib/firmware/carl9170fw/tools/carlu/src/debug.h +#lib/firmware/carl9170fw/tools/carlu/src/fw.c +#lib/firmware/carl9170fw/tools/carlu/src/main.c +#lib/firmware/carl9170fw/tools/carlu/src/rx.c +#lib/firmware/carl9170fw/tools/carlu/src/test.c +#lib/firmware/carl9170fw/tools/carlu/src/test.h +#lib/firmware/carl9170fw/tools/carlu/src/tx.c +#lib/firmware/carl9170fw/tools/carlu/src/usb.c +#lib/firmware/carl9170fw/tools/carlu/src/usb.h +#lib/firmware/carl9170fw/tools/include +#lib/firmware/carl9170fw/tools/include/frame.h +#lib/firmware/carl9170fw/tools/include/list.h +#lib/firmware/carl9170fw/tools/lib +#lib/firmware/carl9170fw/tools/lib/CMakeLists.txt +#lib/firmware/carl9170fw/tools/lib/carlfw.c +#lib/firmware/carl9170fw/tools/lib/carlfw.h +#lib/firmware/carl9170fw/tools/src +#lib/firmware/carl9170fw/tools/src/CMakeLists.txt +#lib/firmware/carl9170fw/tools/src/checksum.c +#lib/firmware/carl9170fw/tools/src/eeprom_fix.c +#lib/firmware/carl9170fw/tools/src/fwinfo.c +#lib/firmware/carl9170fw/tools/src/miniboot.c +#lib/firmware/carl9170fw/tools/src/wol.c +lib/firmware/cbfw-3.2.1.1.bin +lib/firmware/cbfw-3.2.3.0.bin #lib/firmware/cis lib/firmware/cis/3CCFEM556.cis lib/firmware/cis/3CXEM556.cis @@ -240,6 +394,12 @@ lib/firmware/cis/tamarack.cis #lib/firmware/configure #lib/firmware/cpia2 lib/firmware/cpia2/stv0672_vp4.bin +lib/firmware/ct2fw-3.2.1.1.bin +lib/firmware/ct2fw-3.2.3.0.bin +lib/firmware/ctefx.bin +lib/firmware/ctfw-3.2.1.1.bin +lib/firmware/ctfw-3.2.3.0.bin +lib/firmware/ctspeq.bin #lib/firmware/cxgb3 lib/firmware/cxgb3/ael2005_opt_edc.bin lib/firmware/cxgb3/ael2005_twx_edc.bin @@ -252,8 +412,10 @@ lib/firmware/cxgb3/t3fw-7.10.0.bin lib/firmware/cxgb3/t3fw-7.12.0.bin lib/firmware/cxgb3/t3fw-7.4.0.bin #lib/firmware/cxgb4 -lib/firmware/cxgb4/t4fw-1.4.23.0.bin +lib/firmware/cxgb4/t4fw-1.9.23.0.bin lib/firmware/cxgb4/t4fw.bin +lib/firmware/cxgb4/t5fw-1.9.23.0.bin +lib/firmware/cxgb4/t5fw.bin #lib/firmware/dabusb lib/firmware/dabusb/bitstream.bin lib/firmware/dabusb/firmware.fw @@ -295,11 +457,24 @@ lib/firmware/ene-ub6250/sd_rdwr.bin lib/firmware/ess/maestro3_assp_kernel.fw lib/firmware/ess/maestro3_assp_minisrc.fw lib/firmware/f2255usb.bin +#lib/firmware/go7007 +lib/firmware/go7007/go7007fw.bin +lib/firmware/go7007/go7007tv.bin +lib/firmware/go7007/lr192.fw +lib/firmware/go7007/px-m402u.fw +lib/firmware/go7007/px-tv402u.fw +lib/firmware/go7007/s2250-1.fw +lib/firmware/go7007/s2250-2.fw +lib/firmware/go7007/wis-startrek.fw lib/firmware/htc_7010.fw lib/firmware/htc_9271.fw lib/firmware/i2400m-fw-usb-1.4.sbcf lib/firmware/i2400m-fw-usb-1.5.sbcf lib/firmware/i6050-fw-usb-1.5.sbcf +#lib/firmware/intel +lib/firmware/intel/ibt-hw-37.7.10-fw-1.0.2.3.d.bseq +lib/firmware/intel/ibt-hw-37.7.10-fw-1.80.2.3.d.bseq +lib/firmware/intel/ibt-hw-37.7.bseq lib/firmware/intelliport2.bin #lib/firmware/isci #lib/firmware/isci/Makefile @@ -315,6 +490,7 @@ lib/firmware/iwlwifi-105-6.ucode lib/firmware/iwlwifi-135-6.ucode lib/firmware/iwlwifi-2000-6.ucode lib/firmware/iwlwifi-2030-6.ucode +lib/firmware/iwlwifi-3160-7.ucode lib/firmware/iwlwifi-3945-2.ucode lib/firmware/iwlwifi-4965-2.ucode lib/firmware/iwlwifi-5000-1.ucode @@ -328,6 +504,7 @@ lib/firmware/iwlwifi-6000g2b-5.ucode lib/firmware/iwlwifi-6000g2b-6.ucode lib/firmware/iwlwifi-6050-4.ucode lib/firmware/iwlwifi-6050-5.ucode +lib/firmware/iwlwifi-7260-7.ucode #lib/firmware/kaweth lib/firmware/kaweth/new_code.bin lib/firmware/kaweth/new_code_fix.bin @@ -385,8 +562,25 @@ lib/firmware/libertas/usb8682.bin #lib/firmware/matrox lib/firmware/matrox/g200_warp.fw lib/firmware/matrox/g400_warp.fw +#lib/firmware/moxa +lib/firmware/moxa/moxa-1250.fw +lib/firmware/moxa/moxa-1251.fw +lib/firmware/moxa/moxa-1410.fw +lib/firmware/moxa/moxa-1450.fw +lib/firmware/moxa/moxa-1451.fw +lib/firmware/moxa/moxa-1613.fw +lib/firmware/moxa/moxa-1618.fw +lib/firmware/moxa/moxa-1653.fw +lib/firmware/moxa/moxa-1658.fw #lib/firmware/mrvl +lib/firmware/mrvl/pcie8897_uapsta.bin +lib/firmware/mrvl/sd8688.bin +lib/firmware/mrvl/sd8688_helper.bin lib/firmware/mrvl/sd8787_uapsta.bin +lib/firmware/mrvl/sd8797_uapsta.bin +lib/firmware/mrvl/sd8897_uapsta.bin +lib/firmware/mrvl/usb8797_uapsta.bin +lib/firmware/mt7650.bin lib/firmware/mts_cdma.fw lib/firmware/mts_edge.fw lib/firmware/mts_gsm.fw @@ -396,7 +590,9 @@ lib/firmware/mts_mt9234zba.fw lib/firmware/mwl8k/fmimage_8366.fw lib/firmware/mwl8k/fmimage_8366_ap-1.fw lib/firmware/mwl8k/fmimage_8366_ap-2.fw +lib/firmware/mwl8k/fmimage_8366_ap-3.fw lib/firmware/mwl8k/fmimage_8687.fw +lib/firmware/mwl8k/fmimage_8764_ap-1.fw lib/firmware/mwl8k/helper_8366.fw lib/firmware/mwl8k/helper_8687.fw lib/firmware/myri10ge_eth_z8e.dat @@ -429,23 +625,63 @@ lib/firmware/radeon/ARUBA_rlc.bin lib/firmware/radeon/BARTS_mc.bin lib/firmware/radeon/BARTS_me.bin lib/firmware/radeon/BARTS_pfp.bin +lib/firmware/radeon/BARTS_smc.bin +lib/firmware/radeon/BONAIRE_ce.bin +lib/firmware/radeon/BONAIRE_mc.bin +lib/firmware/radeon/BONAIRE_me.bin +lib/firmware/radeon/BONAIRE_mec.bin +lib/firmware/radeon/BONAIRE_pfp.bin +lib/firmware/radeon/BONAIRE_rlc.bin +lib/firmware/radeon/BONAIRE_sdma.bin +lib/firmware/radeon/BONAIRE_smc.bin +lib/firmware/radeon/BONAIRE_uvd.bin lib/firmware/radeon/BTC_rlc.bin lib/firmware/radeon/CAICOS_mc.bin lib/firmware/radeon/CAICOS_me.bin lib/firmware/radeon/CAICOS_pfp.bin +lib/firmware/radeon/CAICOS_smc.bin lib/firmware/radeon/CAYMAN_mc.bin lib/firmware/radeon/CAYMAN_me.bin lib/firmware/radeon/CAYMAN_pfp.bin lib/firmware/radeon/CAYMAN_rlc.bin +lib/firmware/radeon/CAYMAN_smc.bin lib/firmware/radeon/CEDAR_me.bin lib/firmware/radeon/CEDAR_pfp.bin lib/firmware/radeon/CEDAR_rlc.bin +lib/firmware/radeon/CEDAR_smc.bin lib/firmware/radeon/CYPRESS_me.bin lib/firmware/radeon/CYPRESS_pfp.bin lib/firmware/radeon/CYPRESS_rlc.bin +lib/firmware/radeon/CYPRESS_smc.bin +lib/firmware/radeon/CYPRESS_uvd.bin +lib/firmware/radeon/HAINAN_ce.bin +lib/firmware/radeon/HAINAN_mc.bin +lib/firmware/radeon/HAINAN_me.bin +lib/firmware/radeon/HAINAN_pfp.bin +lib/firmware/radeon/HAINAN_rlc.bin +lib/firmware/radeon/HAINAN_smc.bin lib/firmware/radeon/JUNIPER_me.bin lib/firmware/radeon/JUNIPER_pfp.bin lib/firmware/radeon/JUNIPER_rlc.bin +lib/firmware/radeon/JUNIPER_smc.bin +lib/firmware/radeon/KABINI_ce.bin +lib/firmware/radeon/KABINI_me.bin +lib/firmware/radeon/KABINI_mec.bin +lib/firmware/radeon/KABINI_pfp.bin +lib/firmware/radeon/KABINI_rlc.bin +lib/firmware/radeon/KABINI_sdma.bin +lib/firmware/radeon/KAVERI_ce.bin +lib/firmware/radeon/KAVERI_me.bin +lib/firmware/radeon/KAVERI_mec.bin +lib/firmware/radeon/KAVERI_pfp.bin +lib/firmware/radeon/KAVERI_rlc.bin +lib/firmware/radeon/KAVERI_sdma.bin +lib/firmware/radeon/OLAND_ce.bin +lib/firmware/radeon/OLAND_mc.bin +lib/firmware/radeon/OLAND_me.bin +lib/firmware/radeon/OLAND_pfp.bin +lib/firmware/radeon/OLAND_rlc.bin +lib/firmware/radeon/OLAND_smc.bin lib/firmware/radeon/PALM_me.bin lib/firmware/radeon/PALM_pfp.bin lib/firmware/radeon/PITCAIRN_ce.bin @@ -453,6 +689,7 @@ lib/firmware/radeon/PITCAIRN_mc.bin lib/firmware/radeon/PITCAIRN_me.bin lib/firmware/radeon/PITCAIRN_pfp.bin lib/firmware/radeon/PITCAIRN_rlc.bin +lib/firmware/radeon/PITCAIRN_smc.bin lib/firmware/radeon/R100_cp.bin lib/firmware/radeon/R200_cp.bin lib/firmware/radeon/R300_cp.bin @@ -465,6 +702,7 @@ lib/firmware/radeon/R700_rlc.bin lib/firmware/radeon/REDWOOD_me.bin lib/firmware/radeon/REDWOOD_pfp.bin lib/firmware/radeon/REDWOOD_rlc.bin +lib/firmware/radeon/REDWOOD_smc.bin lib/firmware/radeon/RS600_cp.bin lib/firmware/radeon/RS690_cp.bin lib/firmware/radeon/RS780_me.bin @@ -481,28 +719,39 @@ lib/firmware/radeon/RV670_me.bin lib/firmware/radeon/RV670_pfp.bin lib/firmware/radeon/RV710_me.bin lib/firmware/radeon/RV710_pfp.bin +lib/firmware/radeon/RV710_smc.bin +lib/firmware/radeon/RV710_uvd.bin lib/firmware/radeon/RV730_me.bin lib/firmware/radeon/RV730_pfp.bin +lib/firmware/radeon/RV730_smc.bin +lib/firmware/radeon/RV740_smc.bin lib/firmware/radeon/RV770_me.bin lib/firmware/radeon/RV770_pfp.bin +lib/firmware/radeon/RV770_smc.bin lib/firmware/radeon/SUMO2_me.bin lib/firmware/radeon/SUMO2_pfp.bin lib/firmware/radeon/SUMO_me.bin lib/firmware/radeon/SUMO_pfp.bin lib/firmware/radeon/SUMO_rlc.bin +lib/firmware/radeon/SUMO_uvd.bin lib/firmware/radeon/TAHITI_ce.bin lib/firmware/radeon/TAHITI_mc.bin lib/firmware/radeon/TAHITI_me.bin lib/firmware/radeon/TAHITI_pfp.bin lib/firmware/radeon/TAHITI_rlc.bin +lib/firmware/radeon/TAHITI_smc.bin +lib/firmware/radeon/TAHITI_uvd.bin lib/firmware/radeon/TURKS_mc.bin lib/firmware/radeon/TURKS_me.bin lib/firmware/radeon/TURKS_pfp.bin +lib/firmware/radeon/TURKS_smc.bin lib/firmware/radeon/VERDE_ce.bin lib/firmware/radeon/VERDE_mc.bin lib/firmware/radeon/VERDE_me.bin lib/firmware/radeon/VERDE_pfp.bin lib/firmware/radeon/VERDE_rlc.bin +lib/firmware/radeon/VERDE_smc.bin +lib/firmware/rp2.fw lib/firmware/rt2561.bin lib/firmware/rt2561s.bin lib/firmware/rt2661.bin @@ -516,6 +765,7 @@ lib/firmware/rt73.bin #lib/firmware/rtl_nic lib/firmware/rtl_nic/rtl8105e-1.fw lib/firmware/rtl_nic/rtl8106e-1.fw +lib/firmware/rtl_nic/rtl8106e-2.fw lib/firmware/rtl_nic/rtl8168d-1.fw lib/firmware/rtl_nic/rtl8168d-2.fw lib/firmware/rtl_nic/rtl8168e-1.fw @@ -524,13 +774,21 @@ lib/firmware/rtl_nic/rtl8168e-3.fw lib/firmware/rtl_nic/rtl8168f-1.fw lib/firmware/rtl_nic/rtl8168f-2.fw lib/firmware/rtl_nic/rtl8168g-1.fw +lib/firmware/rtl_nic/rtl8168g-2.fw +lib/firmware/rtl_nic/rtl8168g-3.fw lib/firmware/rtl_nic/rtl8402-1.fw lib/firmware/rtl_nic/rtl8411-1.fw +lib/firmware/rtl_nic/rtl8411-2.fw #lib/firmware/rtlwifi +lib/firmware/rtlwifi/rtl8188efw.bin +lib/firmware/rtlwifi/rtl8188eufw.bin lib/firmware/rtlwifi/rtl8192cfw.bin lib/firmware/rtlwifi/rtl8192cfwU.bin lib/firmware/rtlwifi/rtl8192cfwU_B.bin lib/firmware/rtlwifi/rtl8192cufw.bin +lib/firmware/rtlwifi/rtl8192cufw_A.bin +lib/firmware/rtlwifi/rtl8192cufw_B.bin +lib/firmware/rtlwifi/rtl8192cufw_TMSC.bin lib/firmware/rtlwifi/rtl8192defw.bin lib/firmware/rtlwifi/rtl8192sefw.bin lib/firmware/rtlwifi/rtl8712u.bin @@ -538,12 +796,16 @@ lib/firmware/rtlwifi/rtl8723fw.bin lib/firmware/rtlwifi/rtl8723fw_B.bin lib/firmware/s2250.fw lib/firmware/s2250_loader.fw +lib/firmware/s5p-mfc +lib/firmware/s5p-mfc/s5p-mfc-v6.fw +lib/firmware/s5p-mfc/s5p-mfc.fw #lib/firmware/sb16 lib/firmware/sb16/alaw_main.csp lib/firmware/sb16/ima_adpcm_capture.csp lib/firmware/sb16/ima_adpcm_init.csp lib/firmware/sb16/ima_adpcm_playback.csp lib/firmware/sb16/mulaw_main.csp +lib/firmware/sdd_sagrad_1091_1098.bin #lib/firmware/slicoss lib/firmware/slicoss/gbdownload.sys lib/firmware/slicoss/gbrcvucode.sys @@ -559,6 +821,8 @@ lib/firmware/sxg/saharadownloadB.sys lib/firmware/tehuti/bdx.bin #lib/firmware/ti-connectivity lib/firmware/ti-connectivity/TIInit_7.2.31.bts +lib/firmware/ti-connectivity/wl1251-fw.bin +lib/firmware/ti-connectivity/wl1251-nvs.bin lib/firmware/ti-connectivity/wl1271-fw-2.bin lib/firmware/ti-connectivity/wl1271-fw-ap.bin lib/firmware/ti-connectivity/wl1271-fw.bin @@ -584,11 +848,14 @@ lib/firmware/ti-connectivity/wl128x-fw-plt-3.bin lib/firmware/ti-connectivity/wl128x-fw.bin lib/firmware/ti-connectivity/wl128x-nvs.bin lib/firmware/ti-connectivity/wl12xx-nvs.bin +lib/firmware/ti-connectivity/wl18xx-conf.bin +lib/firmware/ti-connectivity/wl18xx-fw-2.bin lib/firmware/ti-connectivity/wl18xx-fw.bin lib/firmware/ti_3410.fw lib/firmware/ti_5052.fw #lib/firmware/tigon lib/firmware/tigon/tg3.bin +lib/firmware/tigon/tg357766.bin lib/firmware/tigon/tg3_tso.bin lib/firmware/tigon/tg3_tso5.bin lib/firmware/tlg2300_firmware.bin @@ -635,7 +902,6 @@ lib/firmware/v4l-cx23418-apu.fw lib/firmware/v4l-cx23418-cpu.fw lib/firmware/v4l-cx23418-dig.fw lib/firmware/v4l-cx23885-avcore-01.fw -lib/firmware/v4l-cx23885-enc.fw lib/firmware/v4l-cx25840.fw #lib/firmware/vicam lib/firmware/vicam/firmware.fw @@ -645,6 +911,7 @@ lib/firmware/vxge/X3fw-pxe.ncf lib/firmware/vxge/X3fw.ncf lib/firmware/whiteheat.fw lib/firmware/whiteheat_loader.fw +lib/firmware/wsm_22.bin #lib/firmware/yam lib/firmware/yam/1200.bin lib/firmware/yam/9600.bin diff --git a/config/rootfiles/common/lzo b/config/rootfiles/common/lzo index e4dc2cd..6d746bd 100644 --- a/config/rootfiles/common/lzo +++ b/config/rootfiles/common/lzo @@ -17,3 +17,11 @@ usr/lib/liblzo2.so usr/lib/liblzo2.so.2 usr/lib/liblzo2.so.2.0.0 +#usr/share/doc/lzo +#usr/share/doc/lzo/AUTHORS +#usr/share/doc/lzo/COPYING +#usr/share/doc/lzo/LZO.FAQ +#usr/share/doc/lzo/LZO.TXT +#usr/share/doc/lzo/LZOAPI.TXT +#usr/share/doc/lzo/NEWS +#usr/share/doc/lzo/THANKS diff --git a/config/rootfiles/common/mbr b/config/rootfiles/common/mbr deleted file mode 100644 index 231e27d..0000000 --- a/config/rootfiles/common/mbr +++ /dev/null @@ -1,2 +0,0 @@ -#usr/sbin/install-mbr -#usr/share/man/man8/install-mbr.8 diff --git a/config/rootfiles/common/misc-progs b/config/rootfiles/common/misc-progs index 8fd9b0b..1ab4dec 100644 --- a/config/rootfiles/common/misc-progs +++ b/config/rootfiles/common/misc-progs @@ -15,7 +15,8 @@ usr/local/bin/launch-ether-wake usr/local/bin/logwatch #usr/local/bin/mpfirectrl usr/local/bin/openvpnctrl -usr/local/bin/outgoingfwctrl +#usr/local/bin/outgoingfwctrl +usr/local/bin/firewallctrl usr/local/bin/pakfire usr/local/bin/qosctrl usr/local/bin/rebuildhosts @@ -23,9 +24,6 @@ usr/local/bin/rebuildroutes usr/local/bin/redctrl #usr/local/bin/sambactrl usr/local/bin/setaliases -usr/local/bin/setdmzholes -usr/local/bin/setportfw -usr/local/bin/setxtaccess usr/local/bin/smartctrl usr/local/bin/snortctrl usr/local/bin/squidctrl diff --git a/config/rootfiles/common/module-init-tools b/config/rootfiles/common/module-init-tools deleted file mode 100644 index 4cffddb..0000000 --- a/config/rootfiles/common/module-init-tools +++ /dev/null @@ -1,21 +0,0 @@ -bin/lsmod -sbin/depmod -sbin/generate-modprobe.conf -sbin/insmod -sbin/insmod.static -sbin/modinfo -sbin/modprobe -sbin/rmmod -#share -#share/man -#share/man/man5 -#share/man/man5/depmod.conf.5 -#share/man/man5/modprobe.conf.5 -#share/man/man5/modules.dep.5 -#share/man/man8 -#share/man/man8/depmod.8 -#share/man/man8/insmod.8 -#share/man/man8/lsmod.8 -#share/man/man8/modinfo.8 -#share/man/man8/modprobe.8 -#share/man/man8/rmmod.8 diff --git a/config/rootfiles/common/mpage b/config/rootfiles/common/mpage new file mode 100644 index 0000000..9df3083 --- /dev/null +++ b/config/rootfiles/common/mpage @@ -0,0 +1,9 @@ +#usr/bin/mpage +#usr/man/man1/mpage.1 +#usr/share/mpage +#usr/share/mpage/CP850.PC +#usr/share/mpage/ISO+STD+OTH +#usr/share/mpage/ISO-8859.1 +#usr/share/mpage/ISO-8859.15 +#usr/share/mpage/ISO-Latin.1 +#usr/share/mpage/ISO-Latin.2 diff --git a/config/rootfiles/common/mysql b/config/rootfiles/common/mysql deleted file mode 100644 index bbbff7d..0000000 --- a/config/rootfiles/common/mysql +++ /dev/null @@ -1,280 +0,0 @@ -#etc/my.cnf -#srv/mysql -#srv/mysql/mysql -#srv/mysql/mysql-bin.000001 -#srv/mysql/mysql-bin.000002 -#srv/mysql/mysql-bin.index -#srv/mysql/mysql/columns_priv.MYD -#srv/mysql/mysql/columns_priv.MYI -#srv/mysql/mysql/columns_priv.frm -#srv/mysql/mysql/db.MYD -#srv/mysql/mysql/db.MYI -#srv/mysql/mysql/db.frm -#srv/mysql/mysql/func.MYD -#srv/mysql/mysql/func.MYI -#srv/mysql/mysql/func.frm -#srv/mysql/mysql/help_category.MYD -#srv/mysql/mysql/help_category.MYI -#srv/mysql/mysql/help_category.frm -#srv/mysql/mysql/help_keyword.MYD -#srv/mysql/mysql/help_keyword.MYI -#srv/mysql/mysql/help_keyword.frm -#srv/mysql/mysql/help_relation.MYD -#srv/mysql/mysql/help_relation.MYI -#srv/mysql/mysql/help_relation.frm -#srv/mysql/mysql/help_topic.MYD -#srv/mysql/mysql/help_topic.MYI -#srv/mysql/mysql/help_topic.frm -#srv/mysql/mysql/host.MYD -#srv/mysql/mysql/host.MYI -#srv/mysql/mysql/host.frm -#srv/mysql/mysql/proc.MYD -#srv/mysql/mysql/proc.MYI -#srv/mysql/mysql/proc.frm -#srv/mysql/mysql/procs_priv.MYD -#srv/mysql/mysql/procs_priv.MYI -#srv/mysql/mysql/procs_priv.frm -#srv/mysql/mysql/tables_priv.MYD -#srv/mysql/mysql/tables_priv.MYI -#srv/mysql/mysql/tables_priv.frm -#srv/mysql/mysql/time_zone.MYD -#srv/mysql/mysql/time_zone.MYI -#srv/mysql/mysql/time_zone.frm -#srv/mysql/mysql/time_zone_leap_second.MYD -#srv/mysql/mysql/time_zone_leap_second.MYI -#srv/mysql/mysql/time_zone_leap_second.frm -#srv/mysql/mysql/time_zone_name.MYD -#srv/mysql/mysql/time_zone_name.MYI -#srv/mysql/mysql/time_zone_name.frm -#srv/mysql/mysql/time_zone_transition.MYD -#srv/mysql/mysql/time_zone_transition.MYI -#srv/mysql/mysql/time_zone_transition.frm -#srv/mysql/mysql/time_zone_transition_type.MYD -#srv/mysql/mysql/time_zone_transition_type.MYI -#srv/mysql/mysql/time_zone_transition_type.frm -#srv/mysql/mysql/user.MYD -#srv/mysql/mysql/user.MYI -#srv/mysql/mysql/user.frm -#srv/mysql/test -#usr/bin/comp_err -#usr/bin/innochecksum -#usr/bin/msql2mysql -#usr/bin/my_print_defaults -#usr/bin/myisam_ftdump -#usr/bin/myisamchk -#usr/bin/myisamlog -#usr/bin/myisampack -#usr/bin/mysql -#usr/bin/mysql_client_test -#usr/bin/mysql_config -#usr/bin/mysql_convert_table_format -#usr/bin/mysql_create_system_tables -#usr/bin/mysql_explain_log -#usr/bin/mysql_find_rows -#usr/bin/mysql_fix_extensions -#usr/bin/mysql_fix_privilege_tables -#usr/bin/mysql_install_db -#usr/bin/mysql_secure_installation -#usr/bin/mysql_setpermission -#usr/bin/mysql_tableinfo -#usr/bin/mysql_tzinfo_to_sql -#usr/bin/mysql_upgrade -#usr/bin/mysql_upgrade_shell -#usr/bin/mysql_waitpid -#usr/bin/mysql_zap -#usr/bin/mysqlaccess -#usr/bin/mysqladmin -#usr/bin/mysqlbinlog -#usr/bin/mysqlbug -#usr/bin/mysqlcheck -#usr/bin/mysqld_multi -#usr/bin/mysqld_safe -#usr/bin/mysqldump -#usr/bin/mysqldumpslow -#usr/bin/mysqlhotcopy -#usr/bin/mysqlimport -#usr/bin/mysqlshow -#usr/bin/mysqltest -#usr/bin/mysqltestmanager -#usr/bin/mysqltestmanager-pwgen -#usr/bin/mysqltestmanagerc -#usr/bin/perror -#usr/bin/replace -#usr/bin/resolve_stack_dump -#usr/bin/resolveip -#usr/include/mysql -#usr/include/mysql/errmsg.h -#usr/include/mysql/keycache.h -#usr/include/mysql/m_ctype.h -#usr/include/mysql/m_string.h -#usr/include/mysql/my_alloc.h -#usr/include/mysql/my_config.h -#usr/include/mysql/my_dbug.h -#usr/include/mysql/my_dir.h -#usr/include/mysql/my_getopt.h -#usr/include/mysql/my_global.h -#usr/include/mysql/my_list.h -#usr/include/mysql/my_net.h -#usr/include/mysql/my_no_pthread.h -#usr/include/mysql/my_pthread.h -#usr/include/mysql/my_semaphore.h -#usr/include/mysql/my_sys.h -#usr/include/mysql/my_xml.h -#usr/include/mysql/mysql.h -#usr/include/mysql/mysql_com.h -#usr/include/mysql/mysql_embed.h -#usr/include/mysql/mysql_time.h -#usr/include/mysql/mysql_version.h -#usr/include/mysql/mysqld_ername.h -#usr/include/mysql/mysqld_error.h -#usr/include/mysql/raid.h -#usr/include/mysql/sql_common.h -#usr/include/mysql/sql_state.h -#usr/include/mysql/sslopt-case.h -#usr/include/mysql/sslopt-longopts.h -#usr/include/mysql/sslopt-vars.h -#usr/include/mysql/typelib.h -#usr/info/mysql.info -usr/lib/libmysqlclient.so -usr/lib/libmysqlclient.so.15 -usr/lib/libmysqlclient.so.15.0.0 -usr/lib/libmysqlclient_r.so -usr/lib/libmysqlclient_r.so.15 -usr/lib/libmysqlclient_r.so.15.0.0 -#usr/lib/mysql -#usr/lib/mysql/libdbug.a -#usr/lib/mysql/libheap.a -#usr/lib/mysql/libmyisam.a -#usr/lib/mysql/libmyisammrg.a -#usr/lib/mysql/libmysqlclient.a -#usr/lib/mysql/libmysqlclient.la -usr/lib/mysql/libmysqlclient.so -usr/lib/mysql/libmysqlclient.so.15 -usr/lib/mysql/libmysqlclient.so.15.0.0 -#usr/lib/mysql/libmysqlclient_r.a -#usr/lib/mysql/libmysqlclient_r.la -usr/lib/mysql/libmysqlclient_r.so -usr/lib/mysql/libmysqlclient_r.so.15 -usr/lib/mysql/libmysqlclient_r.so.15.0.0 -#usr/lib/mysql/libmystrings.a -#usr/lib/mysql/libmysys.a -#usr/lib/mysql/libvio.a -#usr/man/man1/msql2mysql.1 -#usr/man/man1/myisam_ftdump.1 -#usr/man/man1/myisamchk.1 -#usr/man/man1/myisamlog.1 -#usr/man/man1/myisampack.1 -#usr/man/man1/mysql.1 -#usr/man/man1/mysql.server.1 -#usr/man/man1/mysql_config.1 -#usr/man/man1/mysql_explain_log.1 -#usr/man/man1/mysql_fix_privilege_tables.1 -#usr/man/man1/mysql_upgrade.1 -#usr/man/man1/mysql_zap.1 -#usr/man/man1/mysqlaccess.1 -#usr/man/man1/mysqladmin.1 -#usr/man/man1/mysqlbinlog.1 -#usr/man/man1/mysqlcheck.1 -#usr/man/man1/mysqld.1 -#usr/man/man1/mysqld_multi.1 -#usr/man/man1/mysqld_safe.1 -#usr/man/man1/mysqldump.1 -#usr/man/man1/mysqlhotcopy.1 -#usr/man/man1/mysqlimport.1 -#usr/man/man1/mysqlman.1 -#usr/man/man1/mysqlmanager.1 -#usr/man/man1/mysqlshow.1 -#usr/man/man1/perror.1 -#usr/man/man1/replace.1 -#usr/man/man1/safe_mysqld.1 -#usr/sbin/mysqld -#usr/sbin/mysqlmanager -#usr/share/mysql -#usr/share/mysql/binary-configure -#usr/share/mysql/charsets -#usr/share/mysql/charsets/Index.xml -#usr/share/mysql/charsets/README -#usr/share/mysql/charsets/armscii8.xml -#usr/share/mysql/charsets/ascii.xml -#usr/share/mysql/charsets/cp1250.xml -#usr/share/mysql/charsets/cp1251.xml -#usr/share/mysql/charsets/cp1256.xml -#usr/share/mysql/charsets/cp1257.xml -#usr/share/mysql/charsets/cp850.xml -#usr/share/mysql/charsets/cp852.xml -#usr/share/mysql/charsets/cp866.xml -#usr/share/mysql/charsets/dec8.xml -#usr/share/mysql/charsets/geostd8.xml -#usr/share/mysql/charsets/greek.xml -#usr/share/mysql/charsets/hebrew.xml -#usr/share/mysql/charsets/hp8.xml -#usr/share/mysql/charsets/keybcs2.xml -#usr/share/mysql/charsets/koi8r.xml -#usr/share/mysql/charsets/koi8u.xml -#usr/share/mysql/charsets/latin1.xml -#usr/share/mysql/charsets/latin2.xml -#usr/share/mysql/charsets/latin5.xml -#usr/share/mysql/charsets/latin7.xml -#usr/share/mysql/charsets/macce.xml -#usr/share/mysql/charsets/macroman.xml -#usr/share/mysql/charsets/swe7.xml -#usr/share/mysql/czech -#usr/share/mysql/czech/errmsg.sys -#usr/share/mysql/danish -#usr/share/mysql/danish/errmsg.sys -#usr/share/mysql/dutch -#usr/share/mysql/dutch/errmsg.sys -#usr/share/mysql/english -usr/share/mysql/english/errmsg.sys -usr/share/mysql/errmsg.txt -#usr/share/mysql/estonian -#usr/share/mysql/estonian/errmsg.sys -#usr/share/mysql/fill_help_tables.sql -#usr/share/mysql/french -#usr/share/mysql/french/errmsg.sys -#usr/share/mysql/german -usr/share/mysql/german/errmsg.sys -#usr/share/mysql/greek -#usr/share/mysql/greek/errmsg.sys -#usr/share/mysql/hungarian -#usr/share/mysql/hungarian/errmsg.sys -#usr/share/mysql/italian -#usr/share/mysql/italian/errmsg.sys -#usr/share/mysql/japanese -#usr/share/mysql/japanese/errmsg.sys -#usr/share/mysql/korean -#usr/share/mysql/korean/errmsg.sys -#usr/share/mysql/mi_test_all -#usr/share/mysql/mi_test_all.res -#usr/share/mysql/my-huge.cnf -#usr/share/mysql/my-innodb-heavy-4G.cnf -#usr/share/mysql/my-large.cnf -#usr/share/mysql/my-medium.cnf -#usr/share/mysql/my-small.cnf -#usr/share/mysql/mysql-log-rotate -#usr/share/mysql/mysql.server -#usr/share/mysql/mysql_fix_privilege_tables.sql -#usr/share/mysql/ndb-config-2-node.ini -#usr/share/mysql/norwegian -#usr/share/mysql/norwegian-ny -#usr/share/mysql/norwegian-ny/errmsg.sys -#usr/share/mysql/norwegian/errmsg.sys -#usr/share/mysql/polish -#usr/share/mysql/polish/errmsg.sys -#usr/share/mysql/portuguese -#usr/share/mysql/portuguese/errmsg.sys -#usr/share/mysql/romanian -#usr/share/mysql/romanian/errmsg.sys -#usr/share/mysql/russian -#usr/share/mysql/russian/errmsg.sys -#usr/share/mysql/serbian -#usr/share/mysql/serbian/errmsg.sys -#usr/share/mysql/slovak -#usr/share/mysql/slovak/errmsg.sys -#usr/share/mysql/spanish -#usr/share/mysql/spanish/errmsg.sys -#usr/share/mysql/swedish -#usr/share/mysql/swedish/errmsg.sys -#usr/share/mysql/ukrainian -#usr/share/mysql/ukrainian/errmsg.sys -#var/run/mysql diff --git a/config/rootfiles/common/mysql-libs b/config/rootfiles/common/mysql-libs new file mode 100644 index 0000000..6eb0384 --- /dev/null +++ b/config/rootfiles/common/mysql-libs @@ -0,0 +1,10 @@ +usr/lib/libmysqlclient.so.15 +usr/lib/libmysqlclient.so.15.0.0 +usr/lib/libmysqlclient_r.so.15 +usr/lib/libmysqlclient_r.so.15.0.0 +usr/lib/mysql/libmysqlclient.so +usr/lib/mysql/libmysqlclient.so.15 +usr/lib/mysql/libmysqlclient.so.15.0.0 +usr/lib/mysql/libmysqlclient_r.so +usr/lib/mysql/libmysqlclient_r.so.15 +usr/lib/mysql/libmysqlclient_r.so.15.0.0 diff --git a/config/rootfiles/common/ntp b/config/rootfiles/common/ntp index 5f21e83..883d4ff 100644 --- a/config/rootfiles/common/ntp +++ b/config/rootfiles/common/ntp @@ -1,24 +1,24 @@ etc/ntp etc/ntp.conf +etc/rc.d/rc0.d/K46ntpd +etc/rc.d/rc3.d/S26ntpd +etc/rc.d/rc6.d/K46ntpd +usr/bin/ntp-keygen +usr/bin/ntp-wait usr/bin/ntpd usr/bin/ntpdate usr/bin/ntpdc +usr/bin/ntpq +usr/bin/ntptime +usr/bin/ntptrace usr/bin/sntp -#usr/man/man1/ntp-keygen.1 -#usr/man/man1/ntpd.1 -#usr/man/man1/ntpdc.1 -#usr/man/man1/ntpdsim.1 -#usr/man/man1/ntpq.1 -#usr/man/man1/sntp.1 -usr/sbin/ntp-keygen -usr/sbin/ntp-wait -usr/sbin/ntpq -usr/sbin/ntptime -usr/sbin/ntptrace -usr/sbin/tickadj -etc/rc.d/rc0.d/K46ntpd -etc/rc.d/rc6.d/K46ntpd -etc/rc.d/rc3.d/S26ntpd +usr/bin/tickadj +#usr/share/man/man1/ntp-keygen.1 +#usr/share/man/man1/ntpd.1 +#usr/share/man/man1/ntpdc.1 +#usr/share/man/man1/ntpq.1 +#usr/share/man/man1/ntpsnmpd.1 +#usr/share/man/man1/sntp.1 var/ipfire/time/counter.conf var/ipfire/time/enable var/ipfire/time/settime.conf diff --git a/config/rootfiles/common/openssh b/config/rootfiles/common/openssh index 6737b6c..1b6ded3 100644 --- a/config/rootfiles/common/openssh +++ b/config/rootfiles/common/openssh @@ -5,6 +5,8 @@ etc/ssh/ssh_config #etc/ssh/ssh_host_dsa_key.pub #etc/ssh/ssh_host_ecdsa_key #etc/ssh/ssh_host_ecdsa_key.pub +#etc/ssh/ssh_host_ed25519_key +#etc/ssh/ssh_host_ed25519_key.pub #etc/ssh/ssh_host_key #etc/ssh/ssh_host_key.pub #etc/ssh/ssh_host_rsa_key diff --git a/config/rootfiles/common/openssl b/config/rootfiles/common/openssl index bc1ac49..ec92d1c 100644 --- a/config/rootfiles/common/openssl +++ b/config/rootfiles/common/openssl @@ -7,6 +7,7 @@ #etc/ssl/misc/c_info #etc/ssl/misc/c_issuer #etc/ssl/misc/c_name +#etc/ssl/misc/tsget etc/ssl/openssl.cnf #etc/ssl/private usr/bin/c_rehash @@ -20,7 +21,10 @@ usr/bin/openssl #usr/include/openssl/blowfish.h #usr/include/openssl/bn.h #usr/include/openssl/buffer.h +#usr/include/openssl/camellia.h #usr/include/openssl/cast.h +#usr/include/openssl/cmac.h +#usr/include/openssl/cms.h #usr/include/openssl/comp.h #usr/include/openssl/conf.h #usr/include/openssl/conf_api.h @@ -40,13 +44,13 @@ usr/bin/openssl #usr/include/openssl/err.h #usr/include/openssl/evp.h #usr/include/openssl/hmac.h -#usr/include/openssl/idea.h #usr/include/openssl/krb5_asn.h #usr/include/openssl/kssl.h #usr/include/openssl/lhash.h #usr/include/openssl/md2.h #usr/include/openssl/md4.h #usr/include/openssl/md5.h +#usr/include/openssl/modes.h #usr/include/openssl/obj_mac.h #usr/include/openssl/objects.h #usr/include/openssl/ocsp.h @@ -57,7 +61,6 @@ usr/bin/openssl #usr/include/openssl/pem2.h #usr/include/openssl/pkcs12.h #usr/include/openssl/pkcs7.h -#usr/include/openssl/pq_compat.h #usr/include/openssl/pqueue.h #usr/include/openssl/rand.h #usr/include/openssl/rc2.h @@ -65,1113 +68,44 @@ usr/bin/openssl #usr/include/openssl/ripemd.h #usr/include/openssl/rsa.h #usr/include/openssl/safestack.h +#usr/include/openssl/seed.h #usr/include/openssl/sha.h +#usr/include/openssl/srtp.h #usr/include/openssl/ssl.h #usr/include/openssl/ssl2.h #usr/include/openssl/ssl23.h #usr/include/openssl/ssl3.h #usr/include/openssl/stack.h -#usr/include/openssl/store.h #usr/include/openssl/symhacks.h #usr/include/openssl/tls1.h -#usr/include/openssl/tmdiff.h +#usr/include/openssl/ts.h #usr/include/openssl/txt_db.h #usr/include/openssl/ui.h #usr/include/openssl/ui_compat.h +#usr/include/openssl/whrlpool.h #usr/include/openssl/x509.h #usr/include/openssl/x509_vfy.h #usr/include/openssl/x509v3.h -#usr/lib/engines -#usr/lib/engines/lib4758cca.so -#usr/lib/engines/libaep.so -#usr/lib/engines/libatalla.so -#usr/lib/engines/libcapi.so -#usr/lib/engines/libchil.so -#usr/lib/engines/libcswift.so -#usr/lib/engines/libgmp.so -#usr/lib/engines/libnuron.so -#usr/lib/engines/libsureware.so -#usr/lib/engines/libubsec.so #usr/lib/libcrypto.a usr/lib/libcrypto.so -usr/lib/libcrypto.so.0.9.8 +usr/lib/libcrypto.so.10 #usr/lib/libssl.a usr/lib/libssl.so -usr/lib/libssl.so.0.9.8 +usr/lib/libssl.so.10 +#usr/lib/openssl +usr/lib/openssl/engines +#usr/lib/openssl/engines/lib4758cca.so +#usr/lib/openssl/engines/libaep.so +#usr/lib/openssl/engines/libatalla.so +#usr/lib/openssl/engines/libcapi.so +#usr/lib/openssl/engines/libchil.so +#usr/lib/openssl/engines/libcswift.so +#usr/lib/openssl/engines/libgmp.so +#usr/lib/openssl/engines/libgost.so +#usr/lib/openssl/engines/libnuron.so +#usr/lib/openssl/engines/libpadlock.so +#usr/lib/openssl/engines/libsureware.so +#usr/lib/openssl/engines/libubsec.so #usr/lib/pkgconfig/libcrypto.pc #usr/lib/pkgconfig/libssl.pc #usr/lib/pkgconfig/openssl.pc -#usr/share/man/man1/CA.pl.1 -#usr/share/man/man1/asn1parse.1 -#usr/share/man/man1/ca.1 -#usr/share/man/man1/ciphers.1 -#usr/share/man/man1/crl.1 -#usr/share/man/man1/crl2pkcs7.1 -#usr/share/man/man1/dgst.1 -#usr/share/man/man1/dhparam.1 -#usr/share/man/man1/dsa.1 -#usr/share/man/man1/dsaparam.1 -#usr/share/man/man1/ec.1 -#usr/share/man/man1/ecparam.1 -#usr/share/man/man1/enc.1 -#usr/share/man/man1/errstr.1 -#usr/share/man/man1/gendsa.1 -#usr/share/man/man1/genrsa.1 -#usr/share/man/man1/md2.1 -#usr/share/man/man1/md4.1 -#usr/share/man/man1/md5.1 -#usr/share/man/man1/mdc2.1 -#usr/share/man/man1/nseq.1 -#usr/share/man/man1/ocsp.1 -#usr/share/man/man1/openssl.1 -#usr/share/man/man1/passwd.1 -#usr/share/man/man1/pkcs12.1 -#usr/share/man/man1/pkcs7.1 -#usr/share/man/man1/pkcs8.1 -#usr/share/man/man1/rand.1 -#usr/share/man/man1/req.1 -#usr/share/man/man1/ripemd160.1 -#usr/share/man/man1/rsa.1 -#usr/share/man/man1/rsautl.1 -#usr/share/man/man1/s_client.1 -#usr/share/man/man1/s_server.1 -#usr/share/man/man1/s_time.1 -#usr/share/man/man1/sess_id.1 -#usr/share/man/man1/sha.1 -#usr/share/man/man1/sha1.1 -#usr/share/man/man1/smime.1 -#usr/share/man/man1/speed.1 -#usr/share/man/man1/spkac.1 -#usr/share/man/man1/verify.1 -#usr/share/man/man1/version.1 -#usr/share/man/man1/x509.1 -#usr/share/man/man3/ASN1_OBJECT_free.3 -#usr/share/man/man3/ASN1_OBJECT_new.3 -#usr/share/man/man3/ASN1_STRING_cmp.3 -#usr/share/man/man3/ASN1_STRING_data.3 -#usr/share/man/man3/ASN1_STRING_dup.3 -#usr/share/man/man3/ASN1_STRING_free.3 -#usr/share/man/man3/ASN1_STRING_length.3 -#usr/share/man/man3/ASN1_STRING_length_set.3 -#usr/share/man/man3/ASN1_STRING_new.3 -#usr/share/man/man3/ASN1_STRING_print_ex.3 -#usr/share/man/man3/ASN1_STRING_print_ex_fp.3 -#usr/share/man/man3/ASN1_STRING_set.3 -#usr/share/man/man3/ASN1_STRING_type.3 -#usr/share/man/man3/ASN1_STRING_type_new.3 -#usr/share/man/man3/ASN1_generate_nconf.3 -#usr/share/man/man3/ASN1_generate_v3.3 -#usr/share/man/man3/BF_cbc_encrypt.3 -#usr/share/man/man3/BF_cfb64_encrypt.3 -#usr/share/man/man3/BF_decrypt.3 -#usr/share/man/man3/BF_ecb_encrypt.3 -#usr/share/man/man3/BF_encrypt.3 -#usr/share/man/man3/BF_ofb64_encrypt.3 -#usr/share/man/man3/BF_options.3 -#usr/share/man/man3/BF_set_key.3 -#usr/share/man/man3/BIO_append_filename.3 -#usr/share/man/man3/BIO_callback_ctrl.3 -#usr/share/man/man3/BIO_ctrl.3 -#usr/share/man/man3/BIO_ctrl_get_read_request.3 -#usr/share/man/man3/BIO_ctrl_get_write_guarantee.3 -#usr/share/man/man3/BIO_ctrl_pending.3 -#usr/share/man/man3/BIO_ctrl_reset_read_request.3 -#usr/share/man/man3/BIO_ctrl_wpending.3 -#usr/share/man/man3/BIO_debug_callback.3 -#usr/share/man/man3/BIO_destroy_bio_pair.3 -#usr/share/man/man3/BIO_do_accept.3 -#usr/share/man/man3/BIO_do_connect.3 -#usr/share/man/man3/BIO_eof.3 -#usr/share/man/man3/BIO_f_base64.3 -#usr/share/man/man3/BIO_f_buffer.3 -#usr/share/man/man3/BIO_f_cipher.3 -#usr/share/man/man3/BIO_f_md.3 -#usr/share/man/man3/BIO_f_null.3 -#usr/share/man/man3/BIO_f_ssl.3 -#usr/share/man/man3/BIO_find_type.3 -#usr/share/man/man3/BIO_flush.3 -#usr/share/man/man3/BIO_free.3 -#usr/share/man/man3/BIO_free_all.3 -#usr/share/man/man3/BIO_get_accept_port.3 -#usr/share/man/man3/BIO_get_bind_mode.3 -#usr/share/man/man3/BIO_get_callback.3 -#usr/share/man/man3/BIO_get_callback_arg.3 -#usr/share/man/man3/BIO_get_cipher_ctx.3 -#usr/share/man/man3/BIO_get_cipher_status.3 -#usr/share/man/man3/BIO_get_close.3 -#usr/share/man/man3/BIO_get_conn_hostname.3 -#usr/share/man/man3/BIO_get_conn_int_port.3 -#usr/share/man/man3/BIO_get_conn_ip.3 -#usr/share/man/man3/BIO_get_conn_port.3 -#usr/share/man/man3/BIO_get_fd.3 -#usr/share/man/man3/BIO_get_fp.3 -#usr/share/man/man3/BIO_get_info_callback.3 -#usr/share/man/man3/BIO_get_md.3 -#usr/share/man/man3/BIO_get_md_ctx.3 -#usr/share/man/man3/BIO_get_mem_data.3 -#usr/share/man/man3/BIO_get_mem_ptr.3 -#usr/share/man/man3/BIO_get_num_renegotiates.3 -#usr/share/man/man3/BIO_get_read_request.3 -#usr/share/man/man3/BIO_get_retry_BIO.3 -#usr/share/man/man3/BIO_get_retry_reason.3 -#usr/share/man/man3/BIO_get_ssl.3 -#usr/share/man/man3/BIO_get_write_buf_size.3 -#usr/share/man/man3/BIO_get_write_guarantee.3 -#usr/share/man/man3/BIO_gets.3 -#usr/share/man/man3/BIO_int_ctrl.3 -#usr/share/man/man3/BIO_make_bio_pair.3 -#usr/share/man/man3/BIO_new.3 -#usr/share/man/man3/BIO_new_bio_pair.3 -#usr/share/man/man3/BIO_new_buffer_ssl_connect.3 -#usr/share/man/man3/BIO_new_fd.3 -#usr/share/man/man3/BIO_new_file.3 -#usr/share/man/man3/BIO_new_fp.3 -#usr/share/man/man3/BIO_new_mem_buf.3 -#usr/share/man/man3/BIO_new_socket.3 -#usr/share/man/man3/BIO_new_ssl.3 -#usr/share/man/man3/BIO_new_ssl_connect.3 -#usr/share/man/man3/BIO_next.3 -#usr/share/man/man3/BIO_pending.3 -#usr/share/man/man3/BIO_pop.3 -#usr/share/man/man3/BIO_ptr_ctrl.3 -#usr/share/man/man3/BIO_push.3 -#usr/share/man/man3/BIO_puts.3 -#usr/share/man/man3/BIO_read.3 -#usr/share/man/man3/BIO_read_filename.3 -#usr/share/man/man3/BIO_reset.3 -#usr/share/man/man3/BIO_retry_type.3 -#usr/share/man/man3/BIO_rw_filename.3 -#usr/share/man/man3/BIO_s_accept.3 -#usr/share/man/man3/BIO_s_bio.3 -#usr/share/man/man3/BIO_s_connect.3 -#usr/share/man/man3/BIO_s_fd.3 -#usr/share/man/man3/BIO_s_file.3 -#usr/share/man/man3/BIO_s_mem.3 -#usr/share/man/man3/BIO_s_null.3 -#usr/share/man/man3/BIO_s_socket.3 -#usr/share/man/man3/BIO_seek.3 -#usr/share/man/man3/BIO_set.3 -#usr/share/man/man3/BIO_set_accept_bios.3 -#usr/share/man/man3/BIO_set_accept_port.3 -#usr/share/man/man3/BIO_set_bind_mode.3 -#usr/share/man/man3/BIO_set_callback.3 -#usr/share/man/man3/BIO_set_callback_arg.3 -#usr/share/man/man3/BIO_set_cipher.3 -#usr/share/man/man3/BIO_set_close.3 -#usr/share/man/man3/BIO_set_conn_hostname.3 -#usr/share/man/man3/BIO_set_conn_int_port.3 -#usr/share/man/man3/BIO_set_conn_ip.3 -#usr/share/man/man3/BIO_set_conn_port.3 -#usr/share/man/man3/BIO_set_fd.3 -#usr/share/man/man3/BIO_set_fp.3 -#usr/share/man/man3/BIO_set_info_callback.3 -#usr/share/man/man3/BIO_set_md.3 -#usr/share/man/man3/BIO_set_mem_buf.3 -#usr/share/man/man3/BIO_set_mem_eof_return.3 -#usr/share/man/man3/BIO_set_nbio.3 -#usr/share/man/man3/BIO_set_nbio_accept.3 -#usr/share/man/man3/BIO_set_ssl.3 -#usr/share/man/man3/BIO_set_ssl_mode.3 -#usr/share/man/man3/BIO_set_ssl_renegotiate_bytes.3 -#usr/share/man/man3/BIO_set_ssl_renegotiate_timeout.3 -#usr/share/man/man3/BIO_set_write_buf_size.3 -#usr/share/man/man3/BIO_should_io_special.3 -#usr/share/man/man3/BIO_should_read.3 -#usr/share/man/man3/BIO_should_retry.3 -#usr/share/man/man3/BIO_should_write.3 -#usr/share/man/man3/BIO_shutdown_wr.3 -#usr/share/man/man3/BIO_ssl_copy_session_id.3 -#usr/share/man/man3/BIO_ssl_shutdown.3 -#usr/share/man/man3/BIO_tell.3 -#usr/share/man/man3/BIO_vfree.3 -#usr/share/man/man3/BIO_wpending.3 -#usr/share/man/man3/BIO_write.3 -#usr/share/man/man3/BIO_write_filename.3 -#usr/share/man/man3/BN_BLINDING_convert.3 -#usr/share/man/man3/BN_BLINDING_convert_ex.3 -#usr/share/man/man3/BN_BLINDING_create_param.3 -#usr/share/man/man3/BN_BLINDING_free.3 -#usr/share/man/man3/BN_BLINDING_get_flags.3 -#usr/share/man/man3/BN_BLINDING_get_thread_id.3 -#usr/share/man/man3/BN_BLINDING_invert.3 -#usr/share/man/man3/BN_BLINDING_invert_ex.3 -#usr/share/man/man3/BN_BLINDING_new.3 -#usr/share/man/man3/BN_BLINDING_set_flags.3 -#usr/share/man/man3/BN_BLINDING_set_thread_id.3 -#usr/share/man/man3/BN_BLINDING_update.3 -#usr/share/man/man3/BN_CTX_end.3 -#usr/share/man/man3/BN_CTX_free.3 -#usr/share/man/man3/BN_CTX_get.3 -#usr/share/man/man3/BN_CTX_init.3 -#usr/share/man/man3/BN_CTX_new.3 -#usr/share/man/man3/BN_CTX_start.3 -#usr/share/man/man3/BN_MONT_CTX_copy.3 -#usr/share/man/man3/BN_MONT_CTX_free.3 -#usr/share/man/man3/BN_MONT_CTX_init.3 -#usr/share/man/man3/BN_MONT_CTX_new.3 -#usr/share/man/man3/BN_MONT_CTX_set.3 -#usr/share/man/man3/BN_RECP_CTX_free.3 -#usr/share/man/man3/BN_RECP_CTX_init.3 -#usr/share/man/man3/BN_RECP_CTX_new.3 -#usr/share/man/man3/BN_RECP_CTX_set.3 -#usr/share/man/man3/BN_add.3 -#usr/share/man/man3/BN_add_word.3 -#usr/share/man/man3/BN_bin2bn.3 -#usr/share/man/man3/BN_bn2bin.3 -#usr/share/man/man3/BN_bn2dec.3 -#usr/share/man/man3/BN_bn2hex.3 -#usr/share/man/man3/BN_bn2mpi.3 -#usr/share/man/man3/BN_clear.3 -#usr/share/man/man3/BN_clear_bit.3 -#usr/share/man/man3/BN_clear_free.3 -#usr/share/man/man3/BN_cmp.3 -#usr/share/man/man3/BN_copy.3 -#usr/share/man/man3/BN_dec2bn.3 -#usr/share/man/man3/BN_div.3 -#usr/share/man/man3/BN_div_recp.3 -#usr/share/man/man3/BN_div_word.3 -#usr/share/man/man3/BN_dup.3 -#usr/share/man/man3/BN_exp.3 -#usr/share/man/man3/BN_free.3 -#usr/share/man/man3/BN_from_montgomery.3 -#usr/share/man/man3/BN_gcd.3 -#usr/share/man/man3/BN_generate_prime.3 -#usr/share/man/man3/BN_get_word.3 -#usr/share/man/man3/BN_hex2bn.3 -#usr/share/man/man3/BN_init.3 -#usr/share/man/man3/BN_is_bit_set.3 -#usr/share/man/man3/BN_is_odd.3 -#usr/share/man/man3/BN_is_one.3 -#usr/share/man/man3/BN_is_prime.3 -#usr/share/man/man3/BN_is_prime_fasttest.3 -#usr/share/man/man3/BN_is_word.3 -#usr/share/man/man3/BN_is_zero.3 -#usr/share/man/man3/BN_lshift.3 -#usr/share/man/man3/BN_lshift1.3 -#usr/share/man/man3/BN_mask_bits.3 -#usr/share/man/man3/BN_mod.3 -#usr/share/man/man3/BN_mod_add.3 -#usr/share/man/man3/BN_mod_exp.3 -#usr/share/man/man3/BN_mod_inverse.3 -#usr/share/man/man3/BN_mod_mul.3 -#usr/share/man/man3/BN_mod_mul_montgomery.3 -#usr/share/man/man3/BN_mod_mul_reciprocal.3 -#usr/share/man/man3/BN_mod_sqr.3 -#usr/share/man/man3/BN_mod_sub.3 -#usr/share/man/man3/BN_mod_word.3 -#usr/share/man/man3/BN_mpi2bn.3 -#usr/share/man/man3/BN_mul.3 -#usr/share/man/man3/BN_mul_word.3 -#usr/share/man/man3/BN_new.3 -#usr/share/man/man3/BN_nnmod.3 -#usr/share/man/man3/BN_num_bits.3 -#usr/share/man/man3/BN_num_bits_word.3 -#usr/share/man/man3/BN_num_bytes.3 -#usr/share/man/man3/BN_one.3 -#usr/share/man/man3/BN_print.3 -#usr/share/man/man3/BN_print_fp.3 -#usr/share/man/man3/BN_pseudo_rand.3 -#usr/share/man/man3/BN_rand.3 -#usr/share/man/man3/BN_rshift.3 -#usr/share/man/man3/BN_rshift1.3 -#usr/share/man/man3/BN_set_bit.3 -#usr/share/man/man3/BN_set_word.3 -#usr/share/man/man3/BN_sqr.3 -#usr/share/man/man3/BN_sub.3 -#usr/share/man/man3/BN_sub_word.3 -#usr/share/man/man3/BN_swap.3 -#usr/share/man/man3/BN_to_montgomery.3 -#usr/share/man/man3/BN_ucmp.3 -#usr/share/man/man3/BN_value_one.3 -#usr/share/man/man3/BN_zero.3 -#usr/share/man/man3/BUF_MEM_free.3 -#usr/share/man/man3/BUF_MEM_grow.3 -#usr/share/man/man3/BUF_MEM_new.3 -#usr/share/man/man3/BUF_strdup.3 -#usr/share/man/man3/CONF_modules_finish.3 -#usr/share/man/man3/CONF_modules_free.3 -#usr/share/man/man3/CONF_modules_load.3 -#usr/share/man/man3/CONF_modules_load_file.3 -#usr/share/man/man3/CONF_modules_unload.3 -#usr/share/man/man3/CRYPTO_destroy_dynlockid.3 -#usr/share/man/man3/CRYPTO_get_ex_data.3 -#usr/share/man/man3/CRYPTO_get_new_dynlockid.3 -#usr/share/man/man3/CRYPTO_lock.3 -#usr/share/man/man3/CRYPTO_num_locks.3 -#usr/share/man/man3/CRYPTO_set_dynlock_create_callback.3 -#usr/share/man/man3/CRYPTO_set_dynlock_destroy_callback.3 -#usr/share/man/man3/CRYPTO_set_dynlock_lock_callback.3 -#usr/share/man/man3/CRYPTO_set_ex_data.3 -#usr/share/man/man3/CRYPTO_set_id_callback.3 -#usr/share/man/man3/CRYPTO_set_locking_callback.3 -#usr/share/man/man3/DES_cbc_cksum.3 -#usr/share/man/man3/DES_cfb64_encrypt.3 -#usr/share/man/man3/DES_cfb_encrypt.3 -#usr/share/man/man3/DES_crypt.3 -#usr/share/man/man3/DES_ecb2_encrypt.3 -#usr/share/man/man3/DES_ecb3_encrypt.3 -#usr/share/man/man3/DES_ecb_encrypt.3 -#usr/share/man/man3/DES_ede2_cbc_encrypt.3 -#usr/share/man/man3/DES_ede2_cfb64_encrypt.3 -#usr/share/man/man3/DES_ede2_ofb64_encrypt.3 -#usr/share/man/man3/DES_ede3_cbc_encrypt.3 -#usr/share/man/man3/DES_ede3_cbcm_encrypt.3 -#usr/share/man/man3/DES_ede3_cfb64_encrypt.3 -#usr/share/man/man3/DES_ede3_ofb64_encrypt.3 -#usr/share/man/man3/DES_enc_read.3 -#usr/share/man/man3/DES_enc_write.3 -#usr/share/man/man3/DES_fcrypt.3 -#usr/share/man/man3/DES_is_weak_key.3 -#usr/share/man/man3/DES_key_sched.3 -#usr/share/man/man3/DES_ncbc_encrypt.3 -#usr/share/man/man3/DES_ofb64_encrypt.3 -#usr/share/man/man3/DES_ofb_encrypt.3 -#usr/share/man/man3/DES_pcbc_encrypt.3 -#usr/share/man/man3/DES_quad_cksum.3 -#usr/share/man/man3/DES_random_key.3 -#usr/share/man/man3/DES_set_key.3 -#usr/share/man/man3/DES_set_key_checked.3 -#usr/share/man/man3/DES_set_key_unchecked.3 -#usr/share/man/man3/DES_set_odd_parity.3 -#usr/share/man/man3/DES_string_to_2keys.3 -#usr/share/man/man3/DES_string_to_key.3 -#usr/share/man/man3/DES_xcbc_encrypt.3 -#usr/share/man/man3/DH_OpenSSL.3 -#usr/share/man/man3/DH_check.3 -#usr/share/man/man3/DH_compute_key.3 -#usr/share/man/man3/DH_free.3 -#usr/share/man/man3/DH_generate_key.3 -#usr/share/man/man3/DH_generate_parameters.3 -#usr/share/man/man3/DH_get_default_method.3 -#usr/share/man/man3/DH_get_ex_data.3 -#usr/share/man/man3/DH_get_ex_new_index.3 -#usr/share/man/man3/DH_new.3 -#usr/share/man/man3/DH_new_method.3 -#usr/share/man/man3/DH_set_default_method.3 -#usr/share/man/man3/DH_set_ex_data.3 -#usr/share/man/man3/DH_set_method.3 -#usr/share/man/man3/DH_size.3 -#usr/share/man/man3/DHparams_print.3 -#usr/share/man/man3/DHparams_print_fp.3 -#usr/share/man/man3/DSA_OpenSSL.3 -#usr/share/man/man3/DSA_SIG_free.3 -#usr/share/man/man3/DSA_SIG_new.3 -#usr/share/man/man3/DSA_do_sign.3 -#usr/share/man/man3/DSA_do_verify.3 -#usr/share/man/man3/DSA_dup_DH.3 -#usr/share/man/man3/DSA_free.3 -#usr/share/man/man3/DSA_generate_key.3 -#usr/share/man/man3/DSA_generate_parameters.3 -#usr/share/man/man3/DSA_get_default_method.3 -#usr/share/man/man3/DSA_get_ex_data.3 -#usr/share/man/man3/DSA_get_ex_new_index.3 -#usr/share/man/man3/DSA_new.3 -#usr/share/man/man3/DSA_new_method.3 -#usr/share/man/man3/DSA_print.3 -#usr/share/man/man3/DSA_print_fp.3 -#usr/share/man/man3/DSA_set_default_method.3 -#usr/share/man/man3/DSA_set_ex_data.3 -#usr/share/man/man3/DSA_set_method.3 -#usr/share/man/man3/DSA_sign.3 -#usr/share/man/man3/DSA_sign_setup.3 -#usr/share/man/man3/DSA_size.3 -#usr/share/man/man3/DSA_verify.3 -#usr/share/man/man3/DSAparams_print.3 -#usr/share/man/man3/DSAparams_print_fp.3 -#usr/share/man/man3/ERR_GET_FUNC.3 -#usr/share/man/man3/ERR_GET_LIB.3 -#usr/share/man/man3/ERR_GET_REASON.3 -#usr/share/man/man3/ERR_PACK.3 -#usr/share/man/man3/ERR_add_error_data.3 -#usr/share/man/man3/ERR_clear_error.3 -#usr/share/man/man3/ERR_error_string.3 -#usr/share/man/man3/ERR_error_string_n.3 -#usr/share/man/man3/ERR_free_strings.3 -#usr/share/man/man3/ERR_func_error_string.3 -#usr/share/man/man3/ERR_get_error.3 -#usr/share/man/man3/ERR_get_error_line.3 -#usr/share/man/man3/ERR_get_error_line_data.3 -#usr/share/man/man3/ERR_get_next_error_library.3 -#usr/share/man/man3/ERR_lib_error_string.3 -#usr/share/man/man3/ERR_load_UI_strings.3 -#usr/share/man/man3/ERR_load_crypto_strings.3 -#usr/share/man/man3/ERR_load_strings.3 -#usr/share/man/man3/ERR_peek_error.3 -#usr/share/man/man3/ERR_peek_error_line.3 -#usr/share/man/man3/ERR_peek_error_line_data.3 -#usr/share/man/man3/ERR_peek_last_error.3 -#usr/share/man/man3/ERR_peek_last_error_line.3 -#usr/share/man/man3/ERR_peek_last_error_line_data.3 -#usr/share/man/man3/ERR_pop_to_mark.3 -#usr/share/man/man3/ERR_print_errors.3 -#usr/share/man/man3/ERR_print_errors_fp.3 -#usr/share/man/man3/ERR_put_error.3 -#usr/share/man/man3/ERR_reason_error_string.3 -#usr/share/man/man3/ERR_remove_state.3 -#usr/share/man/man3/ERR_set_mark.3 -#usr/share/man/man3/EVP_BytesToKey.3 -#usr/share/man/man3/EVP_CIPHER_CTX_block_size.3 -#usr/share/man/man3/EVP_CIPHER_CTX_cipher.3 -#usr/share/man/man3/EVP_CIPHER_CTX_cleanup.3 -#usr/share/man/man3/EVP_CIPHER_CTX_ctrl.3 -#usr/share/man/man3/EVP_CIPHER_CTX_flags.3 -#usr/share/man/man3/EVP_CIPHER_CTX_get_app_data.3 -#usr/share/man/man3/EVP_CIPHER_CTX_init.3 -#usr/share/man/man3/EVP_CIPHER_CTX_iv_length.3 -#usr/share/man/man3/EVP_CIPHER_CTX_key_length.3 -#usr/share/man/man3/EVP_CIPHER_CTX_mode.3 -#usr/share/man/man3/EVP_CIPHER_CTX_nid.3 -#usr/share/man/man3/EVP_CIPHER_CTX_set_app_data.3 -#usr/share/man/man3/EVP_CIPHER_CTX_set_key_length.3 -#usr/share/man/man3/EVP_CIPHER_CTX_set_padding.3 -#usr/share/man/man3/EVP_CIPHER_CTX_type.3 -#usr/share/man/man3/EVP_CIPHER_asn1_to_param.3 -#usr/share/man/man3/EVP_CIPHER_block_size.3 -#usr/share/man/man3/EVP_CIPHER_flags.3 -#usr/share/man/man3/EVP_CIPHER_iv_length.3 -#usr/share/man/man3/EVP_CIPHER_key_length.3 -#usr/share/man/man3/EVP_CIPHER_mode.3 -#usr/share/man/man3/EVP_CIPHER_nid.3 -#usr/share/man/man3/EVP_CIPHER_param_to_asn1.3 -#usr/share/man/man3/EVP_CIPHER_type.3 -#usr/share/man/man3/EVP_CipherFinal.3 -#usr/share/man/man3/EVP_CipherFinal_ex.3 -#usr/share/man/man3/EVP_CipherInit.3 -#usr/share/man/man3/EVP_CipherInit_ex.3 -#usr/share/man/man3/EVP_CipherUpdate.3 -#usr/share/man/man3/EVP_DecryptFinal.3 -#usr/share/man/man3/EVP_DecryptFinal_ex.3 -#usr/share/man/man3/EVP_DecryptInit.3 -#usr/share/man/man3/EVP_DecryptInit_ex.3 -#usr/share/man/man3/EVP_DecryptUpdate.3 -#usr/share/man/man3/EVP_DigestFinal_ex.3 -#usr/share/man/man3/EVP_DigestInit.3 -#usr/share/man/man3/EVP_DigestInit_ex.3 -#usr/share/man/man3/EVP_DigestUpdate.3 -#usr/share/man/man3/EVP_EncryptFinal.3 -#usr/share/man/man3/EVP_EncryptFinal_ex.3 -#usr/share/man/man3/EVP_EncryptInit.3 -#usr/share/man/man3/EVP_EncryptInit_ex.3 -#usr/share/man/man3/EVP_EncryptUpdate.3 -#usr/share/man/man3/EVP_MAX_MD_SIZE.3 -#usr/share/man/man3/EVP_MD_CTX_block_size.3 -#usr/share/man/man3/EVP_MD_CTX_cleanup.3 -#usr/share/man/man3/EVP_MD_CTX_copy.3 -#usr/share/man/man3/EVP_MD_CTX_copy_ex.3 -#usr/share/man/man3/EVP_MD_CTX_create.3 -#usr/share/man/man3/EVP_MD_CTX_destroy.3 -#usr/share/man/man3/EVP_MD_CTX_init.3 -#usr/share/man/man3/EVP_MD_CTX_md.3 -#usr/share/man/man3/EVP_MD_CTX_size.3 -#usr/share/man/man3/EVP_MD_CTX_type.3 -#usr/share/man/man3/EVP_MD_block_size.3 -#usr/share/man/man3/EVP_MD_pkey_type.3 -#usr/share/man/man3/EVP_MD_size.3 -#usr/share/man/man3/EVP_MD_type.3 -#usr/share/man/man3/EVP_OpenFinal.3 -#usr/share/man/man3/EVP_OpenInit.3 -#usr/share/man/man3/EVP_OpenUpdate.3 -#usr/share/man/man3/EVP_PKEY_assign_DH.3 -#usr/share/man/man3/EVP_PKEY_assign_DSA.3 -#usr/share/man/man3/EVP_PKEY_assign_EC_KEY.3 -#usr/share/man/man3/EVP_PKEY_assign_RSA.3 -#usr/share/man/man3/EVP_PKEY_free.3 -#usr/share/man/man3/EVP_PKEY_get1_DH.3 -#usr/share/man/man3/EVP_PKEY_get1_DSA.3 -#usr/share/man/man3/EVP_PKEY_get1_EC_KEY.3 -#usr/share/man/man3/EVP_PKEY_get1_RSA.3 -#usr/share/man/man3/EVP_PKEY_new.3 -#usr/share/man/man3/EVP_PKEY_set1_DH.3 -#usr/share/man/man3/EVP_PKEY_set1_DSA.3 -#usr/share/man/man3/EVP_PKEY_set1_EC_KEY.3 -#usr/share/man/man3/EVP_PKEY_set1_RSA.3 -#usr/share/man/man3/EVP_PKEY_type.3 -#usr/share/man/man3/EVP_SealFinal.3 -#usr/share/man/man3/EVP_SealInit.3 -#usr/share/man/man3/EVP_SealUpdate.3 -#usr/share/man/man3/EVP_SignFinal.3 -#usr/share/man/man3/EVP_SignInit.3 -#usr/share/man/man3/EVP_SignUpdate.3 -#usr/share/man/man3/EVP_VerifyFinal.3 -#usr/share/man/man3/EVP_VerifyInit.3 -#usr/share/man/man3/EVP_VerifyUpdate.3 -#usr/share/man/man3/EVP_dss.3 -#usr/share/man/man3/EVP_dss1.3 -#usr/share/man/man3/EVP_get_cipherbyname.3 -#usr/share/man/man3/EVP_get_cipherbynid.3 -#usr/share/man/man3/EVP_get_cipherbyobj.3 -#usr/share/man/man3/EVP_get_digestbyname.3 -#usr/share/man/man3/EVP_get_digestbynid.3 -#usr/share/man/man3/EVP_get_digestbyobj.3 -#usr/share/man/man3/EVP_md2.3 -#usr/share/man/man3/EVP_md5.3 -#usr/share/man/man3/EVP_md_null.3 -#usr/share/man/man3/EVP_mdc2.3 -#usr/share/man/man3/EVP_ripemd160.3 -#usr/share/man/man3/EVP_sha.3 -#usr/share/man/man3/EVP_sha1.3 -#usr/share/man/man3/HMAC.3 -#usr/share/man/man3/HMAC_Final.3 -#usr/share/man/man3/HMAC_Init.3 -#usr/share/man/man3/HMAC_Update.3 -#usr/share/man/man3/HMAC_cleanup.3 -#usr/share/man/man3/MD2.3 -#usr/share/man/man3/MD2_Final.3 -#usr/share/man/man3/MD2_Init.3 -#usr/share/man/man3/MD2_Update.3 -#usr/share/man/man3/MD4.3 -#usr/share/man/man3/MD4_Final.3 -#usr/share/man/man3/MD4_Init.3 -#usr/share/man/man3/MD4_Update.3 -#usr/share/man/man3/MD5.3 -#usr/share/man/man3/MD5_Final.3 -#usr/share/man/man3/MD5_Init.3 -#usr/share/man/man3/MD5_Update.3 -#usr/share/man/man3/MDC2.3 -#usr/share/man/man3/MDC2_Final.3 -#usr/share/man/man3/MDC2_Init.3 -#usr/share/man/man3/MDC2_Update.3 -#usr/share/man/man3/OBJ_cleanup.3 -#usr/share/man/man3/OBJ_cmp.3 -#usr/share/man/man3/OBJ_create.3 -#usr/share/man/man3/OBJ_dup.3 -#usr/share/man/man3/OBJ_ln2nid.3 -#usr/share/man/man3/OBJ_nid2ln.3 -#usr/share/man/man3/OBJ_nid2obj.3 -#usr/share/man/man3/OBJ_nid2sn.3 -#usr/share/man/man3/OBJ_obj2nid.3 -#usr/share/man/man3/OBJ_obj2txt.3 -#usr/share/man/man3/OBJ_sn2nid.3 -#usr/share/man/man3/OBJ_txt2nid.3 -#usr/share/man/man3/OBJ_txt2obj.3 -#usr/share/man/man3/OPENSSL_Applink.3 -#usr/share/man/man3/OPENSSL_VERSION_NUMBER.3 -#usr/share/man/man3/OPENSSL_config.3 -#usr/share/man/man3/OPENSSL_ia32cap.3 -#usr/share/man/man3/OPENSSL_load_builtin_modules.3 -#usr/share/man/man3/OPENSSL_no_config.3 -#usr/share/man/man3/OpenSSL_add_all_algorithms.3 -#usr/share/man/man3/OpenSSL_add_all_ciphers.3 -#usr/share/man/man3/OpenSSL_add_all_digests.3 -#usr/share/man/man3/OpenSSL_add_ssl_algorithms.3 -#usr/share/man/man3/PEM.3 -#usr/share/man/man3/PEM_read_DHparams.3 -#usr/share/man/man3/PEM_read_DSAPrivateKey.3 -#usr/share/man/man3/PEM_read_DSA_PUBKEY.3 -#usr/share/man/man3/PEM_read_DSAparams.3 -#usr/share/man/man3/PEM_read_NETSCAPE_CERT_SEQUENCE.3 -#usr/share/man/man3/PEM_read_PKCS7.3 -#usr/share/man/man3/PEM_read_PUBKEY.3 -#usr/share/man/man3/PEM_read_PrivateKey.3 -#usr/share/man/man3/PEM_read_RSAPrivateKey.3 -#usr/share/man/man3/PEM_read_RSAPublicKey.3 -#usr/share/man/man3/PEM_read_RSA_PUBKEY.3 -#usr/share/man/man3/PEM_read_X509.3 -#usr/share/man/man3/PEM_read_X509_AUX.3 -#usr/share/man/man3/PEM_read_X509_CRL.3 -#usr/share/man/man3/PEM_read_X509_REQ.3 -#usr/share/man/man3/PEM_read_bio_DHparams.3 -#usr/share/man/man3/PEM_read_bio_DSAPrivateKey.3 -#usr/share/man/man3/PEM_read_bio_DSA_PUBKEY.3 -#usr/share/man/man3/PEM_read_bio_DSAparams.3 -#usr/share/man/man3/PEM_read_bio_NETSCAPE_CERT_SEQUENCE.3 -#usr/share/man/man3/PEM_read_bio_PKCS7.3 -#usr/share/man/man3/PEM_read_bio_PUBKEY.3 -#usr/share/man/man3/PEM_read_bio_PrivateKey.3 -#usr/share/man/man3/PEM_read_bio_RSAPrivateKey.3 -#usr/share/man/man3/PEM_read_bio_RSAPublicKey.3 -#usr/share/man/man3/PEM_read_bio_RSA_PUBKEY.3 -#usr/share/man/man3/PEM_read_bio_X509.3 -#usr/share/man/man3/PEM_read_bio_X509_AUX.3 -#usr/share/man/man3/PEM_read_bio_X509_CRL.3 -#usr/share/man/man3/PEM_read_bio_X509_REQ.3 -#usr/share/man/man3/PEM_write_DHparams.3 -#usr/share/man/man3/PEM_write_DSAPrivateKey.3 -#usr/share/man/man3/PEM_write_DSA_PUBKEY.3 -#usr/share/man/man3/PEM_write_DSAparams.3 -#usr/share/man/man3/PEM_write_NETSCAPE_CERT_SEQUENCE.3 -#usr/share/man/man3/PEM_write_PKCS7.3 -#usr/share/man/man3/PEM_write_PKCS8PrivateKey.3 -#usr/share/man/man3/PEM_write_PKCS8PrivateKey_nid.3 -#usr/share/man/man3/PEM_write_PUBKEY.3 -#usr/share/man/man3/PEM_write_PrivateKey.3 -#usr/share/man/man3/PEM_write_RSAPrivateKey.3 -#usr/share/man/man3/PEM_write_RSAPublicKey.3 -#usr/share/man/man3/PEM_write_RSA_PUBKEY.3 -#usr/share/man/man3/PEM_write_X509.3 -#usr/share/man/man3/PEM_write_X509_AUX.3 -#usr/share/man/man3/PEM_write_X509_CRL.3 -#usr/share/man/man3/PEM_write_X509_REQ.3 -#usr/share/man/man3/PEM_write_X509_REQ_NEW.3 -#usr/share/man/man3/PEM_write_bio_DHparams.3 -#usr/share/man/man3/PEM_write_bio_DSAPrivateKey.3 -#usr/share/man/man3/PEM_write_bio_DSA_PUBKEY.3 -#usr/share/man/man3/PEM_write_bio_DSAparams.3 -#usr/share/man/man3/PEM_write_bio_NETSCAPE_CERT_SEQUENCE.3 -#usr/share/man/man3/PEM_write_bio_PKCS7.3 -#usr/share/man/man3/PEM_write_bio_PKCS8PrivateKey.3 -#usr/share/man/man3/PEM_write_bio_PKCS8PrivateKey_nid.3 -#usr/share/man/man3/PEM_write_bio_PUBKEY.3 -#usr/share/man/man3/PEM_write_bio_PrivateKey.3 -#usr/share/man/man3/PEM_write_bio_RSAPrivateKey.3 -#usr/share/man/man3/PEM_write_bio_RSAPublicKey.3 -#usr/share/man/man3/PEM_write_bio_RSA_PUBKEY.3 -#usr/share/man/man3/PEM_write_bio_X509.3 -#usr/share/man/man3/PEM_write_bio_X509_AUX.3 -#usr/share/man/man3/PEM_write_bio_X509_CRL.3 -#usr/share/man/man3/PEM_write_bio_X509_REQ.3 -#usr/share/man/man3/PEM_write_bio_X509_REQ_NEW.3 -#usr/share/man/man3/PKCS12_create.3 -#usr/share/man/man3/PKCS12_parse.3 -#usr/share/man/man3/PKCS7_decrypt.3 -#usr/share/man/man3/PKCS7_encrypt.3 -#usr/share/man/man3/PKCS7_sign.3 -#usr/share/man/man3/PKCS7_verify.3 -#usr/share/man/man3/RAND_SSLeay.3 -#usr/share/man/man3/RAND_add.3 -#usr/share/man/man3/RAND_bytes.3 -#usr/share/man/man3/RAND_cleanup.3 -#usr/share/man/man3/RAND_egd.3 -#usr/share/man/man3/RAND_event.3 -#usr/share/man/man3/RAND_file_name.3 -#usr/share/man/man3/RAND_get_rand_method.3 -#usr/share/man/man3/RAND_load_file.3 -#usr/share/man/man3/RAND_pseudo_bytes.3 -#usr/share/man/man3/RAND_screen.3 -#usr/share/man/man3/RAND_seed.3 -#usr/share/man/man3/RAND_set_rand_method.3 -#usr/share/man/man3/RAND_status.3 -#usr/share/man/man3/RAND_write_file.3 -#usr/share/man/man3/RC4.3 -#usr/share/man/man3/RC4_set_key.3 -#usr/share/man/man3/RIPEMD160.3 -#usr/share/man/man3/RIPEMD160_Final.3 -#usr/share/man/man3/RIPEMD160_Init.3 -#usr/share/man/man3/RIPEMD160_Update.3 -#usr/share/man/man3/RSA_PKCS1_SSLeay.3 -#usr/share/man/man3/RSA_blinding_off.3 -#usr/share/man/man3/RSA_blinding_on.3 -#usr/share/man/man3/RSA_check_key.3 -#usr/share/man/man3/RSA_flags.3 -#usr/share/man/man3/RSA_free.3 -#usr/share/man/man3/RSA_generate_key.3 -#usr/share/man/man3/RSA_get_default_method.3 -#usr/share/man/man3/RSA_get_ex_data.3 -#usr/share/man/man3/RSA_get_ex_new_index.3 -#usr/share/man/man3/RSA_get_method.3 -#usr/share/man/man3/RSA_new.3 -#usr/share/man/man3/RSA_new_method.3 -#usr/share/man/man3/RSA_null_method.3 -#usr/share/man/man3/RSA_padding_add_PKCS1_OAEP.3 -#usr/share/man/man3/RSA_padding_add_PKCS1_type_1.3 -#usr/share/man/man3/RSA_padding_add_PKCS1_type_2.3 -#usr/share/man/man3/RSA_padding_add_SSLv23.3 -#usr/share/man/man3/RSA_padding_add_none.3 -#usr/share/man/man3/RSA_padding_check_PKCS1_OAEP.3 -#usr/share/man/man3/RSA_padding_check_PKCS1_type_1.3 -#usr/share/man/man3/RSA_padding_check_PKCS1_type_2.3 -#usr/share/man/man3/RSA_padding_check_SSLv23.3 -#usr/share/man/man3/RSA_padding_check_none.3 -#usr/share/man/man3/RSA_print.3 -#usr/share/man/man3/RSA_print_fp.3 -#usr/share/man/man3/RSA_private_decrypt.3 -#usr/share/man/man3/RSA_private_encrypt.3 -#usr/share/man/man3/RSA_public_decrypt.3 -#usr/share/man/man3/RSA_public_encrypt.3 -#usr/share/man/man3/RSA_set_default_method.3 -#usr/share/man/man3/RSA_set_ex_data.3 -#usr/share/man/man3/RSA_set_method.3 -#usr/share/man/man3/RSA_sign.3 -#usr/share/man/man3/RSA_sign_ASN1_OCTET_STRING.3 -#usr/share/man/man3/RSA_size.3 -#usr/share/man/man3/RSA_verify.3 -#usr/share/man/man3/RSA_verify_ASN1_OCTET_STRING.3 -#usr/share/man/man3/SHA1.3 -#usr/share/man/man3/SHA1_Final.3 -#usr/share/man/man3/SHA1_Init.3 -#usr/share/man/man3/SHA1_Update.3 -#usr/share/man/man3/SMIME_read_PKCS7.3 -#usr/share/man/man3/SMIME_write_PKCS7.3 -#usr/share/man/man3/SSL.3 -#usr/share/man/man3/SSL_CIPHER_description.3 -#usr/share/man/man3/SSL_CIPHER_get_bits.3 -#usr/share/man/man3/SSL_CIPHER_get_name.3 -#usr/share/man/man3/SSL_CIPHER_get_version.3 -#usr/share/man/man3/SSL_COMP_add_compression_method.3 -#usr/share/man/man3/SSL_CTX_add_client_CA.3 -#usr/share/man/man3/SSL_CTX_add_extra_chain_cert.3 -#usr/share/man/man3/SSL_CTX_add_session.3 -#usr/share/man/man3/SSL_CTX_callback_ctrl.3 -#usr/share/man/man3/SSL_CTX_check_private_key.3 -#usr/share/man/man3/SSL_CTX_clear_options.3 -#usr/share/man/man3/SSL_CTX_ctrl.3 -#usr/share/man/man3/SSL_CTX_flush_sessions.3 -#usr/share/man/man3/SSL_CTX_free.3 -#usr/share/man/man3/SSL_CTX_get_cert_store.3 -#usr/share/man/man3/SSL_CTX_get_client_CA_list.3 -#usr/share/man/man3/SSL_CTX_get_client_cert_cb.3 -#usr/share/man/man3/SSL_CTX_get_ex_data.3 -#usr/share/man/man3/SSL_CTX_get_ex_new_index.3 -#usr/share/man/man3/SSL_CTX_get_info_callback.3 -#usr/share/man/man3/SSL_CTX_get_max_cert_list.3 -#usr/share/man/man3/SSL_CTX_get_mode.3 -#usr/share/man/man3/SSL_CTX_get_options.3 -#usr/share/man/man3/SSL_CTX_get_quiet_shutdown.3 -#usr/share/man/man3/SSL_CTX_get_session_cache_mode.3 -#usr/share/man/man3/SSL_CTX_get_timeout.3 -#usr/share/man/man3/SSL_CTX_get_verify_callback.3 -#usr/share/man/man3/SSL_CTX_get_verify_depth.3 -#usr/share/man/man3/SSL_CTX_get_verify_mode.3 -#usr/share/man/man3/SSL_CTX_load_verify_locations.3 -#usr/share/man/man3/SSL_CTX_need_tmp_rsa.3 -#usr/share/man/man3/SSL_CTX_new.3 -#usr/share/man/man3/SSL_CTX_remove_session.3 -#usr/share/man/man3/SSL_CTX_sess_accept.3 -#usr/share/man/man3/SSL_CTX_sess_accept_good.3 -#usr/share/man/man3/SSL_CTX_sess_accept_renegotiate.3 -#usr/share/man/man3/SSL_CTX_sess_cache_full.3 -#usr/share/man/man3/SSL_CTX_sess_cb_hits.3 -#usr/share/man/man3/SSL_CTX_sess_connect.3 -#usr/share/man/man3/SSL_CTX_sess_connect_good.3 -#usr/share/man/man3/SSL_CTX_sess_connect_renegotiate.3 -#usr/share/man/man3/SSL_CTX_sess_get_cache_size.3 -#usr/share/man/man3/SSL_CTX_sess_get_get_cb.3 -#usr/share/man/man3/SSL_CTX_sess_get_new_cb.3 -#usr/share/man/man3/SSL_CTX_sess_get_remove_cb.3 -#usr/share/man/man3/SSL_CTX_sess_hits.3 -#usr/share/man/man3/SSL_CTX_sess_misses.3 -#usr/share/man/man3/SSL_CTX_sess_number.3 -#usr/share/man/man3/SSL_CTX_sess_set_cache_size.3 -#usr/share/man/man3/SSL_CTX_sess_set_get_cb.3 -#usr/share/man/man3/SSL_CTX_sess_set_new_cb.3 -#usr/share/man/man3/SSL_CTX_sess_set_remove_cb.3 -#usr/share/man/man3/SSL_CTX_sess_timeouts.3 -#usr/share/man/man3/SSL_CTX_sessions.3 -#usr/share/man/man3/SSL_CTX_set_cert_store.3 -#usr/share/man/man3/SSL_CTX_set_cert_verify_callback.3 -#usr/share/man/man3/SSL_CTX_set_cipher_list.3 -#usr/share/man/man3/SSL_CTX_set_client_CA_list.3 -#usr/share/man/man3/SSL_CTX_set_client_cert_cb.3 -#usr/share/man/man3/SSL_CTX_set_default_passwd_cb.3 -#usr/share/man/man3/SSL_CTX_set_default_passwd_cb_userdata.3 -#usr/share/man/man3/SSL_CTX_set_ex_data.3 -#usr/share/man/man3/SSL_CTX_set_generate_session_id.3 -#usr/share/man/man3/SSL_CTX_set_info_callback.3 -#usr/share/man/man3/SSL_CTX_set_max_cert_list.3 -#usr/share/man/man3/SSL_CTX_set_mode.3 -#usr/share/man/man3/SSL_CTX_set_msg_callback.3 -#usr/share/man/man3/SSL_CTX_set_msg_callback_arg.3 -#usr/share/man/man3/SSL_CTX_set_options.3 -#usr/share/man/man3/SSL_CTX_set_quiet_shutdown.3 -#usr/share/man/man3/SSL_CTX_set_session_cache_mode.3 -#usr/share/man/man3/SSL_CTX_set_session_id_context.3 -#usr/share/man/man3/SSL_CTX_set_ssl_version.3 -#usr/share/man/man3/SSL_CTX_set_timeout.3 -#usr/share/man/man3/SSL_CTX_set_tmp_dh.3 -#usr/share/man/man3/SSL_CTX_set_tmp_dh_callback.3 -#usr/share/man/man3/SSL_CTX_set_tmp_rsa.3 -#usr/share/man/man3/SSL_CTX_set_tmp_rsa_callback.3 -#usr/share/man/man3/SSL_CTX_set_verify.3 -#usr/share/man/man3/SSL_CTX_set_verify_depth.3 -#usr/share/man/man3/SSL_CTX_use_PrivateKey.3 -#usr/share/man/man3/SSL_CTX_use_PrivateKey_ASN1.3 -#usr/share/man/man3/SSL_CTX_use_PrivateKey_file.3 -#usr/share/man/man3/SSL_CTX_use_RSAPrivateKey.3 -#usr/share/man/man3/SSL_CTX_use_RSAPrivateKey_ASN1.3 -#usr/share/man/man3/SSL_CTX_use_RSAPrivateKey_file.3 -#usr/share/man/man3/SSL_CTX_use_certificate.3 -#usr/share/man/man3/SSL_CTX_use_certificate_ASN1.3 -#usr/share/man/man3/SSL_CTX_use_certificate_chain_file.3 -#usr/share/man/man3/SSL_CTX_use_certificate_file.3 -#usr/share/man/man3/SSL_SESSION_free.3 -#usr/share/man/man3/SSL_SESSION_get_ex_data.3 -#usr/share/man/man3/SSL_SESSION_get_ex_new_index.3 -#usr/share/man/man3/SSL_SESSION_get_time.3 -#usr/share/man/man3/SSL_SESSION_get_timeout.3 -#usr/share/man/man3/SSL_SESSION_set_ex_data.3 -#usr/share/man/man3/SSL_SESSION_set_time.3 -#usr/share/man/man3/SSL_SESSION_set_timeout.3 -#usr/share/man/man3/SSL_accept.3 -#usr/share/man/man3/SSL_add_client_CA.3 -#usr/share/man/man3/SSL_add_session.3 -#usr/share/man/man3/SSL_alert_desc_string.3 -#usr/share/man/man3/SSL_alert_desc_string_long.3 -#usr/share/man/man3/SSL_alert_type_string.3 -#usr/share/man/man3/SSL_alert_type_string_long.3 -#usr/share/man/man3/SSL_callback_ctrl.3 -#usr/share/man/man3/SSL_check_private_key.3 -#usr/share/man/man3/SSL_clear.3 -#usr/share/man/man3/SSL_clear_options.3 -#usr/share/man/man3/SSL_connect.3 -#usr/share/man/man3/SSL_ctrl.3 -#usr/share/man/man3/SSL_do_handshake.3 -#usr/share/man/man3/SSL_flush_sessions.3 -#usr/share/man/man3/SSL_free.3 -#usr/share/man/man3/SSL_get_SSL_CTX.3 -#usr/share/man/man3/SSL_get_accept_state.3 -#usr/share/man/man3/SSL_get_cipher.3 -#usr/share/man/man3/SSL_get_cipher_bits.3 -#usr/share/man/man3/SSL_get_cipher_list.3 -#usr/share/man/man3/SSL_get_cipher_name.3 -#usr/share/man/man3/SSL_get_cipher_version.3 -#usr/share/man/man3/SSL_get_ciphers.3 -#usr/share/man/man3/SSL_get_client_CA_list.3 -#usr/share/man/man3/SSL_get_current_cipher.3 -#usr/share/man/man3/SSL_get_default_timeout.3 -#usr/share/man/man3/SSL_get_error.3 -#usr/share/man/man3/SSL_get_ex_data.3 -#usr/share/man/man3/SSL_get_ex_data_X509_STORE_CTX_idx.3 -#usr/share/man/man3/SSL_get_ex_new_index.3 -#usr/share/man/man3/SSL_get_fd.3 -#usr/share/man/man3/SSL_get_info_callback.3 -#usr/share/man/man3/SSL_get_max_cert_list.3 -#usr/share/man/man3/SSL_get_mode.3 -#usr/share/man/man3/SSL_get_msg_callback_arg.3 -#usr/share/man/man3/SSL_get_options.3 -#usr/share/man/man3/SSL_get_peer_cert_chain.3 -#usr/share/man/man3/SSL_get_peer_certificate.3 -#usr/share/man/man3/SSL_get_quiet_shutdown.3 -#usr/share/man/man3/SSL_get_rbio.3 -#usr/share/man/man3/SSL_get_secure_renegotiation_support.3 -#usr/share/man/man3/SSL_get_session.3 -#usr/share/man/man3/SSL_get_shutdown.3 -#usr/share/man/man3/SSL_get_ssl_method.3 -#usr/share/man/man3/SSL_get_verify_callback.3 -#usr/share/man/man3/SSL_get_verify_depth.3 -#usr/share/man/man3/SSL_get_verify_mode.3 -#usr/share/man/man3/SSL_get_verify_result.3 -#usr/share/man/man3/SSL_get_version.3 -#usr/share/man/man3/SSL_has_matching_session_id.3 -#usr/share/man/man3/SSL_library_init.3 -#usr/share/man/man3/SSL_load_client_CA_file.3 -#usr/share/man/man3/SSL_load_error_strings.3 -#usr/share/man/man3/SSL_need_tmp_rsa.3 -#usr/share/man/man3/SSL_new.3 -#usr/share/man/man3/SSL_pending.3 -#usr/share/man/man3/SSL_read.3 -#usr/share/man/man3/SSL_remove_session.3 -#usr/share/man/man3/SSL_rstate_string.3 -#usr/share/man/man3/SSL_rstate_string_long.3 -#usr/share/man/man3/SSL_session_reused.3 -#usr/share/man/man3/SSL_set_bio.3 -#usr/share/man/man3/SSL_set_cipher_list.3 -#usr/share/man/man3/SSL_set_client_CA_list.3 -#usr/share/man/man3/SSL_set_connect_state.3 -#usr/share/man/man3/SSL_set_ex_data.3 -#usr/share/man/man3/SSL_set_fd.3 -#usr/share/man/man3/SSL_set_generate_session_id.3 -#usr/share/man/man3/SSL_set_info_callback.3 -#usr/share/man/man3/SSL_set_max_cert_list.3 -#usr/share/man/man3/SSL_set_mode.3 -#usr/share/man/man3/SSL_set_msg_callback.3 -#usr/share/man/man3/SSL_set_options.3 -#usr/share/man/man3/SSL_set_quiet_shutdown.3 -#usr/share/man/man3/SSL_set_session.3 -#usr/share/man/man3/SSL_set_session_id_context.3 -#usr/share/man/man3/SSL_set_shutdown.3 -#usr/share/man/man3/SSL_set_ssl_method.3 -#usr/share/man/man3/SSL_set_tmp_dh.3 -#usr/share/man/man3/SSL_set_tmp_dh_callback.3 -#usr/share/man/man3/SSL_set_tmp_rsa.3 -#usr/share/man/man3/SSL_set_tmp_rsa_callback.3 -#usr/share/man/man3/SSL_set_verify.3 -#usr/share/man/man3/SSL_set_verify_depth.3 -#usr/share/man/man3/SSL_set_verify_result.3 -#usr/share/man/man3/SSL_shutdown.3 -#usr/share/man/man3/SSL_state_string.3 -#usr/share/man/man3/SSL_state_string_long.3 -#usr/share/man/man3/SSL_use_PrivateKey.3 -#usr/share/man/man3/SSL_use_PrivateKey_ASN1.3 -#usr/share/man/man3/SSL_use_PrivateKey_file.3 -#usr/share/man/man3/SSL_use_RSAPrivateKey.3 -#usr/share/man/man3/SSL_use_RSAPrivateKey_ASN1.3 -#usr/share/man/man3/SSL_use_RSAPrivateKey_file.3 -#usr/share/man/man3/SSL_use_certificate.3 -#usr/share/man/man3/SSL_use_certificate_ASN1.3 -#usr/share/man/man3/SSL_use_certificate_file.3 -#usr/share/man/man3/SSL_want.3 -#usr/share/man/man3/SSL_want_nothing.3 -#usr/share/man/man3/SSL_want_read.3 -#usr/share/man/man3/SSL_want_write.3 -#usr/share/man/man3/SSL_want_x509_lookup.3 -#usr/share/man/man3/SSL_write.3 -#usr/share/man/man3/SSLeay.3 -#usr/share/man/man3/SSLeay_add_ssl_algorithms.3 -#usr/share/man/man3/SSLeay_version.3 -#usr/share/man/man3/UI_OpenSSL.3 -#usr/share/man/man3/UI_add_error_string.3 -#usr/share/man/man3/UI_add_info_string.3 -#usr/share/man/man3/UI_add_input_boolean.3 -#usr/share/man/man3/UI_add_input_string.3 -#usr/share/man/man3/UI_add_user_data.3 -#usr/share/man/man3/UI_add_verify_string.3 -#usr/share/man/man3/UI_construct_prompt.3 -#usr/share/man/man3/UI_ctrl.3 -#usr/share/man/man3/UI_dup_error_string.3 -#usr/share/man/man3/UI_dup_info_string.3 -#usr/share/man/man3/UI_dup_input_boolean.3 -#usr/share/man/man3/UI_dup_input_string.3 -#usr/share/man/man3/UI_dup_verify_string.3 -#usr/share/man/man3/UI_free.3 -#usr/share/man/man3/UI_get0_result.3 -#usr/share/man/man3/UI_get0_user_data.3 -#usr/share/man/man3/UI_get_default_method.3 -#usr/share/man/man3/UI_get_method.3 -#usr/share/man/man3/UI_new.3 -#usr/share/man/man3/UI_new_method.3 -#usr/share/man/man3/UI_process.3 -#usr/share/man/man3/UI_set_default_method.3 -#usr/share/man/man3/UI_set_method.3 -#usr/share/man/man3/X509_NAME_ENTRY_create_by_NID.3 -#usr/share/man/man3/X509_NAME_ENTRY_create_by_OBJ.3 -#usr/share/man/man3/X509_NAME_ENTRY_create_by_txt.3 -#usr/share/man/man3/X509_NAME_ENTRY_get_data.3 -#usr/share/man/man3/X509_NAME_ENTRY_get_object.3 -#usr/share/man/man3/X509_NAME_ENTRY_set_data.3 -#usr/share/man/man3/X509_NAME_ENTRY_set_object.3 -#usr/share/man/man3/X509_NAME_add_entry.3 -#usr/share/man/man3/X509_NAME_add_entry_by_NID.3 -#usr/share/man/man3/X509_NAME_add_entry_by_OBJ.3 -#usr/share/man/man3/X509_NAME_add_entry_by_txt.3 -#usr/share/man/man3/X509_NAME_delete_entry.3 -#usr/share/man/man3/X509_NAME_entry_count.3 -#usr/share/man/man3/X509_NAME_get_entry.3 -#usr/share/man/man3/X509_NAME_get_index_by_NID.3 -#usr/share/man/man3/X509_NAME_get_index_by_OBJ.3 -#usr/share/man/man3/X509_NAME_get_text_by_NID.3 -#usr/share/man/man3/X509_NAME_get_text_by_OBJ.3 -#usr/share/man/man3/X509_NAME_oneline.3 -#usr/share/man/man3/X509_NAME_print.3 -#usr/share/man/man3/X509_NAME_print_ex.3 -#usr/share/man/man3/X509_NAME_print_ex_fp.3 -#usr/share/man/man3/X509_free.3 -#usr/share/man/man3/X509_new.3 -#usr/share/man/man3/bio.3 -#usr/share/man/man3/blowfish.3 -#usr/share/man/man3/bn.3 -#usr/share/man/man3/bn_add_words.3 -#usr/share/man/man3/bn_check_top.3 -#usr/share/man/man3/bn_cmp_words.3 -#usr/share/man/man3/bn_div_words.3 -#usr/share/man/man3/bn_dump.3 -#usr/share/man/man3/bn_expand.3 -#usr/share/man/man3/bn_expand2.3 -#usr/share/man/man3/bn_fix_top.3 -#usr/share/man/man3/bn_internal.3 -#usr/share/man/man3/bn_mul_add_words.3 -#usr/share/man/man3/bn_mul_comba4.3 -#usr/share/man/man3/bn_mul_comba8.3 -#usr/share/man/man3/bn_mul_high.3 -#usr/share/man/man3/bn_mul_low_normal.3 -#usr/share/man/man3/bn_mul_low_recursive.3 -#usr/share/man/man3/bn_mul_normal.3 -#usr/share/man/man3/bn_mul_part_recursive.3 -#usr/share/man/man3/bn_mul_recursive.3 -#usr/share/man/man3/bn_mul_words.3 -#usr/share/man/man3/bn_print.3 -#usr/share/man/man3/bn_set_high.3 -#usr/share/man/man3/bn_set_low.3 -#usr/share/man/man3/bn_set_max.3 -#usr/share/man/man3/bn_sqr_comba4.3 -#usr/share/man/man3/bn_sqr_comba8.3 -#usr/share/man/man3/bn_sqr_normal.3 -#usr/share/man/man3/bn_sqr_recursive.3 -#usr/share/man/man3/bn_sqr_words.3 -#usr/share/man/man3/bn_sub_words.3 -#usr/share/man/man3/bn_wexpand.3 -#usr/share/man/man3/buffer.3 -#usr/share/man/man3/crypto.3 -#usr/share/man/man3/d2i_509_CRL_fp.3 -#usr/share/man/man3/d2i_ASN1_OBJECT.3 -#usr/share/man/man3/d2i_DHparams.3 -#usr/share/man/man3/d2i_DSAPrivateKey.3 -#usr/share/man/man3/d2i_DSAPublicKey.3 -#usr/share/man/man3/d2i_DSA_PUBKEY.3 -#usr/share/man/man3/d2i_DSA_SIG.3 -#usr/share/man/man3/d2i_Netscape_RSA.3 -#usr/share/man/man3/d2i_PKCS8PrivateKey.3 -#usr/share/man/man3/d2i_PKCS8PrivateKey_bio.3 -#usr/share/man/man3/d2i_PKCS8PrivateKey_fp.3 -#usr/share/man/man3/d2i_RSAPrivateKey.3 -#usr/share/man/man3/d2i_RSAPublicKey.3 -#usr/share/man/man3/d2i_RSA_PUBKEY.3 -#usr/share/man/man3/d2i_SSL_SESSION.3 -#usr/share/man/man3/d2i_X509.3 -#usr/share/man/man3/d2i_X509_ALGOR.3 -#usr/share/man/man3/d2i_X509_CRL.3 -#usr/share/man/man3/d2i_X509_CRL_bio.3 -#usr/share/man/man3/d2i_X509_NAME.3 -#usr/share/man/man3/d2i_X509_REQ.3 -#usr/share/man/man3/d2i_X509_REQ_bio.3 -#usr/share/man/man3/d2i_X509_REQ_fp.3 -#usr/share/man/man3/d2i_X509_SIG.3 -#usr/share/man/man3/d2i_X509_bio.3 -#usr/share/man/man3/d2i_X509_fp.3 -#usr/share/man/man3/des.3 -#usr/share/man/man3/des_read_2passwords.3 -#usr/share/man/man3/des_read_password.3 -#usr/share/man/man3/des_read_pw.3 -#usr/share/man/man3/des_read_pw_string.3 -#usr/share/man/man3/dh.3 -#usr/share/man/man3/dsa.3 -#usr/share/man/man3/ecdsa.3 -#usr/share/man/man3/engine.3 -#usr/share/man/man3/err.3 -#usr/share/man/man3/evp.3 -#usr/share/man/man3/hmac.3 -#usr/share/man/man3/i2d_ASN1_OBJECT.3 -#usr/share/man/man3/i2d_DHparams.3 -#usr/share/man/man3/i2d_DSAPrivateKey.3 -#usr/share/man/man3/i2d_DSAPublicKey.3 -#usr/share/man/man3/i2d_DSA_PUBKEY.3 -#usr/share/man/man3/i2d_DSA_SIG.3 -#usr/share/man/man3/i2d_Netscape_RSA.3 -#usr/share/man/man3/i2d_PKCS8PrivateKey_bio.3 -#usr/share/man/man3/i2d_PKCS8PrivateKey_fp.3 -#usr/share/man/man3/i2d_PKCS8PrivateKey_nid_bio.3 -#usr/share/man/man3/i2d_PKCS8PrivateKey_nid_fp.3 -#usr/share/man/man3/i2d_RSAPrivateKey.3 -#usr/share/man/man3/i2d_RSAPublicKey.3 -#usr/share/man/man3/i2d_RSA_PUBKEY.3 -#usr/share/man/man3/i2d_SSL_SESSION.3 -#usr/share/man/man3/i2d_X509.3 -#usr/share/man/man3/i2d_X509_ALGOR.3 -#usr/share/man/man3/i2d_X509_CRL.3 -#usr/share/man/man3/i2d_X509_CRL_bio.3 -#usr/share/man/man3/i2d_X509_CRL_fp.3 -#usr/share/man/man3/i2d_X509_NAME.3 -#usr/share/man/man3/i2d_X509_REQ.3 -#usr/share/man/man3/i2d_X509_REQ_bio.3 -#usr/share/man/man3/i2d_X509_REQ_fp.3 -#usr/share/man/man3/i2d_X509_SIG.3 -#usr/share/man/man3/i2d_X509_bio.3 -#usr/share/man/man3/i2d_X509_fp.3 -#usr/share/man/man3/lh_delete.3 -#usr/share/man/man3/lh_doall.3 -#usr/share/man/man3/lh_doall_arg.3 -#usr/share/man/man3/lh_error.3 -#usr/share/man/man3/lh_free.3 -#usr/share/man/man3/lh_insert.3 -#usr/share/man/man3/lh_new.3 -#usr/share/man/man3/lh_node_stats.3 -#usr/share/man/man3/lh_node_stats_bio.3 -#usr/share/man/man3/lh_node_usage_stats.3 -#usr/share/man/man3/lh_node_usage_stats_bio.3 -#usr/share/man/man3/lh_retrieve.3 -#usr/share/man/man3/lh_stats.3 -#usr/share/man/man3/lh_stats_bio.3 -#usr/share/man/man3/lhash.3 -#usr/share/man/man3/md5.3 -#usr/share/man/man3/mdc2.3 -#usr/share/man/man3/pem.3 -#usr/share/man/man3/rc4.3 -#usr/share/man/man3/ripemd.3 -#usr/share/man/man3/rsa.3 -#usr/share/man/man3/sha.3 -#usr/share/man/man3/ssl.3 -#usr/share/man/man3/ui.3 -#usr/share/man/man3/ui_compat.3 -#usr/share/man/man3/x509.3 -#usr/share/man/man5/config.5 -#usr/share/man/man5/x509v3_config.5 -#usr/share/man/man7/des_modes.7 diff --git a/config/rootfiles/common/openssl-compat b/config/rootfiles/common/openssl-compat new file mode 100644 index 0000000..ccf89d0 --- /dev/null +++ b/config/rootfiles/common/openssl-compat @@ -0,0 +1,2 @@ +usr/lib/libcrypto.so.0.9.8 +usr/lib/libssl.so.0.9.8 diff --git a/config/rootfiles/common/pakfire b/config/rootfiles/common/pakfire index f46a7b0..ab439c5 100644 --- a/config/rootfiles/common/pakfire +++ b/config/rootfiles/common/pakfire @@ -1,7 +1,4 @@ -#opt/pakfire opt/pakfire/cache -#opt/pakfire/db -opt/pakfire/db/core opt/pakfire/db/installed opt/pakfire/db/lists opt/pakfire/db/meta diff --git a/config/rootfiles/common/paxctl b/config/rootfiles/common/paxctl new file mode 100644 index 0000000..c9135a8 --- /dev/null +++ b/config/rootfiles/common/paxctl @@ -0,0 +1,2 @@ +sbin/paxctl +#usr/share/man/man1/paxctl.1 diff --git a/config/rootfiles/common/rng-tools b/config/rootfiles/common/rng-tools new file mode 100644 index 0000000..596a911 --- /dev/null +++ b/config/rootfiles/common/rng-tools @@ -0,0 +1,4 @@ +usr/bin/rngtest +usr/sbin/rngd +#usr/share/man/man1/rngtest.1 +#usr/share/man/man8/rngd.8 diff --git a/config/rootfiles/common/stage2 b/config/rootfiles/common/stage2 index 8bb65c3..87649e9 100644 --- a/config/rootfiles/common/stage2 +++ b/config/rootfiles/common/stage2 @@ -20,8 +20,8 @@ etc/ld.so.conf etc/logrotate.conf etc/mime.types etc/modprobe.d -etc/modprobe.d/cfg80211 -etc/modprobe.d/pcspeaker +etc/modprobe.d/cfg80211.conf +etc/modprobe.d/pcspeaker.conf etc/modules.conf etc/mtab etc/nsswitch.conf @@ -41,6 +41,7 @@ etc/resolv.conf etc/securetty etc/sysctl.conf etc/syslog.conf +etc/system-release #home home/nobody #lib @@ -50,6 +51,10 @@ media/floppy media/usbkey mnt #opt +#opt/pakfire +#opt/pakfire/db +#opt/pakfire/db/core +opt/pakfire/db/core/mine #root root/.bash_logout root/.bash_profile @@ -61,6 +66,9 @@ root/ipfire #usr/bin/perl #usr/include #usr/lib +usr/lib/firewall +usr/lib/firewall/firewall-lib.pl +usr/lib/firewall/rules.pl #usr/lib/libgcc_s.so usr/lib/libgcc_s.so.1 #usr/lib/libstdc++.la @@ -73,7 +81,6 @@ usr/local/bin/backupiso usr/local/bin/connscheduler usr/local/bin/consort.sh usr/local/bin/convert-ovpn -usr/local/bin/dialctrl.pl usr/local/bin/hddshutdown usr/local/bin/httpscert usr/local/bin/makegraphs @@ -86,6 +93,7 @@ usr/local/bin/scanhd usr/local/bin/setddns.pl usr/local/bin/settime usr/local/bin/timecheck +usr/local/bin/timezone-transition #usr/local/bin/uname usr/local/bin/update-lang-cache #usr/local/include @@ -128,6 +136,7 @@ usr/share/doc/licenses/GPLv3 #usr/share/misc #usr/share/terminfo #usr/share/zoneinfo +run #var #var/cache var/empty @@ -146,7 +155,6 @@ var/log/wtmp var/mail #var/opt var/run -var/run/utmp #var/spool var/tmp dev/console diff --git a/config/rootfiles/common/strongswan b/config/rootfiles/common/strongswan index 732e327..9b61cd1 100644 --- a/config/rootfiles/common/strongswan +++ b/config/rootfiles/common/strongswan @@ -10,6 +10,57 @@ etc/ipsec.d/private etc/ipsec.d/reqs etc/ipsec.secrets etc/strongswan.conf +etc/strongswan.d +etc/strongswan.d/charon +etc/strongswan.d/charon-logging.conf +etc/strongswan.d/charon.conf +etc/strongswan.d/charon/aes.conf +etc/strongswan.d/charon/attr.conf +etc/strongswan.d/charon/cmac.conf +etc/strongswan.d/charon/constraints.conf +etc/strongswan.d/charon/curl.conf +etc/strongswan.d/charon/des.conf +etc/strongswan.d/charon/dhcp.conf +etc/strongswan.d/charon/dnskey.conf +etc/strongswan.d/charon/eap-identity.conf +etc/strongswan.d/charon/eap-mschapv2.conf +etc/strongswan.d/charon/eap-peap.conf +etc/strongswan.d/charon/eap-radius.conf +etc/strongswan.d/charon/eap-tls.conf +etc/strongswan.d/charon/eap-ttls.conf +etc/strongswan.d/charon/farp.conf +etc/strongswan.d/charon/fips-prf.conf +etc/strongswan.d/charon/gmp.conf +etc/strongswan.d/charon/hmac.conf +etc/strongswan.d/charon/kernel-netlink.conf +etc/strongswan.d/charon/md5.conf +etc/strongswan.d/charon/nonce.conf +etc/strongswan.d/charon/openssl.conf +#etc/strongswan.d/charon/padlock.conf +etc/strongswan.d/charon/pem.conf +etc/strongswan.d/charon/pgp.conf +etc/strongswan.d/charon/pkcs1.conf +etc/strongswan.d/charon/pkcs12.conf +etc/strongswan.d/charon/pkcs7.conf +etc/strongswan.d/charon/pkcs8.conf +etc/strongswan.d/charon/pubkey.conf +etc/strongswan.d/charon/random.conf +etc/strongswan.d/charon/rc2.conf +etc/strongswan.d/charon/resolve.conf +etc/strongswan.d/charon/revocation.conf +etc/strongswan.d/charon/sha1.conf +etc/strongswan.d/charon/sha2.conf +etc/strongswan.d/charon/socket-default.conf +etc/strongswan.d/charon/sshkey.conf +etc/strongswan.d/charon/stroke.conf +etc/strongswan.d/charon/unity.conf +etc/strongswan.d/charon/updown.conf +etc/strongswan.d/charon/x509.conf +etc/strongswan.d/charon/xauth-eap.conf +etc/strongswan.d/charon/xauth-generic.conf +etc/strongswan.d/charon/xcbc.conf +etc/strongswan.d/starter.conf +etc/strongswan.d/tools.conf usr/bin/pki #usr/lib/ipsec #usr/lib/ipsec/libcharon.a @@ -43,6 +94,7 @@ usr/lib/ipsec/plugins/libstrongswan-attr.so usr/lib/ipsec/plugins/libstrongswan-cmac.so usr/lib/ipsec/plugins/libstrongswan-constraints.so usr/lib/ipsec/plugins/libstrongswan-curl.so +usr/lib/ipsec/plugins/libstrongswan-dhcp.so usr/lib/ipsec/plugins/libstrongswan-des.so usr/lib/ipsec/plugins/libstrongswan-dnskey.so usr/lib/ipsec/plugins/libstrongswan-eap-identity.so @@ -51,6 +103,7 @@ usr/lib/ipsec/plugins/libstrongswan-eap-peap.so usr/lib/ipsec/plugins/libstrongswan-eap-radius.so usr/lib/ipsec/plugins/libstrongswan-eap-tls.so usr/lib/ipsec/plugins/libstrongswan-eap-ttls.so +usr/lib/ipsec/plugins/libstrongswan-farp.so usr/lib/ipsec/plugins/libstrongswan-fips-prf.so usr/lib/ipsec/plugins/libstrongswan-gmp.so usr/lib/ipsec/plugins/libstrongswan-hmac.so @@ -68,6 +121,7 @@ usr/lib/ipsec/plugins/libstrongswan-pkcs8.so usr/lib/ipsec/plugins/libstrongswan-pubkey.so usr/lib/ipsec/plugins/libstrongswan-random.so usr/lib/ipsec/plugins/libstrongswan-rc2.so +#usr/lib/ipsec/plugins/libstrongswan-rdrand.so usr/lib/ipsec/plugins/libstrongswan-resolve.so usr/lib/ipsec/plugins/libstrongswan-revocation.so usr/lib/ipsec/plugins/libstrongswan-sha1.so @@ -110,3 +164,58 @@ usr/sbin/ipsec #usr/share/man/man8/ipsec.8 #usr/share/man/man8/openac.8 #usr/share/man/man8/scepclient.8 +#usr/share/strongswan +#usr/share/strongswan/templates +#usr/share/strongswan/templates/config +#usr/share/strongswan/templates/config/plugins +#usr/share/strongswan/templates/config/plugins/aes.conf +#usr/share/strongswan/templates/config/plugins/attr.conf +#usr/share/strongswan/templates/config/plugins/cmac.conf +#usr/share/strongswan/templates/config/plugins/constraints.conf +#usr/share/strongswan/templates/config/plugins/curl.conf +#usr/share/strongswan/templates/config/plugins/des.conf +#usr/share/strongswan/templates/config/plugins/dhcp.conf +#usr/share/strongswan/templates/config/plugins/dnskey.conf +#usr/share/strongswan/templates/config/plugins/eap-identity.conf +#usr/share/strongswan/templates/config/plugins/eap-mschapv2.conf +#usr/share/strongswan/templates/config/plugins/eap-peap.conf +#usr/share/strongswan/templates/config/plugins/eap-radius.conf +#usr/share/strongswan/templates/config/plugins/eap-tls.conf +#usr/share/strongswan/templates/config/plugins/eap-ttls.conf +#usr/share/strongswan/templates/config/plugins/farp.conf +#usr/share/strongswan/templates/config/plugins/fips-prf.conf +#usr/share/strongswan/templates/config/plugins/gmp.conf +#usr/share/strongswan/templates/config/plugins/hmac.conf +#usr/share/strongswan/templates/config/plugins/kernel-netlink.conf +#usr/share/strongswan/templates/config/plugins/md5.conf +#usr/share/strongswan/templates/config/plugins/nonce.conf +#usr/share/strongswan/templates/config/plugins/openssl.conf +#usr/share/strongswan/templates/config/plugins/padlock.conf +#usr/share/strongswan/templates/config/plugins/pem.conf +#usr/share/strongswan/templates/config/plugins/pgp.conf +#usr/share/strongswan/templates/config/plugins/pkcs1.conf +#usr/share/strongswan/templates/config/plugins/pkcs12.conf +#usr/share/strongswan/templates/config/plugins/pkcs7.conf +#usr/share/strongswan/templates/config/plugins/pkcs8.conf +#usr/share/strongswan/templates/config/plugins/pubkey.conf +#usr/share/strongswan/templates/config/plugins/random.conf +#usr/share/strongswan/templates/config/plugins/rc2.conf +#usr/share/strongswan/templates/config/plugins/resolve.conf +#usr/share/strongswan/templates/config/plugins/revocation.conf +#usr/share/strongswan/templates/config/plugins/sha1.conf +#usr/share/strongswan/templates/config/plugins/sha2.conf +#usr/share/strongswan/templates/config/plugins/socket-default.conf +#usr/share/strongswan/templates/config/plugins/sshkey.conf +#usr/share/strongswan/templates/config/plugins/stroke.conf +#usr/share/strongswan/templates/config/plugins/unity.conf +#usr/share/strongswan/templates/config/plugins/updown.conf +#usr/share/strongswan/templates/config/plugins/x509.conf +#usr/share/strongswan/templates/config/plugins/xauth-eap.conf +#usr/share/strongswan/templates/config/plugins/xauth-generic.conf +#usr/share/strongswan/templates/config/plugins/xcbc.conf +#usr/share/strongswan/templates/config/strongswan.conf +#usr/share/strongswan/templates/config/strongswan.d +#usr/share/strongswan/templates/config/strongswan.d/charon-logging.conf +#usr/share/strongswan/templates/config/strongswan.d/charon.conf +#usr/share/strongswan/templates/config/strongswan.d/starter.conf +#usr/share/strongswan/templates/config/strongswan.d/tools.conf diff --git a/config/rootfiles/common/sudo b/config/rootfiles/common/sudo index 4aa763e..c904fc3 100644 --- a/config/rootfiles/common/sudo +++ b/config/rootfiles/common/sudo @@ -1,10 +1,77 @@ etc/sudoers +etc/sudoers.d usr/bin/sudo usr/bin/sudoedit -usr/lib/sudo_noexec.la -usr/lib/sudo_noexec.so -#usr/man/man5/sudoers.5 -#usr/man/man8/sudo.8 -#usr/man/man8/sudoedit.8 -#usr/man/man8/visudo.8 +usr/bin/sudoreplay +#usr/include/sudo_plugin.h +usr/lib/sudo +usr/lib/sudo/group_file.so +usr/lib/sudo/sudo_noexec.so +usr/lib/sudo/sudoers.so +usr/lib/sudo/system_group.so usr/sbin/visudo +#usr/share/doc/sudo +#usr/share/doc/sudo/CONTRIBUTORS +#usr/share/doc/sudo/ChangeLog +#usr/share/doc/sudo/HISTORY +#usr/share/doc/sudo/LICENSE +#usr/share/doc/sudo/NEWS +#usr/share/doc/sudo/README +#usr/share/doc/sudo/TROUBLESHOOTING +#usr/share/doc/sudo/UPGRADE +#usr/share/doc/sudo/sample.pam +#usr/share/doc/sudo/sample.sudo.conf +#usr/share/doc/sudo/sample.sudoers +#usr/share/doc/sudo/sample.syslog.conf +#usr/share/locale/ca/LC_MESSAGES/sudo.mo +#usr/share/locale/cs/LC_MESSAGES/sudo.mo +#usr/share/locale/cs/LC_MESSAGES/sudoers.mo +#usr/share/locale/da/LC_MESSAGES/sudo.mo +#usr/share/locale/da/LC_MESSAGES/sudoers.mo +#usr/share/locale/de/LC_MESSAGES/sudo.mo +#usr/share/locale/de/LC_MESSAGES/sudoers.mo +#usr/share/locale/eo/LC_MESSAGES/sudo.mo +#usr/share/locale/eo/LC_MESSAGES/sudoers.mo +#usr/share/locale/es/LC_MESSAGES/sudo.mo +#usr/share/locale/eu/LC_MESSAGES/sudo.mo +#usr/share/locale/eu/LC_MESSAGES/sudoers.mo +#usr/share/locale/fi/LC_MESSAGES/sudo.mo +#usr/share/locale/fi/LC_MESSAGES/sudoers.mo +#usr/share/locale/fr/LC_MESSAGES/sudo.mo +#usr/share/locale/gl/LC_MESSAGES/sudo.mo +#usr/share/locale/hr/LC_MESSAGES/sudo.mo +#usr/share/locale/hr/LC_MESSAGES/sudoers.mo +#usr/share/locale/it/LC_MESSAGES/sudo.mo +#usr/share/locale/it/LC_MESSAGES/sudoers.mo +#usr/share/locale/ja/LC_MESSAGES/sudo.mo +#usr/share/locale/ja/LC_MESSAGES/sudoers.mo +#usr/share/locale/lt/LC_MESSAGES/sudoers.mo +#usr/share/locale/nl/LC_MESSAGES/sudo.mo +#usr/share/locale/nl/LC_MESSAGES/sudoers.mo +#usr/share/locale/pl/LC_MESSAGES/sudo.mo +#usr/share/locale/pl/LC_MESSAGES/sudoers.mo +#usr/share/locale/pt_BR/LC_MESSAGES/sudo.mo +#usr/share/locale/pt_BR/LC_MESSAGES/sudoers.mo +#usr/share/locale/ru/LC_MESSAGES/sudo.mo +#usr/share/locale/sl/LC_MESSAGES/sudo.mo +#usr/share/locale/sl/LC_MESSAGES/sudoers.mo +#usr/share/locale/sr/LC_MESSAGES/sudo.mo +#usr/share/locale/sr/LC_MESSAGES/sudoers.mo +#usr/share/locale/sv/LC_MESSAGES/sudo.mo +#usr/share/locale/sv/LC_MESSAGES/sudoers.mo +#usr/share/locale/tr/LC_MESSAGES/sudo.mo +#usr/share/locale/tr/LC_MESSAGES/sudoers.mo +#usr/share/locale/uk/LC_MESSAGES/sudo.mo +#usr/share/locale/uk/LC_MESSAGES/sudoers.mo +#usr/share/locale/vi/LC_MESSAGES/sudo.mo +#usr/share/locale/vi/LC_MESSAGES/sudoers.mo +#usr/share/locale/zh_CN/LC_MESSAGES/sudo.mo +#usr/share/locale/zh_CN/LC_MESSAGES/sudoers.mo +#usr/share/man/man5/sudo.conf.5 +#usr/share/man/man5/sudoers.5 +#usr/share/man/man8/sudo.8 +#usr/share/man/man8/sudo_plugin.8 +#usr/share/man/man8/sudoedit.8 +#usr/share/man/man8/sudoreplay.8 +#usr/share/man/man8/visudo.8 +var/lib/sudo diff --git a/config/rootfiles/common/tzdata b/config/rootfiles/common/tzdata index 7362a0f..4bb0df2 100644 --- a/config/rootfiles/common/tzdata +++ b/config/rootfiles/common/tzdata @@ -281,6 +281,7 @@ usr/share/zoneinfo #usr/share/zoneinfo/Asia/Kashgar #usr/share/zoneinfo/Asia/Kathmandu #usr/share/zoneinfo/Asia/Katmandu +#usr/share/zoneinfo/Asia/Khandyga #usr/share/zoneinfo/Asia/Kolkata #usr/share/zoneinfo/Asia/Krasnoyarsk #usr/share/zoneinfo/Asia/Kuala_Lumpur @@ -304,9 +305,6 @@ usr/share/zoneinfo #usr/share/zoneinfo/Asia/Qyzylorda #usr/share/zoneinfo/Asia/Rangoon #usr/share/zoneinfo/Asia/Riyadh -#usr/share/zoneinfo/Asia/Riyadh87 -#usr/share/zoneinfo/Asia/Riyadh88 -#usr/share/zoneinfo/Asia/Riyadh89 #usr/share/zoneinfo/Asia/Saigon #usr/share/zoneinfo/Asia/Sakhalin #usr/share/zoneinfo/Asia/Samarkand @@ -325,6 +323,7 @@ usr/share/zoneinfo #usr/share/zoneinfo/Asia/Ulaanbaatar #usr/share/zoneinfo/Asia/Ulan_Bator #usr/share/zoneinfo/Asia/Urumqi +#usr/share/zoneinfo/Asia/Ust-Nera #usr/share/zoneinfo/Asia/Vientiane #usr/share/zoneinfo/Asia/Vladivostok #usr/share/zoneinfo/Asia/Yakutsk @@ -440,6 +439,7 @@ usr/share/zoneinfo #usr/share/zoneinfo/Europe/Brussels #usr/share/zoneinfo/Europe/Bucharest #usr/share/zoneinfo/Europe/Budapest +#usr/share/zoneinfo/Europe/Busingen #usr/share/zoneinfo/Europe/Chisinau #usr/share/zoneinfo/Europe/Copenhagen #usr/share/zoneinfo/Europe/Dublin @@ -524,10 +524,6 @@ usr/share/zoneinfo #usr/share/zoneinfo/Mexico/BajaNorte #usr/share/zoneinfo/Mexico/BajaSur #usr/share/zoneinfo/Mexico/General -#usr/share/zoneinfo/Mideast -#usr/share/zoneinfo/Mideast/Riyadh87 -#usr/share/zoneinfo/Mideast/Riyadh88 -#usr/share/zoneinfo/Mideast/Riyadh89 #usr/share/zoneinfo/NZ #usr/share/zoneinfo/NZ-CHAT #usr/share/zoneinfo/Navajo @@ -886,6 +882,7 @@ usr/share/zoneinfo #usr/share/zoneinfo/posix/Asia/Kashgar #usr/share/zoneinfo/posix/Asia/Kathmandu #usr/share/zoneinfo/posix/Asia/Katmandu +#usr/share/zoneinfo/posix/Asia/Khandyga #usr/share/zoneinfo/posix/Asia/Kolkata #usr/share/zoneinfo/posix/Asia/Krasnoyarsk #usr/share/zoneinfo/posix/Asia/Kuala_Lumpur @@ -909,9 +906,6 @@ usr/share/zoneinfo #usr/share/zoneinfo/posix/Asia/Qyzylorda #usr/share/zoneinfo/posix/Asia/Rangoon #usr/share/zoneinfo/posix/Asia/Riyadh -#usr/share/zoneinfo/posix/Asia/Riyadh87 -#usr/share/zoneinfo/posix/Asia/Riyadh88 -#usr/share/zoneinfo/posix/Asia/Riyadh89 #usr/share/zoneinfo/posix/Asia/Saigon #usr/share/zoneinfo/posix/Asia/Sakhalin #usr/share/zoneinfo/posix/Asia/Samarkand @@ -930,6 +924,7 @@ usr/share/zoneinfo #usr/share/zoneinfo/posix/Asia/Ulaanbaatar #usr/share/zoneinfo/posix/Asia/Ulan_Bator #usr/share/zoneinfo/posix/Asia/Urumqi +#usr/share/zoneinfo/posix/Asia/Ust-Nera #usr/share/zoneinfo/posix/Asia/Vientiane #usr/share/zoneinfo/posix/Asia/Vladivostok #usr/share/zoneinfo/posix/Asia/Yakutsk @@ -1045,6 +1040,7 @@ usr/share/zoneinfo #usr/share/zoneinfo/posix/Europe/Brussels #usr/share/zoneinfo/posix/Europe/Bucharest #usr/share/zoneinfo/posix/Europe/Budapest +#usr/share/zoneinfo/posix/Europe/Busingen #usr/share/zoneinfo/posix/Europe/Chisinau #usr/share/zoneinfo/posix/Europe/Copenhagen #usr/share/zoneinfo/posix/Europe/Dublin @@ -1093,7 +1089,6 @@ usr/share/zoneinfo #usr/share/zoneinfo/posix/Europe/Zagreb #usr/share/zoneinfo/posix/Europe/Zaporozhye #usr/share/zoneinfo/posix/Europe/Zurich -#usr/share/zoneinfo/posix/Factory #usr/share/zoneinfo/posix/GB #usr/share/zoneinfo/posix/GB-Eire #usr/share/zoneinfo/posix/GMT @@ -1129,10 +1124,6 @@ usr/share/zoneinfo #usr/share/zoneinfo/posix/Mexico/BajaNorte #usr/share/zoneinfo/posix/Mexico/BajaSur #usr/share/zoneinfo/posix/Mexico/General -#usr/share/zoneinfo/posix/Mideast -#usr/share/zoneinfo/posix/Mideast/Riyadh87 -#usr/share/zoneinfo/posix/Mideast/Riyadh88 -#usr/share/zoneinfo/posix/Mideast/Riyadh89 #usr/share/zoneinfo/posix/NZ #usr/share/zoneinfo/posix/NZ-CHAT #usr/share/zoneinfo/posix/Navajo @@ -1491,6 +1482,7 @@ usr/share/zoneinfo #usr/share/zoneinfo/right/Asia/Kashgar #usr/share/zoneinfo/right/Asia/Kathmandu #usr/share/zoneinfo/right/Asia/Katmandu +#usr/share/zoneinfo/right/Asia/Khandyga #usr/share/zoneinfo/right/Asia/Kolkata #usr/share/zoneinfo/right/Asia/Krasnoyarsk #usr/share/zoneinfo/right/Asia/Kuala_Lumpur @@ -1514,9 +1506,6 @@ usr/share/zoneinfo #usr/share/zoneinfo/right/Asia/Qyzylorda #usr/share/zoneinfo/right/Asia/Rangoon #usr/share/zoneinfo/right/Asia/Riyadh -#usr/share/zoneinfo/right/Asia/Riyadh87 -#usr/share/zoneinfo/right/Asia/Riyadh88 -#usr/share/zoneinfo/right/Asia/Riyadh89 #usr/share/zoneinfo/right/Asia/Saigon #usr/share/zoneinfo/right/Asia/Sakhalin #usr/share/zoneinfo/right/Asia/Samarkand @@ -1535,6 +1524,7 @@ usr/share/zoneinfo #usr/share/zoneinfo/right/Asia/Ulaanbaatar #usr/share/zoneinfo/right/Asia/Ulan_Bator #usr/share/zoneinfo/right/Asia/Urumqi +#usr/share/zoneinfo/right/Asia/Ust-Nera #usr/share/zoneinfo/right/Asia/Vientiane #usr/share/zoneinfo/right/Asia/Vladivostok #usr/share/zoneinfo/right/Asia/Yakutsk @@ -1650,6 +1640,7 @@ usr/share/zoneinfo #usr/share/zoneinfo/right/Europe/Brussels #usr/share/zoneinfo/right/Europe/Bucharest #usr/share/zoneinfo/right/Europe/Budapest +#usr/share/zoneinfo/right/Europe/Busingen #usr/share/zoneinfo/right/Europe/Chisinau #usr/share/zoneinfo/right/Europe/Copenhagen #usr/share/zoneinfo/right/Europe/Dublin @@ -1698,7 +1689,6 @@ usr/share/zoneinfo #usr/share/zoneinfo/right/Europe/Zagreb #usr/share/zoneinfo/right/Europe/Zaporozhye #usr/share/zoneinfo/right/Europe/Zurich -#usr/share/zoneinfo/right/Factory #usr/share/zoneinfo/right/GB #usr/share/zoneinfo/right/GB-Eire #usr/share/zoneinfo/right/GMT @@ -1734,10 +1724,6 @@ usr/share/zoneinfo #usr/share/zoneinfo/right/Mexico/BajaNorte #usr/share/zoneinfo/right/Mexico/BajaSur #usr/share/zoneinfo/right/Mexico/General -#usr/share/zoneinfo/right/Mideast -#usr/share/zoneinfo/right/Mideast/Riyadh87 -#usr/share/zoneinfo/right/Mideast/Riyadh88 -#usr/share/zoneinfo/right/Mideast/Riyadh89 #usr/share/zoneinfo/right/NZ #usr/share/zoneinfo/right/NZ-CHAT #usr/share/zoneinfo/right/Navajo diff --git a/config/rootfiles/common/udev b/config/rootfiles/common/udev index bacd0cb..bc1cdaa 100644 --- a/config/rootfiles/common/udev +++ b/config/rootfiles/common/udev @@ -1,71 +1,99 @@ -etc/modprobe.d/blacklist -etc/scsi_id.config +bin/udevadm +etc/modprobe.d/blacklist.conf etc/udev #etc/udev/rules.d #etc/udev/rules.d/30-persistent-network.rules +#etc/udev/rules.d/55-lfs.rules +#etc/udev/rules.d/81-cdrom.rules +#etc/udev/rules.d/83-cdrom-symlinks.rules #etc/udev/udev.conf #lib/firmware -lib/libudev.so.0 -lib/libudev.so.0.2.0 -lib/libvolume_id.so.1 -lib/libvolume_id.so.1.1.0 +lib/libudev.so.1 +lib/libudev.so.1.3.2 lib/udev +#lib/udev/accelerometer #lib/udev/ata_id #lib/udev/cdrom_id #lib/udev/collect -#lib/udev/create_floppy_devices #lib/udev/devices -#lib/udev/devices/core -#lib/udev/devices/fd -#lib/udev/devices/null #lib/udev/devices/pts -#lib/udev/devices/shm -#lib/udev/devices/stderr -#lib/udev/devices/stdin -#lib/udev/devices/stdout -#lib/udev/edd_id #lib/udev/enable_codel -#lib/udev/firmware.sh -#lib/udev/fstab_import -#lib/udev/path_id +#lib/udev/hwdb.d +#lib/udev/hwdb.d/20-OUI.hwdb +#lib/udev/hwdb.d/20-acpi-vendor.hwdb +#lib/udev/hwdb.d/20-bluetooth-vendor-product.hwdb +#lib/udev/hwdb.d/20-pci-classes.hwdb +#lib/udev/hwdb.d/20-pci-vendor-model.hwdb +#lib/udev/hwdb.d/20-usb-classes.hwdb +#lib/udev/hwdb.d/20-usb-vendor-model.hwdb +#lib/udev/hwdb.d/60-keyboard.hwdb +#lib/udev/init-net-rules.sh +#lib/udev/mtd_probe #lib/udev/rule_generator.functions #lib/udev/rules.d #lib/udev/rules.d/25-alsa.rules +#lib/udev/rules.d/42-usb-hid-pm.rules #lib/udev/rules.d/50-firmware.rules #lib/udev/rules.d/50-udev-default.rules #lib/udev/rules.d/60-cdrom_id.rules +#lib/udev/rules.d/60-keyboard.rules +#lib/udev/rules.d/60-persistent-alsa.rules #lib/udev/rules.d/60-persistent-input.rules #lib/udev/rules.d/60-persistent-serial.rules #lib/udev/rules.d/60-persistent-storage-tape.rules #lib/udev/rules.d/60-persistent-storage.rules #lib/udev/rules.d/60-persistent-v4l.rules -#lib/udev/rules.d/61-persistent-storage-edd.rules -#lib/udev/rules.d/75-cd-aliases-generator.rules -#lib/udev/rules.d/79-fstab_import.rules +#lib/udev/rules.d/61-accelerometer.rules +#lib/udev/rules.d/64-btrfs.rules +#lib/udev/rules.d/75-net-description.rules +#lib/udev/rules.d/75-probe_mtd.rules +#lib/udev/rules.d/75-tty-description.rules +#lib/udev/rules.d/78-sound-card.rules #lib/udev/rules.d/80-drivers.rules +#lib/udev/rules.d/80-net-name-slot.rules +#lib/udev/rules.d/90-hwrng.rules #lib/udev/rules.d/95-udev-late.rules #lib/udev/rules.d/99-codel.rules #lib/udev/scsi_id -#lib/udev/usb_id -#lib/udev/vol_id +#lib/udev/udevd +#lib/udev/v4l_id #lib/udev/write_cd_rules #lib/udev/write_net_rules sbin/udevadm sbin/udevd #usr/include/libudev.h -#usr/include/libvolume_id.h +#usr/lib/firmware usr/lib/libudev.so -usr/lib/libvolume_id.so #usr/lib/pkgconfig/libudev.pc -#usr/lib/pkgconfig/libvolume_id.pc +#usr/lib/pkgconfig/udev.pc +#usr/share/doc/udev-208 +#usr/share/doc/udev-208/lfs +#usr/share/doc/udev-208/lfs/55-lfs.txt +#usr/share/doc/udev-208/lfs/README +#usr/share/doc/udev-208/libudev-overrides.txt +#usr/share/doc/udev-208/libudev-sections.txt +#usr/share/doc/udev-208/libudev.types +#usr/share/gtk-doc +#usr/share/gtk-doc/html +#usr/share/gtk-doc/html/libudev +#usr/share/gtk-doc/html/libudev/api-index-full.html +#usr/share/gtk-doc/html/libudev/ch01.html +#usr/share/gtk-doc/html/libudev/home.png +#usr/share/gtk-doc/html/libudev/index.html +#usr/share/gtk-doc/html/libudev/index.sgml +#usr/share/gtk-doc/html/libudev/left.png +#usr/share/gtk-doc/html/libudev/libudev-udev-device.html +#usr/share/gtk-doc/html/libudev/libudev-udev-enumerate.html +#usr/share/gtk-doc/html/libudev/libudev-udev-hwdb.html +#usr/share/gtk-doc/html/libudev/libudev-udev-list.html +#usr/share/gtk-doc/html/libudev/libudev-udev-monitor.html +#usr/share/gtk-doc/html/libudev/libudev-udev-queue.html +#usr/share/gtk-doc/html/libudev/libudev-udev-util.html +#usr/share/gtk-doc/html/libudev/libudev-udev.html +#usr/share/gtk-doc/html/libudev/libudev.devhelp2 +#usr/share/gtk-doc/html/libudev/right.png +#usr/share/gtk-doc/html/libudev/style.css +#usr/share/gtk-doc/html/libudev/up.png #usr/share/man/man7/udev.7 -#usr/share/man/man8/ata_id.8 -#usr/share/man/man8/cdrom_id.8 -#usr/share/man/man8/create_floppy_devices.8 -#usr/share/man/man8/edd_id.8 -#usr/share/man/man8/path_id.8 -#usr/share/man/man8/scsi_id.8 #usr/share/man/man8/udevadm.8 #usr/share/man/man8/udevd.8 -#usr/share/man/man8/usb_id.8 -#usr/share/man/man8/vol_id.8 diff --git a/config/rootfiles/common/usb_modeswitch b/config/rootfiles/common/usb_modeswitch index ab46c4d..2b386b3 100644 --- a/config/rootfiles/common/usb_modeswitch +++ b/config/rootfiles/common/usb_modeswitch @@ -3,4 +3,5 @@ lib/udev/usb_modeswitch usr/sbin/usb_modeswitch usr/sbin/usb_modeswitch_dispatcher #usr/share/man/man1/usb_modeswitch.1 +#usr/share/man/man1/usb_modeswitch_dispatcher.1 var/lib/usb_modeswitch diff --git a/config/rootfiles/common/usb_modeswitch_data b/config/rootfiles/common/usb_modeswitch_data index a454c61..6948694 100644 --- a/config/rootfiles/common/usb_modeswitch_data +++ b/config/rootfiles/common/usb_modeswitch_data @@ -2,6 +2,9 @@ etc/usb_modeswitch.d lib/udev/rules.d/40-usb_modeswitch.rules #usr/share/usb_modeswitch usr/share/usb_modeswitch/03f0:002a +usr/share/usb_modeswitch/0408:ea17 +usr/share/usb_modeswitch/0408:ea25 +usr/share/usb_modeswitch/0408:ea43 usr/share/usb_modeswitch/0408:f000 usr/share/usb_modeswitch/0421:060c usr/share/usb_modeswitch/0421:0610 @@ -21,6 +24,7 @@ usr/share/usb_modeswitch/04cc:225c usr/share/usb_modeswitch/04e8:680c usr/share/usb_modeswitch/04e8:689a usr/share/usb_modeswitch/04e8:f000:sMo=U209 +usr/share/usb_modeswitch/057c:62ff usr/share/usb_modeswitch/057c:84ff usr/share/usb_modeswitch/05c6:0010 usr/share/usb_modeswitch/05c6:1000:sVe=GT @@ -36,6 +40,7 @@ usr/share/usb_modeswitch/05c6:1000:uMa=Vertex usr/share/usb_modeswitch/05c6:2000 usr/share/usb_modeswitch/05c6:2001 usr/share/usb_modeswitch/05c6:6503 +usr/share/usb_modeswitch/05c6:9024 usr/share/usb_modeswitch/05c6:f000 usr/share/usb_modeswitch/05c7:1000 usr/share/usb_modeswitch/072f:100d @@ -112,6 +117,7 @@ usr/share/usb_modeswitch/0d46:45a5 usr/share/usb_modeswitch/0df7:0800 usr/share/usb_modeswitch/0e8d:0002:uPr=MT usr/share/usb_modeswitch/0e8d:7109 +usr/share/usb_modeswitch/0fca:8020 usr/share/usb_modeswitch/0fce:d0cf usr/share/usb_modeswitch/0fce:d0e1 usr/share/usb_modeswitch/0fce:d103 @@ -136,6 +142,7 @@ usr/share/usb_modeswitch/106c:3b11 usr/share/usb_modeswitch/106c:3b14 usr/share/usb_modeswitch/1076:7f40 usr/share/usb_modeswitch/109b:f009 +usr/share/usb_modeswitch/10a9:6080 usr/share/usb_modeswitch/1199:0fff usr/share/usb_modeswitch/1266:1000 usr/share/usb_modeswitch/12d1:1001 @@ -166,6 +173,7 @@ usr/share/usb_modeswitch/12d1:1526 usr/share/usb_modeswitch/12d1:1553 usr/share/usb_modeswitch/12d1:1557 usr/share/usb_modeswitch/12d1:155b +usr/share/usb_modeswitch/12d1:156a usr/share/usb_modeswitch/12d1:1805 usr/share/usb_modeswitch/12d1:1c0b usr/share/usb_modeswitch/12d1:1c1b @@ -175,6 +183,11 @@ usr/share/usb_modeswitch/12d1:1da1 usr/share/usb_modeswitch/12d1:1f01 usr/share/usb_modeswitch/12d1:1f03 usr/share/usb_modeswitch/12d1:1f11 +usr/share/usb_modeswitch/12d1:1f15 +usr/share/usb_modeswitch/12d1:1f16 +usr/share/usb_modeswitch/12d1:1f17 +usr/share/usb_modeswitch/12d1:1f18 +usr/share/usb_modeswitch/12d1:1f19 usr/share/usb_modeswitch/12d1:380b usr/share/usb_modeswitch/1307:1169 usr/share/usb_modeswitch/1410:5010 @@ -198,12 +211,9 @@ usr/share/usb_modeswitch/1726:f00e usr/share/usb_modeswitch/198a:0003 usr/share/usb_modeswitch/198f:bccd usr/share/usb_modeswitch/19d2:0003 -usr/share/usb_modeswitch/19d2:0013 usr/share/usb_modeswitch/19d2:0026 -usr/share/usb_modeswitch/19d2:0031 usr/share/usb_modeswitch/19d2:0040 usr/share/usb_modeswitch/19d2:0053 -usr/share/usb_modeswitch/19d2:0083 usr/share/usb_modeswitch/19d2:0083:uPr=WCDMA usr/share/usb_modeswitch/19d2:0101 usr/share/usb_modeswitch/19d2:0103 @@ -217,6 +227,7 @@ usr/share/usb_modeswitch/19d2:0154 usr/share/usb_modeswitch/19d2:0166 usr/share/usb_modeswitch/19d2:0169 usr/share/usb_modeswitch/19d2:0266 +usr/share/usb_modeswitch/19d2:0304 usr/share/usb_modeswitch/19d2:0325 usr/share/usb_modeswitch/19d2:1001 usr/share/usb_modeswitch/19d2:1007 @@ -229,6 +240,7 @@ usr/share/usb_modeswitch/19d2:1179 usr/share/usb_modeswitch/19d2:1201 usr/share/usb_modeswitch/19d2:1216 usr/share/usb_modeswitch/19d2:1224 +usr/share/usb_modeswitch/19d2:1225 usr/share/usb_modeswitch/19d2:1227 usr/share/usb_modeswitch/19d2:1514 usr/share/usb_modeswitch/19d2:1517 @@ -237,6 +249,7 @@ usr/share/usb_modeswitch/19d2:1523 usr/share/usb_modeswitch/19d2:1528 usr/share/usb_modeswitch/19d2:1542 usr/share/usb_modeswitch/19d2:2000 +usr/share/usb_modeswitch/19d2:2004 usr/share/usb_modeswitch/19d2:bccd usr/share/usb_modeswitch/19d2:ffde usr/share/usb_modeswitch/19d2:ffe6 @@ -248,6 +261,7 @@ usr/share/usb_modeswitch/1ab7:5700 usr/share/usb_modeswitch/1b7d:0700 usr/share/usb_modeswitch/1bbb:000f usr/share/usb_modeswitch/1bbb:00ca +usr/share/usb_modeswitch/1bbb:011f usr/share/usb_modeswitch/1bbb:f000 usr/share/usb_modeswitch/1bbb:f017 usr/share/usb_modeswitch/1bbb:f052 @@ -296,5 +310,7 @@ usr/share/usb_modeswitch/22f4:0021 usr/share/usb_modeswitch/230d:0001 usr/share/usb_modeswitch/230d:0007 usr/share/usb_modeswitch/230d:0101 +usr/share/usb_modeswitch/230d:0103 usr/share/usb_modeswitch/2357:0200 +usr/share/usb_modeswitch/2357:f000 usr/share/usb_modeswitch/8888:6500 diff --git a/config/rootfiles/common/usbutils b/config/rootfiles/common/usbutils index 3858b39..1162c3a 100644 --- a/config/rootfiles/common/usbutils +++ b/config/rootfiles/common/usbutils @@ -1,5 +1,12 @@ -#usr/man/man8/lsusb.8 -usr/sbin/lsusb -usr/sbin/update-usbids +usr/bin/lsusb +usr/bin/lsusb.py +usr/bin/usb-devices +usr/bin/usbhid-dump +usr/sbin/update-usbids.sh #usr/share/hwdata #usr/share/hwdata/usb.ids +#usr/share/man/man1/usb-devices.1 +#usr/share/man/man8/lsusb.8 +#usr/share/man/man8/usbhid-dump.8 +#usr/share/pkgconfig +#usr/share/pkgconfig/usbutils.pc diff --git a/config/rootfiles/common/vim b/config/rootfiles/common/vim index 6f5ee80..215f689 100644 --- a/config/rootfiles/common/vim +++ b/config/rootfiles/common/vim @@ -1,13 +1,13 @@ etc/vimrc -#usr/bin/ex -#usr/bin/rview -#usr/bin/rvim +usr/bin/ex +usr/bin/rview +usr/bin/rvim usr/bin/vi -#usr/bin/view +usr/bin/view usr/bin/vim -#usr/bin/vimdiff -#usr/bin/vimtutor -#usr/bin/xxd +usr/bin/vimdiff +usr/bin/vimtutor +usr/bin/xxd #usr/share/man/man1/evim.1 #usr/share/man/man1/ex.1 #usr/share/man/man1/rview.1 @@ -18,1203 +18,1311 @@ usr/bin/vim #usr/share/man/man1/vimtutor.1 #usr/share/man/man1/xxd.1 usr/share/vim -#usr/share/vim/vim72 -#usr/share/vim/vim72/autoload -#usr/share/vim/vim72/autoload/README.txt -#usr/share/vim/vim72/autoload/ada.vim -#usr/share/vim/vim72/autoload/adacomplete.vim -#usr/share/vim/vim72/autoload/ccomplete.vim -#usr/share/vim/vim72/autoload/csscomplete.vim -#usr/share/vim/vim72/autoload/decada.vim -#usr/share/vim/vim72/autoload/getscript.vim -#usr/share/vim/vim72/autoload/gnat.vim -#usr/share/vim/vim72/autoload/gzip.vim -#usr/share/vim/vim72/autoload/htmlcomplete.vim -#usr/share/vim/vim72/autoload/javascriptcomplete.vim -#usr/share/vim/vim72/autoload/netrw.vim -#usr/share/vim/vim72/autoload/netrwFileHandlers.vim -#usr/share/vim/vim72/autoload/netrwSettings.vim -#usr/share/vim/vim72/autoload/paste.vim -#usr/share/vim/vim72/autoload/phpcomplete.vim -#usr/share/vim/vim72/autoload/pythoncomplete.vim -#usr/share/vim/vim72/autoload/rubycomplete.vim -#usr/share/vim/vim72/autoload/spellfile.vim -#usr/share/vim/vim72/autoload/sqlcomplete.vim -#usr/share/vim/vim72/autoload/syntaxcomplete.vim -#usr/share/vim/vim72/autoload/tar.vim -#usr/share/vim/vim72/autoload/vimball.vim -#usr/share/vim/vim72/autoload/xml -#usr/share/vim/vim72/autoload/xml/html32.vim -#usr/share/vim/vim72/autoload/xml/html401f.vim -#usr/share/vim/vim72/autoload/xml/html401s.vim -#usr/share/vim/vim72/autoload/xml/html401t.vim -#usr/share/vim/vim72/autoload/xml/html40f.vim -#usr/share/vim/vim72/autoload/xml/html40s.vim -#usr/share/vim/vim72/autoload/xml/html40t.vim -#usr/share/vim/vim72/autoload/xml/xhtml10f.vim -#usr/share/vim/vim72/autoload/xml/xhtml10s.vim -#usr/share/vim/vim72/autoload/xml/xhtml10t.vim -#usr/share/vim/vim72/autoload/xml/xhtml11.vim -#usr/share/vim/vim72/autoload/xml/xsd.vim -#usr/share/vim/vim72/autoload/xml/xsl.vim -#usr/share/vim/vim72/autoload/xmlcomplete.vim -#usr/share/vim/vim72/autoload/zip.vim -#usr/share/vim/vim72/bugreport.vim -#usr/share/vim/vim72/colors -#usr/share/vim/vim72/colors/README.txt -#usr/share/vim/vim72/colors/blue.vim -#usr/share/vim/vim72/colors/darkblue.vim -#usr/share/vim/vim72/colors/default.vim -#usr/share/vim/vim72/colors/delek.vim -#usr/share/vim/vim72/colors/desert.vim -#usr/share/vim/vim72/colors/elflord.vim -#usr/share/vim/vim72/colors/evening.vim -#usr/share/vim/vim72/colors/koehler.vim -#usr/share/vim/vim72/colors/morning.vim -#usr/share/vim/vim72/colors/murphy.vim -#usr/share/vim/vim72/colors/pablo.vim -#usr/share/vim/vim72/colors/peachpuff.vim -#usr/share/vim/vim72/colors/ron.vim -#usr/share/vim/vim72/colors/shine.vim -#usr/share/vim/vim72/colors/slate.vim -#usr/share/vim/vim72/colors/torte.vim -#usr/share/vim/vim72/colors/zellner.vim -#usr/share/vim/vim72/compiler -#usr/share/vim/vim72/compiler/README.txt -#usr/share/vim/vim72/compiler/ant.vim -#usr/share/vim/vim72/compiler/bcc.vim -#usr/share/vim/vim72/compiler/bdf.vim -#usr/share/vim/vim72/compiler/checkstyle.vim -#usr/share/vim/vim72/compiler/cs.vim -#usr/share/vim/vim72/compiler/decada.vim -#usr/share/vim/vim72/compiler/dot.vim -#usr/share/vim/vim72/compiler/eruby.vim -#usr/share/vim/vim72/compiler/fortran_F.vim -#usr/share/vim/vim72/compiler/fortran_cv.vim -#usr/share/vim/vim72/compiler/fortran_elf90.vim -#usr/share/vim/vim72/compiler/fortran_g77.vim -#usr/share/vim/vim72/compiler/fortran_lf95.vim -#usr/share/vim/vim72/compiler/fpc.vim -#usr/share/vim/vim72/compiler/gcc.vim -#usr/share/vim/vim72/compiler/gnat.vim -#usr/share/vim/vim72/compiler/hp_acc.vim -#usr/share/vim/vim72/compiler/icc.vim -#usr/share/vim/vim72/compiler/intel.vim -#usr/share/vim/vim72/compiler/irix5_c.vim -#usr/share/vim/vim72/compiler/irix5_cpp.vim -#usr/share/vim/vim72/compiler/javac.vim -#usr/share/vim/vim72/compiler/jikes.vim -#usr/share/vim/vim72/compiler/mcs.vim -#usr/share/vim/vim72/compiler/mips_c.vim -#usr/share/vim/vim72/compiler/mipspro_c89.vim -#usr/share/vim/vim72/compiler/mipspro_cpp.vim -#usr/share/vim/vim72/compiler/modelsim_vcom.vim -#usr/share/vim/vim72/compiler/msvc.vim -#usr/share/vim/vim72/compiler/neato.vim -#usr/share/vim/vim72/compiler/onsgmls.vim -#usr/share/vim/vim72/compiler/pbx.vim -#usr/share/vim/vim72/compiler/perl.vim -#usr/share/vim/vim72/compiler/php.vim -#usr/share/vim/vim72/compiler/pyunit.vim -#usr/share/vim/vim72/compiler/rspec.vim -#usr/share/vim/vim72/compiler/rst.vim -#usr/share/vim/vim72/compiler/ruby.vim -#usr/share/vim/vim72/compiler/rubyunit.vim -#usr/share/vim/vim72/compiler/se.vim -#usr/share/vim/vim72/compiler/splint.vim -#usr/share/vim/vim72/compiler/tcl.vim -#usr/share/vim/vim72/compiler/tex.vim -#usr/share/vim/vim72/compiler/tidy.vim -#usr/share/vim/vim72/compiler/xmllint.vim -#usr/share/vim/vim72/compiler/xmlwf.vim -#usr/share/vim/vim72/delmenu.vim -#usr/share/vim/vim72/doc -#usr/share/vim/vim72/doc/arabic.txt -#usr/share/vim/vim72/doc/autocmd.txt -#usr/share/vim/vim72/doc/change.txt -#usr/share/vim/vim72/doc/cmdline.txt -#usr/share/vim/vim72/doc/debug.txt -#usr/share/vim/vim72/doc/debugger.txt -#usr/share/vim/vim72/doc/develop.txt -#usr/share/vim/vim72/doc/diff.txt -#usr/share/vim/vim72/doc/digraph.txt -#usr/share/vim/vim72/doc/editing.txt -#usr/share/vim/vim72/doc/eval.txt -#usr/share/vim/vim72/doc/farsi.txt -#usr/share/vim/vim72/doc/filetype.txt -#usr/share/vim/vim72/doc/fold.txt -#usr/share/vim/vim72/doc/ft_ada.txt -#usr/share/vim/vim72/doc/ft_sql.txt -#usr/share/vim/vim72/doc/gui.txt -#usr/share/vim/vim72/doc/gui_w16.txt -#usr/share/vim/vim72/doc/gui_w32.txt -#usr/share/vim/vim72/doc/gui_x11.txt -#usr/share/vim/vim72/doc/hangulin.txt -#usr/share/vim/vim72/doc/hebrew.txt -#usr/share/vim/vim72/doc/help.txt -#usr/share/vim/vim72/doc/howto.txt -#usr/share/vim/vim72/doc/if_cscop.txt -#usr/share/vim/vim72/doc/if_mzsch.txt -#usr/share/vim/vim72/doc/if_ole.txt -#usr/share/vim/vim72/doc/if_perl.txt -#usr/share/vim/vim72/doc/if_pyth.txt -#usr/share/vim/vim72/doc/if_ruby.txt -#usr/share/vim/vim72/doc/if_sniff.txt -#usr/share/vim/vim72/doc/if_tcl.txt -#usr/share/vim/vim72/doc/indent.txt -#usr/share/vim/vim72/doc/index.txt -#usr/share/vim/vim72/doc/insert.txt -#usr/share/vim/vim72/doc/intro.txt -#usr/share/vim/vim72/doc/map.txt -#usr/share/vim/vim72/doc/mbyte.txt -#usr/share/vim/vim72/doc/message.txt -#usr/share/vim/vim72/doc/mlang.txt -#usr/share/vim/vim72/doc/motion.txt -#usr/share/vim/vim72/doc/netbeans.txt -#usr/share/vim/vim72/doc/options.txt -#usr/share/vim/vim72/doc/os_390.txt -#usr/share/vim/vim72/doc/os_amiga.txt -#usr/share/vim/vim72/doc/os_beos.txt -#usr/share/vim/vim72/doc/os_dos.txt -#usr/share/vim/vim72/doc/os_mac.txt -#usr/share/vim/vim72/doc/os_mint.txt -#usr/share/vim/vim72/doc/os_msdos.txt -#usr/share/vim/vim72/doc/os_os2.txt -#usr/share/vim/vim72/doc/os_qnx.txt -#usr/share/vim/vim72/doc/os_risc.txt -#usr/share/vim/vim72/doc/os_unix.txt -#usr/share/vim/vim72/doc/os_vms.txt -#usr/share/vim/vim72/doc/os_win32.txt -#usr/share/vim/vim72/doc/pattern.txt -#usr/share/vim/vim72/doc/pi_getscript.txt -#usr/share/vim/vim72/doc/pi_gzip.txt -#usr/share/vim/vim72/doc/pi_netrw.txt -#usr/share/vim/vim72/doc/pi_paren.txt -#usr/share/vim/vim72/doc/pi_spec.txt -#usr/share/vim/vim72/doc/pi_tar.txt -#usr/share/vim/vim72/doc/pi_vimball.txt -#usr/share/vim/vim72/doc/pi_zip.txt -#usr/share/vim/vim72/doc/print.txt -#usr/share/vim/vim72/doc/quickfix.txt -#usr/share/vim/vim72/doc/quickref.txt -#usr/share/vim/vim72/doc/quotes.txt -#usr/share/vim/vim72/doc/recover.txt -#usr/share/vim/vim72/doc/remote.txt -#usr/share/vim/vim72/doc/repeat.txt -#usr/share/vim/vim72/doc/rileft.txt -#usr/share/vim/vim72/doc/russian.txt -#usr/share/vim/vim72/doc/scroll.txt -#usr/share/vim/vim72/doc/sign.txt -#usr/share/vim/vim72/doc/spell.txt -#usr/share/vim/vim72/doc/sponsor.txt -#usr/share/vim/vim72/doc/starting.txt -#usr/share/vim/vim72/doc/syntax.txt -#usr/share/vim/vim72/doc/tabpage.txt -#usr/share/vim/vim72/doc/tags -#usr/share/vim/vim72/doc/tagsrch.txt -#usr/share/vim/vim72/doc/term.txt -#usr/share/vim/vim72/doc/tips.txt -#usr/share/vim/vim72/doc/todo.txt -#usr/share/vim/vim72/doc/uganda.txt -#usr/share/vim/vim72/doc/undo.txt -#usr/share/vim/vim72/doc/usr_01.txt -#usr/share/vim/vim72/doc/usr_02.txt -#usr/share/vim/vim72/doc/usr_03.txt -#usr/share/vim/vim72/doc/usr_04.txt -#usr/share/vim/vim72/doc/usr_05.txt -#usr/share/vim/vim72/doc/usr_06.txt -#usr/share/vim/vim72/doc/usr_07.txt -#usr/share/vim/vim72/doc/usr_08.txt -#usr/share/vim/vim72/doc/usr_09.txt -#usr/share/vim/vim72/doc/usr_10.txt -#usr/share/vim/vim72/doc/usr_11.txt -#usr/share/vim/vim72/doc/usr_12.txt -#usr/share/vim/vim72/doc/usr_20.txt -#usr/share/vim/vim72/doc/usr_21.txt -#usr/share/vim/vim72/doc/usr_22.txt -#usr/share/vim/vim72/doc/usr_23.txt -#usr/share/vim/vim72/doc/usr_24.txt -#usr/share/vim/vim72/doc/usr_25.txt -#usr/share/vim/vim72/doc/usr_26.txt -#usr/share/vim/vim72/doc/usr_27.txt -#usr/share/vim/vim72/doc/usr_28.txt -#usr/share/vim/vim72/doc/usr_29.txt -#usr/share/vim/vim72/doc/usr_30.txt -#usr/share/vim/vim72/doc/usr_31.txt -#usr/share/vim/vim72/doc/usr_32.txt -#usr/share/vim/vim72/doc/usr_40.txt -#usr/share/vim/vim72/doc/usr_41.txt -#usr/share/vim/vim72/doc/usr_42.txt -#usr/share/vim/vim72/doc/usr_43.txt -#usr/share/vim/vim72/doc/usr_44.txt -#usr/share/vim/vim72/doc/usr_45.txt -#usr/share/vim/vim72/doc/usr_90.txt -#usr/share/vim/vim72/doc/usr_toc.txt -#usr/share/vim/vim72/doc/various.txt -#usr/share/vim/vim72/doc/version4.txt -#usr/share/vim/vim72/doc/version5.txt -#usr/share/vim/vim72/doc/version6.txt -#usr/share/vim/vim72/doc/version7.txt -#usr/share/vim/vim72/doc/vi_diff.txt -#usr/share/vim/vim72/doc/vim2html.pl -#usr/share/vim/vim72/doc/visual.txt -#usr/share/vim/vim72/doc/windows.txt -#usr/share/vim/vim72/doc/workshop.txt -#usr/share/vim/vim72/evim.vim -#usr/share/vim/vim72/filetype.vim -#usr/share/vim/vim72/ftoff.vim -#usr/share/vim/vim72/ftplugin -#usr/share/vim/vim72/ftplugin.vim -#usr/share/vim/vim72/ftplugin/AppendMatchGroup.vim -#usr/share/vim/vim72/ftplugin/README.txt -#usr/share/vim/vim72/ftplugin/a2ps.vim -#usr/share/vim/vim72/ftplugin/aap.vim -#usr/share/vim/vim72/ftplugin/abaqus.vim -#usr/share/vim/vim72/ftplugin/ada.vim -#usr/share/vim/vim72/ftplugin/alsaconf.vim -#usr/share/vim/vim72/ftplugin/ant.vim -#usr/share/vim/vim72/ftplugin/arch.vim -#usr/share/vim/vim72/ftplugin/art.vim -#usr/share/vim/vim72/ftplugin/aspvbs.vim -#usr/share/vim/vim72/ftplugin/automake.vim -#usr/share/vim/vim72/ftplugin/bdf.vim -#usr/share/vim/vim72/ftplugin/bst.vim -#usr/share/vim/vim72/ftplugin/btm.vim -#usr/share/vim/vim72/ftplugin/c.vim -#usr/share/vim/vim72/ftplugin/calendar.vim -#usr/share/vim/vim72/ftplugin/cdrdaoconf.vim -#usr/share/vim/vim72/ftplugin/ch.vim -#usr/share/vim/vim72/ftplugin/changelog.vim -#usr/share/vim/vim72/ftplugin/cobol.vim -#usr/share/vim/vim72/ftplugin/conf.vim -#usr/share/vim/vim72/ftplugin/config.vim -#usr/share/vim/vim72/ftplugin/context.vim -#usr/share/vim/vim72/ftplugin/cpp.vim -#usr/share/vim/vim72/ftplugin/crm.vim -#usr/share/vim/vim72/ftplugin/cs.vim -#usr/share/vim/vim72/ftplugin/csc.vim -#usr/share/vim/vim72/ftplugin/csh.vim -#usr/share/vim/vim72/ftplugin/css.vim -#usr/share/vim/vim72/ftplugin/cvsrc.vim -#usr/share/vim/vim72/ftplugin/debchangelog.vim -#usr/share/vim/vim72/ftplugin/debcontrol.vim -#usr/share/vim/vim72/ftplugin/denyhosts.vim -#usr/share/vim/vim72/ftplugin/dictconf.vim -#usr/share/vim/vim72/ftplugin/dictdconf.vim -#usr/share/vim/vim72/ftplugin/diff.vim -#usr/share/vim/vim72/ftplugin/dircolors.vim -#usr/share/vim/vim72/ftplugin/dosbatch.vim -#usr/share/vim/vim72/ftplugin/dosini.vim -#usr/share/vim/vim72/ftplugin/dtd.vim -#usr/share/vim/vim72/ftplugin/dtrace.vim -#usr/share/vim/vim72/ftplugin/elinks.vim -#usr/share/vim/vim72/ftplugin/eruby.vim -#usr/share/vim/vim72/ftplugin/eterm.vim -#usr/share/vim/vim72/ftplugin/fetchmail.vim -#usr/share/vim/vim72/ftplugin/flexwiki.vim -#usr/share/vim/vim72/ftplugin/fortran.vim -#usr/share/vim/vim72/ftplugin/framescript.vim -#usr/share/vim/vim72/ftplugin/fvwm.vim -#usr/share/vim/vim72/ftplugin/git.vim -#usr/share/vim/vim72/ftplugin/gitcommit.vim -#usr/share/vim/vim72/ftplugin/gitconfig.vim -#usr/share/vim/vim72/ftplugin/gitrebase.vim -#usr/share/vim/vim72/ftplugin/gitsendemail.vim -#usr/share/vim/vim72/ftplugin/gpg.vim -#usr/share/vim/vim72/ftplugin/group.vim -#usr/share/vim/vim72/ftplugin/grub.vim -#usr/share/vim/vim72/ftplugin/haml.vim -#usr/share/vim/vim72/ftplugin/hamster.vim -#usr/share/vim/vim72/ftplugin/haskell.vim -#usr/share/vim/vim72/ftplugin/help.vim -#usr/share/vim/vim72/ftplugin/hostconf.vim -#usr/share/vim/vim72/ftplugin/hostsaccess.vim -#usr/share/vim/vim72/ftplugin/html.vim -#usr/share/vim/vim72/ftplugin/htmldjango.vim -#usr/share/vim/vim72/ftplugin/indent.vim -#usr/share/vim/vim72/ftplugin/initex.vim -#usr/share/vim/vim72/ftplugin/ishd.vim -#usr/share/vim/vim72/ftplugin/java.vim -#usr/share/vim/vim72/ftplugin/javascript.vim -#usr/share/vim/vim72/ftplugin/jsp.vim -#usr/share/vim/vim72/ftplugin/kconfig.vim -#usr/share/vim/vim72/ftplugin/kwt.vim -#usr/share/vim/vim72/ftplugin/ld.vim -#usr/share/vim/vim72/ftplugin/lftp.vim -#usr/share/vim/vim72/ftplugin/libao.vim -#usr/share/vim/vim72/ftplugin/limits.vim -#usr/share/vim/vim72/ftplugin/lisp.vim -#usr/share/vim/vim72/ftplugin/loginaccess.vim -#usr/share/vim/vim72/ftplugin/logindefs.vim -#usr/share/vim/vim72/ftplugin/logtalk.vim -#usr/share/vim/vim72/ftplugin/lprolog.vim -#usr/share/vim/vim72/ftplugin/lua.vim -#usr/share/vim/vim72/ftplugin/m4.vim -#usr/share/vim/vim72/ftplugin/mail.vim -#usr/share/vim/vim72/ftplugin/mailaliases.vim -#usr/share/vim/vim72/ftplugin/mailcap.vim -#usr/share/vim/vim72/ftplugin/make.vim -#usr/share/vim/vim72/ftplugin/man.vim -#usr/share/vim/vim72/ftplugin/manconf.vim -#usr/share/vim/vim72/ftplugin/matlab.vim -#usr/share/vim/vim72/ftplugin/mf.vim -#usr/share/vim/vim72/ftplugin/modconf.vim -#usr/share/vim/vim72/ftplugin/mp.vim -#usr/share/vim/vim72/ftplugin/mplayerconf.vim -#usr/share/vim/vim72/ftplugin/mrxvtrc.vim -#usr/share/vim/vim72/ftplugin/msmessages.vim -#usr/share/vim/vim72/ftplugin/mupad.vim -#usr/share/vim/vim72/ftplugin/muttrc.vim -#usr/share/vim/vim72/ftplugin/nanorc.vim -#usr/share/vim/vim72/ftplugin/netrc.vim -#usr/share/vim/vim72/ftplugin/nsis.vim -#usr/share/vim/vim72/ftplugin/objc.vim -#usr/share/vim/vim72/ftplugin/ocaml.vim -#usr/share/vim/vim72/ftplugin/occam.vim -#usr/share/vim/vim72/ftplugin/pamconf.vim -#usr/share/vim/vim72/ftplugin/pascal.vim -#usr/share/vim/vim72/ftplugin/passwd.vim -#usr/share/vim/vim72/ftplugin/pdf.vim -#usr/share/vim/vim72/ftplugin/perl.vim -#usr/share/vim/vim72/ftplugin/php.vim -#usr/share/vim/vim72/ftplugin/pinfo.vim -#usr/share/vim/vim72/ftplugin/plaintex.vim -#usr/share/vim/vim72/ftplugin/postscr.vim -#usr/share/vim/vim72/ftplugin/procmail.vim -#usr/share/vim/vim72/ftplugin/prolog.vim -#usr/share/vim/vim72/ftplugin/protocols.vim -#usr/share/vim/vim72/ftplugin/pyrex.vim -#usr/share/vim/vim72/ftplugin/python.vim -#usr/share/vim/vim72/ftplugin/quake.vim -#usr/share/vim/vim72/ftplugin/racc.vim -#usr/share/vim/vim72/ftplugin/readline.vim -#usr/share/vim/vim72/ftplugin/reva.vim -#usr/share/vim/vim72/ftplugin/rnc.vim -#usr/share/vim/vim72/ftplugin/rpl.vim -#usr/share/vim/vim72/ftplugin/rst.vim -#usr/share/vim/vim72/ftplugin/ruby.vim -#usr/share/vim/vim72/ftplugin/sass.vim -#usr/share/vim/vim72/ftplugin/scheme.vim -#usr/share/vim/vim72/ftplugin/screen.vim -#usr/share/vim/vim72/ftplugin/sensors.vim -#usr/share/vim/vim72/ftplugin/services.vim -#usr/share/vim/vim72/ftplugin/setserial.vim -#usr/share/vim/vim72/ftplugin/sgml.vim -#usr/share/vim/vim72/ftplugin/sh.vim -#usr/share/vim/vim72/ftplugin/sieve.vim -#usr/share/vim/vim72/ftplugin/slpconf.vim -#usr/share/vim/vim72/ftplugin/slpreg.vim -#usr/share/vim/vim72/ftplugin/slpspi.vim -#usr/share/vim/vim72/ftplugin/spec.vim -#usr/share/vim/vim72/ftplugin/sql.vim -#usr/share/vim/vim72/ftplugin/sshconfig.vim -#usr/share/vim/vim72/ftplugin/sudoers.vim -#usr/share/vim/vim72/ftplugin/svg.vim -#usr/share/vim/vim72/ftplugin/sysctl.vim -#usr/share/vim/vim72/ftplugin/tcsh.vim -#usr/share/vim/vim72/ftplugin/terminfo.vim -#usr/share/vim/vim72/ftplugin/tex.vim -#usr/share/vim/vim72/ftplugin/udevconf.vim -#usr/share/vim/vim72/ftplugin/udevperm.vim -#usr/share/vim/vim72/ftplugin/udevrules.vim -#usr/share/vim/vim72/ftplugin/updatedb.vim -#usr/share/vim/vim72/ftplugin/vb.vim -#usr/share/vim/vim72/ftplugin/verilog.vim -#usr/share/vim/vim72/ftplugin/vhdl.vim -#usr/share/vim/vim72/ftplugin/vim.vim -#usr/share/vim/vim72/ftplugin/xdefaults.vim -#usr/share/vim/vim72/ftplugin/xf86conf.vim -#usr/share/vim/vim72/ftplugin/xhtml.vim -#usr/share/vim/vim72/ftplugin/xinetd.vim -#usr/share/vim/vim72/ftplugin/xml.vim -#usr/share/vim/vim72/ftplugin/xmodmap.vim -#usr/share/vim/vim72/ftplugin/xs.vim -#usr/share/vim/vim72/ftplugin/xsd.vim -#usr/share/vim/vim72/ftplugin/xslt.vim -#usr/share/vim/vim72/ftplugin/yaml.vim -#usr/share/vim/vim72/ftplugin/zsh.vim -#usr/share/vim/vim72/ftplugof.vim -#usr/share/vim/vim72/gvimrc_example.vim -#usr/share/vim/vim72/indent -#usr/share/vim/vim72/indent.vim -#usr/share/vim/vim72/indent/GenericIndent.vim -#usr/share/vim/vim72/indent/README.txt -#usr/share/vim/vim72/indent/aap.vim -#usr/share/vim/vim72/indent/ada.vim -#usr/share/vim/vim72/indent/ant.vim -#usr/share/vim/vim72/indent/automake.vim -#usr/share/vim/vim72/indent/awk.vim -#usr/share/vim/vim72/indent/bib.vim -#usr/share/vim/vim72/indent/bst.vim -#usr/share/vim/vim72/indent/c.vim -#usr/share/vim/vim72/indent/cdl.vim -#usr/share/vim/vim72/indent/ch.vim -#usr/share/vim/vim72/indent/changelog.vim -#usr/share/vim/vim72/indent/cmake.vim -#usr/share/vim/vim72/indent/cobol.vim -#usr/share/vim/vim72/indent/config.vim -#usr/share/vim/vim72/indent/cpp.vim -#usr/share/vim/vim72/indent/cs.vim -#usr/share/vim/vim72/indent/css.vim -#usr/share/vim/vim72/indent/d.vim -#usr/share/vim/vim72/indent/dictconf.vim -#usr/share/vim/vim72/indent/dictdconf.vim -#usr/share/vim/vim72/indent/docbk.vim -#usr/share/vim/vim72/indent/dtd.vim -#usr/share/vim/vim72/indent/dtrace.vim -#usr/share/vim/vim72/indent/dylan.vim -#usr/share/vim/vim72/indent/eiffel.vim -#usr/share/vim/vim72/indent/erlang.vim -#usr/share/vim/vim72/indent/eruby.vim -#usr/share/vim/vim72/indent/eterm.vim -#usr/share/vim/vim72/indent/fortran.vim -#usr/share/vim/vim72/indent/framescript.vim -#usr/share/vim/vim72/indent/gitconfig.vim -#usr/share/vim/vim72/indent/haml.vim -#usr/share/vim/vim72/indent/hamster.vim -#usr/share/vim/vim72/indent/html.vim -#usr/share/vim/vim72/indent/htmldjango.vim -#usr/share/vim/vim72/indent/idlang.vim -#usr/share/vim/vim72/indent/ishd.vim -#usr/share/vim/vim72/indent/java.vim -#usr/share/vim/vim72/indent/javascript.vim -#usr/share/vim/vim72/indent/jsp.vim -#usr/share/vim/vim72/indent/ld.vim -#usr/share/vim/vim72/indent/lisp.vim -#usr/share/vim/vim72/indent/logtalk.vim -#usr/share/vim/vim72/indent/lua.vim -#usr/share/vim/vim72/indent/make.vim -#usr/share/vim/vim72/indent/matlab.vim -#usr/share/vim/vim72/indent/mma.vim -#usr/share/vim/vim72/indent/mp.vim -#usr/share/vim/vim72/indent/mupad.vim -#usr/share/vim/vim72/indent/objc.vim -#usr/share/vim/vim72/indent/ocaml.vim -#usr/share/vim/vim72/indent/occam.vim -#usr/share/vim/vim72/indent/pascal.vim -#usr/share/vim/vim72/indent/perl.vim -#usr/share/vim/vim72/indent/php.vim -#usr/share/vim/vim72/indent/postscr.vim -#usr/share/vim/vim72/indent/pov.vim -#usr/share/vim/vim72/indent/prolog.vim -#usr/share/vim/vim72/indent/pyrex.vim -#usr/share/vim/vim72/indent/python.vim -#usr/share/vim/vim72/indent/readline.vim -#usr/share/vim/vim72/indent/rpl.vim -#usr/share/vim/vim72/indent/rst.vim -#usr/share/vim/vim72/indent/ruby.vim -#usr/share/vim/vim72/indent/sass.vim -#usr/share/vim/vim72/indent/scheme.vim -#usr/share/vim/vim72/indent/sdl.vim -#usr/share/vim/vim72/indent/sh.vim -#usr/share/vim/vim72/indent/sml.vim -#usr/share/vim/vim72/indent/sql.vim -#usr/share/vim/vim72/indent/sqlanywhere.vim -#usr/share/vim/vim72/indent/tcl.vim -#usr/share/vim/vim72/indent/tcsh.vim -#usr/share/vim/vim72/indent/tf.vim -#usr/share/vim/vim72/indent/tilde.vim -#usr/share/vim/vim72/indent/vb.vim -#usr/share/vim/vim72/indent/verilog.vim -#usr/share/vim/vim72/indent/vhdl.vim -#usr/share/vim/vim72/indent/vim.vim -#usr/share/vim/vim72/indent/xf86conf.vim -#usr/share/vim/vim72/indent/xhtml.vim -#usr/share/vim/vim72/indent/xinetd.vim -#usr/share/vim/vim72/indent/xml.vim -#usr/share/vim/vim72/indent/xsd.vim -#usr/share/vim/vim72/indent/xslt.vim -#usr/share/vim/vim72/indent/yacc.vim -#usr/share/vim/vim72/indent/zsh.vim -#usr/share/vim/vim72/indoff.vim -#usr/share/vim/vim72/macros -#usr/share/vim/vim72/macros/README.txt -#usr/share/vim/vim72/macros/dvorak -#usr/share/vim/vim72/macros/editexisting.vim -#usr/share/vim/vim72/macros/hanoi -#usr/share/vim/vim72/macros/hanoi/click.me -#usr/share/vim/vim72/macros/hanoi/hanoi.vim -#usr/share/vim/vim72/macros/hanoi/poster -#usr/share/vim/vim72/macros/justify.vim -#usr/share/vim/vim72/macros/less.sh -#usr/share/vim/vim72/macros/less.vim -#usr/share/vim/vim72/macros/life -#usr/share/vim/vim72/macros/life/click.me -#usr/share/vim/vim72/macros/life/life.vim -#usr/share/vim/vim72/macros/matchit.txt -#usr/share/vim/vim72/macros/matchit.vim -#usr/share/vim/vim72/macros/maze -#usr/share/vim/vim72/macros/maze/Makefile -#usr/share/vim/vim72/macros/maze/README.txt -#usr/share/vim/vim72/macros/maze/main.aap -#usr/share/vim/vim72/macros/maze/maze.c -#usr/share/vim/vim72/macros/maze/maze_5.78 -#usr/share/vim/vim72/macros/maze/maze_mac -#usr/share/vim/vim72/macros/maze/mazeansi.c -#usr/share/vim/vim72/macros/maze/mazeclean.c -#usr/share/vim/vim72/macros/maze/poster -#usr/share/vim/vim72/macros/shellmenu.vim -#usr/share/vim/vim72/macros/swapmous.vim -#usr/share/vim/vim72/macros/urm -#usr/share/vim/vim72/macros/urm/README.txt -#usr/share/vim/vim72/macros/urm/examples -#usr/share/vim/vim72/macros/urm/urm -#usr/share/vim/vim72/macros/urm/urm.vim -#usr/share/vim/vim72/menu.vim -#usr/share/vim/vim72/mswin.vim -#usr/share/vim/vim72/optwin.vim -#usr/share/vim/vim72/plugin -#usr/share/vim/vim72/plugin/README.txt -#usr/share/vim/vim72/plugin/getscriptPlugin.vim -#usr/share/vim/vim72/plugin/gzip.vim -#usr/share/vim/vim72/plugin/matchparen.vim -#usr/share/vim/vim72/plugin/netrwPlugin.vim -#usr/share/vim/vim72/plugin/rrhelper.vim -#usr/share/vim/vim72/plugin/spellfile.vim -#usr/share/vim/vim72/plugin/tarPlugin.vim -#usr/share/vim/vim72/plugin/tohtml.vim -#usr/share/vim/vim72/plugin/vimballPlugin.vim -#usr/share/vim/vim72/plugin/zipPlugin.vim -#usr/share/vim/vim72/print -#usr/share/vim/vim72/print/ascii.ps -#usr/share/vim/vim72/print/cidfont.ps -#usr/share/vim/vim72/print/cns_roman.ps -#usr/share/vim/vim72/print/cp1250.ps -#usr/share/vim/vim72/print/cp1251.ps -#usr/share/vim/vim72/print/cp1252.ps -#usr/share/vim/vim72/print/cp1253.ps -#usr/share/vim/vim72/print/cp1254.ps -#usr/share/vim/vim72/print/cp1255.ps -#usr/share/vim/vim72/print/cp1257.ps -#usr/share/vim/vim72/print/dec-mcs.ps -#usr/share/vim/vim72/print/ebcdic-uk.ps -#usr/share/vim/vim72/print/gb_roman.ps -#usr/share/vim/vim72/print/hp-roman8.ps -#usr/share/vim/vim72/print/iso-8859-10.ps -#usr/share/vim/vim72/print/iso-8859-11.ps -#usr/share/vim/vim72/print/iso-8859-13.ps -#usr/share/vim/vim72/print/iso-8859-14.ps -#usr/share/vim/vim72/print/iso-8859-15.ps -#usr/share/vim/vim72/print/iso-8859-2.ps -#usr/share/vim/vim72/print/iso-8859-3.ps -#usr/share/vim/vim72/print/iso-8859-4.ps -#usr/share/vim/vim72/print/iso-8859-5.ps -#usr/share/vim/vim72/print/iso-8859-7.ps -#usr/share/vim/vim72/print/iso-8859-8.ps -#usr/share/vim/vim72/print/iso-8859-9.ps -#usr/share/vim/vim72/print/jis_roman.ps -#usr/share/vim/vim72/print/koi8-r.ps -#usr/share/vim/vim72/print/koi8-u.ps -#usr/share/vim/vim72/print/ks_roman.ps -#usr/share/vim/vim72/print/latin1.ps -#usr/share/vim/vim72/print/mac-roman.ps -#usr/share/vim/vim72/print/prolog.ps -#usr/share/vim/vim72/scripts.vim -#usr/share/vim/vim72/spell -#usr/share/vim/vim72/spell/cleanadd.vim -#usr/share/vim/vim72/spell/en.ascii.spl -#usr/share/vim/vim72/spell/en.ascii.sug -#usr/share/vim/vim72/spell/en.latin1.spl -#usr/share/vim/vim72/spell/en.latin1.sug -#usr/share/vim/vim72/spell/en.utf-8.spl -#usr/share/vim/vim72/spell/en.utf-8.sug -#usr/share/vim/vim72/spell/he.vim -#usr/share/vim/vim72/spell/yi.vim -#usr/share/vim/vim72/synmenu.vim -#usr/share/vim/vim72/syntax -#usr/share/vim/vim72/syntax/2html.vim -#usr/share/vim/vim72/syntax/README.txt -#usr/share/vim/vim72/syntax/a2ps.vim -#usr/share/vim/vim72/syntax/a65.vim -#usr/share/vim/vim72/syntax/aap.vim -#usr/share/vim/vim72/syntax/abap.vim -#usr/share/vim/vim72/syntax/abaqus.vim -#usr/share/vim/vim72/syntax/abc.vim -#usr/share/vim/vim72/syntax/abel.vim -#usr/share/vim/vim72/syntax/acedb.vim -#usr/share/vim/vim72/syntax/ada.vim -#usr/share/vim/vim72/syntax/aflex.vim -#usr/share/vim/vim72/syntax/ahdl.vim -#usr/share/vim/vim72/syntax/alsaconf.vim -#usr/share/vim/vim72/syntax/amiga.vim -#usr/share/vim/vim72/syntax/aml.vim -#usr/share/vim/vim72/syntax/ampl.vim -#usr/share/vim/vim72/syntax/ant.vim -#usr/share/vim/vim72/syntax/antlr.vim -#usr/share/vim/vim72/syntax/apache.vim -#usr/share/vim/vim72/syntax/apachestyle.vim -#usr/share/vim/vim72/syntax/arch.vim -#usr/share/vim/vim72/syntax/art.vim -#usr/share/vim/vim72/syntax/asm.vim -#usr/share/vim/vim72/syntax/asm68k.vim -#usr/share/vim/vim72/syntax/asmh8300.vim -#usr/share/vim/vim72/syntax/asn.vim -#usr/share/vim/vim72/syntax/aspperl.vim -#usr/share/vim/vim72/syntax/aspvbs.vim -#usr/share/vim/vim72/syntax/asterisk.vim -#usr/share/vim/vim72/syntax/asteriskvm.vim -#usr/share/vim/vim72/syntax/atlas.vim -#usr/share/vim/vim72/syntax/autohotkey.vim -#usr/share/vim/vim72/syntax/autoit.vim -#usr/share/vim/vim72/syntax/automake.vim -#usr/share/vim/vim72/syntax/ave.vim -#usr/share/vim/vim72/syntax/awk.vim -#usr/share/vim/vim72/syntax/ayacc.vim -#usr/share/vim/vim72/syntax/b.vim -#usr/share/vim/vim72/syntax/baan.vim -#usr/share/vim/vim72/syntax/basic.vim -#usr/share/vim/vim72/syntax/bc.vim -#usr/share/vim/vim72/syntax/bdf.vim -#usr/share/vim/vim72/syntax/bib.vim -#usr/share/vim/vim72/syntax/bindzone.vim -#usr/share/vim/vim72/syntax/blank.vim -#usr/share/vim/vim72/syntax/bst.vim -#usr/share/vim/vim72/syntax/btm.vim -#usr/share/vim/vim72/syntax/bzr.vim -#usr/share/vim/vim72/syntax/c.vim -#usr/share/vim/vim72/syntax/calendar.vim -#usr/share/vim/vim72/syntax/catalog.vim -#usr/share/vim/vim72/syntax/cdl.vim -#usr/share/vim/vim72/syntax/cdrdaoconf.vim -#usr/share/vim/vim72/syntax/cdrtoc.vim -#usr/share/vim/vim72/syntax/cf.vim -#usr/share/vim/vim72/syntax/cfg.vim -#usr/share/vim/vim72/syntax/ch.vim -#usr/share/vim/vim72/syntax/change.vim -#usr/share/vim/vim72/syntax/changelog.vim -#usr/share/vim/vim72/syntax/chaskell.vim -#usr/share/vim/vim72/syntax/cheetah.vim -#usr/share/vim/vim72/syntax/chill.vim -#usr/share/vim/vim72/syntax/chordpro.vim -#usr/share/vim/vim72/syntax/cl.vim -#usr/share/vim/vim72/syntax/clean.vim -#usr/share/vim/vim72/syntax/clipper.vim -#usr/share/vim/vim72/syntax/cmake.vim -#usr/share/vim/vim72/syntax/cmusrc.vim -#usr/share/vim/vim72/syntax/cobol.vim -#usr/share/vim/vim72/syntax/coco.vim -#usr/share/vim/vim72/syntax/colortest.vim -#usr/share/vim/vim72/syntax/conaryrecipe.vim -#usr/share/vim/vim72/syntax/conf.vim -#usr/share/vim/vim72/syntax/config.vim -#usr/share/vim/vim72/syntax/context.vim -#usr/share/vim/vim72/syntax/cpp.vim -#usr/share/vim/vim72/syntax/crm.vim -#usr/share/vim/vim72/syntax/crontab.vim -#usr/share/vim/vim72/syntax/cs.vim -#usr/share/vim/vim72/syntax/csc.vim -#usr/share/vim/vim72/syntax/csh.vim -#usr/share/vim/vim72/syntax/csp.vim -#usr/share/vim/vim72/syntax/css.vim -#usr/share/vim/vim72/syntax/cterm.vim -#usr/share/vim/vim72/syntax/ctrlh.vim -#usr/share/vim/vim72/syntax/cuda.vim -#usr/share/vim/vim72/syntax/cupl.vim -#usr/share/vim/vim72/syntax/cuplsim.vim -#usr/share/vim/vim72/syntax/cvs.vim -#usr/share/vim/vim72/syntax/cvsrc.vim -#usr/share/vim/vim72/syntax/cweb.vim -#usr/share/vim/vim72/syntax/cynlib.vim -#usr/share/vim/vim72/syntax/cynpp.vim -#usr/share/vim/vim72/syntax/d.vim -#usr/share/vim/vim72/syntax/dcd.vim -#usr/share/vim/vim72/syntax/dcl.vim -#usr/share/vim/vim72/syntax/debchangelog.vim -#usr/share/vim/vim72/syntax/debcontrol.vim -#usr/share/vim/vim72/syntax/debsources.vim -#usr/share/vim/vim72/syntax/def.vim -#usr/share/vim/vim72/syntax/denyhosts.vim -#usr/share/vim/vim72/syntax/desc.vim -#usr/share/vim/vim72/syntax/desktop.vim -#usr/share/vim/vim72/syntax/dictconf.vim -#usr/share/vim/vim72/syntax/dictdconf.vim -#usr/share/vim/vim72/syntax/diff.vim -#usr/share/vim/vim72/syntax/dircolors.vim -#usr/share/vim/vim72/syntax/diva.vim -#usr/share/vim/vim72/syntax/django.vim -#usr/share/vim/vim72/syntax/dns.vim -#usr/share/vim/vim72/syntax/docbk.vim -#usr/share/vim/vim72/syntax/docbksgml.vim -#usr/share/vim/vim72/syntax/docbkxml.vim -#usr/share/vim/vim72/syntax/dosbatch.vim -#usr/share/vim/vim72/syntax/dosini.vim -#usr/share/vim/vim72/syntax/dot.vim -#usr/share/vim/vim72/syntax/doxygen.vim -#usr/share/vim/vim72/syntax/dracula.vim -#usr/share/vim/vim72/syntax/dsl.vim -#usr/share/vim/vim72/syntax/dtd.vim -#usr/share/vim/vim72/syntax/dtml.vim -#usr/share/vim/vim72/syntax/dtrace.vim -#usr/share/vim/vim72/syntax/dylan.vim -#usr/share/vim/vim72/syntax/dylanintr.vim -#usr/share/vim/vim72/syntax/dylanlid.vim -#usr/share/vim/vim72/syntax/ecd.vim -#usr/share/vim/vim72/syntax/edif.vim -#usr/share/vim/vim72/syntax/eiffel.vim -#usr/share/vim/vim72/syntax/elf.vim -#usr/share/vim/vim72/syntax/elinks.vim -#usr/share/vim/vim72/syntax/elmfilt.vim -#usr/share/vim/vim72/syntax/erlang.vim -#usr/share/vim/vim72/syntax/eruby.vim -#usr/share/vim/vim72/syntax/esmtprc.vim -#usr/share/vim/vim72/syntax/esqlc.vim -#usr/share/vim/vim72/syntax/esterel.vim -#usr/share/vim/vim72/syntax/eterm.vim -#usr/share/vim/vim72/syntax/eviews.vim -#usr/share/vim/vim72/syntax/exim.vim -#usr/share/vim/vim72/syntax/expect.vim -#usr/share/vim/vim72/syntax/exports.vim -#usr/share/vim/vim72/syntax/fasm.vim -#usr/share/vim/vim72/syntax/fdcc.vim -#usr/share/vim/vim72/syntax/fetchmail.vim -#usr/share/vim/vim72/syntax/fgl.vim -#usr/share/vim/vim72/syntax/flexwiki.vim -#usr/share/vim/vim72/syntax/focexec.vim -#usr/share/vim/vim72/syntax/form.vim -#usr/share/vim/vim72/syntax/forth.vim -#usr/share/vim/vim72/syntax/fortran.vim -#usr/share/vim/vim72/syntax/foxpro.vim -#usr/share/vim/vim72/syntax/framescript.vim -#usr/share/vim/vim72/syntax/freebasic.vim -#usr/share/vim/vim72/syntax/fstab.vim -#usr/share/vim/vim72/syntax/fvwm.vim -#usr/share/vim/vim72/syntax/fvwm2m4.vim -#usr/share/vim/vim72/syntax/gdb.vim -#usr/share/vim/vim72/syntax/gdmo.vim -#usr/share/vim/vim72/syntax/gedcom.vim -#usr/share/vim/vim72/syntax/git.vim -#usr/share/vim/vim72/syntax/gitcommit.vim -#usr/share/vim/vim72/syntax/gitconfig.vim -#usr/share/vim/vim72/syntax/gitrebase.vim -#usr/share/vim/vim72/syntax/gitsendemail.vim -#usr/share/vim/vim72/syntax/gkrellmrc.vim -#usr/share/vim/vim72/syntax/gnuplot.vim -#usr/share/vim/vim72/syntax/gp.vim -#usr/share/vim/vim72/syntax/gpg.vim -#usr/share/vim/vim72/syntax/grads.vim -#usr/share/vim/vim72/syntax/gretl.vim -#usr/share/vim/vim72/syntax/groff.vim -#usr/share/vim/vim72/syntax/groovy.vim -#usr/share/vim/vim72/syntax/group.vim -#usr/share/vim/vim72/syntax/grub.vim -#usr/share/vim/vim72/syntax/gsp.vim -#usr/share/vim/vim72/syntax/gtkrc.vim -#usr/share/vim/vim72/syntax/haml.vim -#usr/share/vim/vim72/syntax/hamster.vim -#usr/share/vim/vim72/syntax/haskell.vim -#usr/share/vim/vim72/syntax/haste.vim -#usr/share/vim/vim72/syntax/hastepreproc.vim -#usr/share/vim/vim72/syntax/hb.vim -#usr/share/vim/vim72/syntax/help.vim -#usr/share/vim/vim72/syntax/hercules.vim -#usr/share/vim/vim72/syntax/hex.vim -#usr/share/vim/vim72/syntax/hitest.vim -#usr/share/vim/vim72/syntax/hog.vim -#usr/share/vim/vim72/syntax/hostconf.vim -#usr/share/vim/vim72/syntax/html.vim -#usr/share/vim/vim72/syntax/htmlcheetah.vim -#usr/share/vim/vim72/syntax/htmldjango.vim -#usr/share/vim/vim72/syntax/htmlm4.vim -#usr/share/vim/vim72/syntax/htmlos.vim -#usr/share/vim/vim72/syntax/ia64.vim -#usr/share/vim/vim72/syntax/ibasic.vim -#usr/share/vim/vim72/syntax/icemenu.vim -#usr/share/vim/vim72/syntax/icon.vim -#usr/share/vim/vim72/syntax/idl.vim -#usr/share/vim/vim72/syntax/idlang.vim -#usr/share/vim/vim72/syntax/indent.vim -#usr/share/vim/vim72/syntax/inform.vim -#usr/share/vim/vim72/syntax/initex.vim -#usr/share/vim/vim72/syntax/initng.vim -#usr/share/vim/vim72/syntax/inittab.vim -#usr/share/vim/vim72/syntax/ipfilter.vim -#usr/share/vim/vim72/syntax/ishd.vim -#usr/share/vim/vim72/syntax/iss.vim -#usr/share/vim/vim72/syntax/ist.vim -#usr/share/vim/vim72/syntax/jal.vim -#usr/share/vim/vim72/syntax/jam.vim -#usr/share/vim/vim72/syntax/jargon.vim -#usr/share/vim/vim72/syntax/java.vim -#usr/share/vim/vim72/syntax/javacc.vim -#usr/share/vim/vim72/syntax/javascript.vim -#usr/share/vim/vim72/syntax/jess.vim -#usr/share/vim/vim72/syntax/jgraph.vim -#usr/share/vim/vim72/syntax/jproperties.vim -#usr/share/vim/vim72/syntax/jsp.vim -#usr/share/vim/vim72/syntax/kconfig.vim -#usr/share/vim/vim72/syntax/kix.vim -#usr/share/vim/vim72/syntax/kscript.vim -#usr/share/vim/vim72/syntax/kwt.vim -#usr/share/vim/vim72/syntax/lace.vim -#usr/share/vim/vim72/syntax/latte.vim -#usr/share/vim/vim72/syntax/ld.vim -#usr/share/vim/vim72/syntax/ldapconf.vim -#usr/share/vim/vim72/syntax/ldif.vim -#usr/share/vim/vim72/syntax/lex.vim -#usr/share/vim/vim72/syntax/lftp.vim -#usr/share/vim/vim72/syntax/lhaskell.vim -#usr/share/vim/vim72/syntax/libao.vim -#usr/share/vim/vim72/syntax/lifelines.vim -#usr/share/vim/vim72/syntax/lilo.vim -#usr/share/vim/vim72/syntax/limits.vim -#usr/share/vim/vim72/syntax/lisp.vim -#usr/share/vim/vim72/syntax/lite.vim -#usr/share/vim/vim72/syntax/litestep.vim -#usr/share/vim/vim72/syntax/loginaccess.vim -#usr/share/vim/vim72/syntax/logindefs.vim -#usr/share/vim/vim72/syntax/logtalk.vim -#usr/share/vim/vim72/syntax/lotos.vim -#usr/share/vim/vim72/syntax/lout.vim -#usr/share/vim/vim72/syntax/lpc.vim -#usr/share/vim/vim72/syntax/lprolog.vim -#usr/share/vim/vim72/syntax/lscript.vim -#usr/share/vim/vim72/syntax/lsl.vim -#usr/share/vim/vim72/syntax/lss.vim -#usr/share/vim/vim72/syntax/lua.vim -#usr/share/vim/vim72/syntax/lynx.vim -#usr/share/vim/vim72/syntax/m4.vim -#usr/share/vim/vim72/syntax/mail.vim -#usr/share/vim/vim72/syntax/mailaliases.vim -#usr/share/vim/vim72/syntax/mailcap.vim -#usr/share/vim/vim72/syntax/make.vim -#usr/share/vim/vim72/syntax/man.vim -#usr/share/vim/vim72/syntax/manconf.vim -#usr/share/vim/vim72/syntax/manual.vim -#usr/share/vim/vim72/syntax/maple.vim -#usr/share/vim/vim72/syntax/masm.vim -#usr/share/vim/vim72/syntax/mason.vim -#usr/share/vim/vim72/syntax/master.vim -#usr/share/vim/vim72/syntax/matlab.vim -#usr/share/vim/vim72/syntax/maxima.vim -#usr/share/vim/vim72/syntax/mel.vim -#usr/share/vim/vim72/syntax/messages.vim -#usr/share/vim/vim72/syntax/mf.vim -#usr/share/vim/vim72/syntax/mgl.vim -#usr/share/vim/vim72/syntax/mgp.vim -#usr/share/vim/vim72/syntax/mib.vim -#usr/share/vim/vim72/syntax/mma.vim -#usr/share/vim/vim72/syntax/mmix.vim -#usr/share/vim/vim72/syntax/mmp.vim -#usr/share/vim/vim72/syntax/modconf.vim -#usr/share/vim/vim72/syntax/model.vim -#usr/share/vim/vim72/syntax/modsim3.vim -#usr/share/vim/vim72/syntax/modula2.vim -#usr/share/vim/vim72/syntax/modula3.vim -#usr/share/vim/vim72/syntax/monk.vim -#usr/share/vim/vim72/syntax/moo.vim -#usr/share/vim/vim72/syntax/mp.vim -#usr/share/vim/vim72/syntax/mplayerconf.vim -#usr/share/vim/vim72/syntax/mrxvtrc.vim -#usr/share/vim/vim72/syntax/msidl.vim -#usr/share/vim/vim72/syntax/msmessages.vim -#usr/share/vim/vim72/syntax/msql.vim -#usr/share/vim/vim72/syntax/mupad.vim -#usr/share/vim/vim72/syntax/mush.vim -#usr/share/vim/vim72/syntax/muttrc.vim -#usr/share/vim/vim72/syntax/mysql.vim -#usr/share/vim/vim72/syntax/named.vim -#usr/share/vim/vim72/syntax/nanorc.vim -#usr/share/vim/vim72/syntax/nasm.vim -#usr/share/vim/vim72/syntax/nastran.vim -#usr/share/vim/vim72/syntax/natural.vim -#usr/share/vim/vim72/syntax/ncf.vim -#usr/share/vim/vim72/syntax/netrc.vim -#usr/share/vim/vim72/syntax/netrw.vim -#usr/share/vim/vim72/syntax/nosyntax.vim -#usr/share/vim/vim72/syntax/nqc.vim -#usr/share/vim/vim72/syntax/nroff.vim -#usr/share/vim/vim72/syntax/nsis.vim -#usr/share/vim/vim72/syntax/objc.vim -#usr/share/vim/vim72/syntax/objcpp.vim -#usr/share/vim/vim72/syntax/ocaml.vim -#usr/share/vim/vim72/syntax/occam.vim -#usr/share/vim/vim72/syntax/omnimark.vim -#usr/share/vim/vim72/syntax/openroad.vim -#usr/share/vim/vim72/syntax/opl.vim -#usr/share/vim/vim72/syntax/ora.vim -#usr/share/vim/vim72/syntax/pamconf.vim -#usr/share/vim/vim72/syntax/papp.vim -#usr/share/vim/vim72/syntax/pascal.vim -#usr/share/vim/vim72/syntax/passwd.vim -#usr/share/vim/vim72/syntax/pcap.vim -#usr/share/vim/vim72/syntax/pccts.vim -#usr/share/vim/vim72/syntax/pdf.vim -#usr/share/vim/vim72/syntax/perl.vim -#usr/share/vim/vim72/syntax/pf.vim -#usr/share/vim/vim72/syntax/pfmain.vim -#usr/share/vim/vim72/syntax/php.vim -#usr/share/vim/vim72/syntax/phtml.vim -#usr/share/vim/vim72/syntax/pic.vim -#usr/share/vim/vim72/syntax/pike.vim -#usr/share/vim/vim72/syntax/pilrc.vim -#usr/share/vim/vim72/syntax/pine.vim -#usr/share/vim/vim72/syntax/pinfo.vim -#usr/share/vim/vim72/syntax/plaintex.vim -#usr/share/vim/vim72/syntax/plm.vim -#usr/share/vim/vim72/syntax/plp.vim -#usr/share/vim/vim72/syntax/plsql.vim -#usr/share/vim/vim72/syntax/po.vim -#usr/share/vim/vim72/syntax/pod.vim -#usr/share/vim/vim72/syntax/postscr.vim -#usr/share/vim/vim72/syntax/pov.vim -#usr/share/vim/vim72/syntax/povini.vim -#usr/share/vim/vim72/syntax/ppd.vim -#usr/share/vim/vim72/syntax/ppwiz.vim -#usr/share/vim/vim72/syntax/prescribe.vim -#usr/share/vim/vim72/syntax/privoxy.vim -#usr/share/vim/vim72/syntax/procmail.vim -#usr/share/vim/vim72/syntax/progress.vim -#usr/share/vim/vim72/syntax/prolog.vim -#usr/share/vim/vim72/syntax/promela.vim -#usr/share/vim/vim72/syntax/protocols.vim -#usr/share/vim/vim72/syntax/psf.vim -#usr/share/vim/vim72/syntax/ptcap.vim -#usr/share/vim/vim72/syntax/purifylog.vim -#usr/share/vim/vim72/syntax/pyrex.vim -#usr/share/vim/vim72/syntax/python.vim -#usr/share/vim/vim72/syntax/qf.vim -#usr/share/vim/vim72/syntax/quake.vim -#usr/share/vim/vim72/syntax/r.vim -#usr/share/vim/vim72/syntax/racc.vim -#usr/share/vim/vim72/syntax/radiance.vim -#usr/share/vim/vim72/syntax/ratpoison.vim -#usr/share/vim/vim72/syntax/rc.vim -#usr/share/vim/vim72/syntax/rcs.vim -#usr/share/vim/vim72/syntax/rcslog.vim -#usr/share/vim/vim72/syntax/readline.vim -#usr/share/vim/vim72/syntax/rebol.vim -#usr/share/vim/vim72/syntax/registry.vim -#usr/share/vim/vim72/syntax/remind.vim -#usr/share/vim/vim72/syntax/resolv.vim -#usr/share/vim/vim72/syntax/reva.vim -#usr/share/vim/vim72/syntax/rexx.vim -#usr/share/vim/vim72/syntax/rhelp.vim -#usr/share/vim/vim72/syntax/rib.vim -#usr/share/vim/vim72/syntax/rnc.vim -#usr/share/vim/vim72/syntax/rnoweb.vim -#usr/share/vim/vim72/syntax/robots.vim -#usr/share/vim/vim72/syntax/rpcgen.vim -#usr/share/vim/vim72/syntax/rpl.vim -#usr/share/vim/vim72/syntax/rst.vim -#usr/share/vim/vim72/syntax/rtf.vim -#usr/share/vim/vim72/syntax/ruby.vim -#usr/share/vim/vim72/syntax/samba.vim -#usr/share/vim/vim72/syntax/sas.vim -#usr/share/vim/vim72/syntax/sass.vim -#usr/share/vim/vim72/syntax/sather.vim -#usr/share/vim/vim72/syntax/scheme.vim -#usr/share/vim/vim72/syntax/scilab.vim -#usr/share/vim/vim72/syntax/screen.vim -#usr/share/vim/vim72/syntax/sd.vim -#usr/share/vim/vim72/syntax/sdl.vim -#usr/share/vim/vim72/syntax/sed.vim -#usr/share/vim/vim72/syntax/sendpr.vim -#usr/share/vim/vim72/syntax/sensors.vim -#usr/share/vim/vim72/syntax/services.vim -#usr/share/vim/vim72/syntax/setserial.vim -#usr/share/vim/vim72/syntax/sgml.vim -#usr/share/vim/vim72/syntax/sgmldecl.vim -#usr/share/vim/vim72/syntax/sgmllnx.vim -#usr/share/vim/vim72/syntax/sh.vim -#usr/share/vim/vim72/syntax/sicad.vim -#usr/share/vim/vim72/syntax/sieve.vim -#usr/share/vim/vim72/syntax/simula.vim -#usr/share/vim/vim72/syntax/sinda.vim -#usr/share/vim/vim72/syntax/sindacmp.vim -#usr/share/vim/vim72/syntax/sindaout.vim -#usr/share/vim/vim72/syntax/sisu.vim -#usr/share/vim/vim72/syntax/skill.vim -#usr/share/vim/vim72/syntax/sl.vim -#usr/share/vim/vim72/syntax/slang.vim -#usr/share/vim/vim72/syntax/slice.vim -#usr/share/vim/vim72/syntax/slpconf.vim -#usr/share/vim/vim72/syntax/slpreg.vim -#usr/share/vim/vim72/syntax/slpspi.vim -#usr/share/vim/vim72/syntax/slrnrc.vim -#usr/share/vim/vim72/syntax/slrnsc.vim -#usr/share/vim/vim72/syntax/sm.vim -#usr/share/vim/vim72/syntax/smarty.vim -#usr/share/vim/vim72/syntax/smcl.vim -#usr/share/vim/vim72/syntax/smil.vim -#usr/share/vim/vim72/syntax/smith.vim -#usr/share/vim/vim72/syntax/sml.vim -#usr/share/vim/vim72/syntax/snnsnet.vim -#usr/share/vim/vim72/syntax/snnspat.vim -#usr/share/vim/vim72/syntax/snnsres.vim -#usr/share/vim/vim72/syntax/snobol4.vim -#usr/share/vim/vim72/syntax/spec.vim -#usr/share/vim/vim72/syntax/specman.vim -#usr/share/vim/vim72/syntax/spice.vim -#usr/share/vim/vim72/syntax/splint.vim -#usr/share/vim/vim72/syntax/spup.vim -#usr/share/vim/vim72/syntax/spyce.vim -#usr/share/vim/vim72/syntax/sql.vim -#usr/share/vim/vim72/syntax/sqlanywhere.vim -#usr/share/vim/vim72/syntax/sqlforms.vim -#usr/share/vim/vim72/syntax/sqlinformix.vim -#usr/share/vim/vim72/syntax/sqlj.vim -#usr/share/vim/vim72/syntax/sqloracle.vim -#usr/share/vim/vim72/syntax/sqr.vim -#usr/share/vim/vim72/syntax/squid.vim -#usr/share/vim/vim72/syntax/sshconfig.vim -#usr/share/vim/vim72/syntax/sshdconfig.vim -#usr/share/vim/vim72/syntax/st.vim -#usr/share/vim/vim72/syntax/stata.vim -#usr/share/vim/vim72/syntax/stp.vim -#usr/share/vim/vim72/syntax/strace.vim -#usr/share/vim/vim72/syntax/sudoers.vim -#usr/share/vim/vim72/syntax/svn.vim -#usr/share/vim/vim72/syntax/syncolor.vim -#usr/share/vim/vim72/syntax/synload.vim -#usr/share/vim/vim72/syntax/syntax.vim -#usr/share/vim/vim72/syntax/sysctl.vim -#usr/share/vim/vim72/syntax/tads.vim -#usr/share/vim/vim72/syntax/tags.vim -#usr/share/vim/vim72/syntax/tak.vim -#usr/share/vim/vim72/syntax/takcmp.vim -#usr/share/vim/vim72/syntax/takout.vim -#usr/share/vim/vim72/syntax/tar.vim -#usr/share/vim/vim72/syntax/tasm.vim -#usr/share/vim/vim72/syntax/tcl.vim -#usr/share/vim/vim72/syntax/tcsh.vim -#usr/share/vim/vim72/syntax/terminfo.vim -#usr/share/vim/vim72/syntax/tex.vim -#usr/share/vim/vim72/syntax/texinfo.vim -#usr/share/vim/vim72/syntax/texmf.vim -#usr/share/vim/vim72/syntax/tf.vim -#usr/share/vim/vim72/syntax/tidy.vim -#usr/share/vim/vim72/syntax/tilde.vim -#usr/share/vim/vim72/syntax/tli.vim -#usr/share/vim/vim72/syntax/tpp.vim -#usr/share/vim/vim72/syntax/trasys.vim -#usr/share/vim/vim72/syntax/trustees.vim -#usr/share/vim/vim72/syntax/tsalt.vim -#usr/share/vim/vim72/syntax/tsscl.vim -#usr/share/vim/vim72/syntax/tssgm.vim -#usr/share/vim/vim72/syntax/tssop.vim -#usr/share/vim/vim72/syntax/uc.vim -#usr/share/vim/vim72/syntax/udevconf.vim -#usr/share/vim/vim72/syntax/udevperm.vim -#usr/share/vim/vim72/syntax/udevrules.vim -#usr/share/vim/vim72/syntax/uil.vim -#usr/share/vim/vim72/syntax/updatedb.vim -#usr/share/vim/vim72/syntax/valgrind.vim -#usr/share/vim/vim72/syntax/vb.vim -#usr/share/vim/vim72/syntax/vera.vim -#usr/share/vim/vim72/syntax/verilog.vim -#usr/share/vim/vim72/syntax/verilogams.vim -#usr/share/vim/vim72/syntax/vgrindefs.vim -#usr/share/vim/vim72/syntax/vhdl.vim -#usr/share/vim/vim72/syntax/vim.vim -#usr/share/vim/vim72/syntax/viminfo.vim -#usr/share/vim/vim72/syntax/virata.vim -#usr/share/vim/vim72/syntax/vmasm.vim -#usr/share/vim/vim72/syntax/voscm.vim -#usr/share/vim/vim72/syntax/vrml.vim -#usr/share/vim/vim72/syntax/vsejcl.vim -#usr/share/vim/vim72/syntax/wdiff.vim -#usr/share/vim/vim72/syntax/web.vim -#usr/share/vim/vim72/syntax/webmacro.vim -#usr/share/vim/vim72/syntax/wget.vim -#usr/share/vim/vim72/syntax/whitespace.vim -#usr/share/vim/vim72/syntax/winbatch.vim -#usr/share/vim/vim72/syntax/wml.vim -#usr/share/vim/vim72/syntax/wsh.vim -#usr/share/vim/vim72/syntax/wsml.vim -#usr/share/vim/vim72/syntax/wvdial.vim -#usr/share/vim/vim72/syntax/xbl.vim -#usr/share/vim/vim72/syntax/xdefaults.vim -#usr/share/vim/vim72/syntax/xf86conf.vim -#usr/share/vim/vim72/syntax/xhtml.vim -#usr/share/vim/vim72/syntax/xinetd.vim -#usr/share/vim/vim72/syntax/xkb.vim -#usr/share/vim/vim72/syntax/xmath.vim -#usr/share/vim/vim72/syntax/xml.vim -#usr/share/vim/vim72/syntax/xmodmap.vim -#usr/share/vim/vim72/syntax/xpm.vim -#usr/share/vim/vim72/syntax/xpm2.vim -#usr/share/vim/vim72/syntax/xquery.vim -#usr/share/vim/vim72/syntax/xs.vim -#usr/share/vim/vim72/syntax/xsd.vim -#usr/share/vim/vim72/syntax/xslt.vim -#usr/share/vim/vim72/syntax/xxd.vim -#usr/share/vim/vim72/syntax/yacc.vim -#usr/share/vim/vim72/syntax/yaml.vim -#usr/share/vim/vim72/syntax/z8a.vim -#usr/share/vim/vim72/syntax/zsh.vim -#usr/share/vim/vim72/tools -#usr/share/vim/vim72/tools/README.txt -#usr/share/vim/vim72/tools/blink.c -#usr/share/vim/vim72/tools/ccfilter.1 -#usr/share/vim/vim72/tools/ccfilter.c -#usr/share/vim/vim72/tools/ccfilter_README.txt -#usr/share/vim/vim72/tools/efm_filter.pl -#usr/share/vim/vim72/tools/efm_filter.txt -#usr/share/vim/vim72/tools/efm_perl.pl -#usr/share/vim/vim72/tools/mve.awk -#usr/share/vim/vim72/tools/mve.txt -#usr/share/vim/vim72/tools/pltags.pl -#usr/share/vim/vim72/tools/ref -#usr/share/vim/vim72/tools/shtags.1 -#usr/share/vim/vim72/tools/shtags.pl -#usr/share/vim/vim72/tools/vim132 -#usr/share/vim/vim72/tools/vim_vs_net.cmd -#usr/share/vim/vim72/tools/vimm -#usr/share/vim/vim72/tools/vimspell.sh -#usr/share/vim/vim72/tools/vimspell.txt -#usr/share/vim/vim72/tools/xcmdsrv_client.c -#usr/share/vim/vim72/tutor -#usr/share/vim/vim72/tutor/README.el.cp737.txt -#usr/share/vim/vim72/tutor/README.el.txt -#usr/share/vim/vim72/tutor/README.txt -#usr/share/vim/vim72/tutor/tutor -#usr/share/vim/vim72/tutor/tutor.ca -#usr/share/vim/vim72/tutor/tutor.ca.utf-8 -#usr/share/vim/vim72/tutor/tutor.cs -#usr/share/vim/vim72/tutor/tutor.cs.cp1250 -#usr/share/vim/vim72/tutor/tutor.cs.utf-8 -#usr/share/vim/vim72/tutor/tutor.de -#usr/share/vim/vim72/tutor/tutor.de.utf-8 -#usr/share/vim/vim72/tutor/tutor.el -#usr/share/vim/vim72/tutor/tutor.el.cp737 -#usr/share/vim/vim72/tutor/tutor.el.utf-8 -#usr/share/vim/vim72/tutor/tutor.eo.utf-8 -#usr/share/vim/vim72/tutor/tutor.es -#usr/share/vim/vim72/tutor/tutor.es.utf-8 -#usr/share/vim/vim72/tutor/tutor.fr -#usr/share/vim/vim72/tutor/tutor.fr.utf-8 -#usr/share/vim/vim72/tutor/tutor.hr -#usr/share/vim/vim72/tutor/tutor.hr.cp1250 -#usr/share/vim/vim72/tutor/tutor.hr.utf-8 -#usr/share/vim/vim72/tutor/tutor.hu -#usr/share/vim/vim72/tutor/tutor.hu.cp1250 -#usr/share/vim/vim72/tutor/tutor.hu.utf-8 -#usr/share/vim/vim72/tutor/tutor.it -#usr/share/vim/vim72/tutor/tutor.it.utf-8 -#usr/share/vim/vim72/tutor/tutor.ja.euc -#usr/share/vim/vim72/tutor/tutor.ja.sjis -#usr/share/vim/vim72/tutor/tutor.ja.utf-8 -#usr/share/vim/vim72/tutor/tutor.ko.euc -#usr/share/vim/vim72/tutor/tutor.ko.utf-8 -#usr/share/vim/vim72/tutor/tutor.no -#usr/share/vim/vim72/tutor/tutor.no.utf-8 -#usr/share/vim/vim72/tutor/tutor.pl -#usr/share/vim/vim72/tutor/tutor.pl.cp1250 -#usr/share/vim/vim72/tutor/tutor.pl.utf-8 -#usr/share/vim/vim72/tutor/tutor.ru -#usr/share/vim/vim72/tutor/tutor.ru.cp1251 -#usr/share/vim/vim72/tutor/tutor.ru.utf-8 -#usr/share/vim/vim72/tutor/tutor.sk -#usr/share/vim/vim72/tutor/tutor.sk.cp1250 -#usr/share/vim/vim72/tutor/tutor.sk.utf-8 -#usr/share/vim/vim72/tutor/tutor.sv -#usr/share/vim/vim72/tutor/tutor.sv.utf-8 -#usr/share/vim/vim72/tutor/tutor.tr.iso9 -#usr/share/vim/vim72/tutor/tutor.tr.utf-8 -#usr/share/vim/vim72/tutor/tutor.utf-8 -#usr/share/vim/vim72/tutor/tutor.vi.utf-8 -#usr/share/vim/vim72/tutor/tutor.vim -#usr/share/vim/vim72/tutor/tutor.zh.big5 -#usr/share/vim/vim72/tutor/tutor.zh.euc -#usr/share/vim/vim72/tutor/tutor.zh.utf-8 -#usr/share/vim/vim72/vimrc_example.vim +#usr/share/vim/vim74 +#usr/share/vim/vim74/autoload +#usr/share/vim/vim74/autoload/README.txt +#usr/share/vim/vim74/autoload/ada.vim +#usr/share/vim/vim74/autoload/adacomplete.vim +#usr/share/vim/vim74/autoload/ccomplete.vim +#usr/share/vim/vim74/autoload/clojurecomplete.vim +#usr/share/vim/vim74/autoload/csscomplete.vim +#usr/share/vim/vim74/autoload/decada.vim +#usr/share/vim/vim74/autoload/getscript.vim +#usr/share/vim/vim74/autoload/gnat.vim +#usr/share/vim/vim74/autoload/gzip.vim +#usr/share/vim/vim74/autoload/htmlcomplete.vim +#usr/share/vim/vim74/autoload/javascriptcomplete.vim +#usr/share/vim/vim74/autoload/netrw.vim +#usr/share/vim/vim74/autoload/netrwFileHandlers.vim +#usr/share/vim/vim74/autoload/netrwSettings.vim +#usr/share/vim/vim74/autoload/paste.vim +#usr/share/vim/vim74/autoload/phpcomplete.vim +#usr/share/vim/vim74/autoload/python3complete.vim +#usr/share/vim/vim74/autoload/pythoncomplete.vim +#usr/share/vim/vim74/autoload/rubycomplete.vim +#usr/share/vim/vim74/autoload/spellfile.vim +#usr/share/vim/vim74/autoload/sqlcomplete.vim +#usr/share/vim/vim74/autoload/syntaxcomplete.vim +#usr/share/vim/vim74/autoload/tar.vim +#usr/share/vim/vim74/autoload/tohtml.vim +#usr/share/vim/vim74/autoload/vimball.vim +#usr/share/vim/vim74/autoload/xml +#usr/share/vim/vim74/autoload/xml/html32.vim +#usr/share/vim/vim74/autoload/xml/html401f.vim +#usr/share/vim/vim74/autoload/xml/html401s.vim +#usr/share/vim/vim74/autoload/xml/html401t.vim +#usr/share/vim/vim74/autoload/xml/html40f.vim +#usr/share/vim/vim74/autoload/xml/html40s.vim +#usr/share/vim/vim74/autoload/xml/html40t.vim +#usr/share/vim/vim74/autoload/xml/xhtml10f.vim +#usr/share/vim/vim74/autoload/xml/xhtml10s.vim +#usr/share/vim/vim74/autoload/xml/xhtml10t.vim +#usr/share/vim/vim74/autoload/xml/xhtml11.vim +#usr/share/vim/vim74/autoload/xml/xsd.vim +#usr/share/vim/vim74/autoload/xml/xsl.vim +#usr/share/vim/vim74/autoload/xmlcomplete.vim +#usr/share/vim/vim74/autoload/zip.vim +#usr/share/vim/vim74/bugreport.vim +#usr/share/vim/vim74/colors +#usr/share/vim/vim74/colors/README.txt +#usr/share/vim/vim74/colors/blue.vim +#usr/share/vim/vim74/colors/darkblue.vim +#usr/share/vim/vim74/colors/default.vim +#usr/share/vim/vim74/colors/delek.vim +#usr/share/vim/vim74/colors/desert.vim +#usr/share/vim/vim74/colors/elflord.vim +#usr/share/vim/vim74/colors/evening.vim +#usr/share/vim/vim74/colors/koehler.vim +#usr/share/vim/vim74/colors/morning.vim +#usr/share/vim/vim74/colors/murphy.vim +#usr/share/vim/vim74/colors/pablo.vim +#usr/share/vim/vim74/colors/peachpuff.vim +#usr/share/vim/vim74/colors/ron.vim +#usr/share/vim/vim74/colors/shine.vim +#usr/share/vim/vim74/colors/slate.vim +#usr/share/vim/vim74/colors/torte.vim +#usr/share/vim/vim74/colors/zellner.vim +#usr/share/vim/vim74/compiler +#usr/share/vim/vim74/compiler/README.txt +#usr/share/vim/vim74/compiler/ant.vim +#usr/share/vim/vim74/compiler/bcc.vim +#usr/share/vim/vim74/compiler/bdf.vim +#usr/share/vim/vim74/compiler/checkstyle.vim +#usr/share/vim/vim74/compiler/cs.vim +#usr/share/vim/vim74/compiler/cucumber.vim +#usr/share/vim/vim74/compiler/decada.vim +#usr/share/vim/vim74/compiler/dot.vim +#usr/share/vim/vim74/compiler/erlang.vim +#usr/share/vim/vim74/compiler/eruby.vim +#usr/share/vim/vim74/compiler/fortran_F.vim +#usr/share/vim/vim74/compiler/fortran_cv.vim +#usr/share/vim/vim74/compiler/fortran_elf90.vim +#usr/share/vim/vim74/compiler/fortran_g77.vim +#usr/share/vim/vim74/compiler/fortran_lf95.vim +#usr/share/vim/vim74/compiler/fpc.vim +#usr/share/vim/vim74/compiler/g95.vim +#usr/share/vim/vim74/compiler/gcc.vim +#usr/share/vim/vim74/compiler/gfortran.vim +#usr/share/vim/vim74/compiler/gnat.vim +#usr/share/vim/vim74/compiler/haml.vim +#usr/share/vim/vim74/compiler/hp_acc.vim +#usr/share/vim/vim74/compiler/icc.vim +#usr/share/vim/vim74/compiler/ifort.vim +#usr/share/vim/vim74/compiler/intel.vim +#usr/share/vim/vim74/compiler/irix5_c.vim +#usr/share/vim/vim74/compiler/irix5_cpp.vim +#usr/share/vim/vim74/compiler/javac.vim +#usr/share/vim/vim74/compiler/jikes.vim +#usr/share/vim/vim74/compiler/mcs.vim +#usr/share/vim/vim74/compiler/mips_c.vim +#usr/share/vim/vim74/compiler/mipspro_c89.vim +#usr/share/vim/vim74/compiler/mipspro_cpp.vim +#usr/share/vim/vim74/compiler/modelsim_vcom.vim +#usr/share/vim/vim74/compiler/msbuild.vim +#usr/share/vim/vim74/compiler/msvc.vim +#usr/share/vim/vim74/compiler/neato.vim +#usr/share/vim/vim74/compiler/ocaml.vim +#usr/share/vim/vim74/compiler/onsgmls.vim +#usr/share/vim/vim74/compiler/pbx.vim +#usr/share/vim/vim74/compiler/perl.vim +#usr/share/vim/vim74/compiler/php.vim +#usr/share/vim/vim74/compiler/pyunit.vim +#usr/share/vim/vim74/compiler/rake.vim +#usr/share/vim/vim74/compiler/rspec.vim +#usr/share/vim/vim74/compiler/rst.vim +#usr/share/vim/vim74/compiler/ruby.vim +#usr/share/vim/vim74/compiler/rubyunit.vim +#usr/share/vim/vim74/compiler/sass.vim +#usr/share/vim/vim74/compiler/se.vim +#usr/share/vim/vim74/compiler/splint.vim +#usr/share/vim/vim74/compiler/tcl.vim +#usr/share/vim/vim74/compiler/tex.vim +#usr/share/vim/vim74/compiler/tidy.vim +#usr/share/vim/vim74/compiler/xbuild.vim +#usr/share/vim/vim74/compiler/xmllint.vim +#usr/share/vim/vim74/compiler/xmlwf.vim +#usr/share/vim/vim74/delmenu.vim +#usr/share/vim/vim74/doc +#usr/share/vim/vim74/doc/arabic.txt +#usr/share/vim/vim74/doc/autocmd.txt +#usr/share/vim/vim74/doc/change.txt +#usr/share/vim/vim74/doc/cmdline.txt +#usr/share/vim/vim74/doc/debug.txt +#usr/share/vim/vim74/doc/debugger.txt +#usr/share/vim/vim74/doc/develop.txt +#usr/share/vim/vim74/doc/diff.txt +#usr/share/vim/vim74/doc/digraph.txt +#usr/share/vim/vim74/doc/editing.txt +#usr/share/vim/vim74/doc/eval.txt +#usr/share/vim/vim74/doc/farsi.txt +#usr/share/vim/vim74/doc/filetype.txt +#usr/share/vim/vim74/doc/fold.txt +#usr/share/vim/vim74/doc/ft_ada.txt +#usr/share/vim/vim74/doc/ft_sql.txt +#usr/share/vim/vim74/doc/gui.txt +#usr/share/vim/vim74/doc/gui_w16.txt +#usr/share/vim/vim74/doc/gui_w32.txt +#usr/share/vim/vim74/doc/gui_x11.txt +#usr/share/vim/vim74/doc/hangulin.txt +#usr/share/vim/vim74/doc/hebrew.txt +#usr/share/vim/vim74/doc/help.txt +#usr/share/vim/vim74/doc/helphelp.txt +#usr/share/vim/vim74/doc/howto.txt +#usr/share/vim/vim74/doc/if_cscop.txt +#usr/share/vim/vim74/doc/if_lua.txt +#usr/share/vim/vim74/doc/if_mzsch.txt +#usr/share/vim/vim74/doc/if_ole.txt +#usr/share/vim/vim74/doc/if_perl.txt +#usr/share/vim/vim74/doc/if_pyth.txt +#usr/share/vim/vim74/doc/if_ruby.txt +#usr/share/vim/vim74/doc/if_sniff.txt +#usr/share/vim/vim74/doc/if_tcl.txt +#usr/share/vim/vim74/doc/indent.txt +#usr/share/vim/vim74/doc/index.txt +#usr/share/vim/vim74/doc/insert.txt +#usr/share/vim/vim74/doc/intro.txt +#usr/share/vim/vim74/doc/map.txt +#usr/share/vim/vim74/doc/mbyte.txt +#usr/share/vim/vim74/doc/message.txt +#usr/share/vim/vim74/doc/mlang.txt +#usr/share/vim/vim74/doc/motion.txt +#usr/share/vim/vim74/doc/netbeans.txt +#usr/share/vim/vim74/doc/options.txt +#usr/share/vim/vim74/doc/os_390.txt +#usr/share/vim/vim74/doc/os_amiga.txt +#usr/share/vim/vim74/doc/os_beos.txt +#usr/share/vim/vim74/doc/os_dos.txt +#usr/share/vim/vim74/doc/os_mac.txt +#usr/share/vim/vim74/doc/os_mint.txt +#usr/share/vim/vim74/doc/os_msdos.txt +#usr/share/vim/vim74/doc/os_os2.txt +#usr/share/vim/vim74/doc/os_qnx.txt +#usr/share/vim/vim74/doc/os_risc.txt +#usr/share/vim/vim74/doc/os_unix.txt +#usr/share/vim/vim74/doc/os_vms.txt +#usr/share/vim/vim74/doc/os_win32.txt +#usr/share/vim/vim74/doc/pattern.txt +#usr/share/vim/vim74/doc/pi_getscript.txt +#usr/share/vim/vim74/doc/pi_gzip.txt +#usr/share/vim/vim74/doc/pi_netrw.txt +#usr/share/vim/vim74/doc/pi_paren.txt +#usr/share/vim/vim74/doc/pi_spec.txt +#usr/share/vim/vim74/doc/pi_tar.txt +#usr/share/vim/vim74/doc/pi_vimball.txt +#usr/share/vim/vim74/doc/pi_zip.txt +#usr/share/vim/vim74/doc/print.txt +#usr/share/vim/vim74/doc/quickfix.txt +#usr/share/vim/vim74/doc/quickref.txt +#usr/share/vim/vim74/doc/quotes.txt +#usr/share/vim/vim74/doc/recover.txt +#usr/share/vim/vim74/doc/remote.txt +#usr/share/vim/vim74/doc/repeat.txt +#usr/share/vim/vim74/doc/rileft.txt +#usr/share/vim/vim74/doc/russian.txt +#usr/share/vim/vim74/doc/scroll.txt +#usr/share/vim/vim74/doc/sign.txt +#usr/share/vim/vim74/doc/spell.txt +#usr/share/vim/vim74/doc/sponsor.txt +#usr/share/vim/vim74/doc/starting.txt +#usr/share/vim/vim74/doc/syntax.txt +#usr/share/vim/vim74/doc/tabpage.txt +#usr/share/vim/vim74/doc/tags +#usr/share/vim/vim74/doc/tagsrch.txt +#usr/share/vim/vim74/doc/term.txt +#usr/share/vim/vim74/doc/tips.txt +#usr/share/vim/vim74/doc/todo.txt +#usr/share/vim/vim74/doc/uganda.txt +#usr/share/vim/vim74/doc/undo.txt +#usr/share/vim/vim74/doc/usr_01.txt +#usr/share/vim/vim74/doc/usr_02.txt +#usr/share/vim/vim74/doc/usr_03.txt +#usr/share/vim/vim74/doc/usr_04.txt +#usr/share/vim/vim74/doc/usr_05.txt +#usr/share/vim/vim74/doc/usr_06.txt +#usr/share/vim/vim74/doc/usr_07.txt +#usr/share/vim/vim74/doc/usr_08.txt +#usr/share/vim/vim74/doc/usr_09.txt +#usr/share/vim/vim74/doc/usr_10.txt +#usr/share/vim/vim74/doc/usr_11.txt +#usr/share/vim/vim74/doc/usr_12.txt +#usr/share/vim/vim74/doc/usr_20.txt +#usr/share/vim/vim74/doc/usr_21.txt +#usr/share/vim/vim74/doc/usr_22.txt +#usr/share/vim/vim74/doc/usr_23.txt +#usr/share/vim/vim74/doc/usr_24.txt +#usr/share/vim/vim74/doc/usr_25.txt +#usr/share/vim/vim74/doc/usr_26.txt +#usr/share/vim/vim74/doc/usr_27.txt +#usr/share/vim/vim74/doc/usr_28.txt +#usr/share/vim/vim74/doc/usr_29.txt +#usr/share/vim/vim74/doc/usr_30.txt +#usr/share/vim/vim74/doc/usr_31.txt +#usr/share/vim/vim74/doc/usr_32.txt +#usr/share/vim/vim74/doc/usr_40.txt +#usr/share/vim/vim74/doc/usr_41.txt +#usr/share/vim/vim74/doc/usr_42.txt +#usr/share/vim/vim74/doc/usr_43.txt +#usr/share/vim/vim74/doc/usr_44.txt +#usr/share/vim/vim74/doc/usr_45.txt +#usr/share/vim/vim74/doc/usr_90.txt +#usr/share/vim/vim74/doc/usr_toc.txt +#usr/share/vim/vim74/doc/various.txt +#usr/share/vim/vim74/doc/version4.txt +#usr/share/vim/vim74/doc/version5.txt +#usr/share/vim/vim74/doc/version6.txt +#usr/share/vim/vim74/doc/version7.txt +#usr/share/vim/vim74/doc/vi_diff.txt +#usr/share/vim/vim74/doc/vim2html.pl +#usr/share/vim/vim74/doc/visual.txt +#usr/share/vim/vim74/doc/windows.txt +#usr/share/vim/vim74/doc/workshop.txt +#usr/share/vim/vim74/evim.vim +#usr/share/vim/vim74/filetype.vim +#usr/share/vim/vim74/ftoff.vim +#usr/share/vim/vim74/ftplugin +#usr/share/vim/vim74/ftplugin.vim +#usr/share/vim/vim74/ftplugin/README.txt +#usr/share/vim/vim74/ftplugin/a2ps.vim +#usr/share/vim/vim74/ftplugin/aap.vim +#usr/share/vim/vim74/ftplugin/abap.vim +#usr/share/vim/vim74/ftplugin/abaqus.vim +#usr/share/vim/vim74/ftplugin/ada.vim +#usr/share/vim/vim74/ftplugin/alsaconf.vim +#usr/share/vim/vim74/ftplugin/ant.vim +#usr/share/vim/vim74/ftplugin/arch.vim +#usr/share/vim/vim74/ftplugin/art.vim +#usr/share/vim/vim74/ftplugin/aspvbs.vim +#usr/share/vim/vim74/ftplugin/automake.vim +#usr/share/vim/vim74/ftplugin/bdf.vim +#usr/share/vim/vim74/ftplugin/bst.vim +#usr/share/vim/vim74/ftplugin/btm.vim +#usr/share/vim/vim74/ftplugin/c.vim +#usr/share/vim/vim74/ftplugin/calendar.vim +#usr/share/vim/vim74/ftplugin/cdrdaoconf.vim +#usr/share/vim/vim74/ftplugin/ch.vim +#usr/share/vim/vim74/ftplugin/changelog.vim +#usr/share/vim/vim74/ftplugin/clojure.vim +#usr/share/vim/vim74/ftplugin/cobol.vim +#usr/share/vim/vim74/ftplugin/conf.vim +#usr/share/vim/vim74/ftplugin/config.vim +#usr/share/vim/vim74/ftplugin/context.vim +#usr/share/vim/vim74/ftplugin/cpp.vim +#usr/share/vim/vim74/ftplugin/crm.vim +#usr/share/vim/vim74/ftplugin/cs.vim +#usr/share/vim/vim74/ftplugin/csc.vim +#usr/share/vim/vim74/ftplugin/csh.vim +#usr/share/vim/vim74/ftplugin/css.vim +#usr/share/vim/vim74/ftplugin/cucumber.vim +#usr/share/vim/vim74/ftplugin/cvsrc.vim +#usr/share/vim/vim74/ftplugin/debchangelog.vim +#usr/share/vim/vim74/ftplugin/debcontrol.vim +#usr/share/vim/vim74/ftplugin/denyhosts.vim +#usr/share/vim/vim74/ftplugin/dictconf.vim +#usr/share/vim/vim74/ftplugin/dictdconf.vim +#usr/share/vim/vim74/ftplugin/diff.vim +#usr/share/vim/vim74/ftplugin/dircolors.vim +#usr/share/vim/vim74/ftplugin/docbk.vim +#usr/share/vim/vim74/ftplugin/dosbatch.vim +#usr/share/vim/vim74/ftplugin/dosini.vim +#usr/share/vim/vim74/ftplugin/dtd.vim +#usr/share/vim/vim74/ftplugin/dtrace.vim +#usr/share/vim/vim74/ftplugin/elinks.vim +#usr/share/vim/vim74/ftplugin/erlang.vim +#usr/share/vim/vim74/ftplugin/eruby.vim +#usr/share/vim/vim74/ftplugin/eterm.vim +#usr/share/vim/vim74/ftplugin/falcon.vim +#usr/share/vim/vim74/ftplugin/fetchmail.vim +#usr/share/vim/vim74/ftplugin/flexwiki.vim +#usr/share/vim/vim74/ftplugin/fortran.vim +#usr/share/vim/vim74/ftplugin/framescript.vim +#usr/share/vim/vim74/ftplugin/fvwm.vim +#usr/share/vim/vim74/ftplugin/git.vim +#usr/share/vim/vim74/ftplugin/gitcommit.vim +#usr/share/vim/vim74/ftplugin/gitconfig.vim +#usr/share/vim/vim74/ftplugin/gitrebase.vim +#usr/share/vim/vim74/ftplugin/gitsendemail.vim +#usr/share/vim/vim74/ftplugin/gpg.vim +#usr/share/vim/vim74/ftplugin/gprof.vim +#usr/share/vim/vim74/ftplugin/group.vim +#usr/share/vim/vim74/ftplugin/grub.vim +#usr/share/vim/vim74/ftplugin/haml.vim +#usr/share/vim/vim74/ftplugin/hamster.vim +#usr/share/vim/vim74/ftplugin/haskell.vim +#usr/share/vim/vim74/ftplugin/help.vim +#usr/share/vim/vim74/ftplugin/hostconf.vim +#usr/share/vim/vim74/ftplugin/hostsaccess.vim +#usr/share/vim/vim74/ftplugin/html.vim +#usr/share/vim/vim74/ftplugin/htmldjango.vim +#usr/share/vim/vim74/ftplugin/indent.vim +#usr/share/vim/vim74/ftplugin/initex.vim +#usr/share/vim/vim74/ftplugin/ishd.vim +#usr/share/vim/vim74/ftplugin/java.vim +#usr/share/vim/vim74/ftplugin/javascript.vim +#usr/share/vim/vim74/ftplugin/jsp.vim +#usr/share/vim/vim74/ftplugin/kconfig.vim +#usr/share/vim/vim74/ftplugin/kwt.vim +#usr/share/vim/vim74/ftplugin/ld.vim +#usr/share/vim/vim74/ftplugin/lftp.vim +#usr/share/vim/vim74/ftplugin/libao.vim +#usr/share/vim/vim74/ftplugin/limits.vim +#usr/share/vim/vim74/ftplugin/liquid.vim +#usr/share/vim/vim74/ftplugin/lisp.vim +#usr/share/vim/vim74/ftplugin/logcheck.vim +#usr/share/vim/vim74/ftplugin/loginaccess.vim +#usr/share/vim/vim74/ftplugin/logindefs.vim +#usr/share/vim/vim74/ftplugin/logtalk.dict +#usr/share/vim/vim74/ftplugin/logtalk.vim +#usr/share/vim/vim74/ftplugin/lprolog.vim +#usr/share/vim/vim74/ftplugin/lua.vim +#usr/share/vim/vim74/ftplugin/m4.vim +#usr/share/vim/vim74/ftplugin/mail.vim +#usr/share/vim/vim74/ftplugin/mailaliases.vim +#usr/share/vim/vim74/ftplugin/mailcap.vim +#usr/share/vim/vim74/ftplugin/make.vim +#usr/share/vim/vim74/ftplugin/man.vim +#usr/share/vim/vim74/ftplugin/manconf.vim +#usr/share/vim/vim74/ftplugin/markdown.vim +#usr/share/vim/vim74/ftplugin/matlab.vim +#usr/share/vim/vim74/ftplugin/mf.vim +#usr/share/vim/vim74/ftplugin/modconf.vim +#usr/share/vim/vim74/ftplugin/mp.vim +#usr/share/vim/vim74/ftplugin/mplayerconf.vim +#usr/share/vim/vim74/ftplugin/mrxvtrc.vim +#usr/share/vim/vim74/ftplugin/msmessages.vim +#usr/share/vim/vim74/ftplugin/muttrc.vim +#usr/share/vim/vim74/ftplugin/nanorc.vim +#usr/share/vim/vim74/ftplugin/netrc.vim +#usr/share/vim/vim74/ftplugin/nsis.vim +#usr/share/vim/vim74/ftplugin/objc.vim +#usr/share/vim/vim74/ftplugin/ocaml.vim +#usr/share/vim/vim74/ftplugin/occam.vim +#usr/share/vim/vim74/ftplugin/pamconf.vim +#usr/share/vim/vim74/ftplugin/pascal.vim +#usr/share/vim/vim74/ftplugin/passwd.vim +#usr/share/vim/vim74/ftplugin/pdf.vim +#usr/share/vim/vim74/ftplugin/perl.vim +#usr/share/vim/vim74/ftplugin/perl6.vim +#usr/share/vim/vim74/ftplugin/php.vim +#usr/share/vim/vim74/ftplugin/pinfo.vim +#usr/share/vim/vim74/ftplugin/plaintex.vim +#usr/share/vim/vim74/ftplugin/postscr.vim +#usr/share/vim/vim74/ftplugin/procmail.vim +#usr/share/vim/vim74/ftplugin/prolog.vim +#usr/share/vim/vim74/ftplugin/protocols.vim +#usr/share/vim/vim74/ftplugin/pyrex.vim +#usr/share/vim/vim74/ftplugin/python.vim +#usr/share/vim/vim74/ftplugin/qf.vim +#usr/share/vim/vim74/ftplugin/quake.vim +#usr/share/vim/vim74/ftplugin/racc.vim +#usr/share/vim/vim74/ftplugin/readline.vim +#usr/share/vim/vim74/ftplugin/reva.vim +#usr/share/vim/vim74/ftplugin/rnc.vim +#usr/share/vim/vim74/ftplugin/rpl.vim +#usr/share/vim/vim74/ftplugin/rst.vim +#usr/share/vim/vim74/ftplugin/ruby.vim +#usr/share/vim/vim74/ftplugin/sass.vim +#usr/share/vim/vim74/ftplugin/scheme.vim +#usr/share/vim/vim74/ftplugin/screen.vim +#usr/share/vim/vim74/ftplugin/scss.vim +#usr/share/vim/vim74/ftplugin/sensors.vim +#usr/share/vim/vim74/ftplugin/services.vim +#usr/share/vim/vim74/ftplugin/setserial.vim +#usr/share/vim/vim74/ftplugin/sgml.vim +#usr/share/vim/vim74/ftplugin/sh.vim +#usr/share/vim/vim74/ftplugin/sieve.vim +#usr/share/vim/vim74/ftplugin/slpconf.vim +#usr/share/vim/vim74/ftplugin/slpreg.vim +#usr/share/vim/vim74/ftplugin/slpspi.vim +#usr/share/vim/vim74/ftplugin/spec.vim +#usr/share/vim/vim74/ftplugin/sql.vim +#usr/share/vim/vim74/ftplugin/sshconfig.vim +#usr/share/vim/vim74/ftplugin/sudoers.vim +#usr/share/vim/vim74/ftplugin/svg.vim +#usr/share/vim/vim74/ftplugin/sysctl.vim +#usr/share/vim/vim74/ftplugin/tcl.vim +#usr/share/vim/vim74/ftplugin/tcsh.vim +#usr/share/vim/vim74/ftplugin/terminfo.vim +#usr/share/vim/vim74/ftplugin/tex.vim +#usr/share/vim/vim74/ftplugin/treetop.vim +#usr/share/vim/vim74/ftplugin/tt2html.vim +#usr/share/vim/vim74/ftplugin/udevconf.vim +#usr/share/vim/vim74/ftplugin/udevperm.vim +#usr/share/vim/vim74/ftplugin/udevrules.vim +#usr/share/vim/vim74/ftplugin/updatedb.vim +#usr/share/vim/vim74/ftplugin/vb.vim +#usr/share/vim/vim74/ftplugin/verilog.vim +#usr/share/vim/vim74/ftplugin/vhdl.vim +#usr/share/vim/vim74/ftplugin/vim.vim +#usr/share/vim/vim74/ftplugin/xdefaults.vim +#usr/share/vim/vim74/ftplugin/xf86conf.vim +#usr/share/vim/vim74/ftplugin/xhtml.vim +#usr/share/vim/vim74/ftplugin/xinetd.vim +#usr/share/vim/vim74/ftplugin/xml.vim +#usr/share/vim/vim74/ftplugin/xmodmap.vim +#usr/share/vim/vim74/ftplugin/xs.vim +#usr/share/vim/vim74/ftplugin/xsd.vim +#usr/share/vim/vim74/ftplugin/xslt.vim +#usr/share/vim/vim74/ftplugin/yaml.vim +#usr/share/vim/vim74/ftplugin/zimbu.vim +#usr/share/vim/vim74/ftplugin/zsh.vim +#usr/share/vim/vim74/ftplugof.vim +#usr/share/vim/vim74/gvimrc_example.vim +#usr/share/vim/vim74/indent +#usr/share/vim/vim74/indent.vim +#usr/share/vim/vim74/indent/README.txt +#usr/share/vim/vim74/indent/aap.vim +#usr/share/vim/vim74/indent/ada.vim +#usr/share/vim/vim74/indent/ant.vim +#usr/share/vim/vim74/indent/automake.vim +#usr/share/vim/vim74/indent/awk.vim +#usr/share/vim/vim74/indent/bib.vim +#usr/share/vim/vim74/indent/bst.vim +#usr/share/vim/vim74/indent/c.vim +#usr/share/vim/vim74/indent/cdl.vim +#usr/share/vim/vim74/indent/ch.vim +#usr/share/vim/vim74/indent/chaiscript.vim +#usr/share/vim/vim74/indent/changelog.vim +#usr/share/vim/vim74/indent/clojure.vim +#usr/share/vim/vim74/indent/cmake.vim +#usr/share/vim/vim74/indent/cobol.vim +#usr/share/vim/vim74/indent/config.vim +#usr/share/vim/vim74/indent/cpp.vim +#usr/share/vim/vim74/indent/cs.vim +#usr/share/vim/vim74/indent/css.vim +#usr/share/vim/vim74/indent/cucumber.vim +#usr/share/vim/vim74/indent/cuda.vim +#usr/share/vim/vim74/indent/d.vim +#usr/share/vim/vim74/indent/dictconf.vim +#usr/share/vim/vim74/indent/dictdconf.vim +#usr/share/vim/vim74/indent/docbk.vim +#usr/share/vim/vim74/indent/dtd.vim +#usr/share/vim/vim74/indent/dtrace.vim +#usr/share/vim/vim74/indent/dylan.vim +#usr/share/vim/vim74/indent/eiffel.vim +#usr/share/vim/vim74/indent/erlang.vim +#usr/share/vim/vim74/indent/eruby.vim +#usr/share/vim/vim74/indent/eterm.vim +#usr/share/vim/vim74/indent/falcon.vim +#usr/share/vim/vim74/indent/fortran.vim +#usr/share/vim/vim74/indent/framescript.vim +#usr/share/vim/vim74/indent/gitconfig.vim +#usr/share/vim/vim74/indent/gitolite.vim +#usr/share/vim/vim74/indent/haml.vim +#usr/share/vim/vim74/indent/hamster.vim +#usr/share/vim/vim74/indent/html.vim +#usr/share/vim/vim74/indent/htmldjango.vim +#usr/share/vim/vim74/indent/idlang.vim +#usr/share/vim/vim74/indent/ishd.vim +#usr/share/vim/vim74/indent/java.vim +#usr/share/vim/vim74/indent/javascript.vim +#usr/share/vim/vim74/indent/jsp.vim +#usr/share/vim/vim74/indent/ld.vim +#usr/share/vim/vim74/indent/lifelines.vim +#usr/share/vim/vim74/indent/liquid.vim +#usr/share/vim/vim74/indent/lisp.vim +#usr/share/vim/vim74/indent/logtalk.vim +#usr/share/vim/vim74/indent/lua.vim +#usr/share/vim/vim74/indent/mail.vim +#usr/share/vim/vim74/indent/make.vim +#usr/share/vim/vim74/indent/matlab.vim +#usr/share/vim/vim74/indent/mma.vim +#usr/share/vim/vim74/indent/mp.vim +#usr/share/vim/vim74/indent/objc.vim +#usr/share/vim/vim74/indent/ocaml.vim +#usr/share/vim/vim74/indent/occam.vim +#usr/share/vim/vim74/indent/pascal.vim +#usr/share/vim/vim74/indent/perl.vim +#usr/share/vim/vim74/indent/perl6.vim +#usr/share/vim/vim74/indent/php.vim +#usr/share/vim/vim74/indent/postscr.vim +#usr/share/vim/vim74/indent/pov.vim +#usr/share/vim/vim74/indent/prolog.vim +#usr/share/vim/vim74/indent/pyrex.vim +#usr/share/vim/vim74/indent/python.vim +#usr/share/vim/vim74/indent/r.vim +#usr/share/vim/vim74/indent/readline.vim +#usr/share/vim/vim74/indent/rpl.vim +#usr/share/vim/vim74/indent/rst.vim +#usr/share/vim/vim74/indent/ruby.vim +#usr/share/vim/vim74/indent/sass.vim +#usr/share/vim/vim74/indent/scheme.vim +#usr/share/vim/vim74/indent/scss.vim +#usr/share/vim/vim74/indent/sdl.vim +#usr/share/vim/vim74/indent/sh.vim +#usr/share/vim/vim74/indent/sml.vim +#usr/share/vim/vim74/indent/sql.vim +#usr/share/vim/vim74/indent/sqlanywhere.vim +#usr/share/vim/vim74/indent/tcl.vim +#usr/share/vim/vim74/indent/tcsh.vim +#usr/share/vim/vim74/indent/tex.vim +#usr/share/vim/vim74/indent/tf.vim +#usr/share/vim/vim74/indent/tilde.vim +#usr/share/vim/vim74/indent/treetop.vim +#usr/share/vim/vim74/indent/vb.vim +#usr/share/vim/vim74/indent/verilog.vim +#usr/share/vim/vim74/indent/vhdl.vim +#usr/share/vim/vim74/indent/vim.vim +#usr/share/vim/vim74/indent/xf86conf.vim +#usr/share/vim/vim74/indent/xhtml.vim +#usr/share/vim/vim74/indent/xinetd.vim +#usr/share/vim/vim74/indent/xml.vim +#usr/share/vim/vim74/indent/xsd.vim +#usr/share/vim/vim74/indent/xslt.vim +#usr/share/vim/vim74/indent/yacc.vim +#usr/share/vim/vim74/indent/yaml.vim +#usr/share/vim/vim74/indent/zimbu.vim +#usr/share/vim/vim74/indent/zsh.vim +#usr/share/vim/vim74/indoff.vim +#usr/share/vim/vim74/macros +#usr/share/vim/vim74/macros/README.txt +#usr/share/vim/vim74/macros/dvorak +#usr/share/vim/vim74/macros/editexisting.vim +#usr/share/vim/vim74/macros/hanoi +#usr/share/vim/vim74/macros/hanoi/click.me +#usr/share/vim/vim74/macros/hanoi/hanoi.vim +#usr/share/vim/vim74/macros/hanoi/poster +#usr/share/vim/vim74/macros/justify.vim +#usr/share/vim/vim74/macros/less.bat +#usr/share/vim/vim74/macros/less.sh +#usr/share/vim/vim74/macros/less.vim +#usr/share/vim/vim74/macros/life +#usr/share/vim/vim74/macros/life/click.me +#usr/share/vim/vim74/macros/life/life.vim +#usr/share/vim/vim74/macros/matchit.txt +#usr/share/vim/vim74/macros/matchit.vim +#usr/share/vim/vim74/macros/maze +#usr/share/vim/vim74/macros/maze/Makefile +#usr/share/vim/vim74/macros/maze/README.txt +#usr/share/vim/vim74/macros/maze/main.aap +#usr/share/vim/vim74/macros/maze/maze.c +#usr/share/vim/vim74/macros/maze/maze_5.78 +#usr/share/vim/vim74/macros/maze/maze_mac +#usr/share/vim/vim74/macros/maze/mazeansi.c +#usr/share/vim/vim74/macros/maze/mazeclean.c +#usr/share/vim/vim74/macros/maze/poster +#usr/share/vim/vim74/macros/shellmenu.vim +#usr/share/vim/vim74/macros/swapmous.vim +#usr/share/vim/vim74/macros/urm +#usr/share/vim/vim74/macros/urm/README.txt +#usr/share/vim/vim74/macros/urm/examples +#usr/share/vim/vim74/macros/urm/urm +#usr/share/vim/vim74/macros/urm/urm.vim +#usr/share/vim/vim74/menu.vim +#usr/share/vim/vim74/mswin.vim +#usr/share/vim/vim74/optwin.vim +#usr/share/vim/vim74/plugin +#usr/share/vim/vim74/plugin/README.txt +#usr/share/vim/vim74/plugin/getscriptPlugin.vim +#usr/share/vim/vim74/plugin/gzip.vim +#usr/share/vim/vim74/plugin/matchparen.vim +#usr/share/vim/vim74/plugin/netrwPlugin.vim +#usr/share/vim/vim74/plugin/rrhelper.vim +#usr/share/vim/vim74/plugin/spellfile.vim +#usr/share/vim/vim74/plugin/tarPlugin.vim +#usr/share/vim/vim74/plugin/tohtml.vim +#usr/share/vim/vim74/plugin/vimballPlugin.vim +#usr/share/vim/vim74/plugin/zipPlugin.vim +#usr/share/vim/vim74/print +#usr/share/vim/vim74/print/ascii.ps +#usr/share/vim/vim74/print/cidfont.ps +#usr/share/vim/vim74/print/cns_roman.ps +#usr/share/vim/vim74/print/cp1250.ps +#usr/share/vim/vim74/print/cp1251.ps +#usr/share/vim/vim74/print/cp1252.ps +#usr/share/vim/vim74/print/cp1253.ps +#usr/share/vim/vim74/print/cp1254.ps +#usr/share/vim/vim74/print/cp1255.ps +#usr/share/vim/vim74/print/cp1257.ps +#usr/share/vim/vim74/print/dec-mcs.ps +#usr/share/vim/vim74/print/ebcdic-uk.ps +#usr/share/vim/vim74/print/gb_roman.ps +#usr/share/vim/vim74/print/hp-roman8.ps +#usr/share/vim/vim74/print/iso-8859-10.ps +#usr/share/vim/vim74/print/iso-8859-11.ps +#usr/share/vim/vim74/print/iso-8859-13.ps +#usr/share/vim/vim74/print/iso-8859-14.ps +#usr/share/vim/vim74/print/iso-8859-15.ps +#usr/share/vim/vim74/print/iso-8859-2.ps +#usr/share/vim/vim74/print/iso-8859-3.ps +#usr/share/vim/vim74/print/iso-8859-4.ps +#usr/share/vim/vim74/print/iso-8859-5.ps +#usr/share/vim/vim74/print/iso-8859-7.ps +#usr/share/vim/vim74/print/iso-8859-8.ps +#usr/share/vim/vim74/print/iso-8859-9.ps +#usr/share/vim/vim74/print/jis_roman.ps +#usr/share/vim/vim74/print/koi8-r.ps +#usr/share/vim/vim74/print/koi8-u.ps +#usr/share/vim/vim74/print/ks_roman.ps +#usr/share/vim/vim74/print/latin1.ps +#usr/share/vim/vim74/print/mac-roman.ps +#usr/share/vim/vim74/print/prolog.ps +#usr/share/vim/vim74/scripts.vim +#usr/share/vim/vim74/spell +#usr/share/vim/vim74/spell/check_locales.vim +#usr/share/vim/vim74/spell/cleanadd.vim +#usr/share/vim/vim74/spell/en.ascii.spl +#usr/share/vim/vim74/spell/en.ascii.sug +#usr/share/vim/vim74/spell/en.latin1.spl +#usr/share/vim/vim74/spell/en.latin1.sug +#usr/share/vim/vim74/spell/en.utf-8.spl +#usr/share/vim/vim74/spell/en.utf-8.sug +#usr/share/vim/vim74/spell/fixdup.vim +#usr/share/vim/vim74/spell/he.vim +#usr/share/vim/vim74/spell/spell.vim +#usr/share/vim/vim74/spell/yi.vim +#usr/share/vim/vim74/synmenu.vim +#usr/share/vim/vim74/syntax +#usr/share/vim/vim74/syntax/2html.vim +#usr/share/vim/vim74/syntax/README.txt +#usr/share/vim/vim74/syntax/a2ps.vim +#usr/share/vim/vim74/syntax/a65.vim +#usr/share/vim/vim74/syntax/aap.vim +#usr/share/vim/vim74/syntax/abap.vim +#usr/share/vim/vim74/syntax/abaqus.vim +#usr/share/vim/vim74/syntax/abc.vim +#usr/share/vim/vim74/syntax/abel.vim +#usr/share/vim/vim74/syntax/acedb.vim +#usr/share/vim/vim74/syntax/ada.vim +#usr/share/vim/vim74/syntax/aflex.vim +#usr/share/vim/vim74/syntax/ahdl.vim +#usr/share/vim/vim74/syntax/alsaconf.vim +#usr/share/vim/vim74/syntax/amiga.vim +#usr/share/vim/vim74/syntax/aml.vim +#usr/share/vim/vim74/syntax/ampl.vim +#usr/share/vim/vim74/syntax/ant.vim +#usr/share/vim/vim74/syntax/antlr.vim +#usr/share/vim/vim74/syntax/apache.vim +#usr/share/vim/vim74/syntax/apachestyle.vim +#usr/share/vim/vim74/syntax/aptconf.vim +#usr/share/vim/vim74/syntax/arch.vim +#usr/share/vim/vim74/syntax/art.vim +#usr/share/vim/vim74/syntax/asciidoc.vim +#usr/share/vim/vim74/syntax/asm.vim +#usr/share/vim/vim74/syntax/asm68k.vim +#usr/share/vim/vim74/syntax/asmh8300.vim +#usr/share/vim/vim74/syntax/asn.vim +#usr/share/vim/vim74/syntax/aspperl.vim +#usr/share/vim/vim74/syntax/aspvbs.vim +#usr/share/vim/vim74/syntax/asterisk.vim +#usr/share/vim/vim74/syntax/asteriskvm.vim +#usr/share/vim/vim74/syntax/atlas.vim +#usr/share/vim/vim74/syntax/autohotkey.vim +#usr/share/vim/vim74/syntax/autoit.vim +#usr/share/vim/vim74/syntax/automake.vim +#usr/share/vim/vim74/syntax/ave.vim +#usr/share/vim/vim74/syntax/awk.vim +#usr/share/vim/vim74/syntax/ayacc.vim +#usr/share/vim/vim74/syntax/b.vim +#usr/share/vim/vim74/syntax/baan.vim +#usr/share/vim/vim74/syntax/basic.vim +#usr/share/vim/vim74/syntax/bc.vim +#usr/share/vim/vim74/syntax/bdf.vim +#usr/share/vim/vim74/syntax/bib.vim +#usr/share/vim/vim74/syntax/bindzone.vim +#usr/share/vim/vim74/syntax/blank.vim +#usr/share/vim/vim74/syntax/bst.vim +#usr/share/vim/vim74/syntax/btm.vim +#usr/share/vim/vim74/syntax/bzr.vim +#usr/share/vim/vim74/syntax/c.vim +#usr/share/vim/vim74/syntax/cabal.vim +#usr/share/vim/vim74/syntax/calendar.vim +#usr/share/vim/vim74/syntax/catalog.vim +#usr/share/vim/vim74/syntax/cdl.vim +#usr/share/vim/vim74/syntax/cdrdaoconf.vim +#usr/share/vim/vim74/syntax/cdrtoc.vim +#usr/share/vim/vim74/syntax/cf.vim +#usr/share/vim/vim74/syntax/cfg.vim +#usr/share/vim/vim74/syntax/ch.vim +#usr/share/vim/vim74/syntax/chaiscript.vim +#usr/share/vim/vim74/syntax/change.vim +#usr/share/vim/vim74/syntax/changelog.vim +#usr/share/vim/vim74/syntax/chaskell.vim +#usr/share/vim/vim74/syntax/cheetah.vim +#usr/share/vim/vim74/syntax/chill.vim +#usr/share/vim/vim74/syntax/chordpro.vim +#usr/share/vim/vim74/syntax/cl.vim +#usr/share/vim/vim74/syntax/clean.vim +#usr/share/vim/vim74/syntax/clipper.vim +#usr/share/vim/vim74/syntax/clojure.vim +#usr/share/vim/vim74/syntax/cmake.vim +#usr/share/vim/vim74/syntax/cmusrc.vim +#usr/share/vim/vim74/syntax/cobol.vim +#usr/share/vim/vim74/syntax/coco.vim +#usr/share/vim/vim74/syntax/colortest.vim +#usr/share/vim/vim74/syntax/conaryrecipe.vim +#usr/share/vim/vim74/syntax/conf.vim +#usr/share/vim/vim74/syntax/config.vim +#usr/share/vim/vim74/syntax/context.vim +#usr/share/vim/vim74/syntax/cpp.vim +#usr/share/vim/vim74/syntax/crm.vim +#usr/share/vim/vim74/syntax/crontab.vim +#usr/share/vim/vim74/syntax/cs.vim +#usr/share/vim/vim74/syntax/csc.vim +#usr/share/vim/vim74/syntax/csdl.vim +#usr/share/vim/vim74/syntax/csh.vim +#usr/share/vim/vim74/syntax/csp.vim +#usr/share/vim/vim74/syntax/css.vim +#usr/share/vim/vim74/syntax/cterm.vim +#usr/share/vim/vim74/syntax/ctrlh.vim +#usr/share/vim/vim74/syntax/cucumber.vim +#usr/share/vim/vim74/syntax/cuda.vim +#usr/share/vim/vim74/syntax/cupl.vim +#usr/share/vim/vim74/syntax/cuplsim.vim +#usr/share/vim/vim74/syntax/cvs.vim +#usr/share/vim/vim74/syntax/cvsrc.vim +#usr/share/vim/vim74/syntax/cweb.vim +#usr/share/vim/vim74/syntax/cynlib.vim +#usr/share/vim/vim74/syntax/cynpp.vim +#usr/share/vim/vim74/syntax/d.vim +#usr/share/vim/vim74/syntax/datascript.vim +#usr/share/vim/vim74/syntax/dcd.vim +#usr/share/vim/vim74/syntax/dcl.vim +#usr/share/vim/vim74/syntax/debchangelog.vim +#usr/share/vim/vim74/syntax/debcontrol.vim +#usr/share/vim/vim74/syntax/debsources.vim +#usr/share/vim/vim74/syntax/def.vim +#usr/share/vim/vim74/syntax/denyhosts.vim +#usr/share/vim/vim74/syntax/desc.vim +#usr/share/vim/vim74/syntax/desktop.vim +#usr/share/vim/vim74/syntax/dictconf.vim +#usr/share/vim/vim74/syntax/dictdconf.vim +#usr/share/vim/vim74/syntax/diff.vim +#usr/share/vim/vim74/syntax/dircolors.vim +#usr/share/vim/vim74/syntax/dirpager.vim +#usr/share/vim/vim74/syntax/diva.vim +#usr/share/vim/vim74/syntax/django.vim +#usr/share/vim/vim74/syntax/dns.vim +#usr/share/vim/vim74/syntax/dnsmasq.vim +#usr/share/vim/vim74/syntax/docbk.vim +#usr/share/vim/vim74/syntax/docbksgml.vim +#usr/share/vim/vim74/syntax/docbkxml.vim +#usr/share/vim/vim74/syntax/dosbatch.vim +#usr/share/vim/vim74/syntax/dosini.vim +#usr/share/vim/vim74/syntax/dot.vim +#usr/share/vim/vim74/syntax/doxygen.vim +#usr/share/vim/vim74/syntax/dracula.vim +#usr/share/vim/vim74/syntax/dsl.vim +#usr/share/vim/vim74/syntax/dtd.vim +#usr/share/vim/vim74/syntax/dtml.vim +#usr/share/vim/vim74/syntax/dtrace.vim +#usr/share/vim/vim74/syntax/dts.vim +#usr/share/vim/vim74/syntax/dylan.vim +#usr/share/vim/vim74/syntax/dylanintr.vim +#usr/share/vim/vim74/syntax/dylanlid.vim +#usr/share/vim/vim74/syntax/ecd.vim +#usr/share/vim/vim74/syntax/edif.vim +#usr/share/vim/vim74/syntax/eiffel.vim +#usr/share/vim/vim74/syntax/elf.vim +#usr/share/vim/vim74/syntax/elinks.vim +#usr/share/vim/vim74/syntax/elmfilt.vim +#usr/share/vim/vim74/syntax/erlang.vim +#usr/share/vim/vim74/syntax/eruby.vim +#usr/share/vim/vim74/syntax/esmtprc.vim +#usr/share/vim/vim74/syntax/esqlc.vim +#usr/share/vim/vim74/syntax/esterel.vim +#usr/share/vim/vim74/syntax/eterm.vim +#usr/share/vim/vim74/syntax/eviews.vim +#usr/share/vim/vim74/syntax/exim.vim +#usr/share/vim/vim74/syntax/expect.vim +#usr/share/vim/vim74/syntax/exports.vim +#usr/share/vim/vim74/syntax/falcon.vim +#usr/share/vim/vim74/syntax/fan.vim +#usr/share/vim/vim74/syntax/fasm.vim +#usr/share/vim/vim74/syntax/fdcc.vim +#usr/share/vim/vim74/syntax/fetchmail.vim +#usr/share/vim/vim74/syntax/fgl.vim +#usr/share/vim/vim74/syntax/flexwiki.vim +#usr/share/vim/vim74/syntax/focexec.vim +#usr/share/vim/vim74/syntax/form.vim +#usr/share/vim/vim74/syntax/forth.vim +#usr/share/vim/vim74/syntax/fortran.vim +#usr/share/vim/vim74/syntax/foxpro.vim +#usr/share/vim/vim74/syntax/framescript.vim +#usr/share/vim/vim74/syntax/freebasic.vim +#usr/share/vim/vim74/syntax/fstab.vim +#usr/share/vim/vim74/syntax/fvwm.vim +#usr/share/vim/vim74/syntax/fvwm2m4.vim +#usr/share/vim/vim74/syntax/gdb.vim +#usr/share/vim/vim74/syntax/gdmo.vim +#usr/share/vim/vim74/syntax/gedcom.vim +#usr/share/vim/vim74/syntax/git.vim +#usr/share/vim/vim74/syntax/gitcommit.vim +#usr/share/vim/vim74/syntax/gitconfig.vim +#usr/share/vim/vim74/syntax/gitolite.vim +#usr/share/vim/vim74/syntax/gitrebase.vim +#usr/share/vim/vim74/syntax/gitsendemail.vim +#usr/share/vim/vim74/syntax/gkrellmrc.vim +#usr/share/vim/vim74/syntax/gnash.vim +#usr/share/vim/vim74/syntax/gnuplot.vim +#usr/share/vim/vim74/syntax/gp.vim +#usr/share/vim/vim74/syntax/gpg.vim +#usr/share/vim/vim74/syntax/gprof.vim +#usr/share/vim/vim74/syntax/grads.vim +#usr/share/vim/vim74/syntax/gretl.vim +#usr/share/vim/vim74/syntax/groff.vim +#usr/share/vim/vim74/syntax/groovy.vim +#usr/share/vim/vim74/syntax/group.vim +#usr/share/vim/vim74/syntax/grub.vim +#usr/share/vim/vim74/syntax/gsp.vim +#usr/share/vim/vim74/syntax/gtkrc.vim +#usr/share/vim/vim74/syntax/haml.vim +#usr/share/vim/vim74/syntax/hamster.vim +#usr/share/vim/vim74/syntax/haskell.vim +#usr/share/vim/vim74/syntax/haste.vim +#usr/share/vim/vim74/syntax/hastepreproc.vim +#usr/share/vim/vim74/syntax/hb.vim +#usr/share/vim/vim74/syntax/help.vim +#usr/share/vim/vim74/syntax/hercules.vim +#usr/share/vim/vim74/syntax/hex.vim +#usr/share/vim/vim74/syntax/hgcommit.vim +#usr/share/vim/vim74/syntax/hitest.vim +#usr/share/vim/vim74/syntax/hog.vim +#usr/share/vim/vim74/syntax/hostconf.vim +#usr/share/vim/vim74/syntax/hostsaccess.vim +#usr/share/vim/vim74/syntax/html.vim +#usr/share/vim/vim74/syntax/htmlcheetah.vim +#usr/share/vim/vim74/syntax/htmldjango.vim +#usr/share/vim/vim74/syntax/htmlm4.vim +#usr/share/vim/vim74/syntax/htmlos.vim +#usr/share/vim/vim74/syntax/ia64.vim +#usr/share/vim/vim74/syntax/ibasic.vim +#usr/share/vim/vim74/syntax/icemenu.vim +#usr/share/vim/vim74/syntax/icon.vim +#usr/share/vim/vim74/syntax/idl.vim +#usr/share/vim/vim74/syntax/idlang.vim +#usr/share/vim/vim74/syntax/indent.vim +#usr/share/vim/vim74/syntax/inform.vim +#usr/share/vim/vim74/syntax/initex.vim +#usr/share/vim/vim74/syntax/initng.vim +#usr/share/vim/vim74/syntax/inittab.vim +#usr/share/vim/vim74/syntax/ipfilter.vim +#usr/share/vim/vim74/syntax/ishd.vim +#usr/share/vim/vim74/syntax/iss.vim +#usr/share/vim/vim74/syntax/ist.vim +#usr/share/vim/vim74/syntax/jal.vim +#usr/share/vim/vim74/syntax/jam.vim +#usr/share/vim/vim74/syntax/jargon.vim +#usr/share/vim/vim74/syntax/java.vim +#usr/share/vim/vim74/syntax/javacc.vim +#usr/share/vim/vim74/syntax/javascript.vim +#usr/share/vim/vim74/syntax/jess.vim +#usr/share/vim/vim74/syntax/jgraph.vim +#usr/share/vim/vim74/syntax/jovial.vim +#usr/share/vim/vim74/syntax/jproperties.vim +#usr/share/vim/vim74/syntax/jsp.vim +#usr/share/vim/vim74/syntax/kconfig.vim +#usr/share/vim/vim74/syntax/kix.vim +#usr/share/vim/vim74/syntax/kscript.vim +#usr/share/vim/vim74/syntax/kwt.vim +#usr/share/vim/vim74/syntax/lace.vim +#usr/share/vim/vim74/syntax/latte.vim +#usr/share/vim/vim74/syntax/ld.vim +#usr/share/vim/vim74/syntax/ldapconf.vim +#usr/share/vim/vim74/syntax/ldif.vim +#usr/share/vim/vim74/syntax/lex.vim +#usr/share/vim/vim74/syntax/lftp.vim +#usr/share/vim/vim74/syntax/lhaskell.vim +#usr/share/vim/vim74/syntax/libao.vim +#usr/share/vim/vim74/syntax/lifelines.vim +#usr/share/vim/vim74/syntax/lilo.vim +#usr/share/vim/vim74/syntax/limits.vim +#usr/share/vim/vim74/syntax/liquid.vim +#usr/share/vim/vim74/syntax/lisp.vim +#usr/share/vim/vim74/syntax/lite.vim +#usr/share/vim/vim74/syntax/litestep.vim +#usr/share/vim/vim74/syntax/loginaccess.vim +#usr/share/vim/vim74/syntax/logindefs.vim +#usr/share/vim/vim74/syntax/logtalk.vim +#usr/share/vim/vim74/syntax/lotos.vim +#usr/share/vim/vim74/syntax/lout.vim +#usr/share/vim/vim74/syntax/lpc.vim +#usr/share/vim/vim74/syntax/lprolog.vim +#usr/share/vim/vim74/syntax/lscript.vim +#usr/share/vim/vim74/syntax/lsl.vim +#usr/share/vim/vim74/syntax/lss.vim +#usr/share/vim/vim74/syntax/lua.vim +#usr/share/vim/vim74/syntax/lynx.vim +#usr/share/vim/vim74/syntax/m4.vim +#usr/share/vim/vim74/syntax/mail.vim +#usr/share/vim/vim74/syntax/mailaliases.vim +#usr/share/vim/vim74/syntax/mailcap.vim +#usr/share/vim/vim74/syntax/make.vim +#usr/share/vim/vim74/syntax/mallard.vim +#usr/share/vim/vim74/syntax/man.vim +#usr/share/vim/vim74/syntax/manconf.vim +#usr/share/vim/vim74/syntax/manual.vim +#usr/share/vim/vim74/syntax/maple.vim +#usr/share/vim/vim74/syntax/markdown.vim +#usr/share/vim/vim74/syntax/masm.vim +#usr/share/vim/vim74/syntax/mason.vim +#usr/share/vim/vim74/syntax/master.vim +#usr/share/vim/vim74/syntax/matlab.vim +#usr/share/vim/vim74/syntax/maxima.vim +#usr/share/vim/vim74/syntax/mel.vim +#usr/share/vim/vim74/syntax/messages.vim +#usr/share/vim/vim74/syntax/mf.vim +#usr/share/vim/vim74/syntax/mgl.vim +#usr/share/vim/vim74/syntax/mgp.vim +#usr/share/vim/vim74/syntax/mib.vim +#usr/share/vim/vim74/syntax/mma.vim +#usr/share/vim/vim74/syntax/mmix.vim +#usr/share/vim/vim74/syntax/mmp.vim +#usr/share/vim/vim74/syntax/modconf.vim +#usr/share/vim/vim74/syntax/model.vim +#usr/share/vim/vim74/syntax/modsim3.vim +#usr/share/vim/vim74/syntax/modula2.vim +#usr/share/vim/vim74/syntax/modula3.vim +#usr/share/vim/vim74/syntax/monk.vim +#usr/share/vim/vim74/syntax/moo.vim +#usr/share/vim/vim74/syntax/mp.vim +#usr/share/vim/vim74/syntax/mplayerconf.vim +#usr/share/vim/vim74/syntax/mrxvtrc.vim +#usr/share/vim/vim74/syntax/msidl.vim +#usr/share/vim/vim74/syntax/msmessages.vim +#usr/share/vim/vim74/syntax/msql.vim +#usr/share/vim/vim74/syntax/mupad.vim +#usr/share/vim/vim74/syntax/mush.vim +#usr/share/vim/vim74/syntax/muttrc.vim +#usr/share/vim/vim74/syntax/mysql.vim +#usr/share/vim/vim74/syntax/named.vim +#usr/share/vim/vim74/syntax/nanorc.vim +#usr/share/vim/vim74/syntax/nasm.vim +#usr/share/vim/vim74/syntax/nastran.vim +#usr/share/vim/vim74/syntax/natural.vim +#usr/share/vim/vim74/syntax/ncf.vim +#usr/share/vim/vim74/syntax/netrc.vim +#usr/share/vim/vim74/syntax/netrw.vim +#usr/share/vim/vim74/syntax/ninja.vim +#usr/share/vim/vim74/syntax/nosyntax.vim +#usr/share/vim/vim74/syntax/nqc.vim +#usr/share/vim/vim74/syntax/nroff.vim +#usr/share/vim/vim74/syntax/nsis.vim +#usr/share/vim/vim74/syntax/obj.vim +#usr/share/vim/vim74/syntax/objc.vim +#usr/share/vim/vim74/syntax/objcpp.vim +#usr/share/vim/vim74/syntax/ocaml.vim +#usr/share/vim/vim74/syntax/occam.vim +#usr/share/vim/vim74/syntax/omnimark.vim +#usr/share/vim/vim74/syntax/openroad.vim +#usr/share/vim/vim74/syntax/opl.vim +#usr/share/vim/vim74/syntax/ora.vim +#usr/share/vim/vim74/syntax/pamconf.vim +#usr/share/vim/vim74/syntax/papp.vim +#usr/share/vim/vim74/syntax/pascal.vim +#usr/share/vim/vim74/syntax/passwd.vim +#usr/share/vim/vim74/syntax/pcap.vim +#usr/share/vim/vim74/syntax/pccts.vim +#usr/share/vim/vim74/syntax/pdf.vim +#usr/share/vim/vim74/syntax/perl.vim +#usr/share/vim/vim74/syntax/perl6.vim +#usr/share/vim/vim74/syntax/pf.vim +#usr/share/vim/vim74/syntax/pfmain.vim +#usr/share/vim/vim74/syntax/php.vim +#usr/share/vim/vim74/syntax/phtml.vim +#usr/share/vim/vim74/syntax/pic.vim +#usr/share/vim/vim74/syntax/pike.vim +#usr/share/vim/vim74/syntax/pilrc.vim +#usr/share/vim/vim74/syntax/pine.vim +#usr/share/vim/vim74/syntax/pinfo.vim +#usr/share/vim/vim74/syntax/plaintex.vim +#usr/share/vim/vim74/syntax/pli.vim +#usr/share/vim/vim74/syntax/plm.vim +#usr/share/vim/vim74/syntax/plp.vim +#usr/share/vim/vim74/syntax/plsql.vim +#usr/share/vim/vim74/syntax/po.vim +#usr/share/vim/vim74/syntax/pod.vim +#usr/share/vim/vim74/syntax/postscr.vim +#usr/share/vim/vim74/syntax/pov.vim +#usr/share/vim/vim74/syntax/povini.vim +#usr/share/vim/vim74/syntax/ppd.vim +#usr/share/vim/vim74/syntax/ppwiz.vim +#usr/share/vim/vim74/syntax/prescribe.vim +#usr/share/vim/vim74/syntax/privoxy.vim +#usr/share/vim/vim74/syntax/procmail.vim +#usr/share/vim/vim74/syntax/progress.vim +#usr/share/vim/vim74/syntax/prolog.vim +#usr/share/vim/vim74/syntax/promela.vim +#usr/share/vim/vim74/syntax/proto.vim +#usr/share/vim/vim74/syntax/protocols.vim +#usr/share/vim/vim74/syntax/psf.vim +#usr/share/vim/vim74/syntax/ptcap.vim +#usr/share/vim/vim74/syntax/purifylog.vim +#usr/share/vim/vim74/syntax/pyrex.vim +#usr/share/vim/vim74/syntax/python.vim +#usr/share/vim/vim74/syntax/qf.vim +#usr/share/vim/vim74/syntax/quake.vim +#usr/share/vim/vim74/syntax/r.vim +#usr/share/vim/vim74/syntax/racc.vim +#usr/share/vim/vim74/syntax/radiance.vim +#usr/share/vim/vim74/syntax/ratpoison.vim +#usr/share/vim/vim74/syntax/rc.vim +#usr/share/vim/vim74/syntax/rcs.vim +#usr/share/vim/vim74/syntax/rcslog.vim +#usr/share/vim/vim74/syntax/readline.vim +#usr/share/vim/vim74/syntax/rebol.vim +#usr/share/vim/vim74/syntax/redif.vim +#usr/share/vim/vim74/syntax/registry.vim +#usr/share/vim/vim74/syntax/remind.vim +#usr/share/vim/vim74/syntax/resolv.vim +#usr/share/vim/vim74/syntax/reva.vim +#usr/share/vim/vim74/syntax/rexx.vim +#usr/share/vim/vim74/syntax/rhelp.vim +#usr/share/vim/vim74/syntax/rib.vim +#usr/share/vim/vim74/syntax/rnc.vim +#usr/share/vim/vim74/syntax/rng.vim +#usr/share/vim/vim74/syntax/rnoweb.vim +#usr/share/vim/vim74/syntax/robots.vim +#usr/share/vim/vim74/syntax/rpcgen.vim +#usr/share/vim/vim74/syntax/rpl.vim +#usr/share/vim/vim74/syntax/rst.vim +#usr/share/vim/vim74/syntax/rtf.vim +#usr/share/vim/vim74/syntax/ruby.vim +#usr/share/vim/vim74/syntax/samba.vim +#usr/share/vim/vim74/syntax/sas.vim +#usr/share/vim/vim74/syntax/sass.vim +#usr/share/vim/vim74/syntax/sather.vim +#usr/share/vim/vim74/syntax/scheme.vim +#usr/share/vim/vim74/syntax/scilab.vim +#usr/share/vim/vim74/syntax/screen.vim +#usr/share/vim/vim74/syntax/scss.vim +#usr/share/vim/vim74/syntax/sd.vim +#usr/share/vim/vim74/syntax/sdc.vim +#usr/share/vim/vim74/syntax/sdl.vim +#usr/share/vim/vim74/syntax/sed.vim +#usr/share/vim/vim74/syntax/sendpr.vim +#usr/share/vim/vim74/syntax/sensors.vim +#usr/share/vim/vim74/syntax/services.vim +#usr/share/vim/vim74/syntax/setserial.vim +#usr/share/vim/vim74/syntax/sgml.vim +#usr/share/vim/vim74/syntax/sgmldecl.vim +#usr/share/vim/vim74/syntax/sgmllnx.vim +#usr/share/vim/vim74/syntax/sh.vim +#usr/share/vim/vim74/syntax/sicad.vim +#usr/share/vim/vim74/syntax/sieve.vim +#usr/share/vim/vim74/syntax/simula.vim +#usr/share/vim/vim74/syntax/sinda.vim +#usr/share/vim/vim74/syntax/sindacmp.vim +#usr/share/vim/vim74/syntax/sindaout.vim +#usr/share/vim/vim74/syntax/sisu.vim +#usr/share/vim/vim74/syntax/skill.vim +#usr/share/vim/vim74/syntax/sl.vim +#usr/share/vim/vim74/syntax/slang.vim +#usr/share/vim/vim74/syntax/slice.vim +#usr/share/vim/vim74/syntax/slpconf.vim +#usr/share/vim/vim74/syntax/slpreg.vim +#usr/share/vim/vim74/syntax/slpspi.vim +#usr/share/vim/vim74/syntax/slrnrc.vim +#usr/share/vim/vim74/syntax/slrnsc.vim +#usr/share/vim/vim74/syntax/sm.vim +#usr/share/vim/vim74/syntax/smarty.vim +#usr/share/vim/vim74/syntax/smcl.vim +#usr/share/vim/vim74/syntax/smil.vim +#usr/share/vim/vim74/syntax/smith.vim +#usr/share/vim/vim74/syntax/sml.vim +#usr/share/vim/vim74/syntax/snnsnet.vim +#usr/share/vim/vim74/syntax/snnspat.vim +#usr/share/vim/vim74/syntax/snnsres.vim +#usr/share/vim/vim74/syntax/snobol4.vim +#usr/share/vim/vim74/syntax/spec.vim +#usr/share/vim/vim74/syntax/specman.vim +#usr/share/vim/vim74/syntax/spice.vim +#usr/share/vim/vim74/syntax/splint.vim +#usr/share/vim/vim74/syntax/spup.vim +#usr/share/vim/vim74/syntax/spyce.vim +#usr/share/vim/vim74/syntax/sql.vim +#usr/share/vim/vim74/syntax/sqlanywhere.vim +#usr/share/vim/vim74/syntax/sqlforms.vim +#usr/share/vim/vim74/syntax/sqlhana.vim +#usr/share/vim/vim74/syntax/sqlinformix.vim +#usr/share/vim/vim74/syntax/sqlj.vim +#usr/share/vim/vim74/syntax/sqloracle.vim +#usr/share/vim/vim74/syntax/sqr.vim +#usr/share/vim/vim74/syntax/squid.vim +#usr/share/vim/vim74/syntax/sshconfig.vim +#usr/share/vim/vim74/syntax/sshdconfig.vim +#usr/share/vim/vim74/syntax/st.vim +#usr/share/vim/vim74/syntax/stata.vim +#usr/share/vim/vim74/syntax/stp.vim +#usr/share/vim/vim74/syntax/strace.vim +#usr/share/vim/vim74/syntax/sudoers.vim +#usr/share/vim/vim74/syntax/svg.vim +#usr/share/vim/vim74/syntax/svn.vim +#usr/share/vim/vim74/syntax/syncolor.vim +#usr/share/vim/vim74/syntax/synload.vim +#usr/share/vim/vim74/syntax/syntax.vim +#usr/share/vim/vim74/syntax/sysctl.vim +#usr/share/vim/vim74/syntax/tads.vim +#usr/share/vim/vim74/syntax/tags.vim +#usr/share/vim/vim74/syntax/tak.vim +#usr/share/vim/vim74/syntax/takcmp.vim +#usr/share/vim/vim74/syntax/takout.vim +#usr/share/vim/vim74/syntax/tar.vim +#usr/share/vim/vim74/syntax/taskdata.vim +#usr/share/vim/vim74/syntax/taskedit.vim +#usr/share/vim/vim74/syntax/tasm.vim +#usr/share/vim/vim74/syntax/tcl.vim +#usr/share/vim/vim74/syntax/tcsh.vim +#usr/share/vim/vim74/syntax/terminfo.vim +#usr/share/vim/vim74/syntax/tex.vim +#usr/share/vim/vim74/syntax/texinfo.vim +#usr/share/vim/vim74/syntax/texmf.vim +#usr/share/vim/vim74/syntax/tf.vim +#usr/share/vim/vim74/syntax/tidy.vim +#usr/share/vim/vim74/syntax/tilde.vim +#usr/share/vim/vim74/syntax/tli.vim +#usr/share/vim/vim74/syntax/tpp.vim +#usr/share/vim/vim74/syntax/trasys.vim +#usr/share/vim/vim74/syntax/treetop.vim +#usr/share/vim/vim74/syntax/trustees.vim +#usr/share/vim/vim74/syntax/tsalt.vim +#usr/share/vim/vim74/syntax/tsscl.vim +#usr/share/vim/vim74/syntax/tssgm.vim +#usr/share/vim/vim74/syntax/tssop.vim +#usr/share/vim/vim74/syntax/tt2.vim +#usr/share/vim/vim74/syntax/tt2html.vim +#usr/share/vim/vim74/syntax/tt2js.vim +#usr/share/vim/vim74/syntax/uc.vim +#usr/share/vim/vim74/syntax/udevconf.vim +#usr/share/vim/vim74/syntax/udevperm.vim +#usr/share/vim/vim74/syntax/udevrules.vim +#usr/share/vim/vim74/syntax/uil.vim +#usr/share/vim/vim74/syntax/updatedb.vim +#usr/share/vim/vim74/syntax/upstart.vim +#usr/share/vim/vim74/syntax/upstreamdat.vim +#usr/share/vim/vim74/syntax/upstreaminstalllog.vim +#usr/share/vim/vim74/syntax/upstreamlog.vim +#usr/share/vim/vim74/syntax/usserverlog.vim +#usr/share/vim/vim74/syntax/usw2kagtlog.vim +#usr/share/vim/vim74/syntax/valgrind.vim +#usr/share/vim/vim74/syntax/vb.vim +#usr/share/vim/vim74/syntax/vera.vim +#usr/share/vim/vim74/syntax/verilog.vim +#usr/share/vim/vim74/syntax/verilogams.vim +#usr/share/vim/vim74/syntax/vgrindefs.vim +#usr/share/vim/vim74/syntax/vhdl.vim +#usr/share/vim/vim74/syntax/vim.vim +#usr/share/vim/vim74/syntax/viminfo.vim +#usr/share/vim/vim74/syntax/virata.vim +#usr/share/vim/vim74/syntax/vmasm.vim +#usr/share/vim/vim74/syntax/voscm.vim +#usr/share/vim/vim74/syntax/vrml.vim +#usr/share/vim/vim74/syntax/vsejcl.vim +#usr/share/vim/vim74/syntax/wdiff.vim +#usr/share/vim/vim74/syntax/web.vim +#usr/share/vim/vim74/syntax/webmacro.vim +#usr/share/vim/vim74/syntax/wget.vim +#usr/share/vim/vim74/syntax/whitespace.vim +#usr/share/vim/vim74/syntax/winbatch.vim +#usr/share/vim/vim74/syntax/wml.vim +#usr/share/vim/vim74/syntax/wsh.vim +#usr/share/vim/vim74/syntax/wsml.vim +#usr/share/vim/vim74/syntax/wvdial.vim +#usr/share/vim/vim74/syntax/xbl.vim +#usr/share/vim/vim74/syntax/xdefaults.vim +#usr/share/vim/vim74/syntax/xf86conf.vim +#usr/share/vim/vim74/syntax/xhtml.vim +#usr/share/vim/vim74/syntax/xinetd.vim +#usr/share/vim/vim74/syntax/xkb.vim +#usr/share/vim/vim74/syntax/xmath.vim +#usr/share/vim/vim74/syntax/xml.vim +#usr/share/vim/vim74/syntax/xmodmap.vim +#usr/share/vim/vim74/syntax/xpm.vim +#usr/share/vim/vim74/syntax/xpm2.vim +#usr/share/vim/vim74/syntax/xquery.vim +#usr/share/vim/vim74/syntax/xs.vim +#usr/share/vim/vim74/syntax/xsd.vim +#usr/share/vim/vim74/syntax/xslt.vim +#usr/share/vim/vim74/syntax/xxd.vim +#usr/share/vim/vim74/syntax/yacc.vim +#usr/share/vim/vim74/syntax/yaml.vim +#usr/share/vim/vim74/syntax/z8a.vim +#usr/share/vim/vim74/syntax/zimbu.vim +#usr/share/vim/vim74/syntax/zsh.vim +#usr/share/vim/vim74/tools +#usr/share/vim/vim74/tools/README.txt +#usr/share/vim/vim74/tools/blink.c +#usr/share/vim/vim74/tools/ccfilter.1 +#usr/share/vim/vim74/tools/ccfilter.c +#usr/share/vim/vim74/tools/ccfilter_README.txt +#usr/share/vim/vim74/tools/efm_filter.pl +#usr/share/vim/vim74/tools/efm_filter.txt +#usr/share/vim/vim74/tools/efm_perl.pl +#usr/share/vim/vim74/tools/mve.awk +#usr/share/vim/vim74/tools/mve.txt +#usr/share/vim/vim74/tools/pltags.pl +#usr/share/vim/vim74/tools/ref +#usr/share/vim/vim74/tools/shtags.1 +#usr/share/vim/vim74/tools/shtags.pl +#usr/share/vim/vim74/tools/unicode.vim +#usr/share/vim/vim74/tools/vim132 +#usr/share/vim/vim74/tools/vim_vs_net.cmd +#usr/share/vim/vim74/tools/vimm +#usr/share/vim/vim74/tools/vimspell.sh +#usr/share/vim/vim74/tools/vimspell.txt +#usr/share/vim/vim74/tools/xcmdsrv_client.c +#usr/share/vim/vim74/tutor +#usr/share/vim/vim74/tutor/README.el.cp737.txt +#usr/share/vim/vim74/tutor/README.el.txt +#usr/share/vim/vim74/tutor/README.txt +#usr/share/vim/vim74/tutor/tutor +#usr/share/vim/vim74/tutor/tutor.bar +#usr/share/vim/vim74/tutor/tutor.bar.utf-8 +#usr/share/vim/vim74/tutor/tutor.ca +#usr/share/vim/vim74/tutor/tutor.ca.utf-8 +#usr/share/vim/vim74/tutor/tutor.cs +#usr/share/vim/vim74/tutor/tutor.cs.cp1250 +#usr/share/vim/vim74/tutor/tutor.cs.utf-8 +#usr/share/vim/vim74/tutor/tutor.de +#usr/share/vim/vim74/tutor/tutor.de.utf-8 +#usr/share/vim/vim74/tutor/tutor.el +#usr/share/vim/vim74/tutor/tutor.el.cp737 +#usr/share/vim/vim74/tutor/tutor.el.utf-8 +#usr/share/vim/vim74/tutor/tutor.eo +#usr/share/vim/vim74/tutor/tutor.eo.utf-8 +#usr/share/vim/vim74/tutor/tutor.es +#usr/share/vim/vim74/tutor/tutor.es.utf-8 +#usr/share/vim/vim74/tutor/tutor.fr +#usr/share/vim/vim74/tutor/tutor.fr.utf-8 +#usr/share/vim/vim74/tutor/tutor.hr +#usr/share/vim/vim74/tutor/tutor.hr.cp1250 +#usr/share/vim/vim74/tutor/tutor.hr.utf-8 +#usr/share/vim/vim74/tutor/tutor.hu +#usr/share/vim/vim74/tutor/tutor.hu.cp1250 +#usr/share/vim/vim74/tutor/tutor.hu.utf-8 +#usr/share/vim/vim74/tutor/tutor.it +#usr/share/vim/vim74/tutor/tutor.it.utf-8 +#usr/share/vim/vim74/tutor/tutor.ja.euc +#usr/share/vim/vim74/tutor/tutor.ja.sjis +#usr/share/vim/vim74/tutor/tutor.ja.utf-8 +#usr/share/vim/vim74/tutor/tutor.ko.euc +#usr/share/vim/vim74/tutor/tutor.ko.utf-8 +#usr/share/vim/vim74/tutor/tutor.nb +#usr/share/vim/vim74/tutor/tutor.nb.utf-8 +#usr/share/vim/vim74/tutor/tutor.nl +#usr/share/vim/vim74/tutor/tutor.nl.utf-8 +#usr/share/vim/vim74/tutor/tutor.no +#usr/share/vim/vim74/tutor/tutor.no.utf-8 +#usr/share/vim/vim74/tutor/tutor.pl +#usr/share/vim/vim74/tutor/tutor.pl.cp1250 +#usr/share/vim/vim74/tutor/tutor.pl.utf-8 +#usr/share/vim/vim74/tutor/tutor.pt +#usr/share/vim/vim74/tutor/tutor.pt.utf-8 +#usr/share/vim/vim74/tutor/tutor.ru +#usr/share/vim/vim74/tutor/tutor.ru.cp1251 +#usr/share/vim/vim74/tutor/tutor.ru.utf-8 +#usr/share/vim/vim74/tutor/tutor.sk +#usr/share/vim/vim74/tutor/tutor.sk.cp1250 +#usr/share/vim/vim74/tutor/tutor.sk.utf-8 +#usr/share/vim/vim74/tutor/tutor.sv +#usr/share/vim/vim74/tutor/tutor.sv.utf-8 +#usr/share/vim/vim74/tutor/tutor.tr.iso9 +#usr/share/vim/vim74/tutor/tutor.tr.utf-8 +#usr/share/vim/vim74/tutor/tutor.utf-8 +#usr/share/vim/vim74/tutor/tutor.vi.utf-8 +#usr/share/vim/vim74/tutor/tutor.vim +#usr/share/vim/vim74/tutor/tutor.zh.big5 +#usr/share/vim/vim74/tutor/tutor.zh.euc +#usr/share/vim/vim74/tutor/tutor.zh.utf-8 +#usr/share/vim/vim74/tutor/tutor.zh_cn.utf-8 +#usr/share/vim/vim74/tutor/tutor.zh_tw.utf-8 +#usr/share/vim/vim74/vimrc_example.vim diff --git a/config/rootfiles/common/wget b/config/rootfiles/common/wget index a015280..968ab9f 100644 --- a/config/rootfiles/common/wget +++ b/config/rootfiles/common/wget @@ -1,5 +1,4 @@ +#etc/wgetrc usr/bin/wget -#usr/etc -#usr/etc/wgetrc -#usr/info/wget.info -#usr/man/man1/wget.1 +#usr/share/info/wget.info +#usr/share/man/man1/wget.1 diff --git a/config/rootfiles/common/xz b/config/rootfiles/common/xz index a8fa20b..7c83de7 100644 --- a/config/rootfiles/common/xz +++ b/config/rootfiles/common/xz @@ -41,7 +41,7 @@ usr/bin/xzmore #usr/lib/liblzma.la usr/lib/liblzma.so usr/lib/liblzma.so.5 -usr/lib/liblzma.so.5.0.4 +usr/lib/liblzma.so.5.0.5 #usr/lib/pkgconfig/liblzma.pc #usr/share/doc/xz #usr/share/doc/xz/AUTHORS diff --git a/config/rootfiles/core/76/exclude b/config/rootfiles/core/76/exclude new file mode 100644 index 0000000..18e9b4d --- /dev/null +++ b/config/rootfiles/core/76/exclude @@ -0,0 +1,20 @@ +boot/config.txt +etc/collectd.custom +etc/ipsec.conf +etc/ipsec.secrets +etc/ipsec.user.conf +etc/ipsec.user.secrets +etc/localtime +etc/shadow +etc/ssh/ssh_config +etc/ssh/sshd_config +etc/ssl/openssl.cnf +etc/sudoers +etc/sysconfig/firewall.local +etc/sysconfig/rc.local +etc/udev/rules.d/30-persistent-network.rules +srv/web/ipfire/html/proxy.pac +var/ipfire/ovpn +var/log/cache +var/state/dhcp/dhcpd.leases +var/updatecache diff --git a/config/rootfiles/core/76/filelists/Net_SSLeay b/config/rootfiles/core/76/filelists/Net_SSLeay new file mode 120000 index 0000000..13fe056 --- /dev/null +++ b/config/rootfiles/core/76/filelists/Net_SSLeay @@ -0,0 +1 @@ +../../../common/Net_SSLeay \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/apache2 b/config/rootfiles/core/76/filelists/apache2 new file mode 120000 index 0000000..eef95ef --- /dev/null +++ b/config/rootfiles/core/76/filelists/apache2 @@ -0,0 +1 @@ +../../../common/apache2 \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/armv5tel/binutils b/config/rootfiles/core/76/filelists/armv5tel/binutils new file mode 120000 index 0000000..ac971f9 --- /dev/null +++ b/config/rootfiles/core/76/filelists/armv5tel/binutils @@ -0,0 +1 @@ +../../../../common/armv5tel/binutils \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/armv5tel/dracut b/config/rootfiles/core/76/filelists/armv5tel/dracut new file mode 120000 index 0000000..861df3f --- /dev/null +++ b/config/rootfiles/core/76/filelists/armv5tel/dracut @@ -0,0 +1 @@ +../../../../common/armv5tel/dracut \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/armv5tel/gcc b/config/rootfiles/core/76/filelists/armv5tel/gcc new file mode 120000 index 0000000..84f7b93 --- /dev/null +++ b/config/rootfiles/core/76/filelists/armv5tel/gcc @@ -0,0 +1 @@ +../../../../common/armv5tel/gcc \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/armv5tel/glibc b/config/rootfiles/core/76/filelists/armv5tel/glibc new file mode 120000 index 0000000..4c70d72 --- /dev/null +++ b/config/rootfiles/core/76/filelists/armv5tel/glibc @@ -0,0 +1 @@ +../../../../common/armv5tel/glibc \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/armv5tel/initscripts b/config/rootfiles/core/76/filelists/armv5tel/initscripts new file mode 120000 index 0000000..af1d762 --- /dev/null +++ b/config/rootfiles/core/76/filelists/armv5tel/initscripts @@ -0,0 +1 @@ +../../../../common/armv5tel/initscripts \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/armv5tel/linux-kirkwood b/config/rootfiles/core/76/filelists/armv5tel/linux-kirkwood new file mode 120000 index 0000000..7217107 --- /dev/null +++ b/config/rootfiles/core/76/filelists/armv5tel/linux-kirkwood @@ -0,0 +1 @@ +../../../../common/armv5tel/linux-kirkwood \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/armv5tel/linux-multi b/config/rootfiles/core/76/filelists/armv5tel/linux-multi new file mode 120000 index 0000000..204eb4c --- /dev/null +++ b/config/rootfiles/core/76/filelists/armv5tel/linux-multi @@ -0,0 +1 @@ +../../../../common/armv5tel/linux-multi \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/armv5tel/linux-rpi b/config/rootfiles/core/76/filelists/armv5tel/linux-rpi new file mode 120000 index 0000000..a651a49 --- /dev/null +++ b/config/rootfiles/core/76/filelists/armv5tel/linux-rpi @@ -0,0 +1 @@ +../../../../common/armv5tel/linux-rpi \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/armv5tel/lm_sensors b/config/rootfiles/core/76/filelists/armv5tel/lm_sensors new file mode 120000 index 0000000..eec84cd --- /dev/null +++ b/config/rootfiles/core/76/filelists/armv5tel/lm_sensors @@ -0,0 +1 @@ +../../../../common/armv5tel/lm_sensors \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/armv5tel/rpi-firmware b/config/rootfiles/core/76/filelists/armv5tel/rpi-firmware new file mode 120000 index 0000000..428fdf8 --- /dev/null +++ b/config/rootfiles/core/76/filelists/armv5tel/rpi-firmware @@ -0,0 +1 @@ +../../../../common/armv5tel/rpi-firmware \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/armv5tel/u-boot b/config/rootfiles/core/76/filelists/armv5tel/u-boot new file mode 120000 index 0000000..3df31a8 --- /dev/null +++ b/config/rootfiles/core/76/filelists/armv5tel/u-boot @@ -0,0 +1 @@ +../../../../common/armv5tel/u-boot \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/armv5tel/util-linux b/config/rootfiles/core/76/filelists/armv5tel/util-linux new file mode 120000 index 0000000..2596908 --- /dev/null +++ b/config/rootfiles/core/76/filelists/armv5tel/util-linux @@ -0,0 +1 @@ +../../../../common/armv5tel/util-linux \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/beep b/config/rootfiles/core/76/filelists/beep new file mode 120000 index 0000000..6db094e --- /dev/null +++ b/config/rootfiles/core/76/filelists/beep @@ -0,0 +1 @@ +../../../common/beep \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/bridge-utils b/config/rootfiles/core/76/filelists/bridge-utils new file mode 120000 index 0000000..3dee211 --- /dev/null +++ b/config/rootfiles/core/76/filelists/bridge-utils @@ -0,0 +1 @@ +../../../common/bridge-utils \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/coreutils b/config/rootfiles/core/76/filelists/coreutils new file mode 120000 index 0000000..7351ed2 --- /dev/null +++ b/config/rootfiles/core/76/filelists/coreutils @@ -0,0 +1 @@ +../../../common/coreutils \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/cyrus-sasl b/config/rootfiles/core/76/filelists/cyrus-sasl new file mode 120000 index 0000000..bb51b4c --- /dev/null +++ b/config/rootfiles/core/76/filelists/cyrus-sasl @@ -0,0 +1 @@ +../../../common/cyrus-sasl \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/dosfstools b/config/rootfiles/core/76/filelists/dosfstools new file mode 120000 index 0000000..087ccb0 --- /dev/null +++ b/config/rootfiles/core/76/filelists/dosfstools @@ -0,0 +1 @@ +../../../common/dosfstools \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/dvb-firmwares b/config/rootfiles/core/76/filelists/dvb-firmwares new file mode 120000 index 0000000..69d0cdc --- /dev/null +++ b/config/rootfiles/core/76/filelists/dvb-firmwares @@ -0,0 +1 @@ +../../../common/dvb-firmwares \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/e2fsprogs b/config/rootfiles/core/76/filelists/e2fsprogs new file mode 120000 index 0000000..37b55de --- /dev/null +++ b/config/rootfiles/core/76/filelists/e2fsprogs @@ -0,0 +1 @@ +../../../common/e2fsprogs \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/files b/config/rootfiles/core/76/filelists/files new file mode 100644 index 0000000..fcd2804 --- /dev/null +++ b/config/rootfiles/core/76/filelists/files @@ -0,0 +1,32 @@ +etc/system-release +etc/issue +etc/collectd.conf +etc/rc.d/init.d/network +run +srv/web/ipfire/cgi-bin/credits.cgi +srv/web/ipfire/cgi-bin/gui.cgi +srv/web/ipfire/cgi-bin/entropy.cgi +srv/web/ipfire/cgi-bin/index.cgi +srv/web/ipfire/cgi-bin/netinternal.cgi +srv/web/ipfire/cgi-bin/ovpnmain.cgi +srv/web/ipfire/cgi-bin/proxy.cgi +srv/web/ipfire/cgi-bin/upnp.cgi +srv/web/ipfire/cgi-bin/speed.cgi +srv/web/ipfire/cgi-bin/urlfilter.cgi +srv/web/ipfire/cgi-bin/vpnmain.cgi +srv/web/ipfire/html/themes/darkdos +srv/web/ipfire/html/themes/ipfire +srv/web/ipfire/html/themes/ipfire-legacy +srv/web/ipfire/html/themes/maniac +usr/lib/firewall +usr/local/bin/timezone-transition +usr/local/bin/setddns.pl +usr/sbin/updxlrator +var/ipfire/backup/bin/backup.pl +var/ipfire/backup/exclude +var/ipfire/backup/include +var/ipfire/general-functions.pl +var/ipfire/header.pl +var/ipfire/graphs.pl +var/ipfire/langs +var/ipfire/menu.d/10-system.menu diff --git a/config/rootfiles/core/76/filelists/fireinfo b/config/rootfiles/core/76/filelists/fireinfo new file mode 120000 index 0000000..c461155 --- /dev/null +++ b/config/rootfiles/core/76/filelists/fireinfo @@ -0,0 +1 @@ +../../../common/fireinfo \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/firewall b/config/rootfiles/core/76/filelists/firewall new file mode 100644 index 0000000..6eeaeae --- /dev/null +++ b/config/rootfiles/core/76/filelists/firewall @@ -0,0 +1,14 @@ +etc/rc.d/init.d/firewall +srv/web/ipfire/cgi-bin/firewall.cgi +srv/web/ipfire/cgi-bin/fwhosts.cgi +srv/web/ipfire/cgi-bin/optionsfw.cgi +srv/web/ipfire/cgi-bin/p2p-block.cgi +usr/sbin/convert-dmz +usr/sbin/convert-outgoingfw +usr/sbin/convert-portfw +usr/sbin/convert-xtaccess +usr/sbin/firewall-policy +var/ipfire/firewall/p2protocols +var/ipfire/fwhosts/icmp-types +var/ipfire/menu.d/50-firewall.menu +var/ipfire/fwhosts/customservices.default diff --git a/config/rootfiles/core/76/filelists/i586/binutils b/config/rootfiles/core/76/filelists/i586/binutils new file mode 120000 index 0000000..78695d7 --- /dev/null +++ b/config/rootfiles/core/76/filelists/i586/binutils @@ -0,0 +1 @@ +../../../../common/i586/binutils \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/i586/dracut b/config/rootfiles/core/76/filelists/i586/dracut new file mode 120000 index 0000000..9a09010 --- /dev/null +++ b/config/rootfiles/core/76/filelists/i586/dracut @@ -0,0 +1 @@ +../../../../common/i586/dracut \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/i586/gcc b/config/rootfiles/core/76/filelists/i586/gcc new file mode 120000 index 0000000..ba328e3 --- /dev/null +++ b/config/rootfiles/core/76/filelists/i586/gcc @@ -0,0 +1 @@ +../../../../common/i586/gcc \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/i586/glibc b/config/rootfiles/core/76/filelists/i586/glibc new file mode 120000 index 0000000..943021f --- /dev/null +++ b/config/rootfiles/core/76/filelists/i586/glibc @@ -0,0 +1 @@ +../../../../common/i586/glibc \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/i586/grub b/config/rootfiles/core/76/filelists/i586/grub new file mode 120000 index 0000000..feb236a --- /dev/null +++ b/config/rootfiles/core/76/filelists/i586/grub @@ -0,0 +1 @@ +../../../../common/i586/grub \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/i586/initscripts b/config/rootfiles/core/76/filelists/i586/initscripts new file mode 120000 index 0000000..12d8770 --- /dev/null +++ b/config/rootfiles/core/76/filelists/i586/initscripts @@ -0,0 +1 @@ +../../../../common/i586/initscripts \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/i586/linux b/config/rootfiles/core/76/filelists/i586/linux new file mode 120000 index 0000000..693ec4b --- /dev/null +++ b/config/rootfiles/core/76/filelists/i586/linux @@ -0,0 +1 @@ +../../../../common/i586/linux \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/i586/lm_sensors b/config/rootfiles/core/76/filelists/i586/lm_sensors new file mode 120000 index 0000000..17d6c01 --- /dev/null +++ b/config/rootfiles/core/76/filelists/i586/lm_sensors @@ -0,0 +1 @@ +../../../../common/i586/lm_sensors \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/i586/strongswan-padlock b/config/rootfiles/core/76/filelists/i586/strongswan-padlock new file mode 120000 index 0000000..2412824 --- /dev/null +++ b/config/rootfiles/core/76/filelists/i586/strongswan-padlock @@ -0,0 +1 @@ +../../../../common/i586/strongswan-padlock \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/i586/util-linux b/config/rootfiles/core/76/filelists/i586/util-linux new file mode 120000 index 0000000..c973106 --- /dev/null +++ b/config/rootfiles/core/76/filelists/i586/util-linux @@ -0,0 +1 @@ +../../../../common/i586/util-linux \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/iptables b/config/rootfiles/core/76/filelists/iptables new file mode 120000 index 0000000..8caf12b --- /dev/null +++ b/config/rootfiles/core/76/filelists/iptables @@ -0,0 +1 @@ +../../../common/iptables \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/iw b/config/rootfiles/core/76/filelists/iw new file mode 120000 index 0000000..7c58a20 --- /dev/null +++ b/config/rootfiles/core/76/filelists/iw @@ -0,0 +1 @@ +../../../common/iw \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/jquery b/config/rootfiles/core/76/filelists/jquery new file mode 120000 index 0000000..65df10c --- /dev/null +++ b/config/rootfiles/core/76/filelists/jquery @@ -0,0 +1 @@ +../../../common/jquery \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/kmod b/config/rootfiles/core/76/filelists/kmod new file mode 120000 index 0000000..0020e19 --- /dev/null +++ b/config/rootfiles/core/76/filelists/kmod @@ -0,0 +1 @@ +../../../common/kmod \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/libnl b/config/rootfiles/core/76/filelists/libnl new file mode 120000 index 0000000..7181849 --- /dev/null +++ b/config/rootfiles/core/76/filelists/libnl @@ -0,0 +1 @@ +../../../common/libnl \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/libusbx b/config/rootfiles/core/76/filelists/libusbx new file mode 120000 index 0000000..96c9995 --- /dev/null +++ b/config/rootfiles/core/76/filelists/libusbx @@ -0,0 +1 @@ +../../../common/libusbx \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/libxml2 b/config/rootfiles/core/76/filelists/libxml2 new file mode 120000 index 0000000..242e69f --- /dev/null +++ b/config/rootfiles/core/76/filelists/libxml2 @@ -0,0 +1 @@ +../../../common/libxml2 \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/linux-firmware b/config/rootfiles/core/76/filelists/linux-firmware new file mode 120000 index 0000000..4bf91bc --- /dev/null +++ b/config/rootfiles/core/76/filelists/linux-firmware @@ -0,0 +1 @@ +../../../common/linux-firmware \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/lzo b/config/rootfiles/core/76/filelists/lzo new file mode 120000 index 0000000..8e11e78 --- /dev/null +++ b/config/rootfiles/core/76/filelists/lzo @@ -0,0 +1 @@ +../../../common/lzo \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/misc-progs b/config/rootfiles/core/76/filelists/misc-progs new file mode 120000 index 0000000..7223cad --- /dev/null +++ b/config/rootfiles/core/76/filelists/misc-progs @@ -0,0 +1 @@ +../../../common/misc-progs \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/mysql-libs b/config/rootfiles/core/76/filelists/mysql-libs new file mode 120000 index 0000000..c63bc7f --- /dev/null +++ b/config/rootfiles/core/76/filelists/mysql-libs @@ -0,0 +1 @@ +../../../common/mysql-libs \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/net-tools b/config/rootfiles/core/76/filelists/net-tools new file mode 120000 index 0000000..bac6b00 --- /dev/null +++ b/config/rootfiles/core/76/filelists/net-tools @@ -0,0 +1 @@ +../../../common/net-tools \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/ntp b/config/rootfiles/core/76/filelists/ntp new file mode 100644 index 0000000..6adc47b --- /dev/null +++ b/config/rootfiles/core/76/filelists/ntp @@ -0,0 +1,15 @@ +etc/ntp.conf +usr/bin/ntp-keygen +usr/bin/ntp-wait +usr/bin/ntpd +usr/bin/ntpdate +usr/bin/ntpdc +usr/bin/ntpq +usr/bin/ntptime +usr/bin/ntptrace +usr/bin/sntp +usr/bin/tickadj +var/ipfire/time/counter.conf +var/ipfire/time/enable +var/ipfire/time/settime.conf +var/ipfire/time/settings diff --git a/config/rootfiles/core/76/filelists/openssh b/config/rootfiles/core/76/filelists/openssh new file mode 120000 index 0000000..d8c77fd --- /dev/null +++ b/config/rootfiles/core/76/filelists/openssh @@ -0,0 +1 @@ +../../../common/openssh \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/openssl b/config/rootfiles/core/76/filelists/openssl new file mode 120000 index 0000000..e011a92 --- /dev/null +++ b/config/rootfiles/core/76/filelists/openssl @@ -0,0 +1 @@ +../../../common/openssl \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/openssl-compat b/config/rootfiles/core/76/filelists/openssl-compat new file mode 120000 index 0000000..c9fa421 --- /dev/null +++ b/config/rootfiles/core/76/filelists/openssl-compat @@ -0,0 +1 @@ +../../../common/openssl-compat \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/openvpn b/config/rootfiles/core/76/filelists/openvpn new file mode 120000 index 0000000..493f3f7 --- /dev/null +++ b/config/rootfiles/core/76/filelists/openvpn @@ -0,0 +1 @@ +../../../common/openvpn \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/pakfire b/config/rootfiles/core/76/filelists/pakfire new file mode 100644 index 0000000..fd324bb --- /dev/null +++ b/config/rootfiles/core/76/filelists/pakfire @@ -0,0 +1,4 @@ +opt/pakfire/etc/pakfire.conf +opt/pakfire/lib/functions.pl +opt/pakfire/lib/functions.sh +opt/pakfire/pakfire diff --git a/config/rootfiles/core/76/filelists/paxctl b/config/rootfiles/core/76/filelists/paxctl new file mode 120000 index 0000000..dda8d9f --- /dev/null +++ b/config/rootfiles/core/76/filelists/paxctl @@ -0,0 +1 @@ +../../../common/paxctl \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/php b/config/rootfiles/core/76/filelists/php new file mode 120000 index 0000000..1ae48d7 --- /dev/null +++ b/config/rootfiles/core/76/filelists/php @@ -0,0 +1 @@ +../../../common/php \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/rng-tools b/config/rootfiles/core/76/filelists/rng-tools new file mode 120000 index 0000000..a7853e4 --- /dev/null +++ b/config/rootfiles/core/76/filelists/rng-tools @@ -0,0 +1 @@ +../../../common/rng-tools \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/setup b/config/rootfiles/core/76/filelists/setup new file mode 120000 index 0000000..209374b --- /dev/null +++ b/config/rootfiles/core/76/filelists/setup @@ -0,0 +1 @@ +../../../common/setup \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/strongswan b/config/rootfiles/core/76/filelists/strongswan new file mode 120000 index 0000000..90c727e --- /dev/null +++ b/config/rootfiles/core/76/filelists/strongswan @@ -0,0 +1 @@ +../../../common/strongswan \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/tzdata b/config/rootfiles/core/76/filelists/tzdata new file mode 120000 index 0000000..5a6e325 --- /dev/null +++ b/config/rootfiles/core/76/filelists/tzdata @@ -0,0 +1 @@ +../../../common/tzdata \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/udev b/config/rootfiles/core/76/filelists/udev new file mode 120000 index 0000000..e967a1c --- /dev/null +++ b/config/rootfiles/core/76/filelists/udev @@ -0,0 +1 @@ +../../../common/udev \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/usb_modeswitch b/config/rootfiles/core/76/filelists/usb_modeswitch new file mode 120000 index 0000000..acbab6f --- /dev/null +++ b/config/rootfiles/core/76/filelists/usb_modeswitch @@ -0,0 +1 @@ +../../../common/usb_modeswitch \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/usb_modeswitch_data b/config/rootfiles/core/76/filelists/usb_modeswitch_data new file mode 120000 index 0000000..4cbce46 --- /dev/null +++ b/config/rootfiles/core/76/filelists/usb_modeswitch_data @@ -0,0 +1 @@ +../../../common/usb_modeswitch_data \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/usbutils b/config/rootfiles/core/76/filelists/usbutils new file mode 120000 index 0000000..31db5a7 --- /dev/null +++ b/config/rootfiles/core/76/filelists/usbutils @@ -0,0 +1 @@ +../../../common/usbutils \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/vim b/config/rootfiles/core/76/filelists/vim new file mode 120000 index 0000000..9861317 --- /dev/null +++ b/config/rootfiles/core/76/filelists/vim @@ -0,0 +1 @@ +../../../common/vim \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/wget b/config/rootfiles/core/76/filelists/wget new file mode 120000 index 0000000..fcb57df --- /dev/null +++ b/config/rootfiles/core/76/filelists/wget @@ -0,0 +1 @@ +../../../common/wget \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/wpa_supplicant b/config/rootfiles/core/76/filelists/wpa_supplicant new file mode 120000 index 0000000..1d04c03 --- /dev/null +++ b/config/rootfiles/core/76/filelists/wpa_supplicant @@ -0,0 +1 @@ +../../../common/wpa_supplicant \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/xz b/config/rootfiles/core/76/filelists/xz new file mode 120000 index 0000000..734e926 --- /dev/null +++ b/config/rootfiles/core/76/filelists/xz @@ -0,0 +1 @@ +../../../common/xz \ No newline at end of file diff --git a/config/rootfiles/core/76/meta b/config/rootfiles/core/76/meta new file mode 100644 index 0000000..d547fa8 --- /dev/null +++ b/config/rootfiles/core/76/meta @@ -0,0 +1 @@ +DEPS="" diff --git a/config/rootfiles/core/76/update.sh b/config/rootfiles/core/76/update.sh new file mode 100644 index 0000000..038adcf --- /dev/null +++ b/config/rootfiles/core/76/update.sh @@ -0,0 +1,522 @@ +#!/bin/bash +############################################################################ +# # +# This file is part of the IPFire Firewall. # +# # +# IPFire is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 3 of the License, or # +# (at your option) any later version. # +# # +# IPFire is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with IPFire; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +# Copyright (C) 2014 IPFire-Team info@ipfire.org. # +# # +############################################################################ +# +. /opt/pakfire/lib/functions.sh +/usr/local/bin/backupctrl exclude >/dev/null 2>&1 + +function add_to_backup () +{ + # Add path to ROOTFILES but remove old entries to prevent double + # files in the tar + grep -v "^$1" /opt/pakfire/tmp/ROOTFILES > /opt/pakfire/tmp/ROOTFILES.tmp + mv /opt/pakfire/tmp/ROOTFILES.tmp /opt/pakfire/tmp/ROOTFILES + echo $1 >> /opt/pakfire/tmp/ROOTFILES +} + +# +# Remove old core updates from pakfire cache to save space... +core=76 +for (( i=1; i<=${core}; i++ )) +do + rm -f /var/cache/pakfire/core-upgrade-*-$i.ipfire +done + +# +# Do some sanity checks. +case $(uname -r) in + *-ipfire-versatile ) + /usr/bin/logger -p syslog.emerg -t ipfire \ + "core-update-${core}: ERROR cannot update. versatile support is dropped." + # Report no error to pakfire. So it does not try to install it again. + exit 0 + ;; + *-ipfire-xen ) + BOOTSIZE=`df /boot -Pk | sed "s| * | |g" | cut -d" " -f2 | tail -n 1` + if [ $BOOTSIZE -lt 28000 ]; then + /usr/bin/logger -p syslog.emerg -t ipfire \ + "core-update-${core}: ERROR cannot update because not enough space on boot." + exit 2 + fi + ;; + *-ipfire* ) + # Ok. + ;; + * ) + /usr/bin/logger -p syslog.emerg -t ipfire \ + "core-update-${core}: ERROR cannot update. No IPFire Kernel." + exit 1 + ;; +esac + + +# +# +KVER="xxxKVERxxx" +MOUNT=`grep "kernel" /boot/grub/grub.conf 2>/dev/null | tail -n 1 ` +# Nur den letzten Parameter verwenden +echo $MOUNT > /dev/null +MOUNT=$_ +if [ ! $MOUNT == "rw" ]; then + MOUNT="ro" +fi + +# +# check if we the backup file already exist +if [ -e /var/ipfire/backup/core-upgrade${core}_${KVER}.tar.xz ]; then + echo Moving backup to backup-old ... + mv -f /var/ipfire/backup/core-upgrade${core}_${KVER}.tar.xz \ + /var/ipfire/backup/core-upgrade${core}_${KVER}-old.tar.xz +fi +echo First we made a backup of all files that was inside of the +echo update archive. This may take a while ... +# Add some files that are not in the package to backup +add_to_backup lib/modules +add_to_backup etc/udev +add_to_backup lib/udev +add_to_backup boot +add_to_backup etc/sysconfig/lm_sensors +add_to_backup etc/sysconfig/rc.local +add_to_backup srv/web/ipfire/html/themes/ipfire +add_to_backup usr/lib/engines +add_to_backup etc/rc.d/init.d/networking/red.up/22-outgoingfwctrl +add_to_backup etc/rc.d/init.d/networking/red.up/25-portfw +add_to_backup etc/rc.d/init.d/networking/red.up/26-xtaccess +add_to_backup usr/local/bin/setportfw +add_to_backup usr/local/bin/setdmzholes +add_to_backup usr/local/bin/setxtaccess +add_to_backup usr/local/bin/outgoingfwctrl +add_to_backup srv/web/ipfire/cgi-bin/{dmzholes,outgoingfw,portfw,xtaccess}.cgi +add_to_backup var/ipfire/{dmzholes,portfw,outgoing,xtaccess} +add_to_backup etc/inittab +add_to_backup etc/fstab +add_to_backup usr/share/usb_modeswitch +add_to_backup etc/rc.d/init.d/networking/red.down/99-D-dialctrl.pl +add_to_backup etc/rc.d/init.d/networking/red.up/99-U-dialctrl.pl +add_to_backup usr/local/bin/dialctrl.pl + +# Backup the files +tar cJvf /var/ipfire/backup/core-upgrade${core}_${KVER}.tar.xz \ + -C / -T /opt/pakfire/tmp/ROOTFILES --exclude='#*' --exclude='/var/cache' > /dev/null 2>&1 + +# Check diskspace on root +ROOTSPACE=`df / -Pk | sed "s| * | |g" | cut -d" " -f4 | tail -n 1` + +if [ $ROOTSPACE -lt 100000 ]; then + /usr/bin/logger -p syslog.emerg -t ipfire \ + "core-update-${core}: ERROR cannot update because not enough free space on root." + exit 2 +fi + + +echo +echo Update Kernel to $KVER ... +# +# Remove old kernel, configs, initrd, modules ... +# +rm -rf /boot/System.map-* +rm -rf /boot/config-* +rm -rf /boot/ipfirerd-* +rm -rf /boot/vmlinuz-* +rm -rf /boot/uImage-ipfire-* +rm -rf /boot/uInit-ipfire-* +rm -rf /lib/modules + +# Remove old usb_modeswitch_data +rm -rf /usr/share/usb_modeswitch +# Remove old tzdata +rm -rf /usr/share/zoneinfo + +# Remove dialctrl.pl script +rm -f \ + /etc/rc.d/init.d/networking/red.down/99-D-dialctrl.pl \ + /etc/rc.d/init.d/networking/red.up/99-U-dialctrl.pl \ + /usr/local/bin/dialctrl.pl + +# +# Remove old udev rules. +# +if [ -e /etc/udev/rules.d/29-ct-server-network.rules ]; then + cp /etc/udev/rules.d/29-ct-server-network.rules /tmp/ +fi +cp /etc/udev/rules.d/30-persistent-network.rules /tmp/ +rm -rf /etc/udev +rm -rf /lib/udev +mkdir -p /etc/udev/rules.d +if [ -e /tmp/rules.d/29-ct-server-network.rules ]; then + mv /tmp/29-ct-server-network.rules /etc/udev/rules.d/ +fi +mv /tmp/30-persistent-network.rules /etc/udev/rules.d/ + +case $(uname -m) in + i?86 ) + # + # Backup grub.conf + # + cp -vf /boot/grub/grub.conf /boot/grub/grub.conf.org + ;; +esac +# +#Stop services +/etc/init.d/snort stop +/etc/init.d/squid stop +/etc/init.d/ipsec stop +/etc/init.d/apache stop + +# Remove the old default theme +rm -rf /srv/web/ipfire/html/themes/ipfire + +# rename /etc/modprobe.d files +for i in $(find /etc/modprobe.d/* | grep -v ".conf"); do + mv $i $i.conf +done + +# Move /var/run to /run. +if [ -L "/run" ]; then + rm -f /run +fi + +mkdir -p /run +if mountpoint /var/run; then + mount --move /var/run /run + rm -rf /var/run +fi + +ln -svf ../run /var/run + +# Creating directories for new firewall. +mkdir -p /var/ipfire/firewall +mkdir -p /var/ipfire/fwhosts + +# Remove old ntp binaries +rm -f /usr/sbin/ntp-keygen +rm -f /usr/sbin/ntp-wait +rm -f /usr/sbin/ntpq +rm -f /usr/sbin/ntptime +rm -f /usr/sbin/ntptrace +rm -f /usr/sbin/tickadj + +# Remove old firewall helper link +rm -f /etc/rc.d/init.d/networking/red.up/22-forwardfwctrl + +# +#Extract files +tar xavf /opt/pakfire/tmp/files* --no-overwrite-dir -p --numeric-owner -C / + +# Check diskspace on boot +BOOTSPACE=`df /boot -Pk | sed "s| * | |g" | cut -d" " -f4 | tail -n 1` + +if [ $BOOTSPACE -lt 1000 ]; then + case $(uname -r) in + *-ipfire-kirkwood ) + # Special handling for old kirkwood images. + # (install only kirkwood kernel) + rm -rf /boot/* + tar xavf /opt/pakfire/tmp/files* --no-overwrite-dir -p \ + --numeric-owner -C / --wildcards 'boot/*-kirkwood*' + ;; + * ) + /usr/bin/logger -p syslog.emerg -t ipfire \ + "core-update-${core}: FATAL-ERROR space run out on boot. System is not bootable..." + /etc/init.d/apache start + exit 4 + ;; + esac +fi + +# +#Reload init to close old linker/glibc +telinit u + +# Regenerate ipsec configuration files. +/srv/web/ipfire/cgi-bin/vpnmain.cgi + +# Update Language cache +perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang" + +# Remove old openssl engines +rm -rf /usr/lib/engines + +# Remove old initscripts +rm -f /etc/rc.d/init.d/networking/red.up/22-outgoingfwctrl +rm -f /etc/rc.d/init.d/networking/red.up/25-portfw +rm -f /etc/rc.d/init.d/networking/red.up/26-xtaccess +rm -f /etc/rc.d/rcsysinit.d/S90sysctl + +# Remove old firewallscripts +rm -f /usr/local/bin/setportfw +rm -f /usr/local/bin/setdmzholes +rm -f /usr/local/bin/setxtaccess +rm -f /usr/local/bin/outgoingfwctrl + +# Remove old CGI files +rm -f /srv/web/ipfire/cgi-bin/{dmzholes,outgoingfw,portfw,xtaccess}.cgi + +# Generate chains for new firewall +/sbin/iptables -N INPUTFW 2>/dev/null +/sbin/iptables -N FORWARDFW 2>/dev/null +/sbin/iptables -N POLICYFWD 2>/dev/null +/sbin/iptables -N POLICYIN 2>/dev/null +/sbin/iptables -N POLICYOUT 2>/dev/null +/sbin/iptables -t nat -N NAT_SOURCE 2>/dev/null +/sbin/iptables -t nat -N NAT_DESTINATION 2>/dev/null +/sbin/iptables -t mangle -N NAT_DESTINATION 2>/dev/null + +# Create config files for firewall and fix permissions. +touch /var/ipfire/firewall/config +touch /var/ipfire/firewall/input +touch /var/ipfire/firewall/outgoing +touch /var/ipfire/firewall/settings +touch /var/ipfire/fwhosts/customhosts +touch /var/ipfire/fwhosts/customnetworks +touch /var/ipfire/fwhosts/customgroups +touch /var/ipfire/fwhosts/customservices +touch /var/ipfire/fwhosts/customservicegrp + +if [ ! -s "/var/ipfire/fwhosts/customservices" ];then + cp /var/ipfire/fwhosts/customservices.default /var/ipfire/fwhosts/customservices +fi + +# Fix ownership. +chown -R nobody:nobody /var/ipfire/firewall +chown -R nobody:nobody /var/ipfire/fwhosts + +# Convert firewall configuration +/usr/sbin/convert-xtaccess +/usr/sbin/convert-outgoingfw +/usr/sbin/convert-portfw +/usr/sbin/convert-dmz + +# Remove old firewall configuration files +rm -rf /var/ipfire/{dmzholes,portfw,outgoing,xtaccess} + +# In previously released IPFire versions the DROPOUTPUT and DROPINPUT +# option have two identical lines in the optionsfw/settings file as long as +# the user hasn't done any changes on the WUI. +# +# To prevent from any kind of side effects we are going to solve this issue now. + +# Fix doubble enties of DROPOUTPUT when the default settings are still in use +# (the save button on the WUI page never has been clicked) or convert to the +# new option name required by the firewall of IPFire 2.15. + +optionsfw_file="/var/ipfire/optionsfw/settings" + +if [ $(grep -c "DROPOUTPUT" ${optionsfw_file}) -gt 1 ] ; then + + # Drop all DROPUTPUT entries. + sed -e "/DROPOUTPUT/d" -i ${optionsfw_file} + + # Add default line for new option. + echo "DROPOUTGOING=on" >> ${optionsfw_file} +else + + # Convert option name to new format. + sed -e "s/DROPOUTPUT/DROPOUTGOING/g" -i ${optionsfw_file} +fi + +# Fix doubble enties of DROPINPUT when the default settings are still in use +# (the save button on the WUI page never has been clicked). +if [ $(grep -c "DROPINPUT" ${optionsfw_file}) -gt 1 ] ; then + + # We only can remove all entries with an defined string. + sed -e "/DROPINPUT/d" -i ${optionsfw_file} + + # Afterwards we have to add the required string with the default + # value again. + echo "DROPINPUT=on" >> ${optionsfw_file} +fi + +# Add strings and default values for new options of the firewall. +echo "DROPFORWARD=on" >> ${optionsfw_file} +echo "FWPOLICY=DROP" >> ${optionsfw_file} +echo "FWPOLICY1=DROP" >> ${optionsfw_file} +echo "FWPOLICY2=DROP" >> ${optionsfw_file} +echo "DROPSAMBA=off" >> ${optionsfw_file} +echo "DROPPROXY=off" >> ${optionsfw_file} +echo "SHOWREMARK=on" >> ${optionsfw_file} +echo "SHOWCOLORS=on" >> ${optionsfw_file} +echo "SHOWTABLES=off" >> ${optionsfw_file} +echo "SHOWDROPDOWN=off" >> ${optionsfw_file} +echo "DROPWIRELESSINPUT=on" >> ${optionsfw_file} +echo "DROPWIRELESSFORWARD=on" >> ${optionsfw_file} + +unset optionsfw_file + +# Convert inittab and fstab +sed -i -e "s/tty1 9600$/tty1 9600 --noclear/g" /etc/inittab +sed -i -e "s/xvc0 9600$/xvc0 9600 --noclear/g" /etc/inittab +sed -i -e "s/^proc/#proc/g" /etc/fstab +sed -i -e "s/^sysfs/#sysfs/g" /etc/fstab +sed -i -e "s/^devpts/#devpts/g" /etc/fstab +sed -i -e "s|^none\s/var/run|#none /var/run|g" /etc/fstab + +# Convert udev persistent network rules +sed -i -e "s/SYSFS{/ATTR{/g" /etc/udev/rules.d/30-persistent-network.rules + +# Firstsetup was already run +touch /var/ipfire/main/firstsetup_ok + +# +# Start services +# +/etc/init.d/apache start +/etc/init.d/squid start +/etc/init.d/snort start +if [ `grep "ENABLED=on" /var/ipfire/vpn/settings` ]; then + /etc/init.d/ipsec start +fi + +# +# Rebuild qosscript if enabled +# +if [ -e /var/ipfire/qos/enable ]; then + /usr/local/bin/qosctrl stop + /usr/local/bin/qosctrl generate + /usr/local/bin/qosctrl start +fi + +# Update crontab +cat <<EOF >> /var/spool/cron/root.orig + +# Re-read firewall rules every Sunday in March, October and November to take care of daylight saving time +00 3 * 3 0 /usr/local/bin/timezone-transition /usr/local/bin/firewallctrl +00 2 * 10-11 0 /usr/local/bin/timezone-transition /usr/local/bin/firewallctrl +EOF +fcrontab -z &>/dev/null + + +case $(uname -m) in + i?86 ) + # + # Modify grub.conf + # + echo + echo Update grub configuration ... + ROOT=`mount | grep " / " | cut -d" " -f1` + + if [ ! -z $ROOT ]; then + ROOTUUID=`blkid -c /dev/null -sUUID $ROOT | cut -d'"' -f2` + fi + + if [ ! -z $ROOTUUID ]; then + sed -i "s|ROOT|UUID=$ROOTUUID|g" /boot/grub/grub.conf + else + sed -i "s|ROOT|$ROOT|g" /boot/grub/grub.conf + fi + sed -i "s|KVER|$KVER|g" /boot/grub/grub.conf + sed -i "s|MOUNT|$MOUNT|g" /boot/grub/grub.conf + + if [ "$(grep "^serial" /boot/grub/grub.conf.org)" == "" ]; then + echo "grub use default console ..." + else + echo "grub use serial console ..." + sed -i -e "s|splashimage|#splashimage|g" /boot/grub/grub.conf + sed -i -e "s|#serial|serial|g" /boot/grub/grub.conf + sed -i -e "s|#terminal|terminal|g" /boot/grub/grub.conf + sed -i -e "s| panic=10 | console=ttyS0,115200n8 panic=10 |g" /boot/grub/grub.conf + fi + + # + # ReInstall grub + # + echo "(hd0) ${ROOT::`expr length $ROOT`-1}" > /boot/grub/device.map + grub-install --no-floppy ${ROOT::`expr length $ROOT`-1} + ;; +esac +# +# Delete old lm-sensor modullist to force search at next boot +# +rm -rf /etc/sysconfig/lm_sensors + + +# Force (re)install pae kernel if pae is supported +rm -rf /opt/pakfire/db/*/meta-linux-pae +if [ ! "$(grep "^flags.* pae " /proc/cpuinfo)" == "" ]; then + ROOTSPACE=`df / -Pk | sed "s| * | |g" | cut -d" " -f4 | tail -n 1` + BOOTSPACE=`df /boot -Pk | sed "s| * | |g" | cut -d" " -f4 | tail -n 1` + if [ $BOOTSPACE -lt 12000 -o $ROOTSPACE -lt 90000 ]; then + /usr/bin/logger -p syslog.emerg -t ipfire \ + "core-update-${core}: WARNING not enough space for pae kernel." + else + echo "Name: linux-pae" > /opt/pakfire/db/installed/meta-linux-pae + echo "ProgVersion: 0" >> /opt/pakfire/db/installed/meta-linux-pae + echo "Release: 0" >> /opt/pakfire/db/installed/meta-linux-pae + echo "Name: linux-pae" > /opt/pakfire/db/meta/meta-linux-pae + echo "ProgVersion: 0" >> /opt/pakfire/db/meta/meta-linux-pae + echo "Release: 0" >> /opt/pakfire/db/meta/meta-linux-pae + fi +fi + +# Force reinstall xen kernel if it was installed +if [ -e "/opt/pakfire/db/installed/meta-linux-xen" ]; then + echo "Name: linux-xen" > /opt/pakfire/db/installed/meta-linux-xen + echo "ProgVersion: 0" >> /opt/pakfire/db/installed/meta-linux-xen + echo "Release: 0" >> /opt/pakfire/db/installed/meta-linux-xen + echo "Name: linux-xen" > /opt/pakfire/db/meta/meta-linux-xen + echo "ProgVersion: 0" >> /opt/pakfire/db/meta/meta-linux-xen + echo "Release: 0" >> /opt/pakfire/db/meta/meta-linux-xen + # Add xvc0 to /etc/securetty + echo "xvc0" >> /etc/securetty +fi + +# +# After pakfire has ended run it again and update the lists and do upgrade +# +echo '#!/bin/bash' > /tmp/pak_update +echo 'while [ "$(ps -A | grep " update.sh")" != "" ]; do' >> /tmp/pak_update +echo ' sleep 1' >> /tmp/pak_update +echo 'done' >> /tmp/pak_update +echo 'while [ "$(ps -A | grep " pakfire")" != "" ]; do' >> /tmp/pak_update +echo ' sleep 1' >> /tmp/pak_update +echo 'done' >> /tmp/pak_update +echo '/opt/pakfire/pakfire update -y --force' >> /tmp/pak_update +echo '/opt/pakfire/pakfire upgrade -y' >> /tmp/pak_update +echo '/opt/pakfire/pakfire upgrade -y' >> /tmp/pak_update +echo '/opt/pakfire/pakfire upgrade -y' >> /tmp/pak_update +echo '/usr/bin/logger -p syslog.emerg -t ipfire "Core-upgrade finished. If you use a customized grub.cfg"' >> /tmp/pak_update +echo '/usr/bin/logger -p syslog.emerg -t ipfire "Check it before reboot !!!"' >> /tmp/pak_update +echo '/usr/bin/logger -p syslog.emerg -t ipfire " *** Please reboot... *** "' >> /tmp/pak_update +echo 'touch /var/run/need_reboot ' >> /tmp/pak_update +# +killall -KILL pak_update +chmod +x /tmp/pak_update +/tmp/pak_update & + +sync + +# +#Finish +( + /etc/init.d/fireinfo start + sendprofile +) >/dev/null 2>&1 & + +# Update Package list for addon installation +/opt/pakfire/pakfire update -y --force + +echo +echo Please wait until pakfire has ended... +echo +#Don't report the exitcode last command +exit 0 + diff --git a/config/rootfiles/installer/eject b/config/rootfiles/installer/eject deleted file mode 120000 index 54928be..0000000 --- a/config/rootfiles/installer/eject +++ /dev/null @@ -1 +0,0 @@ -../common/eject \ No newline at end of file diff --git a/config/rootfiles/installer/libidn b/config/rootfiles/installer/libidn new file mode 120000 index 0000000..9750546 --- /dev/null +++ b/config/rootfiles/installer/libidn @@ -0,0 +1 @@ +../common/libidn \ No newline at end of file diff --git a/config/rootfiles/installer/parted b/config/rootfiles/installer/parted new file mode 120000 index 0000000..dc69674 --- /dev/null +++ b/config/rootfiles/installer/parted @@ -0,0 +1 @@ +../packages/parted \ No newline at end of file diff --git a/config/rootfiles/oldcore/66/filelists/files b/config/rootfiles/oldcore/66/filelists/files index 9d0006f..821263e 100644 --- a/config/rootfiles/oldcore/66/filelists/files +++ b/config/rootfiles/oldcore/66/filelists/files @@ -48,6 +48,5 @@ var/ipfire/backup/bin/backup.pl var/ipfire/backup/include var/ipfire/general-functions.pl var/ipfire/langs -var/ipfire/outgoing/bin/outgoingfw.pl var/ipfire/qos/bin/makeqosscripts.pl var/ipfire/updatexlrator/bin/download diff --git a/config/rootfiles/oldcore/72/filelists/strongswan b/config/rootfiles/oldcore/72/filelists/strongswan deleted file mode 120000 index 90c727e..0000000 --- a/config/rootfiles/oldcore/72/filelists/strongswan +++ /dev/null @@ -1 +0,0 @@ -../../../common/strongswan \ No newline at end of file diff --git a/config/rootfiles/packages/armv5tel/vdr_dvbapi b/config/rootfiles/packages/armv5tel/vdr_dvbapi new file mode 100644 index 0000000..0748137 --- /dev/null +++ b/config/rootfiles/packages/armv5tel/vdr_dvbapi @@ -0,0 +1,3 @@ +etc/sysconfig/vdr-plugins.d/dvbapi.conf +etc/vdr/plugins/dvbapi +usr/lib/vdr/libvdr-dvbapi.so.2.0.0 diff --git a/config/rootfiles/packages/clamav b/config/rootfiles/packages/clamav index 1f09b8d..885af45 100644 --- a/config/rootfiles/packages/clamav +++ b/config/rootfiles/packages/clamav @@ -10,15 +10,15 @@ usr/bin/sigtool #usr/lib/libclamav.la usr/lib/libclamav.so usr/lib/libclamav.so.6 -usr/lib/libclamav.so.6.1.17 +usr/lib/libclamav.so.6.1.20 #usr/lib/libclamunrar.la usr/lib/libclamunrar.so usr/lib/libclamunrar.so.6 -usr/lib/libclamunrar.so.6.1.17 +usr/lib/libclamunrar.so.6.1.20 #usr/lib/libclamunrar_iface.la usr/lib/libclamunrar_iface.so usr/lib/libclamunrar_iface.so.6 -usr/lib/libclamunrar_iface.so.6.1.17 +usr/lib/libclamunrar_iface.so.6.1.20 #usr/lib/pkgconfig/libclamav.pc usr/sbin/clamd usr/share/clamav @@ -36,7 +36,9 @@ usr/share/clamav #usr/share/man/man8/clamd.8 #var/ipfire/clamav var/ipfire/clamav/clamd.conf +var/ipfire/clamav/clamd.conf.sample var/ipfire/clamav/freshclam.conf +var/ipfire/clamav/freshclam.conf.sample var/run/clamav etc/rc.d/init.d/clamav usr/local/bin/clamavctrl diff --git a/config/rootfiles/packages/cups b/config/rootfiles/packages/cups index 742cd8f..3acbcac 100644 --- a/config/rootfiles/packages/cups +++ b/config/rootfiles/packages/cups @@ -1,4 +1,6 @@ +#etc/dbus-1/system.d/cups.conf etc/pam.d/cups +etc/rc.d/init.d/cups #etc/rc0.d #etc/rc0.d/K36cups #etc/rc2.d @@ -14,6 +16,7 @@ usr/bin/cancel #usr/bin/cups-config usr/bin/cupstestdsc usr/bin/cupstestppd +usr/bin/ipptool usr/bin/lp usr/bin/lpoptions usr/bin/lppasswd @@ -33,80 +36,67 @@ usr/bin/ppdpo #usr/include/cups/cgi.h #usr/include/cups/cups.h #usr/include/cups/dir.h -#usr/include/cups/driver.h #usr/include/cups/file.h #usr/include/cups/help-index.h #usr/include/cups/http.h -#usr/include/cups/image.h #usr/include/cups/ipp.h #usr/include/cups/language.h #usr/include/cups/mime.h #usr/include/cups/ppd.h #usr/include/cups/ppdc.h +#usr/include/cups/pwg.h #usr/include/cups/raster.h #usr/include/cups/sidechannel.h #usr/include/cups/transcode.h #usr/include/cups/versioning.h -#usr/lib/cups -#usr/lib/cups/backend +usr/lib/cups +usr/lib/cups/backend usr/lib/cups/backend/http +usr/lib/cups/backend/https usr/lib/cups/backend/ipp +usr/lib/cups/backend/ipps usr/lib/cups/backend/lpd -usr/lib/cups/backend/parallel -usr/lib/cups/backend/scsi -usr/lib/cups/backend/serial usr/lib/cups/backend/smb usr/lib/cups/backend/snmp usr/lib/cups/backend/socket usr/lib/cups/backend/usb -#usr/lib/cups/cgi-bin +usr/lib/cups/cgi-bin usr/lib/cups/cgi-bin/admin.cgi usr/lib/cups/cgi-bin/classes.cgi usr/lib/cups/cgi-bin/help.cgi usr/lib/cups/cgi-bin/jobs.cgi usr/lib/cups/cgi-bin/printers.cgi -#usr/lib/cups/daemon +usr/lib/cups/daemon usr/lib/cups/daemon/cups-deviced usr/lib/cups/daemon/cups-driverd +usr/lib/cups/daemon/cups-exec usr/lib/cups/daemon/cups-lpd -usr/lib/cups/daemon/cups-polld usr/lib/cups/driver -#usr/lib/cups/filter -usr/lib/cups/filter/bannertops -usr/lib/cups/filter/commandtoescpx -usr/lib/cups/filter/commandtopclx +usr/lib/cups/filter usr/lib/cups/filter/commandtops usr/lib/cups/filter/gziptoany -usr/lib/cups/filter/hpgltops -usr/lib/cups/filter/imagetops -usr/lib/cups/filter/imagetoraster usr/lib/cups/filter/pstops usr/lib/cups/filter/rastertodymo usr/lib/cups/filter/rastertoepson -usr/lib/cups/filter/rastertoescpx usr/lib/cups/filter/rastertohp usr/lib/cups/filter/rastertolabel -usr/lib/cups/filter/rastertopclx -usr/lib/cups/filter/texttops -#usr/lib/cups/monitor +usr/lib/cups/filter/rastertopwg +usr/lib/cups/monitor usr/lib/cups/monitor/bcp usr/lib/cups/monitor/tbcp -#usr/lib/cups/notifier +usr/lib/cups/notifier usr/lib/cups/notifier/mailto usr/lib/cups/notifier/rss -usr/lib/libcups.so +#usr/lib/libcups.so usr/lib/libcups.so.2 -usr/lib/libcupscgi.so +#usr/lib/libcupscgi.so usr/lib/libcupscgi.so.1 -usr/lib/libcupsdriver.so -usr/lib/libcupsdriver.so.1 -usr/lib/libcupsimage.so +#usr/lib/libcupsimage.so usr/lib/libcupsimage.so.2 -usr/lib/libcupsmime.so +#usr/lib/libcupsmime.so usr/lib/libcupsmime.so.1 -usr/lib/libcupsppdc.so +#usr/lib/libcupsppdc.so usr/lib/libcupsppdc.so.1 -#usr/lib/php/extensions/no-debug-non-zts-20090626/phpcups.so usr/sbin/accept usr/sbin/cupsaccept usr/sbin/cupsaddsmb @@ -121,62 +111,19 @@ usr/sbin/lpc usr/sbin/lpinfo usr/sbin/lpmove usr/sbin/reject -#usr/share/cups -#usr/share/cups/banners +usr/share/cups +usr/share/cups/banners usr/share/cups/banners/classified usr/share/cups/banners/confidential usr/share/cups/banners/secret usr/share/cups/banners/standard usr/share/cups/banners/topsecret usr/share/cups/banners/unclassified -#usr/share/cups/charmaps -usr/share/cups/charmaps/euc-cn.txt -usr/share/cups/charmaps/euc-jp.txt -usr/share/cups/charmaps/euc-kr.txt -usr/share/cups/charmaps/euc-tw.txt -usr/share/cups/charmaps/iso-8859-1.txt -usr/share/cups/charmaps/iso-8859-10.txt -usr/share/cups/charmaps/iso-8859-11.txt -usr/share/cups/charmaps/iso-8859-13.txt -usr/share/cups/charmaps/iso-8859-14.txt -usr/share/cups/charmaps/iso-8859-15.txt -usr/share/cups/charmaps/iso-8859-16.txt -usr/share/cups/charmaps/iso-8859-2.txt -usr/share/cups/charmaps/iso-8859-3.txt -usr/share/cups/charmaps/iso-8859-4.txt -usr/share/cups/charmaps/iso-8859-5.txt -usr/share/cups/charmaps/iso-8859-6.txt -usr/share/cups/charmaps/iso-8859-7.txt -usr/share/cups/charmaps/iso-8859-8.txt -usr/share/cups/charmaps/iso-8859-9.txt -usr/share/cups/charmaps/jis-x0213.txt -usr/share/cups/charmaps/koi8-r.txt -usr/share/cups/charmaps/koi8-u.txt -usr/share/cups/charmaps/mac-roman.txt -usr/share/cups/charmaps/windows-1250.txt -usr/share/cups/charmaps/windows-1251.txt -usr/share/cups/charmaps/windows-1252.txt -usr/share/cups/charmaps/windows-1253.txt -usr/share/cups/charmaps/windows-1254.txt -usr/share/cups/charmaps/windows-1255.txt -usr/share/cups/charmaps/windows-1256.txt -usr/share/cups/charmaps/windows-1257.txt -usr/share/cups/charmaps/windows-1258.txt -usr/share/cups/charmaps/windows-1361.txt -usr/share/cups/charmaps/windows-874.txt -usr/share/cups/charmaps/windows-932.txt -usr/share/cups/charmaps/windows-936.txt -usr/share/cups/charmaps/windows-949.txt -usr/share/cups/charmaps/windows-950.txt -#usr/share/cups/charsets -usr/share/cups/charsets/utf-8 -#usr/share/cups/data -usr/share/cups/data/HPGLprolog -usr/share/cups/data/psglyphs +usr/share/cups/data usr/share/cups/data/testprint -#usr/share/cups/drv +usr/share/cups/drv usr/share/cups/drv/sample.drv -#usr/share/cups/examples +usr/share/cups/examples usr/share/cups/examples/color.drv usr/share/cups/examples/constraint.drv usr/share/cups/examples/custom.drv @@ -188,30 +135,125 @@ usr/share/cups/examples/postscript.drv usr/share/cups/examples/r300-basic.drv usr/share/cups/examples/r300-colorman.drv usr/share/cups/examples/r300-remote.drv -#usr/share/cups/fonts -usr/share/cups/fonts/Monospace -usr/share/cups/fonts/Monospace-Bold -usr/share/cups/fonts/Monospace-BoldOblique -usr/share/cups/fonts/Monospace-Oblique -#usr/share/cups/mime +usr/share/cups/ipptool +usr/share/cups/ipptool/color.jpg +usr/share/cups/ipptool/create-printer-subscription.test +usr/share/cups/ipptool/document-a4.pdf +usr/share/cups/ipptool/document-a4.ps +usr/share/cups/ipptool/document-letter.pdf +usr/share/cups/ipptool/document-letter.ps +usr/share/cups/ipptool/get-completed-jobs.test +usr/share/cups/ipptool/get-jobs.test +usr/share/cups/ipptool/get-notifications.test +usr/share/cups/ipptool/get-printer-attributes.test +usr/share/cups/ipptool/get-subscriptions.test +usr/share/cups/ipptool/gray.jpg +usr/share/cups/ipptool/ipp-1.1.test +usr/share/cups/ipptool/ipp-2.0.test +usr/share/cups/ipptool/ipp-2.1.test +usr/share/cups/ipptool/ipp-2.2.test +usr/share/cups/ipptool/ipp-everywhere.test +usr/share/cups/ipptool/onepage-a4.pdf +usr/share/cups/ipptool/onepage-a4.ps +usr/share/cups/ipptool/onepage-letter.pdf +usr/share/cups/ipptool/onepage-letter.ps +usr/share/cups/ipptool/print-job-deflate.test +usr/share/cups/ipptool/print-job-gzip.test +usr/share/cups/ipptool/print-job.test +usr/share/cups/ipptool/testfile.jpg +usr/share/cups/ipptool/testfile.pcl +usr/share/cups/ipptool/testfile.pdf +usr/share/cups/ipptool/testfile.ps +usr/share/cups/ipptool/testfile.txt +usr/share/cups/ipptool/validate-job.test +usr/share/cups/mime usr/share/cups/mime/mime.convs usr/share/cups/mime/mime.types -#usr/share/cups/model -#usr/share/cups/ppdc -#usr/share/cups/ppdc/epson.h -#usr/share/cups/ppdc/escp.h +usr/share/cups/model +usr/share/cups/ppdc +usr/share/cups/ppdc/epson.h usr/share/cups/ppdc/font.defs -#usr/share/cups/ppdc/hp.h -#usr/share/cups/ppdc/label.h +usr/share/cups/ppdc/hp.h +usr/share/cups/ppdc/label.h usr/share/cups/ppdc/media.defs -#usr/share/cups/ppdc/pcl.h usr/share/cups/ppdc/raster.defs usr/share/cups/profiles -#usr/share/cups/templates +usr/share/cups/templates usr/share/cups/templates/add-class.tmpl usr/share/cups/templates/add-printer.tmpl usr/share/cups/templates/add-rss-subscription.tmpl usr/share/cups/templates/admin.tmpl +usr/share/cups/templates/ca +usr/share/cups/templates/ca/add-class.tmpl +usr/share/cups/templates/ca/add-printer.tmpl +usr/share/cups/templates/ca/add-rss-subscription.tmpl +usr/share/cups/templates/ca/admin.tmpl +usr/share/cups/templates/ca/choose-device.tmpl +usr/share/cups/templates/ca/choose-make.tmpl +usr/share/cups/templates/ca/choose-model.tmpl +usr/share/cups/templates/ca/choose-serial.tmpl +usr/share/cups/templates/ca/choose-uri.tmpl +usr/share/cups/templates/ca/class-added.tmpl +usr/share/cups/templates/ca/class-confirm.tmpl +usr/share/cups/templates/ca/class-deleted.tmpl +usr/share/cups/templates/ca/class-jobs-header.tmpl +usr/share/cups/templates/ca/class-modified.tmpl +usr/share/cups/templates/ca/class.tmpl +usr/share/cups/templates/ca/classes-header.tmpl +usr/share/cups/templates/ca/classes.tmpl +usr/share/cups/templates/ca/command.tmpl +usr/share/cups/templates/ca/edit-config.tmpl +usr/share/cups/templates/ca/error-op.tmpl +usr/share/cups/templates/ca/error.tmpl +usr/share/cups/templates/ca/header.tmpl +usr/share/cups/templates/ca/help-header.tmpl +usr/share/cups/templates/ca/help-printable.tmpl +usr/share/cups/templates/ca/help-trailer.tmpl +usr/share/cups/templates/ca/job-cancel.tmpl +usr/share/cups/templates/ca/job-hold.tmpl +usr/share/cups/templates/ca/job-move.tmpl +usr/share/cups/templates/ca/job-moved.tmpl +usr/share/cups/templates/ca/job-release.tmpl +usr/share/cups/templates/ca/job-restart.tmpl +usr/share/cups/templates/ca/jobs-header.tmpl +usr/share/cups/templates/ca/jobs.tmpl +usr/share/cups/templates/ca/list-available-printers.tmpl +usr/share/cups/templates/ca/modify-class.tmpl +usr/share/cups/templates/ca/modify-printer.tmpl +usr/share/cups/templates/ca/norestart.tmpl +usr/share/cups/templates/ca/option-boolean.tmpl +usr/share/cups/templates/ca/option-conflict.tmpl +usr/share/cups/templates/ca/option-header.tmpl +usr/share/cups/templates/ca/option-pickmany.tmpl +usr/share/cups/templates/ca/option-pickone.tmpl +usr/share/cups/templates/ca/option-trailer.tmpl +usr/share/cups/templates/ca/pager.tmpl +usr/share/cups/templates/ca/printer-accept.tmpl +usr/share/cups/templates/ca/printer-added.tmpl +usr/share/cups/templates/ca/printer-configured.tmpl +usr/share/cups/templates/ca/printer-confirm.tmpl +usr/share/cups/templates/ca/printer-default.tmpl +usr/share/cups/templates/ca/printer-deleted.tmpl +usr/share/cups/templates/ca/printer-jobs-header.tmpl +usr/share/cups/templates/ca/printer-modified.tmpl +usr/share/cups/templates/ca/printer-purge.tmpl +usr/share/cups/templates/ca/printer-reject.tmpl +usr/share/cups/templates/ca/printer-start.tmpl +usr/share/cups/templates/ca/printer-stop.tmpl +usr/share/cups/templates/ca/printer.tmpl +usr/share/cups/templates/ca/printers-header.tmpl +usr/share/cups/templates/ca/printers.tmpl +usr/share/cups/templates/ca/restart.tmpl +usr/share/cups/templates/ca/samba-export.tmpl +usr/share/cups/templates/ca/samba-exported.tmpl +usr/share/cups/templates/ca/search.tmpl +usr/share/cups/templates/ca/set-printer-options-header.tmpl +usr/share/cups/templates/ca/set-printer-options-trailer.tmpl +usr/share/cups/templates/ca/subscription-added.tmpl +usr/share/cups/templates/ca/subscription-canceled.tmpl +usr/share/cups/templates/ca/test-page.tmpl +usr/share/cups/templates/ca/trailer.tmpl +usr/share/cups/templates/ca/users.tmpl usr/share/cups/templates/choose-device.tmpl usr/share/cups/templates/choose-make.tmpl usr/share/cups/templates/choose-model.tmpl @@ -226,438 +268,368 @@ usr/share/cups/templates/class.tmpl usr/share/cups/templates/classes-header.tmpl usr/share/cups/templates/classes.tmpl usr/share/cups/templates/command.tmpl -usr/share/cups/templates/de -usr/share/cups/templates/de/add-class.tmpl -usr/share/cups/templates/de/add-printer.tmpl -usr/share/cups/templates/de/add-rss-subscription.tmpl -usr/share/cups/templates/de/admin.tmpl -usr/share/cups/templates/de/choose-device.tmpl -usr/share/cups/templates/de/choose-make.tmpl -usr/share/cups/templates/de/choose-model.tmpl -usr/share/cups/templates/de/choose-serial.tmpl -usr/share/cups/templates/de/choose-uri.tmpl -usr/share/cups/templates/de/class-added.tmpl -usr/share/cups/templates/de/class-confirm.tmpl -usr/share/cups/templates/de/class-deleted.tmpl -usr/share/cups/templates/de/class-jobs-header.tmpl -usr/share/cups/templates/de/class-modified.tmpl -usr/share/cups/templates/de/class.tmpl -usr/share/cups/templates/de/classes-header.tmpl -usr/share/cups/templates/de/classes.tmpl -usr/share/cups/templates/de/command.tmpl -usr/share/cups/templates/de/edit-config.tmpl -usr/share/cups/templates/de/error-op.tmpl -usr/share/cups/templates/de/error.tmpl -usr/share/cups/templates/de/header.tmpl -usr/share/cups/templates/de/help-header.tmpl -usr/share/cups/templates/de/help-printable.tmpl -usr/share/cups/templates/de/help-trailer.tmpl -usr/share/cups/templates/de/job-cancel.tmpl -usr/share/cups/templates/de/job-hold.tmpl -usr/share/cups/templates/de/job-move.tmpl -usr/share/cups/templates/de/job-moved.tmpl -usr/share/cups/templates/de/job-release.tmpl -usr/share/cups/templates/de/job-restart.tmpl -usr/share/cups/templates/de/jobs-header.tmpl -usr/share/cups/templates/de/jobs.tmpl -usr/share/cups/templates/de/list-available-printers.tmpl -usr/share/cups/templates/de/modify-class.tmpl -usr/share/cups/templates/de/modify-printer.tmpl -usr/share/cups/templates/de/norestart.tmpl -usr/share/cups/templates/de/option-boolean.tmpl -usr/share/cups/templates/de/option-conflict.tmpl -usr/share/cups/templates/de/option-header.tmpl -usr/share/cups/templates/de/option-pickmany.tmpl -usr/share/cups/templates/de/option-pickone.tmpl -usr/share/cups/templates/de/option-trailer.tmpl -usr/share/cups/templates/de/pager.tmpl -usr/share/cups/templates/de/printer-accept.tmpl -usr/share/cups/templates/de/printer-added.tmpl -usr/share/cups/templates/de/printer-configured.tmpl -usr/share/cups/templates/de/printer-confirm.tmpl -usr/share/cups/templates/de/printer-default.tmpl -usr/share/cups/templates/de/printer-deleted.tmpl -usr/share/cups/templates/de/printer-jobs-header.tmpl -usr/share/cups/templates/de/printer-modified.tmpl -usr/share/cups/templates/de/printer-purge.tmpl -usr/share/cups/templates/de/printer-reject.tmpl -usr/share/cups/templates/de/printer-start.tmpl -usr/share/cups/templates/de/printer-stop.tmpl -usr/share/cups/templates/de/printer.tmpl -usr/share/cups/templates/de/printers-header.tmpl -usr/share/cups/templates/de/printers.tmpl -usr/share/cups/templates/de/restart.tmpl -usr/share/cups/templates/de/samba-export.tmpl -usr/share/cups/templates/de/samba-exported.tmpl -usr/share/cups/templates/de/search.tmpl -usr/share/cups/templates/de/set-printer-options-header.tmpl -usr/share/cups/templates/de/set-printer-options-trailer.tmpl -usr/share/cups/templates/de/subscription-added.tmpl -usr/share/cups/templates/de/subscription-canceled.tmpl -usr/share/cups/templates/de/test-page.tmpl -usr/share/cups/templates/de/trailer.tmpl -usr/share/cups/templates/de/users.tmpl +usr/share/cups/templates/cs +usr/share/cups/templates/cs/add-class.tmpl +usr/share/cups/templates/cs/add-printer.tmpl +usr/share/cups/templates/cs/add-rss-subscription.tmpl +usr/share/cups/templates/cs/admin.tmpl +usr/share/cups/templates/cs/choose-device.tmpl +usr/share/cups/templates/cs/choose-make.tmpl +usr/share/cups/templates/cs/choose-model.tmpl +usr/share/cups/templates/cs/choose-serial.tmpl +usr/share/cups/templates/cs/choose-uri.tmpl +usr/share/cups/templates/cs/class-added.tmpl +usr/share/cups/templates/cs/class-confirm.tmpl +usr/share/cups/templates/cs/class-deleted.tmpl +usr/share/cups/templates/cs/class-jobs-header.tmpl +usr/share/cups/templates/cs/class-modified.tmpl +usr/share/cups/templates/cs/class.tmpl +usr/share/cups/templates/cs/classes-header.tmpl +usr/share/cups/templates/cs/classes.tmpl +usr/share/cups/templates/cs/command.tmpl +usr/share/cups/templates/cs/edit-config.tmpl +usr/share/cups/templates/cs/error-op.tmpl +usr/share/cups/templates/cs/error.tmpl +usr/share/cups/templates/cs/header.tmpl +usr/share/cups/templates/cs/help-header.tmpl +usr/share/cups/templates/cs/help-printable.tmpl +usr/share/cups/templates/cs/help-trailer.tmpl +usr/share/cups/templates/cs/job-cancel.tmpl +usr/share/cups/templates/cs/job-hold.tmpl +usr/share/cups/templates/cs/job-move.tmpl +usr/share/cups/templates/cs/job-moved.tmpl +usr/share/cups/templates/cs/job-release.tmpl +usr/share/cups/templates/cs/job-restart.tmpl +usr/share/cups/templates/cs/jobs-header.tmpl +usr/share/cups/templates/cs/jobs.tmpl +usr/share/cups/templates/cs/list-available-printers.tmpl +usr/share/cups/templates/cs/modify-class.tmpl +usr/share/cups/templates/cs/modify-printer.tmpl +usr/share/cups/templates/cs/norestart.tmpl +usr/share/cups/templates/cs/option-boolean.tmpl +usr/share/cups/templates/cs/option-conflict.tmpl +usr/share/cups/templates/cs/option-header.tmpl +usr/share/cups/templates/cs/option-pickmany.tmpl +usr/share/cups/templates/cs/option-pickone.tmpl +usr/share/cups/templates/cs/option-trailer.tmpl +usr/share/cups/templates/cs/pager.tmpl +usr/share/cups/templates/cs/printer-accept.tmpl +usr/share/cups/templates/cs/printer-added.tmpl +usr/share/cups/templates/cs/printer-configured.tmpl +usr/share/cups/templates/cs/printer-confirm.tmpl +usr/share/cups/templates/cs/printer-default.tmpl +usr/share/cups/templates/cs/printer-deleted.tmpl +usr/share/cups/templates/cs/printer-jobs-header.tmpl +usr/share/cups/templates/cs/printer-modified.tmpl +usr/share/cups/templates/cs/printer-purge.tmpl +usr/share/cups/templates/cs/printer-reject.tmpl +usr/share/cups/templates/cs/printer-start.tmpl +usr/share/cups/templates/cs/printer-stop.tmpl +usr/share/cups/templates/cs/printer.tmpl +usr/share/cups/templates/cs/printers-header.tmpl +usr/share/cups/templates/cs/printers.tmpl +usr/share/cups/templates/cs/restart.tmpl +usr/share/cups/templates/cs/samba-export.tmpl +usr/share/cups/templates/cs/samba-exported.tmpl +usr/share/cups/templates/cs/search.tmpl +usr/share/cups/templates/cs/set-printer-options-header.tmpl +usr/share/cups/templates/cs/set-printer-options-trailer.tmpl +usr/share/cups/templates/cs/subscription-added.tmpl +usr/share/cups/templates/cs/subscription-canceled.tmpl +usr/share/cups/templates/cs/test-page.tmpl +usr/share/cups/templates/cs/trailer.tmpl +usr/share/cups/templates/cs/users.tmpl usr/share/cups/templates/edit-config.tmpl usr/share/cups/templates/error-op.tmpl usr/share/cups/templates/error.tmpl -#usr/share/cups/templates/es -#usr/share/cups/templates/es/add-class.tmpl -#usr/share/cups/templates/es/add-printer.tmpl -#usr/share/cups/templates/es/add-rss-subscription.tmpl -#usr/share/cups/templates/es/admin.tmpl -#usr/share/cups/templates/es/choose-device.tmpl -#usr/share/cups/templates/es/choose-make.tmpl -#usr/share/cups/templates/es/choose-model.tmpl -#usr/share/cups/templates/es/choose-serial.tmpl -#usr/share/cups/templates/es/choose-uri.tmpl -#usr/share/cups/templates/es/class-added.tmpl -#usr/share/cups/templates/es/class-confirm.tmpl -#usr/share/cups/templates/es/class-deleted.tmpl -#usr/share/cups/templates/es/class-jobs-header.tmpl -#usr/share/cups/templates/es/class-modified.tmpl -#usr/share/cups/templates/es/class.tmpl -#usr/share/cups/templates/es/classes-header.tmpl -#usr/share/cups/templates/es/classes.tmpl -#usr/share/cups/templates/es/command.tmpl -#usr/share/cups/templates/es/edit-config.tmpl -#usr/share/cups/templates/es/error-op.tmpl -#usr/share/cups/templates/es/error.tmpl -#usr/share/cups/templates/es/header.tmpl -#usr/share/cups/templates/es/help-header.tmpl -#usr/share/cups/templates/es/help-printable.tmpl -#usr/share/cups/templates/es/help-trailer.tmpl -#usr/share/cups/templates/es/job-cancel.tmpl -#usr/share/cups/templates/es/job-hold.tmpl -#usr/share/cups/templates/es/job-move.tmpl -#usr/share/cups/templates/es/job-moved.tmpl -#usr/share/cups/templates/es/job-release.tmpl -#usr/share/cups/templates/es/job-restart.tmpl -#usr/share/cups/templates/es/jobs-header.tmpl -#usr/share/cups/templates/es/jobs.tmpl -#usr/share/cups/templates/es/list-available-printers.tmpl -#usr/share/cups/templates/es/modify-class.tmpl -#usr/share/cups/templates/es/modify-printer.tmpl -#usr/share/cups/templates/es/norestart.tmpl -#usr/share/cups/templates/es/option-boolean.tmpl -#usr/share/cups/templates/es/option-conflict.tmpl -#usr/share/cups/templates/es/option-header.tmpl -#usr/share/cups/templates/es/option-pickmany.tmpl -#usr/share/cups/templates/es/option-pickone.tmpl -#usr/share/cups/templates/es/option-trailer.tmpl -#usr/share/cups/templates/es/pager.tmpl -#usr/share/cups/templates/es/printer-accept.tmpl -#usr/share/cups/templates/es/printer-added.tmpl -#usr/share/cups/templates/es/printer-configured.tmpl -#usr/share/cups/templates/es/printer-confirm.tmpl -#usr/share/cups/templates/es/printer-default.tmpl -#usr/share/cups/templates/es/printer-deleted.tmpl -#usr/share/cups/templates/es/printer-jobs-header.tmpl -#usr/share/cups/templates/es/printer-modified.tmpl -#usr/share/cups/templates/es/printer-purge.tmpl -#usr/share/cups/templates/es/printer-reject.tmpl -#usr/share/cups/templates/es/printer-start.tmpl -#usr/share/cups/templates/es/printer-stop.tmpl -#usr/share/cups/templates/es/printer.tmpl -#usr/share/cups/templates/es/printers-header.tmpl -#usr/share/cups/templates/es/printers.tmpl -#usr/share/cups/templates/es/restart.tmpl -#usr/share/cups/templates/es/samba-export.tmpl -#usr/share/cups/templates/es/samba-exported.tmpl -#usr/share/cups/templates/es/search.tmpl -#usr/share/cups/templates/es/set-printer-options-header.tmpl -#usr/share/cups/templates/es/set-printer-options-trailer.tmpl -#usr/share/cups/templates/es/subscription-added.tmpl -#usr/share/cups/templates/es/subscription-canceled.tmpl -#usr/share/cups/templates/es/test-page.tmpl -#usr/share/cups/templates/es/trailer.tmpl -#usr/share/cups/templates/es/users.tmpl -#usr/share/cups/templates/eu -#usr/share/cups/templates/eu/add-class.tmpl -#usr/share/cups/templates/eu/add-printer.tmpl -#usr/share/cups/templates/eu/add-rss-subscription.tmpl -#usr/share/cups/templates/eu/admin.tmpl -#usr/share/cups/templates/eu/choose-device.tmpl -#usr/share/cups/templates/eu/choose-make.tmpl -#usr/share/cups/templates/eu/choose-model.tmpl -#usr/share/cups/templates/eu/choose-serial.tmpl -#usr/share/cups/templates/eu/choose-uri.tmpl -#usr/share/cups/templates/eu/class-added.tmpl -#usr/share/cups/templates/eu/class-confirm.tmpl -#usr/share/cups/templates/eu/class-deleted.tmpl -#usr/share/cups/templates/eu/class-jobs-header.tmpl -#usr/share/cups/templates/eu/class-modified.tmpl -#usr/share/cups/templates/eu/class.tmpl -#usr/share/cups/templates/eu/classes-header.tmpl -#usr/share/cups/templates/eu/classes.tmpl -#usr/share/cups/templates/eu/command.tmpl -#usr/share/cups/templates/eu/edit-config.tmpl -#usr/share/cups/templates/eu/error-op.tmpl -#usr/share/cups/templates/eu/error.tmpl -#usr/share/cups/templates/eu/header.tmpl -#usr/share/cups/templates/eu/help-header.tmpl -#usr/share/cups/templates/eu/help-printable.tmpl -#usr/share/cups/templates/eu/help-trailer.tmpl -#usr/share/cups/templates/eu/job-cancel.tmpl -#usr/share/cups/templates/eu/job-hold.tmpl -#usr/share/cups/templates/eu/job-move.tmpl -#usr/share/cups/templates/eu/job-moved.tmpl -#usr/share/cups/templates/eu/job-release.tmpl -#usr/share/cups/templates/eu/job-restart.tmpl -#usr/share/cups/templates/eu/jobs-header.tmpl -#usr/share/cups/templates/eu/jobs.tmpl -#usr/share/cups/templates/eu/list-available-printers.tmpl -#usr/share/cups/templates/eu/modify-class.tmpl -#usr/share/cups/templates/eu/modify-printer.tmpl -#usr/share/cups/templates/eu/norestart.tmpl -#usr/share/cups/templates/eu/option-boolean.tmpl -#usr/share/cups/templates/eu/option-conflict.tmpl -#usr/share/cups/templates/eu/option-header.tmpl -#usr/share/cups/templates/eu/option-pickmany.tmpl -#usr/share/cups/templates/eu/option-pickone.tmpl -#usr/share/cups/templates/eu/option-trailer.tmpl -#usr/share/cups/templates/eu/pager.tmpl -#usr/share/cups/templates/eu/printer-accept.tmpl -#usr/share/cups/templates/eu/printer-added.tmpl -#usr/share/cups/templates/eu/printer-configured.tmpl -#usr/share/cups/templates/eu/printer-confirm.tmpl -#usr/share/cups/templates/eu/printer-default.tmpl -#usr/share/cups/templates/eu/printer-deleted.tmpl -#usr/share/cups/templates/eu/printer-jobs-header.tmpl -#usr/share/cups/templates/eu/printer-modified.tmpl -#usr/share/cups/templates/eu/printer-purge.tmpl -#usr/share/cups/templates/eu/printer-reject.tmpl -#usr/share/cups/templates/eu/printer-start.tmpl -#usr/share/cups/templates/eu/printer-stop.tmpl -#usr/share/cups/templates/eu/printer.tmpl -#usr/share/cups/templates/eu/printers-header.tmpl -#usr/share/cups/templates/eu/printers.tmpl -#usr/share/cups/templates/eu/restart.tmpl -#usr/share/cups/templates/eu/samba-export.tmpl -#usr/share/cups/templates/eu/samba-exported.tmpl -#usr/share/cups/templates/eu/search.tmpl -#usr/share/cups/templates/eu/set-printer-options-header.tmpl -#usr/share/cups/templates/eu/set-printer-options-trailer.tmpl -#usr/share/cups/templates/eu/subscription-added.tmpl -#usr/share/cups/templates/eu/subscription-canceled.tmpl -#usr/share/cups/templates/eu/test-page.tmpl -#usr/share/cups/templates/eu/trailer.tmpl -#usr/share/cups/templates/eu/users.tmpl +usr/share/cups/templates/es +usr/share/cups/templates/es/add-class.tmpl +usr/share/cups/templates/es/add-printer.tmpl +usr/share/cups/templates/es/add-rss-subscription.tmpl +usr/share/cups/templates/es/admin.tmpl +usr/share/cups/templates/es/choose-device.tmpl +usr/share/cups/templates/es/choose-make.tmpl +usr/share/cups/templates/es/choose-model.tmpl +usr/share/cups/templates/es/choose-serial.tmpl +usr/share/cups/templates/es/choose-uri.tmpl +usr/share/cups/templates/es/class-added.tmpl +usr/share/cups/templates/es/class-confirm.tmpl +usr/share/cups/templates/es/class-deleted.tmpl +usr/share/cups/templates/es/class-jobs-header.tmpl +usr/share/cups/templates/es/class-modified.tmpl +usr/share/cups/templates/es/class.tmpl +usr/share/cups/templates/es/classes-header.tmpl +usr/share/cups/templates/es/classes.tmpl +usr/share/cups/templates/es/command.tmpl +usr/share/cups/templates/es/edit-config.tmpl +usr/share/cups/templates/es/error-op.tmpl +usr/share/cups/templates/es/error.tmpl +usr/share/cups/templates/es/header.tmpl +usr/share/cups/templates/es/help-header.tmpl +usr/share/cups/templates/es/help-printable.tmpl +usr/share/cups/templates/es/help-trailer.tmpl +usr/share/cups/templates/es/job-cancel.tmpl +usr/share/cups/templates/es/job-hold.tmpl +usr/share/cups/templates/es/job-move.tmpl +usr/share/cups/templates/es/job-moved.tmpl +usr/share/cups/templates/es/job-release.tmpl +usr/share/cups/templates/es/job-restart.tmpl +usr/share/cups/templates/es/jobs-header.tmpl +usr/share/cups/templates/es/jobs.tmpl +usr/share/cups/templates/es/list-available-printers.tmpl +usr/share/cups/templates/es/modify-class.tmpl +usr/share/cups/templates/es/modify-printer.tmpl +usr/share/cups/templates/es/norestart.tmpl +usr/share/cups/templates/es/option-boolean.tmpl +usr/share/cups/templates/es/option-conflict.tmpl +usr/share/cups/templates/es/option-header.tmpl +usr/share/cups/templates/es/option-pickmany.tmpl +usr/share/cups/templates/es/option-pickone.tmpl +usr/share/cups/templates/es/option-trailer.tmpl +usr/share/cups/templates/es/pager.tmpl +usr/share/cups/templates/es/printer-accept.tmpl +usr/share/cups/templates/es/printer-added.tmpl +usr/share/cups/templates/es/printer-configured.tmpl +usr/share/cups/templates/es/printer-confirm.tmpl +usr/share/cups/templates/es/printer-default.tmpl +usr/share/cups/templates/es/printer-deleted.tmpl +usr/share/cups/templates/es/printer-jobs-header.tmpl +usr/share/cups/templates/es/printer-modified.tmpl +usr/share/cups/templates/es/printer-purge.tmpl +usr/share/cups/templates/es/printer-reject.tmpl +usr/share/cups/templates/es/printer-start.tmpl +usr/share/cups/templates/es/printer-stop.tmpl +usr/share/cups/templates/es/printer.tmpl +usr/share/cups/templates/es/printers-header.tmpl +usr/share/cups/templates/es/printers.tmpl +usr/share/cups/templates/es/restart.tmpl +usr/share/cups/templates/es/samba-export.tmpl +usr/share/cups/templates/es/samba-exported.tmpl +usr/share/cups/templates/es/search.tmpl +usr/share/cups/templates/es/set-printer-options-header.tmpl +usr/share/cups/templates/es/set-printer-options-trailer.tmpl +usr/share/cups/templates/es/subscription-added.tmpl +usr/share/cups/templates/es/subscription-canceled.tmpl +usr/share/cups/templates/es/test-page.tmpl +usr/share/cups/templates/es/trailer.tmpl +usr/share/cups/templates/es/users.tmpl +usr/share/cups/templates/fr +usr/share/cups/templates/fr/add-class.tmpl +usr/share/cups/templates/fr/add-printer.tmpl +usr/share/cups/templates/fr/add-rss-subscription.tmpl +usr/share/cups/templates/fr/admin.tmpl +usr/share/cups/templates/fr/choose-device.tmpl +usr/share/cups/templates/fr/choose-make.tmpl +usr/share/cups/templates/fr/choose-model.tmpl +usr/share/cups/templates/fr/choose-serial.tmpl +usr/share/cups/templates/fr/choose-uri.tmpl +usr/share/cups/templates/fr/class-added.tmpl +usr/share/cups/templates/fr/class-confirm.tmpl +usr/share/cups/templates/fr/class-deleted.tmpl +usr/share/cups/templates/fr/class-jobs-header.tmpl +usr/share/cups/templates/fr/class-modified.tmpl +usr/share/cups/templates/fr/class.tmpl +usr/share/cups/templates/fr/classes-header.tmpl +usr/share/cups/templates/fr/classes.tmpl +usr/share/cups/templates/fr/command.tmpl +usr/share/cups/templates/fr/edit-config.tmpl +usr/share/cups/templates/fr/error-op.tmpl +usr/share/cups/templates/fr/error.tmpl +usr/share/cups/templates/fr/header.tmpl +usr/share/cups/templates/fr/help-header.tmpl +usr/share/cups/templates/fr/help-printable.tmpl +usr/share/cups/templates/fr/help-trailer.tmpl +usr/share/cups/templates/fr/job-cancel.tmpl +usr/share/cups/templates/fr/job-hold.tmpl +usr/share/cups/templates/fr/job-move.tmpl +usr/share/cups/templates/fr/job-moved.tmpl +usr/share/cups/templates/fr/job-release.tmpl +usr/share/cups/templates/fr/job-restart.tmpl +usr/share/cups/templates/fr/jobs-header.tmpl +usr/share/cups/templates/fr/jobs.tmpl +usr/share/cups/templates/fr/list-available-printers.tmpl +usr/share/cups/templates/fr/modify-class.tmpl +usr/share/cups/templates/fr/modify-printer.tmpl +usr/share/cups/templates/fr/norestart.tmpl +usr/share/cups/templates/fr/option-boolean.tmpl +usr/share/cups/templates/fr/option-conflict.tmpl +usr/share/cups/templates/fr/option-header.tmpl +usr/share/cups/templates/fr/option-pickmany.tmpl +usr/share/cups/templates/fr/option-pickone.tmpl +usr/share/cups/templates/fr/option-trailer.tmpl +usr/share/cups/templates/fr/pager.tmpl +usr/share/cups/templates/fr/printer-accept.tmpl +usr/share/cups/templates/fr/printer-added.tmpl +usr/share/cups/templates/fr/printer-configured.tmpl +usr/share/cups/templates/fr/printer-confirm.tmpl +usr/share/cups/templates/fr/printer-default.tmpl +usr/share/cups/templates/fr/printer-deleted.tmpl +usr/share/cups/templates/fr/printer-jobs-header.tmpl +usr/share/cups/templates/fr/printer-modified.tmpl +usr/share/cups/templates/fr/printer-purge.tmpl +usr/share/cups/templates/fr/printer-reject.tmpl +usr/share/cups/templates/fr/printer-start.tmpl +usr/share/cups/templates/fr/printer-stop.tmpl +usr/share/cups/templates/fr/printer.tmpl +usr/share/cups/templates/fr/printers-header.tmpl +usr/share/cups/templates/fr/printers.tmpl +usr/share/cups/templates/fr/restart.tmpl +usr/share/cups/templates/fr/samba-export.tmpl +usr/share/cups/templates/fr/samba-exported.tmpl +usr/share/cups/templates/fr/search.tmpl +usr/share/cups/templates/fr/set-printer-options-header.tmpl +usr/share/cups/templates/fr/set-printer-options-trailer.tmpl +usr/share/cups/templates/fr/subscription-added.tmpl +usr/share/cups/templates/fr/subscription-canceled.tmpl +usr/share/cups/templates/fr/test-page.tmpl +usr/share/cups/templates/fr/trailer.tmpl +usr/share/cups/templates/fr/users.tmpl usr/share/cups/templates/header.tmpl usr/share/cups/templates/help-header.tmpl usr/share/cups/templates/help-printable.tmpl usr/share/cups/templates/help-trailer.tmpl -#usr/share/cups/templates/id -#usr/share/cups/templates/id/add-class.tmpl -#usr/share/cups/templates/id/add-printer.tmpl -#usr/share/cups/templates/id/add-rss-subscription.tmpl -#usr/share/cups/templates/id/admin.tmpl -#usr/share/cups/templates/id/choose-device.tmpl -#usr/share/cups/templates/id/choose-make.tmpl -#usr/share/cups/templates/id/choose-model.tmpl -#usr/share/cups/templates/id/choose-serial.tmpl -#usr/share/cups/templates/id/choose-uri.tmpl -#usr/share/cups/templates/id/class-added.tmpl -#usr/share/cups/templates/id/class-confirm.tmpl -#usr/share/cups/templates/id/class-deleted.tmpl -#usr/share/cups/templates/id/class-jobs-header.tmpl -#usr/share/cups/templates/id/class-modified.tmpl -#usr/share/cups/templates/id/class.tmpl -#usr/share/cups/templates/id/classes-header.tmpl -#usr/share/cups/templates/id/classes.tmpl -#usr/share/cups/templates/id/command.tmpl -#usr/share/cups/templates/id/edit-config.tmpl -#usr/share/cups/templates/id/error-op.tmpl -#usr/share/cups/templates/id/error.tmpl -#usr/share/cups/templates/id/header.tmpl -#usr/share/cups/templates/id/help-header.tmpl -#usr/share/cups/templates/id/help-printable.tmpl -#usr/share/cups/templates/id/help-trailer.tmpl -#usr/share/cups/templates/id/job-cancel.tmpl -#usr/share/cups/templates/id/job-hold.tmpl -#usr/share/cups/templates/id/job-move.tmpl -#usr/share/cups/templates/id/job-moved.tmpl -#usr/share/cups/templates/id/job-release.tmpl -#usr/share/cups/templates/id/job-restart.tmpl -#usr/share/cups/templates/id/jobs-header.tmpl -#usr/share/cups/templates/id/jobs.tmpl -#usr/share/cups/templates/id/list-available-printers.tmpl -#usr/share/cups/templates/id/modify-class.tmpl -#usr/share/cups/templates/id/modify-printer.tmpl -#usr/share/cups/templates/id/norestart.tmpl -#usr/share/cups/templates/id/option-boolean.tmpl -#usr/share/cups/templates/id/option-conflict.tmpl -#usr/share/cups/templates/id/option-header.tmpl -#usr/share/cups/templates/id/option-pickmany.tmpl -#usr/share/cups/templates/id/option-pickone.tmpl -#usr/share/cups/templates/id/option-trailer.tmpl -#usr/share/cups/templates/id/pager.tmpl -#usr/share/cups/templates/id/printer-accept.tmpl -#usr/share/cups/templates/id/printer-added.tmpl -#usr/share/cups/templates/id/printer-configured.tmpl -#usr/share/cups/templates/id/printer-confirm.tmpl -#usr/share/cups/templates/id/printer-default.tmpl -#usr/share/cups/templates/id/printer-deleted.tmpl -#usr/share/cups/templates/id/printer-jobs-header.tmpl -#usr/share/cups/templates/id/printer-modified.tmpl -#usr/share/cups/templates/id/printer-purge.tmpl -#usr/share/cups/templates/id/printer-reject.tmpl -#usr/share/cups/templates/id/printer-start.tmpl -#usr/share/cups/templates/id/printer-stop.tmpl -#usr/share/cups/templates/id/printer.tmpl -#usr/share/cups/templates/id/printers-header.tmpl -#usr/share/cups/templates/id/printers.tmpl -#usr/share/cups/templates/id/restart.tmpl -#usr/share/cups/templates/id/samba-export.tmpl -#usr/share/cups/templates/id/samba-exported.tmpl -#usr/share/cups/templates/id/search.tmpl -#usr/share/cups/templates/id/set-printer-options-header.tmpl -#usr/share/cups/templates/id/set-printer-options-trailer.tmpl -#usr/share/cups/templates/id/subscription-added.tmpl -#usr/share/cups/templates/id/subscription-canceled.tmpl -#usr/share/cups/templates/id/test-page.tmpl -#usr/share/cups/templates/id/trailer.tmpl -#usr/share/cups/templates/id/users.tmpl -#usr/share/cups/templates/it -#usr/share/cups/templates/it/add-class.tmpl -#usr/share/cups/templates/it/add-printer.tmpl -#usr/share/cups/templates/it/add-rss-subscription.tmpl -#usr/share/cups/templates/it/admin.tmpl -#usr/share/cups/templates/it/choose-device.tmpl -#usr/share/cups/templates/it/choose-make.tmpl -#usr/share/cups/templates/it/choose-model.tmpl -#usr/share/cups/templates/it/choose-serial.tmpl -#usr/share/cups/templates/it/choose-uri.tmpl -#usr/share/cups/templates/it/class-added.tmpl -#usr/share/cups/templates/it/class-confirm.tmpl -#usr/share/cups/templates/it/class-deleted.tmpl -#usr/share/cups/templates/it/class-jobs-header.tmpl -#usr/share/cups/templates/it/class-modified.tmpl -#usr/share/cups/templates/it/class.tmpl -#usr/share/cups/templates/it/classes-header.tmpl -#usr/share/cups/templates/it/classes.tmpl -#usr/share/cups/templates/it/command.tmpl -#usr/share/cups/templates/it/edit-config.tmpl -#usr/share/cups/templates/it/error-op.tmpl -#usr/share/cups/templates/it/error.tmpl -#usr/share/cups/templates/it/help-header.tmpl -#usr/share/cups/templates/it/help-printable.tmpl -#usr/share/cups/templates/it/help-trailer.tmpl -#usr/share/cups/templates/it/job-cancel.tmpl -#usr/share/cups/templates/it/job-hold.tmpl -#usr/share/cups/templates/it/job-move.tmpl -#usr/share/cups/templates/it/job-moved.tmpl -#usr/share/cups/templates/it/job-release.tmpl -#usr/share/cups/templates/it/job-restart.tmpl -#usr/share/cups/templates/it/jobs-header.tmpl -#usr/share/cups/templates/it/jobs.tmpl -#usr/share/cups/templates/it/list-available-printers.tmpl -#usr/share/cups/templates/it/modify-class.tmpl -#usr/share/cups/templates/it/modify-printer.tmpl -#usr/share/cups/templates/it/norestart.tmpl -#usr/share/cups/templates/it/option-boolean.tmpl -#usr/share/cups/templates/it/option-conflict.tmpl -#usr/share/cups/templates/it/option-header.tmpl -#usr/share/cups/templates/it/option-pickmany.tmpl -#usr/share/cups/templates/it/option-pickone.tmpl -#usr/share/cups/templates/it/option-trailer.tmpl -#usr/share/cups/templates/it/pager.tmpl -#usr/share/cups/templates/it/printer-accept.tmpl -#usr/share/cups/templates/it/printer-added.tmpl -#usr/share/cups/templates/it/printer-configured.tmpl -#usr/share/cups/templates/it/printer-confirm.tmpl -#usr/share/cups/templates/it/printer-default.tmpl -#usr/share/cups/templates/it/printer-deleted.tmpl -#usr/share/cups/templates/it/printer-jobs-header.tmpl -#usr/share/cups/templates/it/printer-modified.tmpl -#usr/share/cups/templates/it/printer-purge.tmpl -#usr/share/cups/templates/it/printer-reject.tmpl -#usr/share/cups/templates/it/printer-start.tmpl -#usr/share/cups/templates/it/printer-stop.tmpl -#usr/share/cups/templates/it/printer.tmpl -#usr/share/cups/templates/it/printers-header.tmpl -#usr/share/cups/templates/it/printers.tmpl -#usr/share/cups/templates/it/restart.tmpl -#usr/share/cups/templates/it/samba-export.tmpl -#usr/share/cups/templates/it/samba-exported.tmpl -#usr/share/cups/templates/it/search.tmpl -#usr/share/cups/templates/it/set-printer-options-header.tmpl -#usr/share/cups/templates/it/set-printer-options-trailer.tmpl -#usr/share/cups/templates/it/subscription-added.tmpl -#usr/share/cups/templates/it/subscription-canceled.tmpl -#usr/share/cups/templates/it/test-page.tmpl -#usr/share/cups/templates/it/trailer.tmpl -#usr/share/cups/templates/it/users.tmpl -#usr/share/cups/templates/ja -#usr/share/cups/templates/ja/add-class.tmpl -#usr/share/cups/templates/ja/add-printer.tmpl -#usr/share/cups/templates/ja/add-rss-subscription.tmpl -#usr/share/cups/templates/ja/admin.tmpl -#usr/share/cups/templates/ja/choose-device.tmpl -#usr/share/cups/templates/ja/choose-make.tmpl -#usr/share/cups/templates/ja/choose-model.tmpl -#usr/share/cups/templates/ja/choose-serial.tmpl -#usr/share/cups/templates/ja/choose-uri.tmpl -#usr/share/cups/templates/ja/class-added.tmpl -#usr/share/cups/templates/ja/class-confirm.tmpl -#usr/share/cups/templates/ja/class-deleted.tmpl -#usr/share/cups/templates/ja/class-jobs-header.tmpl -#usr/share/cups/templates/ja/class-modified.tmpl -#usr/share/cups/templates/ja/class.tmpl -#usr/share/cups/templates/ja/classes-header.tmpl -#usr/share/cups/templates/ja/classes.tmpl -#usr/share/cups/templates/ja/command.tmpl -#usr/share/cups/templates/ja/edit-config.tmpl -#usr/share/cups/templates/ja/error-op.tmpl -#usr/share/cups/templates/ja/error.tmpl -#usr/share/cups/templates/ja/header.tmpl -#usr/share/cups/templates/ja/help-header.tmpl -#usr/share/cups/templates/ja/help-printable.tmpl -#usr/share/cups/templates/ja/help-trailer.tmpl -#usr/share/cups/templates/ja/job-cancel.tmpl -#usr/share/cups/templates/ja/job-hold.tmpl -#usr/share/cups/templates/ja/job-move.tmpl -#usr/share/cups/templates/ja/job-moved.tmpl -#usr/share/cups/templates/ja/job-release.tmpl -#usr/share/cups/templates/ja/job-restart.tmpl -#usr/share/cups/templates/ja/jobs-header.tmpl -#usr/share/cups/templates/ja/jobs.tmpl -#usr/share/cups/templates/ja/list-available-printers.tmpl -#usr/share/cups/templates/ja/modify-class.tmpl -#usr/share/cups/templates/ja/modify-printer.tmpl -#usr/share/cups/templates/ja/norestart.tmpl -#usr/share/cups/templates/ja/option-boolean.tmpl -#usr/share/cups/templates/ja/option-conflict.tmpl -#usr/share/cups/templates/ja/option-header.tmpl -#usr/share/cups/templates/ja/option-pickmany.tmpl -#usr/share/cups/templates/ja/option-pickone.tmpl -#usr/share/cups/templates/ja/option-trailer.tmpl -#usr/share/cups/templates/ja/pager.tmpl -#usr/share/cups/templates/ja/printer-accept.tmpl -#usr/share/cups/templates/ja/printer-added.tmpl -#usr/share/cups/templates/ja/printer-configured.tmpl -#usr/share/cups/templates/ja/printer-confirm.tmpl -#usr/share/cups/templates/ja/printer-default.tmpl -#usr/share/cups/templates/ja/printer-deleted.tmpl -#usr/share/cups/templates/ja/printer-jobs-header.tmpl -#usr/share/cups/templates/ja/printer-modified.tmpl -#usr/share/cups/templates/ja/printer-purge.tmpl -#usr/share/cups/templates/ja/printer-reject.tmpl -#usr/share/cups/templates/ja/printer-start.tmpl -#usr/share/cups/templates/ja/printer-stop.tmpl -#usr/share/cups/templates/ja/printer.tmpl -#usr/share/cups/templates/ja/printers-header.tmpl -#usr/share/cups/templates/ja/printers.tmpl -#usr/share/cups/templates/ja/restart.tmpl -#usr/share/cups/templates/ja/samba-export.tmpl -#usr/share/cups/templates/ja/samba-exported.tmpl -#usr/share/cups/templates/ja/search.tmpl -#usr/share/cups/templates/ja/set-printer-options-header.tmpl -#usr/share/cups/templates/ja/set-printer-options-trailer.tmpl -#usr/share/cups/templates/ja/subscription-added.tmpl -#usr/share/cups/templates/ja/subscription-canceled.tmpl -#usr/share/cups/templates/ja/test-page.tmpl -#usr/share/cups/templates/ja/trailer.tmpl -#usr/share/cups/templates/ja/users.tmpl +usr/share/cups/templates/it +usr/share/cups/templates/it/add-class.tmpl +usr/share/cups/templates/it/add-printer.tmpl +usr/share/cups/templates/it/add-rss-subscription.tmpl +usr/share/cups/templates/it/admin.tmpl +usr/share/cups/templates/it/choose-device.tmpl +usr/share/cups/templates/it/choose-make.tmpl +usr/share/cups/templates/it/choose-model.tmpl +usr/share/cups/templates/it/choose-serial.tmpl +usr/share/cups/templates/it/choose-uri.tmpl +usr/share/cups/templates/it/class-added.tmpl +usr/share/cups/templates/it/class-confirm.tmpl +usr/share/cups/templates/it/class-deleted.tmpl +usr/share/cups/templates/it/class-jobs-header.tmpl +usr/share/cups/templates/it/class-modified.tmpl +usr/share/cups/templates/it/class.tmpl +usr/share/cups/templates/it/classes-header.tmpl +usr/share/cups/templates/it/classes.tmpl +usr/share/cups/templates/it/command.tmpl +usr/share/cups/templates/it/edit-config.tmpl +usr/share/cups/templates/it/error-op.tmpl +usr/share/cups/templates/it/error.tmpl +usr/share/cups/templates/it/header.tmpl +usr/share/cups/templates/it/help-header.tmpl +usr/share/cups/templates/it/help-printable.tmpl +usr/share/cups/templates/it/help-trailer.tmpl +usr/share/cups/templates/it/job-cancel.tmpl +usr/share/cups/templates/it/job-hold.tmpl +usr/share/cups/templates/it/job-move.tmpl +usr/share/cups/templates/it/job-moved.tmpl +usr/share/cups/templates/it/job-release.tmpl +usr/share/cups/templates/it/job-restart.tmpl +usr/share/cups/templates/it/jobs-header.tmpl +usr/share/cups/templates/it/jobs.tmpl +usr/share/cups/templates/it/list-available-printers.tmpl +usr/share/cups/templates/it/modify-class.tmpl +usr/share/cups/templates/it/modify-printer.tmpl +usr/share/cups/templates/it/norestart.tmpl +usr/share/cups/templates/it/option-boolean.tmpl +usr/share/cups/templates/it/option-conflict.tmpl +usr/share/cups/templates/it/option-header.tmpl +usr/share/cups/templates/it/option-pickmany.tmpl +usr/share/cups/templates/it/option-pickone.tmpl +usr/share/cups/templates/it/option-trailer.tmpl +usr/share/cups/templates/it/pager.tmpl +usr/share/cups/templates/it/printer-accept.tmpl +usr/share/cups/templates/it/printer-added.tmpl +usr/share/cups/templates/it/printer-configured.tmpl +usr/share/cups/templates/it/printer-confirm.tmpl +usr/share/cups/templates/it/printer-default.tmpl +usr/share/cups/templates/it/printer-deleted.tmpl +usr/share/cups/templates/it/printer-jobs-header.tmpl +usr/share/cups/templates/it/printer-modified.tmpl +usr/share/cups/templates/it/printer-purge.tmpl +usr/share/cups/templates/it/printer-reject.tmpl +usr/share/cups/templates/it/printer-start.tmpl +usr/share/cups/templates/it/printer-stop.tmpl +usr/share/cups/templates/it/printer.tmpl +usr/share/cups/templates/it/printers-header.tmpl +usr/share/cups/templates/it/printers.tmpl +usr/share/cups/templates/it/restart.tmpl +usr/share/cups/templates/it/samba-export.tmpl +usr/share/cups/templates/it/samba-exported.tmpl +usr/share/cups/templates/it/search.tmpl +usr/share/cups/templates/it/set-printer-options-header.tmpl +usr/share/cups/templates/it/set-printer-options-trailer.tmpl +usr/share/cups/templates/it/subscription-added.tmpl +usr/share/cups/templates/it/subscription-canceled.tmpl +usr/share/cups/templates/it/test-page.tmpl +usr/share/cups/templates/it/trailer.tmpl +usr/share/cups/templates/it/users.tmpl +usr/share/cups/templates/ja +usr/share/cups/templates/ja/add-class.tmpl +usr/share/cups/templates/ja/add-printer.tmpl +usr/share/cups/templates/ja/add-rss-subscription.tmpl +usr/share/cups/templates/ja/admin.tmpl +usr/share/cups/templates/ja/choose-device.tmpl +usr/share/cups/templates/ja/choose-make.tmpl +usr/share/cups/templates/ja/choose-model.tmpl +usr/share/cups/templates/ja/choose-serial.tmpl +usr/share/cups/templates/ja/choose-uri.tmpl +usr/share/cups/templates/ja/class-added.tmpl +usr/share/cups/templates/ja/class-confirm.tmpl +usr/share/cups/templates/ja/class-deleted.tmpl +usr/share/cups/templates/ja/class-jobs-header.tmpl +usr/share/cups/templates/ja/class-modified.tmpl +usr/share/cups/templates/ja/class.tmpl +usr/share/cups/templates/ja/classes-header.tmpl +usr/share/cups/templates/ja/classes.tmpl +usr/share/cups/templates/ja/command.tmpl +usr/share/cups/templates/ja/edit-config.tmpl +usr/share/cups/templates/ja/error-op.tmpl +usr/share/cups/templates/ja/error.tmpl +usr/share/cups/templates/ja/header.tmpl +usr/share/cups/templates/ja/help-header.tmpl +usr/share/cups/templates/ja/help-printable.tmpl +usr/share/cups/templates/ja/help-trailer.tmpl +usr/share/cups/templates/ja/job-cancel.tmpl +usr/share/cups/templates/ja/job-hold.tmpl +usr/share/cups/templates/ja/job-move.tmpl +usr/share/cups/templates/ja/job-moved.tmpl +usr/share/cups/templates/ja/job-release.tmpl +usr/share/cups/templates/ja/job-restart.tmpl +usr/share/cups/templates/ja/jobs-header.tmpl +usr/share/cups/templates/ja/jobs.tmpl +usr/share/cups/templates/ja/list-available-printers.tmpl +usr/share/cups/templates/ja/modify-class.tmpl +usr/share/cups/templates/ja/modify-printer.tmpl +usr/share/cups/templates/ja/norestart.tmpl +usr/share/cups/templates/ja/option-boolean.tmpl +usr/share/cups/templates/ja/option-conflict.tmpl +usr/share/cups/templates/ja/option-header.tmpl +usr/share/cups/templates/ja/option-pickmany.tmpl +usr/share/cups/templates/ja/option-pickone.tmpl +usr/share/cups/templates/ja/option-trailer.tmpl +usr/share/cups/templates/ja/pager.tmpl +usr/share/cups/templates/ja/printer-accept.tmpl +usr/share/cups/templates/ja/printer-added.tmpl +usr/share/cups/templates/ja/printer-configured.tmpl +usr/share/cups/templates/ja/printer-confirm.tmpl +usr/share/cups/templates/ja/printer-default.tmpl +usr/share/cups/templates/ja/printer-deleted.tmpl +usr/share/cups/templates/ja/printer-jobs-header.tmpl +usr/share/cups/templates/ja/printer-modified.tmpl +usr/share/cups/templates/ja/printer-purge.tmpl +usr/share/cups/templates/ja/printer-reject.tmpl +usr/share/cups/templates/ja/printer-start.tmpl +usr/share/cups/templates/ja/printer-stop.tmpl +usr/share/cups/templates/ja/printer.tmpl +usr/share/cups/templates/ja/printers-header.tmpl +usr/share/cups/templates/ja/printers.tmpl +usr/share/cups/templates/ja/restart.tmpl +usr/share/cups/templates/ja/samba-export.tmpl +usr/share/cups/templates/ja/samba-exported.tmpl +usr/share/cups/templates/ja/search.tmpl +usr/share/cups/templates/ja/set-printer-options-header.tmpl +usr/share/cups/templates/ja/set-printer-options-trailer.tmpl +usr/share/cups/templates/ja/subscription-added.tmpl +usr/share/cups/templates/ja/subscription-canceled.tmpl +usr/share/cups/templates/ja/test-page.tmpl +usr/share/cups/templates/ja/trailer.tmpl +usr/share/cups/templates/ja/users.tmpl usr/share/cups/templates/job-cancel.tmpl usr/share/cups/templates/job-hold.tmpl usr/share/cups/templates/job-move.tmpl @@ -666,10 +638,10 @@ usr/share/cups/templates/job-release.tmpl usr/share/cups/templates/job-restart.tmpl usr/share/cups/templates/jobs-header.tmpl usr/share/cups/templates/jobs.tmpl -#usr/share/cups/templates/list-available-printers.tmpl +usr/share/cups/templates/list-available-printers.tmpl usr/share/cups/templates/modify-class.tmpl usr/share/cups/templates/modify-printer.tmpl -#usr/share/cups/templates/norestart.tmpl +usr/share/cups/templates/norestart.tmpl usr/share/cups/templates/option-boolean.tmpl usr/share/cups/templates/option-conflict.tmpl usr/share/cups/templates/option-header.tmpl @@ -677,77 +649,6 @@ usr/share/cups/templates/option-pickmany.tmpl usr/share/cups/templates/option-pickone.tmpl usr/share/cups/templates/option-trailer.tmpl usr/share/cups/templates/pager.tmpl -#usr/share/cups/templates/pl -#usr/share/cups/templates/pl/add-class.tmpl -#usr/share/cups/templates/pl/add-printer.tmpl -#usr/share/cups/templates/pl/add-rss-subscription.tmpl -#usr/share/cups/templates/pl/admin.tmpl -#usr/share/cups/templates/pl/choose-device.tmpl -#usr/share/cups/templates/pl/choose-make.tmpl -#usr/share/cups/templates/pl/choose-model.tmpl -#usr/share/cups/templates/pl/choose-serial.tmpl -#usr/share/cups/templates/pl/choose-uri.tmpl -#usr/share/cups/templates/pl/class-added.tmpl -#usr/share/cups/templates/pl/class-confirm.tmpl -#usr/share/cups/templates/pl/class-deleted.tmpl -#usr/share/cups/templates/pl/class-jobs-header.tmpl -#usr/share/cups/templates/pl/class-modified.tmpl -#usr/share/cups/templates/pl/class.tmpl -#usr/share/cups/templates/pl/classes-header.tmpl -#usr/share/cups/templates/pl/classes.tmpl -#usr/share/cups/templates/pl/command.tmpl -#usr/share/cups/templates/pl/edit-config.tmpl -#usr/share/cups/templates/pl/error-op.tmpl -#usr/share/cups/templates/pl/error.tmpl -#usr/share/cups/templates/pl/header.tmpl -#usr/share/cups/templates/pl/help-header.tmpl -#usr/share/cups/templates/pl/help-printable.tmpl -#usr/share/cups/templates/pl/help-trailer.tmpl -#usr/share/cups/templates/pl/job-cancel.tmpl -#usr/share/cups/templates/pl/job-hold.tmpl -#usr/share/cups/templates/pl/job-move.tmpl -#usr/share/cups/templates/pl/job-moved.tmpl -#usr/share/cups/templates/pl/job-release.tmpl -#usr/share/cups/templates/pl/job-restart.tmpl -#usr/share/cups/templates/pl/jobs-header.tmpl -#usr/share/cups/templates/pl/jobs.tmpl -#usr/share/cups/templates/pl/list-available-printers.tmpl -#usr/share/cups/templates/pl/modify-class.tmpl -#usr/share/cups/templates/pl/modify-printer.tmpl -#usr/share/cups/templates/pl/norestart.tmpl -#usr/share/cups/templates/pl/option-boolean.tmpl -#usr/share/cups/templates/pl/option-conflict.tmpl -#usr/share/cups/templates/pl/option-header.tmpl -#usr/share/cups/templates/pl/option-pickmany.tmpl -#usr/share/cups/templates/pl/option-pickone.tmpl -#usr/share/cups/templates/pl/option-trailer.tmpl -#usr/share/cups/templates/pl/pager.tmpl -#usr/share/cups/templates/pl/printer-accept.tmpl -#usr/share/cups/templates/pl/printer-added.tmpl -#usr/share/cups/templates/pl/printer-configured.tmpl -#usr/share/cups/templates/pl/printer-confirm.tmpl -#usr/share/cups/templates/pl/printer-default.tmpl -#usr/share/cups/templates/pl/printer-deleted.tmpl -#usr/share/cups/templates/pl/printer-jobs-header.tmpl -#usr/share/cups/templates/pl/printer-modified.tmpl -#usr/share/cups/templates/pl/printer-purge.tmpl -#usr/share/cups/templates/pl/printer-reject.tmpl -#usr/share/cups/templates/pl/printer-start.tmpl -#usr/share/cups/templates/pl/printer-stop.tmpl -#usr/share/cups/templates/pl/printer.tmpl -#usr/share/cups/templates/pl/printers-header.tmpl -#usr/share/cups/templates/pl/printers.tmpl -#usr/share/cups/templates/pl/restart.tmpl -#usr/share/cups/templates/pl/samba-export.tmpl -#usr/share/cups/templates/pl/samba-exported.tmpl -#usr/share/cups/templates/pl/search.tmpl -#usr/share/cups/templates/pl/set-printer-options-header.tmpl -#usr/share/cups/templates/pl/set-printer-options-trailer.tmpl -#usr/share/cups/templates/pl/subscription-added.tmpl -#usr/share/cups/templates/pl/subscription-canceled.tmpl -#usr/share/cups/templates/pl/test-page.tmpl -#usr/share/cups/templates/pl/trailer.tmpl -#usr/share/cups/templates/pl/users.tmpl usr/share/cups/templates/printer-accept.tmpl usr/share/cups/templates/printer-added.tmpl usr/share/cups/templates/printer-configured.tmpl @@ -764,234 +665,221 @@ usr/share/cups/templates/printer.tmpl usr/share/cups/templates/printers-header.tmpl usr/share/cups/templates/printers.tmpl usr/share/cups/templates/restart.tmpl -#usr/share/cups/templates/ru -#usr/share/cups/templates/ru/add-class.tmpl -#usr/share/cups/templates/ru/add-printer.tmpl -#usr/share/cups/templates/ru/add-rss-subscription.tmpl -#usr/share/cups/templates/ru/admin.tmpl -#usr/share/cups/templates/ru/choose-device.tmpl -#usr/share/cups/templates/ru/choose-make.tmpl -#usr/share/cups/templates/ru/choose-model.tmpl -#usr/share/cups/templates/ru/choose-serial.tmpl -#usr/share/cups/templates/ru/choose-uri.tmpl -#usr/share/cups/templates/ru/class-added.tmpl -#usr/share/cups/templates/ru/class-confirm.tmpl -#usr/share/cups/templates/ru/class-deleted.tmpl -#usr/share/cups/templates/ru/class-jobs-header.tmpl -#usr/share/cups/templates/ru/class-modified.tmpl -#usr/share/cups/templates/ru/class.tmpl -#usr/share/cups/templates/ru/classes-header.tmpl -#usr/share/cups/templates/ru/classes.tmpl -#usr/share/cups/templates/ru/command.tmpl -#usr/share/cups/templates/ru/edit-config.tmpl -#usr/share/cups/templates/ru/error-op.tmpl -#usr/share/cups/templates/ru/error.tmpl -#usr/share/cups/templates/ru/header.tmpl -#usr/share/cups/templates/ru/help-header.tmpl -#usr/share/cups/templates/ru/help-printable.tmpl -#usr/share/cups/templates/ru/help-trailer.tmpl -#usr/share/cups/templates/ru/job-cancel.tmpl -#usr/share/cups/templates/ru/job-hold.tmpl -#usr/share/cups/templates/ru/job-move.tmpl -#usr/share/cups/templates/ru/job-moved.tmpl -#usr/share/cups/templates/ru/job-release.tmpl -#usr/share/cups/templates/ru/job-restart.tmpl -#usr/share/cups/templates/ru/jobs-header.tmpl -#usr/share/cups/templates/ru/jobs.tmpl -#usr/share/cups/templates/ru/list-available-printers.tmpl -#usr/share/cups/templates/ru/modify-class.tmpl -#usr/share/cups/templates/ru/modify-printer.tmpl -#usr/share/cups/templates/ru/norestart.tmpl -#usr/share/cups/templates/ru/option-boolean.tmpl -#usr/share/cups/templates/ru/option-conflict.tmpl -#usr/share/cups/templates/ru/option-header.tmpl -#usr/share/cups/templates/ru/option-pickmany.tmpl -#usr/share/cups/templates/ru/option-pickone.tmpl -#usr/share/cups/templates/ru/option-trailer.tmpl -#usr/share/cups/templates/ru/pager.tmpl -#usr/share/cups/templates/ru/printer-accept.tmpl -#usr/share/cups/templates/ru/printer-added.tmpl -#usr/share/cups/templates/ru/printer-configured.tmpl -#usr/share/cups/templates/ru/printer-confirm.tmpl -#usr/share/cups/templates/ru/printer-default.tmpl -#usr/share/cups/templates/ru/printer-deleted.tmpl -#usr/share/cups/templates/ru/printer-jobs-header.tmpl -#usr/share/cups/templates/ru/printer-modified.tmpl -#usr/share/cups/templates/ru/printer-purge.tmpl -#usr/share/cups/templates/ru/printer-reject.tmpl -#usr/share/cups/templates/ru/printer-start.tmpl -#usr/share/cups/templates/ru/printer-stop.tmpl -#usr/share/cups/templates/ru/printer.tmpl -#usr/share/cups/templates/ru/printers-header.tmpl -#usr/share/cups/templates/ru/printers.tmpl -#usr/share/cups/templates/ru/restart.tmpl -#usr/share/cups/templates/ru/samba-export.tmpl -#usr/share/cups/templates/ru/samba-exported.tmpl -#usr/share/cups/templates/ru/search.tmpl -#usr/share/cups/templates/ru/set-printer-options-header.tmpl -#usr/share/cups/templates/ru/set-printer-options-trailer.tmpl -#usr/share/cups/templates/ru/subscription-added.tmpl -#usr/share/cups/templates/ru/subscription-canceled.tmpl -#usr/share/cups/templates/ru/test-page.tmpl -#usr/share/cups/templates/ru/trailer.tmpl -#usr/share/cups/templates/ru/users.tmpl +usr/share/cups/templates/ru +usr/share/cups/templates/ru/add-class.tmpl +usr/share/cups/templates/ru/add-printer.tmpl +usr/share/cups/templates/ru/add-rss-subscription.tmpl +usr/share/cups/templates/ru/admin.tmpl +usr/share/cups/templates/ru/choose-device.tmpl +usr/share/cups/templates/ru/choose-make.tmpl +usr/share/cups/templates/ru/choose-model.tmpl +usr/share/cups/templates/ru/choose-serial.tmpl +usr/share/cups/templates/ru/choose-uri.tmpl +usr/share/cups/templates/ru/class-added.tmpl +usr/share/cups/templates/ru/class-confirm.tmpl +usr/share/cups/templates/ru/class-deleted.tmpl +usr/share/cups/templates/ru/class-jobs-header.tmpl +usr/share/cups/templates/ru/class-modified.tmpl +usr/share/cups/templates/ru/class.tmpl +usr/share/cups/templates/ru/classes-header.tmpl +usr/share/cups/templates/ru/classes.tmpl +usr/share/cups/templates/ru/command.tmpl +usr/share/cups/templates/ru/edit-config.tmpl +usr/share/cups/templates/ru/error-op.tmpl +usr/share/cups/templates/ru/error.tmpl +usr/share/cups/templates/ru/header.tmpl +usr/share/cups/templates/ru/help-header.tmpl +usr/share/cups/templates/ru/help-printable.tmpl +usr/share/cups/templates/ru/help-trailer.tmpl +usr/share/cups/templates/ru/job-cancel.tmpl +usr/share/cups/templates/ru/job-hold.tmpl +usr/share/cups/templates/ru/job-move.tmpl +usr/share/cups/templates/ru/job-moved.tmpl +usr/share/cups/templates/ru/job-release.tmpl +usr/share/cups/templates/ru/job-restart.tmpl +usr/share/cups/templates/ru/jobs-header.tmpl +usr/share/cups/templates/ru/jobs.tmpl +usr/share/cups/templates/ru/list-available-printers.tmpl +usr/share/cups/templates/ru/modify-class.tmpl +usr/share/cups/templates/ru/modify-printer.tmpl +usr/share/cups/templates/ru/norestart.tmpl +usr/share/cups/templates/ru/option-boolean.tmpl +usr/share/cups/templates/ru/option-conflict.tmpl +usr/share/cups/templates/ru/option-header.tmpl +usr/share/cups/templates/ru/option-pickmany.tmpl +usr/share/cups/templates/ru/option-pickone.tmpl +usr/share/cups/templates/ru/option-trailer.tmpl +usr/share/cups/templates/ru/pager.tmpl +usr/share/cups/templates/ru/printer-accept.tmpl +usr/share/cups/templates/ru/printer-added.tmpl +usr/share/cups/templates/ru/printer-configured.tmpl +usr/share/cups/templates/ru/printer-confirm.tmpl +usr/share/cups/templates/ru/printer-default.tmpl +usr/share/cups/templates/ru/printer-deleted.tmpl +usr/share/cups/templates/ru/printer-jobs-header.tmpl +usr/share/cups/templates/ru/printer-modified.tmpl +usr/share/cups/templates/ru/printer-purge.tmpl +usr/share/cups/templates/ru/printer-reject.tmpl +usr/share/cups/templates/ru/printer-start.tmpl +usr/share/cups/templates/ru/printer-stop.tmpl +usr/share/cups/templates/ru/printer.tmpl +usr/share/cups/templates/ru/printers-header.tmpl +usr/share/cups/templates/ru/printers.tmpl +usr/share/cups/templates/ru/restart.tmpl +usr/share/cups/templates/ru/samba-export.tmpl +usr/share/cups/templates/ru/samba-exported.tmpl +usr/share/cups/templates/ru/search.tmpl +usr/share/cups/templates/ru/set-printer-options-header.tmpl +usr/share/cups/templates/ru/set-printer-options-trailer.tmpl +usr/share/cups/templates/ru/subscription-added.tmpl +usr/share/cups/templates/ru/subscription-canceled.tmpl +usr/share/cups/templates/ru/test-page.tmpl +usr/share/cups/templates/ru/trailer.tmpl +usr/share/cups/templates/ru/users.tmpl usr/share/cups/templates/samba-export.tmpl usr/share/cups/templates/samba-exported.tmpl usr/share/cups/templates/search.tmpl usr/share/cups/templates/set-printer-options-header.tmpl usr/share/cups/templates/set-printer-options-trailer.tmpl -#usr/share/cups/templates/subscription-added.tmpl -#usr/share/cups/templates/subscription-canceled.tmpl +usr/share/cups/templates/subscription-added.tmpl +usr/share/cups/templates/subscription-canceled.tmpl usr/share/cups/templates/test-page.tmpl usr/share/cups/templates/trailer.tmpl usr/share/cups/templates/users.tmpl -#usr/share/doc/cups +usr/share/cups/usb +usr/share/cups/usb/org.cups.usb-quirks +usr/share/doc/cups +usr/share/doc/cups/ca +usr/share/doc/cups/ca/index.html +usr/share/doc/cups/cs +usr/share/doc/cups/cs/index.html usr/share/doc/cups/cups-printable.css usr/share/doc/cups/cups.css -usr/share/doc/cups/de -#usr/share/doc/cups/de/index.html -#usr/share/doc/cups/es -#usr/share/doc/cups/es/index.html -#usr/share/doc/cups/eu -#usr/share/doc/cups/eu/index.html +usr/share/doc/cups/es +usr/share/doc/cups/es/index.html +usr/share/doc/cups/fr +usr/share/doc/cups/fr/index.html usr/share/doc/cups/help -#usr/share/doc/cups/help/accounting.html -#usr/share/doc/cups/help/api-array.html -#usr/share/doc/cups/help/api-cgi.html -#usr/share/doc/cups/help/api-cups.html -#usr/share/doc/cups/help/api-driver.html -#usr/share/doc/cups/help/api-filedir.html -#usr/share/doc/cups/help/api-filter.html -#usr/share/doc/cups/help/api-httpipp.html -#usr/share/doc/cups/help/api-mime.html -#usr/share/doc/cups/help/api-overview.html -#usr/share/doc/cups/help/api-ppd.html -#usr/share/doc/cups/help/api-ppdc.html -#usr/share/doc/cups/help/api-raster.html -#usr/share/doc/cups/help/cgi.html -#usr/share/doc/cups/help/glossary.html -#usr/share/doc/cups/help/kerberos.html -#usr/share/doc/cups/help/license.html -#usr/share/doc/cups/help/man-backend.html -#usr/share/doc/cups/help/man-cancel.html -#usr/share/doc/cups/help/man-cups-config.html -#usr/share/doc/cups/help/man-cups-lpd.html -#usr/share/doc/cups/help/man-cups-polld.html -#usr/share/doc/cups/help/man-cupsaccept.html -#usr/share/doc/cups/help/man-cupsaddsmb.html -#usr/share/doc/cups/help/man-cupsd.html -#usr/share/doc/cups/help/man-cupsenable.html -#usr/share/doc/cups/help/man-cupstestdsc.html -#usr/share/doc/cups/help/man-cupstestppd.html -#usr/share/doc/cups/help/man-filter.html -#usr/share/doc/cups/help/man-lp.html -#usr/share/doc/cups/help/man-lpadmin.html -#usr/share/doc/cups/help/man-lpc.html -#usr/share/doc/cups/help/man-lpinfo.html -#usr/share/doc/cups/help/man-lpmove.html -#usr/share/doc/cups/help/man-lpoptions.html -#usr/share/doc/cups/help/man-lppasswd.html -#usr/share/doc/cups/help/man-lpq.html -#usr/share/doc/cups/help/man-lpr.html -#usr/share/doc/cups/help/man-lprm.html -#usr/share/doc/cups/help/man-lpstat.html -#usr/share/doc/cups/help/man-mime.convs.html -#usr/share/doc/cups/help/man-mime.types.html -#usr/share/doc/cups/help/man-notifier.html -#usr/share/doc/cups/help/man-ppdc.html -#usr/share/doc/cups/help/man-ppdhtml.html -#usr/share/doc/cups/help/man-ppdi.html -#usr/share/doc/cups/help/man-ppdmerge.html -#usr/share/doc/cups/help/man-ppdpo.html -#usr/share/doc/cups/help/network.html -#usr/share/doc/cups/help/options.html -#usr/share/doc/cups/help/overview.html -#usr/share/doc/cups/help/policies.html -#usr/share/doc/cups/help/postscript-driver.html -#usr/share/doc/cups/help/ppd-compiler.html -#usr/share/doc/cups/help/raster-driver.html -#usr/share/doc/cups/help/ref-access_log.html -#usr/share/doc/cups/help/ref-classes-conf.html -#usr/share/doc/cups/help/ref-client-conf.html -#usr/share/doc/cups/help/ref-cupsd-conf.html -#usr/share/doc/cups/help/ref-error_log.html -#usr/share/doc/cups/help/ref-mailto-conf.html -#usr/share/doc/cups/help/ref-page_log.html -#usr/share/doc/cups/help/ref-ppdcfile.html -#usr/share/doc/cups/help/ref-printers-conf.html -#usr/share/doc/cups/help/ref-snmp-conf.html -#usr/share/doc/cups/help/ref-subscriptions-conf.html -#usr/share/doc/cups/help/security.html -#usr/share/doc/cups/help/sharing.html -#usr/share/doc/cups/help/spec-banner.html -#usr/share/doc/cups/help/spec-browsing.html -#usr/share/doc/cups/help/spec-cmp.html -#usr/share/doc/cups/help/spec-command.html -#usr/share/doc/cups/help/spec-design.html -#usr/share/doc/cups/help/spec-ipp.html -#usr/share/doc/cups/help/spec-pdf.html -#usr/share/doc/cups/help/spec-postscript.html -#usr/share/doc/cups/help/spec-ppd.html -#usr/share/doc/cups/help/spec-raster.html -#usr/share/doc/cups/help/spec-stp.html -#usr/share/doc/cups/help/standard.html -#usr/share/doc/cups/help/translation.html -#usr/share/doc/cups/help/whatsnew.html -#usr/share/doc/cups/id -#usr/share/doc/cups/id/index.html +usr/share/doc/cups/help/accounting.html +usr/share/doc/cups/help/api-array.html +usr/share/doc/cups/help/api-cgi.html +usr/share/doc/cups/help/api-cups.html +usr/share/doc/cups/help/api-driver.html +usr/share/doc/cups/help/api-filedir.html +usr/share/doc/cups/help/api-filter.html +usr/share/doc/cups/help/api-httpipp.html +usr/share/doc/cups/help/api-mime.html +usr/share/doc/cups/help/api-overview.html +usr/share/doc/cups/help/api-ppd.html +usr/share/doc/cups/help/api-ppdc.html +usr/share/doc/cups/help/api-raster.html +usr/share/doc/cups/help/cgi.html +usr/share/doc/cups/help/glossary.html +usr/share/doc/cups/help/kerberos.html +usr/share/doc/cups/help/license.html +usr/share/doc/cups/help/man-backend.html +usr/share/doc/cups/help/man-cancel.html +usr/share/doc/cups/help/man-cups-config.html +usr/share/doc/cups/help/man-cups-lpd.html +usr/share/doc/cups/help/man-cups-snmp.html +usr/share/doc/cups/help/man-cupsaccept.html +usr/share/doc/cups/help/man-cupsaddsmb.html +usr/share/doc/cups/help/man-cupsd.html +usr/share/doc/cups/help/man-cupsenable.html +usr/share/doc/cups/help/man-cupstestdsc.html +usr/share/doc/cups/help/man-cupstestppd.html +usr/share/doc/cups/help/man-filter.html +usr/share/doc/cups/help/man-ipptool.html +usr/share/doc/cups/help/man-ipptoolfile.html +usr/share/doc/cups/help/man-lp.html +usr/share/doc/cups/help/man-lpadmin.html +usr/share/doc/cups/help/man-lpc.html +usr/share/doc/cups/help/man-lpinfo.html +usr/share/doc/cups/help/man-lpmove.html +usr/share/doc/cups/help/man-lpoptions.html +usr/share/doc/cups/help/man-lppasswd.html +usr/share/doc/cups/help/man-lpq.html +usr/share/doc/cups/help/man-lpr.html +usr/share/doc/cups/help/man-lprm.html +usr/share/doc/cups/help/man-lpstat.html +usr/share/doc/cups/help/man-mime.convs.html +usr/share/doc/cups/help/man-mime.types.html +usr/share/doc/cups/help/man-notifier.html +usr/share/doc/cups/help/man-ppdc.html +usr/share/doc/cups/help/man-ppdhtml.html +usr/share/doc/cups/help/man-ppdi.html +usr/share/doc/cups/help/man-ppdmerge.html +usr/share/doc/cups/help/man-ppdpo.html +usr/share/doc/cups/help/network.html +usr/share/doc/cups/help/options.html +usr/share/doc/cups/help/overview.html +usr/share/doc/cups/help/policies.html +usr/share/doc/cups/help/postscript-driver.html +usr/share/doc/cups/help/ppd-compiler.html +usr/share/doc/cups/help/raster-driver.html +usr/share/doc/cups/help/ref-access_log.html +usr/share/doc/cups/help/ref-classes-conf.html +usr/share/doc/cups/help/ref-client-conf.html +usr/share/doc/cups/help/ref-cups-files-conf.html +usr/share/doc/cups/help/ref-cupsd-conf.html +usr/share/doc/cups/help/ref-error_log.html +usr/share/doc/cups/help/ref-mailto-conf.html +usr/share/doc/cups/help/ref-page_log.html +usr/share/doc/cups/help/ref-ppdcfile.html +usr/share/doc/cups/help/ref-printers-conf.html +usr/share/doc/cups/help/ref-snmp-conf.html +usr/share/doc/cups/help/ref-subscriptions-conf.html +usr/share/doc/cups/help/security.html +usr/share/doc/cups/help/sharing.html +usr/share/doc/cups/help/spec-banner.html +usr/share/doc/cups/help/spec-cmp.html +usr/share/doc/cups/help/spec-command.html +usr/share/doc/cups/help/spec-design.html +usr/share/doc/cups/help/spec-ipp.html +usr/share/doc/cups/help/spec-pdf.html +usr/share/doc/cups/help/spec-postscript.html +usr/share/doc/cups/help/spec-ppd.html +usr/share/doc/cups/help/spec-raster.html +usr/share/doc/cups/help/spec-stp.html +usr/share/doc/cups/help/translation.html +usr/share/doc/cups/help/whatsnew.html usr/share/doc/cups/images -#usr/share/doc/cups/images/color-wheel.png -#usr/share/doc/cups/images/cups-block-diagram.png -#usr/share/doc/cups/images/cups-command-chain.png -#usr/share/doc/cups/images/cups-icon.png -#usr/share/doc/cups/images/cups-postscript-chain.png -#usr/share/doc/cups/images/cups-raster-chain.png -#usr/share/doc/cups/images/cups.png -#usr/share/doc/cups/images/generic.png -#usr/share/doc/cups/images/left.gif -#usr/share/doc/cups/images/raster-organization.png -#usr/share/doc/cups/images/raster.png -#usr/share/doc/cups/images/right.gif -#usr/share/doc/cups/images/sample-image.png -#usr/share/doc/cups/images/sel.gif -#usr/share/doc/cups/images/smiley.jpg -#usr/share/doc/cups/images/unsel.gif -#usr/share/doc/cups/images/wait.gif +usr/share/doc/cups/images/color-wheel.png +usr/share/doc/cups/images/cups-block-diagram.png +usr/share/doc/cups/images/cups-command-chain.png +usr/share/doc/cups/images/cups-icon.png +usr/share/doc/cups/images/cups-postscript-chain.png +usr/share/doc/cups/images/cups-raster-chain.png +usr/share/doc/cups/images/cups.png +usr/share/doc/cups/images/left.gif +usr/share/doc/cups/images/raster-organization.png +usr/share/doc/cups/images/raster.png +usr/share/doc/cups/images/right.gif +usr/share/doc/cups/images/sample-image.png +usr/share/doc/cups/images/sel.gif +usr/share/doc/cups/images/smiley.jpg +usr/share/doc/cups/images/unsel.gif +usr/share/doc/cups/images/wait.gif usr/share/doc/cups/index.html -#usr/share/doc/cups/it -#usr/share/doc/cups/it/index.html -#usr/share/doc/cups/ja -#usr/share/doc/cups/ja/index.html -#usr/share/doc/cups/pl -#usr/share/doc/cups/pl/index.html +usr/share/doc/cups/it +usr/share/doc/cups/it/index.html +usr/share/doc/cups/ja +usr/share/doc/cups/ja/index.html usr/share/doc/cups/robots.txt -#usr/share/doc/cups/ru -#usr/share/doc/cups/ru/index.html -#usr/share/locale/da/cups_da.po -#usr/share/locale/de/cups_de.po -#usr/share/locale/es/cups_es.po -#usr/share/locale/eu/cups_eu.po -#usr/share/locale/fi/cups_fi.po -#usr/share/locale/fr/cups_fr.po -#usr/share/locale/id/cups_id.po -#usr/share/locale/it/cups_it.po -#usr/share/locale/ja/cups_ja.po -#usr/share/locale/ko/cups_ko.po -#usr/share/locale/nl/cups_nl.po -#usr/share/locale/no -#usr/share/locale/no/cups_no.po -#usr/share/locale/pl/cups_pl.po -#usr/share/locale/pt/cups_pt.po -#usr/share/locale/pt_BR/cups_pt_BR.po -#usr/share/locale/ru/cups_ru.po -#usr/share/locale/sv/cups_sv.po -#usr/share/locale/zh -#usr/share/locale/zh/cups_zh.po -#usr/share/locale/zh_TW/cups_zh_TW.po +usr/share/doc/cups/ru +usr/share/doc/cups/ru/index.html +usr/share/locale/ca/cups_ca.po +usr/share/locale/cs/cups_cs.po +usr/share/locale/es/cups_es.po +usr/share/locale/fr/cups_fr.po +usr/share/locale/it/cups_it.po +usr/share/locale/ja/cups_ja.po +usr/share/locale/ru/cups_ru.po #usr/share/man/man1/cancel.1.gz #usr/share/man/man1/cups-config.1.gz #usr/share/man/man1/cupstestdsc.1.gz #usr/share/man/man1/cupstestppd.1.gz +#usr/share/man/man1/ipptool.1.gz #usr/share/man/man1/lp.1.gz #usr/share/man/man1/lpoptions.1.gz #usr/share/man/man1/lppasswd.1.gz @@ -1006,8 +894,10 @@ usr/share/doc/cups/robots.txt #usr/share/man/man1/ppdpo.1.gz #usr/share/man/man5/classes.conf.5.gz #usr/share/man/man5/client.conf.5.gz +#usr/share/man/man5/cups-files.conf.5.gz #usr/share/man/man5/cups-snmp.conf.5.gz #usr/share/man/man5/cupsd.conf.5.gz +#usr/share/man/man5/ipptoolfile.5.gz #usr/share/man/man5/mailto.conf.5.gz #usr/share/man/man5/mime.convs.5.gz #usr/share/man/man5/mime.types.5.gz @@ -1021,7 +911,7 @@ usr/share/doc/cups/robots.txt #usr/share/man/man8/cups-deviced.8.gz #usr/share/man/man8/cups-driverd.8.gz #usr/share/man/man8/cups-lpd.8.gz -#usr/share/man/man8/cups-polld.8.gz +#usr/share/man/man8/cups-snmp.8.gz #usr/share/man/man8/cupsaccept.8.gz #usr/share/man/man8/cupsaddsmb.8.gz #usr/share/man/man8/cupsctl.8.gz @@ -1036,8 +926,9 @@ usr/share/doc/cups/robots.txt #usr/share/man/man8/lpmove.8.gz #usr/share/man/man8/reject.8.gz var/cache/cups -#var/cache/cups/rss +var/cache/cups/rss #var/ipfire/cups +var/ipfire/cups/cups-files.conf var/ipfire/cups/cupsd.conf #var/ipfire/cups/cupsd.conf.default var/ipfire/cups/interfaces @@ -1049,4 +940,3 @@ var/run/cups var/run/cups/certs var/spool/cups var/spool/cups/tmp -etc/rc.d/init.d/cups diff --git a/config/rootfiles/packages/foomatic b/config/rootfiles/packages/foomatic index 589c9e3..896eb16 100644 --- a/config/rootfiles/packages/foomatic +++ b/config/rootfiles/packages/foomatic @@ -1,20 +1,21 @@ #etc/foomatic +etc/foomatic/defaultspooler etc/foomatic/direct etc/foomatic/filter.conf -#etc/foomatic/filter.conf.sample usr/bin/foomatic-combo-xml usr/bin/foomatic-compiledb usr/bin/foomatic-configure usr/bin/foomatic-datafile -usr/bin/foomatic-gswrapper usr/bin/foomatic-perl-data usr/bin/foomatic-ppd-options +usr/bin/foomatic-ppd-to-xml usr/bin/foomatic-ppdfile usr/bin/foomatic-printjob usr/bin/foomatic-rip usr/bin/foomatic-searchprinter usr/lib/cups/backend/beh usr/lib/cups/driver/foomatic +usr/lib/cups/filter/foomatic-ppdfile usr/lib/cups/filter/foomatic-rip #usr/lib/perl5/site_perl/5.12.3/Foomatic usr/lib/perl5/site_perl/5.12.3/Foomatic/DB.pm @@ -23,24 +24,6 @@ usr/lib/perl5/site_perl/5.12.3/Foomatic/PPD.pm usr/lib/perl5/site_perl/5.12.3/Foomatic/UIElem.pm #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Foomatic #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Foomatic/.packlist -#usr/lib/ppr -#usr/lib/ppr/interfaces -usr/lib/ppr/interfaces/foomatic-rip -#usr/lib/ppr/lib -usr/lib/ppr/lib/foomatic-rip -#usr/man/man1/foomatic-combo-xml.1 -#usr/man/man1/foomatic-compiledb.1 -#usr/man/man1/foomatic-configure.1 -#usr/man/man1/foomatic-gswrapper.1 -#usr/man/man1/foomatic-perl-data.1 -#usr/man/man1/foomatic-ppd-options.1 -#usr/man/man1/foomatic-ppdfile.1 -#usr/man/man1/foomatic-printjob.1 -#usr/man/man1/foomatic-rip.1 -#usr/man/man8/foomatic-addpjloptions.8 -#usr/man/man8/foomatic-getpjloptions.8 -#usr/man/man8/foomatic-kitload.8 -#usr/man/man8/foomatic-preferred-driver.8 usr/sbin/foomatic-addpjloptions usr/sbin/foomatic-cleanupdrivers usr/sbin/foomatic-extract-text @@ -60,7 +43,10 @@ usr/share/cups/model/foomatic-db-ppds #usr/share/foomatic/db/source/PPD/Brother usr/share/foomatic/db/source/PPD/Brother/BR2600CN_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR2700_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR3070_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR3450CN_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR4050_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR4070_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR5050_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR5070DN_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR5070_2_GPL.ppd.gz @@ -69,24 +55,49 @@ usr/share/foomatic/db/source/PPD/Brother/BR5170_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR5240_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR5250_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR5270_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR5350_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR5370_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR5380_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR6050D2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR6050_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR7025_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR7045_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR7050_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR7225_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR7450_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR7820_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR7840_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR784N_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR8020_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR8025_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR8040_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR8045_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR8050_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR8080_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR8085_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR8220_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR8370_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR8380_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR8420_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR8440_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR8480_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR8640_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR8670_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR8680_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR8820_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR8840_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR8880_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR8890_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR901D_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR901M_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR9040_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR9045_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR9120_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR9320_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR9420_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR9440_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR9450_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR9840_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BRHL14_1_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BRHL14_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BRHL16_2_GPL.ppd.gz @@ -98,10 +109,23 @@ usr/share/foomatic/db/source/PPD/Epson/epal2600.ppd.gz usr/share/foomatic/db/source/PPD/Epson/epalc190.ppd.gz usr/share/foomatic/db/source/PPD/Epson/epalc200.ppd.gz usr/share/foomatic/db/source/PPD/Epson/epalc260.ppd.gz +usr/share/foomatic/db/source/PPD/Epson/epalc280.ppd.gz +usr/share/foomatic/db/source/PPD/Epson/epalc380.ppd.gz usr/share/foomatic/db/source/PPD/Epson/epalc400.ppd.gz usr/share/foomatic/db/source/PPD/Epson/epalc410.ppd.gz +usr/share/foomatic/db/source/PPD/Epson/epalc420.ppd.gz usr/share/foomatic/db/source/PPD/Epson/epalc860.ppd.gz usr/share/foomatic/db/source/PPD/Epson/epalc910.ppd.gz +usr/share/foomatic/db/source/PPD/Epson/epalc920.ppd.gz +usr/share/foomatic/db/source/PPD/Epson/epalcx21.ppd.gz +usr/share/foomatic/db/source/PPD/Epson/epalm200.ppd.gz +usr/share/foomatic/db/source/PPD/Epson/epalm201.ppd.gz +usr/share/foomatic/db/source/PPD/Epson/epalm240.ppd.gz +usr/share/foomatic/db/source/PPD/Epson/epalm241.ppd.gz +usr/share/foomatic/db/source/PPD/Epson/epalm400.ppd.gz +usr/share/foomatic/db/source/PPD/Epson/epalm800.ppd.gz +usr/share/foomatic/db/source/PPD/Epson/epalmx20.ppd.gz +usr/share/foomatic/db/source/PPD/Epson/epalmx21.ppd.gz usr/share/foomatic/db/source/PPD/Epson/epl5900.ppd.gz usr/share/foomatic/db/source/PPD/Epson/epl6100.ppd.gz usr/share/foomatic/db/source/PPD/Epson/epl6200.ppd.gz @@ -143,7 +167,12 @@ usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-C7528n_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-C7531dn_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-C7535n_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-C7640nD_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-C8140ND_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-C8150ND_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-CS555_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-DSc1030_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-DSc1045_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-DSc1060_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-DSc224_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-DSc232_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-DSc328_PS.ppd.gz @@ -178,10 +207,19 @@ usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-DSm730_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-DSm735_735G_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-DSm745_745G_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-F9199_9199nf_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-GWD2004_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-GWD2006_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-GWD3006_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-GWD5100_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-GWD7140_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP1100_DSm7110_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP1350_DSm7135_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP1600_DSm716_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP2000_DSm721d_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP2352_DSm923_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP2500_DSm625_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP2852_DSm928_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP3352_DSm933_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP3500_DSm735e_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP4500_DSm745e_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP5500_DSm755_PS.ppd.gz @@ -194,11 +232,79 @@ usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MPC3000_DSc530_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MPC3500_DSc535_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MPC4500_DSc545_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_161_DSm416_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_171_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_2001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_2501_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_2510_DSm725e_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_2550B_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_2550_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_2851_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_3010_DSm730e_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_301_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_3350B_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_3350_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_3351_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_4000B_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_4000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_4001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_4002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_5000B_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_5000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_5001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_5002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_6000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_6001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_6002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_7000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_7001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_7502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_8000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_8001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_9001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_9002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C2050_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C2051_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C2550_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C2551_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C2800_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C3001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C3002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C3003_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C300SR_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C300_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C305_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C3300_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C3501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C3502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C3503_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C4000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C400SR_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C400_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C4501A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C4501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C4502A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C4502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C4503_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C5000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C5501A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C5501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C5502A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C5502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C5503_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C6000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C6003_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C6501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C6502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C7500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C7501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C8002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_CW2200_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-P7026_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-P7026n_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-P7031nL_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-P7031n_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-P7032_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-P7035n_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-P7126_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-P7126n_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-P7132n_PS.ppd.gz @@ -212,6 +318,20 @@ usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-P7527n_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-P7535n_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-P7575_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-P7675_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-Pro_1106EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-Pro_1107EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-Pro_1356EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-Pro_1357EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-Pro_906EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-Pro_907EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-SP_4210N_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-SP_6330N_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-SP_8200DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-SP_C320DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-SP_C420DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-SP_C430DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-SP_C431DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-SP_W2470_PS.ppd.gz #usr/share/foomatic/db/source/PPD/Gestetner/PXL usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-10512_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-2212_PXL.ppd.gz @@ -225,6 +345,9 @@ usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-6002_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-7502_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-9002_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-CS555_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-DSc1030_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-DSc1045_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-DSc1060_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-DSc424_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-DSc428_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-DSc432_PXL.ppd.gz @@ -253,6 +376,10 @@ usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP1100_DSm7110_PXL.ppd. usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP1350_DSm7135_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP1600_DSm716_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP2000_DSm721d_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP2352_DSm923_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP2500_DSm625_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP2852_DSm928_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP3352_DSm933_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP3500_DSm735e_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP4500_DSm745e_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP5500_DSm755_PXL.ppd.gz @@ -265,34 +392,77 @@ usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MPC3000_DSc530_PXL.ppd. usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MPC3500_DSc535_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MPC4500_DSc545_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_161_DSm416_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_171_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_2001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_2501_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_2510_DSm725e_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_2550B_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_2550_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_2851_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_3010_DSm730e_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_3350B_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_3350_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_3351_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_4000B_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_4000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_4001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_4002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_5000B_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_5000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_5001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_5002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_6000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_6001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_6002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_7000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_7001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_7502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_8000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_8001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_9001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_9002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C2050_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C2051_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C2550_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C2551_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C2800_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C3001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C3002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C3003_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C300SR_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C300_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C3300_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C3501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C3502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C3503_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C4000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C400SR_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C400_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C4501A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C4501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C4502A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C4502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C4503_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C5000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C5501A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C5501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C5502A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C5502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C5503_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C6000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C6003_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C6501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C6502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C7500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C7501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C8002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-Pro_1106EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-Pro_1107EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-Pro_1356EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-Pro_1357EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-Pro_906EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-Pro_907EX_PXL.ppd.gz #usr/share/foomatic/db/source/PPD/HP -usr/share/foomatic/db/source/PPD/HP/HP_Business_Inkjet_2250.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Business_Inkjet_2280.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Business_Inkjet_2600.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Business_Inkjet_2800.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Business_Inkjet_3000.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_CM8050_CM8060_MFP.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet_2550.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet_2605.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet_2700.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet_2800.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet_3000.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet_3800.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet_4500.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet_4550.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet_4700.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet_4730_MFP.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet_5550.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet_5M.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet_8500.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet_8550.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet_CM1015.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet_CM4730_MFP.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet_CP3505.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet_CP4005.ppd.gz usr/share/foomatic/db/source/PPD/HP/HP_DesignJet_1050C_PS3.ppd.gz usr/share/foomatic/db/source/PPD/HP/HP_DesignJet_1055CM_PS3.ppd.gz usr/share/foomatic/db/source/PPD/HP/HP_DesignJet_2500CP_PS3.ppd.gz @@ -300,78 +470,16 @@ usr/share/foomatic/db/source/PPD/HP/HP_DesignJet_3500CP_PS3.ppd.gz usr/share/foomatic/db/source/PPD/HP/HP_Designjet_5000_PS3.ppd.gz usr/share/foomatic/db/source/PPD/HP/HP_Designjet_5500_PS3.ppd.gz usr/share/foomatic/db/source/PPD/HP/HP_Designjet_800_PS3.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_1200.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_1220.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_1320_Series.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_2100_Series.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_2200.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_2410.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_2420.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_2430.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_3050.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_3052.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_3200.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_3300_Series.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_3390.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_4.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_4000_Series.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_4050_Series.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_4100_MFP.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_4100_Series.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_4240.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_4250.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_4345_MFP.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_4350.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_4ML.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_4MP.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_4Si_v2011.110.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_4V.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_4_Plus.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_5000_Series.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_5100_Series.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_5200.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_5200L.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_5M.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_5MP.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_5Si.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_5Si_Mopier.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_6MP.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_8000_Series.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_8100_Series.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_8150_Series.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_9000_MFP.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_9000_Series.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_9040.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_9040_9050_MFP.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_9050.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_9055_9065_MFP.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_M3027_MFP.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_M3035_MFP.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_M4345_MFP.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_M5025_MFP.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_M5035_MFP.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_P2015.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_P3004.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_P3005.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Mopier_240.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Mopier_320.ppd.gz -usr/share/foomatic/db/source/PPD/HP/hp_LaserJet_1300_series.ppd.gz -usr/share/foomatic/db/source/PPD/HP/hp_LaserJet_2300.ppd.gz -usr/share/foomatic/db/source/PPD/HP/hp_LaserJet_3015.ppd.gz -usr/share/foomatic/db/source/PPD/HP/hp_LaserJet_3020_3030.ppd.gz -usr/share/foomatic/db/source/PPD/HP/hp_LaserJet_3380.ppd.gz -usr/share/foomatic/db/source/PPD/HP/hp_LaserJet_4200_Series.ppd.gz -usr/share/foomatic/db/source/PPD/HP/hp_LaserJet_4300_Series.ppd.gz -usr/share/foomatic/db/source/PPD/HP/hp_business_inkjet_2300.ppd.gz -usr/share/foomatic/db/source/PPD/HP/hp_color_LaserJet_2500.ppd.gz -usr/share/foomatic/db/source/PPD/HP/hp_color_LaserJet_3700.ppd.gz -usr/share/foomatic/db/source/PPD/HP/hp_color_LaserJet_4600.ppd.gz -usr/share/foomatic/db/source/PPD/HP/hp_color_LaserJet_4610.ppd.gz -usr/share/foomatic/db/source/PPD/HP/hp_color_LaserJet_4650.ppd.gz -usr/share/foomatic/db/source/PPD/HP/hp_color_LaserJet_5500.ppd.gz -usr/share/foomatic/db/source/PPD/HP/hp_color_LaserJet_9500.ppd.gz -usr/share/foomatic/db/source/PPD/HP/hp_color_LaserJet_9500_MFP.ppd.gz usr/share/foomatic/db/source/PPD/HP/hp_officejet_9100_series.ppd.gz +#usr/share/foomatic/db/source/PPD/InfoPrint +#usr/share/foomatic/db/source/PPD/InfoPrint/PS +usr/share/foomatic/db/source/PPD/InfoPrint/PS/InfoPrint-Pro_1107EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/InfoPrint/PS/InfoPrint-Pro_1357EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/InfoPrint/PS/InfoPrint-Pro_907EX_PS.ppd.gz +#usr/share/foomatic/db/source/PPD/InfoPrint/PXL +usr/share/foomatic/db/source/PPD/InfoPrint/PXL/InfoPrint-Pro_1107EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/InfoPrint/PXL/InfoPrint-Pro_1357EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/InfoPrint/PXL/InfoPrint-Pro_907EX_PXL.ppd.gz #usr/share/foomatic/db/source/PPD/Infotec #usr/share/foomatic/db/source/PPD/Infotec/PS usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-4353_MF_PS.ppd.gz @@ -435,6 +543,7 @@ usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-IS_2265_PS.ppd.gz usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-IS_2275_PS.ppd.gz usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-IS_2316_PS.ppd.gz usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-IS_2320_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-IS_2325_PS.ppd.gz usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-IS_2416_PS.ppd.gz usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-IS_2425_PS.ppd.gz usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-IS_2430_PS.ppd.gz @@ -443,6 +552,82 @@ usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-IS_2445_PS.ppd.gz usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-IS_3090_PS.ppd.gz usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-IS_3110_PS.ppd.gz usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-IS_3135_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_171_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_2001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_201_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_2352_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_2501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_2550B_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_2550_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_2851_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_2852_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_301_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_3350B_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_3350_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_3351_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_3352_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_4000B_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_4000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_4001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_4002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_5000B_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_5000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_5001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_5002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_6000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_6001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_6002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_7000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_7001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_7502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_8000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_8001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_9001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_9002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C2050_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C2051_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C2550_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C2551_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C2800_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C3001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C3002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C3003_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C300SR_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C300_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C305_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C3300_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C3501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C3502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C3503_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C4000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C400SR_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C400_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C4501A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C4501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C4502A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C4502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C4503_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C5000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C5501A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C5501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C5502A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C5502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C5503_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C6000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C6003_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C6501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C6502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C7500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C7501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C8002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-Pro_1106EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-Pro_1107EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-Pro_1356EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-Pro_1357EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-Pro_906EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-Pro_907EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-Pro_C5100S_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-Pro_C5110S_PS.ppd.gz #usr/share/foomatic/db/source/PPD/Infotec/PXL usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-4353_MF_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-4452_MF_PXL.ppd.gz @@ -491,6 +676,7 @@ usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-IS_2265_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-IS_2275_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-IS_2316_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-IS_2320_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-IS_2325_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-IS_2416_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-IS_2425_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-IS_2430_PXL.ppd.gz @@ -499,6 +685,80 @@ usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-IS_2445_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-IS_3090_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-IS_3110_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-IS_3135_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_171_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_2001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_201_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_2352_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_2501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_2550B_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_2550_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_2851_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_2852_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_3350B_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_3350_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_3351_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_3352_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_4000B_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_4000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_4001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_4002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_5000B_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_5000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_5001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_5002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_6000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_6001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_6002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_7000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_7001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_7502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_8000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_8001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_9001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_9002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C2050_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C2051_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C2550_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C2551_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C2800_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C3001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C3002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C3003_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C300SR_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C300_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C3300_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C3501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C3502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C3503_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C4000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C400SR_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C400_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C4501A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C4501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C4502A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C4502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C4503_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C5000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C5501A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C5501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C5502A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C5502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C5503_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C6000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C6003_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C6501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C6502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C7500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C7501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C8002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-Pro_1106EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-Pro_1107EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-Pro_1356EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-Pro_1357EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-Pro_906EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-Pro_907EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-Pro_C5100S_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-Pro_C5110S_PXL.ppd.gz #usr/share/foomatic/db/source/PPD/KONICA_MINOLTA usr/share/foomatic/db/source/PPD/KONICA_MINOLTA/KO1050UX.ppd.gz usr/share/foomatic/db/source/PPD/KONICA_MINOLTA/KO500UX.ppd.gz @@ -521,17 +781,29 @@ usr/share/foomatic/db/source/PPD/KONICA_MINOLTA/KOC550UX.ppd.gz #usr/share/foomatic/db/source/PPD/Kyocera #usr/share/foomatic/db/source/PPD/Kyocera/ReadMe.htm #usr/share/foomatic/db/source/PPD/Kyocera/de +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_CS-C2525E_de.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_CS-C3225E_de.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_CS-C3232E_de.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_CS-C4035E_de.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_CS_250ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_CS_300ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_CS_400ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_CS_500ci.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-1000_de.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-1030_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-1118MFP_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-1200_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-1700+_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-1700_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-1714M_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-1750_de.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-2000D_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-3700+_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-3700_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-3718M_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-3750_de.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-3900DN_de.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-4000DN_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-5800C_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-5900C_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-600_de.ppd.gz @@ -539,19 +811,34 @@ usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-6300_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-6700_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-680_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-6900_de.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-6950DN_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-7000+_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-7000_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-7028M_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-800_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-9000_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-920_de.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-C5015N_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-C5020N_de.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-C5025N_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-C5030N_de.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-C5100DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-C5200DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-C5300DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-C5350DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-C5400DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-C8100DN_de.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS_C8100DNP.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_KM-1820_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_KM-3050_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_KM-4050_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_KM-5050_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_KM-6030_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_KM-8030_de.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_KM-C2525E_de.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_KM-C3225E_de.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_KM-C3232E_de.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_KM-C4035E_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_Mita_CS-1650_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_Mita_CS-1815_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_Mita_CS-2050_de.ppd.gz @@ -602,21 +889,41 @@ usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_Mita_KM-7530_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_Mita_KM-C2630_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_Mita_KM-C830_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_Mita_KM-C850_de.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_TASKalfa_250ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_TASKalfa_300ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_TASKalfa_400ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_TASKalfa_500ci.ppd.gz #usr/share/foomatic/db/source/PPD/Kyocera/en +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_CS-C2525E_en.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_CS-C3225E_en.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_CS-C3232E_en.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_CS-C4035E_en.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_CS_250ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_CS_300ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_CS_3050ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_CS_3550ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_CS_400ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_CS_500ci.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-1000_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-1030_en.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-1118MFP_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-1200_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-1700+_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-1700_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-1714M_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-1750_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-2000D_en.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-2100D.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-2100DN.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-3700+_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-3700_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-3718M_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-3750_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-3900DN_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-4000DN_en.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-4100DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-4200DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-4300DN.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-5800C_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-5900C_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-600_en.ppd.gz @@ -634,16 +941,30 @@ usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-9000_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-9130DN_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-920_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-9530DN_en.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-C5015N_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-C5020N_en.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-C5025N_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-C5030N_en.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-C5100DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-C5200DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-C5300DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-C5350DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-C5400DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-C8100DN_en.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS_C8100DNP.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_KM-1820_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_KM-3050_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_KM-4050_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_KM-5050_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_KM-6030_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_KM-8030_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_KM-C2520_en.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_KM-C2525E_en.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_KM-C3225E_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_KM-C3225_en.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_KM-C3232E_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_KM-C3232_en.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_KM-C4035E_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_Mita_CS-1650_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_Mita_CS-1815_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_Mita_CS-2050_en.ppd.gz @@ -695,8 +1016,22 @@ usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_Mita_KM-7530_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_Mita_KM-C2630_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_Mita_KM-C830_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_Mita_KM-C850_en.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_TASKalfa_250ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_TASKalfa_300ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_TASKalfa_400ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_TASKalfa_500ci.ppd.gz #usr/share/foomatic/db/source/PPD/Kyocera/es +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_CS-C2525E_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_CS-C3225E_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_CS-C3232E_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_CS-C4035E_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_CS_250ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_CS_300ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_CS_400ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_CS_500ci.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-1000_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-1030_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-1118MFP_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-1200_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-1700+_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-1700_es.ppd.gz @@ -713,6 +1048,7 @@ usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-5800C_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-5900C_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-600_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-6300_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-6500+_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-6700_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-680_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-6900_es.ppd.gz @@ -723,10 +1059,29 @@ usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-7028M_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-800_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-9000_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-9130DN_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-920_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-9530DN_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-C5015N_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-C5020N_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-C5025N_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-C5030N_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-C5100DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-C5200DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-C5300DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-C5350DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-C5400DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-C8100DN_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS_C8100DNP.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_KM-1820_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_KM-6030_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_KM-8030_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_KM-C2520_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_KM-C2525E_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_KM-C3225E_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_KM-C3225_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_KM-C3232E_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_KM-C3232_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_KM-C4035E_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_Mita_CS-1650_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_Mita_CS-1815_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_Mita_CS-2050_es.ppd.gz @@ -777,8 +1132,22 @@ usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_Mita_KM-7530_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_Mita_KM-C2630_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_Mita_KM-C830_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_Mita_KM-C850_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_TASKalfa_250ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_TASKalfa_300ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_TASKalfa_400ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_TASKalfa_500ci.ppd.gz #usr/share/foomatic/db/source/PPD/Kyocera/fr +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_CS-C2525E_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_CS-C3225E_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_CS-C3232E_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_CS-C4035E_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_CS_250ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_CS_300ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_CS_400ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_CS_500ci.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-1000_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-1030_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-1118MFP_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-1200_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-1700+_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-1700_fr.ppd.gz @@ -795,6 +1164,7 @@ usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-5800C_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-5900C_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-600_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-6300_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-6500+_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-6700_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-680_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-6900_fr.ppd.gz @@ -805,10 +1175,29 @@ usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-7028M_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-800_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-9000_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-9130DN_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-920_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-9530DN_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-C5015N_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-C5020N_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-C5025N_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-C5030N_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-C5100DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-C5200DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-C5300DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-C5350DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-C5400DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-C8100DN_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS_C8100DNP.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_KM-1820_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_KM-6030_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_KM-8030_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_KM-C2520_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_KM-C2525E_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_KM-C3225E_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_KM-C3225_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_KM-C3232E_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_KM-C3232_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_KM-C4035E_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_Mita_CS-1650_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_Mita_CS-1815_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_Mita_CS-2050_fr.ppd.gz @@ -859,18 +1248,34 @@ usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_Mita_KM-7530_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_Mita_KM-C2630_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_Mita_KM-C830_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_Mita_KM-C850_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_TASKalfa_250ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_TASKalfa_300ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_TASKalfa_400ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_TASKalfa_500ci.ppd.gz #usr/share/foomatic/db/source/PPD/Kyocera/it +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_CS-C2525E_it.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_CS-C3225E_it.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_CS-C3232E_it.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_CS-C4035E_it.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_CS_250ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_CS_300ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_CS_400ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_CS_500ci.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-1000_it.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-1030_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-1118MFP_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-1200_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-1700+_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-1700_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-1714M_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-1750_it.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-2000D_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-3700+_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-3700_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-3718M_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-3750_it.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-3900DN_it.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-4000DN_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-5800C_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-5900C_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-600_it.ppd.gz @@ -878,19 +1283,34 @@ usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-6300_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-6700_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-680_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-6900_it.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-6950DN_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-7000+_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-7000_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-7028M_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-800_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-9000_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-920_it.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-C5015N_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-C5020N_it.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-C5025N_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-C5030N_it.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-C5100DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-C5200DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-C5300DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-C5350DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-C5400DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-C8100DN_it.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS_C8100DNP.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_KM-1820_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_KM-3050_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_KM-4050_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_KM-5050_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_KM-6030_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_KM-8030_it.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_KM-C2525E_it.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_KM-C3225E_it.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_KM-C3232E_it.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_KM-C4035E_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_Mita_CS-1650_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_Mita_CS-1815_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_Mita_CS-2050_it.ppd.gz @@ -941,9 +1361,22 @@ usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_Mita_KM-7530_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_Mita_KM-C2630_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_Mita_KM-C830_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_Mita_KM-C850_it.ppd.gz -usr/share/foomatic/db/source/PPD/Kyocera/kyocera_ppd_8.2.txt +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_TASKalfa_250ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_TASKalfa_300ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_TASKalfa_400ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_TASKalfa_500ci.ppd.gz #usr/share/foomatic/db/source/PPD/Kyocera/pt +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_CS-C2525E_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_CS-C3225E_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_CS-C3232E_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_CS-C4035E_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_CS_250ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_CS_300ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_CS_400ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_CS_500ci.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-1000_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-1030_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-1118MFP_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-1200_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-1700+_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-1700_pt.ppd.gz @@ -960,6 +1393,7 @@ usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-5800C_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-5900C_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-600_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-6300_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-6500+_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-6700_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-680_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-6900_pt.ppd.gz @@ -970,10 +1404,29 @@ usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-7028M_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-800_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-9000_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-9130DN_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-920_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-9530DN_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-C5015N_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-C5020N_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-C5025N_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-C5030N_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-C5100DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-C5200DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-C5300DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-C5350DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-C5400DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-C8100DN_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS_C8100DNP.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_KM-1820_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_KM-6030_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_KM-8030_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_KM-C2520_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_KM-C2525E_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_KM-C3225E_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_KM-C3225_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_KM-C3232E_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_KM-C3232_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_KM-C4035E_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_Mita_CS-1650_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_Mita_CS-1815_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_Mita_CS-2050_pt.ppd.gz @@ -1024,6 +1477,10 @@ usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_Mita_KM-7530_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_Mita_KM-C2630_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_Mita_KM-C830_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_Mita_KM-C850_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_TASKalfa_250ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_TASKalfa_300ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_TASKalfa_400ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_TASKalfa_500ci.ppd.gz #usr/share/foomatic/db/source/PPD/Lanier #usr/share/foomatic/db/source/PPD/Lanier/PS usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-2132_PS.ppd.gz @@ -1071,6 +1528,12 @@ usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LD245_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LD328c_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LD335c_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LD345c_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LD_130CSR_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LD_130C_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LD_140CSR_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LD_140C_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LD_620C_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LD_625C_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LF510_515e_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP025N_LP026N_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP025_LP026_PS.ppd.gz @@ -1078,41 +1541,153 @@ usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP031c_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP032_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP116c_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP122c_LP121c_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP124w_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP125cx_LP126cn_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP127n_LP128n_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP128_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP131nL_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP131n_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP135n_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP136n_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP137CN_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP138c_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP142CN_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP145n_SP_8100DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP150dn_SP8200DN_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP175_LP175hdn_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP222cn_LP221c_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP226c_SP_C410_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP231c_SP_C411_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP235N_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP235c_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP331cn_SP_C420_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP332c_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP335c_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP37N_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP440c_SP_C811DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP540C_SPC820DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP550C_SPC821DN_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP_020c_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP_036c_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LW324_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LW326_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LW426_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LW5100_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LW7140_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP2500_LD125_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MPC1500_LD215c_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MPC4501A_LD645CA_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MPC5501A_LD655CA_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_1100_LD1100_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_1350_LD1135_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_1600_LD316_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_161_LD016_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_171_LD_117_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_2000_LD320d_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_2001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_201_LD_220_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_2352_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_2501_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_2510_LD325_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_2550B_LD425B_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_2550_LD425_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_2851_LD528_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_2852_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_3010_LD330_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_301_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_3350B_LD433B_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_3350_LD433_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_3351_LD533_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_3352_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_3500_LD335_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_4000B_LD040B_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_4000_LD040_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_4001_LD140_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_4002_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_4500_LD345_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_5000B_LD050B_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_5000_LD050_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_5001_LD150_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_5002_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_5500_LD255_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_6000_LD260_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_6001_LD360_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_6002_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_6500_LD265_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_7000_LD270_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_7001_LD370_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_7500_LD275_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_7502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_8000_LD280_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_8001_LD380_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_9000_LD190_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_9001_LD390_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_9002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C2050_LD520C_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C2500_LD425c_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C2550_LD525C_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C2800_LD528C_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C3000_LD430c_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C3001_LD630C_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C3002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C3003_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C300SR_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C300_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C305_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C3300_LD533C_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C3500_LD435c_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C3501_LD635C_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C3502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C3503_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C4000_LD540C_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C400SR_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C400_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C4500_LD445c_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C4501_LD645C_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C4502A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C4502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C4503_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C5000_LD550C_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C5501_LD655C_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C5502A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C5502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C5503_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C6000_LD260c_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C6003_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C6501_LD365C_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C6502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C7500_LD275c_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C7501_LD375C_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C8002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_CW2200_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-Pro_1106EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-Pro_1107EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-Pro_1356EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-Pro_1357EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-Pro_906EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-Pro_907EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-Pro_C5100S_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-Pro_C5110S_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-SP_4100NL_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-SP_4100N_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-SP_4110N_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-SP_4210N_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-SP_4310N_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-SP_5200DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-SP_5200S_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-SP_5210DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-SP_5210SF_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-SP_5210SR_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-SP_6330N_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-SP_8300DN_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-SP_9100_LP275_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-SP_C320DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-SP_C400DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-SP_C430DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-SP_C431DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-SP_C730DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-SP_C830DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-SP_C831DN_PS.ppd.gz #usr/share/foomatic/db/source/PPD/Lanier/PXL usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-5622_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-5627_PXL.ppd.gz @@ -1151,24 +1726,176 @@ usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-LD245_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-LD328c_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-LD335c_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-LD345c_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-LD_130CSR_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-LD_130C_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-LD_140CSR_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-LD_140C_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-LD_620C_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-LD_625C_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP2500_LD125_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MPC1500_LD215c_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MPC4501A_LD645CA_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MPC5501A_LD655CA_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_1100_LD1100_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_1350_LD1135_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_1600_LD316_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_161_LD016_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_171_LD_117_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_2000_LD320d_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_2001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_201_LD_220_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_2352_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_2501_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_2510_LD325_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_2550B_LD425B_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_2550_LD425_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_2851_LD528_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_2852_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_3010_LD330_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_3350B_LD433B_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_3350_LD433_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_3351_LD533_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_3352_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_3500_LD335_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_4000B_LD040B_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_4000_LD040_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_4001_LD140_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_4002_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_4500_LD345_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_5000B_LD050B_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_5000_LD050_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_5001_LD150_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_5002_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_5500_LD255_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_6000_LD260_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_6001_LD360_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_6002_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_6500_LD265_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_7000_LD270_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_7001_LD370_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_7500_LD275_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_7502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_8000_LD280_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_8001_LD380_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_9000_LD190_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_9001_LD390_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_9002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C2050_LD520C_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C2500_LD425c_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C2550_LD525C_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C2800_LD528C_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C3000_LD430c_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C3001_LD630C_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C3002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C3003_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C300SR_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C300_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C3300_LD533C_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C3500_LD435c_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C3501_LD635C_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C3502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C3503_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C4000_LD540C_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C400SR_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C400_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C4500_LD445c_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C4501_LD645C_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C4502A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C4502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C4503_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C5000_LD550C_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C5501_LD655C_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C5502A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C5502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C5503_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C6000_LD260c_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C6003_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C6501_LD365C_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C6502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C7500_LD275c_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C7501_LD375C_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C8002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-Pro_1106EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-Pro_1107EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-Pro_1356EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-Pro_1357EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-Pro_906EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-Pro_907EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-Pro_C5100S_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-Pro_C5110S_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-SG3100SNw_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-SG3110SFNw_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_6500e_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C510.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C520.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C522.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C524.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C540.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C543.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C544.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C546.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C734.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C736.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C750.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C752.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C780.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C782.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C790_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C910.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C912.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C920_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C930.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C935.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C950_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_E260.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_E260d.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_E260dn.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_E350d.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_E352dn.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_E360d.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_E360dn.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_E460dn.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_E460dw.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_E462dtn.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_EG460dn.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_T650.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_T652.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_T654.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_T656.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_TG654.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_W850.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X203n.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X204n.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X264dn.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X363dn.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X364dn.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X364dw.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X463de.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X464de.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X466de.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X466dte.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X466dwe.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X543.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X544.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X546.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X548_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X651de.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X652de.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X654de.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X656de.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X658de.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X734de.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X736de.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X738de.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X790_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X860de.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X862de.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X864de.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X920_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X940e.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X945e.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X950_Series.ppd.gz #usr/share/foomatic/db/source/PPD/NRG #usr/share/foomatic/db/source/PPD/NRG/PS usr/share/foomatic/db/source/PPD/NRG/PS/NRG-10515_10518_10512_PS.ppd.gz @@ -1229,20 +1956,96 @@ usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_1100_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_1350_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_1600_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_161_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_171_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_2000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_2001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_201_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_2352_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_2500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_2501_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_2510_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_2550B_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_2550_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_2851_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_2852_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_3010_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_301_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_3350B_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_3350_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_3351_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_3352_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_3500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_4000B_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_4000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_4001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_4002_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_4500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_5000B_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_5000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_5001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_5002_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_5500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_6000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_6001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_6002_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_6500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_7000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_7001_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_7500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_7502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_8000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_8001_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_9000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_9001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_9002_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C1500sp_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C2050_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C2051_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C2500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C2550_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C2551_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C2800_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C3000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C3001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C3002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C3003_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C300SR_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C300_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C305_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C3300_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C3500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C3501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C3502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C3503_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C4000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C400SR_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C400_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C4500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C4501A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C4501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C4502A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C4502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C4503_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C5000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C5501A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C5501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C5502A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C5502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C5503_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C6000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C6003_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C6501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C6502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C7500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C7501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C8002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_CW2200_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_W2400_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_W2401_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_W3600_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_W3601_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_W5100_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_W7140_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-P7026N_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-P7026_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-P7032_PS.ppd.gz @@ -1257,11 +2060,42 @@ usr/share/foomatic/db/source/PPD/NRG/PS/NRG-P7527_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-P7527n_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-P7535n_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-P7575_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-Pro_1106EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-Pro_1107EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-Pro_1356EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-Pro_1357EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-Pro_906EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-Pro_907EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-Pro_C5100S_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-Pro_C5110S_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_4100NL_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_4100N_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_4110N_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_4210N_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_4310N_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_5200DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_5200S_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_5210DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_5210SF_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_5210SR_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_6330N_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_8100DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_8200DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_8300DN_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_9100DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_C320DN_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_C410DN_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_C411DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_C420DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_C430DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_C431DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_C730DN_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_C811DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_C820DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_C821DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_C830DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_C831DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_W2470_PS.ppd.gz #usr/share/foomatic/db/source/PPD/NRG/PXL usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-10515_10518_10512_PXL.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-2205_2238_2212_PXL.ppd.gz @@ -1304,20 +2138,100 @@ usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_1100_PXL.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_1350_PXL.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_1600_PXL.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_161_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_171_PXL.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_2000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_2001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_201_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_2352_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_2500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_2501_PXL.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_2510_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_2550B_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_2550_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_2851_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_2852_PXL.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_3010_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_3350B_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_3350_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_3351_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_3352_PXL.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_3500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_4000B_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_4000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_4001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_4002_PXL.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_4500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_5000B_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_5000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_5001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_5002_PXL.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_5500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_6000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_6001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_6002_PXL.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_6500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_7000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_7001_PXL.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_7500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_7502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_8000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_8001_PXL.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_9000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_9001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_9002_PXL.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C1500sp_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C2050_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C2051_PXL.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C2500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C2550_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C2551_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C2800_PXL.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C3000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C3001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C3002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C3003_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C300SR_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C300_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C3300_PXL.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C3500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C3501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C3502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C3503_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C4000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C400SR_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C400_PXL.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C4500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C4501A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C4501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C4502A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C4502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C4503_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C5000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C5501A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C5501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C5502A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C5502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C5503_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C6000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C6003_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C6501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C6502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C7500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C7501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C8002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-Pro_1106EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-Pro_1107EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-Pro_1356EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-Pro_1357EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-Pro_906EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-Pro_907EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-Pro_C5100S_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-Pro_C5110S_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-SG2100N_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-SG3100SNw_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-SG3110DN_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-SG3110DNw_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-SG3110SFNw_PXL.ppd.gz #usr/share/foomatic/db/source/PPD/Oce #usr/share/foomatic/db/source/PPD/Oce/Oce-3145PS #usr/share/foomatic/db/source/PPD/Oce/Oce-3145PS/1 @@ -1389,43 +2303,36 @@ usr/share/foomatic/db/source/PPD/Oce/Oce-VarioPrint_2105PS/1/OCVP2105.ppd.gz #usr/share/foomatic/db/source/PPD/Oce/Oce-VarioPrint_2110PS/1 usr/share/foomatic/db/source/PPD/Oce/Oce-VarioPrint_2110PS/1/OCVP2110.ppd.gz #usr/share/foomatic/db/source/PPD/Oce/Others -usr/share/foomatic/db/source/PPD/Oce/Others/OC2050_3.ppd.gz -usr/share/foomatic/db/source/PPD/Oce/Others/OC2060_3.ppd.gz -usr/share/foomatic/db/source/PPD/Oce/Others/OC2070_3.ppd.gz +usr/share/foomatic/db/source/PPD/Oce/Others/IM8530_1.ppd.gz usr/share/foomatic/db/source/PPD/Oce/Others/OC3145_2.ppd.gz -usr/share/foomatic/db/source/PPD/Oce/Others/OC3145_3.ppd.gz usr/share/foomatic/db/source/PPD/Oce/Others/OC3155_2.ppd.gz -usr/share/foomatic/db/source/PPD/Oce/Others/OC3155_3.ppd.gz usr/share/foomatic/db/source/PPD/Oce/Others/OC3165_2.ppd.gz -usr/share/foomatic/db/source/PPD/Oce/Others/OC3165_3.ppd.gz usr/share/foomatic/db/source/PPD/Oce/Others/OC8445_2.ppd.gz -usr/share/foomatic/db/source/PPD/Oce/Others/OC8445_3.ppd.gz usr/share/foomatic/db/source/PPD/Oce/Others/OC8465_2.ppd.gz -usr/share/foomatic/db/source/PPD/Oce/Others/OC8465_3.ppd.gz usr/share/foomatic/db/source/PPD/Oce/Others/OC9230_2.ppd.gz usr/share/foomatic/db/source/PPD/Oce/Others/OC9245_2.ppd.gz usr/share/foomatic/db/source/PPD/Oce/Others/OC9260_2.ppd.gz -usr/share/foomatic/db/source/PPD/Oce/Others/OCVP2090.ppd.gz -usr/share/foomatic/db/source/PPD/Oce/Others/OCVP2105.ppd.gz -#usr/share/foomatic/db/source/PPD/Okidata -usr/share/foomatic/db/source/PPD/Okidata/OK5700_a.ppd.gz -usr/share/foomatic/db/source/PPD/Okidata/OK5900_a.ppd.gz -usr/share/foomatic/db/source/PPD/Okidata/OK6100_a.ppd.gz -usr/share/foomatic/db/source/PPD/Okidata/ok4300u1.ppd.gz -usr/share/foomatic/db/source/PPD/Okidata/ok5300u1.ppd.gz -usr/share/foomatic/db/source/PPD/Okidata/ok5400u1.ppd.gz -usr/share/foomatic/db/source/PPD/Okidata/ok5450u1.ppd.gz -usr/share/foomatic/db/source/PPD/Okidata/ok7100u1.ppd.gz -usr/share/foomatic/db/source/PPD/Okidata/ok7200u1.ppd.gz -usr/share/foomatic/db/source/PPD/Okidata/ok7300u1.ppd.gz -usr/share/foomatic/db/source/PPD/Okidata/ok7400u1.ppd.gz -usr/share/foomatic/db/source/PPD/Okidata/ok7500u1.ppd.gz -usr/share/foomatic/db/source/PPD/Okidata/ok9200u1.ppd.gz -usr/share/foomatic/db/source/PPD/Okidata/ok9300u1.ppd.gz -usr/share/foomatic/db/source/PPD/Okidata/ok9400u1.ppd.gz -usr/share/foomatic/db/source/PPD/Okidata/ok9500u1.ppd.gz -usr/share/foomatic/db/source/PPD/Okidata/ok9600u1a.ppd.gz -usr/share/foomatic/db/source/PPD/Okidata/okop14u1.ppd.gz +usr/share/foomatic/db/source/PPD/Oki +usr/share/foomatic/db/source/PPD/Oki/OK5700_a.ppd.gz +usr/share/foomatic/db/source/PPD/Oki/OK5900_a.ppd.gz +usr/share/foomatic/db/source/PPD/Oki/OK6100_a.ppd.gz +usr/share/foomatic/db/source/PPD/Oki/OK8800_a.ppd.gz +usr/share/foomatic/db/source/PPD/Oki/ok4300u1.ppd.gz +usr/share/foomatic/db/source/PPD/Oki/ok4350u1.ppd.gz +usr/share/foomatic/db/source/PPD/Oki/ok5300u1.ppd.gz +usr/share/foomatic/db/source/PPD/Oki/ok5400u1.ppd.gz +usr/share/foomatic/db/source/PPD/Oki/ok5450u1.ppd.gz +usr/share/foomatic/db/source/PPD/Oki/ok7100u1.ppd.gz +usr/share/foomatic/db/source/PPD/Oki/ok7200u1.ppd.gz +usr/share/foomatic/db/source/PPD/Oki/ok7300u1.ppd.gz +usr/share/foomatic/db/source/PPD/Oki/ok7400u1.ppd.gz +usr/share/foomatic/db/source/PPD/Oki/ok7500u1.ppd.gz +usr/share/foomatic/db/source/PPD/Oki/ok9200u1.ppd.gz +usr/share/foomatic/db/source/PPD/Oki/ok9300u1.ppd.gz +usr/share/foomatic/db/source/PPD/Oki/ok9400u1.ppd.gz +usr/share/foomatic/db/source/PPD/Oki/ok9500u1.ppd.gz +usr/share/foomatic/db/source/PPD/Oki/ok9600u1a.ppd.gz +usr/share/foomatic/db/source/PPD/Oki/okop14u1.ppd.gz #usr/share/foomatic/db/source/PPD/Ricoh #usr/share/foomatic/db/source/PPD/Ricoh/PS usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_1022_PS.ppd.gz @@ -1501,24 +2408,114 @@ usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_1100_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_1350_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_1600_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_161_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_171_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_2000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_201_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_2352_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_2500_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_2510_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_2550B_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_2550_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_2851_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_2852_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_3010_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_301_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_3350B_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_3350_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_3351_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_3352_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_3500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_4000B_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_4000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_4001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_4002_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_4500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_5000B_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_5000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_5001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_5002_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_5500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_6000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_6001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_6002_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_6500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_7000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_7001_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_7500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_7502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_8000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_8001_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_9000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_9001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_9002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C2050_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C2051_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C2500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C2550_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C2551_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C2800_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C3000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C3001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C3002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C300SR_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C300_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C305_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C3300_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C3500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C3501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C3502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C4000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C400SR_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C400_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C4500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C4501A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C4501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C4502A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C4502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C5000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C5501A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C5501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C5502A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C5502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C6000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C6501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C7500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C7501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_W2400_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_W2401_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_W3600_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_W3601_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_W5100_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_W7140_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_4100NL_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_4100N_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_4110N_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_4210N_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_4310N_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_5200DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_5200S_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_5210DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_5210SF_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_5210SR_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_6330N_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_8100DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_8200DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_8300DN_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_9100DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_C320DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_C400DN_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_C410DN_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_C411DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_C420DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_C430DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_C431DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_C730DN_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_C811DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_C820DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_C821DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_C830DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_C831DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_W2470_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-ColorLaser_AP828_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-DDP_70_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-DDP_92_PS.ppd.gz @@ -1528,8 +2525,31 @@ usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-LASER_AP2600N_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-LASER_AP2600_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-LASER_AP2610N_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-LASER_AP2610_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-MP_2001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-MP_2501_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-MP_C1500_615C_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-MP_C3003_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-MP_C3503_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-MP_C4503_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-MP_C5503_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-MP_C6003_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-MP_C6502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-MP_C8002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-MP_CW2200_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Pro_1106EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Pro_1107EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Pro_1356EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Pro_1357EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Pro_906EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Pro_907EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Pro_C5100S_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Pro_C5110S_PS.ppd.gz #usr/share/foomatic/db/source/PPD/Ricoh/PXL +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-AficioSG2100N_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-AficioSG3100SNw_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-AficioSG3110DN_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-AficioSG3110DNw_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-AficioSG3110SFNw_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_1022_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_1027_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_1032_PXL.ppd.gz @@ -1571,22 +2591,181 @@ usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_1100_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_1350_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_1600_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_161_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_171_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_2000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_201_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_2352_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_2500_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_2510_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_2550B_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_2550_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_2851_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_2852_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_3010_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_3350B_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_3350_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_3351_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_3352_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_3500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_4000B_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_4000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_4001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_4002_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_4500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_5000B_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_5000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_5001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_5002_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_5500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_6000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_6001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_6002_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_6500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_7000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_7001_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_7500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_7502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_8000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_8001_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_9000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_9001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_9002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C2050_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C2051_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C2500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C2550_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C2551_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C2800_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C3000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C3001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C3002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C300SR_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C300_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C3300_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C3500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C3501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C3502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C4000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C400SR_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C400_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C4500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C4501A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C4501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C4502A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C4502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C5000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C5501A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C5501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C5502A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C5502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C6000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C6501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C7500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C7501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-GX_3050N_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-GX_3050SFN_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-GX_5050N_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-GX_E3350N_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-GX_E5550N_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-MP_2001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-MP_2501_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-MP_C1500_615C_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-MP_C3003_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-MP_C3503_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-MP_C4503_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-MP_C5503_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-MP_C6003_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-MP_C6502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-MP_C8002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Pro_1106EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Pro_1107EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Pro_1356EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Pro_1357EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Pro_906EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Pro_907EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Pro_C5100S_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Pro_C5110S_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung +usr/share/foomatic/db/source/PPD/Samsung/PS +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLP-350_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLP-410_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLP-660_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLP-670_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLP-680_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLP-770_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLP-775_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLX-3300_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLX-4190_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLX-6200_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLX-6220_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLX-6240_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLX-6250_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLX-6260_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLX-8380_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLX-8385X_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLX-8385_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLX-8540_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLX-8640_8650_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLX-9250_9350_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLX-9252_9352_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLX-92x1_93x1_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLX-981x_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLX-982x_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_M337x_387x_407x_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_ML-2150_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_ML-2550_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_ML-2570_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_ML-2850_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_ML-2853_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_ML-2855_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_ML-3470_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_ML-3475_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_ML-371x_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_ML-375x_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_ML-4050_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_ML-4055_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_ML-451x_501x_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_ML-4550_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_ML-4555_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_ML-551x_651x_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_ML-8850_8950_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_ML-8x00_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_SCX-483x_5x3x_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_SCX-4x28_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_SCX-5635_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_SCX-5835_5935X_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_SCX-5835_5935_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_SCX-6545X_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_SCX-6545_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_SCX-681x_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_SCX-6x20_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_SCX-6x22_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_SCX-6x45_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_SCX-6x55X_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_SCX-6x55_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_SCX-8030_8040_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_SCX-8123_8128_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_SCX-8230_8240_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_SCX-881x_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_SCX-882x_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PXL +usr/share/foomatic/db/source/PPD/Samsung/PXL/Samsung_CLP-610_Series_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PXL/Samsung_CLP-620_Series_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PXL/Samsung_M262x_282x_Series_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PXL/Samsung_M267x_287x_Series_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PXL/Samsung_ML-2525W_Series_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PXL/Samsung_ML-2580_Series_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PXL/Samsung_ML-2950_Series_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PXL/Samsung_SCX-470x_Series_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PXL/Samsung_SCX-472x_Series_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PXL/Samsung_SCX-4x24_Series_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PXL/Samsung_SCX-4x25_Series_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PXL/Samsung_SCX-4x26_Series_PXL.ppd.gz #usr/share/foomatic/db/source/PPD/Savin #usr/share/foomatic/db/source/PPD/Savin/PS +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-2404WDP_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-2404WD_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-2406WD_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-2522_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-2527_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-2532_PS.ppd.gz @@ -1594,6 +2773,7 @@ usr/share/foomatic/db/source/PPD/Savin/PS/Savin-2535_2235_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-2545_2245_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-2560_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-2575_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-3406WD_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-3515_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-40105_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-4015_PS.ppd.gz @@ -1609,6 +2789,9 @@ usr/share/foomatic/db/source/PPD/Savin/PS/Savin-4051_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-4060_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-4075_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-4090_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-5100WD_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-7025_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-7140WD_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-8016_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-8020_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-8020d_PS.ppd.gz @@ -1621,14 +2804,35 @@ usr/share/foomatic/db/source/PPD/Savin/PS/Savin-8035e_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-8045_8045g_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-8045e_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-8055_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-8060_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-8065_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-8070_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-8075_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-8080_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-8090_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-8110_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-8135_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-816_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-9016_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-9021d_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-9025_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-9025b_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-9033_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-9033b_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-9040_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-9040b_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-9050_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-9050b_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-9060_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-9070_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-9080_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-9090_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-917_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-920_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-9228_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-9233_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-9240_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-9250_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C2408_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C2410_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C2524_PS.ppd.gz @@ -1636,18 +2840,37 @@ usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C2525_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C2532_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C2820_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C2824_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C2828_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C3030_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C3210_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C3210e_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C3224_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C3333_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C3528_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C3535_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C3828_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C4040_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C4535_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C4540_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C5050_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C6045_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C6055_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C7570_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C9020_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C9025_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C9065_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C9075_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C9120_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C9125_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C9130_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C9135_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C9145A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C9145_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C9155A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C9155_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-CLP1036_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-CLP128_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-CLP131DN_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-CLP135_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-CLP1620_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-CLP17_PS.ppd.gz @@ -1658,28 +2881,89 @@ usr/share/foomatic/db/source/PPD/Savin/PS/Savin-CLP26DN_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-CLP27DN_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-CLP28_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-CLP31DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-CLP340D_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-CLP350D_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-CLP35_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-CLP37DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-CLP42DN_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-CLP831_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C_230SR_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C_230_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C_240SR_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C_240_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-FAX3799_3799nf_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MLP145_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MLP150DN_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MLP175n_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MLP235n_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MLP25_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MLP25n_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MLP26_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MLP26n_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MLP28_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MLP28n_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MLP31nL_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MLP31n_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MLP32_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MLP35n_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MLP36n_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MLP37N_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MLP45_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MLP75n_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_2352_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_2501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_2852_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_301_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_3352_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_4002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_5002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_6002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_7502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_9002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_C3002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_C3003_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_C305_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_C3502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_C3503_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_C4502A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_C4502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_C4503_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_C5502A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_C5502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_C5503_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_C6003_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_C6502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_C8002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_CW2200_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-Pro_1106EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-Pro_1107EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-Pro_1356EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-Pro_1357EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-Pro_906EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-Pro_907EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-Pro_C5100S_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-Pro_C5110S_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-SDC555_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-SGC_1506_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-SLP26_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-SLP26n_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-SLP32_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-SLP38c_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-SP_4310N_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-SP_5200DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-SP_5200S_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-SP_5210DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-SP_5210SF_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-SP_5210SR_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-SP_8300DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-SP_C320DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-SP_C400DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-SP_C730DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-SP_C830DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-SP_C831DN_PS.ppd.gz #usr/share/foomatic/db/source/PPD/Savin/PXL +usr/share/foomatic/db/source/PPD/Savin/PXL/SAVIN-SG3110DN_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/SAVIN-SG3110DNw_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-2522_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-2527_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-2532_PXL.ppd.gz @@ -1702,6 +2986,7 @@ usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-4051_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-4060_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-4075_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-4090_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-7025_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-8016_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-8020_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-8020d_PXL.ppd.gz @@ -1714,46 +2999,115 @@ usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-8035e_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-8045_8045g_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-8045e_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-8055_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-8060_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-8065_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-8070_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-8075_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-8080_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-8090_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-8110_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-8135_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-816_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-9016_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-9021d_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-9025_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-9025b_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-9033_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-9033b_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-9040_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-9040b_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-9050_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-9050b_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-9060_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-9070_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-9080_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-9090_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-917_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-920_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-9228_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-9233_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-9240_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-9250_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C2410_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C2525_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C2824_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C2828_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C3030_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C3210e_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C3333_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C3528_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C3535_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C4040_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C4535_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C4540_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C5050_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C6045_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C6055_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C7570_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C9020_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C9025_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C9065_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C9075_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C9120_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C9125_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C9130_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C9135_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C9145A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C9145_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C9155A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C9155_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C_230SR_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C_230_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C_240SR_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C_240_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_2352_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_2501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_2852_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_3352_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_4002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_5002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_6002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_7502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_9002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_C3002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_C3003_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_C3502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_C3503_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_C4502A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_C4502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_C4503_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_C5502A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_C5502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_C5503_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_C6003_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_C6502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_C8002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-Pro_1106EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-Pro_1107EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-Pro_1356EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-Pro_1357EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-Pro_906EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-Pro_907EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-Pro_C5100S_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-Pro_C5110S_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-SDC555_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-SG3100SNw_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-SG3110SFNw_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-SGC_1506_PXL.ppd.gz #usr/share/foomatic/db/source/PPD/Sharp usr/share/foomatic/db/source/PPD/Sharp/Sharp-MX-2300FG-ps-jp.ppd.gz -usr/share/foomatic/db/source/PPD/Sharp/Sharp-MX-2300G-ps-jp.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/Sharp-MX-2300G-ps.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/Sharp-MX-2300N-ps.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/Sharp-MX-2700FG-ps-jp.ppd.gz -usr/share/foomatic/db/source/PPD/Sharp/Sharp-MX-2700G-ps-jp.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/Sharp-MX-2700G-ps.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/Sharp-MX-2700N-ps.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/Sharp-MX-3500FN-ps-jp.ppd.gz -usr/share/foomatic/db/source/PPD/Sharp/Sharp-MX-3500N-ps-jp.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/Sharp-MX-3500N-ps.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/Sharp-MX-3501FN-ps-jp.ppd.gz -usr/share/foomatic/db/source/PPD/Sharp/Sharp-MX-3501N-ps-jp.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/Sharp-MX-3501N-ps.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/Sharp-MX-4500FN-ps-jp.ppd.gz -usr/share/foomatic/db/source/PPD/Sharp/Sharp-MX-4500N-ps-jp.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/Sharp-MX-4500N-ps.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/Sharp-MX-4501FN-ps-jp.ppd.gz -usr/share/foomatic/db/source/PPD/Sharp/Sharp-MX-4501N-ps-jp.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/Sharp-MX-4501N-ps.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/sc170fpj.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/sc172fpj.ppd.gz @@ -1823,7 +3177,6 @@ usr/share/foomatic/db/source/PPD/Sharp/sharm237.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/sharm276.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/sharm277.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/shc260fj.ppd.gz -usr/share/foomatic/db/source/PPD/Sharp/shc260mj.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/shc260sj.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/shc261fj.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/shc261mj.ppd.gz @@ -1838,27 +3191,28 @@ usr/share/foomatic/db/source/PPD/Toshiba/TOSHIBA_EST4511_451c_CUPS.ppd.gz usr/share/foomatic/db/source/PPD/Toshiba/TOSHIBA_EST850_CUPS.ppd.gz usr/share/foomatic/db/source/PPD/Toshiba/Toshiba_GL1010_CUPS.ppd.gz usr/share/foomatic/db/source/PPD/Toshiba/Toshiba_GL1020_CUPS.ppd.gz -usr/share/foomatic/db/source/PPD/bzrAddPPD.sh -usr/share/foomatic/db/source/PPD/bzrAddXML.sh -usr/share/foomatic/db/source/PPD/generateBZRScript.sh #usr/share/foomatic/db/source/driver -usr/share/foomatic/db/source/driver/PM760p.upp.xml -usr/share/foomatic/db/source/driver/PM760pl.upp.xml -usr/share/foomatic/db/source/driver/PM820p.upp.xml -usr/share/foomatic/db/source/driver/PM820pl.upp.xml +usr/share/foomatic/db/source/driver/Postscript-Brother.xml +usr/share/foomatic/db/source/driver/Postscript-Epson.xml +usr/share/foomatic/db/source/driver/Postscript-Gestetner.xml +usr/share/foomatic/db/source/driver/Postscript-HP.xml +usr/share/foomatic/db/source/driver/Postscript-InfoPrint.xml +usr/share/foomatic/db/source/driver/Postscript-Infotec.xml +usr/share/foomatic/db/source/driver/Postscript-KONICA_MINOLTA.xml +usr/share/foomatic/db/source/driver/Postscript-Kyocera.xml +usr/share/foomatic/db/source/driver/Postscript-Lanier.xml +usr/share/foomatic/db/source/driver/Postscript-Lexmark.xml +usr/share/foomatic/db/source/driver/Postscript-NRG.xml +usr/share/foomatic/db/source/driver/Postscript-Oce.xml +usr/share/foomatic/db/source/driver/Postscript-Oki.xml +usr/share/foomatic/db/source/driver/Postscript-Ricoh.xml +usr/share/foomatic/db/source/driver/Postscript-Samsung.xml +usr/share/foomatic/db/source/driver/Postscript-Savin.xml +usr/share/foomatic/db/source/driver/Postscript-Sharp.xml +usr/share/foomatic/db/source/driver/Postscript-Toshiba.xml usr/share/foomatic/db/source/driver/Postscript.xml -usr/share/foomatic/db/source/driver/Stc670p.upp.xml -usr/share/foomatic/db/source/driver/Stc670pl.upp.xml -usr/share/foomatic/db/source/driver/Stc680p.upp.xml -usr/share/foomatic/db/source/driver/Stc680pl.upp.xml -usr/share/foomatic/db/source/driver/Stc760p.upp.xml -usr/share/foomatic/db/source/driver/Stc760pl.upp.xml -usr/share/foomatic/db/source/driver/Stc777p.upp.xml -usr/share/foomatic/db/source/driver/Stc777pl.upp.xml -usr/share/foomatic/db/source/driver/Stp720p.upp.xml -usr/share/foomatic/db/source/driver/Stp720pl.upp.xml -usr/share/foomatic/db/source/driver/Stp870p.upp.xml -usr/share/foomatic/db/source/driver/Stp870pl.upp.xml +usr/share/foomatic/db/source/driver/Postscript1.xml +usr/share/foomatic/db/source/driver/Postscript2-Oce.xml usr/share/foomatic/db/source/driver/ap3250.xml usr/share/foomatic/db/source/driver/appledmp.xml usr/share/foomatic/db/source/driver/bj10.xml @@ -1866,51 +3220,22 @@ usr/share/foomatic/db/source/driver/bj10e.xml usr/share/foomatic/db/source/driver/bj10v.xml usr/share/foomatic/db/source/driver/bj10vh.xml usr/share/foomatic/db/source/driver/bj200.xml -usr/share/foomatic/db/source/driver/bj8gc12f.upp.xml -usr/share/foomatic/db/source/driver/bj8hg12f.upp.xml -usr/share/foomatic/db/source/driver/bj8oh06n.upp.xml -usr/share/foomatic/db/source/driver/bj8pa06n.upp.xml -usr/share/foomatic/db/source/driver/bj8pp12f.upp.xml -usr/share/foomatic/db/source/driver/bj8ts06n.upp.xml +usr/share/foomatic/db/source/driver/bj8XXYYZ.upp.xml usr/share/foomatic/db/source/driver/bjc250gs.xml usr/share/foomatic/db/source/driver/bjc600.xml -usr/share/foomatic/db/source/driver/bjc6000a1.upp.xml -usr/share/foomatic/db/source/driver/bjc6000b1.upp.xml -usr/share/foomatic/db/source/driver/bjc610a0.upp.xml -usr/share/foomatic/db/source/driver/bjc610a1.upp.xml -usr/share/foomatic/db/source/driver/bjc610a2.upp.xml -usr/share/foomatic/db/source/driver/bjc610a3.upp.xml -usr/share/foomatic/db/source/driver/bjc610a4.upp.xml -usr/share/foomatic/db/source/driver/bjc610a5.upp.xml -usr/share/foomatic/db/source/driver/bjc610a6.upp.xml -usr/share/foomatic/db/source/driver/bjc610a7.upp.xml -usr/share/foomatic/db/source/driver/bjc610a8.upp.xml -usr/share/foomatic/db/source/driver/bjc610b1.upp.xml -usr/share/foomatic/db/source/driver/bjc610b2.upp.xml -usr/share/foomatic/db/source/driver/bjc610b3.upp.xml -usr/share/foomatic/db/source/driver/bjc610b4.upp.xml -usr/share/foomatic/db/source/driver/bjc610b6.upp.xml -usr/share/foomatic/db/source/driver/bjc610b7.upp.xml -usr/share/foomatic/db/source/driver/bjc610b8.upp.xml usr/share/foomatic/db/source/driver/bjc800.xml usr/share/foomatic/db/source/driver/bjc800j.xml usr/share/foomatic/db/source/driver/bjc880j.xml usr/share/foomatic/db/source/driver/c2050.xml usr/share/foomatic/db/source/driver/c2070.xml +usr/share/foomatic/db/source/driver/c2esp.xml usr/share/foomatic/db/source/driver/capt.xml -usr/share/foomatic/db/source/driver/cdj1600.xml usr/share/foomatic/db/source/driver/cdj500.xml -usr/share/foomatic/db/source/driver/cdj550.upp.xml usr/share/foomatic/db/source/driver/cdj550.xml -usr/share/foomatic/db/source/driver/cdj670.xml -usr/share/foomatic/db/source/driver/cdj850.xml -usr/share/foomatic/db/source/driver/cdj880.xml -usr/share/foomatic/db/source/driver/cdj890.xml -usr/share/foomatic/db/source/driver/cdj970.xml +usr/share/foomatic/db/source/driver/cdnj500.xml usr/share/foomatic/db/source/driver/chp2200.xml usr/share/foomatic/db/source/driver/cjet.xml usr/share/foomatic/db/source/driver/cljet5.xml -usr/share/foomatic/db/source/driver/cljet5c.xml usr/share/foomatic/db/source/driver/cp50.xml usr/share/foomatic/db/source/driver/declj250.xml usr/share/foomatic/db/source/driver/deskjet.xml @@ -1922,23 +3247,35 @@ usr/share/foomatic/db/source/driver/eplaser-jp.xml usr/share/foomatic/db/source/driver/eplaser.xml usr/share/foomatic/db/source/driver/eps9high.xml usr/share/foomatic/db/source/driver/eps9mid.xml +usr/share/foomatic/db/source/driver/epson-escpr.xml usr/share/foomatic/db/source/driver/epson.xml usr/share/foomatic/db/source/driver/epsonc.xml usr/share/foomatic/db/source/driver/epsonepl.xml usr/share/foomatic/db/source/driver/escpage.xml usr/share/foomatic/db/source/driver/fmlbp.xml usr/share/foomatic/db/source/driver/fmpr.xml +usr/share/foomatic/db/source/driver/foo2hbpl2.xml +usr/share/foomatic/db/source/driver/foo2hiperc.xml usr/share/foomatic/db/source/driver/foo2hp.xml usr/share/foomatic/db/source/driver/foo2kyo.xml usr/share/foomatic/db/source/driver/foo2lava.xml +usr/share/foomatic/db/source/driver/foo2oak-z1.xml +usr/share/foomatic/db/source/driver/foo2oak.xml usr/share/foomatic/db/source/driver/foo2qpdl.xml +usr/share/foomatic/db/source/driver/foo2slx.xml usr/share/foomatic/db/source/driver/foo2xqx.xml +usr/share/foomatic/db/source/driver/foo2zjs-z1.xml +usr/share/foomatic/db/source/driver/foo2zjs-z2.xml +usr/share/foomatic/db/source/driver/foo2zjs-z3.xml usr/share/foomatic/db/source/driver/foo2zjs.xml usr/share/foomatic/db/source/driver/gdi.xml usr/share/foomatic/db/source/driver/gutenprint.xml usr/share/foomatic/db/source/driver/hl1250.xml usr/share/foomatic/db/source/driver/hl7x0.xml -usr/share/foomatic/db/source/driver/hpijs.xml +usr/share/foomatic/db/source/driver/hpijs-pcl3.xml +usr/share/foomatic/db/source/driver/hpijs-pcl5c.xml +usr/share/foomatic/db/source/driver/hpijs-pcl5e.xml +usr/share/foomatic/db/source/driver/hplip.xml usr/share/foomatic/db/source/driver/ibmpro.xml usr/share/foomatic/db/source/driver/imagen.xml usr/share/foomatic/db/source/driver/iwhi.xml @@ -1948,7 +3285,6 @@ usr/share/foomatic/db/source/driver/jetp3852.xml usr/share/foomatic/db/source/driver/jj100.xml usr/share/foomatic/db/source/driver/la50.xml usr/share/foomatic/db/source/driver/la70.xml -usr/share/foomatic/db/source/driver/la70t.xml usr/share/foomatic/db/source/driver/la75.xml usr/share/foomatic/db/source/driver/la75plus.xml usr/share/foomatic/db/source/driver/laserjet.xml @@ -1956,6 +3292,7 @@ usr/share/foomatic/db/source/driver/lbp310.xml usr/share/foomatic/db/source/driver/lbp320.xml usr/share/foomatic/db/source/driver/lbp660.xml usr/share/foomatic/db/source/driver/lbp8.xml +usr/share/foomatic/db/source/driver/lbp800.xml usr/share/foomatic/db/source/driver/lex5700.xml usr/share/foomatic/db/source/driver/lex7000.xml usr/share/foomatic/db/source/driver/lips2p.xml @@ -1966,7 +3303,6 @@ usr/share/foomatic/db/source/driver/lj250.xml usr/share/foomatic/db/source/driver/lj4dith.xml usr/share/foomatic/db/source/driver/lj4dithp.xml usr/share/foomatic/db/source/driver/lj5gray.xml -usr/share/foomatic/db/source/driver/lj5mono.xml usr/share/foomatic/db/source/driver/ljet2p.xml usr/share/foomatic/db/source/driver/ljet3.xml usr/share/foomatic/db/source/driver/ljet3d.xml @@ -1980,7 +3316,6 @@ usr/share/foomatic/db/source/driver/lp2563.xml usr/share/foomatic/db/source/driver/lp8000.xml usr/share/foomatic/db/source/driver/lpstyl.xml usr/share/foomatic/db/source/driver/lq850.xml -usr/share/foomatic/db/source/driver/lx5000.xml usr/share/foomatic/db/source/driver/lxm3200-tweaked.xml usr/share/foomatic/db/source/driver/lxm5700m.xml usr/share/foomatic/db/source/driver/lxx74.xml @@ -1994,17 +3329,12 @@ usr/share/foomatic/db/source/driver/md50Eco.xml usr/share/foomatic/db/source/driver/md50Mono.xml usr/share/foomatic/db/source/driver/md5k.xml usr/share/foomatic/db/source/driver/min12xxw.xml -usr/share/foomatic/db/source/driver/mj500c.xml -usr/share/foomatic/db/source/driver/mj6000c.xml usr/share/foomatic/db/source/driver/mj700v2c.xml -usr/share/foomatic/db/source/driver/mj8000c.xml usr/share/foomatic/db/source/driver/ml600.xml usr/share/foomatic/db/source/driver/ml85p.xml -usr/share/foomatic/db/source/driver/necp2x.upp.xml -usr/share/foomatic/db/source/driver/necp2x6.upp.xml +usr/share/foomatic/db/source/driver/necp2xX.upp.xml usr/share/foomatic/db/source/driver/necp6.xml usr/share/foomatic/db/source/driver/npdl.xml -usr/share/foomatic/db/source/driver/nwp533.xml usr/share/foomatic/db/source/driver/oce9050.xml usr/share/foomatic/db/source/driver/oki182.xml usr/share/foomatic/db/source/driver/oki4w.xml @@ -2027,60 +3357,37 @@ usr/share/foomatic/db/source/driver/ppmtomd.xml usr/share/foomatic/db/source/driver/pr150.xml usr/share/foomatic/db/source/driver/pr201.xml usr/share/foomatic/db/source/driver/ptouch.xml +usr/share/foomatic/db/source/driver/pxlcolor-Gestetner.xml +usr/share/foomatic/db/source/driver/pxlcolor-InfoPrint.xml +usr/share/foomatic/db/source/driver/pxlcolor-Infotec.xml +usr/share/foomatic/db/source/driver/pxlcolor-Lanier.xml +usr/share/foomatic/db/source/driver/pxlcolor-NRG.xml +usr/share/foomatic/db/source/driver/pxlcolor-Ricoh.xml +usr/share/foomatic/db/source/driver/pxlcolor-Samsung.xml +usr/share/foomatic/db/source/driver/pxlcolor-Savin.xml usr/share/foomatic/db/source/driver/pxlcolor.xml +usr/share/foomatic/db/source/driver/pxldpl.xml usr/share/foomatic/db/source/driver/pxljr.xml +usr/share/foomatic/db/source/driver/pxlmono-Gestetner.xml +usr/share/foomatic/db/source/driver/pxlmono-InfoPrint.xml +usr/share/foomatic/db/source/driver/pxlmono-Infotec.xml +usr/share/foomatic/db/source/driver/pxlmono-Lanier.xml +usr/share/foomatic/db/source/driver/pxlmono-NRG.xml +usr/share/foomatic/db/source/driver/pxlmono-Ricoh.xml +usr/share/foomatic/db/source/driver/pxlmono-Samsung.xml +usr/share/foomatic/db/source/driver/pxlmono-Savin.xml usr/share/foomatic/db/source/driver/pxlmono.xml usr/share/foomatic/db/source/driver/r4081.xml -usr/share/foomatic/db/source/driver/ras1.upp.xml -usr/share/foomatic/db/source/driver/ras24.upp.xml -usr/share/foomatic/db/source/driver/ras3.upp.xml -usr/share/foomatic/db/source/driver/ras32.upp.xml -usr/share/foomatic/db/source/driver/ras4.upp.xml -usr/share/foomatic/db/source/driver/ras8m.upp.xml usr/share/foomatic/db/source/driver/rastertokmXXXXdl.xml +usr/share/foomatic/db/source/driver/rastertosag-gdi.xml usr/share/foomatic/db/source/driver/rpdl.xml -usr/share/foomatic/db/source/driver/s400a1.upp.xml -usr/share/foomatic/db/source/driver/s400b1.upp.xml usr/share/foomatic/db/source/driver/sharp.upp.xml usr/share/foomatic/db/source/driver/sipixa6.upp.xml usr/share/foomatic/db/source/driver/sj48.xml usr/share/foomatic/db/source/driver/slap.xml -usr/share/foomatic/db/source/driver/sparc.xml usr/share/foomatic/db/source/driver/splix.xml -usr/share/foomatic/db/source/driver/st640ih.upp.xml -usr/share/foomatic/db/source/driver/st640ihg.upp.xml -usr/share/foomatic/db/source/driver/st640p.upp.xml -usr/share/foomatic/db/source/driver/st640pg.upp.xml -usr/share/foomatic/db/source/driver/st640pl.upp.xml -usr/share/foomatic/db/source/driver/st640plg.upp.xml -usr/share/foomatic/db/source/driver/st800.xml -usr/share/foomatic/db/source/driver/stc.upp.xml -usr/share/foomatic/db/source/driver/stc1520h.upp.xml -usr/share/foomatic/db/source/driver/stc2.upp.xml -usr/share/foomatic/db/source/driver/stc2_h.upp.xml -usr/share/foomatic/db/source/driver/stc2s_h.upp.xml -usr/share/foomatic/db/source/driver/stc300.upp.xml -usr/share/foomatic/db/source/driver/stc300bl.upp.xml -usr/share/foomatic/db/source/driver/stc300bm.upp.xml -usr/share/foomatic/db/source/driver/stc500p.upp.xml -usr/share/foomatic/db/source/driver/stc500ph.upp.xml -usr/share/foomatic/db/source/driver/stc600ih.upp.xml -usr/share/foomatic/db/source/driver/stc600p.upp.xml -usr/share/foomatic/db/source/driver/stc600pl.upp.xml -usr/share/foomatic/db/source/driver/stc640p.upp.xml -usr/share/foomatic/db/source/driver/stc740ih.upp.xml -usr/share/foomatic/db/source/driver/stc740p.upp.xml -usr/share/foomatic/db/source/driver/stc740pl.upp.xml -usr/share/foomatic/db/source/driver/stc800ih.upp.xml -usr/share/foomatic/db/source/driver/stc800p.upp.xml -usr/share/foomatic/db/source/driver/stc800pl.upp.xml -usr/share/foomatic/db/source/driver/stc_h.upp.xml -usr/share/foomatic/db/source/driver/stc_l.upp.xml -usr/share/foomatic/db/source/driver/stcany.upp.xml usr/share/foomatic/db/source/driver/stcolor.xml -usr/share/foomatic/db/source/driver/t4693d2.xml -usr/share/foomatic/db/source/driver/t4693d4.xml -usr/share/foomatic/db/source/driver/t4693d8.xml +usr/share/foomatic/db/source/driver/t4693dX.xml usr/share/foomatic/db/source/driver/tek4696.xml usr/share/foomatic/db/source/driver/xes.xml #usr/share/foomatic/db/source/opt @@ -2178,7 +3485,6 @@ usr/share/foomatic/db/source/opt/188.xml usr/share/foomatic/db/source/opt/189.xml usr/share/foomatic/db/source/opt/190.xml usr/share/foomatic/db/source/opt/191.xml -usr/share/foomatic/db/source/opt/192.xml usr/share/foomatic/db/source/opt/193.xml usr/share/foomatic/db/source/opt/194.xml usr/share/foomatic/db/source/opt/195.xml @@ -2277,7 +3583,6 @@ usr/share/foomatic/db/source/opt/97.xml usr/share/foomatic/db/source/opt/98.xml usr/share/foomatic/db/source/opt/99.xml usr/share/foomatic/db/source/opt/Brother-MediaType.xml -usr/share/foomatic/db/source/opt/GS-HalftoningAlgorithm-Gray.xml usr/share/foomatic/db/source/opt/Minolta-PCL600.xml usr/share/foomatic/db/source/opt/PCL-4-5-InputSlot.xml usr/share/foomatic/db/source/opt/PCL-XL-InputSlot.xml @@ -2285,9 +3590,13 @@ usr/share/foomatic/db/source/opt/PJL-Duplex.xml usr/share/foomatic/db/source/opt/PJL-PJLBinding.xml usr/share/foomatic/db/source/opt/PJL-PJLDuplex.xml usr/share/foomatic/db/source/opt/PageSize-A4only.xml -usr/share/foomatic/db/source/opt/Postscript-PreFilter.xml +usr/share/foomatic/db/source/opt/Postscript-Duplex.xml +usr/share/foomatic/db/source/opt/Postscript-InputSlot.xml +usr/share/foomatic/db/source/opt/Postscript-PageSize.xml usr/share/foomatic/db/source/opt/Postscript-Resolution.xml -usr/share/foomatic/db/source/opt/bj8pa06n-Resolution.xml +usr/share/foomatic/db/source/opt/Postscript-largeformat-PageSize.xml +usr/share/foomatic/db/source/opt/Postscript1-Resolution.xml +usr/share/foomatic/db/source/opt/bj8XXYYZ-Resolution.xml usr/share/foomatic/db/source/opt/bjc250gs-BlueGamma.xml usr/share/foomatic/db/source/opt/bjc250gs-ColorMode.xml usr/share/foomatic/db/source/opt/bjc250gs-ComposeK.xml @@ -2315,8 +3624,10 @@ usr/share/foomatic/db/source/opt/cZ11somsom-Magenta.xml usr/share/foomatic/db/source/opt/cZ11somsom-Yellow.xml usr/share/foomatic/db/source/opt/cdj5XX-BlackCorrect.xml usr/share/foomatic/db/source/opt/cdj5XX-Depletion.xml +usr/share/foomatic/db/source/opt/cdj690X-Resolution.xml usr/share/foomatic/db/source/opt/cljet5-ColorMode.xml usr/share/foomatic/db/source/opt/dnj650c-Resolution.xml +usr/share/foomatic/db/source/opt/dnj750X-Resolution.xml usr/share/foomatic/db/source/opt/drv_x125-Bidirectional.xml usr/share/foomatic/db/source/opt/drv_x125-ColorMode.xml usr/share/foomatic/db/source/opt/drv_x125-Device.xml @@ -2359,12 +3670,18 @@ usr/share/foomatic/db/source/opt/hl7x0-InputSlot.xml usr/share/foomatic/db/source/opt/hl7x0-MediaType.xml usr/share/foomatic/db/source/opt/hl7x0-PIN.xml usr/share/foomatic/db/source/opt/hl7x0-Resolution.xml -usr/share/foomatic/db/source/opt/hpijs-Duplex.xml -usr/share/foomatic/db/source/opt/hpijs-InputSlot.xml -usr/share/foomatic/db/source/opt/hpijs-Model.xml -usr/share/foomatic/db/source/opt/hpijs-PageSize.xml -usr/share/foomatic/db/source/opt/hpijs-PrintoutMode.xml -usr/share/foomatic/db/source/opt/hpijs-Quality.xml +usr/share/foomatic/db/source/opt/hpijs-pcl3-Model.xml +usr/share/foomatic/db/source/opt/hpijs-pcl3-PageSize.xml +usr/share/foomatic/db/source/opt/hpijs-pcl3-PrintoutMode.xml +usr/share/foomatic/db/source/opt/hpijs-pcl3-Quality.xml +usr/share/foomatic/db/source/opt/hpijs-pcl5-Duplex.xml +usr/share/foomatic/db/source/opt/hpijs-pcl5-InputSlot.xml +usr/share/foomatic/db/source/opt/hpijs-pcl5-PageSize.xml +usr/share/foomatic/db/source/opt/hpijs-pcl5c-PrintoutMode.xml +usr/share/foomatic/db/source/opt/hpijs-pcl5c-Quality.xml +usr/share/foomatic/db/source/opt/hpijs-pcl5e-PrintoutMode.xml +usr/share/foomatic/db/source/opt/hpijs-pcl5e-Quality.xml +usr/share/foomatic/db/source/opt/ibmpro-Resolution.xml usr/share/foomatic/db/source/opt/jap-PageSize.xml usr/share/foomatic/db/source/opt/jap-Resolution.xml usr/share/foomatic/db/source/opt/largeformat-PageSize.xml @@ -2395,6 +3712,7 @@ usr/share/foomatic/db/source/opt/pcl3-PrintoutMode-HPDJ520.xml usr/share/foomatic/db/source/opt/pentaxpj-Density.xml usr/share/foomatic/db/source/opt/pentaxpj-OutputType.xml usr/share/foomatic/db/source/opt/pentaxpj-PageSize.xml +usr/share/foomatic/db/source/opt/pjl-HP-DesignJet-InputSlot.xml usr/share/foomatic/db/source/opt/pjl-Samsung-ML-1650-AllowReprint.xml usr/share/foomatic/db/source/opt/pjl-Samsung-ML-1650-Economode.xml usr/share/foomatic/db/source/opt/pjl-Samsung-ML-1650-MediaType.xml @@ -2424,14 +3742,13 @@ usr/share/foomatic/db/source/opt/ppmtomd-Primer.xml usr/share/foomatic/db/source/opt/ppmtomd-PrintColors.xml usr/share/foomatic/db/source/opt/ppmtomd-PrintingMethod.xml usr/share/foomatic/db/source/opt/ppmtomd-UseMultiColourRibbon.xml -usr/share/foomatic/db/source/opt/pxlmono-GSResolution.xml -usr/share/foomatic/db/source/opt/pxlmono-JCLResolution.xml usr/share/foomatic/db/source/opt/pxlmono-PrinterResolution.xml usr/share/foomatic/db/source/opt/pxlmono-PrintoutMode.xml usr/share/foomatic/db/source/opt/s400a1-Resolution.xml usr/share/foomatic/db/source/opt/sipixa6.upp-PageSize.xml -usr/share/foomatic/db/source/opt/st640ih-Resolution.xml -usr/share/foomatic/db/source/opt/stc300.upp-Resolution.xml +usr/share/foomatic/db/source/opt/st640X-Resolution.xml +usr/share/foomatic/db/source/opt/stc300X.upp-Resolution.xml +usr/share/foomatic/db/source/opt/stcanyX-Resolution.xml #usr/share/foomatic/db/source/printer usr/share/foomatic/db/source/printer/Alps-MD-1000.xml usr/share/foomatic/db/source/printer/Alps-MD-1300.xml @@ -2480,7 +3797,19 @@ usr/share/foomatic/db/source/printer/Avery-Personal_Label_Printer.xml usr/share/foomatic/db/source/printer/Avery-Personal_Label_Printerplus.xml usr/share/foomatic/db/source/printer/Brother-4550.xml usr/share/foomatic/db/source/printer/Brother-DCP-1200.xml +usr/share/foomatic/db/source/printer/Brother-DCP-7010.xml +usr/share/foomatic/db/source/printer/Brother-DCP-7020.xml +usr/share/foomatic/db/source/printer/Brother-DCP-7025.xml +usr/share/foomatic/db/source/printer/Brother-DCP-7045N.xml +usr/share/foomatic/db/source/printer/Brother-DCP-8020.xml +usr/share/foomatic/db/source/printer/Brother-DCP-8025D.xml +usr/share/foomatic/db/source/printer/Brother-DCP-8040.xml usr/share/foomatic/db/source/printer/Brother-DCP-8045D.xml +usr/share/foomatic/db/source/printer/Brother-DCP-8080DN.xml +usr/share/foomatic/db/source/printer/Brother-DCP-8085DN.xml +usr/share/foomatic/db/source/printer/Brother-DCP-9010CN.xml +usr/share/foomatic/db/source/printer/Brother-DCP-9040CN.xml +usr/share/foomatic/db/source/printer/Brother-DCP-9045CDN.xml usr/share/foomatic/db/source/printer/Brother-HJ-400.xml usr/share/foomatic/db/source/printer/Brother-HL-1020.xml usr/share/foomatic/db/source/printer/Brother-HL-1030.xml @@ -2501,19 +3830,32 @@ usr/share/foomatic/db/source/printer/Brother-HL-1440.xml usr/share/foomatic/db/source/printer/Brother-HL-1450.xml usr/share/foomatic/db/source/printer/Brother-HL-1470N.xml usr/share/foomatic/db/source/printer/Brother-HL-1650.xml +usr/share/foomatic/db/source/printer/Brother-HL-1650_70N.xml usr/share/foomatic/db/source/printer/Brother-HL-1660e.xml usr/share/foomatic/db/source/printer/Brother-HL-1670N.xml usr/share/foomatic/db/source/printer/Brother-HL-1850.xml +usr/share/foomatic/db/source/printer/Brother-HL-1850_70N.xml usr/share/foomatic/db/source/printer/Brother-HL-1870N.xml +usr/share/foomatic/db/source/printer/Brother-HL-2030.xml +usr/share/foomatic/db/source/printer/Brother-HL-2035.xml +usr/share/foomatic/db/source/printer/Brother-HL-2040.xml usr/share/foomatic/db/source/printer/Brother-HL-2060.xml +usr/share/foomatic/db/source/printer/Brother-HL-2070N.xml +usr/share/foomatic/db/source/printer/Brother-HL-2140.xml +usr/share/foomatic/db/source/printer/Brother-HL-2170W.xml usr/share/foomatic/db/source/printer/Brother-HL-2400CeN.xml usr/share/foomatic/db/source/printer/Brother-HL-2460.xml usr/share/foomatic/db/source/printer/Brother-HL-2460N.xml usr/share/foomatic/db/source/printer/Brother-HL-2600CN.xml +usr/share/foomatic/db/source/printer/Brother-HL-2700CN.xml +usr/share/foomatic/db/source/printer/Brother-HL-3070CW.xml usr/share/foomatic/db/source/printer/Brother-HL-3260N.xml usr/share/foomatic/db/source/printer/Brother-HL-3400CN.xml usr/share/foomatic/db/source/printer/Brother-HL-3450CN.xml usr/share/foomatic/db/source/printer/Brother-HL-4000CN.xml +usr/share/foomatic/db/source/printer/Brother-HL-4040CN.xml +usr/share/foomatic/db/source/printer/Brother-HL-4050CDN.xml +usr/share/foomatic/db/source/printer/Brother-HL-4070CDW.xml usr/share/foomatic/db/source/printer/Brother-HL-4Ve.xml usr/share/foomatic/db/source/printer/Brother-HL-5030.xml usr/share/foomatic/db/source/printer/Brother-HL-5040.xml @@ -2522,6 +3864,14 @@ usr/share/foomatic/db/source/printer/Brother-HL-5070N.xml usr/share/foomatic/db/source/printer/Brother-HL-5140.xml usr/share/foomatic/db/source/printer/Brother-HL-5150D.xml usr/share/foomatic/db/source/printer/Brother-HL-5170DN.xml +usr/share/foomatic/db/source/printer/Brother-HL-5240.xml +usr/share/foomatic/db/source/printer/Brother-HL-5250DN.xml +usr/share/foomatic/db/source/printer/Brother-HL-5270DN.xml +usr/share/foomatic/db/source/printer/Brother-HL-5350DN.xml +usr/share/foomatic/db/source/printer/Brother-HL-5370DW.xml +usr/share/foomatic/db/source/printer/Brother-HL-5380DN.xml +usr/share/foomatic/db/source/printer/Brother-HL-6050.xml +usr/share/foomatic/db/source/printer/Brother-HL-6050D_DN.xml usr/share/foomatic/db/source/printer/Brother-HL-630.xml usr/share/foomatic/db/source/printer/Brother-HL-660.xml usr/share/foomatic/db/source/printer/Brother-HL-7050.xml @@ -2530,17 +3880,45 @@ usr/share/foomatic/db/source/printer/Brother-HL-720.xml usr/share/foomatic/db/source/printer/Brother-HL-730.xml usr/share/foomatic/db/source/printer/Brother-HL-760.xml usr/share/foomatic/db/source/printer/Brother-HL-8.xml +usr/share/foomatic/db/source/printer/Brother-HL-8050N.xml usr/share/foomatic/db/source/printer/Brother-HL-820.xml usr/share/foomatic/db/source/printer/Brother-HL-960.xml usr/share/foomatic/db/source/printer/Brother-MC-3000.xml +usr/share/foomatic/db/source/printer/Brother-MFC-295CN.xml usr/share/foomatic/db/source/printer/Brother-MFC-4350.xml usr/share/foomatic/db/source/printer/Brother-MFC-6550MC.xml +usr/share/foomatic/db/source/printer/Brother-MFC-7225N.xml +usr/share/foomatic/db/source/printer/Brother-MFC-7450.xml +usr/share/foomatic/db/source/printer/Brother-MFC-7820N.xml +usr/share/foomatic/db/source/printer/Brother-MFC-7840N.xml +usr/share/foomatic/db/source/printer/Brother-MFC-7840W.xml +usr/share/foomatic/db/source/printer/Brother-MFC-8220.xml usr/share/foomatic/db/source/printer/Brother-MFC-8300.xml +usr/share/foomatic/db/source/printer/Brother-MFC-8370DN.xml +usr/share/foomatic/db/source/printer/Brother-MFC-8380DN.xml +usr/share/foomatic/db/source/printer/Brother-MFC-8420.xml +usr/share/foomatic/db/source/printer/Brother-MFC-8440.xml +usr/share/foomatic/db/source/printer/Brother-MFC-8480DN.xml +usr/share/foomatic/db/source/printer/Brother-MFC-8600.xml +usr/share/foomatic/db/source/printer/Brother-MFC-8640D.xml +usr/share/foomatic/db/source/printer/Brother-MFC-8670DN.xml +usr/share/foomatic/db/source/printer/Brother-MFC-8680DN.xml +usr/share/foomatic/db/source/printer/Brother-MFC-8820D.xml +usr/share/foomatic/db/source/printer/Brother-MFC-8840D.xml +usr/share/foomatic/db/source/printer/Brother-MFC-8880DN.xml +usr/share/foomatic/db/source/printer/Brother-MFC-8890DW.xml +usr/share/foomatic/db/source/printer/Brother-MFC-9010CN.xml usr/share/foomatic/db/source/printer/Brother-MFC-9050.xml usr/share/foomatic/db/source/printer/Brother-MFC-9100c.xml +usr/share/foomatic/db/source/printer/Brother-MFC-9120CN.xml +usr/share/foomatic/db/source/printer/Brother-MFC-9320CW.xml +usr/share/foomatic/db/source/printer/Brother-MFC-9420CN.xml +usr/share/foomatic/db/source/printer/Brother-MFC-9440CN.xml +usr/share/foomatic/db/source/printer/Brother-MFC-9450CDN.xml usr/share/foomatic/db/source/printer/Brother-MFC-9500.xml usr/share/foomatic/db/source/printer/Brother-MFC-9600.xml usr/share/foomatic/db/source/printer/Brother-MFC-P2500.xml +usr/share/foomatic/db/source/printer/Brother-MFC9840CDW.xml usr/share/foomatic/db/source/printer/Brother-MFC_7150C.xml usr/share/foomatic/db/source/printer/Brother-MP-21C.xml usr/share/foomatic/db/source/printer/Brother-PT-1500PC.xml @@ -2548,6 +3926,7 @@ usr/share/foomatic/db/source/printer/Brother-PT-18R.xml usr/share/foomatic/db/source/printer/Brother-PT-1950.xml usr/share/foomatic/db/source/printer/Brother-PT-1950VP.xml usr/share/foomatic/db/source/printer/Brother-PT-1960.xml +usr/share/foomatic/db/source/printer/Brother-PT-2300.xml usr/share/foomatic/db/source/printer/Brother-PT-2420PC.xml usr/share/foomatic/db/source/printer/Brother-PT-2450DX.xml usr/share/foomatic/db/source/printer/Brother-PT-2500PC.xml @@ -2632,6 +4011,8 @@ usr/share/foomatic/db/source/printer/Canon-LBP-1260.xml usr/share/foomatic/db/source/printer/Canon-LBP-1760.xml usr/share/foomatic/db/source/printer/Canon-LBP-310.xml usr/share/foomatic/db/source/printer/Canon-LBP-320_Pro.xml +usr/share/foomatic/db/source/printer/Canon-LBP-3360.xml +usr/share/foomatic/db/source/printer/Canon-LBP-3460.xml usr/share/foomatic/db/source/printer/Canon-LBP-350.xml usr/share/foomatic/db/source/printer/Canon-LBP-430.xml usr/share/foomatic/db/source/printer/Canon-LBP-460.xml @@ -2639,6 +4020,10 @@ usr/share/foomatic/db/source/printer/Canon-LBP-470.xml usr/share/foomatic/db/source/printer/Canon-LBP-4U.xml usr/share/foomatic/db/source/printer/Canon-LBP-4plus.xml usr/share/foomatic/db/source/printer/Canon-LBP-4sx.xml +usr/share/foomatic/db/source/printer/Canon-LBP-5360.xml +usr/share/foomatic/db/source/printer/Canon-LBP-5960.xml +usr/share/foomatic/db/source/printer/Canon-LBP-5970.xml +usr/share/foomatic/db/source/printer/Canon-LBP-5975.xml usr/share/foomatic/db/source/printer/Canon-LBP-600.xml usr/share/foomatic/db/source/printer/Canon-LBP-660.xml usr/share/foomatic/db/source/printer/Canon-LBP-800.xml @@ -2657,6 +4042,7 @@ usr/share/foomatic/db/source/printer/Canon-Multipass_L6000.xml usr/share/foomatic/db/source/printer/Canon-S100.xml usr/share/foomatic/db/source/printer/Canon-S200.xml usr/share/foomatic/db/source/printer/Canon-S300.xml +usr/share/foomatic/db/source/printer/Canon-S330_Photo.xml usr/share/foomatic/db/source/printer/Canon-S400.xml usr/share/foomatic/db/source/printer/Canon-S450.xml usr/share/foomatic/db/source/printer/Canon-S4500.xml @@ -2669,8 +4055,53 @@ usr/share/foomatic/db/source/printer/Canon-SELPHY-CP-500.xml usr/share/foomatic/db/source/printer/Canon-SELPHY-CP-510.xml usr/share/foomatic/db/source/printer/Canon-SELPHY-CP-600.xml usr/share/foomatic/db/source/printer/Canon-SELPHY-CP-710.xml +usr/share/foomatic/db/source/printer/Canon-i450.xml usr/share/foomatic/db/source/printer/Canon-iP4000.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_1023.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_1023N.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_1023iF.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_2016.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_2016i.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_2018.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_2020.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_2020i.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_2022.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_2200.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_2230.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_2270.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_2800.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_3025.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_3225.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_3300.xml usr/share/foomatic/db/source/printer/Canon-imageRunner_330s.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_3570.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_4570.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_5000.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_5570.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_6000.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_6570.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_7086.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_7095.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_7105.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_8070.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_8500.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_C2550.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_C2570.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_C2570i.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_C2620N.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_C3100.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_C3170.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_C3170i.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_C3200.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_C5058.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_C5068.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_C5180.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_C5185.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_C5185i.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_C5800.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_C5870U.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_C6800.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_C6870U.xml usr/share/foomatic/db/source/printer/Casio-KL-E11.xml usr/share/foomatic/db/source/printer/Casio-KL-P1000.xml usr/share/foomatic/db/source/printer/Casio-KP-C10.xml @@ -2696,6 +4127,11 @@ usr/share/foomatic/db/source/printer/DEC-LJ250.xml usr/share/foomatic/db/source/printer/DEC-LN03.xml usr/share/foomatic/db/source/printer/DEC-LN07.xml usr/share/foomatic/db/source/printer/DEC-LN17.xml +usr/share/foomatic/db/source/printer/Dell-1110.xml +usr/share/foomatic/db/source/printer/Dell-1355.xml +usr/share/foomatic/db/source/printer/Dell-3000cn.xml +usr/share/foomatic/db/source/printer/Dell-3010cn.xml +usr/share/foomatic/db/source/printer/Dell-3100cn.xml usr/share/foomatic/db/source/printer/Dell-M5200.xml usr/share/foomatic/db/source/printer/Dell-S2500.xml usr/share/foomatic/db/source/printer/Dymo-CoStar-ASCII_250.xml @@ -2708,32 +4144,105 @@ usr/share/foomatic/db/source/printer/Dymo-CoStar-LabelWriter_XLplus.xml usr/share/foomatic/db/source/printer/Dymo-CoStar-SE250.xml usr/share/foomatic/db/source/printer/Dymo-CoStar-SE250plus.xml usr/share/foomatic/db/source/printer/Dymo-CoStar-Turbo.xml +usr/share/foomatic/db/source/printer/Epson-1430_Series.xml +usr/share/foomatic/db/source/printer/Epson-1500_Series.xml +usr/share/foomatic/db/source/printer/Epson-AL-2600.xml +usr/share/foomatic/db/source/printer/Epson-AL-C1000.xml +usr/share/foomatic/db/source/printer/Epson-AL-C1900.xml +usr/share/foomatic/db/source/printer/Epson-AL-C1900_PS3.xml +usr/share/foomatic/db/source/printer/Epson-AL-C2000.xml +usr/share/foomatic/db/source/printer/Epson-AL-C2000_PS3.xml +usr/share/foomatic/db/source/printer/Epson-AL-C2600.xml +usr/share/foomatic/db/source/printer/Epson-AL-C2800.xml +usr/share/foomatic/db/source/printer/Epson-AL-C3800.xml +usr/share/foomatic/db/source/printer/Epson-AL-C4000.xml +usr/share/foomatic/db/source/printer/Epson-AL-C4000_PS3.xml +usr/share/foomatic/db/source/printer/Epson-AL-C4100.xml +usr/share/foomatic/db/source/printer/Epson-AL-C4200.xml +usr/share/foomatic/db/source/printer/Epson-AL-C8500.xml +usr/share/foomatic/db/source/printer/Epson-AL-C8500PS.xml +usr/share/foomatic/db/source/printer/Epson-AL-C8600.xml +usr/share/foomatic/db/source/printer/Epson-AL-C8600_PS3.xml +usr/share/foomatic/db/source/printer/Epson-AL-C900.xml +usr/share/foomatic/db/source/printer/Epson-AL-C9100.xml +usr/share/foomatic/db/source/printer/Epson-AL-C9200.xml +usr/share/foomatic/db/source/printer/Epson-AL-CX21.xml +usr/share/foomatic/db/source/printer/Epson-AL-M2000.xml +usr/share/foomatic/db/source/printer/Epson-AL-M2010.xml +usr/share/foomatic/db/source/printer/Epson-AL-M2300.xml +usr/share/foomatic/db/source/printer/Epson-AL-M2310.xml +usr/share/foomatic/db/source/printer/Epson-AL-M2400.xml +usr/share/foomatic/db/source/printer/Epson-AL-M2410.xml +usr/share/foomatic/db/source/printer/Epson-AL-M4000.xml +usr/share/foomatic/db/source/printer/Epson-AL-M8000.xml +usr/share/foomatic/db/source/printer/Epson-AL-MX20.xml +usr/share/foomatic/db/source/printer/Epson-AL-MX21.xml usr/share/foomatic/db/source/printer/Epson-ActionLaser_1100.xml usr/share/foomatic/db/source/printer/Epson-ActionLaser_II.xml usr/share/foomatic/db/source/printer/Epson-ActionPrinter_3250.xml -usr/share/foomatic/db/source/printer/Epson-AcuLaser_C1000.xml -usr/share/foomatic/db/source/printer/Epson-AcuLaser_C1900.xml -usr/share/foomatic/db/source/printer/Epson-AcuLaser_C1900PS.xml -usr/share/foomatic/db/source/printer/Epson-AcuLaser_C2000.xml -usr/share/foomatic/db/source/printer/Epson-AcuLaser_C2000PS.xml -usr/share/foomatic/db/source/printer/Epson-AcuLaser_C4000.xml -usr/share/foomatic/db/source/printer/Epson-AcuLaser_C4000PS.xml -usr/share/foomatic/db/source/printer/Epson-AcuLaser_C4100.xml -usr/share/foomatic/db/source/printer/Epson-AcuLaser_C4100PS.xml -usr/share/foomatic/db/source/printer/Epson-AcuLaser_C8500.xml -usr/share/foomatic/db/source/printer/Epson-AcuLaser_C8500PS.xml -usr/share/foomatic/db/source/printer/Epson-AcuLaser_C8600.xml -usr/share/foomatic/db/source/printer/Epson-AcuLaser_C8600PS.xml -usr/share/foomatic/db/source/printer/Epson-AcuLaser_C900.xml -usr/share/foomatic/db/source/printer/Epson-AcuLaser_C9100.xml +usr/share/foomatic/db/source/printer/Epson-Artisan_1430_Series.xml +usr/share/foomatic/db/source/printer/Epson-Artisan_50.xml +usr/share/foomatic/db/source/printer/Epson-Artisan_630_Series.xml +usr/share/foomatic/db/source/printer/Epson-Artisan_700.xml +usr/share/foomatic/db/source/printer/Epson-Artisan_710.xml +usr/share/foomatic/db/source/printer/Epson-Artisan_720_Series.xml +usr/share/foomatic/db/source/printer/Epson-Artisan_730_Series.xml +usr/share/foomatic/db/source/printer/Epson-Artisan_800.xml +usr/share/foomatic/db/source/printer/Epson-Artisan_810.xml +usr/share/foomatic/db/source/printer/Epson-Artisan_830_Series.xml +usr/share/foomatic/db/source/printer/Epson-Artisan_837_Series.xml +usr/share/foomatic/db/source/printer/Epson-B42WD_Series.xml +usr/share/foomatic/db/source/printer/Epson-BX305_Plus_Series.xml +usr/share/foomatic/db/source/printer/Epson-BX305_Series.xml +usr/share/foomatic/db/source/printer/Epson-BX320FW_Series.xml +usr/share/foomatic/db/source/printer/Epson-BX525WD_Series.xml +usr/share/foomatic/db/source/printer/Epson-BX535WD_Series.xml +usr/share/foomatic/db/source/printer/Epson-BX620FWD_Series.xml +usr/share/foomatic/db/source/printer/Epson-BX630FW_Series.xml +usr/share/foomatic/db/source/printer/Epson-BX635FWD_Series.xml +usr/share/foomatic/db/source/printer/Epson-BX935FWD_Series.xml usr/share/foomatic/db/source/printer/Epson-CL_700.xml usr/share/foomatic/db/source/printer/Epson-CL_750.xml usr/share/foomatic/db/source/printer/Epson-CL_760.xml usr/share/foomatic/db/source/printer/Epson-Dot_Matrix.xml +usr/share/foomatic/db/source/printer/Epson-E-150.xml +usr/share/foomatic/db/source/printer/Epson-E-200.xml +usr/share/foomatic/db/source/printer/Epson-E-300.xml +usr/share/foomatic/db/source/printer/Epson-E-330.xml +usr/share/foomatic/db/source/printer/Epson-E-330S.xml +usr/share/foomatic/db/source/printer/Epson-E-340.xml +usr/share/foomatic/db/source/printer/Epson-E-350.xml +usr/share/foomatic/db/source/printer/Epson-E-360_Series.xml +usr/share/foomatic/db/source/printer/Epson-E-370_Series.xml +usr/share/foomatic/db/source/printer/Epson-E-500.xml +usr/share/foomatic/db/source/printer/Epson-E-520.xml +usr/share/foomatic/db/source/printer/Epson-E-530.xml +usr/share/foomatic/db/source/printer/Epson-E-600.xml +usr/share/foomatic/db/source/printer/Epson-E-700.xml +usr/share/foomatic/db/source/printer/Epson-E-720.xml +usr/share/foomatic/db/source/printer/Epson-E-800.xml +usr/share/foomatic/db/source/printer/Epson-E-810.xml +usr/share/foomatic/db/source/printer/Epson-E-820.xml +usr/share/foomatic/db/source/printer/Epson-E-830_Series.xml +usr/share/foomatic/db/source/printer/Epson-E-840_Series.xml usr/share/foomatic/db/source/printer/Epson-EM_900C.xml usr/share/foomatic/db/source/printer/Epson-EM_900CN.xml usr/share/foomatic/db/source/printer/Epson-EM_930C.xml usr/share/foomatic/db/source/printer/Epson-EM_930CN.xml +usr/share/foomatic/db/source/printer/Epson-EP-306_Series.xml +usr/share/foomatic/db/source/printer/Epson-EP-705A_Series.xml +usr/share/foomatic/db/source/printer/Epson-EP-706A_Series.xml +usr/share/foomatic/db/source/printer/Epson-EP-775A_Series.xml +usr/share/foomatic/db/source/printer/Epson-EP-776A_Series.xml +usr/share/foomatic/db/source/printer/Epson-EP-801A.xml +usr/share/foomatic/db/source/printer/Epson-EP-805A_Series.xml +usr/share/foomatic/db/source/printer/Epson-EP-806A_Series.xml +usr/share/foomatic/db/source/printer/Epson-EP-901A.xml +usr/share/foomatic/db/source/printer/Epson-EP-901F.xml +usr/share/foomatic/db/source/printer/Epson-EP-905A_Series.xml +usr/share/foomatic/db/source/printer/Epson-EP-905F_Series.xml +usr/share/foomatic/db/source/printer/Epson-EP-906F_Series.xml +usr/share/foomatic/db/source/printer/Epson-EP-976A3_Series.xml usr/share/foomatic/db/source/printer/Epson-EPL-5200.xml usr/share/foomatic/db/source/printer/Epson-EPL-5200plus.xml usr/share/foomatic/db/source/printer/Epson-EPL-5500W.xml @@ -2745,10 +4254,11 @@ usr/share/foomatic/db/source/printer/Epson-EPL-5800L.xml usr/share/foomatic/db/source/printer/Epson-EPL-5800PS.xml usr/share/foomatic/db/source/printer/Epson-EPL-5900.xml usr/share/foomatic/db/source/printer/Epson-EPL-5900L.xml -usr/share/foomatic/db/source/printer/Epson-EPL-5900PS.xml +usr/share/foomatic/db/source/printer/Epson-EPL-5900_PS3.xml usr/share/foomatic/db/source/printer/Epson-EPL-6100.xml usr/share/foomatic/db/source/printer/Epson-EPL-6100L.xml -usr/share/foomatic/db/source/printer/Epson-EPL-6100PS.xml +usr/share/foomatic/db/source/printer/Epson-EPL-6100_PS3.xml +usr/share/foomatic/db/source/printer/Epson-EPL-6200.xml usr/share/foomatic/db/source/printer/Epson-EPL-6200L.xml usr/share/foomatic/db/source/printer/Epson-EPL-7100.xml usr/share/foomatic/db/source/printer/Epson-EPL-N1600.xml @@ -2759,11 +4269,39 @@ usr/share/foomatic/db/source/printer/Epson-EPL-N2050PSplus.xml usr/share/foomatic/db/source/printer/Epson-EPL-N2050plus.xml usr/share/foomatic/db/source/printer/Epson-EPL-N2120.xml usr/share/foomatic/db/source/printer/Epson-EPL-N2500.xml -usr/share/foomatic/db/source/printer/Epson-EPL-N2500PS.xml +usr/share/foomatic/db/source/printer/Epson-EPL-N2500_PS3.xml +usr/share/foomatic/db/source/printer/Epson-EPL-N2550.xml +usr/share/foomatic/db/source/printer/Epson-EPL-N2700.xml usr/share/foomatic/db/source/printer/Epson-EPL-N2750.xml usr/share/foomatic/db/source/printer/Epson-EPL-N2750PS.xml +usr/share/foomatic/db/source/printer/Epson-EPL-N3000.xml +usr/share/foomatic/db/source/printer/Epson-EPL-N7000.xml +usr/share/foomatic/db/source/printer/Epson-EP_302.xml +usr/share/foomatic/db/source/printer/Epson-EP_4004.xml +usr/share/foomatic/db/source/printer/Epson-EP_702A.xml +usr/share/foomatic/db/source/printer/Epson-EP_703A.xml +usr/share/foomatic/db/source/printer/Epson-EP_704A.xml +usr/share/foomatic/db/source/printer/Epson-EP_774A.xml +usr/share/foomatic/db/source/printer/Epson-EP_802A.xml +usr/share/foomatic/db/source/printer/Epson-EP_803A.xml +usr/share/foomatic/db/source/printer/Epson-EP_804A.xml +usr/share/foomatic/db/source/printer/Epson-EP_902A.xml +usr/share/foomatic/db/source/printer/Epson-EP_903A.xml +usr/share/foomatic/db/source/printer/Epson-EP_903F.xml +usr/share/foomatic/db/source/printer/Epson-EP_904A.xml +usr/share/foomatic/db/source/printer/Epson-EP_904F.xml usr/share/foomatic/db/source/printer/Epson-E_100.xml +usr/share/foomatic/db/source/printer/Epson-K100_Series.xml +usr/share/foomatic/db/source/printer/Epson-K200_Series.xml +usr/share/foomatic/db/source/printer/Epson-K300_Series.xml usr/share/foomatic/db/source/printer/Epson-L-1000.xml +usr/share/foomatic/db/source/printer/Epson-L110_Series.xml +usr/share/foomatic/db/source/printer/Epson-L210_Series.xml +usr/share/foomatic/db/source/printer/Epson-L300_Series.xml +usr/share/foomatic/db/source/printer/Epson-L350_Series.xml +usr/share/foomatic/db/source/printer/Epson-L355_Series.xml +usr/share/foomatic/db/source/printer/Epson-L550_Series.xml +usr/share/foomatic/db/source/printer/Epson-L555_Series.xml usr/share/foomatic/db/source/printer/Epson-LP-1800.xml usr/share/foomatic/db/source/printer/Epson-LP-1900.xml usr/share/foomatic/db/source/printer/Epson-LP-2000.xml @@ -2781,27 +4319,46 @@ usr/share/foomatic/db/source/printer/Epson-LP-8000C.xml usr/share/foomatic/db/source/printer/Epson-LP-8100.xml usr/share/foomatic/db/source/printer/Epson-LP-8200C.xml usr/share/foomatic/db/source/printer/Epson-LP-8300C.xml +usr/share/foomatic/db/source/printer/Epson-LP-8300CPD.xml usr/share/foomatic/db/source/printer/Epson-LP-8300F.xml usr/share/foomatic/db/source/printer/Epson-LP-8400F.xml usr/share/foomatic/db/source/printer/Epson-LP-8500C.xml +usr/share/foomatic/db/source/printer/Epson-LP-8500CPD.xml usr/share/foomatic/db/source/printer/Epson-LP-8600.xml usr/share/foomatic/db/source/printer/Epson-LP-8600F.xml usr/share/foomatic/db/source/printer/Epson-LP-8700.xml usr/share/foomatic/db/source/printer/Epson-LP-8800C.xml +usr/share/foomatic/db/source/printer/Epson-LP-8800CPS.xml usr/share/foomatic/db/source/printer/Epson-LP-8900.xml usr/share/foomatic/db/source/printer/Epson-LP-9000B.xml usr/share/foomatic/db/source/printer/Epson-LP-9000C.xml usr/share/foomatic/db/source/printer/Epson-LP-9100.xml +usr/share/foomatic/db/source/printer/Epson-LP-9100PS3.xml usr/share/foomatic/db/source/printer/Epson-LP-9200B.xml usr/share/foomatic/db/source/printer/Epson-LP-9200C.xml usr/share/foomatic/db/source/printer/Epson-LP-9300.xml usr/share/foomatic/db/source/printer/Epson-LP-9400.xml usr/share/foomatic/db/source/printer/Epson-LP-9500C.xml +usr/share/foomatic/db/source/printer/Epson-LP-9500CPS.xml usr/share/foomatic/db/source/printer/Epson-LP-9600.xml usr/share/foomatic/db/source/printer/Epson-LP-9600S.xml +usr/share/foomatic/db/source/printer/Epson-LP-9600SPD.xml usr/share/foomatic/db/source/printer/Epson-LP-9800C.xml +usr/share/foomatic/db/source/printer/Epson-LP-M5000.xml +usr/share/foomatic/db/source/printer/Epson-LP-M5300.xml +usr/share/foomatic/db/source/printer/Epson-LP-M6000.xml +usr/share/foomatic/db/source/printer/Epson-LP-S210.xml +usr/share/foomatic/db/source/printer/Epson-LP-S300.xml +usr/share/foomatic/db/source/printer/Epson-LP-S3000.xml +usr/share/foomatic/db/source/printer/Epson-LP-S310.xml +usr/share/foomatic/db/source/printer/Epson-LP-S3200.xml +usr/share/foomatic/db/source/printer/Epson-LP-S3500.xml +usr/share/foomatic/db/source/printer/Epson-LP-S4000.xml +usr/share/foomatic/db/source/printer/Epson-LP-S4200.xml usr/share/foomatic/db/source/printer/Epson-LP-S4500.xml usr/share/foomatic/db/source/printer/Epson-LP-S6500.xml +usr/share/foomatic/db/source/printer/Epson-LP-S7500.xml +usr/share/foomatic/db/source/printer/Epson-LP-S8100.xml usr/share/foomatic/db/source/printer/Epson-LP-xx00.xml usr/share/foomatic/db/source/printer/Epson-LP_8000.xml usr/share/foomatic/db/source/printer/Epson-LQ-24.xml @@ -2810,17 +4367,77 @@ usr/share/foomatic/db/source/printer/Epson-LQ-500.xml usr/share/foomatic/db/source/printer/Epson-LQ-570plus.xml usr/share/foomatic/db/source/printer/Epson-LQ-850.xml usr/share/foomatic/db/source/printer/Epson-LX-1050.xml +usr/share/foomatic/db/source/printer/Epson-LX-300plus.xml +usr/share/foomatic/db/source/printer/Epson-M100_Series.xml +usr/share/foomatic/db/source/printer/Epson-M105_Series.xml +usr/share/foomatic/db/source/printer/Epson-M200_Series.xml +usr/share/foomatic/db/source/printer/Epson-M205_Series.xml usr/share/foomatic/db/source/printer/Epson-MC_10000.xml usr/share/foomatic/db/source/printer/Epson-MC_2000.xml usr/share/foomatic/db/source/printer/Epson-MC_5000.xml usr/share/foomatic/db/source/printer/Epson-MC_7000.xml usr/share/foomatic/db/source/printer/Epson-MC_9000.xml +usr/share/foomatic/db/source/printer/Epson-ME-100_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME-10_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME-301_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME-303_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME-400_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME_10_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME_200.xml +usr/share/foomatic/db/source/printer/Epson-ME_320_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME_32_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME_330_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME_33_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME_340_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME_520_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME_530_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME_560W_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME_570_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME_620F_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME_82WD_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME_85ND_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME_900WD_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME_940FW_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME_960FWD_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME_OFFICE_650FN.xml +usr/share/foomatic/db/source/printer/Epson-ME_Office_510.xml +usr/share/foomatic/db/source/printer/Epson-ME_Office_600F.xml +usr/share/foomatic/db/source/printer/Epson-ME_Office_700FW.xml usr/share/foomatic/db/source/printer/Epson-MJ_5100C.xml usr/share/foomatic/db/source/printer/Epson-MJ_520C.xml usr/share/foomatic/db/source/printer/Epson-MJ_6000C.xml usr/share/foomatic/db/source/printer/Epson-MJ_8000C.xml usr/share/foomatic/db/source/printer/Epson-MJ_930C.xml usr/share/foomatic/db/source/printer/Epson-MachJet.xml +usr/share/foomatic/db/source/printer/Epson-N10_N11_Series.xml +usr/share/foomatic/db/source/printer/Epson-NX125_NX127_Series.xml +usr/share/foomatic/db/source/printer/Epson-NX130_Series.xml +usr/share/foomatic/db/source/printer/Epson-NX130_TX130_Series.xml +usr/share/foomatic/db/source/printer/Epson-NX230_Series.xml +usr/share/foomatic/db/source/printer/Epson-NX230_TX230_Series.xml +usr/share/foomatic/db/source/printer/Epson-NX330_Series.xml +usr/share/foomatic/db/source/printer/Epson-NX420_Series.xml +usr/share/foomatic/db/source/printer/Epson-NX430_Series.xml +usr/share/foomatic/db/source/printer/Epson-NX430_TX435_Series.xml +usr/share/foomatic/db/source/printer/Epson-NX530_Series.xml +usr/share/foomatic/db/source/printer/Epson-NX620_Series.xml +usr/share/foomatic/db/source/printer/Epson-NX635_Series.xml +usr/share/foomatic/db/source/printer/Epson-PM-A750.xml +usr/share/foomatic/db/source/printer/Epson-PM-A820.xml +usr/share/foomatic/db/source/printer/Epson-PM-A840.xml +usr/share/foomatic/db/source/printer/Epson-PM-A840S.xml +usr/share/foomatic/db/source/printer/Epson-PM-A890.xml +usr/share/foomatic/db/source/printer/Epson-PM-A920.xml +usr/share/foomatic/db/source/printer/Epson-PM-A940.xml +usr/share/foomatic/db/source/printer/Epson-PM-A950.xml +usr/share/foomatic/db/source/printer/Epson-PM-A970.xml +usr/share/foomatic/db/source/printer/Epson-PM-D600.xml +usr/share/foomatic/db/source/printer/Epson-PM-D800.xml +usr/share/foomatic/db/source/printer/Epson-PM-D870.xml +usr/share/foomatic/db/source/printer/Epson-PM-G4500.xml +usr/share/foomatic/db/source/printer/Epson-PM-G850.xml +usr/share/foomatic/db/source/printer/Epson-PM-T960.xml +usr/share/foomatic/db/source/printer/Epson-PM-T990.xml usr/share/foomatic/db/source/printer/Epson-PM_10000.xml usr/share/foomatic/db/source/printer/Epson-PM_2000C.xml usr/share/foomatic/db/source/printer/Epson-PM_2200C.xml @@ -2858,18 +4475,95 @@ usr/share/foomatic/db/source/printer/Epson-PM_G700.xml usr/share/foomatic/db/source/printer/Epson-PM_G720.xml usr/share/foomatic/db/source/printer/Epson-PM_G800.xml usr/share/foomatic/db/source/printer/Epson-PM_G820.xml +usr/share/foomatic/db/source/printer/Epson-PX-045A_Series.xml +usr/share/foomatic/db/source/printer/Epson-PX-046A_Series.xml +usr/share/foomatic/db/source/printer/Epson-PX-105F_Series.xml +usr/share/foomatic/db/source/printer/Epson-PX-205_Series.xml +usr/share/foomatic/db/source/printer/Epson-PX-436A_Series.xml +usr/share/foomatic/db/source/printer/Epson-PX-501A.xml +usr/share/foomatic/db/source/printer/Epson-PX-505F_Series.xml +usr/share/foomatic/db/source/printer/Epson-PX-535F_Series.xml +usr/share/foomatic/db/source/printer/Epson-PX-5600.xml +usr/share/foomatic/db/source/printer/Epson-PX-601F.xml +usr/share/foomatic/db/source/printer/Epson-PX-605F_Series.xml +usr/share/foomatic/db/source/printer/Epson-PX-673F.xml +usr/share/foomatic/db/source/printer/Epson-PX-675F_Series.xml +usr/share/foomatic/db/source/printer/Epson-PX-A620.xml +usr/share/foomatic/db/source/printer/Epson-PX-A640.xml +usr/share/foomatic/db/source/printer/Epson-PX-A650.xml +usr/share/foomatic/db/source/printer/Epson-PX-A720.xml +usr/share/foomatic/db/source/printer/Epson-PX-A740.xml +usr/share/foomatic/db/source/printer/Epson-PX-FA700.xml +usr/share/foomatic/db/source/printer/Epson-PX-G5300.xml +usr/share/foomatic/db/source/printer/Epson-PX-K150_Series.xml +usr/share/foomatic/db/source/printer/Epson-PX-K701.xml +usr/share/foomatic/db/source/printer/Epson-PX-K751F.xml +usr/share/foomatic/db/source/printer/Epson-PX660_Series.xml +usr/share/foomatic/db/source/printer/Epson-PX720WD_Series.xml +usr/share/foomatic/db/source/printer/Epson-PX730_Series.xml +usr/share/foomatic/db/source/printer/Epson-PX820FWD_Series.xml +usr/share/foomatic/db/source/printer/Epson-PX830_Series.xml +usr/share/foomatic/db/source/printer/Epson-PX_1200.xml +usr/share/foomatic/db/source/printer/Epson-PX_1600F.xml +usr/share/foomatic/db/source/printer/Epson-PX_1700F.xml +usr/share/foomatic/db/source/printer/Epson-PX_203.xml +usr/share/foomatic/db/source/printer/Epson-PX_204.xml +usr/share/foomatic/db/source/printer/Epson-PX_402A.xml +usr/share/foomatic/db/source/printer/Epson-PX_403A.xml +usr/share/foomatic/db/source/printer/Epson-PX_404A.xml +usr/share/foomatic/db/source/printer/Epson-PX_405A_Series.xml +usr/share/foomatic/db/source/printer/Epson-PX_434A.xml +usr/share/foomatic/db/source/printer/Epson-PX_435A_Series.xml +usr/share/foomatic/db/source/printer/Epson-PX_502A.xml +usr/share/foomatic/db/source/printer/Epson-PX_503A.xml +usr/share/foomatic/db/source/printer/Epson-PX_504A.xml usr/share/foomatic/db/source/printer/Epson-PX_5500.xml +usr/share/foomatic/db/source/printer/Epson-PX_5V.xml +usr/share/foomatic/db/source/printer/Epson-PX_602F.xml +usr/share/foomatic/db/source/printer/Epson-PX_603F.xml usr/share/foomatic/db/source/printer/Epson-PX_7000.xml +usr/share/foomatic/db/source/printer/Epson-PX_7V.xml usr/share/foomatic/db/source/printer/Epson-PX_9000.xml usr/share/foomatic/db/source/printer/Epson-PX_A650.xml +usr/share/foomatic/db/source/printer/Epson-PX_B700.xml +usr/share/foomatic/db/source/printer/Epson-PX_B750F.xml usr/share/foomatic/db/source/printer/Epson-PX_G5000.xml usr/share/foomatic/db/source/printer/Epson-PX_G900.xml usr/share/foomatic/db/source/printer/Epson-PX_G920.xml +usr/share/foomatic/db/source/printer/Epson-PX_K100.xml usr/share/foomatic/db/source/printer/Epson-PX_V500.xml usr/share/foomatic/db/source/printer/Epson-PX_V600.xml usr/share/foomatic/db/source/printer/Epson-PictureMate.xml +usr/share/foomatic/db/source/printer/Epson-PictureMate_500.xml usr/share/foomatic/db/source/printer/Epson-PictureMate_Deluxe.xml +usr/share/foomatic/db/source/printer/Epson-PictureMate_Express.xml +usr/share/foomatic/db/source/printer/Epson-PictureMate_PM_200.xml +usr/share/foomatic/db/source/printer/Epson-PictureMate_PM_210.xml +usr/share/foomatic/db/source/printer/Epson-PictureMate_PM_215.xml +usr/share/foomatic/db/source/printer/Epson-PictureMate_PM_225.xml +usr/share/foomatic/db/source/printer/Epson-PictureMate_PM_235.xml +usr/share/foomatic/db/source/printer/Epson-PictureMate_PM_240.xml +usr/share/foomatic/db/source/printer/Epson-PictureMate_PM_245.xml +usr/share/foomatic/db/source/printer/Epson-PictureMate_PM_250.xml +usr/share/foomatic/db/source/printer/Epson-PictureMate_PM_260.xml +usr/share/foomatic/db/source/printer/Epson-PictureMate_PM_270.xml +usr/share/foomatic/db/source/printer/Epson-PictureMate_PM_280.xml +usr/share/foomatic/db/source/printer/Epson-PictureMate_PM_290.xml +usr/share/foomatic/db/source/printer/Epson-PictureMate_PM_300.xml +usr/share/foomatic/db/source/printer/Epson-PictureMate_PM_310.xml +usr/share/foomatic/db/source/printer/Epson-S22_Series.xml usr/share/foomatic/db/source/printer/Epson-SQ_1170.xml +usr/share/foomatic/db/source/printer/Epson-SX125_Series.xml +usr/share/foomatic/db/source/printer/Epson-SX130_Series.xml +usr/share/foomatic/db/source/printer/Epson-SX218_Series.xml +usr/share/foomatic/db/source/printer/Epson-SX230_Series.xml +usr/share/foomatic/db/source/printer/Epson-SX235_Series.xml +usr/share/foomatic/db/source/printer/Epson-SX420W_Series.xml +usr/share/foomatic/db/source/printer/Epson-SX430_Series.xml +usr/share/foomatic/db/source/printer/Epson-SX440_Series.xml +usr/share/foomatic/db/source/printer/Epson-SX525WD_Series.xml +usr/share/foomatic/db/source/printer/Epson-SX535WD_Series.xml +usr/share/foomatic/db/source/printer/Epson-SX620FW_Series.xml usr/share/foomatic/db/source/printer/Epson-Stylus.xml usr/share/foomatic/db/source/printer/Epson-Stylus_800.xml usr/share/foomatic/db/source/printer/Epson-Stylus_C20.xml @@ -2911,6 +4605,8 @@ usr/share/foomatic/db/source/printer/Epson-Stylus_C85.xml usr/share/foomatic/db/source/printer/Epson-Stylus_C86.xml usr/share/foomatic/db/source/printer/Epson-Stylus_C88.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX1500.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_CX2800.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_CX2900.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX3100.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX3200.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX3500.xml @@ -2920,26 +4616,35 @@ usr/share/foomatic/db/source/printer/Epson-Stylus_CX3700.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX3800.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX3805.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX3810.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_CX3900.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX4100.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX4200.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX4500.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX4600.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX4700.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX4800.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_CX4900.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_CX5000.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX5100.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX5200.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX5300.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX5400.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX5700.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX5800.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_CX5900.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_CX6000.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX6300.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX6400.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX6500.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX6600.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_CX7300.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_CX7400.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX7700.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX7800.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX8300.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX8400.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_CX9300F.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_CX9400Fax.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Color.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Color_1160.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Color_1500.xml @@ -2976,15 +4681,43 @@ usr/share/foomatic/db/source/printer/Epson-Stylus_D68.xml usr/share/foomatic/db/source/printer/Epson-Stylus_D88.xml usr/share/foomatic/db/source/printer/Epson-Stylus_DX3800.xml usr/share/foomatic/db/source/printer/Epson-Stylus_DX3850.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_DX4000.xml usr/share/foomatic/db/source/printer/Epson-Stylus_DX4200.xml usr/share/foomatic/db/source/printer/Epson-Stylus_DX4250.xml usr/share/foomatic/db/source/printer/Epson-Stylus_DX4800.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_DX5000.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_DX7400.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_DX8400.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_DX9400F.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_NX110.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_NX115.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_NX200.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_NX210.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_NX215.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_NX300.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_NX400.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_NX410.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_NX415.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_NX510.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Office_BX300F.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Office_BX310FN.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Office_BX600FW.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Office_BX610FW.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Office_BX925FW.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Office_TX300F.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Office_TX510FN.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Office_TX515FN.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Office_TX600FW.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Office_TX610FW.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Office_TX620FW.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_1200.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_1270.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_1280.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_1290.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_1290S.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_1400.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_1410.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_2000P.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_2100.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_2200.xml @@ -3010,15 +4743,34 @@ usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_950.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_960.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_EX.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_EX3.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_P50.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_PX650.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_PX700W.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_PX710W.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_PX800FW.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_PX810FW.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R1800.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R1900.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R200.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R2000.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R210.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R220.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R240.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R2400.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R250.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R260.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R265.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R270.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R2880.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R300.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R3000.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R310.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R320.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R340.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R350.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R360.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R380.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R390.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R800.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX400.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX420.xml @@ -3026,10 +4778,30 @@ usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX425.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX430.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX500.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX510.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX520.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX530.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX560.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX580.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX585.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX590.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX595.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX600.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX610.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX620.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX630.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX640.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX650.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX680.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX685.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX690.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX700.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_T50.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_T60.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_TX650.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_TX700W.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_TX710W.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_TX800FW.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_TX810FW.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Pro_10000.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Pro_5000.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Pro_5500.xml @@ -3040,8 +4812,155 @@ usr/share/foomatic/db/source/printer/Epson-Stylus_Pro_9000.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Pro_9500.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Pro_9600.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Pro_XL.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_S21.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_SX110.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_SX115.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_SX200.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_SX210.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_SX400.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_SX410.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_SX510W.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_SX600FW.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_SX610FW.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Scan_2000.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Scan_2500.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_T21.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_T24.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_T27.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_TX110.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_TX111.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_TX112.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_TX113.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_TX115.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_TX117.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_TX119.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_TX200.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_TX210.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_TX400.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_TX410.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_TX550W.xml +usr/share/foomatic/db/source/printer/Epson-T12_T22_N11_Series.xml +usr/share/foomatic/db/source/printer/Epson-T13_T22E_Series.xml +usr/share/foomatic/db/source/printer/Epson-T22_Series.xml +usr/share/foomatic/db/source/printer/Epson-T25_Series.xml +usr/share/foomatic/db/source/printer/Epson-T42WD_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX120_NX120_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX120_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX121_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX125_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX130_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX133_TX135_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX220_NX220_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX220_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX230_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX235_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX320F_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX320_WorkForce320_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX420W_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX420_NX420_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX430_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX525FW_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX560WD_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX620FWD_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX720WD_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX720_Artisan720_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX730_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX820_Artisan830_Series.xml +usr/share/foomatic/db/source/printer/Epson-WF-2010_Series.xml +usr/share/foomatic/db/source/printer/Epson-WF-2510_Series.xml +usr/share/foomatic/db/source/printer/Epson-WF-2520_Series.xml +usr/share/foomatic/db/source/printer/Epson-WF-2530_Series.xml +usr/share/foomatic/db/source/printer/Epson-WF-2540_Series.xml +usr/share/foomatic/db/source/printer/Epson-WF-3010_Series.xml +usr/share/foomatic/db/source/printer/Epson-WF-3520_Series.xml +usr/share/foomatic/db/source/printer/Epson-WF-3530_Series.xml +usr/share/foomatic/db/source/printer/Epson-WF-3540_Series.xml +usr/share/foomatic/db/source/printer/Epson-WF-7010.xml +usr/share/foomatic/db/source/printer/Epson-WF-7011.xml +usr/share/foomatic/db/source/printer/Epson-WF-7012.xml +usr/share/foomatic/db/source/printer/Epson-WF-7015.xml +usr/share/foomatic/db/source/printer/Epson-WF-7018.xml +usr/share/foomatic/db/source/printer/Epson-WF-7510.xml +usr/share/foomatic/db/source/printer/Epson-WF-7511.xml +usr/share/foomatic/db/source/printer/Epson-WF-7515.xml +usr/share/foomatic/db/source/printer/Epson-WF-7520.xml +usr/share/foomatic/db/source/printer/Epson-WF-7521.xml +usr/share/foomatic/db/source/printer/Epson-WF-7525.xml +usr/share/foomatic/db/source/printer/Epson-WF-M1030_Series.xml +usr/share/foomatic/db/source/printer/Epson-WF-M1560_Series.xml +usr/share/foomatic/db/source/printer/Epson-WP-4010.xml +usr/share/foomatic/db/source/printer/Epson-WP-4011.xml +usr/share/foomatic/db/source/printer/Epson-WP-4015.xml +usr/share/foomatic/db/source/printer/Epson-WP-4020.xml +usr/share/foomatic/db/source/printer/Epson-WP-4023.xml +usr/share/foomatic/db/source/printer/Epson-WP-4025.xml +usr/share/foomatic/db/source/printer/Epson-WP-4090.xml +usr/share/foomatic/db/source/printer/Epson-WP-4091.xml +usr/share/foomatic/db/source/printer/Epson-WP-4092.xml +usr/share/foomatic/db/source/printer/Epson-WP-4095.xml +usr/share/foomatic/db/source/printer/Epson-WP-4511.xml +usr/share/foomatic/db/source/printer/Epson-WP-4515.xml +usr/share/foomatic/db/source/printer/Epson-WP-4520.xml +usr/share/foomatic/db/source/printer/Epson-WP-4521.xml +usr/share/foomatic/db/source/printer/Epson-WP-4525.xml +usr/share/foomatic/db/source/printer/Epson-WP-4530.xml +usr/share/foomatic/db/source/printer/Epson-WP-4531.xml +usr/share/foomatic/db/source/printer/Epson-WP-4533.xml +usr/share/foomatic/db/source/printer/Epson-WP-4535.xml +usr/share/foomatic/db/source/printer/Epson-WP-4540.xml +usr/share/foomatic/db/source/printer/Epson-WP-4545.xml +usr/share/foomatic/db/source/printer/Epson-WP-4590.xml +usr/share/foomatic/db/source/printer/Epson-WP-4592.xml +usr/share/foomatic/db/source/printer/Epson-WP-4595.xml +usr/share/foomatic/db/source/printer/Epson-WP-M4011_Series.xml +usr/share/foomatic/db/source/printer/Epson-WP-M4015_Series.xml +usr/share/foomatic/db/source/printer/Epson-WP-M4095_Series.xml +usr/share/foomatic/db/source/printer/Epson-WP-M4521_Series.xml +usr/share/foomatic/db/source/printer/Epson-WP-M4525_Series.xml +usr/share/foomatic/db/source/printer/Epson-WP-M4595_Series.xml +usr/share/foomatic/db/source/printer/Epson-WorkForce_310.xml +usr/share/foomatic/db/source/printer/Epson-WorkForce_320_Series.xml +usr/share/foomatic/db/source/printer/Epson-WorkForce_435_Series.xml +usr/share/foomatic/db/source/printer/Epson-WorkForce_500.xml +usr/share/foomatic/db/source/printer/Epson-WorkForce_520_Series.xml +usr/share/foomatic/db/source/printer/Epson-WorkForce_545_Series.xml +usr/share/foomatic/db/source/printer/Epson-WorkForce_600.xml +usr/share/foomatic/db/source/printer/Epson-WorkForce_60_Series.xml +usr/share/foomatic/db/source/printer/Epson-WorkForce_610.xml +usr/share/foomatic/db/source/printer/Epson-WorkForce_620_Series.xml +usr/share/foomatic/db/source/printer/Epson-WorkForce_630_Series.xml +usr/share/foomatic/db/source/printer/Epson-WorkForce_645_Series.xml +usr/share/foomatic/db/source/printer/Epson-WorkForce_840.xml +usr/share/foomatic/db/source/printer/Epson-WorkForce_845_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-100_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-102_103_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-200_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-201_204_208_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-202_203_206_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-205_207_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-211_214_216_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-212_213_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-215_217_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-300_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-302_303_305_306_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-30_33_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-310_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-312_313_315_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-400_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-402_403_405_406_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-410_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-412_413_415_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-510_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-600_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-610_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-700_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-710_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-750_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-800_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-810_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-850_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-950_Series.xml +usr/share/foomatic/db/source/printer/Fuji_Xerox-DocuPrint_CM205.xml usr/share/foomatic/db/source/printer/Fujifilm-Printpix-CX-400.xml usr/share/foomatic/db/source/printer/Fujifilm-Printpix-CX-550.xml usr/share/foomatic/db/source/printer/Fujitsu-1200.xml @@ -3056,14 +4975,20 @@ usr/share/foomatic/db/source/printer/Fujitsu-PrintPartner_8000.xml usr/share/foomatic/db/source/printer/Generic-ESC_P_Dot_Matrix_Printer.xml usr/share/foomatic/db/source/printer/Generic-GDI_Printer.xml usr/share/foomatic/db/source/printer/Generic-IBM-Compatible_Dot_Matrix_Printer.xml +usr/share/foomatic/db/source/printer/Generic-OAKT_Printer.xml usr/share/foomatic/db/source/printer/Generic-PCL_3_Printer.xml usr/share/foomatic/db/source/printer/Generic-PCL_4_Printer.xml usr/share/foomatic/db/source/printer/Generic-PCL_5_Printer.xml usr/share/foomatic/db/source/printer/Generic-PCL_5c_Printer.xml usr/share/foomatic/db/source/printer/Generic-PCL_5e_Printer.xml usr/share/foomatic/db/source/printer/Generic-PCL_6_PCL_XL_Printer.xml +usr/share/foomatic/db/source/printer/Generic-PostScript_Level_1_Printer.xml usr/share/foomatic/db/source/printer/Generic-PostScript_Printer.xml usr/share/foomatic/db/source/printer/Generic-ZjStream_Printer.xml +usr/share/foomatic/db/source/printer/Genicom-LN45.xml +usr/share/foomatic/db/source/printer/Genicom-ML450.xml +usr/share/foomatic/db/source/printer/Genicom-microLaser_12.xml +usr/share/foomatic/db/source/printer/Genicom-microLaser_210.xml usr/share/foomatic/db/source/printer/Gestetner-10512.xml usr/share/foomatic/db/source/printer/Gestetner-2212.xml usr/share/foomatic/db/source/printer/Gestetner-2712.xml @@ -3087,7 +5012,12 @@ usr/share/foomatic/db/source/printer/Gestetner-C7528n.xml usr/share/foomatic/db/source/printer/Gestetner-C7531dn.xml usr/share/foomatic/db/source/printer/Gestetner-C7535n.xml usr/share/foomatic/db/source/printer/Gestetner-C7640nD.xml +usr/share/foomatic/db/source/printer/Gestetner-C8140ND.xml +usr/share/foomatic/db/source/printer/Gestetner-C8150ND.xml usr/share/foomatic/db/source/printer/Gestetner-CS555.xml +usr/share/foomatic/db/source/printer/Gestetner-DSc1030.xml +usr/share/foomatic/db/source/printer/Gestetner-DSc1045.xml +usr/share/foomatic/db/source/printer/Gestetner-DSc1060.xml usr/share/foomatic/db/source/printer/Gestetner-DSc224.xml usr/share/foomatic/db/source/printer/Gestetner-DSc232.xml usr/share/foomatic/db/source/printer/Gestetner-DSc328.xml @@ -3122,10 +5052,19 @@ usr/share/foomatic/db/source/printer/Gestetner-DSm730.xml usr/share/foomatic/db/source/printer/Gestetner-DSm735_735G.xml usr/share/foomatic/db/source/printer/Gestetner-DSm745_745G.xml usr/share/foomatic/db/source/printer/Gestetner-F9199_9199nf.xml +usr/share/foomatic/db/source/printer/Gestetner-GWD2004.xml +usr/share/foomatic/db/source/printer/Gestetner-GWD2006.xml +usr/share/foomatic/db/source/printer/Gestetner-GWD3006.xml +usr/share/foomatic/db/source/printer/Gestetner-GWD5100.xml +usr/share/foomatic/db/source/printer/Gestetner-GWD7140.xml usr/share/foomatic/db/source/printer/Gestetner-MP1100_DSm7110.xml usr/share/foomatic/db/source/printer/Gestetner-MP1350_DSm7135.xml usr/share/foomatic/db/source/printer/Gestetner-MP1600_DSm716.xml usr/share/foomatic/db/source/printer/Gestetner-MP2000_DSm721d.xml +usr/share/foomatic/db/source/printer/Gestetner-MP2352_DSm923.xml +usr/share/foomatic/db/source/printer/Gestetner-MP2500_DSm625.xml +usr/share/foomatic/db/source/printer/Gestetner-MP2852_DSm928.xml +usr/share/foomatic/db/source/printer/Gestetner-MP3352_DSm933.xml usr/share/foomatic/db/source/printer/Gestetner-MP3500_DSm735e.xml usr/share/foomatic/db/source/printer/Gestetner-MP4500_DSm745e.xml usr/share/foomatic/db/source/printer/Gestetner-MP5500_DSm755.xml @@ -3138,11 +5077,79 @@ usr/share/foomatic/db/source/printer/Gestetner-MPC3000_DSc530.xml usr/share/foomatic/db/source/printer/Gestetner-MPC3500_DSc535.xml usr/share/foomatic/db/source/printer/Gestetner-MPC4500_DSc545.xml usr/share/foomatic/db/source/printer/Gestetner-MP_161_DSm416.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_171.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_2001.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_2501.xml usr/share/foomatic/db/source/printer/Gestetner-MP_2510_DSm725e.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_2550.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_2550B.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_2851.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_301.xml usr/share/foomatic/db/source/printer/Gestetner-MP_3010_DSm730e.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_3350.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_3350B.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_3351.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_4000.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_4000B.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_4001.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_4002.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_5000.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_5000B.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_5001.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_5002.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_6000.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_6001.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_6002.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_7000.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_7001.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_7502.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_8000.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_8001.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_9001.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_9002.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C2050.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C2051.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C2550.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C2551.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C2800.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C300.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C3001.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C3002.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C3003.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C300SR.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C305.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C3300.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C3501.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C3502.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C3503.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C400.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C4000.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C400SR.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C4501.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C4501A.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C4502.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C4502A.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C4503.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C5000.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C5501.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C5501A.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C5502.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C5502A.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C5503.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C6000.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C6003.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C6501.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C6502.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C7500.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C7501.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C8002.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_CW2200.xml usr/share/foomatic/db/source/printer/Gestetner-P7026.xml usr/share/foomatic/db/source/printer/Gestetner-P7026n.xml +usr/share/foomatic/db/source/printer/Gestetner-P7031n.xml +usr/share/foomatic/db/source/printer/Gestetner-P7031nL.xml usr/share/foomatic/db/source/printer/Gestetner-P7032.xml +usr/share/foomatic/db/source/printer/Gestetner-P7035n.xml usr/share/foomatic/db/source/printer/Gestetner-P7126.xml usr/share/foomatic/db/source/printer/Gestetner-P7126n.xml usr/share/foomatic/db/source/printer/Gestetner-P7132n.xml @@ -3156,6 +5163,20 @@ usr/share/foomatic/db/source/printer/Gestetner-P7527n.xml usr/share/foomatic/db/source/printer/Gestetner-P7535n.xml usr/share/foomatic/db/source/printer/Gestetner-P7575.xml usr/share/foomatic/db/source/printer/Gestetner-P7675.xml +usr/share/foomatic/db/source/printer/Gestetner-Pro_1106EX.xml +usr/share/foomatic/db/source/printer/Gestetner-Pro_1107EX.xml +usr/share/foomatic/db/source/printer/Gestetner-Pro_1356EX.xml +usr/share/foomatic/db/source/printer/Gestetner-Pro_1357EX.xml +usr/share/foomatic/db/source/printer/Gestetner-Pro_906EX.xml +usr/share/foomatic/db/source/printer/Gestetner-Pro_907EX.xml +usr/share/foomatic/db/source/printer/Gestetner-SP_4210N.xml +usr/share/foomatic/db/source/printer/Gestetner-SP_6330N.xml +usr/share/foomatic/db/source/printer/Gestetner-SP_8200DN.xml +usr/share/foomatic/db/source/printer/Gestetner-SP_C320DN.xml +usr/share/foomatic/db/source/printer/Gestetner-SP_C420DN.xml +usr/share/foomatic/db/source/printer/Gestetner-SP_C430DN.xml +usr/share/foomatic/db/source/printer/Gestetner-SP_C431DN.xml +usr/share/foomatic/db/source/printer/Gestetner-SP_W2470.xml usr/share/foomatic/db/source/printer/HP-2000C.xml usr/share/foomatic/db/source/printer/HP-2500C.xml usr/share/foomatic/db/source/printer/HP-2500CM.xml @@ -3174,14 +5195,21 @@ usr/share/foomatic/db/source/printer/HP-Business_Inkjet_2300.xml usr/share/foomatic/db/source/printer/HP-Business_Inkjet_2600.xml usr/share/foomatic/db/source/printer/HP-Business_Inkjet_2800.xml usr/share/foomatic/db/source/printer/HP-Business_Inkjet_3000.xml +usr/share/foomatic/db/source/printer/HP-CM8050_Color_MFP.xml +usr/share/foomatic/db/source/printer/HP-CM8050_MFP_with_Edgeline.xml +usr/share/foomatic/db/source/printer/HP-CM8060_Color_MFP.xml +usr/share/foomatic/db/source/printer/HP-CM8060_MFP_with_Edgeline.xml +usr/share/foomatic/db/source/printer/HP-CP3525n.xml usr/share/foomatic/db/source/printer/HP-Color_Inkjet_Printer_CP1160.xml usr/share/foomatic/db/source/printer/HP-Color_Inkjet_Printer_CP1700.xml +usr/share/foomatic/db/source/printer/HP-Color_LaserJet.xml usr/share/foomatic/db/source/printer/HP-Color_LaserJet_1500.xml usr/share/foomatic/db/source/printer/HP-Color_LaserJet_1600.xml usr/share/foomatic/db/source/printer/HP-Color_LaserJet_2500.xml usr/share/foomatic/db/source/printer/HP-Color_LaserJet_2550.xml usr/share/foomatic/db/source/printer/HP-Color_LaserJet_2600n.xml usr/share/foomatic/db/source/printer/HP-Color_LaserJet_2605.xml +usr/share/foomatic/db/source/printer/HP-Color_LaserJet_2605dn.xml usr/share/foomatic/db/source/printer/HP-Color_LaserJet_2700.xml usr/share/foomatic/db/source/printer/HP-Color_LaserJet_2800.xml usr/share/foomatic/db/source/printer/HP-Color_LaserJet_3000.xml @@ -3203,19 +5231,26 @@ usr/share/foomatic/db/source/printer/HP-Color_LaserJet_5500.xml usr/share/foomatic/db/source/printer/HP-Color_LaserJet_5550.xml usr/share/foomatic/db/source/printer/HP-Color_LaserJet_5M.xml usr/share/foomatic/db/source/printer/HP-Color_LaserJet_8500.xml -usr/share/foomatic/db/source/printer/HP-Color_LaserJet_8550GN.xml +usr/share/foomatic/db/source/printer/HP-Color_LaserJet_8550.xml usr/share/foomatic/db/source/printer/HP-Color_LaserJet_9500.xml usr/share/foomatic/db/source/printer/HP-Color_LaserJet_9500_MFP.xml usr/share/foomatic/db/source/printer/HP-Color_LaserJet_CM1015.xml usr/share/foomatic/db/source/printer/HP-Color_LaserJet_CM1017.xml usr/share/foomatic/db/source/printer/HP-Color_LaserJet_CM4730_MFP.xml +usr/share/foomatic/db/source/printer/HP-Color_LaserJet_CP1215.xml usr/share/foomatic/db/source/printer/HP-Color_LaserJet_CP3505.xml usr/share/foomatic/db/source/printer/HP-Color_LaserJet_CP4005.xml usr/share/foomatic/db/source/printer/HP-DesignJet_100.xml usr/share/foomatic/db/source/printer/HP-DesignJet_100plus.xml +usr/share/foomatic/db/source/printer/HP-DesignJet_1050C.xml +usr/share/foomatic/db/source/printer/HP-DesignJet_1055CM.xml +usr/share/foomatic/db/source/printer/HP-DesignJet_110.xml +usr/share/foomatic/db/source/printer/HP-DesignJet_120.xml +usr/share/foomatic/db/source/printer/HP-DesignJet_130.xml usr/share/foomatic/db/source/printer/HP-DesignJet_230.xml usr/share/foomatic/db/source/printer/HP-DesignJet_2500CP.xml usr/share/foomatic/db/source/printer/HP-DesignJet_250C.xml +usr/share/foomatic/db/source/printer/HP-DesignJet_30.xml usr/share/foomatic/db/source/printer/HP-DesignJet_3500CP.xml usr/share/foomatic/db/source/printer/HP-DesignJet_350C.xml usr/share/foomatic/db/source/printer/HP-DesignJet_430.xml @@ -3224,14 +5259,18 @@ usr/share/foomatic/db/source/printer/HP-DesignJet_455CA.xml usr/share/foomatic/db/source/printer/HP-DesignJet_488CA.xml usr/share/foomatic/db/source/printer/HP-DesignJet_500.xml usr/share/foomatic/db/source/printer/HP-DesignJet_5000.xml +usr/share/foomatic/db/source/printer/HP-DesignJet_5000PS.xml usr/share/foomatic/db/source/printer/HP-DesignJet_500ps.xml usr/share/foomatic/db/source/printer/HP-DesignJet_5500.xml usr/share/foomatic/db/source/printer/HP-DesignJet_5500ps.xml usr/share/foomatic/db/source/printer/HP-DesignJet_650C.xml +usr/share/foomatic/db/source/printer/HP-DesignJet_70.xml usr/share/foomatic/db/source/printer/HP-DesignJet_700.xml usr/share/foomatic/db/source/printer/HP-DesignJet_750.xml usr/share/foomatic/db/source/printer/HP-DesignJet_750C_Plus.xml usr/share/foomatic/db/source/printer/HP-DesignJet_800.xml +usr/share/foomatic/db/source/printer/HP-DesignJet_800PS.xml +usr/share/foomatic/db/source/printer/HP-DesignJet_90.xml usr/share/foomatic/db/source/printer/HP-DesignJet_ColorPro_CAD.xml usr/share/foomatic/db/source/printer/HP-DeskJet.xml usr/share/foomatic/db/source/printer/HP-DeskJet_1000C.xml @@ -3281,6 +5320,7 @@ usr/share/foomatic/db/source/printer/HP-DeskJet_5150.xml usr/share/foomatic/db/source/printer/HP-DeskJet_5158.xml usr/share/foomatic/db/source/printer/HP-DeskJet_5160.xml usr/share/foomatic/db/source/printer/HP-DeskJet_520.xml +usr/share/foomatic/db/source/printer/HP-DeskJet_540.xml usr/share/foomatic/db/source/printer/HP-DeskJet_540C.xml usr/share/foomatic/db/source/printer/HP-DeskJet_5440.xml usr/share/foomatic/db/source/printer/HP-DeskJet_550C.xml @@ -3390,6 +5430,8 @@ usr/share/foomatic/db/source/printer/HP-LaserJet_1015.xml usr/share/foomatic/db/source/printer/HP-LaserJet_1018.xml usr/share/foomatic/db/source/printer/HP-LaserJet_1020.xml usr/share/foomatic/db/source/printer/HP-LaserJet_1022.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_1022n.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_1022nw.xml usr/share/foomatic/db/source/printer/HP-LaserJet_1100.xml usr/share/foomatic/db/source/printer/HP-LaserJet_1100A.xml usr/share/foomatic/db/source/printer/HP-LaserJet_1150.xml @@ -3403,6 +5445,7 @@ usr/share/foomatic/db/source/printer/HP-LaserJet_2100.xml usr/share/foomatic/db/source/printer/HP-LaserJet_2100M.xml usr/share/foomatic/db/source/printer/HP-LaserJet_2200.xml usr/share/foomatic/db/source/printer/HP-LaserJet_2300.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_2300L.xml usr/share/foomatic/db/source/printer/HP-LaserJet_2410.xml usr/share/foomatic/db/source/printer/HP-LaserJet_2420.xml usr/share/foomatic/db/source/printer/HP-LaserJet_2430.xml @@ -3437,6 +5480,7 @@ usr/share/foomatic/db/source/printer/HP-LaserJet_4.xml usr/share/foomatic/db/source/printer/HP-LaserJet_4000.xml usr/share/foomatic/db/source/printer/HP-LaserJet_4050.xml usr/share/foomatic/db/source/printer/HP-LaserJet_4100.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_4100_MFP.xml usr/share/foomatic/db/source/printer/HP-LaserJet_4200.xml usr/share/foomatic/db/source/printer/HP-LaserJet_4240.xml usr/share/foomatic/db/source/printer/HP-LaserJet_4250.xml @@ -3446,6 +5490,7 @@ usr/share/foomatic/db/source/printer/HP-LaserJet_4350.xml usr/share/foomatic/db/source/printer/HP-LaserJet_4L.xml usr/share/foomatic/db/source/printer/HP-LaserJet_4M.xml usr/share/foomatic/db/source/printer/HP-LaserJet_4ML.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_4MP.xml usr/share/foomatic/db/source/printer/HP-LaserJet_4P.xml usr/share/foomatic/db/source/printer/HP-LaserJet_4Si.xml usr/share/foomatic/db/source/printer/HP-LaserJet_4V.xml @@ -3461,6 +5506,7 @@ usr/share/foomatic/db/source/printer/HP-LaserJet_5M.xml usr/share/foomatic/db/source/printer/HP-LaserJet_5MP.xml usr/share/foomatic/db/source/printer/HP-LaserJet_5P.xml usr/share/foomatic/db/source/printer/HP-LaserJet_5Si.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_5Si_Mopier.xml usr/share/foomatic/db/source/printer/HP-LaserJet_6.xml usr/share/foomatic/db/source/printer/HP-LaserJet_6L.xml usr/share/foomatic/db/source/printer/HP-LaserJet_6MP.xml @@ -3477,16 +5523,41 @@ usr/share/foomatic/db/source/printer/HP-LaserJet_9050_MFP.xml usr/share/foomatic/db/source/printer/HP-LaserJet_9055_MFP.xml usr/share/foomatic/db/source/printer/HP-LaserJet_9065_MFP.xml usr/share/foomatic/db/source/printer/HP-LaserJet_M1005_MFP.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_M1120_MFP.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_M1319_MFP.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_M1522n_MFP.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_M1522nf_MFP.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_M2727.xml usr/share/foomatic/db/source/printer/HP-LaserJet_M3027_MFP.xml usr/share/foomatic/db/source/printer/HP-LaserJet_M3035_MFP.xml usr/share/foomatic/db/source/printer/HP-LaserJet_M4345_MFP.xml usr/share/foomatic/db/source/printer/HP-LaserJet_M5025_MFP.xml usr/share/foomatic/db/source/printer/HP-LaserJet_M5035_MFP.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_P1005.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_P1006.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_P1007.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_P1008.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_P1505.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_P1505n.xml usr/share/foomatic/db/source/printer/HP-LaserJet_P2010.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_P2014.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_P2014n.xml usr/share/foomatic/db/source/printer/HP-LaserJet_P2015.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_P2035.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_P2035n.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_P2055d.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_P2055dn.xml usr/share/foomatic/db/source/printer/HP-LaserJet_P3004.xml usr/share/foomatic/db/source/printer/HP-LaserJet_P3005.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_P4014.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_P4015.xml usr/share/foomatic/db/source/printer/HP-LaserJet_Plus.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_Pro_CP1025nw.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_Pro_P1102.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_Pro_P1102w.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_Pro_P1566.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_Pro_P1606dn.xml +usr/share/foomatic/db/source/printer/HP-Laserjet_P1020.xml usr/share/foomatic/db/source/printer/HP-Mopier_240.xml usr/share/foomatic/db/source/printer/HP-Mopier_320.xml usr/share/foomatic/db/source/printer/HP-OfficeJet.xml @@ -3539,9 +5610,12 @@ usr/share/foomatic/db/source/printer/HP-OfficeJet_D155.xml usr/share/foomatic/db/source/printer/HP-OfficeJet_G55.xml usr/share/foomatic/db/source/printer/HP-OfficeJet_G85.xml usr/share/foomatic/db/source/printer/HP-OfficeJet_G95.xml +usr/share/foomatic/db/source/printer/HP-OfficeJet_J3600.xml +usr/share/foomatic/db/source/printer/HP-OfficeJet_J5500.xml usr/share/foomatic/db/source/printer/HP-OfficeJet_J5700.xml usr/share/foomatic/db/source/printer/HP-OfficeJet_K60.xml usr/share/foomatic/db/source/printer/HP-OfficeJet_K60xi.xml +usr/share/foomatic/db/source/printer/HP-OfficeJet_K7100.xml usr/share/foomatic/db/source/printer/HP-OfficeJet_K80.xml usr/share/foomatic/db/source/printer/HP-OfficeJet_K80xi.xml usr/share/foomatic/db/source/printer/HP-OfficeJet_LX.xml @@ -3552,6 +5626,7 @@ usr/share/foomatic/db/source/printer/HP-OfficeJet_Pro_K5300.xml usr/share/foomatic/db/source/printer/HP-OfficeJet_Pro_K5400.xml usr/share/foomatic/db/source/printer/HP-OfficeJet_Pro_K550.xml usr/share/foomatic/db/source/printer/HP-OfficeJet_Pro_K850.xml +usr/share/foomatic/db/source/printer/HP-OfficeJet_Pro_K8600.xml usr/share/foomatic/db/source/printer/HP-OfficeJet_Pro_L7300.xml usr/share/foomatic/db/source/printer/HP-OfficeJet_Pro_L7500.xml usr/share/foomatic/db/source/printer/HP-OfficeJet_Pro_L7600.xml @@ -3639,15 +5714,22 @@ usr/share/foomatic/db/source/printer/HP-PhotoSmart_A820.xml usr/share/foomatic/db/source/printer/HP-PhotoSmart_C3100.xml usr/share/foomatic/db/source/printer/HP-PhotoSmart_C4100.xml usr/share/foomatic/db/source/printer/HP-PhotoSmart_C4200.xml +usr/share/foomatic/db/source/printer/HP-PhotoSmart_C4380.xml usr/share/foomatic/db/source/printer/HP-PhotoSmart_C5100.xml usr/share/foomatic/db/source/printer/HP-PhotoSmart_C5200.xml usr/share/foomatic/db/source/printer/HP-PhotoSmart_C6100.xml +usr/share/foomatic/db/source/printer/HP-PhotoSmart_C6200.xml usr/share/foomatic/db/source/printer/HP-PhotoSmart_C7100.xml +usr/share/foomatic/db/source/printer/HP-PhotoSmart_C7200.xml +usr/share/foomatic/db/source/printer/HP-PhotoSmart_C8100.xml usr/share/foomatic/db/source/printer/HP-PhotoSmart_D5060.xml usr/share/foomatic/db/source/printer/HP-PhotoSmart_D5100.xml +usr/share/foomatic/db/source/printer/HP-PhotoSmart_D5300.xml usr/share/foomatic/db/source/printer/HP-PhotoSmart_D6100.xml usr/share/foomatic/db/source/printer/HP-PhotoSmart_D7100.xml +usr/share/foomatic/db/source/printer/HP-PhotoSmart_D7200.xml usr/share/foomatic/db/source/printer/HP-PhotoSmart_D7300.xml +usr/share/foomatic/db/source/printer/HP-PhotoSmart_D7400.xml usr/share/foomatic/db/source/printer/HP-PhotoSmart_P100.xml usr/share/foomatic/db/source/printer/HP-PhotoSmart_P1000.xml usr/share/foomatic/db/source/printer/HP-PhotoSmart_P1100.xml @@ -3658,6 +5740,9 @@ usr/share/foomatic/db/source/printer/HP-PhotoSmart_P130.xml usr/share/foomatic/db/source/printer/HP-PhotoSmart_P1315.xml usr/share/foomatic/db/source/printer/HP-PhotoSmart_P230.xml usr/share/foomatic/db/source/printer/HP-PhotoSmart_Pro_B8300.xml +usr/share/foomatic/db/source/printer/HP-Photosmart_C309g.xml +usr/share/foomatic/db/source/printer/HP-Photosmart_C6380.xml +usr/share/foomatic/db/source/printer/HP-Photosmart_D5460.xml usr/share/foomatic/db/source/printer/HP-ThinkJet.xml usr/share/foomatic/db/source/printer/HP-e-printer_e20.xml usr/share/foomatic/db/source/printer/Heidelberg-Digimaster_9110.xml @@ -3670,9 +5755,23 @@ usr/share/foomatic/db/source/printer/IBM-4303_Network_Color_Printer.xml usr/share/foomatic/db/source/printer/IBM-4312.xml usr/share/foomatic/db/source/printer/IBM-Execjet_4072.xml usr/share/foomatic/db/source/printer/IBM-Infoprint_12.xml +usr/share/foomatic/db/source/printer/IBM-Infoprint_1226tn.xml +usr/share/foomatic/db/source/printer/IBM-Infoprint_1422.xml +usr/share/foomatic/db/source/printer/IBM-Infoprint_1532_Express.xml +usr/share/foomatic/db/source/printer/IBM-Infoprint_1540_MFP.xml +usr/share/foomatic/db/source/printer/IBM-Infoprint_1560_MFP.xml +usr/share/foomatic/db/source/printer/IBM-Infoprint_1570_MFP.xml +usr/share/foomatic/db/source/printer/IBM-Infoprint_1572_MFP.xml +usr/share/foomatic/db/source/printer/IBM-Infoprint_1580_MFP.xml +usr/share/foomatic/db/source/printer/IBM-Infoprint_1585n.xml +usr/share/foomatic/db/source/printer/IBM-Infoprint_1650_MFP.xml usr/share/foomatic/db/source/printer/IBM-Page_Printer_3112.xml usr/share/foomatic/db/source/printer/IBM-ProPrinterII.xml usr/share/foomatic/db/source/printer/Imagen-ImPress.xml +usr/share/foomatic/db/source/printer/Imagistics-im8530.xml +usr/share/foomatic/db/source/printer/InfoPrint-Pro_1107EX.xml +usr/share/foomatic/db/source/printer/InfoPrint-Pro_1357EX.xml +usr/share/foomatic/db/source/printer/InfoPrint-Pro_907EX.xml usr/share/foomatic/db/source/printer/Infotec-4353_MF.xml usr/share/foomatic/db/source/printer/Infotec-4452_MF.xml usr/share/foomatic/db/source/printer/Infotec-4651_MF.xml @@ -3735,6 +5834,7 @@ usr/share/foomatic/db/source/printer/Infotec-IS_2265.xml usr/share/foomatic/db/source/printer/Infotec-IS_2275.xml usr/share/foomatic/db/source/printer/Infotec-IS_2316.xml usr/share/foomatic/db/source/printer/Infotec-IS_2320.xml +usr/share/foomatic/db/source/printer/Infotec-IS_2325.xml usr/share/foomatic/db/source/printer/Infotec-IS_2416.xml usr/share/foomatic/db/source/printer/Infotec-IS_2425.xml usr/share/foomatic/db/source/printer/Infotec-IS_2430.xml @@ -3743,6 +5843,85 @@ usr/share/foomatic/db/source/printer/Infotec-IS_2445.xml usr/share/foomatic/db/source/printer/Infotec-IS_3090.xml usr/share/foomatic/db/source/printer/Infotec-IS_3110.xml usr/share/foomatic/db/source/printer/Infotec-IS_3135.xml +usr/share/foomatic/db/source/printer/Infotec-MP_171.xml +usr/share/foomatic/db/source/printer/Infotec-MP_2001.xml +usr/share/foomatic/db/source/printer/Infotec-MP_201.xml +usr/share/foomatic/db/source/printer/Infotec-MP_2352.xml +usr/share/foomatic/db/source/printer/Infotec-MP_2501.xml +usr/share/foomatic/db/source/printer/Infotec-MP_2550.xml +usr/share/foomatic/db/source/printer/Infotec-MP_2550B.xml +usr/share/foomatic/db/source/printer/Infotec-MP_2851.xml +usr/share/foomatic/db/source/printer/Infotec-MP_2852.xml +usr/share/foomatic/db/source/printer/Infotec-MP_301.xml +usr/share/foomatic/db/source/printer/Infotec-MP_3350.xml +usr/share/foomatic/db/source/printer/Infotec-MP_3350B.xml +usr/share/foomatic/db/source/printer/Infotec-MP_3351.xml +usr/share/foomatic/db/source/printer/Infotec-MP_3352.xml +usr/share/foomatic/db/source/printer/Infotec-MP_4000.xml +usr/share/foomatic/db/source/printer/Infotec-MP_4000B.xml +usr/share/foomatic/db/source/printer/Infotec-MP_4001.xml +usr/share/foomatic/db/source/printer/Infotec-MP_4002.xml +usr/share/foomatic/db/source/printer/Infotec-MP_5000.xml +usr/share/foomatic/db/source/printer/Infotec-MP_5000B.xml +usr/share/foomatic/db/source/printer/Infotec-MP_5001.xml +usr/share/foomatic/db/source/printer/Infotec-MP_5002.xml +usr/share/foomatic/db/source/printer/Infotec-MP_6000.xml +usr/share/foomatic/db/source/printer/Infotec-MP_6001.xml +usr/share/foomatic/db/source/printer/Infotec-MP_6002.xml +usr/share/foomatic/db/source/printer/Infotec-MP_7000.xml +usr/share/foomatic/db/source/printer/Infotec-MP_7001.xml +usr/share/foomatic/db/source/printer/Infotec-MP_7502.xml +usr/share/foomatic/db/source/printer/Infotec-MP_8000.xml +usr/share/foomatic/db/source/printer/Infotec-MP_8001.xml +usr/share/foomatic/db/source/printer/Infotec-MP_9001.xml +usr/share/foomatic/db/source/printer/Infotec-MP_9002.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C2050.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C2051.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C2550.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C2551.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C2800.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C300.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C3001.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C3002.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C3003.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C300SR.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C305.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C3300.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C3501.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C3502.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C3503.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C400.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C4000.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C400SR.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C4501.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C4501A.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C4502.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C4502A.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C4503.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C5000.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C5501.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C5501A.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C5502.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C5502A.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C5503.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C6000.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C6003.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C6501.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C6502.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C7500.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C7501.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C8002.xml +usr/share/foomatic/db/source/printer/Infotec-Pro_1106EX.xml +usr/share/foomatic/db/source/printer/Infotec-Pro_1107EX.xml +usr/share/foomatic/db/source/printer/Infotec-Pro_1356EX.xml +usr/share/foomatic/db/source/printer/Infotec-Pro_1357EX.xml +usr/share/foomatic/db/source/printer/Infotec-Pro_906EX.xml +usr/share/foomatic/db/source/printer/Infotec-Pro_907EX.xml +usr/share/foomatic/db/source/printer/Infotec-Pro_C5100S.xml +usr/share/foomatic/db/source/printer/Infotec-Pro_C5110S.xml +usr/share/foomatic/db/source/printer/KONICA_MINOLTA-PagePro_1300W.xml +usr/share/foomatic/db/source/printer/KONICA_MINOLTA-PagePro_1350W.xml +usr/share/foomatic/db/source/printer/KONICA_MINOLTA-PagePro_1400W.xml usr/share/foomatic/db/source/printer/KONICA_MINOLTA-bizhub_1050.xml usr/share/foomatic/db/source/printer/KONICA_MINOLTA-bizhub_1050P.xml usr/share/foomatic/db/source/printer/KONICA_MINOLTA-bizhub_1050e.xml @@ -3764,15 +5943,47 @@ usr/share/foomatic/db/source/printer/KONICA_MINOLTA-bizhub_C450.xml usr/share/foomatic/db/source/printer/KONICA_MINOLTA-bizhub_C450P.xml usr/share/foomatic/db/source/printer/KONICA_MINOLTA-bizhub_C451.xml usr/share/foomatic/db/source/printer/KONICA_MINOLTA-bizhub_C550.xml +usr/share/foomatic/db/source/printer/KONICA_MINOLTA-magicolor_1600W.xml +usr/share/foomatic/db/source/printer/KONICA_MINOLTA-magicolor_1680MF.xml +usr/share/foomatic/db/source/printer/KONICA_MINOLTA-magicolor_1690MF.xml +usr/share/foomatic/db/source/printer/KONICA_MINOLTA-magicolor_2300W.xml usr/share/foomatic/db/source/printer/KONICA_MINOLTA-magicolor_2300_DL.xml +usr/share/foomatic/db/source/printer/KONICA_MINOLTA-magicolor_2400W.xml usr/share/foomatic/db/source/printer/KONICA_MINOLTA-magicolor_2430_DL.xml usr/share/foomatic/db/source/printer/KONICA_MINOLTA-magicolor_2480_MF.xml usr/share/foomatic/db/source/printer/KONICA_MINOLTA-magicolor_2490_MF.xml usr/share/foomatic/db/source/printer/KONICA_MINOLTA-magicolor_2530_DL.xml +usr/share/foomatic/db/source/printer/KONICA_MINOLTA-magicolor_4690MF.xml usr/share/foomatic/db/source/printer/KONICA_MINOLTA-magicolor_5430_DL.xml usr/share/foomatic/db/source/printer/KONICA_MINOLTA-magicolor_5440_DL.xml usr/share/foomatic/db/source/printer/Kodak-DigiSource_9110.xml +usr/share/foomatic/db/source/printer/Kodak-ESP_3.xml +usr/share/foomatic/db/source/printer/Kodak-ESP_3250.xml +usr/share/foomatic/db/source/printer/Kodak-ESP_5250.xml +usr/share/foomatic/db/source/printer/Kodak-ESP_5500.xml +usr/share/foomatic/db/source/printer/Kodak-ESP_6150.xml +usr/share/foomatic/db/source/printer/Kodak-ESP_7.xml +usr/share/foomatic/db/source/printer/Kodak-ESP_7250.xml +usr/share/foomatic/db/source/printer/Kodak-ESP_9.xml +usr/share/foomatic/db/source/printer/Kodak-EasyShare_5100.xml +usr/share/foomatic/db/source/printer/Kodak-EasyShare_5300.xml +usr/share/foomatic/db/source/printer/Kodak-EasyShare_5500.xml usr/share/foomatic/db/source/printer/Kodak-IS_70_CPII.xml +usr/share/foomatic/db/source/printer/Kyocera-CS-1650.xml +usr/share/foomatic/db/source/printer/Kyocera-CS-1815.xml +usr/share/foomatic/db/source/printer/Kyocera-CS-2050.xml +usr/share/foomatic/db/source/printer/Kyocera-CS-2550.xml +usr/share/foomatic/db/source/printer/Kyocera-CS-C2525E_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-CS-C3225E_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-CS-C3232E_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-CS-C4035E_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-CS_250ci_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-CS_300ci_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-CS_3050ci.xml +usr/share/foomatic/db/source/printer/Kyocera-CS_3550ci.xml +usr/share/foomatic/db/source/printer/Kyocera-CS_400ci_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-CS_500ci_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-Ci-1100.xml usr/share/foomatic/db/source/printer/Kyocera-F-1000.xml usr/share/foomatic/db/source/printer/Kyocera-F-1010.xml usr/share/foomatic/db/source/printer/Kyocera-F-1200.xml @@ -3793,7 +6004,11 @@ usr/share/foomatic/db/source/printer/Kyocera-FS-1000.xml usr/share/foomatic/db/source/printer/Kyocera-FS-1000plus.xml usr/share/foomatic/db/source/printer/Kyocera-FS-1010.xml usr/share/foomatic/db/source/printer/Kyocera-FS-1016MFP.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-1018MFP.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-1020D.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-1030D.xml usr/share/foomatic/db/source/printer/Kyocera-FS-1050.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-1118MFP.xml usr/share/foomatic/db/source/printer/Kyocera-FS-1200.xml usr/share/foomatic/db/source/printer/Kyocera-FS-1500.xml usr/share/foomatic/db/source/printer/Kyocera-FS-1550.xml @@ -3802,10 +6017,15 @@ usr/share/foomatic/db/source/printer/Kyocera-FS-1600.xml usr/share/foomatic/db/source/printer/Kyocera-FS-1600plus.xml usr/share/foomatic/db/source/printer/Kyocera-FS-1700.xml usr/share/foomatic/db/source/printer/Kyocera-FS-1700plus.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-1714M.xml usr/share/foomatic/db/source/printer/Kyocera-FS-1750.xml usr/share/foomatic/db/source/printer/Kyocera-FS-1800.xml usr/share/foomatic/db/source/printer/Kyocera-FS-1800plus.xml usr/share/foomatic/db/source/printer/Kyocera-FS-1900.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-1920.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-2000D.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-2100D.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-2100DN.xml usr/share/foomatic/db/source/printer/Kyocera-FS-3400.xml usr/share/foomatic/db/source/printer/Kyocera-FS-3400plus.xml usr/share/foomatic/db/source/printer/Kyocera-FS-3500.xml @@ -3813,38 +6033,106 @@ usr/share/foomatic/db/source/printer/Kyocera-FS-3600.xml usr/share/foomatic/db/source/printer/Kyocera-FS-3600plus.xml usr/share/foomatic/db/source/printer/Kyocera-FS-3700.xml usr/share/foomatic/db/source/printer/Kyocera-FS-3700plus.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-3718M.xml usr/share/foomatic/db/source/printer/Kyocera-FS-3750.xml usr/share/foomatic/db/source/printer/Kyocera-FS-3800.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-3820N.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-3830N.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-3900DN.xml usr/share/foomatic/db/source/printer/Kyocera-FS-400.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-4000DN.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-4100DN.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-4200DN.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-4300DN.xml usr/share/foomatic/db/source/printer/Kyocera-FS-5500.xml usr/share/foomatic/db/source/printer/Kyocera-FS-5800C.xml usr/share/foomatic/db/source/printer/Kyocera-FS-5900C.xml usr/share/foomatic/db/source/printer/Kyocera-FS-600.xml usr/share/foomatic/db/source/printer/Kyocera-FS-600_KPDL-2.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-6020.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-6026.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-6300.xml usr/share/foomatic/db/source/printer/Kyocera-FS-6500.xml usr/share/foomatic/db/source/printer/Kyocera-FS-6500plus.xml usr/share/foomatic/db/source/printer/Kyocera-FS-6700.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-6750.xml usr/share/foomatic/db/source/printer/Kyocera-FS-680.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-6900.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-6950DN.xml usr/share/foomatic/db/source/printer/Kyocera-FS-7000.xml usr/share/foomatic/db/source/printer/Kyocera-FS-7000plus.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-7028M.xml usr/share/foomatic/db/source/printer/Kyocera-FS-800.xml usr/share/foomatic/db/source/printer/Kyocera-FS-8000C.xml usr/share/foomatic/db/source/printer/Kyocera-FS-850.xml usr/share/foomatic/db/source/printer/Kyocera-FS-9000.xml usr/share/foomatic/db/source/printer/Kyocera-FS-9100DN.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-9120DN.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-9130DN.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-920.xml usr/share/foomatic/db/source/printer/Kyocera-FS-9500DN.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-9520DN.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-9530DN.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-C5015N.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-C5016N.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-C5020N.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-C5025N.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-C5030N.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-C5100DN_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-C5200DN_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-C5300DN_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-C5350DN_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-C5400DN_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-C8008N.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-C8026N.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-C8100DN.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-C8100DNplus_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-1510.xml usr/share/foomatic/db/source/printer/Kyocera-KM-1530.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-1635.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-1650.xml usr/share/foomatic/db/source/printer/Kyocera-KM-1810.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-1815.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-1820.xml usr/share/foomatic/db/source/printer/Kyocera-KM-2030.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-2035.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-2050.xml usr/share/foomatic/db/source/printer/Kyocera-KM-2530.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-2550.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-3035.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-3050.xml usr/share/foomatic/db/source/printer/Kyocera-KM-3530.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-4030.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-4035.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-4050.xml usr/share/foomatic/db/source/printer/Kyocera-KM-4230.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-4230_5230.xml usr/share/foomatic/db/source/printer/Kyocera-KM-4530.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-5035.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-5050.xml usr/share/foomatic/db/source/printer/Kyocera-KM-5230.xml usr/share/foomatic/db/source/printer/Kyocera-KM-5530.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-6030.xml usr/share/foomatic/db/source/printer/Kyocera-KM-6230.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-6330.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-7530.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-8030.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-C2520.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-C2525E_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-C2630.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-C3225.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-C3225E_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-C3232.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-C3232E_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-C4035E_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-C830.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-C850.xml usr/share/foomatic/db/source/printer/Kyocera-P-2000.xml usr/share/foomatic/db/source/printer/Kyocera-P-2002.xml +usr/share/foomatic/db/source/printer/Kyocera-TASKalfa_250ci_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-TASKalfa_300ci_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-TASKalfa_400ci_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-TASKalfa_500ci_KPDL.xml usr/share/foomatic/db/source/printer/Lanier-2132.xml usr/share/foomatic/db/source/printer/Lanier-2138.xml usr/share/foomatic/db/source/printer/Lanier-2145.xml @@ -3890,6 +6178,12 @@ usr/share/foomatic/db/source/printer/Lanier-LD245.xml usr/share/foomatic/db/source/printer/Lanier-LD328c.xml usr/share/foomatic/db/source/printer/Lanier-LD335c.xml usr/share/foomatic/db/source/printer/Lanier-LD345c.xml +usr/share/foomatic/db/source/printer/Lanier-LD_130C.xml +usr/share/foomatic/db/source/printer/Lanier-LD_130CSR.xml +usr/share/foomatic/db/source/printer/Lanier-LD_140C.xml +usr/share/foomatic/db/source/printer/Lanier-LD_140CSR.xml +usr/share/foomatic/db/source/printer/Lanier-LD_620C.xml +usr/share/foomatic/db/source/printer/Lanier-LD_625C.xml usr/share/foomatic/db/source/printer/Lanier-LF510_515e.xml usr/share/foomatic/db/source/printer/Lanier-LP025N_LP026N.xml usr/share/foomatic/db/source/printer/Lanier-LP025_LP026.xml @@ -3897,41 +6191,155 @@ usr/share/foomatic/db/source/printer/Lanier-LP031c.xml usr/share/foomatic/db/source/printer/Lanier-LP032.xml usr/share/foomatic/db/source/printer/Lanier-LP116c.xml usr/share/foomatic/db/source/printer/Lanier-LP122c_LP121c.xml +usr/share/foomatic/db/source/printer/Lanier-LP124w.xml usr/share/foomatic/db/source/printer/Lanier-LP125cx_LP126cn.xml usr/share/foomatic/db/source/printer/Lanier-LP127n_LP128n.xml usr/share/foomatic/db/source/printer/Lanier-LP128.xml +usr/share/foomatic/db/source/printer/Lanier-LP131n.xml +usr/share/foomatic/db/source/printer/Lanier-LP131nL.xml usr/share/foomatic/db/source/printer/Lanier-LP135n.xml +usr/share/foomatic/db/source/printer/Lanier-LP136n.xml +usr/share/foomatic/db/source/printer/Lanier-LP137CN.xml usr/share/foomatic/db/source/printer/Lanier-LP138c.xml +usr/share/foomatic/db/source/printer/Lanier-LP142CN.xml usr/share/foomatic/db/source/printer/Lanier-LP145n_SP_8100DN.xml +usr/share/foomatic/db/source/printer/Lanier-LP150dn_SP8200DN.xml usr/share/foomatic/db/source/printer/Lanier-LP175_LP175hdn.xml usr/share/foomatic/db/source/printer/Lanier-LP222cn_LP221c.xml usr/share/foomatic/db/source/printer/Lanier-LP226c_SP_C410.xml usr/share/foomatic/db/source/printer/Lanier-LP231c_SP_C411.xml +usr/share/foomatic/db/source/printer/Lanier-LP235N.xml usr/share/foomatic/db/source/printer/Lanier-LP235c.xml +usr/share/foomatic/db/source/printer/Lanier-LP331cn_SP_C420.xml usr/share/foomatic/db/source/printer/Lanier-LP332c.xml usr/share/foomatic/db/source/printer/Lanier-LP335c.xml +usr/share/foomatic/db/source/printer/Lanier-LP37N.xml usr/share/foomatic/db/source/printer/Lanier-LP440c_SP_C811DN.xml +usr/share/foomatic/db/source/printer/Lanier-LP540C_SPC820DN.xml +usr/share/foomatic/db/source/printer/Lanier-LP550C_SPC821DN.xml usr/share/foomatic/db/source/printer/Lanier-LP_020c.xml usr/share/foomatic/db/source/printer/Lanier-LP_036c.xml +usr/share/foomatic/db/source/printer/Lanier-LW324.xml +usr/share/foomatic/db/source/printer/Lanier-LW326.xml +usr/share/foomatic/db/source/printer/Lanier-LW426.xml +usr/share/foomatic/db/source/printer/Lanier-LW5100.xml +usr/share/foomatic/db/source/printer/Lanier-LW7140.xml +usr/share/foomatic/db/source/printer/Lanier-MP2500_LD125.xml usr/share/foomatic/db/source/printer/Lanier-MPC1500_LD215c.xml +usr/share/foomatic/db/source/printer/Lanier-MPC4501A_LD645CA.xml +usr/share/foomatic/db/source/printer/Lanier-MPC5501A_LD655CA.xml usr/share/foomatic/db/source/printer/Lanier-MP_1100_LD1100.xml usr/share/foomatic/db/source/printer/Lanier-MP_1350_LD1135.xml usr/share/foomatic/db/source/printer/Lanier-MP_1600_LD316.xml usr/share/foomatic/db/source/printer/Lanier-MP_161_LD016.xml +usr/share/foomatic/db/source/printer/Lanier-MP_171_LD_117.xml usr/share/foomatic/db/source/printer/Lanier-MP_2000_LD320d.xml +usr/share/foomatic/db/source/printer/Lanier-MP_2001.xml +usr/share/foomatic/db/source/printer/Lanier-MP_201_LD_220.xml +usr/share/foomatic/db/source/printer/Lanier-MP_2352.xml +usr/share/foomatic/db/source/printer/Lanier-MP_2501.xml usr/share/foomatic/db/source/printer/Lanier-MP_2510_LD325.xml +usr/share/foomatic/db/source/printer/Lanier-MP_2550B_LD425B.xml +usr/share/foomatic/db/source/printer/Lanier-MP_2550_LD425.xml +usr/share/foomatic/db/source/printer/Lanier-MP_2851_LD528.xml +usr/share/foomatic/db/source/printer/Lanier-MP_2852.xml +usr/share/foomatic/db/source/printer/Lanier-MP_301.xml usr/share/foomatic/db/source/printer/Lanier-MP_3010_LD330.xml +usr/share/foomatic/db/source/printer/Lanier-MP_3350B_LD433B.xml +usr/share/foomatic/db/source/printer/Lanier-MP_3350_LD433.xml +usr/share/foomatic/db/source/printer/Lanier-MP_3351_LD533.xml +usr/share/foomatic/db/source/printer/Lanier-MP_3352.xml usr/share/foomatic/db/source/printer/Lanier-MP_3500_LD335.xml +usr/share/foomatic/db/source/printer/Lanier-MP_4000B_LD040B.xml +usr/share/foomatic/db/source/printer/Lanier-MP_4000_LD040.xml +usr/share/foomatic/db/source/printer/Lanier-MP_4001_LD140.xml +usr/share/foomatic/db/source/printer/Lanier-MP_4002.xml usr/share/foomatic/db/source/printer/Lanier-MP_4500_LD345.xml +usr/share/foomatic/db/source/printer/Lanier-MP_5000B_LD050B.xml +usr/share/foomatic/db/source/printer/Lanier-MP_5000_LD050.xml +usr/share/foomatic/db/source/printer/Lanier-MP_5001_LD150.xml +usr/share/foomatic/db/source/printer/Lanier-MP_5002.xml usr/share/foomatic/db/source/printer/Lanier-MP_5500_LD255.xml +usr/share/foomatic/db/source/printer/Lanier-MP_6000_LD260.xml +usr/share/foomatic/db/source/printer/Lanier-MP_6001_LD360.xml +usr/share/foomatic/db/source/printer/Lanier-MP_6002.xml usr/share/foomatic/db/source/printer/Lanier-MP_6500_LD265.xml +usr/share/foomatic/db/source/printer/Lanier-MP_7000_LD270.xml +usr/share/foomatic/db/source/printer/Lanier-MP_7001_LD370.xml usr/share/foomatic/db/source/printer/Lanier-MP_7500_LD275.xml +usr/share/foomatic/db/source/printer/Lanier-MP_7502.xml +usr/share/foomatic/db/source/printer/Lanier-MP_8000_LD280.xml +usr/share/foomatic/db/source/printer/Lanier-MP_8001_LD380.xml usr/share/foomatic/db/source/printer/Lanier-MP_9000_LD190.xml +usr/share/foomatic/db/source/printer/Lanier-MP_9001_LD390.xml +usr/share/foomatic/db/source/printer/Lanier-MP_9002.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C2050_LD520C.xml usr/share/foomatic/db/source/printer/Lanier-MP_C2500_LD425c.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C2550_LD525C.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C2800_LD528C.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C300.xml usr/share/foomatic/db/source/printer/Lanier-MP_C3000_LD430c.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C3001_LD630C.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C3002.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C3003.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C300SR.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C305.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C3300_LD533C.xml usr/share/foomatic/db/source/printer/Lanier-MP_C3500_LD435c.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C3501_LD635C.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C3502.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C3503.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C400.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C4000_LD540C.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C400SR.xml usr/share/foomatic/db/source/printer/Lanier-MP_C4500_LD445c.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C4501_LD645C.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C4502.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C4502A.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C4503.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C5000_LD550C.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C5501_LD655C.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C5502.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C5502A.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C5503.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C6000_LD260c.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C6003.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C6501_LD365C.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C6502.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C7500_LD275c.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C7501_LD375C.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C8002.xml +usr/share/foomatic/db/source/printer/Lanier-MP_CW2200.xml +usr/share/foomatic/db/source/printer/Lanier-Pro_1106EX.xml +usr/share/foomatic/db/source/printer/Lanier-Pro_1107EX.xml +usr/share/foomatic/db/source/printer/Lanier-Pro_1356EX.xml +usr/share/foomatic/db/source/printer/Lanier-Pro_1357EX.xml +usr/share/foomatic/db/source/printer/Lanier-Pro_906EX.xml +usr/share/foomatic/db/source/printer/Lanier-Pro_907EX.xml +usr/share/foomatic/db/source/printer/Lanier-Pro_C5100S.xml +usr/share/foomatic/db/source/printer/Lanier-Pro_C5110S.xml +usr/share/foomatic/db/source/printer/Lanier-SG3100SNw.xml +usr/share/foomatic/db/source/printer/Lanier-SG3110SFNw.xml +usr/share/foomatic/db/source/printer/Lanier-SP_4100N.xml +usr/share/foomatic/db/source/printer/Lanier-SP_4100NL.xml +usr/share/foomatic/db/source/printer/Lanier-SP_4110N.xml +usr/share/foomatic/db/source/printer/Lanier-SP_4210N.xml +usr/share/foomatic/db/source/printer/Lanier-SP_4310N.xml +usr/share/foomatic/db/source/printer/Lanier-SP_5200DN.xml +usr/share/foomatic/db/source/printer/Lanier-SP_5200S.xml +usr/share/foomatic/db/source/printer/Lanier-SP_5210DN.xml +usr/share/foomatic/db/source/printer/Lanier-SP_5210SF.xml +usr/share/foomatic/db/source/printer/Lanier-SP_5210SR.xml +usr/share/foomatic/db/source/printer/Lanier-SP_6330N.xml +usr/share/foomatic/db/source/printer/Lanier-SP_8300DN.xml usr/share/foomatic/db/source/printer/Lanier-SP_9100_LP275.xml +usr/share/foomatic/db/source/printer/Lanier-SP_C320DN.xml +usr/share/foomatic/db/source/printer/Lanier-SP_C400DN.xml +usr/share/foomatic/db/source/printer/Lanier-SP_C430DN.xml +usr/share/foomatic/db/source/printer/Lanier-SP_C431DN.xml +usr/share/foomatic/db/source/printer/Lanier-SP_C730DN.xml +usr/share/foomatic/db/source/printer/Lanier-SP_C830DN.xml +usr/share/foomatic/db/source/printer/Lanier-SP_C831DN.xml usr/share/foomatic/db/source/printer/LaserMaster-LM_1000.xml usr/share/foomatic/db/source/printer/Lexmark-1000.xml usr/share/foomatic/db/source/printer/Lexmark-1020.xml @@ -3946,9 +6354,78 @@ usr/share/foomatic/db/source/printer/Lexmark-4039_10plus.xml usr/share/foomatic/db/source/printer/Lexmark-4076.xml usr/share/foomatic/db/source/printer/Lexmark-5000.xml usr/share/foomatic/db/source/printer/Lexmark-5700.xml +usr/share/foomatic/db/source/printer/Lexmark-6500e.xml usr/share/foomatic/db/source/printer/Lexmark-7000.xml usr/share/foomatic/db/source/printer/Lexmark-7200.xml +usr/share/foomatic/db/source/printer/Lexmark-C500.xml +usr/share/foomatic/db/source/printer/Lexmark-C500n.xml +usr/share/foomatic/db/source/printer/Lexmark-C510.xml +usr/share/foomatic/db/source/printer/Lexmark-C510b.xml +usr/share/foomatic/db/source/printer/Lexmark-C520.xml +usr/share/foomatic/db/source/printer/Lexmark-C522.xml +usr/share/foomatic/db/source/printer/Lexmark-C524.xml +usr/share/foomatic/db/source/printer/Lexmark-C530dn.xml +usr/share/foomatic/db/source/printer/Lexmark-C532dn.xml +usr/share/foomatic/db/source/printer/Lexmark-C532n.xml +usr/share/foomatic/db/source/printer/Lexmark-C534dn.xml +usr/share/foomatic/db/source/printer/Lexmark-C534dtn.xml +usr/share/foomatic/db/source/printer/Lexmark-C534n.xml +usr/share/foomatic/db/source/printer/Lexmark-C540.xml +usr/share/foomatic/db/source/printer/Lexmark-C543.xml +usr/share/foomatic/db/source/printer/Lexmark-C544.xml +usr/share/foomatic/db/source/printer/Lexmark-C546.xml +usr/share/foomatic/db/source/printer/Lexmark-C720n.xml +usr/share/foomatic/db/source/printer/Lexmark-C734.xml +usr/share/foomatic/db/source/printer/Lexmark-C736.xml +usr/share/foomatic/db/source/printer/Lexmark-C750.xml +usr/share/foomatic/db/source/printer/Lexmark-C752.xml +usr/share/foomatic/db/source/printer/Lexmark-C752b.xml +usr/share/foomatic/db/source/printer/Lexmark-C762.xml +usr/share/foomatic/db/source/printer/Lexmark-C770dtn.xml +usr/share/foomatic/db/source/printer/Lexmark-C770n.xml +usr/share/foomatic/db/source/printer/Lexmark-C772dn.xml +usr/share/foomatic/db/source/printer/Lexmark-C772n.xml +usr/share/foomatic/db/source/printer/Lexmark-C780.xml +usr/share/foomatic/db/source/printer/Lexmark-C780dn.xml +usr/share/foomatic/db/source/printer/Lexmark-C780dtn.xml +usr/share/foomatic/db/source/printer/Lexmark-C780n.xml +usr/share/foomatic/db/source/printer/Lexmark-C782.xml +usr/share/foomatic/db/source/printer/Lexmark-C782dn.xml +usr/share/foomatic/db/source/printer/Lexmark-C782dtn.xml +usr/share/foomatic/db/source/printer/Lexmark-C782n.xml +usr/share/foomatic/db/source/printer/Lexmark-C790.xml +usr/share/foomatic/db/source/printer/Lexmark-C792.xml +usr/share/foomatic/db/source/printer/Lexmark-C910.xml +usr/share/foomatic/db/source/printer/Lexmark-C912.xml +usr/share/foomatic/db/source/printer/Lexmark-C920.xml +usr/share/foomatic/db/source/printer/Lexmark-C920n.xml +usr/share/foomatic/db/source/printer/Lexmark-C925.xml +usr/share/foomatic/db/source/printer/Lexmark-C930.xml +usr/share/foomatic/db/source/printer/Lexmark-C935.xml +usr/share/foomatic/db/source/printer/Lexmark-C935dn.xml +usr/share/foomatic/db/source/printer/Lexmark-C935dtn.xml +usr/share/foomatic/db/source/printer/Lexmark-C935hdn.xml +usr/share/foomatic/db/source/printer/Lexmark-C950.xml +usr/share/foomatic/db/source/printer/Lexmark-E120.xml +usr/share/foomatic/db/source/printer/Lexmark-E120n.xml usr/share/foomatic/db/source/printer/Lexmark-E210.xml +usr/share/foomatic/db/source/printer/Lexmark-E230.xml +usr/share/foomatic/db/source/printer/Lexmark-E238.xml +usr/share/foomatic/db/source/printer/Lexmark-E250d.xml +usr/share/foomatic/db/source/printer/Lexmark-E250dn.xml +usr/share/foomatic/db/source/printer/Lexmark-E260.xml +usr/share/foomatic/db/source/printer/Lexmark-E260d.xml +usr/share/foomatic/db/source/printer/Lexmark-E260dn.xml +usr/share/foomatic/db/source/printer/Lexmark-E320.xml +usr/share/foomatic/db/source/printer/Lexmark-E350d.xml +usr/share/foomatic/db/source/printer/Lexmark-E352dn.xml +usr/share/foomatic/db/source/printer/Lexmark-E360d.xml +usr/share/foomatic/db/source/printer/Lexmark-E360dn.xml +usr/share/foomatic/db/source/printer/Lexmark-E450dn.xml +usr/share/foomatic/db/source/printer/Lexmark-E460dn.xml +usr/share/foomatic/db/source/printer/Lexmark-E460dw.xml +usr/share/foomatic/db/source/printer/Lexmark-E462dtn.xml +usr/share/foomatic/db/source/printer/Lexmark-EG460dn.xml usr/share/foomatic/db/source/printer/Lexmark-Optra_C710.xml usr/share/foomatic/db/source/printer/Lexmark-Optra_Color_1200.xml usr/share/foomatic/db/source/printer/Lexmark-Optra_Color_1275.xml @@ -3972,15 +6449,65 @@ usr/share/foomatic/db/source/printer/Lexmark-Optra_T612.xml usr/share/foomatic/db/source/printer/Lexmark-Optra_T614.xml usr/share/foomatic/db/source/printer/Lexmark-Optra_T616.xml usr/share/foomatic/db/source/printer/Lexmark-Optra_W810.xml +usr/share/foomatic/db/source/printer/Lexmark-T430.xml +usr/share/foomatic/db/source/printer/Lexmark-T640.xml +usr/share/foomatic/db/source/printer/Lexmark-T642.xml +usr/share/foomatic/db/source/printer/Lexmark-T644.xml +usr/share/foomatic/db/source/printer/Lexmark-T650.xml +usr/share/foomatic/db/source/printer/Lexmark-T652.xml +usr/share/foomatic/db/source/printer/Lexmark-T654.xml +usr/share/foomatic/db/source/printer/Lexmark-T656.xml +usr/share/foomatic/db/source/printer/Lexmark-TG654.xml usr/share/foomatic/db/source/printer/Lexmark-Valuewriter_300.xml +usr/share/foomatic/db/source/printer/Lexmark-W812.xml +usr/share/foomatic/db/source/printer/Lexmark-W840.xml +usr/share/foomatic/db/source/printer/Lexmark-W850.xml usr/share/foomatic/db/source/printer/Lexmark-Winwriter_100.xml usr/share/foomatic/db/source/printer/Lexmark-Winwriter_150c.xml usr/share/foomatic/db/source/printer/Lexmark-Winwriter_200.xml usr/share/foomatic/db/source/printer/Lexmark-Winwriter_400.xml usr/share/foomatic/db/source/printer/Lexmark-X125.xml +usr/share/foomatic/db/source/printer/Lexmark-X203n.xml +usr/share/foomatic/db/source/printer/Lexmark-X204n.xml +usr/share/foomatic/db/source/printer/Lexmark-X264dn.xml +usr/share/foomatic/db/source/printer/Lexmark-X342n.xml +usr/share/foomatic/db/source/printer/Lexmark-X363dn.xml +usr/share/foomatic/db/source/printer/Lexmark-X364dn.xml +usr/share/foomatic/db/source/printer/Lexmark-X364dw.xml +usr/share/foomatic/db/source/printer/Lexmark-X463de.xml +usr/share/foomatic/db/source/printer/Lexmark-X464de.xml +usr/share/foomatic/db/source/printer/Lexmark-X466de.xml +usr/share/foomatic/db/source/printer/Lexmark-X466dte.xml +usr/share/foomatic/db/source/printer/Lexmark-X466dwe.xml +usr/share/foomatic/db/source/printer/Lexmark-X543.xml +usr/share/foomatic/db/source/printer/Lexmark-X544.xml +usr/share/foomatic/db/source/printer/Lexmark-X546.xml +usr/share/foomatic/db/source/printer/Lexmark-X548.xml +usr/share/foomatic/db/source/printer/Lexmark-X560n.xml +usr/share/foomatic/db/source/printer/Lexmark-X642e.xml +usr/share/foomatic/db/source/printer/Lexmark-X651de.xml +usr/share/foomatic/db/source/printer/Lexmark-X652de.xml +usr/share/foomatic/db/source/printer/Lexmark-X654de.xml +usr/share/foomatic/db/source/printer/Lexmark-X656de.xml +usr/share/foomatic/db/source/printer/Lexmark-X658de.xml usr/share/foomatic/db/source/printer/Lexmark-X73.xml +usr/share/foomatic/db/source/printer/Lexmark-X734de.xml +usr/share/foomatic/db/source/printer/Lexmark-X736de.xml +usr/share/foomatic/db/source/printer/Lexmark-X738de.xml usr/share/foomatic/db/source/printer/Lexmark-X74.xml usr/share/foomatic/db/source/printer/Lexmark-X75.xml +usr/share/foomatic/db/source/printer/Lexmark-X790.xml +usr/share/foomatic/db/source/printer/Lexmark-X792.xml +usr/share/foomatic/db/source/printer/Lexmark-X860de.xml +usr/share/foomatic/db/source/printer/Lexmark-X862de.xml +usr/share/foomatic/db/source/printer/Lexmark-X864de.xml +usr/share/foomatic/db/source/printer/Lexmark-X920.xml +usr/share/foomatic/db/source/printer/Lexmark-X925.xml +usr/share/foomatic/db/source/printer/Lexmark-X940e.xml +usr/share/foomatic/db/source/printer/Lexmark-X945e.xml +usr/share/foomatic/db/source/printer/Lexmark-X950.xml +usr/share/foomatic/db/source/printer/Lexmark-X952.xml +usr/share/foomatic/db/source/printer/Lexmark-X954.xml usr/share/foomatic/db/source/printer/Lexmark-Z11.xml usr/share/foomatic/db/source/printer/Lexmark-Z12.xml usr/share/foomatic/db/source/printer/Lexmark-Z13.xml @@ -4016,6 +6543,7 @@ usr/share/foomatic/db/source/printer/Minolta-magicolor_2300_DL.xml usr/share/foomatic/db/source/printer/Minolta-magicolor_2400W.xml usr/share/foomatic/db/source/printer/Minolta-magicolor_2430_DL.xml usr/share/foomatic/db/source/printer/Minolta-magicolor_3100.xml +usr/share/foomatic/db/source/printer/Minolta_QMS-PagePro_9100N.xml usr/share/foomatic/db/source/printer/Mitsubishi-CP50_Color_Printer.xml usr/share/foomatic/db/source/printer/NEC-MultiWriter.xml usr/share/foomatic/db/source/printer/NEC-P2X.xml @@ -4107,20 +6635,96 @@ usr/share/foomatic/db/source/printer/NRG-MP_1100.xml usr/share/foomatic/db/source/printer/NRG-MP_1350.xml usr/share/foomatic/db/source/printer/NRG-MP_1600.xml usr/share/foomatic/db/source/printer/NRG-MP_161.xml +usr/share/foomatic/db/source/printer/NRG-MP_171.xml usr/share/foomatic/db/source/printer/NRG-MP_2000.xml +usr/share/foomatic/db/source/printer/NRG-MP_2001.xml +usr/share/foomatic/db/source/printer/NRG-MP_201.xml +usr/share/foomatic/db/source/printer/NRG-MP_2352.xml +usr/share/foomatic/db/source/printer/NRG-MP_2500.xml +usr/share/foomatic/db/source/printer/NRG-MP_2501.xml usr/share/foomatic/db/source/printer/NRG-MP_2510.xml +usr/share/foomatic/db/source/printer/NRG-MP_2550.xml +usr/share/foomatic/db/source/printer/NRG-MP_2550B.xml +usr/share/foomatic/db/source/printer/NRG-MP_2851.xml +usr/share/foomatic/db/source/printer/NRG-MP_2852.xml +usr/share/foomatic/db/source/printer/NRG-MP_301.xml usr/share/foomatic/db/source/printer/NRG-MP_3010.xml +usr/share/foomatic/db/source/printer/NRG-MP_3350.xml +usr/share/foomatic/db/source/printer/NRG-MP_3350B.xml +usr/share/foomatic/db/source/printer/NRG-MP_3351.xml +usr/share/foomatic/db/source/printer/NRG-MP_3352.xml usr/share/foomatic/db/source/printer/NRG-MP_3500.xml +usr/share/foomatic/db/source/printer/NRG-MP_4000.xml +usr/share/foomatic/db/source/printer/NRG-MP_4000B.xml +usr/share/foomatic/db/source/printer/NRG-MP_4001.xml +usr/share/foomatic/db/source/printer/NRG-MP_4002.xml usr/share/foomatic/db/source/printer/NRG-MP_4500.xml +usr/share/foomatic/db/source/printer/NRG-MP_5000.xml +usr/share/foomatic/db/source/printer/NRG-MP_5000B.xml +usr/share/foomatic/db/source/printer/NRG-MP_5001.xml +usr/share/foomatic/db/source/printer/NRG-MP_5002.xml usr/share/foomatic/db/source/printer/NRG-MP_5500.xml +usr/share/foomatic/db/source/printer/NRG-MP_6000.xml +usr/share/foomatic/db/source/printer/NRG-MP_6001.xml +usr/share/foomatic/db/source/printer/NRG-MP_6002.xml usr/share/foomatic/db/source/printer/NRG-MP_6500.xml +usr/share/foomatic/db/source/printer/NRG-MP_7000.xml +usr/share/foomatic/db/source/printer/NRG-MP_7001.xml usr/share/foomatic/db/source/printer/NRG-MP_7500.xml +usr/share/foomatic/db/source/printer/NRG-MP_7502.xml +usr/share/foomatic/db/source/printer/NRG-MP_8000.xml +usr/share/foomatic/db/source/printer/NRG-MP_8001.xml usr/share/foomatic/db/source/printer/NRG-MP_9000.xml +usr/share/foomatic/db/source/printer/NRG-MP_9001.xml +usr/share/foomatic/db/source/printer/NRG-MP_9002.xml usr/share/foomatic/db/source/printer/NRG-MP_C1500sp.xml +usr/share/foomatic/db/source/printer/NRG-MP_C2050.xml +usr/share/foomatic/db/source/printer/NRG-MP_C2051.xml usr/share/foomatic/db/source/printer/NRG-MP_C2500.xml +usr/share/foomatic/db/source/printer/NRG-MP_C2550.xml +usr/share/foomatic/db/source/printer/NRG-MP_C2551.xml +usr/share/foomatic/db/source/printer/NRG-MP_C2800.xml +usr/share/foomatic/db/source/printer/NRG-MP_C300.xml usr/share/foomatic/db/source/printer/NRG-MP_C3000.xml +usr/share/foomatic/db/source/printer/NRG-MP_C3001.xml +usr/share/foomatic/db/source/printer/NRG-MP_C3002.xml +usr/share/foomatic/db/source/printer/NRG-MP_C3003.xml +usr/share/foomatic/db/source/printer/NRG-MP_C300SR.xml +usr/share/foomatic/db/source/printer/NRG-MP_C305.xml +usr/share/foomatic/db/source/printer/NRG-MP_C3300.xml usr/share/foomatic/db/source/printer/NRG-MP_C3500.xml +usr/share/foomatic/db/source/printer/NRG-MP_C3501.xml +usr/share/foomatic/db/source/printer/NRG-MP_C3502.xml +usr/share/foomatic/db/source/printer/NRG-MP_C3503.xml +usr/share/foomatic/db/source/printer/NRG-MP_C400.xml +usr/share/foomatic/db/source/printer/NRG-MP_C4000.xml +usr/share/foomatic/db/source/printer/NRG-MP_C400SR.xml usr/share/foomatic/db/source/printer/NRG-MP_C4500.xml +usr/share/foomatic/db/source/printer/NRG-MP_C4501.xml +usr/share/foomatic/db/source/printer/NRG-MP_C4501A.xml +usr/share/foomatic/db/source/printer/NRG-MP_C4502.xml +usr/share/foomatic/db/source/printer/NRG-MP_C4502A.xml +usr/share/foomatic/db/source/printer/NRG-MP_C4503.xml +usr/share/foomatic/db/source/printer/NRG-MP_C5000.xml +usr/share/foomatic/db/source/printer/NRG-MP_C5501.xml +usr/share/foomatic/db/source/printer/NRG-MP_C5501A.xml +usr/share/foomatic/db/source/printer/NRG-MP_C5502.xml +usr/share/foomatic/db/source/printer/NRG-MP_C5502A.xml +usr/share/foomatic/db/source/printer/NRG-MP_C5503.xml +usr/share/foomatic/db/source/printer/NRG-MP_C6000.xml +usr/share/foomatic/db/source/printer/NRG-MP_C6003.xml +usr/share/foomatic/db/source/printer/NRG-MP_C6501.xml +usr/share/foomatic/db/source/printer/NRG-MP_C6502.xml +usr/share/foomatic/db/source/printer/NRG-MP_C7500.xml +usr/share/foomatic/db/source/printer/NRG-MP_C7501.xml +usr/share/foomatic/db/source/printer/NRG-MP_C8002.xml +usr/share/foomatic/db/source/printer/NRG-MP_CW2200.xml +usr/share/foomatic/db/source/printer/NRG-MP_W2400.xml +usr/share/foomatic/db/source/printer/NRG-MP_W2401.xml +usr/share/foomatic/db/source/printer/NRG-MP_W3600.xml +usr/share/foomatic/db/source/printer/NRG-MP_W3601.xml +usr/share/foomatic/db/source/printer/NRG-MP_W5100.xml +usr/share/foomatic/db/source/printer/NRG-MP_W7140.xml usr/share/foomatic/db/source/printer/NRG-P7026.xml usr/share/foomatic/db/source/printer/NRG-P7026N.xml usr/share/foomatic/db/source/printer/NRG-P7032.xml @@ -4135,17 +6739,53 @@ usr/share/foomatic/db/source/printer/NRG-P7527.xml usr/share/foomatic/db/source/printer/NRG-P7527n.xml usr/share/foomatic/db/source/printer/NRG-P7535n.xml usr/share/foomatic/db/source/printer/NRG-P7575.xml +usr/share/foomatic/db/source/printer/NRG-Pro_1106EX.xml +usr/share/foomatic/db/source/printer/NRG-Pro_1107EX.xml +usr/share/foomatic/db/source/printer/NRG-Pro_1356EX.xml +usr/share/foomatic/db/source/printer/NRG-Pro_1357EX.xml +usr/share/foomatic/db/source/printer/NRG-Pro_906EX.xml +usr/share/foomatic/db/source/printer/NRG-Pro_907EX.xml +usr/share/foomatic/db/source/printer/NRG-Pro_C5100S.xml +usr/share/foomatic/db/source/printer/NRG-Pro_C5110S.xml +usr/share/foomatic/db/source/printer/NRG-SG3100SNw.xml +usr/share/foomatic/db/source/printer/NRG-SG3110SFNw.xml +usr/share/foomatic/db/source/printer/NRG-SP_4100N.xml +usr/share/foomatic/db/source/printer/NRG-SP_4100NL.xml +usr/share/foomatic/db/source/printer/NRG-SP_4110N.xml +usr/share/foomatic/db/source/printer/NRG-SP_4210N.xml +usr/share/foomatic/db/source/printer/NRG-SP_4310N.xml +usr/share/foomatic/db/source/printer/NRG-SP_5200DN.xml +usr/share/foomatic/db/source/printer/NRG-SP_5200S.xml +usr/share/foomatic/db/source/printer/NRG-SP_5210DN.xml +usr/share/foomatic/db/source/printer/NRG-SP_5210SF.xml +usr/share/foomatic/db/source/printer/NRG-SP_5210SR.xml +usr/share/foomatic/db/source/printer/NRG-SP_6330N.xml usr/share/foomatic/db/source/printer/NRG-SP_8100DN.xml +usr/share/foomatic/db/source/printer/NRG-SP_8200DN.xml +usr/share/foomatic/db/source/printer/NRG-SP_8300DN.xml usr/share/foomatic/db/source/printer/NRG-SP_9100DN.xml +usr/share/foomatic/db/source/printer/NRG-SP_C320DN.xml usr/share/foomatic/db/source/printer/NRG-SP_C410DN.xml usr/share/foomatic/db/source/printer/NRG-SP_C411DN.xml +usr/share/foomatic/db/source/printer/NRG-SP_C420DN.xml +usr/share/foomatic/db/source/printer/NRG-SP_C430DN.xml +usr/share/foomatic/db/source/printer/NRG-SP_C431DN.xml +usr/share/foomatic/db/source/printer/NRG-SP_C730DN.xml usr/share/foomatic/db/source/printer/NRG-SP_C811DN.xml +usr/share/foomatic/db/source/printer/NRG-SP_C820DN.xml +usr/share/foomatic/db/source/printer/NRG-SP_C821DN.xml +usr/share/foomatic/db/source/printer/NRG-SP_C830DN.xml +usr/share/foomatic/db/source/printer/NRG-SP_C831DN.xml +usr/share/foomatic/db/source/printer/NRG-SP_W2470.xml usr/share/foomatic/db/source/printer/Oce-3145PS.xml usr/share/foomatic/db/source/printer/Oce-3155PS.xml usr/share/foomatic/db/source/printer/Oce-3165PS.xml usr/share/foomatic/db/source/printer/Oce-8445PS.xml usr/share/foomatic/db/source/printer/Oce-8465PS.xml usr/share/foomatic/db/source/printer/Oce-9050.xml +usr/share/foomatic/db/source/printer/Oce-9230.xml +usr/share/foomatic/db/source/printer/Oce-9245.xml +usr/share/foomatic/db/source/printer/Oce-9260.xml usr/share/foomatic/db/source/printer/Oce-PPC3073PS.xml usr/share/foomatic/db/source/printer/Oce-PPC3074PS.xml usr/share/foomatic/db/source/printer/Oce-PPC3093PS.xml @@ -4164,50 +6804,137 @@ usr/share/foomatic/db/source/printer/Oce-VarioPrint_2090PS.xml usr/share/foomatic/db/source/printer/Oce-VarioPrint_2100PS.xml usr/share/foomatic/db/source/printer/Oce-VarioPrint_2105PS.xml usr/share/foomatic/db/source/printer/Oce-VarioPrint_2110PS.xml -usr/share/foomatic/db/source/printer/Okidata-DP_5000.xml -usr/share/foomatic/db/source/printer/Okidata-ML_320.xml -usr/share/foomatic/db/source/printer/Okidata-ML_321.xml -usr/share/foomatic/db/source/printer/Okidata-ML_380.xml -usr/share/foomatic/db/source/printer/Okidata-Microline_182.xml -usr/share/foomatic/db/source/printer/Okidata-Microline_192plus.xml -usr/share/foomatic/db/source/printer/Okidata-Microline_600CL.xml -usr/share/foomatic/db/source/printer/Okidata-Microline_620CL.xml -usr/share/foomatic/db/source/printer/Okidata-Microline_IBM_compatible_9_pin.xml -usr/share/foomatic/db/source/printer/Okidata-OL400.xml -usr/share/foomatic/db/source/printer/Okidata-OL400e.xml -usr/share/foomatic/db/source/printer/Okidata-OL400ex.xml -usr/share/foomatic/db/source/printer/Okidata-OL400w.xml -usr/share/foomatic/db/source/printer/Okidata-OL410e.xml -usr/share/foomatic/db/source/printer/Okidata-OL600e.xml -usr/share/foomatic/db/source/printer/Okidata-OL610e_PS.xml -usr/share/foomatic/db/source/printer/Okidata-OL610e_S.xml -usr/share/foomatic/db/source/printer/Okidata-OL800.xml -usr/share/foomatic/db/source/printer/Okidata-OL810e_PS.xml -usr/share/foomatic/db/source/printer/Okidata-OL810ex.xml -usr/share/foomatic/db/source/printer/Okidata-OL820.xml -usr/share/foomatic/db/source/printer/Okidata-OL830Plus.xml -usr/share/foomatic/db/source/printer/Okidata-Okijet_2010.xml -usr/share/foomatic/db/source/printer/Okidata-Okijet_2500.xml -usr/share/foomatic/db/source/printer/Okidata-Okipage_10e.xml -usr/share/foomatic/db/source/printer/Okidata-Okipage_10ex.xml -usr/share/foomatic/db/source/printer/Okidata-Okipage_12i.xml -usr/share/foomatic/db/source/printer/Okidata-Okipage_14ex.xml -usr/share/foomatic/db/source/printer/Okidata-Okipage_20DXn.xml -usr/share/foomatic/db/source/printer/Okidata-Okipage_4w.xml -usr/share/foomatic/db/source/printer/Okidata-Okipage_4wplus.xml -usr/share/foomatic/db/source/printer/Okidata-Okipage_6e.xml -usr/share/foomatic/db/source/printer/Okidata-Okipage_6ex.xml -usr/share/foomatic/db/source/printer/Okidata-Okipage_6w.xml -usr/share/foomatic/db/source/printer/Okidata-Okipage_8c.xml -usr/share/foomatic/db/source/printer/Okidata-Okipage_8p.xml -usr/share/foomatic/db/source/printer/Okidata-Okipage_8w.xml -usr/share/foomatic/db/source/printer/Okidata-Okipage_8w_Lite.xml -usr/share/foomatic/db/source/printer/Okidata-Okipage_8z.xml -usr/share/foomatic/db/source/printer/Okidata-Super_6e.xml +usr/share/foomatic/db/source/printer/Oce-cm2510.xml +usr/share/foomatic/db/source/printer/Oce-cm2520.xml +usr/share/foomatic/db/source/printer/Oce-cm3521.xml +usr/share/foomatic/db/source/printer/Oce-cm4010.xml +usr/share/foomatic/db/source/printer/Oce-cm4520.xml +usr/share/foomatic/db/source/printer/Oce-cm4521.xml +usr/share/foomatic/db/source/printer/Oce-cm5520.xml +usr/share/foomatic/db/source/printer/Oce-cm6520.xml +usr/share/foomatic/db/source/printer/Oce-fx2080.xml +usr/share/foomatic/db/source/printer/Oce-fx3000.xml +usr/share/foomatic/db/source/printer/Oce-im2330.xml +usr/share/foomatic/db/source/printer/Oce-im2830.xml +usr/share/foomatic/db/source/printer/Oce-im3512.xml +usr/share/foomatic/db/source/printer/Oce-im3530.xml +usr/share/foomatic/db/source/printer/Oce-im4512.xml +usr/share/foomatic/db/source/printer/Oce-im4530.xml +usr/share/foomatic/db/source/printer/Oce-im5530.xml +usr/share/foomatic/db/source/printer/Oce-im6020.xml +usr/share/foomatic/db/source/printer/Oce-im6030.xml +usr/share/foomatic/db/source/printer/Oce-im7230.xml +usr/share/foomatic/db/source/printer/Oce-im7520.xml +usr/share/foomatic/db/source/printer/Oce-im8530.xml +usr/share/foomatic/db/source/printer/Oce-im9220.xml +usr/share/foomatic/db/source/printer/Oce-sx1480.xml +usr/share/foomatic/db/source/printer/Oce-sx2100.xml +usr/share/foomatic/db/source/printer/Oki-14i.xml +usr/share/foomatic/db/source/printer/Oki-B2200.xml +usr/share/foomatic/db/source/printer/Oki-B2400.xml +usr/share/foomatic/db/source/printer/Oki-B2540_MFP.xml +usr/share/foomatic/db/source/printer/Oki-B410.xml +usr/share/foomatic/db/source/printer/Oki-B410dn.xml +usr/share/foomatic/db/source/printer/Oki-B4200.xml +usr/share/foomatic/db/source/printer/Oki-B4250.xml +usr/share/foomatic/db/source/printer/Oki-B4300.xml +usr/share/foomatic/db/source/printer/Oki-B4350.xml +usr/share/foomatic/db/source/printer/Oki-B4400.xml +usr/share/foomatic/db/source/printer/Oki-B4545_MFP.xml +usr/share/foomatic/db/source/printer/Oki-B4600.xml +usr/share/foomatic/db/source/printer/Oki-B4600_PS.xml +usr/share/foomatic/db/source/printer/Oki-B6200.xml +usr/share/foomatic/db/source/printer/Oki-B6250.xml +usr/share/foomatic/db/source/printer/Oki-B6300.xml +usr/share/foomatic/db/source/printer/Oki-B6500.xml +usr/share/foomatic/db/source/printer/Oki-C110.xml +usr/share/foomatic/db/source/printer/Oki-C301dn.xml +usr/share/foomatic/db/source/printer/Oki-C3100.xml +usr/share/foomatic/db/source/printer/Oki-C310dn.xml +usr/share/foomatic/db/source/printer/Oki-C3200.xml +usr/share/foomatic/db/source/printer/Oki-C3300.xml +usr/share/foomatic/db/source/printer/Oki-C3400.xml +usr/share/foomatic/db/source/printer/Oki-C3530_MFP.xml +usr/share/foomatic/db/source/printer/Oki-C5100.xml +usr/share/foomatic/db/source/printer/Oki-C5200.xml +usr/share/foomatic/db/source/printer/Oki-C5300.xml +usr/share/foomatic/db/source/printer/Oki-C5400.xml +usr/share/foomatic/db/source/printer/Oki-C5450.xml +usr/share/foomatic/db/source/printer/Oki-C5500.xml +usr/share/foomatic/db/source/printer/Oki-C5540_MFP.xml +usr/share/foomatic/db/source/printer/Oki-C5550_MFP.xml +usr/share/foomatic/db/source/printer/Oki-C5600.xml +usr/share/foomatic/db/source/printer/Oki-C5650.xml +usr/share/foomatic/db/source/printer/Oki-C5700.xml +usr/share/foomatic/db/source/printer/Oki-C5750.xml +usr/share/foomatic/db/source/printer/Oki-C5800.xml +usr/share/foomatic/db/source/printer/Oki-C5900.xml +usr/share/foomatic/db/source/printer/Oki-C6000.xml +usr/share/foomatic/db/source/printer/Oki-C6050.xml +usr/share/foomatic/db/source/printer/Oki-C6100.xml +usr/share/foomatic/db/source/printer/Oki-C6150.xml +usr/share/foomatic/db/source/printer/Oki-C710.xml +usr/share/foomatic/db/source/printer/Oki-C7100.xml +usr/share/foomatic/db/source/printer/Oki-C7200.xml +usr/share/foomatic/db/source/printer/Oki-C7300.xml +usr/share/foomatic/db/source/printer/Oki-C7350.xml +usr/share/foomatic/db/source/printer/Oki-C7400.xml +usr/share/foomatic/db/source/printer/Oki-C7500.xml +usr/share/foomatic/db/source/printer/Oki-C7550.xml +usr/share/foomatic/db/source/printer/Oki-C8800.xml +usr/share/foomatic/db/source/printer/Oki-C9200.xml +usr/share/foomatic/db/source/printer/Oki-C9300.xml +usr/share/foomatic/db/source/printer/Oki-C9400.xml +usr/share/foomatic/db/source/printer/Oki-C9500.xml +usr/share/foomatic/db/source/printer/Oki-C9600.xml +usr/share/foomatic/db/source/printer/Oki-C9650.xml +usr/share/foomatic/db/source/printer/Oki-C9800.xml +usr/share/foomatic/db/source/printer/Oki-C9800_MFP.xml +usr/share/foomatic/db/source/printer/Oki-DP_5000.xml +usr/share/foomatic/db/source/printer/Oki-ML_320.xml +usr/share/foomatic/db/source/printer/Oki-ML_321.xml +usr/share/foomatic/db/source/printer/Oki-ML_380.xml +usr/share/foomatic/db/source/printer/Oki-Microline_182.xml +usr/share/foomatic/db/source/printer/Oki-Microline_192plus.xml +usr/share/foomatic/db/source/printer/Oki-Microline_600CL.xml +usr/share/foomatic/db/source/printer/Oki-Microline_620CL.xml +usr/share/foomatic/db/source/printer/Oki-Microline_IBM_compatible_9_pin.xml +usr/share/foomatic/db/source/printer/Oki-OL400.xml +usr/share/foomatic/db/source/printer/Oki-OL400e.xml +usr/share/foomatic/db/source/printer/Oki-OL400ex.xml +usr/share/foomatic/db/source/printer/Oki-OL400w.xml +usr/share/foomatic/db/source/printer/Oki-OL410e.xml +usr/share/foomatic/db/source/printer/Oki-OL600e.xml +usr/share/foomatic/db/source/printer/Oki-OL610e_PS.xml +usr/share/foomatic/db/source/printer/Oki-OL610e_S.xml +usr/share/foomatic/db/source/printer/Oki-OL800.xml +usr/share/foomatic/db/source/printer/Oki-OL810e_PS.xml +usr/share/foomatic/db/source/printer/Oki-OL810ex.xml +usr/share/foomatic/db/source/printer/Oki-OL820.xml +usr/share/foomatic/db/source/printer/Oki-OL830Plus.xml +usr/share/foomatic/db/source/printer/Oki-Okijet_2010.xml +usr/share/foomatic/db/source/printer/Oki-Okijet_2500.xml +usr/share/foomatic/db/source/printer/Oki-Okipage_10e.xml +usr/share/foomatic/db/source/printer/Oki-Okipage_10ex.xml +usr/share/foomatic/db/source/printer/Oki-Okipage_12i.xml +usr/share/foomatic/db/source/printer/Oki-Okipage_14ex.xml +usr/share/foomatic/db/source/printer/Oki-Okipage_20DXn.xml +usr/share/foomatic/db/source/printer/Oki-Okipage_4w.xml +usr/share/foomatic/db/source/printer/Oki-Okipage_4wplus.xml +usr/share/foomatic/db/source/printer/Oki-Okipage_6e.xml +usr/share/foomatic/db/source/printer/Oki-Okipage_6ex.xml +usr/share/foomatic/db/source/printer/Oki-Okipage_6w.xml +usr/share/foomatic/db/source/printer/Oki-Okipage_8c.xml +usr/share/foomatic/db/source/printer/Oki-Okipage_8p.xml +usr/share/foomatic/db/source/printer/Oki-Okipage_8w.xml +usr/share/foomatic/db/source/printer/Oki-Okipage_8w_Lite.xml +usr/share/foomatic/db/source/printer/Oki-Okipage_8z.xml +usr/share/foomatic/db/source/printer/Oki-Super_6e.xml usr/share/foomatic/db/source/printer/Olivetti-JP350S.xml usr/share/foomatic/db/source/printer/Olivetti-JP450.xml usr/share/foomatic/db/source/printer/Olivetti-JP470.xml usr/share/foomatic/db/source/printer/Olivetti-PG_306.xml +usr/share/foomatic/db/source/printer/Olivetti-d-Color_P160W.xml usr/share/foomatic/db/source/printer/Olympus-P-10.xml usr/share/foomatic/db/source/printer/Olympus-P-11.xml usr/share/foomatic/db/source/printer/Olympus-P-200.xml @@ -4219,6 +6946,22 @@ usr/share/foomatic/db/source/printer/Olympus-P-330NE.xml usr/share/foomatic/db/source/printer/Olympus-P-400.xml usr/share/foomatic/db/source/printer/Olympus-P-440.xml usr/share/foomatic/db/source/printer/PCPI-1030.xml +usr/share/foomatic/db/source/printer/Panasonic-DP-180.xml +usr/share/foomatic/db/source/printer/Panasonic-DP-2330.xml +usr/share/foomatic/db/source/printer/Panasonic-DP-4510.xml +usr/share/foomatic/db/source/printer/Panasonic-DP-4520.xml +usr/share/foomatic/db/source/printer/Panasonic-DP-8016P.xml +usr/share/foomatic/db/source/printer/Panasonic-DP-8020E.xml +usr/share/foomatic/db/source/printer/Panasonic-DP-8045.xml +usr/share/foomatic/db/source/printer/Panasonic-DP-8060.xml +usr/share/foomatic/db/source/printer/Panasonic-DP-C213.xml +usr/share/foomatic/db/source/printer/Panasonic-DP-C262.xml +usr/share/foomatic/db/source/printer/Panasonic-DP-C264.xml +usr/share/foomatic/db/source/printer/Panasonic-DP-C265.xml +usr/share/foomatic/db/source/printer/Panasonic-DP-C305.xml +usr/share/foomatic/db/source/printer/Panasonic-DP-C322.xml +usr/share/foomatic/db/source/printer/Panasonic-DP-C354.xml +usr/share/foomatic/db/source/printer/Panasonic-DP-C405.xml usr/share/foomatic/db/source/printer/Panasonic-KX-P1123.xml usr/share/foomatic/db/source/printer/Panasonic-KX-P1124.xml usr/share/foomatic/db/source/printer/Panasonic-KX-P1150.xml @@ -4252,6 +6995,8 @@ usr/share/foomatic/db/source/printer/Raven-LP-410.xml usr/share/foomatic/db/source/printer/Ricoh-4081.xml usr/share/foomatic/db/source/printer/Ricoh-4801.xml usr/share/foomatic/db/source/printer/Ricoh-6000.xml +usr/share/foomatic/db/source/printer/Ricoh-AficioSG3100SNw.xml +usr/share/foomatic/db/source/printer/Ricoh-AficioSG3110SFNw.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_1022.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_1027.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_1032.xml @@ -4326,48 +7071,207 @@ usr/share/foomatic/db/source/printer/Ricoh-Aficio_CL7100.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_CL7200.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_CL7300.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_Color5560.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_FX10.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_1100.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_1350.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_1600.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_161.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_171.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_2000.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_201.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_2352.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_2500.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_2510.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_2550.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_2550B.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_2851.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_2852.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_301.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_3010.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_3350.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_3350B.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_3351.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_3352.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_3500.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_4000.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_4000B.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_4001.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_4002.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_4500.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_5000.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_5000B.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_5001.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_5002.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_5500.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_6000.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_6001.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_6002.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_6500.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_7000.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_7001.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_7500.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_7502.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_8000.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_8001.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_9000.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_9001.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_9002.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C2050.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C2051.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C2500.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C2550.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C2551.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C2800.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C300.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C3000.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C3001.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C3002.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C300SR.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C305.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C3300.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C3500.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C3501.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C3502.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C400.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C4000.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C400SR.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C4500.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C4501.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C4501A.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C4502.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C4502A.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C5000.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C5501.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C5501A.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C5502.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C5502A.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C6000.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C6501.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C7500.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C7501.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_W2400.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_W2401.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_W3600.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_W3601.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_W5100.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_W7140.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_1000S.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_1100S.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_4100N.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_4100NL.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_4110N.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_4210N.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_4310N.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_5200DN.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_5200S.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_5210DN.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_5210SF.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_5210SR.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_6330N.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_8100DN.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_8200DN.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_8300DN.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_9100DN.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_C222SF.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_C320DN.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_C400DN.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_C410DN.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_C411DN.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_C420DN.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_C430DN.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_C431DN.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_C730DN.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_C811DN.xml -usr/share/foomatic/db/source/printer/Ricoh-Afico_FX10.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_C820DN.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_C821DN.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_C830DN.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_C831DN.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_W2470.xml usr/share/foomatic/db/source/printer/Ricoh-ColorLaser_AP828.xml usr/share/foomatic/db/source/printer/Ricoh-DDP_70.xml usr/share/foomatic/db/source/printer/Ricoh-DDP_92.xml usr/share/foomatic/db/source/printer/Ricoh-EMP_156.xml usr/share/foomatic/db/source/printer/Ricoh-FAX5510L_5510NF.xml +usr/share/foomatic/db/source/printer/Ricoh-GX_3050N.xml +usr/share/foomatic/db/source/printer/Ricoh-GX_3050SFN.xml +usr/share/foomatic/db/source/printer/Ricoh-GX_5050N.xml +usr/share/foomatic/db/source/printer/Ricoh-GX_E3350N.xml +usr/share/foomatic/db/source/printer/Ricoh-GX_E5550N.xml usr/share/foomatic/db/source/printer/Ricoh-LASER_AP2600.xml usr/share/foomatic/db/source/printer/Ricoh-LASER_AP2600N.xml usr/share/foomatic/db/source/printer/Ricoh-LASER_AP2610.xml usr/share/foomatic/db/source/printer/Ricoh-LASER_AP2610N.xml +usr/share/foomatic/db/source/printer/Ricoh-MP_2001.xml +usr/share/foomatic/db/source/printer/Ricoh-MP_2501.xml usr/share/foomatic/db/source/printer/Ricoh-MP_C1500_615C.xml +usr/share/foomatic/db/source/printer/Ricoh-MP_C3003.xml +usr/share/foomatic/db/source/printer/Ricoh-MP_C3503.xml +usr/share/foomatic/db/source/printer/Ricoh-MP_C4503.xml +usr/share/foomatic/db/source/printer/Ricoh-MP_C5503.xml +usr/share/foomatic/db/source/printer/Ricoh-MP_C6003.xml +usr/share/foomatic/db/source/printer/Ricoh-MP_C6502.xml +usr/share/foomatic/db/source/printer/Ricoh-MP_C8002.xml +usr/share/foomatic/db/source/printer/Ricoh-MP_CW2200.xml +usr/share/foomatic/db/source/printer/Ricoh-Pro_1106EX.xml +usr/share/foomatic/db/source/printer/Ricoh-Pro_1107EX.xml +usr/share/foomatic/db/source/printer/Ricoh-Pro_1356EX.xml +usr/share/foomatic/db/source/printer/Ricoh-Pro_1357EX.xml +usr/share/foomatic/db/source/printer/Ricoh-Pro_906EX.xml +usr/share/foomatic/db/source/printer/Ricoh-Pro_907EX.xml +usr/share/foomatic/db/source/printer/Ricoh-Pro_C5100S.xml +usr/share/foomatic/db/source/printer/Ricoh-Pro_C5110S.xml usr/share/foomatic/db/source/printer/Ricoh-RPDL_III_Laser_Printer.xml usr/share/foomatic/db/source/printer/Ricoh-RPDL_II_Laser_Printer.xml usr/share/foomatic/db/source/printer/Ricoh-RPDL_IV_Laser_Printer.xml usr/share/foomatic/db/source/printer/Ricoh-RPDL_I_Laser_Printer.xml usr/share/foomatic/db/source/printer/Samsung-CLP-300.xml +usr/share/foomatic/db/source/printer/Samsung-CLP-310.xml +usr/share/foomatic/db/source/printer/Samsung-CLP-315.xml +usr/share/foomatic/db/source/printer/Samsung-CLP-325.xml +usr/share/foomatic/db/source/printer/Samsung-CLP-350.xml +usr/share/foomatic/db/source/printer/Samsung-CLP-365.xml +usr/share/foomatic/db/source/printer/Samsung-CLP-410.xml usr/share/foomatic/db/source/printer/Samsung-CLP-500.xml usr/share/foomatic/db/source/printer/Samsung-CLP-510.xml +usr/share/foomatic/db/source/printer/Samsung-CLP-550.xml +usr/share/foomatic/db/source/printer/Samsung-CLP-550N.xml usr/share/foomatic/db/source/printer/Samsung-CLP-600.xml +usr/share/foomatic/db/source/printer/Samsung-CLP-610.xml +usr/share/foomatic/db/source/printer/Samsung-CLP-610ND.xml +usr/share/foomatic/db/source/printer/Samsung-CLP-620.xml +usr/share/foomatic/db/source/printer/Samsung-CLP-650.xml +usr/share/foomatic/db/source/printer/Samsung-CLP-650N.xml +usr/share/foomatic/db/source/printer/Samsung-CLP-660.xml +usr/share/foomatic/db/source/printer/Samsung-CLP-660N.xml +usr/share/foomatic/db/source/printer/Samsung-CLP-660ND.xml +usr/share/foomatic/db/source/printer/Samsung-CLP-670.xml +usr/share/foomatic/db/source/printer/Samsung-CLP-680.xml +usr/share/foomatic/db/source/printer/Samsung-CLP-770.xml +usr/share/foomatic/db/source/printer/Samsung-CLP-775.xml +usr/share/foomatic/db/source/printer/Samsung-CLX-2160.xml usr/share/foomatic/db/source/printer/Samsung-CLX-3160.xml +usr/share/foomatic/db/source/printer/Samsung-CLX-3175.xml +usr/share/foomatic/db/source/printer/Samsung-CLX-3185.xml +usr/share/foomatic/db/source/printer/Samsung-CLX-3300.xml +usr/share/foomatic/db/source/printer/Samsung-CLX-4190.xml +usr/share/foomatic/db/source/printer/Samsung-CLX-6200.xml +usr/share/foomatic/db/source/printer/Samsung-CLX-6220.xml +usr/share/foomatic/db/source/printer/Samsung-CLX-6240.xml +usr/share/foomatic/db/source/printer/Samsung-CLX-6250.xml +usr/share/foomatic/db/source/printer/Samsung-CLX-6260.xml +usr/share/foomatic/db/source/printer/Samsung-CLX-8380.xml +usr/share/foomatic/db/source/printer/Samsung-CLX-8385.xml +usr/share/foomatic/db/source/printer/Samsung-CLX-8385X.xml +usr/share/foomatic/db/source/printer/Samsung-CLX-8540.xml +usr/share/foomatic/db/source/printer/Samsung-CLX-8640_8650.xml +usr/share/foomatic/db/source/printer/Samsung-CLX-9250_9350.xml +usr/share/foomatic/db/source/printer/Samsung-CLX-9252_9352.xml +usr/share/foomatic/db/source/printer/Samsung-CLX-92x1_93x1.xml +usr/share/foomatic/db/source/printer/Samsung-CLX-981x.xml +usr/share/foomatic/db/source/printer/Samsung-CLX-982x.xml +usr/share/foomatic/db/source/printer/Samsung-M262x_282x.xml +usr/share/foomatic/db/source/printer/Samsung-M267x_287x.xml +usr/share/foomatic/db/source/printer/Samsung-M337x_387x_407x.xml usr/share/foomatic/db/source/printer/Samsung-ML-1000.xml usr/share/foomatic/db/source/printer/Samsung-ML-1010.xml usr/share/foomatic/db/source/printer/Samsung-ML-1020.xml @@ -4401,13 +7305,42 @@ usr/share/foomatic/db/source/printer/Samsung-ML-2250.xml usr/share/foomatic/db/source/printer/Samsung-ML-2550.xml usr/share/foomatic/db/source/printer/Samsung-ML-2551N.xml usr/share/foomatic/db/source/printer/Samsung-ML-2552W.xml +usr/share/foomatic/db/source/printer/Samsung-ML-2570.xml +usr/share/foomatic/db/source/printer/Samsung-ML-2571N.xml +usr/share/foomatic/db/source/printer/Samsung-ML-2580.xml +usr/share/foomatic/db/source/printer/Samsung-ML-2850.xml +usr/share/foomatic/db/source/printer/Samsung-ML-2850D.xml +usr/share/foomatic/db/source/printer/Samsung-ML-2851ND.xml +usr/share/foomatic/db/source/printer/Samsung-ML-2853.xml +usr/share/foomatic/db/source/printer/Samsung-ML-2855.xml +usr/share/foomatic/db/source/printer/Samsung-ML-2950.xml +usr/share/foomatic/db/source/printer/Samsung-ML-3051N.xml +usr/share/foomatic/db/source/printer/Samsung-ML-3051ND.xml +usr/share/foomatic/db/source/printer/Samsung-ML-3470.xml +usr/share/foomatic/db/source/printer/Samsung-ML-3470D.xml +usr/share/foomatic/db/source/printer/Samsung-ML-3471ND.xml +usr/share/foomatic/db/source/printer/Samsung-ML-3475.xml +usr/share/foomatic/db/source/printer/Samsung-ML-371x.xml +usr/share/foomatic/db/source/printer/Samsung-ML-375x.xml +usr/share/foomatic/db/source/printer/Samsung-ML-4050.xml +usr/share/foomatic/db/source/printer/Samsung-ML-4050N.xml +usr/share/foomatic/db/source/printer/Samsung-ML-4055.xml usr/share/foomatic/db/source/printer/Samsung-ML-4500.xml +usr/share/foomatic/db/source/printer/Samsung-ML-451x_501x.xml +usr/share/foomatic/db/source/printer/Samsung-ML-4550.xml +usr/share/foomatic/db/source/printer/Samsung-ML-4551N.xml +usr/share/foomatic/db/source/printer/Samsung-ML-4551ND.xml +usr/share/foomatic/db/source/printer/Samsung-ML-4555.xml usr/share/foomatic/db/source/printer/Samsung-ML-4600.xml usr/share/foomatic/db/source/printer/Samsung-ML-5000a.xml usr/share/foomatic/db/source/printer/Samsung-ML-5050G.xml usr/share/foomatic/db/source/printer/Samsung-ML-5080.xml +usr/share/foomatic/db/source/printer/Samsung-ML-551x_651x.xml usr/share/foomatic/db/source/printer/Samsung-ML-6000.xml usr/share/foomatic/db/source/printer/Samsung-ML-6040.xml +usr/share/foomatic/db/source/printer/Samsung-ML-6060.xml +usr/share/foomatic/db/source/printer/Samsung-ML-6060N.xml +usr/share/foomatic/db/source/printer/Samsung-ML-6060S.xml usr/share/foomatic/db/source/printer/Samsung-ML-6100.xml usr/share/foomatic/db/source/printer/Samsung-ML-7000.xml usr/share/foomatic/db/source/printer/Samsung-ML-7000N.xml @@ -4417,11 +7350,39 @@ usr/share/foomatic/db/source/printer/Samsung-ML-7300.xml usr/share/foomatic/db/source/printer/Samsung-ML-7300N.xml usr/share/foomatic/db/source/printer/Samsung-ML-85.xml usr/share/foomatic/db/source/printer/Samsung-ML-85G.xml +usr/share/foomatic/db/source/printer/Samsung-ML-8850_8950.xml +usr/share/foomatic/db/source/printer/Samsung-ML-8x00.xml usr/share/foomatic/db/source/printer/Samsung-QL-5100A.xml usr/share/foomatic/db/source/printer/Samsung-QL-6050.xml usr/share/foomatic/db/source/printer/Samsung-QL-85G.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-470x.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-472x.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-483x_5x3x.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-4x24.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-4x25.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-4x26.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-4x28.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-5635.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-5835_5935.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-5835_5935X.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-6545.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-6545X.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-681x.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-6x20.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-6x22.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-6x45.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-6x55.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-6x55X.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-8030_8040.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-8123_8128.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-8230_8240.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-881x.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-882x.xml usr/share/foomatic/db/source/printer/Samsung-SF_MSYS_MJ-4700_4800_4500C.xml usr/share/foomatic/db/source/printer/Samsung-SI-630A.xml +usr/share/foomatic/db/source/printer/Savin-2404WD.xml +usr/share/foomatic/db/source/printer/Savin-2404WDP.xml +usr/share/foomatic/db/source/printer/Savin-2406WD.xml usr/share/foomatic/db/source/printer/Savin-2522.xml usr/share/foomatic/db/source/printer/Savin-2527.xml usr/share/foomatic/db/source/printer/Savin-2532.xml @@ -4429,6 +7390,7 @@ usr/share/foomatic/db/source/printer/Savin-2535_2235.xml usr/share/foomatic/db/source/printer/Savin-2545_2245.xml usr/share/foomatic/db/source/printer/Savin-2560.xml usr/share/foomatic/db/source/printer/Savin-2575.xml +usr/share/foomatic/db/source/printer/Savin-3406WD.xml usr/share/foomatic/db/source/printer/Savin-3515.xml usr/share/foomatic/db/source/printer/Savin-40105.xml usr/share/foomatic/db/source/printer/Savin-4015.xml @@ -4444,6 +7406,9 @@ usr/share/foomatic/db/source/printer/Savin-4051.xml usr/share/foomatic/db/source/printer/Savin-4060.xml usr/share/foomatic/db/source/printer/Savin-4075.xml usr/share/foomatic/db/source/printer/Savin-4090.xml +usr/share/foomatic/db/source/printer/Savin-5100WD.xml +usr/share/foomatic/db/source/printer/Savin-7025.xml +usr/share/foomatic/db/source/printer/Savin-7140WD.xml usr/share/foomatic/db/source/printer/Savin-8016.xml usr/share/foomatic/db/source/printer/Savin-8020.xml usr/share/foomatic/db/source/printer/Savin-8020d.xml @@ -4456,14 +7421,35 @@ usr/share/foomatic/db/source/printer/Savin-8035e.xml usr/share/foomatic/db/source/printer/Savin-8045_8045g.xml usr/share/foomatic/db/source/printer/Savin-8045e.xml usr/share/foomatic/db/source/printer/Savin-8055.xml +usr/share/foomatic/db/source/printer/Savin-8060.xml usr/share/foomatic/db/source/printer/Savin-8065.xml +usr/share/foomatic/db/source/printer/Savin-8070.xml usr/share/foomatic/db/source/printer/Savin-8075.xml +usr/share/foomatic/db/source/printer/Savin-8080.xml usr/share/foomatic/db/source/printer/Savin-8090.xml usr/share/foomatic/db/source/printer/Savin-8110.xml usr/share/foomatic/db/source/printer/Savin-8135.xml usr/share/foomatic/db/source/printer/Savin-816.xml usr/share/foomatic/db/source/printer/Savin-9016.xml usr/share/foomatic/db/source/printer/Savin-9021d.xml +usr/share/foomatic/db/source/printer/Savin-9025.xml +usr/share/foomatic/db/source/printer/Savin-9025b.xml +usr/share/foomatic/db/source/printer/Savin-9033.xml +usr/share/foomatic/db/source/printer/Savin-9033b.xml +usr/share/foomatic/db/source/printer/Savin-9040.xml +usr/share/foomatic/db/source/printer/Savin-9040b.xml +usr/share/foomatic/db/source/printer/Savin-9050.xml +usr/share/foomatic/db/source/printer/Savin-9050b.xml +usr/share/foomatic/db/source/printer/Savin-9060.xml +usr/share/foomatic/db/source/printer/Savin-9070.xml +usr/share/foomatic/db/source/printer/Savin-9080.xml +usr/share/foomatic/db/source/printer/Savin-9090.xml +usr/share/foomatic/db/source/printer/Savin-917.xml +usr/share/foomatic/db/source/printer/Savin-920.xml +usr/share/foomatic/db/source/printer/Savin-9228.xml +usr/share/foomatic/db/source/printer/Savin-9233.xml +usr/share/foomatic/db/source/printer/Savin-9240.xml +usr/share/foomatic/db/source/printer/Savin-9250.xml usr/share/foomatic/db/source/printer/Savin-C2408.xml usr/share/foomatic/db/source/printer/Savin-C2410.xml usr/share/foomatic/db/source/printer/Savin-C2524.xml @@ -4471,18 +7457,37 @@ usr/share/foomatic/db/source/printer/Savin-C2525.xml usr/share/foomatic/db/source/printer/Savin-C2532.xml usr/share/foomatic/db/source/printer/Savin-C2820.xml usr/share/foomatic/db/source/printer/Savin-C2824.xml +usr/share/foomatic/db/source/printer/Savin-C2828.xml usr/share/foomatic/db/source/printer/Savin-C3030.xml usr/share/foomatic/db/source/printer/Savin-C3210.xml usr/share/foomatic/db/source/printer/Savin-C3210e.xml usr/share/foomatic/db/source/printer/Savin-C3224.xml +usr/share/foomatic/db/source/printer/Savin-C3333.xml usr/share/foomatic/db/source/printer/Savin-C3528.xml usr/share/foomatic/db/source/printer/Savin-C3535.xml usr/share/foomatic/db/source/printer/Savin-C3828.xml +usr/share/foomatic/db/source/printer/Savin-C4040.xml usr/share/foomatic/db/source/printer/Savin-C4535.xml usr/share/foomatic/db/source/printer/Savin-C4540.xml +usr/share/foomatic/db/source/printer/Savin-C5050.xml usr/share/foomatic/db/source/printer/Savin-C6045.xml +usr/share/foomatic/db/source/printer/Savin-C6055.xml +usr/share/foomatic/db/source/printer/Savin-C7570.xml +usr/share/foomatic/db/source/printer/Savin-C9020.xml +usr/share/foomatic/db/source/printer/Savin-C9025.xml +usr/share/foomatic/db/source/printer/Savin-C9065.xml +usr/share/foomatic/db/source/printer/Savin-C9075.xml +usr/share/foomatic/db/source/printer/Savin-C9120.xml +usr/share/foomatic/db/source/printer/Savin-C9125.xml +usr/share/foomatic/db/source/printer/Savin-C9130.xml +usr/share/foomatic/db/source/printer/Savin-C9135.xml +usr/share/foomatic/db/source/printer/Savin-C9145.xml +usr/share/foomatic/db/source/printer/Savin-C9145A.xml +usr/share/foomatic/db/source/printer/Savin-C9155.xml +usr/share/foomatic/db/source/printer/Savin-C9155A.xml usr/share/foomatic/db/source/printer/Savin-CLP1036.xml usr/share/foomatic/db/source/printer/Savin-CLP128.xml +usr/share/foomatic/db/source/printer/Savin-CLP131DN.xml usr/share/foomatic/db/source/printer/Savin-CLP135.xml usr/share/foomatic/db/source/printer/Savin-CLP1620.xml usr/share/foomatic/db/source/printer/Savin-CLP17.xml @@ -4493,27 +7498,88 @@ usr/share/foomatic/db/source/printer/Savin-CLP26DN.xml usr/share/foomatic/db/source/printer/Savin-CLP27DN.xml usr/share/foomatic/db/source/printer/Savin-CLP28.xml usr/share/foomatic/db/source/printer/Savin-CLP31DN.xml +usr/share/foomatic/db/source/printer/Savin-CLP340D.xml usr/share/foomatic/db/source/printer/Savin-CLP35.xml +usr/share/foomatic/db/source/printer/Savin-CLP350D.xml +usr/share/foomatic/db/source/printer/Savin-CLP37DN.xml +usr/share/foomatic/db/source/printer/Savin-CLP42DN.xml usr/share/foomatic/db/source/printer/Savin-CLP831.xml +usr/share/foomatic/db/source/printer/Savin-C_230.xml +usr/share/foomatic/db/source/printer/Savin-C_230SR.xml +usr/share/foomatic/db/source/printer/Savin-C_240.xml +usr/share/foomatic/db/source/printer/Savin-C_240SR.xml usr/share/foomatic/db/source/printer/Savin-FAX3799_3799nf.xml usr/share/foomatic/db/source/printer/Savin-MLP145.xml +usr/share/foomatic/db/source/printer/Savin-MLP150DN.xml usr/share/foomatic/db/source/printer/Savin-MLP175n.xml +usr/share/foomatic/db/source/printer/Savin-MLP235n.xml usr/share/foomatic/db/source/printer/Savin-MLP25.xml usr/share/foomatic/db/source/printer/Savin-MLP25n.xml usr/share/foomatic/db/source/printer/Savin-MLP26.xml usr/share/foomatic/db/source/printer/Savin-MLP26n.xml usr/share/foomatic/db/source/printer/Savin-MLP28.xml usr/share/foomatic/db/source/printer/Savin-MLP28n.xml +usr/share/foomatic/db/source/printer/Savin-MLP31n.xml +usr/share/foomatic/db/source/printer/Savin-MLP31nL.xml usr/share/foomatic/db/source/printer/Savin-MLP32.xml usr/share/foomatic/db/source/printer/Savin-MLP35n.xml +usr/share/foomatic/db/source/printer/Savin-MLP36n.xml +usr/share/foomatic/db/source/printer/Savin-MLP37N.xml usr/share/foomatic/db/source/printer/Savin-MLP45.xml usr/share/foomatic/db/source/printer/Savin-MLP75n.xml +usr/share/foomatic/db/source/printer/Savin-MP_2352.xml +usr/share/foomatic/db/source/printer/Savin-MP_2501.xml +usr/share/foomatic/db/source/printer/Savin-MP_2852.xml +usr/share/foomatic/db/source/printer/Savin-MP_301.xml +usr/share/foomatic/db/source/printer/Savin-MP_3352.xml +usr/share/foomatic/db/source/printer/Savin-MP_4002.xml +usr/share/foomatic/db/source/printer/Savin-MP_5002.xml +usr/share/foomatic/db/source/printer/Savin-MP_6002.xml +usr/share/foomatic/db/source/printer/Savin-MP_7502.xml +usr/share/foomatic/db/source/printer/Savin-MP_9002.xml +usr/share/foomatic/db/source/printer/Savin-MP_C3002.xml +usr/share/foomatic/db/source/printer/Savin-MP_C3003.xml +usr/share/foomatic/db/source/printer/Savin-MP_C305.xml +usr/share/foomatic/db/source/printer/Savin-MP_C3502.xml +usr/share/foomatic/db/source/printer/Savin-MP_C3503.xml +usr/share/foomatic/db/source/printer/Savin-MP_C4502.xml +usr/share/foomatic/db/source/printer/Savin-MP_C4502A.xml +usr/share/foomatic/db/source/printer/Savin-MP_C4503.xml +usr/share/foomatic/db/source/printer/Savin-MP_C5502.xml +usr/share/foomatic/db/source/printer/Savin-MP_C5502A.xml +usr/share/foomatic/db/source/printer/Savin-MP_C5503.xml +usr/share/foomatic/db/source/printer/Savin-MP_C6003.xml +usr/share/foomatic/db/source/printer/Savin-MP_C6502.xml +usr/share/foomatic/db/source/printer/Savin-MP_C8002.xml +usr/share/foomatic/db/source/printer/Savin-MP_CW2200.xml +usr/share/foomatic/db/source/printer/Savin-Pro_1106EX.xml +usr/share/foomatic/db/source/printer/Savin-Pro_1107EX.xml +usr/share/foomatic/db/source/printer/Savin-Pro_1356EX.xml +usr/share/foomatic/db/source/printer/Savin-Pro_1357EX.xml +usr/share/foomatic/db/source/printer/Savin-Pro_906EX.xml +usr/share/foomatic/db/source/printer/Savin-Pro_907EX.xml +usr/share/foomatic/db/source/printer/Savin-Pro_C5100S.xml +usr/share/foomatic/db/source/printer/Savin-Pro_C5110S.xml usr/share/foomatic/db/source/printer/Savin-SDC555.xml +usr/share/foomatic/db/source/printer/Savin-SG3100SNw.xml +usr/share/foomatic/db/source/printer/Savin-SG3110SFNw.xml usr/share/foomatic/db/source/printer/Savin-SGC_1506.xml usr/share/foomatic/db/source/printer/Savin-SLP26.xml usr/share/foomatic/db/source/printer/Savin-SLP26n.xml usr/share/foomatic/db/source/printer/Savin-SLP32.xml usr/share/foomatic/db/source/printer/Savin-SLP38c.xml +usr/share/foomatic/db/source/printer/Savin-SP_4310N.xml +usr/share/foomatic/db/source/printer/Savin-SP_5200DN.xml +usr/share/foomatic/db/source/printer/Savin-SP_5200S.xml +usr/share/foomatic/db/source/printer/Savin-SP_5210DN.xml +usr/share/foomatic/db/source/printer/Savin-SP_5210SF.xml +usr/share/foomatic/db/source/printer/Savin-SP_5210SR.xml +usr/share/foomatic/db/source/printer/Savin-SP_8300DN.xml +usr/share/foomatic/db/source/printer/Savin-SP_C320DN.xml +usr/share/foomatic/db/source/printer/Savin-SP_C400DN.xml +usr/share/foomatic/db/source/printer/Savin-SP_C730DN.xml +usr/share/foomatic/db/source/printer/Savin-SP_C830DN.xml +usr/share/foomatic/db/source/printer/Savin-SP_C831DN.xml usr/share/foomatic/db/source/printer/Seiko-SLP-100.xml usr/share/foomatic/db/source/printer/Seiko-SLP-200.xml usr/share/foomatic/db/source/printer/Seiko-SLP-240.xml @@ -4529,7 +7595,152 @@ usr/share/foomatic/db/source/printer/Sharp-AJ-1805.xml usr/share/foomatic/db/source/printer/Sharp-AJ-2000.xml usr/share/foomatic/db/source/printer/Sharp-AJ-2005.xml usr/share/foomatic/db/source/printer/Sharp-AJ-2100.xml +usr/share/foomatic/db/source/printer/Sharp-AR-155FG.xml +usr/share/foomatic/db/source/printer/Sharp-AR-155FG_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-160M.xml +usr/share/foomatic/db/source/printer/Sharp-AR-160M_PS.xml usr/share/foomatic/db/source/printer/Sharp-AR-161.xml +usr/share/foomatic/db/source/printer/Sharp-AR-163FG.xml +usr/share/foomatic/db/source/printer/Sharp-AR-163FG_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-163G.xml +usr/share/foomatic/db/source/printer/Sharp-AR-163G_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-168D.xml +usr/share/foomatic/db/source/printer/Sharp-AR-168S.xml +usr/share/foomatic/db/source/printer/Sharp-AR-200M.xml +usr/share/foomatic/db/source/printer/Sharp-AR-200M_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-205FG.xml +usr/share/foomatic/db/source/printer/Sharp-AR-205FG_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-205G.xml +usr/share/foomatic/db/source/printer/Sharp-AR-205G_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-266FP.xml +usr/share/foomatic/db/source/printer/Sharp-AR-266FP_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-266S.xml +usr/share/foomatic/db/source/printer/Sharp-AR-266S_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-311FP.xml +usr/share/foomatic/db/source/printer/Sharp-AR-311FP_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-311N.xml +usr/share/foomatic/db/source/printer/Sharp-AR-311N_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-311S.xml +usr/share/foomatic/db/source/printer/Sharp-AR-311S_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-351FP.xml +usr/share/foomatic/db/source/printer/Sharp-AR-351FP_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-351N.xml +usr/share/foomatic/db/source/printer/Sharp-AR-351N_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-351S.xml +usr/share/foomatic/db/source/printer/Sharp-AR-351S_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-451FP.xml +usr/share/foomatic/db/source/printer/Sharp-AR-451FP_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-451N.xml +usr/share/foomatic/db/source/printer/Sharp-AR-451N_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-451S.xml +usr/share/foomatic/db/source/printer/Sharp-AR-451S_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-5220.xml +usr/share/foomatic/db/source/printer/Sharp-AR-555M.xml +usr/share/foomatic/db/source/printer/Sharp-AR-555M_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-555S.xml +usr/share/foomatic/db/source/printer/Sharp-AR-555S_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-625M.xml +usr/share/foomatic/db/source/printer/Sharp-AR-625M_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-625S.xml +usr/share/foomatic/db/source/printer/Sharp-AR-625S_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-705M.xml +usr/share/foomatic/db/source/printer/Sharp-AR-705M_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-705S.xml +usr/share/foomatic/db/source/printer/Sharp-AR-705S_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-BC260.xml +usr/share/foomatic/db/source/printer/Sharp-AR-BC320.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C170FP.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C170FP_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C170M.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C172FP.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C172FP_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C172M.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C260.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C260F.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C260FP.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C260FP_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C260M.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C260P.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C260S.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C261F.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C261FP.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C261FP_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C261M.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C261S.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C262FP.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C262FP_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C262M.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C262S.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M150.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M150_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M155.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M155_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M160.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M160_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M161.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M161_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M162.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M162_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M165.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M165_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M205.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M205_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M206.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M206_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M207.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M207_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M236.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M236_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M237.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M237_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M276.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M276_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M277.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M277_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M351N.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M351U.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M355N.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M355U.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M451N.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M451U.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M455N.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M455U.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M550N.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M550U.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M620N.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M620U.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M700N.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M700U.xml +usr/share/foomatic/db/source/printer/Sharp-ARP350.xml +usr/share/foomatic/db/source/printer/Sharp-ARP450.xml +usr/share/foomatic/db/source/printer/Sharp-MX-2300FG.xml +usr/share/foomatic/db/source/printer/Sharp-MX-2300FG_PS.xml +usr/share/foomatic/db/source/printer/Sharp-MX-2300G.xml +usr/share/foomatic/db/source/printer/Sharp-MX-2300G_PS.xml +usr/share/foomatic/db/source/printer/Sharp-MX-2300N.xml +usr/share/foomatic/db/source/printer/Sharp-MX-2300N_PS.xml +usr/share/foomatic/db/source/printer/Sharp-MX-2700FG.xml +usr/share/foomatic/db/source/printer/Sharp-MX-2700FG_PS.xml +usr/share/foomatic/db/source/printer/Sharp-MX-2700G.xml +usr/share/foomatic/db/source/printer/Sharp-MX-2700G_PS.xml +usr/share/foomatic/db/source/printer/Sharp-MX-2700N.xml +usr/share/foomatic/db/source/printer/Sharp-MX-2700N_PS.xml +usr/share/foomatic/db/source/printer/Sharp-MX-3500FN.xml +usr/share/foomatic/db/source/printer/Sharp-MX-3500FN_PS.xml +usr/share/foomatic/db/source/printer/Sharp-MX-3500N.xml +usr/share/foomatic/db/source/printer/Sharp-MX-3500N_PS.xml +usr/share/foomatic/db/source/printer/Sharp-MX-3501FN.xml +usr/share/foomatic/db/source/printer/Sharp-MX-3501FN_PS.xml +usr/share/foomatic/db/source/printer/Sharp-MX-3501N.xml +usr/share/foomatic/db/source/printer/Sharp-MX-3501N_PS.xml +usr/share/foomatic/db/source/printer/Sharp-MX-4500FN.xml +usr/share/foomatic/db/source/printer/Sharp-MX-4500FN_PS.xml +usr/share/foomatic/db/source/printer/Sharp-MX-4500N.xml +usr/share/foomatic/db/source/printer/Sharp-MX-4500N_PS.xml +usr/share/foomatic/db/source/printer/Sharp-MX-4501FN.xml +usr/share/foomatic/db/source/printer/Sharp-MX-4501FN_PS.xml +usr/share/foomatic/db/source/printer/Sharp-MX-4501N.xml +usr/share/foomatic/db/source/printer/Sharp-MX-4501N_PS.xml usr/share/foomatic/db/source/printer/SiPix-Pocket_Printer_A6.xml usr/share/foomatic/db/source/printer/Sony-IJP-V100.xml usr/share/foomatic/db/source/printer/Sony-UP-DP10.xml @@ -4544,49 +7755,96 @@ usr/share/foomatic/db/source/printer/Star-NL-10.xml usr/share/foomatic/db/source/printer/Star-NX-1001.xml usr/share/foomatic/db/source/printer/Star-StarJet_48.xml usr/share/foomatic/db/source/printer/Star-WinType_4000.xml +usr/share/foomatic/db/source/printer/Tally-LN45.xml +usr/share/foomatic/db/source/printer/Tally-ML450.xml usr/share/foomatic/db/source/printer/Tally-MT908.xml -usr/share/foomatic/db/source/printer/Tektronix-3693d_color_printer_8-bit_mode.xml -usr/share/foomatic/db/source/printer/Tektronix-4693d_color_printer_2-bit_mode.xml -usr/share/foomatic/db/source/printer/Tektronix-4693d_color_printer_4-bit_mode.xml +usr/share/foomatic/db/source/printer/Tektronix-4693d.xml usr/share/foomatic/db/source/printer/Tektronix-4695.xml usr/share/foomatic/db/source/printer/Tektronix-4696.xml usr/share/foomatic/db/source/printer/Tektronix-4697.xml usr/share/foomatic/db/source/printer/Tektronix-Phaser_350.xml +usr/share/foomatic/db/source/printer/Tektronix-Phaser_750DP.xml +usr/share/foomatic/db/source/printer/Tektronix-Phaser_750DX.xml +usr/share/foomatic/db/source/printer/Tektronix-Phaser_750N.xml +usr/share/foomatic/db/source/printer/Tektronix-Phaser_750P.xml usr/share/foomatic/db/source/printer/Tektronix-Phaser_780.xml usr/share/foomatic/db/source/printer/Tektronix-Phaser_850.xml +usr/share/foomatic/db/source/printer/Tektronix-Phaser_850DP.xml +usr/share/foomatic/db/source/printer/Tektronix-Phaser_850DX.xml +usr/share/foomatic/db/source/printer/Tektronix-Phaser_850N.xml usr/share/foomatic/db/source/printer/Tektronix-Phaser_IISX.xml usr/share/foomatic/db/source/printer/Tektronix-Phaser_PX.xml +usr/share/foomatic/db/source/printer/Texas_Instruments-microLaser_PowerPro_12.xml +usr/share/foomatic/db/source/printer/Texas_Instruments-microLaser_Pro_600.xml +usr/share/foomatic/db/source/printer/Texas_Instruments-microLaser_Pro_8.xml +usr/share/foomatic/db/source/printer/Texas_Instruments-microLaser_Pro_E.xml +usr/share/foomatic/db/source/printer/Texas_Instruments-microLaser_XL_Basic.xml +usr/share/foomatic/db/source/printer/Texas_Instruments-microLaser_XL_PS17.xml +usr/share/foomatic/db/source/printer/Texas_Instruments-microLaser_XL_PS35.xml +usr/share/foomatic/db/source/printer/Texas_Instruments-microLaser_XL_Turbo.xml usr/share/foomatic/db/source/printer/Toshiba-DP2570.xml -usr/share/foomatic/db/source/printer/Toshiba-GL_1010.xml -usr/share/foomatic/db/source/printer/Toshiba-GL_1020.xml +usr/share/foomatic/db/source/printer/Toshiba-GL-1010.xml +usr/share/foomatic/db/source/printer/Toshiba-GL-1020.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_1101.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_1351.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_162.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_162d.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_165.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_167.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_200L.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_202L.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_203l.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_205.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_220cp.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_230.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_232.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_233.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_237.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_2500c.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_280.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_281c.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_282.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_283.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_2830c.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_350.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_3500c.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_3510c.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_3511.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_351c.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_352.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_353.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_3530c.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_450.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_4500c.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_450s.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_4511.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_451c.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_452.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_4520c.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_453.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_500p.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_500s.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_520.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_523.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_523t.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_5500c.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_600.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_603.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_603t.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_720.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_723.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_723t.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_850.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_853.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_901.xml +usr/share/foomatic/db/source/printer/Xante-Accel-a-Writer_4G.xml +usr/share/foomatic/db/source/printer/Xante-FilmMaker_4.xml +usr/share/foomatic/db/source/printer/Xante-PlateMaker_4.xml usr/share/foomatic/db/source/printer/Xerox-2700_XES.xml usr/share/foomatic/db/source/printer/Xerox-3700_XES.xml usr/share/foomatic/db/source/printer/Xerox-4045_XES.xml usr/share/foomatic/db/source/printer/Xerox-Able_1406.xml +usr/share/foomatic/db/source/printer/Xerox-DocuColor_2006.xml usr/share/foomatic/db/source/printer/Xerox-DocuPrint_4508.xml usr/share/foomatic/db/source/printer/Xerox-DocuPrint_C11.xml usr/share/foomatic/db/source/printer/Xerox-DocuPrint_C20.xml @@ -4596,9 +7854,15 @@ usr/share/foomatic/db/source/printer/Xerox-DocuPrint_C8.xml usr/share/foomatic/db/source/printer/Xerox-DocuPrint_M750.xml usr/share/foomatic/db/source/printer/Xerox-DocuPrint_M760.xml usr/share/foomatic/db/source/printer/Xerox-DocuPrint_N17.xml +usr/share/foomatic/db/source/printer/Xerox-DocuPrint_N2125.xml +usr/share/foomatic/db/source/printer/Xerox-DocuPrint_N24.xml usr/share/foomatic/db/source/printer/Xerox-DocuPrint_N32.xml +usr/share/foomatic/db/source/printer/Xerox-DocuPrint_N3225.xml +usr/share/foomatic/db/source/printer/Xerox-DocuPrint_N40.xml +usr/share/foomatic/db/source/printer/Xerox-DocuPrint_N4025.xml usr/share/foomatic/db/source/printer/Xerox-DocuPrint_N4512.xml usr/share/foomatic/db/source/printer/Xerox-DocuPrint_N4512PS.xml +usr/share/foomatic/db/source/printer/Xerox-DocuPrint_N4525.xml usr/share/foomatic/db/source/printer/Xerox-DocuPrint_P12.xml usr/share/foomatic/db/source/printer/Xerox-DocuPrint_P1202.xml usr/share/foomatic/db/source/printer/Xerox-DocuPrint_P8.xml @@ -4607,16 +7871,147 @@ usr/share/foomatic/db/source/printer/Xerox-DocuPrint_XJ6C.xml usr/share/foomatic/db/source/printer/Xerox-DocuPrint_XJ8C.xml usr/share/foomatic/db/source/printer/Xerox-Document_Centre_400.xml usr/share/foomatic/db/source/printer/Xerox-Document_Homecentre.xml -usr/share/foomatic/db/source/printer/Xerox-Phaser-6110.xml -usr/share/foomatic/db/source/printer/Xerox-Phaser-6115MFP.xml +usr/share/foomatic/db/source/printer/Xerox-FaxCenter_2121.xml +usr/share/foomatic/db/source/printer/Xerox-FaxCentre_2218.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_1235.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_2135.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_3110.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_3124.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_3150.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_3160N.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_3200MFP.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_3400.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_3450.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_3500.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_4400B.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_4400DT.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_4400DX.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_4400N.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_4500B.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_4500DT.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_4500DX.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_4500N.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_4510.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_4510B.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_4510DT.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_4510DX.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_4510N.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_5500.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_5500B.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_5500DN.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_5500DT.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_5500DX.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_5500N.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6100.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6110.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6115MFP.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6120.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6121MFP.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6125.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6130.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6130N.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6180.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6180DN.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6180MFP-D.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6200B.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6200DP.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6200DX.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6200N.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6250B.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6250DP.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6250DT.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6250DX.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6250N.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6300DN.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6300N.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6350DP.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6350DT.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6350DX.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6360.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6360DN.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6360DX.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7300B.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7300DN.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7300DT.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7300DX.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7300N.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7400.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7400DN.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7400DT.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7400DX.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7400DXF.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7400N.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7700DN.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7700DX.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7700GX.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7750B.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7750DN.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7750DXF.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7750GX.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7760.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7760DN.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7760DX.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7760GX.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_790.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_8200B.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_8200DP.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_8200DX.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_8200N.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_8400B.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_8400BD.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_8400DP.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_8400DX.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_8400N.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_8500DN.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_8500N.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_8550DP.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_8550DT.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_8550DX.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_8560.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_8560DN.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_860B.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_860DP.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_860DX.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_860N.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_8860.xml +usr/share/foomatic/db/source/printer/Xerox-WorkCentre_24.xml usr/share/foomatic/db/source/printer/Xerox-WorkCentre_385.xml +usr/share/foomatic/db/source/printer/Xerox-WorkCentre_4118.xml usr/share/foomatic/db/source/printer/Xerox-WorkCentre_450cp.xml usr/share/foomatic/db/source/printer/Xerox-WorkCentre_470cx.xml +usr/share/foomatic/db/source/printer/Xerox-WorkCentre_6015.xml +usr/share/foomatic/db/source/printer/Xerox-WorkCentre_7228.xml +usr/share/foomatic/db/source/printer/Xerox-WorkCentre_7232.xml +usr/share/foomatic/db/source/printer/Xerox-WorkCentre_7242.xml +usr/share/foomatic/db/source/printer/Xerox-WorkCentre_7328.xml +usr/share/foomatic/db/source/printer/Xerox-WorkCentre_7335.xml +usr/share/foomatic/db/source/printer/Xerox-WorkCentre_7345.xml +usr/share/foomatic/db/source/printer/Xerox-WorkCentre_C2424.xml +usr/share/foomatic/db/source/printer/Xerox-WorkCentre_M118.xml +usr/share/foomatic/db/source/printer/Xerox-WorkCentre_M20.xml +usr/share/foomatic/db/source/printer/Xerox-WorkCentre_M24.xml +usr/share/foomatic/db/source/printer/Xerox-WorkCentre_PE120.xml +usr/share/foomatic/db/source/printer/Xerox-WorkCentre_Pro_128.xml +usr/share/foomatic/db/source/printer/Xerox-WorkCentre_Pro_133.xml usr/share/foomatic/db/source/printer/Xerox-WorkCentre_XD120f.xml usr/share/foomatic/db/source/printer/Xerox-WorkCentre_XE80.xml usr/share/foomatic/db/source/printer/Xerox-WorkCentre_XE90fx.xml usr/share/foomatic/db/source/printer/Xerox-WorkCentre_XK35c.xml -#usr/share/foomatic/templates -usr/share/foomatic/templates/pjl_enum_choice.xml -usr/share/foomatic/templates/pjl_enum_option.xml -usr/share/foomatic/templates/pjl_num_option.xml +#usr/share/foomatic/xmlschema +usr/share/foomatic/xmlschema/driver.xsd +usr/share/foomatic/xmlschema/option.xsd +usr/share/foomatic/xmlschema/printer.xsd +usr/share/foomatic/xmlschema/types.xsd +#usr/share/man/man1/foomatic-combo-xml.1 +#usr/share/man/man1/foomatic-compiledb.1 +#usr/share/man/man1/foomatic-configure.1 +#usr/share/man/man1/foomatic-perl-data.1 +#usr/share/man/man1/foomatic-ppd-options.1 +#usr/share/man/man1/foomatic-ppdfile.1 +#usr/share/man/man1/foomatic-printjob.1 +#usr/share/man/man1/foomatic-rip.1 +#usr/share/man/man8/foomatic-addpjloptions.8 +#usr/share/man/man8/foomatic-getpjloptions.8 +#usr/share/man/man8/foomatic-kitload.8 +#usr/share/man/man8/foomatic-preferred-driver.8 +var/cache/foomatic diff --git a/config/rootfiles/packages/git b/config/rootfiles/packages/git index ada23da..5584c25 100644 --- a/config/rootfiles/packages/git +++ b/config/rootfiles/packages/git @@ -24,25 +24,6 @@ usr/lib/perl5/site_perl/5.12.3/Git/I18N.pm #usr/lib/perl5/site_perl/5.12.3/Git/SVN/Utils.pm #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Git #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Git/.packlist -usr/lib/python2.7/site-packages/git_remote_helpers -#usr/lib/python2.7/site-packages/git_remote_helpers-0.1.0-py2.7.egg-info -usr/lib/python2.7/site-packages/git_remote_helpers/__init__.py -usr/lib/python2.7/site-packages/git_remote_helpers/__init__.pyc -usr/lib/python2.7/site-packages/git_remote_helpers/git -usr/lib/python2.7/site-packages/git_remote_helpers/git/__init__.py -usr/lib/python2.7/site-packages/git_remote_helpers/git/__init__.pyc -usr/lib/python2.7/site-packages/git_remote_helpers/git/exporter.py -usr/lib/python2.7/site-packages/git_remote_helpers/git/exporter.pyc -usr/lib/python2.7/site-packages/git_remote_helpers/git/git.py -usr/lib/python2.7/site-packages/git_remote_helpers/git/git.pyc -usr/lib/python2.7/site-packages/git_remote_helpers/git/importer.py -usr/lib/python2.7/site-packages/git_remote_helpers/git/importer.pyc -usr/lib/python2.7/site-packages/git_remote_helpers/git/non_local.py -usr/lib/python2.7/site-packages/git_remote_helpers/git/non_local.pyc -usr/lib/python2.7/site-packages/git_remote_helpers/git/repo.py -usr/lib/python2.7/site-packages/git_remote_helpers/git/repo.pyc -usr/lib/python2.7/site-packages/git_remote_helpers/util.py -usr/lib/python2.7/site-packages/git_remote_helpers/util.pyc usr/libexec/git-core usr/libexec/git-core/git usr/libexec/git-core/git-add @@ -59,6 +40,8 @@ usr/libexec/git-core/git-branch usr/libexec/git-core/git-bundle usr/libexec/git-core/git-cat-file usr/libexec/git-core/git-check-attr +usr/libexec/git-core/git-check-ignore +usr/libexec/git-core/git-check-mailmap usr/libexec/git-core/git-check-ref-format usr/libexec/git-core/git-checkout usr/libexec/git-core/git-checkout-index @@ -100,8 +83,8 @@ usr/libexec/git-core/git-fsck-objects usr/libexec/git-core/git-gc usr/libexec/git-core/git-get-tar-commit-id usr/libexec/git-core/git-grep -usr/libexec/git-core/git-gui -usr/libexec/git-core/git-gui--askpass +#usr/libexec/git-core/git-gui +#usr/libexec/git-core/git-gui--askpass usr/libexec/git-core/git-hash-object usr/libexec/git-core/git-help usr/libexec/git-core/git-http-backend @@ -164,8 +147,7 @@ usr/libexec/git-core/git-remote-ftp usr/libexec/git-core/git-remote-ftps usr/libexec/git-core/git-remote-http usr/libexec/git-core/git-remote-https -usr/libexec/git-core/git-remote-testgit -#usr/libexec/git-core/git-remote-testsvn +usr/libexec/git-core/git-remote-testsvn usr/libexec/git-core/git-repack usr/libexec/git-core/git-replace usr/libexec/git-core/git-repo-config @@ -213,11 +195,13 @@ usr/libexec/git-core/mergetools usr/libexec/git-core/mergetools/araxis usr/libexec/git-core/mergetools/bc3 usr/libexec/git-core/mergetools/codecompare -usr/libexec/git-core/mergetools/defaults usr/libexec/git-core/mergetools/deltawalker +usr/libexec/git-core/mergetools/diffmerge usr/libexec/git-core/mergetools/diffuse usr/libexec/git-core/mergetools/ecmerge usr/libexec/git-core/mergetools/emerge +usr/libexec/git-core/mergetools/gvimdiff +usr/libexec/git-core/mergetools/gvimdiff2 usr/libexec/git-core/mergetools/kdiff3 usr/libexec/git-core/mergetools/kompare usr/libexec/git-core/mergetools/meld @@ -225,7 +209,8 @@ usr/libexec/git-core/mergetools/opendiff usr/libexec/git-core/mergetools/p4merge usr/libexec/git-core/mergetools/tkdiff usr/libexec/git-core/mergetools/tortoisemerge -usr/libexec/git-core/mergetools/vim +usr/libexec/git-core/mergetools/vimdiff +usr/libexec/git-core/mergetools/vimdiff2 usr/libexec/git-core/mergetools/xxdiff usr/share/git-core usr/share/git-core/templates @@ -237,6 +222,7 @@ usr/share/git-core/templates/hooks/commit-msg.sample usr/share/git-core/templates/hooks/post-update.sample usr/share/git-core/templates/hooks/pre-applypatch.sample usr/share/git-core/templates/hooks/pre-commit.sample +usr/share/git-core/templates/hooks/pre-push.sample usr/share/git-core/templates/hooks/pre-rebase.sample usr/share/git-core/templates/hooks/prepare-commit-msg.sample usr/share/git-core/templates/hooks/update.sample @@ -319,6 +305,7 @@ usr/share/git-core/templates/info/exclude #usr/share/gitweb/static/gitweb.js #usr/share/locale/da/LC_MESSAGES/git.mo #usr/share/locale/de/LC_MESSAGES/git.mo +#usr/share/locale/fr/LC_MESSAGES/git.mo #usr/share/locale/is/LC_MESSAGES/git.mo #usr/share/locale/it/LC_MESSAGES/git.mo #usr/share/locale/nl/LC_MESSAGES/git.mo diff --git a/config/rootfiles/packages/gutenprint b/config/rootfiles/packages/gutenprint index a65efb4..3671a78 100644 --- a/config/rootfiles/packages/gutenprint +++ b/config/rootfiles/packages/gutenprint @@ -37,7 +37,7 @@ usr/lib/gutenprint/5.2/modules #usr/lib/libgutenprint.la usr/lib/libgutenprint.so usr/lib/libgutenprint.so.2 -usr/lib/libgutenprint.so.2.0.6 +usr/lib/libgutenprint.so.2.1.0 #usr/lib/pkgconfig/gutenprint.pc usr/sbin/cups-genppd.5.2 usr/sbin/cups-genppdupdate @@ -77,6 +77,7 @@ usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_blacktrans-1.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_bluedensity-1.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_borderless.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_brightness-1.xml +usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_cdallowothermedia.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_cdinnerradius.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_cdxadjustment-1.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_cdyadjustment-1.xml @@ -163,10 +164,14 @@ usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_enablemagentabalance.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_enablemagentadensity.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_enablemagentagamma.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_enableorangedensity.xml +usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_enablepagedrytime.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_enablepaperthickness.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_enableplatengap.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_enableprintmethod.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_enablereddensity.xml +usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_enablescandrytime.xml +usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_enablescanmindrytime.xml +usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_enablesubchannelcutoff.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_enablevacuumintensity.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_enableyellowbalance.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_enableyellowdensity.xml @@ -212,6 +217,8 @@ usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_inklimit-3.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_inklimit-4.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_inklimit-5.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_inklimit-6.xml +usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_inklimit-7.xml +usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_inklimit-8.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_inkset.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_inktype.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_inputslot.xml @@ -234,6 +241,7 @@ usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_magentadensity-1.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_magentagamma-1.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_mediatype.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_orangedensity-1.xml +usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_pagedrytime-1.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_paperthickness-1.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_platengap-1.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_printingdirection.xml @@ -241,6 +249,9 @@ usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_printmethod-1.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_quality.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_reddensity-1.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_resolution.xml +usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_scandrytime-1.xml +usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_scanmindrytime-1.xml +usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_subchannelcutoff-1.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_usegloss.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_vacuumintensity-1.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_weave.xml @@ -274,6 +285,7 @@ usr/share/gutenprint/5.2/xml/escp2/inks/f360_photo7_japan.xml usr/share/gutenprint/5.2/xml/escp2/inks/f360_ultrachrome.xml usr/share/gutenprint/5.2/xml/escp2/inks/f360_ultrachrome_k3.xml usr/share/gutenprint/5.2/xml/escp2/inks/f360_ultrachrome_k3v.xml +usr/share/gutenprint/5.2/xml/escp2/inks/f360_ultrachrome_k3v_2.xml usr/share/gutenprint/5.2/xml/escp2/inks/nx100.xml usr/share/gutenprint/5.2/xml/escp2/inks/photo_gen0.xml usr/share/gutenprint/5.2/xml/escp2/inks/photo_gen1.xml @@ -289,6 +301,9 @@ usr/share/gutenprint/5.2/xml/escp2/inks/pro_gen2.xml usr/share/gutenprint/5.2/xml/escp2/inks/pro_pigment.xml usr/share/gutenprint/5.2/xml/escp2/inks/pro_ultrachrome.xml usr/share/gutenprint/5.2/xml/escp2/inks/pro_ultrachrome_k3.xml +usr/share/gutenprint/5.2/xml/escp2/inks/pro_ultrachrome_k34.xml +usr/share/gutenprint/5.2/xml/escp2/inks/pro_ultrachrome_k3v.xml +usr/share/gutenprint/5.2/xml/escp2/inks/pro_ultrachrome_k3v4.xml usr/share/gutenprint/5.2/xml/escp2/inks/standard.xml usr/share/gutenprint/5.2/xml/escp2/inks/standard_gen0.xml usr/share/gutenprint/5.2/xml/escp2/inks/ultrachrome.xml @@ -303,6 +318,8 @@ usr/share/gutenprint/5.2/xml/escp2/inputslots/cd_cutter_roll_feed.xml usr/share/gutenprint/5.2/xml/escp2/inputslots/cd_roll_feed.xml usr/share/gutenprint/5.2/xml/escp2/inputslots/cutter_roll_feed.xml usr/share/gutenprint/5.2/xml/escp2/inputslots/default.xml +usr/share/gutenprint/5.2/xml/escp2/inputslots/pro3880.xml +usr/share/gutenprint/5.2/xml/escp2/inputslots/pro_cutter_roll_feed.xml usr/share/gutenprint/5.2/xml/escp2/inputslots/pro_roll_feed.xml usr/share/gutenprint/5.2/xml/escp2/inputslots/r1800.xml usr/share/gutenprint/5.2/xml/escp2/inputslots/r2400.xml @@ -340,11 +357,13 @@ usr/share/gutenprint/5.2/xml/escp2/media/photo_gen4.xml usr/share/gutenprint/5.2/xml/escp2/media/photo_pigment.xml usr/share/gutenprint/5.2/xml/escp2/media/picturemate_4.xml usr/share/gutenprint/5.2/xml/escp2/media/picturemate_6.xml +usr/share/gutenprint/5.2/xml/escp2/media/pro3880_ultrachrome_k3v.xml usr/share/gutenprint/5.2/xml/escp2/media/pro_gen1.xml usr/share/gutenprint/5.2/xml/escp2/media/pro_gen2.xml usr/share/gutenprint/5.2/xml/escp2/media/pro_pigment.xml usr/share/gutenprint/5.2/xml/escp2/media/pro_ultrachrome.xml usr/share/gutenprint/5.2/xml/escp2/media/pro_ultrachrome_k3.xml +usr/share/gutenprint/5.2/xml/escp2/media/pro_ultrachrome_k3v.xml usr/share/gutenprint/5.2/xml/escp2/media/r800.xml usr/share/gutenprint/5.2/xml/escp2/media/standard.xml usr/share/gutenprint/5.2/xml/escp2/media/standard_gen0.xml @@ -358,7 +377,24 @@ usr/share/gutenprint/5.2/xml/escp2/model/model_0.xml usr/share/gutenprint/5.2/xml/escp2/model/model_1.xml usr/share/gutenprint/5.2/xml/escp2/model/model_10.xml usr/share/gutenprint/5.2/xml/escp2/model/model_100.xml +usr/share/gutenprint/5.2/xml/escp2/model/model_101.xml +usr/share/gutenprint/5.2/xml/escp2/model/model_102.xml +usr/share/gutenprint/5.2/xml/escp2/model/model_103.xml +usr/share/gutenprint/5.2/xml/escp2/model/model_104.xml +usr/share/gutenprint/5.2/xml/escp2/model/model_105.xml +usr/share/gutenprint/5.2/xml/escp2/model/model_106.xml +usr/share/gutenprint/5.2/xml/escp2/model/model_107.xml +usr/share/gutenprint/5.2/xml/escp2/model/model_108.xml +usr/share/gutenprint/5.2/xml/escp2/model/model_109.xml usr/share/gutenprint/5.2/xml/escp2/model/model_11.xml +usr/share/gutenprint/5.2/xml/escp2/model/model_110.xml +usr/share/gutenprint/5.2/xml/escp2/model/model_111.xml +usr/share/gutenprint/5.2/xml/escp2/model/model_112.xml +usr/share/gutenprint/5.2/xml/escp2/model/model_113.xml +usr/share/gutenprint/5.2/xml/escp2/model/model_114.xml +usr/share/gutenprint/5.2/xml/escp2/model/model_115.xml +usr/share/gutenprint/5.2/xml/escp2/model/model_116.xml +usr/share/gutenprint/5.2/xml/escp2/model/model_117.xml usr/share/gutenprint/5.2/xml/escp2/model/model_12.xml usr/share/gutenprint/5.2/xml/escp2/model/model_13.xml usr/share/gutenprint/5.2/xml/escp2/model/model_14.xml @@ -458,6 +494,7 @@ usr/share/gutenprint/5.2/xml/escp2/model/model_99.xml #usr/share/gutenprint/5.2/xml/escp2/qualitypresets usr/share/gutenprint/5.2/xml/escp2/qualitypresets/p1_5.xml usr/share/gutenprint/5.2/xml/escp2/qualitypresets/picturemate.xml +usr/share/gutenprint/5.2/xml/escp2/qualitypresets/prox900.xml usr/share/gutenprint/5.2/xml/escp2/qualitypresets/standard.xml usr/share/gutenprint/5.2/xml/escp2/qualitypresets/v2880.xml usr/share/gutenprint/5.2/xml/escp2/qualitypresets/wf40.xml @@ -508,16 +545,20 @@ usr/share/gutenprint/samples/testpattern.sample #usr/share/locale/cs/gutenprint_cs.po #usr/share/locale/da/LC_MESSAGES/gutenprint.mo #usr/share/locale/da/gutenprint_da.po -usr/share/locale/de/LC_MESSAGES/gutenprint.mo -usr/share/locale/de/gutenprint_de.po +#usr/share/locale/de/LC_MESSAGES/gutenprint.mo +#usr/share/locale/de/gutenprint_de.po #usr/share/locale/el/LC_MESSAGES/gutenprint.mo #usr/share/locale/el/gutenprint_el.po #usr/share/locale/en_GB/LC_MESSAGES/gutenprint.mo #usr/share/locale/en_GB/gutenprint_en_GB.po #usr/share/locale/es/LC_MESSAGES/gutenprint.mo #usr/share/locale/es/gutenprint_es.po +#usr/share/locale/fi/LC_MESSAGES/gutenprint.mo +#usr/share/locale/fi/gutenprint_fi.po #usr/share/locale/fr/LC_MESSAGES/gutenprint.mo #usr/share/locale/fr/gutenprint_fr.po +#usr/share/locale/gl/LC_MESSAGES/gutenprint.mo +#usr/share/locale/gl/gutenprint_gl.po #usr/share/locale/hu/LC_MESSAGES/gutenprint.mo #usr/share/locale/hu/gutenprint_hu.po #usr/share/locale/it/LC_MESSAGES/gutenprint.mo @@ -536,12 +577,18 @@ usr/share/locale/de/gutenprint_de.po #usr/share/locale/ru/gutenprint_ru.po #usr/share/locale/sk/LC_MESSAGES/gutenprint.mo #usr/share/locale/sk/gutenprint_sk.po +#usr/share/locale/sl/LC_MESSAGES/gutenprint.mo +#usr/share/locale/sl/gutenprint_sl.po #usr/share/locale/sv/LC_MESSAGES/gutenprint.mo #usr/share/locale/sv/gutenprint_sv.po +#usr/share/locale/uk/LC_MESSAGES/gutenprint.mo +#usr/share/locale/uk/gutenprint_uk.po +#usr/share/locale/zh_CN/LC_MESSAGES/gutenprint.mo +#usr/share/locale/zh_CN/gutenprint_zh_CN.po #usr/share/locale/zh_TW/LC_MESSAGES/gutenprint.mo #usr/share/locale/zh_TW/gutenprint_zh_TW.po #usr/share/man/man1/escputil.1 #usr/share/man/man8/cups-calibrate.8 #usr/share/man/man8/cups-genppd.8 #usr/share/man/man8/cups-genppdupdate.8 -var/ipfire/cups/command.types \ No newline at end of file +var/ipfire/cups/command.types diff --git a/config/rootfiles/packages/i586/vdr_dvbapi b/config/rootfiles/packages/i586/vdr_dvbapi new file mode 100644 index 0000000..5e06c12 --- /dev/null +++ b/config/rootfiles/packages/i586/vdr_dvbapi @@ -0,0 +1,4 @@ +etc/sysconfig/vdr-plugins.d/dvbapi.conf +etc/vdr/plugins/dvbapi +usr/lib/vdr/libvdr-dvbapi.so.2.0.0 +usr/lib/vdr/libvdr-dvbapi.so.2.0.0-sse diff --git a/config/rootfiles/packages/iotop b/config/rootfiles/packages/iotop new file mode 100644 index 0000000..5ebe221 --- /dev/null +++ b/config/rootfiles/packages/iotop @@ -0,0 +1,20 @@ +usr/lib/python2.7/site-packages/iotop +#usr/lib/python2.7/site-packages/iotop-0.6-py2.7.egg-info +#usr/lib/python2.7/site-packages/iotop/__init__.py +#usr/lib/python2.7/site-packages/iotop/__init__.pyc +#usr/lib/python2.7/site-packages/iotop/data.py +#usr/lib/python2.7/site-packages/iotop/data.pyc +#usr/lib/python2.7/site-packages/iotop/genetlink.py +#usr/lib/python2.7/site-packages/iotop/genetlink.pyc +#usr/lib/python2.7/site-packages/iotop/ioprio.py +#usr/lib/python2.7/site-packages/iotop/ioprio.pyc +#usr/lib/python2.7/site-packages/iotop/netlink.py +#usr/lib/python2.7/site-packages/iotop/netlink.pyc +#usr/lib/python2.7/site-packages/iotop/ui.py +#usr/lib/python2.7/site-packages/iotop/ui.pyc +#usr/lib/python2.7/site-packages/iotop/version.py +#usr/lib/python2.7/site-packages/iotop/version.pyc +#usr/lib/python2.7/site-packages/iotop/vmstat.py +#usr/lib/python2.7/site-packages/iotop/vmstat.pyc +usr/sbin/iotop +#usr/share/man/man8/iotop.8 diff --git a/config/rootfiles/packages/linux-pae b/config/rootfiles/packages/linux-pae index 1e65746..242bc96 100644 --- a/config/rootfiles/packages/linux-pae +++ b/config/rootfiles/packages/linux-pae @@ -3,39 +3,36 @@ boot/System.map-ipfire-pae boot/config-KVER-ipfire-pae boot/vmlinuz-KVER-ipfire-pae boot/vmlinuz-ipfire-pae +#lib/modules lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/build #lib/modules/KVER-ipfire-pae/kernel #lib/modules/KVER-ipfire-pae/kernel/arch #lib/modules/KVER-ipfire-pae/kernel/arch/x86 #lib/modules/KVER-ipfire-pae/kernel/arch/x86/crypto -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/crypto/aes-i586.ko -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/crypto/aesni-intel.ko -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/crypto/crc32c-intel.ko -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/crypto/salsa20-i586.ko +#lib/modules/KVER-ipfire-pae/kernel/arch/x86/crypto/crc32-pclmul.ko +#lib/modules/KVER-ipfire-pae/kernel/arch/x86/crypto/glue_helper.ko +#lib/modules/KVER-ipfire-pae/kernel/arch/x86/crypto/serpent-sse2-i586.ko #lib/modules/KVER-ipfire-pae/kernel/arch/x86/crypto/twofish-i586.ko #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/apm.ko -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/mcheck -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/mcheck/mce-inject.ko #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/microcode.ko -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/msr.ko +#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/test_nx.ko #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kvm #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kvm/kvm-amd.ko #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kvm/kvm-intel.ko #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kvm/kvm.ko #lib/modules/KVER-ipfire-pae/kernel/arch/x86/platform -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/platform/scx200 -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/platform/scx200/scx200.ko +#lib/modules/KVER-ipfire-pae/kernel/arch/x86/platform/iris +#lib/modules/KVER-ipfire-pae/kernel/arch/x86/platform/iris/iris.ko #lib/modules/KVER-ipfire-pae/kernel/crypto -#lib/modules/KVER-ipfire-pae/kernel/crypto/aes_generic.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/af_alg.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/algif_hash.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/algif_skcipher.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/ansi_cprng.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/anubis.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/arc4.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/asymmetric_keys +#lib/modules/KVER-ipfire-pae/kernel/crypto/asymmetric_keys/asymmetric_keys.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/asymmetric_keys/public_key.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/asymmetric_keys/rsa.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/asymmetric_keys/x509_key_parser.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/async_tx #lib/modules/KVER-ipfire-pae/kernel/crypto/async_tx/async_memcpy.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/async_tx/async_pq.ko @@ -47,27 +44,22 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/crypto/authencesn.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/blowfish_common.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/blowfish_generic.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/camellia.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/cast5.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/cast6.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/cbc.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/camellia_generic.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/cast5_generic.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/cast6_generic.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/cast_common.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/ccm.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/crc32c.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/cryptd.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/crypto_user.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/ctr.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/cmac.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/crypto_null.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/cts.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/deflate.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/des_generic.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/ecb.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/fcrypt.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/gcm.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/gf128mul.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/ghash-generic.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/khazad.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/lrw.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/lzo.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/md4.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/md5.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/michael_mic.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/pcbc.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/pcrypt.ko @@ -77,11 +69,10 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/crypto/rmd320.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/salsa20_generic.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/seed.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/seqiv.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/serpent.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/serpent_generic.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/sha1_generic.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/sha256_generic.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/sha512_generic.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/tcrypt.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/tea.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/tgr192.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/twofish_common.ko @@ -90,32 +81,21 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/crypto/wp512.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/xcbc.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/xor.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/xts.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/zlib.ko #lib/modules/KVER-ipfire-pae/kernel/drivers #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi -#lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/ac.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/acpi_i2c.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/acpi_ipmi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/acpi_pad.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/battery.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/button.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/container.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/custom_method.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/ec_sys.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/fan.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/pci_slot.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/processor.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/sbs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/sbshc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/thermal.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/video.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/acard-ahci.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/ata/ahci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/ahci_platform.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/ata_generic.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/ata/ata_piix.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/ata/libahci.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/ata/libata.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_acpi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_ali.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_amd.ko @@ -127,7 +107,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_cmd64x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_cs5520.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_cs5530.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_cs5535.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_cs5536.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_cypress.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_efar.ko @@ -153,6 +132,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_pdc2027x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_pdc202xx_old.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_piccolo.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_platform.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_radisys.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_rdc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_rz1000.ko @@ -165,6 +145,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_triflex.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_via.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pdc_adma.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/ata/sata_highbank.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/sata_inic162x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/sata_mv.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/sata_nv.ko @@ -186,7 +167,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/atm/fore_200e.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/atm/he.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/atm/horizon.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/atm/idt77105.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/atm/idt77252.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/atm/iphase.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/atm/lanai.ko @@ -198,59 +178,45 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/base #lib/modules/KVER-ipfire-pae/kernel/drivers/base/regmap #lib/modules/KVER-ipfire-pae/kernel/drivers/base/regmap/regmap-i2c.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/bcma -#lib/modules/KVER-ipfire-pae/kernel/drivers/bcma/bcma.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/block #lib/modules/KVER-ipfire-pae/kernel/drivers/block/DAC960.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/block/aoe -#lib/modules/KVER-ipfire-pae/kernel/drivers/block/aoe/aoe.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/block/cciss.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/block/cpqarray.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/block/cryptoloop.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/block/floppy.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/block/nbd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/block/osdblk.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/block/rbd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/block/mtip32xx +#lib/modules/KVER-ipfire-pae/kernel/drivers/block/mtip32xx/mtip32xx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/block/nvme.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/block/rsxx +#lib/modules/KVER-ipfire-pae/kernel/drivers/block/rsxx/rsxx.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/block/sx8.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/block/umem.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/block/virtio_blk.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/block/xen-blkback +#lib/modules/KVER-ipfire-pae/kernel/drivers/block/xen-blkback/xen-blkback.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/block/xen-blkfront.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/ath3k.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/bcm203x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/bfusb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/bluecard_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/bpa10x.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/bt3c_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/btmrvl.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/btmrvl_sdio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/btsdio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/btuart_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/btusb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/btwilink.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/dtl1_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/hci_uart.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/hci_vhci.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/cdrom -#lib/modules/KVER-ipfire-pae/kernel/drivers/cdrom/cdrom.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/agpgart.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/ali-agp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/amd-k7-agp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/amd64-agp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/ati-agp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/efficeon-agp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/intel-agp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/intel-gtt.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/nvidia-agp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/sis-agp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/sworks-agp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/via-agp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/hangcheck-timer.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/hw_random #lib/modules/KVER-ipfire-pae/kernel/drivers/char/hw_random/amd-rng.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/char/hw_random/atmel-rng.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/char/hw_random/exynos-rng.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/hw_random/geode-rng.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/hw_random/intel-rng.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/hw_random/rng-core.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/hw_random/timeriomem-rng.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/hw_random/via-rng.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/hw_random/virtio-rng.ko @@ -265,90 +231,84 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/char/mwave #lib/modules/KVER-ipfire-pae/kernel/drivers/char/mwave/mwave.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/nsc_gpio.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/nvram.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/pc8736x_gpio.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/pcmcia -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/pcmcia/synclink_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/ppdev.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/scx200_gpio.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/char/sonypi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/toshiba.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/clocksource #lib/modules/KVER-ipfire-pae/kernel/drivers/clocksource/cs5535-clockevt.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/clocksource/scx200_hrt.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/connector -#lib/modules/KVER-ipfire-pae/kernel/drivers/connector/cn.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq -#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/acpi-cpufreq.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/cpufreq-nforce2.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/cpufreq_conservative.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/cpufreq_ondemand.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/cpufreq_powersave.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/cpufreq_userspace.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/e_powersaver.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/gx-suspmod.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/longhaul.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/longrun.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/mperf.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/p4-clockmod.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/pcc-cpufreq.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/powernow-k6.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/powernow-k7.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/powernow-k8.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/speedstep-centrino.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/speedstep-ich.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/speedstep-lib.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/speedstep-smi.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/cpufreq_stats.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/crypto -#lib/modules/KVER-ipfire-pae/kernel/drivers/crypto/geode-aes.ko.off +#lib/modules/KVER-ipfire-pae/kernel/drivers/crypto/geode-aes.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/crypto/padlock-aes.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/crypto/padlock-sha.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/dca #lib/modules/KVER-ipfire-pae/kernel/drivers/dca/dca.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/dma -#lib/modules/KVER-ipfire-pae/kernel/drivers/dma/dmatest.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/dma/intel_mid_dma.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/dma/dw_dmac.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/dma/ioat #lib/modules/KVER-ipfire-pae/kernel/drivers/dma/ioat/ioatdma.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/dma/pch_dma.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/dma/timb_dma.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/edac +#lib/modules/KVER-ipfire-pae/kernel/drivers/edac/e752x_edac.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/edac/edac_core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/edac/edac_mce_amd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/edac/i3000_edac.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/edac/i3200_edac.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/edac/i5000_edac.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/edac/i5100_edac.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/edac/i5400_edac.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/edac/i7300_edac.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/edac/i7core_edac.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/edac/i82975x_edac.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/edac/mce_amd_inj.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/edac/x38_edac.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/firewire #lib/modules/KVER-ipfire-pae/kernel/drivers/firewire/firewire-core.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/firewire/firewire-net.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/firewire/firewire-ohci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/firewire/firewire-sbp2.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/firmware -#lib/modules/KVER-ipfire-pae/kernel/drivers/firmware/dmi-sysfs.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/firmware/dcdbas.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/firmware/dell_rbu.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/firmware/edd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/firmware/iscsi_ibft.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/firmware/sigma.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpio -#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-adp5588.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-cs5535.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-generic.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-it8761e.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-janz-ttl.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-max7300.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-max730x.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-max732x.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-mcp23s08.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-ml-ioh.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-pca953x.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-pcf857x.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-pch.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-rdc321x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-ich.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-sch.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-vx855.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-ts5500.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-viperboard.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/ast +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/ast/ast.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/cirrus +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/cirrus/cirrus.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/drm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/drm_kms_helper.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/drm_usb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/gma500 +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/gma500/gma500_gfx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/i2c +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/i2c/ch7006.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/i2c/sil164.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/i2c/tda998x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/i810 #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/i810/i810.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/i915 #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/i915/i915.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/mga #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/mga/mga.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/mgag200 +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/mgag200/mgag200.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/nouveau #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/nouveau/nouveau.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/qxl +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/qxl/qxl.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/r128 #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/r128/r128.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/radeon @@ -361,68 +321,51 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/tdfx/tdfx.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/ttm #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/ttm/ttm.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/udl +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/udl/udl.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/via #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/via/via.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/vmwgfx #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/vmwgfx/vmwgfx.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/stub -#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/stub/poulsbo.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-a4tech.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-apple.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-axff.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-belkin.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-cherry.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-chicony.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-cypress.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-dr.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-elecom.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-ezkey.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-gaff.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-aureal.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-gyration.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-holtekff.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-kensington.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-keytouch.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-kye.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-lcpower.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-lenovo-tpkbd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-logitech-dj.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-logitech.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-magicmouse.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-microsoft.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-monterey.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-multitouch.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-ntrig.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-ortek.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-petalynx.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-picolcd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-pl.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-primax.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-prodikeys.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-quanta.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat-arvo.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat-common.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat-isku.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat-kone.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat-koneplus.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat-konepure.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat-kovaplus.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat-lua.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat-pyra.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat-savu.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-saitek.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-samsung.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-sjoy.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-sony.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-sensor-hub.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-speedlink.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-sunplus.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-tmff.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-thingm.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-tivo.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-topseed.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-twinhan.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-uclogic.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-wacom.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-waltop.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-wiimote.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-zpff.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-zydacron.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/usbhid -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/usbhid/usbhid.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/i2c-hid +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/i2c-hid/i2c-hid.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hsi +#lib/modules/KVER-ipfire-pae/kernel/drivers/hsi/clients +#lib/modules/KVER-ipfire-pae/kernel/drivers/hsi/clients/hsi_char.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hsi/hsi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hv +#lib/modules/KVER-ipfire-pae/kernel/drivers/hv/hv_balloon.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hv/hv_utils.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hv/hv_vmbus.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon @@ -439,10 +382,12 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/adm9240.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ads1015.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ads7828.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/adt7410.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/adt7411.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/adt7462.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/adt7470.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/adt7475.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/adt7x10.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/amc6821.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/applesmc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/asb100.ko @@ -454,7 +399,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ds1621.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ds620.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/emc1403.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/emc2103.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/emc6w201.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/f71805f.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/f71882fg.ko @@ -464,14 +408,14 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/g760a.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/gl518sm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/gl520sm.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/gpio-fan.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/hih6130.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/hwmon-vid.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/hwmon.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/i5k_amb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ibmaem.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ibmpex.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ina209.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ina2xx.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/it87.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/jc42.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/k10temp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/k8temp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lineage-pem.ko @@ -487,6 +431,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lm90.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lm92.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lm93.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lm95234.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lm95241.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lm95245.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ltc4151.ko @@ -496,9 +441,13 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/max16065.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/max1619.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/max1668.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/max197.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/max6639.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/max6642.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/max6650.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/max6697.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/mcp3021.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/nct6775.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ntc_thermistor.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pc87360.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pc87427.ko @@ -506,7 +455,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/adm1275.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/lm25066.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/ltc2978.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/max16064.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/max34440.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/max8688.ko @@ -514,14 +462,12 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/pmbus_core.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/ucd9000.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/ucd9200.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/zl6100.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/sch5627.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/sch5636.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/sch56xx-common.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/sht15.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/sht21.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/sis5595.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/smm665.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/smsc47b397.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/smsc47m1.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/smsc47m192.ko @@ -553,20 +499,17 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-amd756-s4882.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-amd756.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-amd8111.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-cbus-gpio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-designware-core.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-designware-pci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-designware-platform.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-diolan-u2c.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-eg20t.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-gpio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-i801.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-intel-mid.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-isch.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-ismt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-nforce2-s4985.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-nforce2.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-ocores.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-parport-light.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-parport.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-pca-isa.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-pca-platform.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-piix4.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-scmi.ko @@ -574,67 +517,55 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-sis5595.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-sis630.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-sis96x.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-stub.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-taos-evm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-tiny-usb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-via.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-viapro.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-xiic.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-viperboard.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/scx200_acb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/i2c-core.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/i2c-dev.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/i2c-mux.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/i2c-smbus.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/muxes -#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/muxes/gpio-i2cmux.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/muxes/pca9541.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/muxes/pca954x.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/ieee802154 -#lib/modules/KVER-ipfire-pae/kernel/drivers/ieee802154/fakehard.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/iio +#lib/modules/KVER-ipfire-pae/kernel/drivers/iio/common +#lib/modules/KVER-ipfire-pae/kernel/drivers/iio/common/hid-sensors +#lib/modules/KVER-ipfire-pae/kernel/drivers/iio/common/hid-sensors/hid-sensor-iio-common.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/iio/common/hid-sensors/hid-sensor-trigger.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/iio/industrialio.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/iio/kfifo_buf.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/ff-memless.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/input-polldev.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/adp5588-keys.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/adp5589-keys.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/gpio_keys.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/gpio_keys_polled.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/lkkbd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/lm8323.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/matrix_keypad.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/max7359_keypad.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/mcs_touchkey.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/mpr121_touchkey.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/newtonkbd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/opencores-kbd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/qt1070.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/qt2160.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/stowaway.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/sunkbd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/tca6416-keypad.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/xtkbd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/lm8333.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/matrix-keymap.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/ad714x-i2c.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/ad714x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/apanel.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/ati_remote2.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/bma150.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/atlas_btns.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/cm109.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/keyspan_remote.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/pcf50633-input.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/pcf8574_keypad.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/pcspkr.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/powermate.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/retu-pwrbutton.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/rotary_encoder.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/xen-kbdfront.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/uinput.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/yealink.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/mouse +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/mouse/appletouch.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/mouse/bcm5974.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/mouse/cyapa.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/mouse/psmouse.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/mouse/sermouse.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/mouse/synaptics_i2c.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/mouse/synaptics_usb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/mouse/vsxxxaa.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/serio #lib/modules/KVER-ipfire-pae/kernel/drivers/input/serio/altera_ps2.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/serio/ps2mult.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/serio/arc_ps2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/serio/serio_raw.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/sparse-keymap.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn -#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/act2000 -#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/act2000/act2000.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/capi #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/capi/capi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/capi/capidrv.ko @@ -648,14 +579,10 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/gigaset/usb_gigaset.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/avm -#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/avm/avm_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/avm/b1.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/avm/b1dma.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/avm/b1isa.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/avm/b1pci.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/avm/c4.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/avm/t1isa.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/avm/t1pci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/eicon #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/eicon/diva_idi.ko @@ -675,77 +602,72 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/mISDN/speedfax.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/mISDN/w6692.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hisax -#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hisax/avma1_cs.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hisax/elsa_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hisax/hfc4s8s_l1.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hisax/hfc_usb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hisax/hisax.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hisax/hisax_fcpcipnp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hisax/hisax_isac.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hisax/hisax_st5481.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hisax/sedlbauer_cs.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hisax/teles_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hysdn #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hysdn/hysdn.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/i4l #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/i4l/isdn.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/i4l/isdn_bsdcomp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/i4l/isdnhdlc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/icn -#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/icn/icn.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/mISDN #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/mISDN/l1oip.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/mISDN/mISDN_core.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/mISDN/mISDN_dsp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/pcbit -#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/pcbit/pcbit.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/sc -#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/sc/sc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/dell-led.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-bd2802.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-blinkm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-clevo-mail.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-gpio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-lm3530.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-lm3533.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-lm355x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-lm3642.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-lp3944.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-lp5521.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-lp5523.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-lp5562.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-lp55xx-common.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-lt3593.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-net48xx.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-net5501.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-ot200.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-pca9532.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-pca955x.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-regulator.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-pca9633.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-ss4200.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-wrap.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/ledtrig-backlight.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/ledtrig-default-on.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/ledtrig-gpio.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/ledtrig-heartbeat.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/ledtrig-netdev.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/ledtrig-timer.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/lguest -#lib/modules/KVER-ipfire-pae/kernel/drivers/lguest/lg.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-tca6507.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/trigger +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/trigger/ledtrig-backlight.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/trigger/ledtrig-camera.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/trigger/ledtrig-default-on.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/trigger/ledtrig-gpio.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/trigger/ledtrig-heartbeat.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/trigger/ledtrig-netdev.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/trigger/ledtrig-oneshot.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/trigger/ledtrig-timer.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/trigger/ledtrig-transient.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md +#lib/modules/KVER-ipfire-pae/kernel/drivers/md/bcache +#lib/modules/KVER-ipfire-pae/kernel/drivers/md/bcache/bcache.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-bio-prison.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-bufio.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-cache-cleaner.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-cache-mq.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-cache.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-crypt.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-delay.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-flakey.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-log-userspace.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-log.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-mirror.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-mod.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-multipath.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-queue-length.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-raid.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-region-hash.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-round-robin.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-service-time.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-snapshot.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-thin-pool.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-zero.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-verity.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/md/faulty.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/linear.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/md/md-mod.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/multipath.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/persistent-data #lib/modules/KVER-ipfire-pae/kernel/drivers/md/persistent-data/dm-persistent-data.ko @@ -755,31 +677,272 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/md/raid456.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media #lib/modules/KVER-ipfire-pae/kernel/drivers/media/common -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/mc44s803.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/mt20xx.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tda18271.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tda827x.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tda8290.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tda9887.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tea5761.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tea5767.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tuner-simple.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tuner-types.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tuner-xc2028.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/xc4000.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/xc5000.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb/dvb-core -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb/dvb-core/dvb-core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/b2c2 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/b2c2/b2c2-flexcop.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/btcx-risc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/cx2341x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/cypress_firmware.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/saa7146 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/saa7146/saa7146.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/saa7146/saa7146_vv.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/siano +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/siano/smsdvb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/siano/smsmdtv.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tveeprom.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-core +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-core/dvb-core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/a8293.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/af9013.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/af9033.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/atbm8830.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/au8522_common.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/au8522_decoder.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/au8522_dig.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/bcm3510.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/cx22700.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/cx22702.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/cx24110.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/cx24113.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/cx24116.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/cx24123.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/cxd2820r.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/dib0070.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/dib0090.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/dib3000mb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/dib3000mc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/dib7000m.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/dib7000p.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/dib8000.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/dibx000_common.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/drxd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/drxk.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/ds3000.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/dvb-pll.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/ec100.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/isl6405.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/isl6421.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/isl6423.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/it913x-fe.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/itd1000.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/ix2505v.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/l64781.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/lg2160.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/lgdt3305.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/lgdt330x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/lgs8gxx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/lnbp21.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/lnbp22.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/m88dc2800.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/m88ds3103.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/m88rs2000.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/mb86a16.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/mb86a20s.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/mt312.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/mt352.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/nxt200x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/nxt6000.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/or51132.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/or51211.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/rtl2830.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/rtl2832.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/s5h1409.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/s5h1411.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/s5h1420.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/s921.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/si21xx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/sp8870.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/sp887x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/stb0899.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/stb6000.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/stb6100.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/stv0288.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/stv0297.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/stv0299.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/stv0367.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/stv0900.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/stv090x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/stv6110.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/stv6110x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/tda10021.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/tda10023.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/tda10048.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/tda1004x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/tda10071.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/tda10086.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/tda18271c2dd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/tda665x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/tda8083.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/tda8261.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/tda826x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/ts2020.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/tua6100.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/ves1820.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/ves1x93.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/zl10036.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/zl10039.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/zl10353.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/firewire +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/firewire/firedtv.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/adv7170.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/adv7175.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/adv7180.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/bt819.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/bt856.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/bt866.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/cs5345.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/cs53l32a.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/cx25840 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/cx25840/cx25840.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/ir-kbd-i2c.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/ks0127.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/m52790.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/msp3400.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/mt9v011.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/ov7670.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/saa6588.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/saa7110.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/saa7115.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/saa7127.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/saa717x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/saa7185.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/soc_camera +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/soc_camera/imx074.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/soc_camera/mt9m001.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/soc_camera/mt9m111.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/soc_camera/mt9t031.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/soc_camera/mt9t112.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/soc_camera/mt9v022.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/soc_camera/ov2640.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/soc_camera/ov5642.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/soc_camera/ov6650.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/soc_camera/ov772x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/soc_camera/ov9640.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/soc_camera/ov9740.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/soc_camera/rj54n1cb0c.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/soc_camera/tw9910.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/tda7432.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/tda9840.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/tea6415c.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/tea6420.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/tvaudio.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/tvp5150.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/upd64031a.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/upd64083.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/vp27smpx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/vpx3220.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/wm8739.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/wm8775.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/media.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/b2c2 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/b2c2/b2c2-flexcop-pci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/bt8xx +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/bt8xx/bt878.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/bt8xx/bttv.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/bt8xx/dst.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/bt8xx/dst_ca.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/bt8xx/dvb-bt8xx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/cx18 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/cx18/cx18-alsa.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/cx18/cx18.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/cx23885 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/cx23885/altera-ci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/cx23885/cx23885.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/cx25821 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/cx25821/cx25821-alsa.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/cx25821/cx25821.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/cx88 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/cx88/cx88-alsa.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/cx88/cx88-blackbird.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/cx88/cx88-dvb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/cx88/cx88-vp3054-i2c.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/cx88/cx8800.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/cx88/cx8802.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/cx88/cx88xx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/ddbridge +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/ddbridge/ddbridge.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/dm1105 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/dm1105/dm1105.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/ivtv +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/ivtv/ivtv-alsa.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/ivtv/ivtv.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/ivtv/ivtvfb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/mantis +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/mantis/hopper.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/mantis/mantis.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/mantis/mantis_core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/meye +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/meye/meye.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/ngene +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/ngene/ngene.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/pluto2 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/pluto2/pluto2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/pt1 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/pt1/earth-pt1.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/saa7134 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/saa7134/saa6752hs.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/saa7134/saa7134-alsa.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/saa7134/saa7134-dvb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/saa7134/saa7134-empress.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/saa7134/saa7134.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/saa7146 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/saa7146/hexium_gemini.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/saa7146/hexium_orion.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/saa7146/mxb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/saa7164 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/saa7164/saa7164.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/ttpci +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/ttpci/budget-av.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/ttpci/budget-ci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/ttpci/budget-core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/ttpci/budget-patch.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/ttpci/budget.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/ttpci/dvb-ttpci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/ttpci/ttpci-eeprom.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/zoran +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/zoran/videocodec.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/zoran/zr36016.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/zoran/zr36050.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/zoran/zr36060.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/zoran/zr36067.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/platform +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/platform/m2m-deinterlace.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/platform/marvell-ccic +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/platform/marvell-ccic/cafe_ccic.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/platform/sh_veu.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/platform/soc_camera +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/platform/soc_camera/sh_mobile_ceu_camera.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/platform/soc_camera/sh_mobile_csi2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/platform/soc_camera/soc_camera.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/platform/soc_camera/soc_camera_platform.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/platform/soc_camera/soc_mediabus.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/platform/timblogiw.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/ati_remote.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/ene_ir.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/fintek-cir.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/gpio-ir-recv.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/iguanair.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/imon.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/ir-jvc-decoder.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/ir-lirc-codec.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/ir-mce_kbd-decoder.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/ir-nec-decoder.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/ir-rc5-decoder.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/ir-rc5-sz-decoder.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/ir-rc6-decoder.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/ir-sanyo-decoder.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/ir-sony-decoder.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/ite-cir.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-adstech-dvb-t-pci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-alink-dtu-m.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-anysee.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-apac-viewcomp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-asus-pc39.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-asus-ps3-100.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-ati-tv-wonder-hd-600.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-ati-x10.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-avermedia-a16d.ko @@ -803,6 +966,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-dm1105-nec.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvb-t.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvbt-pro.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-dvbsky.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-em-terratec.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-encore-enltv-fm53.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-encore-enltv.ko @@ -819,13 +983,18 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-imon-mce.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-imon-pad.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-iodata-bctv7e.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-it913x-v1.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-it913x-v2.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-kaiomy.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-kworld-315u.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-kworld-pc150u.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-kworld-plus-tv-analog.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-leadtek-y04g0051.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-lirc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-lme2510.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-manli.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-medion-x10-digitainer.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-medion-x10-or2x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-medion-x10.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-msi-digivox-ii.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-msi-digivox-iii.ko @@ -849,6 +1018,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-pv951.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-rc6-mce.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-real-audio-220-32-keys.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-reddo.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-snapstream-firefly.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-streamzap.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-tbs-nec.ko @@ -858,6 +1028,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-terratec-slim.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-tevii-nec.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-tivo.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-total-media-in-hand-02.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-total-media-in-hand.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-trekstor.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-tt-1500.ko @@ -868,12 +1039,203 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-winfast-usbii-deluxe.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-winfast.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/lirc_dev.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/mceusb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/nuvoton-cir.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/rc-core.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/video -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/video/ir-kbd-i2c.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/video/v4l2-common.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/video/v4l2-int-device.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/video/videodev.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/rc-loopback.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/redrat3.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/streamzap.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/ttusbir.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/winbond-cir.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/e4000.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/fc0011.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/fc0012.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/fc0013.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/fc2580.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/max2165.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/mc44s803.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/mt2060.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/mt2063.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/mt20xx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/mt2131.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/mt2266.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/mxl5005s.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/mxl5007t.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/qt1010.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/r820t.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/tda18212.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/tda18218.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/tda18271.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/tda827x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/tda8290.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/tda9887.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/tua9001.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/tuner-simple.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/tuner-types.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/tuner-xc2028.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/tuner_it913x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/xc4000.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/xc5000.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/au0828 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/au0828/au0828.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/b2c2 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/b2c2/b2c2-flexcop-usb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/cpia2 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/cpia2/cpia2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/cx231xx +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/cx231xx/cx231xx-alsa.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/cx231xx/cx231xx-dvb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/cx231xx/cx231xx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb-v2 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-af9015.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-af9035.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-anysee.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-au6610.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-az6007.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-ce6230.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-dvbsky.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-ec168.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-gl861.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-it913x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-lmedm04.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-mxl111sf.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-rtl28xxu.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb-v2/dvb_usb_v2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb-v2/mxl111sf-demod.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb-v2/mxl111sf-tuner.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-a800.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-af9005-remote.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-af9005.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-az6027.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-cinergyT2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-cxusb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-dib0700.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-dibusb-common.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-dibusb-mb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-digitv.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-dtt200u.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-dtv5100.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-dw2102.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-friio.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-gp8psk.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-m920x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-nova-t-usb2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-opera.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-pctv452e.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-ttusb2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-umt-010.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-vp702x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-vp7045.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/em28xx +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/em28xx/em28xx-alsa.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/em28xx/em28xx-dvb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/em28xx/em28xx-rc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/em28xx/em28xx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gl860 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gl860/gspca_gl860.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_benq.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_conex.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_cpia1.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_etoms.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_finepix.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_jeilinj.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_jl2005bcd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_kinect.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_konica.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_main.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_mars.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_mr97310a.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_nw80x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_ov519.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_ov534.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_ov534_9.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_pac207.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_pac7302.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_pac7311.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_se401.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_sn9c2028.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_sn9c20x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_sonixb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_sonixj.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_spca1528.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_spca500.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_spca501.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_spca505.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_spca506.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_spca508.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_spca561.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_sq905.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_sq905c.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_sq930x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_stk014.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_stv0680.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_sunplus.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_t613.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_topro.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_tv8532.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_vc032x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_vicam.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_xirlink_cit.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_zc3xx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/m5602 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/m5602/gspca_m5602.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/stv06xx +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/stv06xx/gspca_stv06xx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/hdpvr +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/hdpvr/hdpvr.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/pvrusb2 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/pvrusb2/pvrusb2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/pwc +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/pwc/pwc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/s2255 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/s2255/s2255drv.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/siano +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/siano/smsusb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/sn9c102 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/sn9c102/sn9c102.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/stk1160 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/stk1160/stk1160.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/stkwebcam +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/stkwebcam/stkwebcam.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/tlg2300 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/tlg2300/poseidon.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/tm6000 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/tm6000/tm6000-alsa.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/tm6000/tm6000-dvb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/tm6000/tm6000.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/ttusb-budget +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/ttusb-dec +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/ttusb-dec/ttusb_dec.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/ttusb-dec/ttusbdecfe.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/usbvision +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/usbvision/usbvision.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/uvc +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/uvc/uvcvideo.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/zr364xx +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/zr364xx/zr364xx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/v4l2-core +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/v4l2-core/tuner.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/v4l2-core/v4l2-common.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/v4l2-core/v4l2-int-device.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/v4l2-core/v4l2-mem2mem.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/v4l2-core/videobuf-core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/v4l2-core/videobuf-dma-contig.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/v4l2-core/videobuf-dma-sg.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/v4l2-core/videobuf-dvb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/v4l2-core/videobuf-vmalloc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/v4l2-core/videobuf2-core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/v4l2-core/videobuf2-dma-contig.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/v4l2-core/videobuf2-memops.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/v4l2-core/videobuf2-vmalloc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/v4l2-core/videodev.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/memstick #lib/modules/KVER-ipfire-pae/kernel/drivers/memstick/core #lib/modules/KVER-ipfire-pae/kernel/drivers/memstick/core/memstick.ko @@ -881,6 +1243,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/memstick/host #lib/modules/KVER-ipfire-pae/kernel/drivers/memstick/host/jmb38x_ms.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/memstick/host/r592.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/memstick/host/rtsx_pci_ms.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/memstick/host/tifm_ms.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/message #lib/modules/KVER-ipfire-pae/kernel/drivers/message/fusion @@ -890,38 +1253,35 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/message/fusion/mptsas.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/message/fusion/mptscsih.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/message/fusion/mptspi.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/message/i2o +#lib/modules/KVER-ipfire-pae/kernel/drivers/message/i2o/i2o_block.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/message/i2o/i2o_bus.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/message/i2o/i2o_config.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/message/i2o/i2o_core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/message/i2o/i2o_proc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/message/i2o/i2o_scsi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mfd #lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/cs5535-mfd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/htc-pasic3.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/janz-cmodio.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/lm3533-core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/lm3533-ctrlbank.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/lpc_ich.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/lpc_sch.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/mfd-core.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/pcf50633-adc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/pcf50633-gpio.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/pcf50633.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/rdc321x-southbridge.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/retu-mfd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/rtsx_pci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/sm501.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/timberdale.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/tps6105x.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/tps65010.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/tps6507x.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/ucb1400_core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/viperboard.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/vx855.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/wl1273-core.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/wm8400-core.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc -#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/apds9802als.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/apds990x.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/bh1770glc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/bh1780gli.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/bmp085.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/c2port -#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/c2port/c2port-duramar2150.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/c2port/core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/altera-stapl +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/altera-stapl/altera-stapl.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/bmp085-i2c.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/cb710 #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/cb710/cb710.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/cs5535-mfgpt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/ds1682.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/dummy-irq.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/eeprom #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/eeprom/at24.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/eeprom/eeprom.ko @@ -929,76 +1289,48 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/eeprom/max6875.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/enclosure.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/fsa9480.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/hmc6352.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/hpilo.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/ibmasm +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/ibmasm/ibmasm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/ics932s401.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/isl29003.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/isl29020.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/iwmc3200top -#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/iwmc3200top/iwmc3200top.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/lis3lv02d #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/lis3lv02d/lis3lv02d.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/lis3lv02d/lis3lv02d_i2c.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/mei +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/mei/mei-me.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/mei/mei.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/pch_phub.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/ti-st #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/ti-st/st_drv.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/tifm_7xx1.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/tifm_core.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/tsl2550.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/vmw_balloon.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/vmw_vmci +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/vmw_vmci/vmw_vmci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/card #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/card/mmc_block.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/card/mmc_test.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/card/sdio_uart.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/core #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/core/mmc_core.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/cb710-mmc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/rtsx_pci_sdmmc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/sdhci-acpi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/sdhci-pci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/sdhci-pltfm.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/sdhci-pxav2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/sdhci-pxav3.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/sdhci.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/sdricoh_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/tifm_sd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/ushc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/via-sdmmc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/vub300.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/wbsd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/ar7part.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/chips -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/chips/chipreg.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/lpddr -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/lpddr/lpddr_cmds.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/lpddr/qinfo_probe.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/maps -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/maps/physmap.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/mtd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/mtd_blkdevs.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/mtdblock.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/mtdchar.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/nand -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/nand/nand_ecc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/sm_ftl.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/tests -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/tests/mtd_nandecctest.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/tests/mtd_oobtest.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/tests/mtd_pagetest.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/tests/mtd_readtest.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/tests/mtd_speedtest.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/tests/mtd_stresstest.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/tests/mtd_subpagetest.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/tests/mtd_torturetest.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/ubi -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/ubi/ubi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net #lib/modules/KVER-ipfire-pae/kernel/drivers/net/bonding #lib/modules/KVER-ipfire-pae/kernel/drivers/net/bonding/bonding.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/dummy.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/eql.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/3com -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/3com/3c501.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/3com/3c509.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/3com/3c515.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/3com/3c574_cs.ko @@ -1006,24 +1338,13 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/3com/3c59x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/3com/typhoon.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390 -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/3c503.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/8390.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/8390p.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/ac3200.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/axnet_cs.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/e2100.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/es3210.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/hp-plus.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/hp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/lne390.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/ne.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/ne2.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/ne2k-pci.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/ne3210.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/pcnet_cs.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/smc-mca.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/smc-ultra.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/smc-ultra32.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/wd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/adaptec #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/adaptec/starfire.ko @@ -1031,12 +1352,13 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/alteon/acenic.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/amd #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/amd/amd8111e.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/amd/depca.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/amd/lance.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/amd/ni65.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/amd/nmclan_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/amd/pcnet32.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/atheros +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/atheros/alx +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/atheros/alx/alx.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/atheros/atl1c #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/atheros/atl1c/atl1c.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/atheros/atl1e @@ -1054,6 +1376,11 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/brocade #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/brocade/bna #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/brocade/bna/bna.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/cadence +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/cadence/at91_ether.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/cadence/macb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/calxeda +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/calxeda/xgmac.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/chelsio #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/chelsio/cxgb #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/chelsio/cxgb/cxgb.ko @@ -1069,7 +1396,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/cisco/enic #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/cisco/enic/enic.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec/ewrk3.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec/tulip #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec/tulip/de2104x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec/tulip/de4x5.ko @@ -1079,8 +1405,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec/tulip/winbond-840.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec/tulip/xircom_cb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dlink -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dlink/de600.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dlink/de620.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dlink/dl2k.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dlink/sundance.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dnet.ko @@ -1090,22 +1414,9 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/ethoc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/fealnx.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/fujitsu -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/fujitsu/at1700.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/fujitsu/eth16i.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/fujitsu/fmvj18x_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/hp #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/hp/hp100.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/3c505.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/3c507.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/3c523.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/3c527.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/82596.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/eepro.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/eexpress.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/lp486e.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/ni52.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/znet.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/icplus #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/icplus/ipg.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel @@ -1126,6 +1437,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/ixgbevf/ixgbevf.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/jme.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/marvell +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/marvell/mvmdio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/marvell/skge.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/marvell/sky2.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/mellanox @@ -1140,7 +1452,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/myricom/myri10ge #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/myricom/myri10ge/myri10ge.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/natsemi -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/natsemi/ibmlana.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/natsemi/natsemi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/natsemi/ns83820.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/neterion @@ -1152,9 +1463,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/oki-semi #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/oki-semi/pch_gbe #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/packetengines -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/packetengines/hamachi.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/packetengines/yellowfin.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/qlogic #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/qlogic/netxen #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/qlogic/netxen/netxen_nic.ko @@ -1170,8 +1478,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/realtek/8139too.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/realtek/atp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/realtek/r8169.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/seeq -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/seeq/seeq8005.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/sfc #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/sfc/sfc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/silan @@ -1199,41 +1505,32 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/via #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/via/via-rhine.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/via/via-velocity.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/wiznet +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/wiznet/w5100.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/wiznet/w5300.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/xircom #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/xircom/xirc2ps_cs.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/hyperv +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/hyperv/hv_netvsc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ifb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/imq.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/ali-ircc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/donauboe.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/irda-usb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/irtty-sir.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/kingsun-sir.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/ks959-sir.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/ksdazzle-sir.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/mcs7780.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/nsc-ircc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/sir-dev.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/smsc-ircc2.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/stir4200.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/via-ircc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/vlsi_ir.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/w83977af_ir.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/macvlan.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/macvtap.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/mdio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/mii.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/netconsole.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/amd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/at803x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/bcm87xx.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/broadcom.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/cicada.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/davicom.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/dp83640.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/et1011c.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/icplus.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/lxt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/marvell.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/mdio-bitbang.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/mdio-gpio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/micrel.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/national.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/qsemi.ko @@ -1251,17 +1548,17 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp/pppoe.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp/pppox.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp/pptp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/sb1000.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/slip #lib/modules/KVER-ipfire-pae/kernel/drivers/net/slip/slhc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/slip/slip.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/sungem_phy.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/tun.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/asix.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/ax88179_178a.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/catc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/cdc_eem.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/cdc_ether.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/cdc_mbim.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/cdc_ncm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/cdc_subset.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/cx82310_eth.ko @@ -1269,6 +1566,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/gl620a.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/hso.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/int51x1.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/ipheth.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/kalmia.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/kaweth.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/lg-vl600.ko @@ -1276,6 +1574,8 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/net1080.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/pegasus.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/plusb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/qmi_wwan.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/r8152.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/rndis_host.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/rtl8150.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/sierra_net.ko @@ -1287,45 +1587,135 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/net/virtio_net.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/vmxnet3 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/vmxnet3/vmxnet3.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/c101.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/cosa.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/dlci.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/dscc4.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/farsync.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/hdlc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/hdlc_cisco.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/hdlc_fr.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/hdlc_ppp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/hdlc_raw.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/hdlc_raw_eth.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/hostess_sv11.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/lmc -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/lmc/lmc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/n2.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/pc300too.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/pci200syn.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/sbni.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/sdla.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/sealevel.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/wanxl.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/z85230.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/vxlan.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/adm8211.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/airo.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/airo_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/at76c50x-usb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/ar5523 +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/ar5523/ar5523.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/ath.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/ath5k +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/ath5k/ath5k.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/ath9k +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/ath9k/ath9k.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/ath9k/ath9k_common.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/ath9k/ath9k_htc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/ath9k/ath9k_hw.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/carl9170 +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/carl9170/carl9170.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/wil6210 +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/wil6210/wil6210.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/atmel.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/atmel_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/atmel_pci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/b43 +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/b43/b43.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/b43legacy +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/b43legacy/b43legacy.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/brcm80211 +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/brcm80211/brcmfmac +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/brcm80211/brcmfmac/brcmfmac.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/brcm80211/brcmutil +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/brcm80211/brcmutil/brcmutil.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/hostap #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/hostap/hostap.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/hostap/hostap_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/hostap/hostap_pci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/hostap/hostap_plx.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ray_cs.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ipw2x00 +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ipw2x00/ipw2100.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ipw2x00/ipw2200.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ipw2x00/libipw.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/iwlegacy +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/iwlegacy/iwl3945.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/iwlegacy/iwl4965.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/iwlegacy/iwlegacy.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/iwlwifi +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/iwlwifi/dvm +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/iwlwifi/dvm/iwldvm.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/iwlwifi/iwlwifi.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/iwlwifi/mvm +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/iwlwifi/mvm/iwlmvm.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas/libertas.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas/libertas_cs.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas/libertas_sdio.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas/usb8xxx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas_tf +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas_tf/libertas_tf.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas_tf/libertas_tf_usb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/mac80211_hwsim.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/mwifiex +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/mwifiex/mwifiex.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/mwifiex/mwifiex_pcie.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/mwifiex/mwifiex_sdio.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/mwifiex/mwifiex_usb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/mwl8k.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/orinoco +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/orinoco/orinoco.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/orinoco/orinoco_cs.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/orinoco/orinoco_nortel.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/orinoco/orinoco_plx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/orinoco/orinoco_tmd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/orinoco/orinoco_usb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/orinoco/spectrum_cs.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/p54 +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/p54/p54common.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/p54/p54pci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/p54/p54usb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rndis_wlan.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00 +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt2400pci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt2500pci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt2500usb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt2800lib.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt2800pci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt2800usb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt2x00lib.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt2x00mmio.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt2x00pci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt2x00usb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt61pci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt73usb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtl818x +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtl818x/rtl8180 +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtl818x/rtl8180/rtl8180.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtl818x/rtl8187 +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtl818x/rtl8187/rtl8187.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtlwifi +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtlwifi/rtl8188ee +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtlwifi/rtl8188ee/rtl8188ee.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtlwifi/rtl8192c +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtlwifi/rtl8192ce +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtlwifi/rtl8192ce/rtl8192ce.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtlwifi/rtl8192cu +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtlwifi/rtl8192cu/rtl8192cu.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtlwifi/rtl8192de +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtlwifi/rtl8192de/rtl8192de.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtlwifi/rtl8192se +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtlwifi/rtl8192se/rtl8192se.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtlwifi/rtl8723ae +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtlwifi/rtl8723ae/rtl8723ae.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtlwifi/rtlwifi.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ti +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ti/wl1251 +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ti/wl1251/wl1251.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ti/wl1251/wl1251_sdio.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ti/wl12xx +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ti/wl12xx/wl12xx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ti/wl18xx +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ti/wl18xx/wl18xx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ti/wlcore +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ti/wlcore/wlcore.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ti/wlcore/wlcore_sdio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/wl3501_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/zd1201.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/zd1211rw +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/zd1211rw/zd1211rw.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/xen-netback #lib/modules/KVER-ipfire-pae/kernel/drivers/net/xen-netback/xen-netback.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/xen-netfront.ko @@ -1336,7 +1726,12 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/parport/parport_pc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/parport/parport_serial.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/pci -#lib/modules/KVER-ipfire-pae/kernel/drivers/pci/pci-stub.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/pci/hotplug +#lib/modules/KVER-ipfire-pae/kernel/drivers/pci/hotplug/acpiphp_ibm.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/pci/pcie +#lib/modules/KVER-ipfire-pae/kernel/drivers/pci/pcie/aer +#lib/modules/KVER-ipfire-pae/kernel/drivers/pci/pcie/aer/aer_inject.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/pci/xen-pcifront.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/pcmcia #lib/modules/KVER-ipfire-pae/kernel/drivers/pcmcia/i82092.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/pcmcia/i82365.ko @@ -1350,25 +1745,30 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86 #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/acer-wmi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/acerhdf.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/amilo-rfkill.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/asus-laptop.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/asus_acpi.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/asus-nb-wmi.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/asus-wmi.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/chromeos_laptop.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/classmate-laptop.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/compal-laptop.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/dell-laptop.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/dell-wmi-aio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/dell-wmi.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/eeepc-laptop.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/eeepc-wmi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/fujitsu-laptop.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/hdaps.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/hp-wmi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/hp_accel.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/ibm_rtl.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/ideapad-laptop.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/intel_ips.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/intel_menlow.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/intel_oaktrail.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/msi-laptop.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/msi-wmi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/mxm-wmi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/panasonic-laptop.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/pvpanic.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/samsung-laptop.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/samsung-q10.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/sony-laptop.ko @@ -1378,14 +1778,13 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/toshiba_acpi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/toshiba_bluetooth.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/wmi.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/xo15-ebook.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/power +#lib/modules/KVER-ipfire-pae/kernel/drivers/power/generic-adc-battery.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/pps #lib/modules/KVER-ipfire-pae/kernel/drivers/pps/pps_core.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ptp #lib/modules/KVER-ipfire-pae/kernel/drivers/ptp/ptp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/regulator -#lib/modules/KVER-ipfire-pae/kernel/drivers/regulator/fixed.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/regulator/gpio-regulator.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/ptp/ptp_pch.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-bq32k.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-bq4802.ko @@ -1396,18 +1795,19 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-ds1553.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-ds1672.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-ds1742.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-ds2404.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-ds3232.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-em3027.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-fm3130.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-hid-sensor-time.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-isl12022.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-isl1208.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-m41t80.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-m48t35.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-m48t59.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-m48t86.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-max6900.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-msm6242.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-pcf50633.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-pcf8523.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-pcf8563.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-pcf8583.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-rp5c01.ko @@ -1415,7 +1815,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-rv3029c2.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-rx8025.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-rx8581.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-s35390a.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-stk17ta8.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-v3020.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-x1205.ko @@ -1426,8 +1825,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/53c700.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/BusLogic.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/NCR53c406a.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/NCR_D700.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/NCR_Q720_mod.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/a100u2w.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/aacraid #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/aacraid/aacraid.ko @@ -1452,6 +1849,8 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/bnx2i #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/bnx2i/bnx2i.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/ch.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/csiostor +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/csiostor/csiostor.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/cxgbi #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/cxgbi/cxgb3i #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/cxgbi/cxgb3i/cxgb3i.ko @@ -1460,7 +1859,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/cxgbi/libcxgbi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/dc395x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/device_handler -#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/device_handler/scsi_dh.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/device_handler/scsi_dh_alua.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/device_handler/scsi_dh_emc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/device_handler/scsi_dh_hp_sw.ko @@ -1472,7 +1870,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/fcoe #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/fcoe/fcoe.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/fcoe/libfcoe.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/fd_mcs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/fdomain.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/fnic #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/fnic/fnic.ko @@ -1481,7 +1878,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/gdth.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/hpsa.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/hptiop.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/ibmmca.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/hv_storvsc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/imm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/in2000.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/initio.ko @@ -1506,6 +1903,8 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/megaraid/megaraid_sas.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/mpt2sas #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/mpt2sas/mpt2sas.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/mpt3sas +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/mpt3sas/mpt3sas.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/mvsas #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/mvsas/mvsas.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/mvumi.ko @@ -1513,6 +1912,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/osd #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/osd/libosd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/osd/osd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/osst.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/pas16.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/pcmcia #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/pcmcia/aha152x_cs.ko @@ -1521,7 +1921,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/pcmcia/qlogic_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/pcmcia/sym53c500_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/pm8001 -#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/pm8001/pm8001.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/pm8001/pm80xx.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/pmcraid.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/ppa.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/qla1280.ko @@ -1532,18 +1932,15 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/qlogicfas.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/qlogicfas408.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/raid_class.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/scsi_mod.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/scsi_tgt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/scsi_transport_fc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/scsi_transport_iscsi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/scsi_transport_sas.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/scsi_transport_spi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/scsi_transport_srp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/scsi_wait_scan.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/sd_mod.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/ses.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/sg.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/sim710.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/sr_mod.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/st.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/stex.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/sym53c416.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/sym53c8xx_2 @@ -1551,55 +1948,53 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/t128.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/tmscsim.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/u14-34f.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/ufs +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/ufs/ufshcd-pci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/ufs/ufshcd-pltfrm.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/ufs/ufshcd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/ultrastor.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/virtio_scsi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/vmw_pvscsi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/wd7000.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ssb #lib/modules/KVER-ipfire-pae/kernel/drivers/ssb/ssb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/staging +#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/echo +#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/echo/echo.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/et131x #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/et131x/et131x.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/hv -#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/hv/hv_mouse.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/hv/hv_netvsc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/hv/hv_storvsc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/mei -#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/mei/mei.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/phison -#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/phison/phison.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/rts5139 +#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/rts5139/rts5139.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/slicoss #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/slicoss/slicoss.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/usbip #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/usbip/usbip-core.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/usbip/usbip-host.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/usbip/vhci-hcd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/thermal +#lib/modules/KVER-ipfire-pae/kernel/drivers/thermal/intel_powerclamp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/tty -#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/ipwireless -#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/ipwireless/ipwireless.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/cyclades.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/tty/n_gsm.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/n_hdlc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/n_r3964.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/tty/nozomi.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/rocket.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial -#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/8250_accent.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/8250_boca.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/8250_exar_st16c554.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/8250_fourport.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/8250_hub6.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/altera_jtaguart.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/altera_uart.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/mfd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/pch_uart.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/serial_cs.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/timbuart.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/uartlite.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/xilinx_uartps.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/8250 +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/8250/8250_dw.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/arc_uart.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/jsm +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/jsm/jsm.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/rp2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/sccnxp.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/synclink.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/synclink_gt.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/synclinkmp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/uio #lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio_aec.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio_cif.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio_netx.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio_pci_generic.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio_pdrv.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio_pdrv_genirq.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio_sercos3.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/atm @@ -1608,44 +2003,47 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/atm/ueagle-atm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/atm/usbatm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/atm/xusbatm.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/chipidea +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/chipidea/ci13xxx_msm.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/chipidea/ci13xxx_pci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/chipidea/ci_hdrc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/class #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/class/cdc-acm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/class/cdc-wdm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/class/usblp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/class/usbtmc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/dwc3 +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/dwc3/dwc3-exynos.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/dwc3/dwc3-omap.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/dwc3/dwc3-pci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/dwc3/dwc3.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/hwa-hc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/isp116x-hcd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/isp1362-hcd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/oxu210hp-hcd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/r8a66597-hcd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/sl811-hcd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/u132-hcd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/ssb-hcd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/whci #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/whci/whci-hcd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/xhci-hcd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/image +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/image/mdc800.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/image/microtek.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/cypress_cy7c63.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/cytherm.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/adutux.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/emi26.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/emi62.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/ezusb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/ftdi-elan.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/iowarrior.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/isight_firmware.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/sisusbvga #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/sisusbvga/sisusbvga.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/usb3503.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/usblcd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/usbled.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/usbsevseg.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/uss720.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/yurex.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/otg -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/otg/gpio_vbus.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/otg/nop-usb-xceiv.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/mon +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/mon/usbmon.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/aircable.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/ark3116.ko @@ -1654,11 +2052,9 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/cp210x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/cypress_m8.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/digi_acceleport.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/empeg.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/f81232.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/ftdi_sio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/funsoft.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/garmin_gps.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/hp4x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/io_edgeport.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/io_ti.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/ipaq.ko @@ -1666,31 +2062,27 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/ir-usb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/iuu_phoenix.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/keyspan_pda.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/kl5kusb105.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/mct_u232.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/mos7720.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/mos7840.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/moto_modem.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/opticon.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/option.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/oti6858.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/pl2303.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/qcaux.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/qcserial.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/safe_serial.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/quatech2.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/siemens_mpi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/sierra.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/spcp8x5.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/ssu100.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/symbolserial.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/ti_usb_3410_5052.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/usb_wwan.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/usbserial.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/visor.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/vivopay-serial.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/whiteheat.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/zio.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/zte_ev.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/uas.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-alauda.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-cypress.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-datafab.ko @@ -1704,7 +2096,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-sddr09.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-sddr55.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-usbat.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/usb-storage.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/wusbcore #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/wusbcore/wusb-cbaf.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/wusbcore/wusb-wa.ko @@ -1721,53 +2112,38 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/uwb/whci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/vhost #lib/modules/KVER-ipfire-pae/kernel/drivers/vhost/vhost_net.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/vhost/vringh.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video +#lib/modules/KVER-ipfire-pae/kernel/drivers/video/arcfb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/arkfb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/aty -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/aty/aty128fb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/aty/atyfb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/aty/radeonfb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/adp8860_bl.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/adp8870_bl.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/apple_bl.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/cr_bllcd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/generic_bl.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/kb3886_bl.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/lcd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/pcf50633-backlight.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/platform_lcd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/progear_bl.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/cirrusfb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/video/console +#lib/modules/KVER-ipfire-pae/kernel/drivers/video/console/mdacon.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/cyber2000fb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/display -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/display/display.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/fb_ddc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/fb_sys_fops.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/geode #lib/modules/KVER-ipfire-pae/kernel/drivers/video/geode/gx1fb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/geode/gxfb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/geode/lxfb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/i810 -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/i810/i810fb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/video/hgafb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/video/hyperv_fb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/video/i740fb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/kyro #lib/modules/KVER-ipfire-pae/kernel/drivers/video/kyro/kyrofb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/macmodes.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/matrox -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/matrox/g450_pll.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/matrox/i2c-matroxfb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/matrox/matroxfb_DAC1064.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/matrox/matroxfb_Ti3026.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/matrox/matroxfb_accel.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/matrox/matroxfb_base.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/matrox/matroxfb_crtc2.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/matrox/matroxfb_g450.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/matrox/matroxfb_maven.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/matrox/matroxfb_misc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/metronomefb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/neofb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/nvidia -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/nvidia/nvidiafb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/output.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/pm2fb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/pm3fb.ko @@ -1776,22 +2152,18 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/video/s3fb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/savage #lib/modules/KVER-ipfire-pae/kernel/drivers/video/savage/savagefb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/sis -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/sis/sisfb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/sm501fb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/smscufx.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/sstfb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/svgalib.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/syscopyarea.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/sysfillrect.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/sysimgblt.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/tdfxfb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/tmiofb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/tridentfb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/uvesafb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/video/udlfb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/vermilion #lib/modules/KVER-ipfire-pae/kernel/drivers/video/vermilion/crvml.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/vermilion/vmlfb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/video/vga16fb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/vgastate.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/via #lib/modules/KVER-ipfire-pae/kernel/drivers/video/via/viafb.ko @@ -1800,32 +2172,28 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/virtio #lib/modules/KVER-ipfire-pae/kernel/drivers/virtio/virtio_balloon.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/virtio/virtio_mmio.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/virtio/virtio_pci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1 #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/masters #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/masters/ds1wm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/masters/ds2482.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/masters/ds2490.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/w1/masters/matrox_w1.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/w1/masters/w1-gpio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_bq27000.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_ds2408.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_ds2413.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_ds2423.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_ds2431.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_ds2433.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_ds2760.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_ds2780.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_ds2781.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_ds28e04.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_smem.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_therm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/wire.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog -#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/acquirewdt.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/advantechwdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/alim1535_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/alim7101_wdt.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/cpu5wdt.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/eurotechwdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/f71808e_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/geodewdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/hpwdt.ko @@ -1833,105 +2201,157 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/iTCO_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/ib700wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/ibmasr.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/ie6xx_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/it8712f_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/it87_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/machzwd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/nv_tco.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/pc87413_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/pcwd_pci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/pcwd_usb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/sbc60xxwdt.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/sbc7240_wdt.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/sbc8360.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/sbc_epx_c3.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/retu_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/sbc_fitpc2_wdt.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/sc1200wdt.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/sc520_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/sch311x_wdt.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/scx200_wdt.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/smsc37b787_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/softdog.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/sp5100_tco.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/via_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/w83627hf_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/w83697hf_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/w83697ug_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/w83877f_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/w83977f_wdt.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/wafer5823wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/wdt_pci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/xen_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/xen +#lib/modules/KVER-ipfire-pae/kernel/drivers/xen/tmem.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/xen/xen-acpi-processor.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/xen/xen-evtchn.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/xen/xen-gntalloc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/xen/xen-gntdev.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/xen/xen-pciback #lib/modules/KVER-ipfire-pae/kernel/drivers/xen/xen-pciback/xen-pciback.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/xen/xen-privcmd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/xen/xenfs #lib/modules/KVER-ipfire-pae/kernel/drivers/xen/xenfs/xenfs.ko #lib/modules/KVER-ipfire-pae/kernel/fs -#lib/modules/KVER-ipfire-pae/kernel/fs/autofs4 -#lib/modules/KVER-ipfire-pae/kernel/fs/autofs4/autofs4.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/btrfs +#lib/modules/KVER-ipfire-pae/kernel/fs/btrfs/btrfs.ko #lib/modules/KVER-ipfire-pae/kernel/fs/cachefiles #lib/modules/KVER-ipfire-pae/kernel/fs/cachefiles/cachefiles.ko #lib/modules/KVER-ipfire-pae/kernel/fs/cifs #lib/modules/KVER-ipfire-pae/kernel/fs/cifs/cifs.ko -#lib/modules/KVER-ipfire-pae/kernel/fs/ecryptfs -#lib/modules/KVER-ipfire-pae/kernel/fs/ecryptfs/ecryptfs.ko -#lib/modules/KVER-ipfire-pae/kernel/fs/exportfs -#lib/modules/KVER-ipfire-pae/kernel/fs/exportfs/exportfs.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/configfs +#lib/modules/KVER-ipfire-pae/kernel/fs/configfs/configfs.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/dlm +#lib/modules/KVER-ipfire-pae/kernel/fs/dlm/dlm.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/efivarfs +#lib/modules/KVER-ipfire-pae/kernel/fs/efivarfs/efivarfs.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/exofs +#lib/modules/KVER-ipfire-pae/kernel/fs/exofs/libore.ko #lib/modules/KVER-ipfire-pae/kernel/fs/fat #lib/modules/KVER-ipfire-pae/kernel/fs/fat/fat.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/fat/msdos.ko #lib/modules/KVER-ipfire-pae/kernel/fs/fat/vfat.ko #lib/modules/KVER-ipfire-pae/kernel/fs/fscache #lib/modules/KVER-ipfire-pae/kernel/fs/fscache/fscache.ko #lib/modules/KVER-ipfire-pae/kernel/fs/fuse #lib/modules/KVER-ipfire-pae/kernel/fs/fuse/cuse.ko #lib/modules/KVER-ipfire-pae/kernel/fs/fuse/fuse.ko -#lib/modules/KVER-ipfire-pae/kernel/fs/isofs -#lib/modules/KVER-ipfire-pae/kernel/fs/isofs/isofs.ko -#lib/modules/KVER-ipfire-pae/kernel/fs/jffs2 -#lib/modules/KVER-ipfire-pae/kernel/fs/jffs2/jffs2.ko -#lib/modules/KVER-ipfire-pae/kernel/fs/jfs -#lib/modules/KVER-ipfire-pae/kernel/fs/jfs/jfs.ko #lib/modules/KVER-ipfire-pae/kernel/fs/lockd #lib/modules/KVER-ipfire-pae/kernel/fs/lockd/lockd.ko #lib/modules/KVER-ipfire-pae/kernel/fs/nfs +#lib/modules/KVER-ipfire-pae/kernel/fs/nfs/blocklayout +#lib/modules/KVER-ipfire-pae/kernel/fs/nfs/blocklayout/blocklayoutdriver.ko #lib/modules/KVER-ipfire-pae/kernel/fs/nfs/nfs.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nfs/nfs_layout_nfsv41_files.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nfs/nfsv2.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nfs/nfsv3.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nfs/nfsv4.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nfs/objlayout +#lib/modules/KVER-ipfire-pae/kernel/fs/nfs/objlayout/objlayoutdriver.ko #lib/modules/KVER-ipfire-pae/kernel/fs/nfs_common #lib/modules/KVER-ipfire-pae/kernel/fs/nfs_common/nfs_acl.ko #lib/modules/KVER-ipfire-pae/kernel/fs/nfsd #lib/modules/KVER-ipfire-pae/kernel/fs/nfsd/nfsd.ko -#lib/modules/KVER-ipfire-pae/kernel/fs/quota -#lib/modules/KVER-ipfire-pae/kernel/fs/quota/quota_tree.ko -#lib/modules/KVER-ipfire-pae/kernel/fs/quota/quota_v1.ko -#lib/modules/KVER-ipfire-pae/kernel/fs/quota/quota_v2.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/mac-celtic.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/mac-centeuro.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/mac-croatian.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/mac-cyrillic.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/mac-gaelic.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/mac-greek.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/mac-iceland.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/mac-inuit.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/mac-roman.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/mac-romanian.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/mac-turkish.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp1250.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp1251.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp1255.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp737.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp775.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp850.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp852.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp855.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp857.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp860.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp861.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp862.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp863.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp864.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp865.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp866.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp869.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp874.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp932.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp936.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp949.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp950.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_euc-jp.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_iso8859-1.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_iso8859-13.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_iso8859-14.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_iso8859-15.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_iso8859-2.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_iso8859-3.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_iso8859-4.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_iso8859-5.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_iso8859-6.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_iso8859-7.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_iso8859-9.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_koi8-r.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_koi8-ru.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_koi8-u.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_utf8.ko #lib/modules/KVER-ipfire-pae/kernel/fs/reiserfs #lib/modules/KVER-ipfire-pae/kernel/fs/reiserfs/reiserfs.ko #lib/modules/KVER-ipfire-pae/kernel/fs/udf #lib/modules/KVER-ipfire-pae/kernel/fs/udf/udf.ko -#lib/modules/KVER-ipfire-pae/kernel/fs/ufs -#lib/modules/KVER-ipfire-pae/kernel/fs/ufs/ufs.ko #lib/modules/KVER-ipfire-pae/kernel/fs/xfs #lib/modules/KVER-ipfire-pae/kernel/fs/xfs/xfs.ko +#lib/modules/KVER-ipfire-pae/kernel/kernel +#lib/modules/KVER-ipfire-pae/kernel/kernel/trace +#lib/modules/KVER-ipfire-pae/kernel/kernel/trace/ring_buffer_benchmark.ko #lib/modules/KVER-ipfire-pae/kernel/lib +#lib/modules/KVER-ipfire-pae/kernel/lib/asn1_decoder.ko #lib/modules/KVER-ipfire-pae/kernel/lib/cordic.ko -#lib/modules/KVER-ipfire-pae/kernel/lib/crc-ccitt.ko #lib/modules/KVER-ipfire-pae/kernel/lib/crc-itu-t.ko -#lib/modules/KVER-ipfire-pae/kernel/lib/crc-t10dif.ko #lib/modules/KVER-ipfire-pae/kernel/lib/crc7.ko #lib/modules/KVER-ipfire-pae/kernel/lib/crc8.ko #lib/modules/KVER-ipfire-pae/kernel/lib/libcrc32c.ko +#lib/modules/KVER-ipfire-pae/kernel/lib/mpi +#lib/modules/KVER-ipfire-pae/kernel/lib/mpi/mpi.ko +#lib/modules/KVER-ipfire-pae/kernel/lib/oid_registry.ko #lib/modules/KVER-ipfire-pae/kernel/lib/raid6 #lib/modules/KVER-ipfire-pae/kernel/lib/raid6/raid6_pq.ko +#lib/modules/KVER-ipfire-pae/kernel/lib/rbtree_test.ko #lib/modules/KVER-ipfire-pae/kernel/lib/ts_bm.ko #lib/modules/KVER-ipfire-pae/kernel/lib/ts_fsm.ko #lib/modules/KVER-ipfire-pae/kernel/lib/ts_kmp.ko +#lib/modules/KVER-ipfire-pae/kernel/lib/zlib_deflate +#lib/modules/KVER-ipfire-pae/kernel/lib/zlib_deflate/zlib_deflate.ko #lib/modules/KVER-ipfire-pae/kernel/net #lib/modules/KVER-ipfire-pae/kernel/net/802 #lib/modules/KVER-ipfire-pae/kernel/net/802/garp.ko -#lib/modules/KVER-ipfire-pae/kernel/net/802/p8022.ko -#lib/modules/KVER-ipfire-pae/kernel/net/802/psnap.ko -#lib/modules/KVER-ipfire-pae/kernel/net/802/stp.ko #lib/modules/KVER-ipfire-pae/kernel/net/8021q #lib/modules/KVER-ipfire-pae/kernel/net/8021q/8021q.ko #lib/modules/KVER-ipfire-pae/kernel/net/atm @@ -1952,7 +2372,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/bluetooth/rfcomm #lib/modules/KVER-ipfire-pae/kernel/net/bluetooth/rfcomm/rfcomm.ko #lib/modules/KVER-ipfire-pae/kernel/net/bridge -#lib/modules/KVER-ipfire-pae/kernel/net/bridge/bridge.ko #lib/modules/KVER-ipfire-pae/kernel/net/bridge/netfilter #lib/modules/KVER-ipfire-pae/kernel/net/bridge/netfilter/ebt_802_3.ko #lib/modules/KVER-ipfire-pae/kernel/net/bridge/netfilter/ebt_among.ko @@ -1970,64 +2389,45 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/bridge/netfilter/ebt_redirect.ko #lib/modules/KVER-ipfire-pae/kernel/net/bridge/netfilter/ebt_snat.ko #lib/modules/KVER-ipfire-pae/kernel/net/bridge/netfilter/ebt_stp.ko -#lib/modules/KVER-ipfire-pae/kernel/net/bridge/netfilter/ebt_ulog.ko #lib/modules/KVER-ipfire-pae/kernel/net/bridge/netfilter/ebt_vlan.ko #lib/modules/KVER-ipfire-pae/kernel/net/bridge/netfilter/ebtable_broute.ko #lib/modules/KVER-ipfire-pae/kernel/net/bridge/netfilter/ebtable_filter.ko #lib/modules/KVER-ipfire-pae/kernel/net/bridge/netfilter/ebtable_nat.ko #lib/modules/KVER-ipfire-pae/kernel/net/bridge/netfilter/ebtables.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ceph -#lib/modules/KVER-ipfire-pae/kernel/net/ceph/libceph.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ieee802154 -#lib/modules/KVER-ipfire-pae/kernel/net/ieee802154/6lowpan.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ieee802154/af_802154.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ieee802154/ieee802154.ko +#lib/modules/KVER-ipfire-pae/kernel/net/core +#lib/modules/KVER-ipfire-pae/kernel/net/core/netprio_cgroup.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4 #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/ah4.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/esp4.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/gre.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/inet_diag.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/ip_gre.ko +#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/ip_tunnel.ko +#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/ip_vti.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/ipcomp.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/ipip.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/arp_tables.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/arpt_mangle.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/arptable_filter.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ip_queue.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ip_tables.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_CLUSTERIP.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_ECN.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_LOG.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_MASQUERADE.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_NETMAP.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_REDIRECT.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_REJECT.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_ULOG.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_ah.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_ecn.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_ipp2p.ko +#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_rpfilter.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/iptable_filter.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/iptable_mangle.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/iptable_nat.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/iptable_raw.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/nf_conntrack_ipv4.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/nf_defrag_ipv4.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/nf_nat.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/nf_nat_amanda.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/nf_nat_ftp.ko +#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/iptable_security.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/nf_nat_h323.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/nf_nat_irc.ko +#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/nf_nat_ipv4.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/nf_nat_pptp.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/nf_nat_proto_dccp.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/nf_nat_proto_gre.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/nf_nat_proto_sctp.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/nf_nat_proto_udplite.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/nf_nat_sip.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/nf_nat_snmp_basic.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/nf_nat_tftp.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/tcp_bic.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/tcp_cubic.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/tcp_diag.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/tcp_highspeed.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/tcp_htcp.ko @@ -2040,17 +2440,21 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/tcp_westwood.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/tcp_yeah.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/tunnel4.ko +#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/udp_diag.ko +#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/xfrm4_mode_beet.ko +#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/xfrm4_mode_transport.ko +#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/xfrm4_mode_tunnel.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/xfrm4_tunnel.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6 #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/ah6.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/esp6.ko +#lib/modules/KVER-ipfire-pae/kernel/net/ipv6/ip6_gre.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/ip6_tunnel.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/ipcomp6.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/mip6.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter -#lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6_queue.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6_tables.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6t_LOG.ko +#lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6t_MASQUERADE.ko +#lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6t_NPT.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6t_REJECT.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6t_ah.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6t_eui64.ko @@ -2058,12 +2462,14 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6t_hbh.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6t_ipv6header.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6t_mh.ko +#lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6t_rpfilter.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6t_rt.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6table_filter.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6table_mangle.ko +#lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6table_nat.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6table_raw.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/nf_conntrack_ipv6.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/nf_defrag_ipv6.ko +#lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6table_security.ko +#lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/nf_nat_ipv6.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/sit.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/tunnel6.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/xfrm6_mode_beet.ko @@ -2071,28 +2477,31 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/xfrm6_mode_transport.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/xfrm6_mode_tunnel.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/xfrm6_tunnel.ko -#lib/modules/KVER-ipfire-pae/kernel/net/irda -#lib/modules/KVER-ipfire-pae/kernel/net/irda/ircomm -#lib/modules/KVER-ipfire-pae/kernel/net/irda/ircomm/ircomm-tty.ko -#lib/modules/KVER-ipfire-pae/kernel/net/irda/ircomm/ircomm.ko -#lib/modules/KVER-ipfire-pae/kernel/net/irda/irda.ko -#lib/modules/KVER-ipfire-pae/kernel/net/irda/irlan -#lib/modules/KVER-ipfire-pae/kernel/net/irda/irlan/irlan.ko -#lib/modules/KVER-ipfire-pae/kernel/net/irda/irnet -#lib/modules/KVER-ipfire-pae/kernel/net/irda/irnet/irnet.ko #lib/modules/KVER-ipfire-pae/kernel/net/key #lib/modules/KVER-ipfire-pae/kernel/net/key/af_key.ko #lib/modules/KVER-ipfire-pae/kernel/net/l2tp #lib/modules/KVER-ipfire-pae/kernel/net/l2tp/l2tp_core.ko #lib/modules/KVER-ipfire-pae/kernel/net/l2tp/l2tp_eth.ko #lib/modules/KVER-ipfire-pae/kernel/net/l2tp/l2tp_ip.ko +#lib/modules/KVER-ipfire-pae/kernel/net/l2tp/l2tp_ip6.ko #lib/modules/KVER-ipfire-pae/kernel/net/l2tp/l2tp_netlink.ko #lib/modules/KVER-ipfire-pae/kernel/net/l2tp/l2tp_ppp.ko -#lib/modules/KVER-ipfire-pae/kernel/net/llc -#lib/modules/KVER-ipfire-pae/kernel/net/llc/llc.ko #lib/modules/KVER-ipfire-pae/kernel/net/mac80211 #lib/modules/KVER-ipfire-pae/kernel/net/mac80211/mac80211.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/ipset +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/ipset/ip_set.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/ipset/ip_set_bitmap_ip.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/ipset/ip_set_bitmap_ipmac.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/ipset/ip_set_bitmap_port.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/ipset/ip_set_hash_ip.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/ipset/ip_set_hash_ipport.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/ipset/ip_set_hash_ipportip.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/ipset/ip_set_hash_ipportnet.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/ipset/ip_set_hash_net.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/ipset/ip_set_hash_netiface.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/ipset/ip_set_hash_netport.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/ipset/ip_set_list_set.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/ipvs #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/ipvs/ip_vs.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/ipvs/ip_vs_dh.ko @@ -2107,7 +2516,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/ipvs/ip_vs_sh.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/ipvs/ip_vs_wlc.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/ipvs/ip_vs_wrr.ko -#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_amanda.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_broadcast.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_ftp.ko @@ -2124,33 +2532,51 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_sip.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_snmp.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_tftp.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_nat.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_nat_amanda.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_nat_ftp.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_nat_irc.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_nat_proto_dccp.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_nat_proto_sctp.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_nat_proto_udplite.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_nat_sip.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_nat_tftp.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_tproxy_core.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nfnetlink.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nfnetlink_acct.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nfnetlink_cthelper.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nfnetlink_cttimeout.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nfnetlink_log.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nfnetlink_queue.ko -#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/x_tables.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_AUDIT.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_CHECKSUM.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_CLASSIFY.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_CONNSECMARK.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_CT.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_DSCP.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_HL.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_HMARK.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_IDLETIMER.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_IMQ.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_LED.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_LOG.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_NETMAP.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_NFLOG.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_NFQUEUE.ko -#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_NOTRACK.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_RATEEST.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_REDIRECT.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_SECMARK.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_TCPMSS.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_TCPOPTSTRIP.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_TEE.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_TPROXY.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_TRACE.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_addrtype.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_bpf.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_cluster.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_comment.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_connbytes.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_connlabel.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_connlimit.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_connmark.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_conntrack.ko @@ -2158,18 +2584,20 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_dccp.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_devgroup.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_dscp.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_ecn.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_esp.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_hashlimit.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_helper.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_hl.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_iprange.ko -#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_ipvs.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_layer7.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_length.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_limit.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_mac.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_mark.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_multiport.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_nat.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_nfacct.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_osf.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_owner.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_physdev.ko @@ -2180,20 +2608,21 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_realm.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_recent.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_sctp.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_set.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_socket.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_state.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_statistic.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_string.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_tcpmss.ko -#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_tcpudp.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_time.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_u32.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netlink +#lib/modules/KVER-ipfire-pae/kernel/net/netlink/netlink_diag.ko +#lib/modules/KVER-ipfire-pae/kernel/net/openvswitch +#lib/modules/KVER-ipfire-pae/kernel/net/openvswitch/openvswitch.ko #lib/modules/KVER-ipfire-pae/kernel/net/rfkill -#lib/modules/KVER-ipfire-pae/kernel/net/rfkill/rfkill-regulator.ko +#lib/modules/KVER-ipfire-pae/kernel/net/rfkill/rfkill-gpio.ko #lib/modules/KVER-ipfire-pae/kernel/net/rfkill/rfkill.ko -#lib/modules/KVER-ipfire-pae/kernel/net/rxrpc -#lib/modules/KVER-ipfire-pae/kernel/net/rxrpc/af-rxrpc.ko -#lib/modules/KVER-ipfire-pae/kernel/net/rxrpc/rxkad.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched #lib/modules/KVER-ipfire-pae/kernel/net/sched/act_csum.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/act_gact.ko @@ -2205,6 +2634,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/sched/act_simple.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/act_skbedit.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/cls_basic.ko +#lib/modules/KVER-ipfire-pae/kernel/net/sched/cls_cgroup.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/cls_flow.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/cls_fw.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/cls_route.ko @@ -2213,6 +2643,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/sched/cls_tcindex.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/cls_u32.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/em_cmp.ko +#lib/modules/KVER-ipfire-pae/kernel/net/sched/em_ipset.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/em_meta.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/em_nbyte.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/em_text.ko @@ -2220,8 +2651,10 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_atm.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_cbq.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_choke.ko +#lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_codel.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_drr.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_dsmark.ko +#lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_fq_codel.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_gred.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_hfsc.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_htb.ko @@ -2229,6 +2662,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_mqprio.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_multiq.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_netem.ko +#lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_plug.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_prio.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_qfq.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_red.ko @@ -2236,11 +2670,18 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_sfq.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_tbf.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_teql.ko +#lib/modules/KVER-ipfire-pae/kernel/net/sctp +#lib/modules/KVER-ipfire-pae/kernel/net/sctp/sctp.ko #lib/modules/KVER-ipfire-pae/kernel/net/sunrpc #lib/modules/KVER-ipfire-pae/kernel/net/sunrpc/auth_gss #lib/modules/KVER-ipfire-pae/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko #lib/modules/KVER-ipfire-pae/kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko #lib/modules/KVER-ipfire-pae/kernel/net/sunrpc/sunrpc.ko +#lib/modules/KVER-ipfire-pae/kernel/net/unix +#lib/modules/KVER-ipfire-pae/kernel/net/unix/unix_diag.ko +#lib/modules/KVER-ipfire-pae/kernel/net/vmw_vsock +#lib/modules/KVER-ipfire-pae/kernel/net/vmw_vsock/vmw_vsock_vmci_transport.ko +#lib/modules/KVER-ipfire-pae/kernel/net/vmw_vsock/vsock.ko #lib/modules/KVER-ipfire-pae/kernel/net/wireless #lib/modules/KVER-ipfire-pae/kernel/net/wireless/cfg80211.ko #lib/modules/KVER-ipfire-pae/kernel/net/wireless/lib80211.ko @@ -2249,7 +2690,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/wireless/lib80211_crypt_wep.ko #lib/modules/KVER-ipfire-pae/kernel/net/xfrm #lib/modules/KVER-ipfire-pae/kernel/net/xfrm/xfrm_ipcomp.ko -#lib/modules/KVER-ipfire-pae/kernel/net/xfrm/xfrm_user.ko #lib/modules/KVER-ipfire-pae/kernel/sound #lib/modules/KVER-ipfire-pae/kernel/sound/ac97_bus.ko #lib/modules/KVER-ipfire-pae/kernel/sound/core @@ -2283,6 +2723,8 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/sound/drivers/opl4 #lib/modules/KVER-ipfire-pae/kernel/sound/drivers/opl4/snd-opl4-lib.ko #lib/modules/KVER-ipfire-pae/kernel/sound/drivers/opl4/snd-opl4-synth.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/pcsp +#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/pcsp/snd-pcsp.ko #lib/modules/KVER-ipfire-pae/kernel/sound/drivers/snd-aloop.ko #lib/modules/KVER-ipfire-pae/kernel/sound/drivers/snd-dummy.ko #lib/modules/KVER-ipfire-pae/kernel/sound/drivers/snd-mtpav.ko @@ -2295,12 +2737,10 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/sound/firewire #lib/modules/KVER-ipfire-pae/kernel/sound/firewire/snd-firewire-lib.ko #lib/modules/KVER-ipfire-pae/kernel/sound/firewire/snd-firewire-speakers.ko -#lib/modules/KVER-ipfire-pae/kernel/sound/firewire/snd-isight.ko #lib/modules/KVER-ipfire-pae/kernel/sound/i2c #lib/modules/KVER-ipfire-pae/kernel/sound/i2c/other #lib/modules/KVER-ipfire-pae/kernel/sound/i2c/other/snd-ak4113.ko #lib/modules/KVER-ipfire-pae/kernel/sound/i2c/other/snd-ak4114.ko -#lib/modules/KVER-ipfire-pae/kernel/sound/i2c/other/snd-ak4117.ko #lib/modules/KVER-ipfire-pae/kernel/sound/i2c/other/snd-ak4xxx-adda.ko #lib/modules/KVER-ipfire-pae/kernel/sound/i2c/other/snd-pt2258.ko #lib/modules/KVER-ipfire-pae/kernel/sound/i2c/other/snd-tea575x-tuner.ko @@ -2350,6 +2790,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/sound/isa/snd-adlib.ko #lib/modules/KVER-ipfire-pae/kernel/sound/isa/snd-als100.ko #lib/modules/KVER-ipfire-pae/kernel/sound/isa/snd-azt2320.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/snd-cmi8328.ko #lib/modules/KVER-ipfire-pae/kernel/sound/isa/snd-cmi8330.ko #lib/modules/KVER-ipfire-pae/kernel/sound/isa/snd-es18xx.ko #lib/modules/KVER-ipfire-pae/kernel/sound/isa/snd-opl3sa2.ko @@ -2370,8 +2811,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/sound/pci/au88x0/snd-au8810.ko #lib/modules/KVER-ipfire-pae/kernel/sound/pci/au88x0/snd-au8820.ko #lib/modules/KVER-ipfire-pae/kernel/sound/pci/au88x0/snd-au8830.ko -#lib/modules/KVER-ipfire-pae/kernel/sound/pci/aw2 -#lib/modules/KVER-ipfire-pae/kernel/sound/pci/aw2/snd-aw2.ko #lib/modules/KVER-ipfire-pae/kernel/sound/pci/ca0106 #lib/modules/KVER-ipfire-pae/kernel/sound/pci/ca0106/snd-ca0106.ko #lib/modules/KVER-ipfire-pae/kernel/sound/pci/cs46xx @@ -2459,7 +2898,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-maestro3.ko #lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-rme32.ko #lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-rme96.ko -#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-sis7019.ko #lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-sonicvibes.ko #lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-via82xx-modem.ko #lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-via82xx.ko @@ -2469,11 +2907,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/sound/pci/vx222/snd-vx222.ko #lib/modules/KVER-ipfire-pae/kernel/sound/pci/ymfpci #lib/modules/KVER-ipfire-pae/kernel/sound/pci/ymfpci/snd-ymfpci.ko -#lib/modules/KVER-ipfire-pae/kernel/sound/pcmcia -#lib/modules/KVER-ipfire-pae/kernel/sound/pcmcia/pdaudiocf -#lib/modules/KVER-ipfire-pae/kernel/sound/pcmcia/pdaudiocf/snd-pdaudiocf.ko -#lib/modules/KVER-ipfire-pae/kernel/sound/pcmcia/vx -#lib/modules/KVER-ipfire-pae/kernel/sound/pcmcia/vx/snd-vxpocket.ko #lib/modules/KVER-ipfire-pae/kernel/sound/soundcore.ko #lib/modules/KVER-ipfire-pae/kernel/sound/synth #lib/modules/KVER-ipfire-pae/kernel/sound/synth/emux @@ -2494,17 +2927,12 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/modules.alias #lib/modules/KVER-ipfire-pae/modules.alias.bin #lib/modules/KVER-ipfire-pae/modules.builtin -#lib/modules/KVER-ipfire-pae/modules.ccwmap +#lib/modules/KVER-ipfire-pae/modules.builtin.bin #lib/modules/KVER-ipfire-pae/modules.dep #lib/modules/KVER-ipfire-pae/modules.dep.bin -#lib/modules/KVER-ipfire-pae/modules.ieee1394map -#lib/modules/KVER-ipfire-pae/modules.inputmap -#lib/modules/KVER-ipfire-pae/modules.isapnpmap -#lib/modules/KVER-ipfire-pae/modules.ofmap +#lib/modules/KVER-ipfire-pae/modules.devname #lib/modules/KVER-ipfire-pae/modules.order -#lib/modules/KVER-ipfire-pae/modules.pcimap -#lib/modules/KVER-ipfire-pae/modules.seriomap +#lib/modules/KVER-ipfire-pae/modules.softdep #lib/modules/KVER-ipfire-pae/modules.symbols #lib/modules/KVER-ipfire-pae/modules.symbols.bin -#lib/modules/KVER-ipfire-pae/modules.usbmap #lib/modules/KVER-ipfire-pae/source diff --git a/config/rootfiles/packages/linux-xen b/config/rootfiles/packages/linux-xen deleted file mode 100644 index 9d0f46c..0000000 --- a/config/rootfiles/packages/linux-xen +++ /dev/null @@ -1,1946 +0,0 @@ -boot/System.map-2.6.32.61-ipfire-xen -boot/System.map-ipfire-xen -boot/config-2.6.32.61-ipfire-xen -boot/vmlinuz-2.6.32.61-ipfire-xen -boot/vmlinuz-ipfire-xen -#lib/firmware/bnx2x-e1-5.0.21.0.fw -#lib/firmware/bnx2x-e1h-5.0.21.0.fw -#lib/modules -lib/modules/2.6.32.61-ipfire-xen -#lib/modules/2.6.32.61-ipfire-xen/build -#lib/modules/2.6.32.61-ipfire-xen/kernel -#lib/modules/2.6.32.61-ipfire-xen/kernel/arch -#lib/modules/2.6.32.61-ipfire-xen/kernel/arch/x86 -#lib/modules/2.6.32.61-ipfire-xen/kernel/arch/x86/crypto -#lib/modules/2.6.32.61-ipfire-xen/kernel/arch/x86/crypto/aes-i586.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/arch/x86/crypto/crc32c-intel.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/arch/x86/crypto/salsa20-i586.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/arch/x86/crypto/twofish-i586.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/arch/x86/kernel -#lib/modules/2.6.32.61-ipfire-xen/kernel/arch/x86/kernel/microcode.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/arch/x86/kernel/msr.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/arch/x86/kernel/scx200.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/aes_generic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/ansi_cprng.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/anubis.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/arc4.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/async_tx -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/async_tx/async_memcpy.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/async_tx/async_pq.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/async_tx/async_raid6_recov.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/async_tx/async_tx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/async_tx/async_xor.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/authenc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/blowfish.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/camellia.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/cast5.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/cast6.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/cbc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/ccm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/crc32c.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/cryptd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/ctr.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/cts.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/des_generic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/ecb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/fcrypt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/gcm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/gf128mul.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/ghash-generic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/khazad.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/lrw.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/lzo.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/md5.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/michael_mic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/pcbc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/rmd128.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/rmd160.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/rmd256.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/rmd320.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/salsa20_generic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/seed.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/seqiv.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/serpent.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/sha1_generic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/sha256_generic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/sha512_generic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/tea.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/tgr192.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/twofish.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/twofish_common.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/vmac.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/wp512.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/xcbc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/xor.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/xts.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/zlib.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/acpi -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/acpi/ac.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/acpi/acpi_pad.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/acpi/battery.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/acpi/button.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/acpi/container.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/acpi/fan.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/acpi/pci_slot.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/acpi/power_meter.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/acpi/processor.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/acpi/sbs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/acpi/sbshc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/acpi/thermal.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/acpi/video.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/ahci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/ata_generic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/ata_piix.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/libata.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_acpi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_ali.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_amd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_artop.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_atiixp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_atp867x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_cmd640.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_cmd64x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_cs5520.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_cs5530.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_cs5535.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_cs5536.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_cypress.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_efar.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_hpt366.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_hpt37x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_hpt3x2n.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_hpt3x3.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_it8213.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_it821x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_jmicron.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_marvell.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_mpiix.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_netcell.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_ninja32.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_ns87410.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_ns87415.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_oldpiix.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_opti.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_optidma.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_pcmcia.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_pdc2027x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_pdc202xx_old.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_radisys.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_rdc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_rz1000.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_sc1200.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_sch.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_serverworks.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_sil680.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_sis.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_sl82c105.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_triflex.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_via.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pdc_adma.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/sata_inic162x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/sata_mv.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/sata_nv.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/sata_promise.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/sata_qstor.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/sata_sil.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/sata_sil24.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/sata_sis.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/sata_svw.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/sata_sx4.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/sata_uli.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/sata_via.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/sata_vsc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/atm -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/atm/ambassador.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/atm/atmtcp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/atm/eni.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/atm/firestream.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/atm/fore_200e.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/atm/he.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/atm/horizon.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/atm/idt77105.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/atm/idt77252.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/atm/iphase.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/atm/lanai.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/atm/nicstar.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/atm/solos-pci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/atm/suni.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/atm/uPD98402.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/atm/zatm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/block -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/block/DAC960.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/block/aoe -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/block/aoe/aoe.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/block/cciss.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/block/cpqarray.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/block/cryptoloop.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/block/floppy.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/block/nbd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/block/osdblk.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/block/sx8.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/bluetooth -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/bluetooth/bcm203x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/bluetooth/bfusb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/bluetooth/bluecard_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/bluetooth/bpa10x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/bluetooth/bt3c_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/bluetooth/btmrvl.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/bluetooth/btmrvl_sdio.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/bluetooth/btsdio.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/bluetooth/btuart_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/bluetooth/btusb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/bluetooth/dtl1_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/bluetooth/hci_uart.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/bluetooth/hci_vhci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/agp -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/agp/agpgart.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/agp/ali-agp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/agp/amd-k7-agp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/agp/amd64-agp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/agp/ati-agp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/agp/efficeon-agp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/agp/intel-agp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/agp/nvidia-agp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/agp/sis-agp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/agp/sworks-agp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/agp/via-agp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/cs5535_gpio.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/hangcheck-timer.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/hw_random -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/hw_random/amd-rng.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/hw_random/geode-rng.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/hw_random/intel-rng.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/hw_random/rng-core.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/hw_random/timeriomem-rng.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/hw_random/via-rng.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/i8k.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/ipmi -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/ipmi/ipmi_devintf.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/ipmi/ipmi_msghandler.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/ipmi/ipmi_poweroff.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/ipmi/ipmi_si.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/ipmi/ipmi_watchdog.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/lp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/nozomi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/nsc_gpio.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/nvram.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/pc8736x_gpio.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/pcmcia -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/pcmcia/ipwireless -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/pcmcia/ipwireless/ipwireless.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/pcmcia/synclink_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/ppdev.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/scx200_gpio.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/toshiba.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/clocksource -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/clocksource/scx200_hrt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/connector -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/connector/cn.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/crypto -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/crypto/geode-aes.ko.off -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/crypto/hifn_795x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/crypto/padlock-aes.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/crypto/padlock-sha.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/dca -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/dca/dca.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/dma -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/dma/dmatest.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/dma/ioat -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/dma/ioat/ioatdma.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/firewire -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/firewire/firewire-core.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/firewire/firewire-net.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/firewire/firewire-ohci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/firewire/firewire-sbp2.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/firmware -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/firmware/iscsi_ibft.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/drm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/drm_kms_helper.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/i810 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/i810/i810.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/i830 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/i830/i830.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/i915 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/i915/i915.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/mga -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/mga/mga.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/r128 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/r128/r128.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/radeon -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/radeon/radeon.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/savage -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/savage/savage.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/sis -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/sis/sis.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/tdfx -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/tdfx/tdfx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/ttm -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/ttm/ttm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/via -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/via/via.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-a4tech.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-apple.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-belkin.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-cherry.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-chicony.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-cypress.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-drff.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-ezkey.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-gaff.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-gyration.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-kensington.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-kye.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-logitech.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-microsoft.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-monterey.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-ntrig.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-petalynx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-pl.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-samsung.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-sjoy.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-sony.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-sunplus.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-tmff.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-topseed.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-twinhan.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-wacom.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-zpff.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/usbhid -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/usbhid/usbhid.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/abituguru.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/abituguru3.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/ad7414.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/ad7418.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/adm1021.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/adm1025.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/adm1026.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/adm1029.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/adm1031.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/adm9240.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/ads7828.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/adt7462.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/adt7470.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/adt7473.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/adt7475.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/applesmc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/asb100.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/asus_atk0110.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/atxp1.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/coretemp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/dme1737.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/ds1621.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/f71805f.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/f71882fg.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/f75375s.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/fschmd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/g760a.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/gl518sm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/gl520sm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/hdaps.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/hp_accel.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/hwmon-vid.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/hwmon.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/i5k_amb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/ibmaem.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/ibmpex.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/it87.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/k8temp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/lis3lv02d.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/lm63.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/lm75.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/lm77.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/lm78.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/lm80.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/lm83.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/lm85.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/lm87.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/lm90.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/lm92.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/lm93.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/lm95241.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/ltc4215.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/ltc4245.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/max1619.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/max6650.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/pc87360.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/pc87427.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/pcf8591.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/sis5595.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/smsc47b397.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/smsc47m1.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/smsc47m192.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/thmc50.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/tmp401.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/tmp421.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/via686a.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/vt1211.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/vt8231.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/w83627ehf.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/w83627hf.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/w83781d.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/w83791d.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/w83792d.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/w83793.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/w83l785ts.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/w83l786ng.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/wm831x-hwmon.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/wm8350-hwmon.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/algos -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/algos/i2c-algo-bit.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/algos/i2c-algo-pca.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-ali1535.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-ali1563.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-ali15x3.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-amd756-s4882.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-amd756.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-amd8111.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-i801.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-isch.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-nforce2-s4985.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-nforce2.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-ocores.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-parport-light.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-parport.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-pca-platform.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-piix4.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-scmi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-simtec.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-sis5595.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-sis630.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-sis96x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-stub.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-tiny-usb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-via.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-viapro.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-voodoo3.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/scx200_acb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/chips -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/chips/ds1682.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/chips/tsl2550.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/i2c-core.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/i2c-dev.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ieee802154 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ieee802154/fakehard.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/ff-memless.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/input-polldev.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/keyboard -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/keyboard/adp5588-keys.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/keyboard/lkkbd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/keyboard/lm8323.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/keyboard/max7359_keypad.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/keyboard/newtonkbd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/keyboard/opencores-kbd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/keyboard/stowaway.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/keyboard/sunkbd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/keyboard/xtkbd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/misc -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/misc/apanel.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/misc/ati_remote.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/misc/ati_remote2.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/misc/cm109.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/misc/keyspan_remote.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/misc/pcf50633-input.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/misc/pcspkr.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/misc/powermate.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/misc/winbond-cir.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/misc/wm831x-on.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/misc/yealink.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/capi -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/capi/capi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/capi/capidrv.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/capi/kernelcapi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/divert -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/divert/dss1_divert.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/gigaset -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/gigaset/bas_gigaset.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/gigaset/gigaset.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/gigaset/ser_gigaset.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/gigaset/usb_gigaset.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hardware -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hardware/avm -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hardware/avm/avm_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hardware/avm/b1.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hardware/avm/b1dma.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hardware/avm/b1pci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hardware/avm/c4.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hardware/avm/t1pci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hardware/eicon -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hardware/eicon/diva_idi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hardware/eicon/diva_mnt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hardware/eicon/divacapi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hardware/eicon/divadidd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hardware/eicon/divas.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hisax -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hisax/avma1_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hisax/elsa_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hisax/hfc4s8s_l1.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hisax/hfc_usb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hisax/hisax.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hisax/hisax_fcpcipnp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hisax/hisax_isac.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hisax/hisax_st5481.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hisax/sedlbauer_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hisax/teles_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hysdn -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hysdn/hysdn.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/i4l -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/i4l/isdn.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/i4l/isdn_bsdcomp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/i4l/isdnhdlc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/leds -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/leds/led-class.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/leds/leds-alix2.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/leds/leds-bd2802.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/leds/leds-clevo-mail.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/leds/leds-lp3944.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/leds/leds-net48xx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/leds/leds-pca9532.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/leds/leds-pca955x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/leds/leds-wm831x-status.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/leds/leds-wm8350.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/leds/leds-wrap.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/leds/ledtrig-backlight.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/leds/ledtrig-default-on.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/leds/ledtrig-heartbeat.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/leds/ledtrig-netdev.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/leds/ledtrig-timer.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/dm-crypt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/dm-delay.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/dm-log-userspace.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/dm-log.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/dm-mirror.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/dm-mod.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/dm-multipath.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/dm-queue-length.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/dm-region-hash.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/dm-round-robin.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/dm-service-time.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/dm-snapshot.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/dm-zero.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/linear.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/md-mod.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/multipath.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/raid0.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/raid1.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/raid10.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/raid456.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/raid6_pq.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media/common -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media/common/tuners -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media/common/tuners/mc44s803.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media/common/tuners/mt20xx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media/common/tuners/tda8290.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media/common/tuners/tda9887.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media/common/tuners/tea5761.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media/common/tuners/tea5767.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media/common/tuners/tuner-simple.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media/common/tuners/tuner-types.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media/common/tuners/tuner-xc2028.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media/common/tuners/xc5000.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media/dvb -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media/dvb/dvb-core -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media/dvb/dvb-core/dvb-core.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media/video -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media/video/v4l1-compat.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media/video/v4l2-common.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media/video/v4l2-int-device.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media/video/videodev.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/memstick -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/memstick/core -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/memstick/core/memstick.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/memstick/core/mspro_block.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/memstick/host -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/memstick/host/jmb38x_ms.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/memstick/host/tifm_ms.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/message -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/message/fusion -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/message/fusion/mptbase.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/message/fusion/mptctl.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/message/fusion/mptfc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/message/fusion/mptsas.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/message/fusion/mptscsih.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/message/fusion/mptspi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mfd -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mfd/ab3100-core.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mfd/ab3100-otp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mfd/htc-pasic3.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mfd/mfd-core.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mfd/pcf50633-adc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mfd/pcf50633-core.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mfd/pcf50633-gpio.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mfd/sm501.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mfd/wm831x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mfd/wm8350-i2c.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mfd/wm8350.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mfd/wm8400-core.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/misc -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/misc/c2port -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/misc/c2port/c2port-duramar2150.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/misc/c2port/core.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/misc/cb710 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/misc/cb710/cb710.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/misc/eeprom -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/misc/eeprom/at24.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/misc/eeprom/eeprom.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/misc/eeprom/eeprom_93cx6.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/misc/eeprom/max6875.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/misc/enclosure.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/misc/hpilo.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/misc/ics932s401.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/misc/isl29003.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/misc/tifm_7xx1.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/misc/tifm_core.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mmc -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mmc/card -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mmc/card/mmc_block.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mmc/card/mmc_test.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mmc/card/sdio_uart.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mmc/core -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mmc/core/mmc_core.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mmc/host -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mmc/host/cb710-mmc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mmc/host/ricoh_mmc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mmc/host/sdhci-pci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mmc/host/sdhci-pltfm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mmc/host/sdhci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mmc/host/sdricoh_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mmc/host/tifm_sd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mmc/host/via-sdmmc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mmc/host/wbsd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/ar7part.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/chips -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/chips/chipreg.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/lpddr -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/lpddr/lpddr_cmds.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/lpddr/qinfo_probe.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/maps -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/maps/physmap.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/mtd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/mtd_blkdevs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/mtdblock.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/mtdchar.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/mtdconcat.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/tests -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/tests/mtd_oobtest.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/tests/mtd_pagetest.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/tests/mtd_readtest.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/tests/mtd_speedtest.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/tests/mtd_stresstest.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/tests/mtd_subpagetest.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/tests/mtd_torturetest.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/ubi -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/ubi/ubi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/3c59x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/8139cp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/8139too.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/8390.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/acenic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/amd8111e.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/atl1c -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/atl1c/atl1c.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/atl1e -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/atl1e/atl1e.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/atlx -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/atlx/atl1.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/atlx/atl2.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/atp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/b44.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/benet -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/benet/be2net.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/bnx2.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/bnx2x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/bonding -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/bonding/bonding.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/bsd_comp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/cassini.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/chelsio -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/chelsio/cxgb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/cnic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/cxgb3 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/cxgb3/cxgb3.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/de600.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/de620.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/dl2k.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/dnet.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/dummy.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/e100.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/e1000 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/e1000/e1000.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/e1000e -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/e1000e/e1000e.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/enic -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/enic/enic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/epic100.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/eql.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/ethoc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/fealnx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/forcedeth.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/hamachi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/hp100.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/ifb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/igb -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/igb/igb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/igbvf -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/igbvf/igbvf.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/imq.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/ipg.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/irda -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/irda/ali-ircc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/irda/donauboe.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/irda/irda-usb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/irda/irtty-sir.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/irda/kingsun-sir.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/irda/ks959-sir.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/irda/ksdazzle-sir.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/irda/mcs7780.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/irda/nsc-ircc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/irda/sir-dev.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/irda/smsc-ircc2.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/irda/stir4200.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/irda/via-ircc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/irda/vlsi_ir.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/irda/w83977af_ir.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/ixgb -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/ixgb/ixgb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/ixgbe -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/ixgbe/ixgbe.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/jme.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/ks8842.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/ks8851_mll.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/macvlan.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/mdio.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/mii.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/mlx4 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/mlx4/mlx4_core.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/mlx4/mlx4_en.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/myri10ge -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/myri10ge/myri10ge.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/natsemi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/ne2k-pci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/netxen -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/netxen/netxen_nic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/niu.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/ns83820.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/pcmcia -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/pcmcia/3c574_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/pcmcia/3c589_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/pcmcia/axnet_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/pcmcia/fmvj18x_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/pcmcia/nmclan_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/pcmcia/pcnet_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/pcmcia/smc91c92_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/pcmcia/xirc2ps_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/pcnet32.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/phy -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/phy/broadcom.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/phy/cicada.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/phy/davicom.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/phy/et1011c.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/phy/icplus.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/phy/lxt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/phy/marvell.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/phy/mdio-bitbang.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/phy/national.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/phy/qsemi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/phy/realtek.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/phy/smsc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/phy/ste10Xp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/phy/vitesse.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/ppp_async.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/ppp_deflate.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/ppp_generic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/ppp_mppe.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/ppp_synctty.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/pppoe.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/pppol2tp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/pppox.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/qla3xxx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/qlge -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/qlge/qlge.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/r6040.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/r8169.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/s2io.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/sb1000.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/sc92031.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/sis190.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/sis900.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/skge.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/sky2.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/slhc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/slip.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/smsc9420.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/starfire.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/sundance.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/sungem.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/sungem_phy.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/sunhme.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/tehuti.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/tg3.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/tlan.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/tulip -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/tulip/de2104x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/tulip/de4x5.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/tulip/dmfe.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/tulip/tulip.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/tulip/uli526x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/tulip/winbond-840.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/tulip/xircom_cb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/tun.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/typhoon.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb/asix.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb/catc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb/cdc-phonet.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb/cdc_eem.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb/cdc_ether.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb/cdc_subset.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb/dm9601.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb/gl620a.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb/hso.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb/int51x1.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb/kaweth.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb/mcs7830.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb/net1080.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb/pegasus.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb/plusb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb/rndis_host.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb/rtl8150.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb/smsc95xx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb/usbnet.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb/zaurus.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/veth.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/via-rhine.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/via-velocity.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/vxge -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/vxge/vxge.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wimax -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wimax/i2400m -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wimax/i2400m/i2400m-sdio.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wimax/i2400m/i2400m-usb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wimax/i2400m/i2400m.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/adm8211.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/airo.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/airo_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/at76c50x-usb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/ath -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/ath/ar9170 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/ath/ar9170/ar9170usb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/ath/ath.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/ath/ath5k -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/ath/ath5k/ath5k.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/ath/ath9k -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/ath/ath9k/ath9k.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/atmel.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/atmel_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/atmel_pci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/b43 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/b43/b43.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/b43legacy -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/b43legacy/b43legacy.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/hostap -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/hostap/hostap.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/hostap/hostap_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/hostap/hostap_pci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/hostap/hostap_plx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/ipw2x00 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/ipw2x00/ipw2100.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/ipw2x00/ipw2200.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/ipw2x00/libipw.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/iwlwifi -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/iwlwifi/iwl3945.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/iwlwifi/iwlagn.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/iwlwifi/iwlcore.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/iwmc3200wifi -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/iwmc3200wifi/iwmc3200wifi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/libertas -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/libertas/libertas.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/libertas/libertas_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/libertas/libertas_sdio.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/libertas/usb8xxx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/libertas_tf -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/libertas_tf/libertas_tf.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/libertas_tf/libertas_tf_usb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/mwl8k.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/orinoco -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_nortel.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_pci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_plx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_tmd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/orinoco/spectrum_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/p54 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/p54/p54common.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/p54/p54pci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/p54/p54usb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/prism54 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/prism54/prism54.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/ray_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/rndis_wlan.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/rt2x00 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2400pci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2500pci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2500usb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2800usb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2x00lib.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2x00pci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2x00usb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt61pci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt73usb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/rtl818x -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/rtl818x/rtl8180.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/rtl818x/rtl8187.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/wl12xx -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/wl12xx/wl1251.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/wl12xx/wl1251_sdio.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/wl3501_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/zd1201.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/zd1211rw -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/zd1211rw/zd1211rw.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/yellowfin.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/parport -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/parport/parport.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/parport/parport_ax88796.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/parport/parport_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/parport/parport_pc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/pci -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/pci/pci-stub.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/pcmcia -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/pcmcia/i82092.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/pcmcia/pcmcia.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/pcmcia/pcmcia_core.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/pcmcia/pd6729.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/pcmcia/rsrc_nonstatic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/pcmcia/yenta_socket.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/platform -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/platform/x86 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/platform/x86/acer-wmi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/platform/x86/asus-laptop.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/platform/x86/asus_acpi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/platform/x86/compal-laptop.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/platform/x86/dell-wmi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/platform/x86/fujitsu-laptop.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/platform/x86/hp-wmi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/platform/x86/intel_menlow.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/platform/x86/msi-laptop.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/platform/x86/panasonic-laptop.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/platform/x86/sony-laptop.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/platform/x86/tc1100-wmi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/platform/x86/thinkpad_acpi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/platform/x86/topstar-laptop.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/platform/x86/toshiba_acpi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/platform/x86/wmi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/power -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/power/bq27x00_battery.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/power/ds2782_battery.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/power/max17040_battery.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/power/pcf50633-charger.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/power/wm831x_power.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/power/wm8350_power.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/pps -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/pps/pps_core.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-ab3100.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-bq4802.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-cmos.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-core.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-ds1286.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-ds1307.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-ds1374.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-ds1511.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-ds1553.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-ds1672.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-ds1742.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-fm3130.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-isl1208.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-lib.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-m41t80.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-m48t35.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-m48t59.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-m48t86.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-max6900.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-pcf50633.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-pcf8563.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-pcf8583.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-rs5c372.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-rx8025.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-rx8581.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-s35390a.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-stk17ta8.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-test.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-v3020.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-wm831x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-wm8350.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-x1205.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/3w-9xxx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/3w-xxxx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/BusLogic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/a100u2w.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/aacraid -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/aacraid/aacraid.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/advansys.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/aic7xxx -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/aic7xxx/aic79xx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/aic7xxx/aic7xxx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/aic94xx -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/aic94xx/aic94xx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/arcmsr -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/arcmsr/arcmsr.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/atp870u.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/be2iscsi -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/be2iscsi/be2iscsi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/bfa -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/bfa/bfa.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/bnx2i -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/bnx2i/bnx2i.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/ch.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/cxgb3i -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/cxgb3i/cxgb3i.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/dc395x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/device_handler -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh_alua.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh_emc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh_hp_sw.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh_rdac.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/dmx3191d.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/dpt_i2o.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/eata.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/fcoe -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/fcoe/fcoe.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/fcoe/libfcoe.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/fdomain.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/fnic -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/fnic/fnic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/gdth.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/hptiop.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/imm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/initio.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/ipr.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/ips.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/iscsi_tcp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/libfc -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/libfc/libfc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/libiscsi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/libiscsi_tcp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/libsas -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/libsas/libsas.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/lpfc -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/lpfc/lpfc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/megaraid -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/megaraid.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/megaraid/megaraid_mbox.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/megaraid/megaraid_mm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/megaraid/megaraid_sas.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/mvsas -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/mvsas/mvsas.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/nsp32.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/osd -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/osd/libosd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/osd/osd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/pcmcia -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/pcmcia/aha152x_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/pcmcia/fdomain_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/pcmcia/nsp_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/pcmcia/qlogic_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/pcmcia/sym53c500_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/pmcraid.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/ppa.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/qla1280.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/qla2xxx -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/qla2xxx/qla2xxx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/qla4xxx -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/qla4xxx/qla4xxx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/qlogicfas408.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/scsi_mod.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/scsi_transport_fc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/scsi_transport_iscsi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/scsi_transport_sas.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/scsi_transport_spi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/scsi_transport_srp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/scsi_wait_scan.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/sd_mod.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/ses.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/sg.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/sr_mod.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/stex.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/sym53c8xx_2 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/sym53c8xx_2/sym53c8xx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/tmscsim.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/serial -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/serial/jsm -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/serial/jsm/jsm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/serial/serial_core.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ssb -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ssb/ssb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/staging -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/staging/et131x -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/staging/et131x/et131x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/staging/slicoss -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/staging/slicoss/slicoss.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uio -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uio/uio.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uio/uio_aec.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uio/uio_cif.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uio/uio_pci_generic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uio/uio_pdrv.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uio/uio_pdrv_genirq.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uio/uio_sercos3.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uio/uio_smx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/atm -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/atm/cxacru.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/atm/speedtch.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/atm/ueagle-atm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/atm/usbatm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/atm/xusbatm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/class -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/class/cdc-acm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/class/cdc-wdm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/class/usblp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/class/usbtmc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/core -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/core/usbcore.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/host -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/host/ehci-hcd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/host/hwa-hc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/host/isp116x-hcd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/host/isp1362-hcd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/host/ohci-hcd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/host/oxu210hp-hcd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/host/r8a66597-hcd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/host/sl811-hcd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/host/u132-hcd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/host/uhci-hcd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/host/whci -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/host/whci/whci-hcd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/host/xhci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/misc -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/misc/berry_charge.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/misc/cypress_cy7c63.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/misc/cytherm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/misc/emi26.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/misc/emi62.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/misc/ftdi-elan.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/misc/iowarrior.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/misc/isight_firmware.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/misc/sisusbvga -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/misc/sisusbvga/sisusbvga.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/misc/usblcd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/misc/usbled.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/misc/usbsevseg.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/misc/uss720.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/misc/vstusb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/otg -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/otg/nop-usb-xceiv.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/aircable.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/ark3116.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/belkin_sa.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/ch341.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/cp210x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/cypress_m8.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/digi_acceleport.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/empeg.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/ftdi_sio.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/garmin_gps.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/hp4x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/io_edgeport.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/ipw.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/iuu_phoenix.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/keyspan_pda.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/mct_u232.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/mos7720.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/mos7840.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/moto_modem.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/opticon.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/option.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/oti6858.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/pl2303.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/safe_serial.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/siemens_mpi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/sierra.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/spcp8x5.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/symbolserial.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/ti_usb_3410_5052.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/usbserial.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/whiteheat.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/storage -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/storage/ums-alauda.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/storage/ums-cypress.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/storage/ums-freecom.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/storage/ums-isd200.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/storage/ums-jumpshot.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/storage/ums-karma.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/storage/ums-onetouch.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/storage/ums-sddr09.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/storage/ums-sddr55.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/storage/ums-usbat.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/storage/usb-storage.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/wusbcore -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/wusbcore/wusb-cbaf.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/wusbcore/wusb-wa.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/wusbcore/wusbcore.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uwb -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uwb/hwa-rc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uwb/i1480 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uwb/i1480/dfu -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uwb/i1480/dfu/i1480-dfu-usb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uwb/i1480/i1480-est.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uwb/i1480/i1480u-wlp -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uwb/i1480/i1480u-wlp/i1480u-wlp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uwb/umc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uwb/uwb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uwb/whc-rc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uwb/whci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uwb/wlp -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uwb/wlp/wlp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/arkfb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/aty -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/aty/aty128fb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/aty/atyfb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/aty/radeonfb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/backlight -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/backlight/cr_bllcd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/backlight/generic_bl.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/backlight/kb3886_bl.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/backlight/lcd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/backlight/mbp_nvidia_bl.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/backlight/platform_lcd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/backlight/progear_bl.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/backlight/wm831x_bl.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/broadsheetfb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/cirrusfb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/cyber2000fb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/display -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/display/display.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/fb_ddc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/fb_sys_fops.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/geode -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/geode/gx1fb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/geode/gxfb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/geode/lxfb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/i810 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/i810/i810fb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/kyro -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/kyro/kyrofb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/macmodes.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/matrox -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/matrox/g450_pll.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/matrox/i2c-matroxfb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/matrox/matroxfb_DAC1064.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/matrox/matroxfb_Ti3026.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/matrox/matroxfb_accel.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/matrox/matroxfb_base.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/matrox/matroxfb_crtc2.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/matrox/matroxfb_g450.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/matrox/matroxfb_maven.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/matrox/matroxfb_misc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/mb862xx -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/mb862xx/mb862xxfb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/metronomefb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/neofb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/nvidia -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/nvidia/nvidiafb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/output.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/pm2fb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/pm3fb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/riva -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/riva/rivafb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/s3fb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/savage -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/savage/savagefb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/sis -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/sis/sisfb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/sm501fb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/sstfb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/svgalib.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/syscopyarea.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/sysfillrect.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/sysimgblt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/tdfxfb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/tmiofb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/tridentfb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/uvesafb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/vermilion -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/vermilion/crvml.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/vermilion/vmlfb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/vgastate.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/via -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/via/viafb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/vt8623fb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/w1 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/w1/masters -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/w1/masters/ds2482.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/w1/masters/ds2490.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/w1/masters/matrox_w1.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/w1/slaves -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/w1/slaves/w1_bq27000.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/w1/slaves/w1_ds2431.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/w1/slaves/w1_ds2433.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/w1/slaves/w1_ds2760.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/w1/slaves/w1_smem.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/w1/slaves/w1_therm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/w1/wire.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/acquirewdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/advantechwdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/alim1535_wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/alim7101_wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/cpu5wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/eurotechwdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/hpwdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/i6300esb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/iTCO_wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/ib700wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/ibmasr.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/it8712f_wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/it87_wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/machzwd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/pc87413_wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/pcwd_pci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/pcwd_usb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/sbc60xxwdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/sbc7240_wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/sbc8360.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/sbc_epx_c3.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/sbc_fitpc2_wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/sc1200wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/sc520_wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/sch311x_wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/scx200_wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/smsc37b787_wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/softdog.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/w83627hf_wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/w83697hf_wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/w83697ug_wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/w83877f_wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/w83977f_wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/wafer5823wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/wdt_pci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/wm831x_wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/wm8350_wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/xen -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/xen/blktap2 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/xen/blktap2/blktap.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/xen/scsiback -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/xen/scsiback/xen-scsibk.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/xen/scsifront -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/xen/scsifront/xenscsi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/xen/usbback -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/xen/usbback/usbbk.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/xen/usbfront -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/xen/usbfront/xen-hcd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/autofs -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/autofs/autofs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/autofs4 -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/autofs4/autofs4.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/cifs -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/cifs/cifs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/ecryptfs -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/ecryptfs/ecryptfs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/exportfs -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/exportfs/exportfs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/ext2 -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/ext2/ext2.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/ext3 -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/ext3/ext3.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/ext4 -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/ext4/ext4.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/fat -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/fat/fat.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/fat/vfat.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/fuse -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/fuse/cuse.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/fuse/fuse.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/isofs -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/isofs/isofs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/jbd -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/jbd/jbd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/jbd2 -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/jbd2/jbd2.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/jffs2 -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/jffs2/jffs2.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/jfs -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/jfs/jfs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/lockd -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/lockd/lockd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/mbcache.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/nfs -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/nfs/nfs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/nfs_common -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/nfs_common/nfs_acl.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/nfsd -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/nfsd/nfsd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/quota -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/quota/quota_tree.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/quota/quota_v1.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/quota/quota_v2.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/reiser4 -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/reiser4/reiser4.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/reiserfs -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/reiserfs/reiserfs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/smbfs -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/smbfs/smbfs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/udf -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/udf/udf.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/ufs -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/ufs/xfs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/xfs -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/xfs/xfs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/lib -#lib/modules/2.6.32.61-ipfire-xen/kernel/lib/crc-ccitt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/lib/crc-itu-t.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/lib/crc-t10dif.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/lib/crc16.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/lib/crc7.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/lib/libcrc32c.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/lib/lzo -#lib/modules/2.6.32.61-ipfire-xen/kernel/lib/lzo/lzo_compress.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/lib/lzo/lzo_decompress.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/lib/ts_bm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/lib/ts_fsm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/lib/ts_kmp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/802 -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/802/garp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/802/p8022.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/802/psnap.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/802/stp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/8021q -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/8021q/8021q.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/atm -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/atm/atm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/atm/br2684.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/atm/clip.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/atm/pppoatm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bluetooth -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bluetooth/bluetooth.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bluetooth/bnep -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bluetooth/bnep/bnep.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bluetooth/cmtp -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bluetooth/cmtp/cmtp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bluetooth/hidp -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bluetooth/hidp/hidp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bluetooth/l2cap.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bluetooth/rfcomm -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bluetooth/rfcomm/rfcomm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bluetooth/sco.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/bridge.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebt_802_3.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebt_among.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebt_arp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebt_arpreply.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebt_dnat.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebt_ip.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebt_ip6.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebt_limit.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebt_log.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebt_mark.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebt_mark_m.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebt_nflog.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebt_pkttype.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebt_redirect.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebt_snat.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebt_stp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebt_ulog.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebt_vlan.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebtable_broute.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebtable_filter.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebtable_nat.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebtables.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ieee802154 -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ieee802154/af_802154.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ieee802154/nl802154.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ieee802154/wpan-class.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4 -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/ah4.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/esp4.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/inet_diag.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/ip_gre.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/ipcomp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/ipip.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/arp_tables.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/arpt_mangle.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/arptable_filter.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/ip_queue.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/ip_tables.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/ipt_CLUSTERIP.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ECN.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/ipt_LOG.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/ipt_MASQUERADE.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/ipt_NETMAP.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/ipt_REDIRECT.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/ipt_REJECT.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ULOG.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/ipt_addrtype.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ah.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ecn.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ipp2p.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/iptable_filter.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/iptable_mangle.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/iptable_nat.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/iptable_raw.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/nf_conntrack_ipv4.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/nf_defrag_ipv4.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_amanda.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_ftp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_h323.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_irc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_pptp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_proto_dccp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_proto_gre.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_proto_sctp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_proto_udplite.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_sip.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_snmp_basic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_tftp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/tcp_bic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/tcp_cubic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/tcp_diag.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/tcp_highspeed.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/tcp_htcp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/tcp_hybla.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/tcp_illinois.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/tcp_lp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/tcp_scalable.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/tcp_vegas.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/tcp_veno.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/tcp_westwood.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/tcp_yeah.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/tunnel4.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/xfrm4_tunnel.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6 -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/ah6.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/esp6.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/ip6_tunnel.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/ipcomp6.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/ipv6.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/mip6.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/netfilter -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/netfilter/ip6_queue.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/netfilter/ip6_tables.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_LOG.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_REJECT.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_ah.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_eui64.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_frag.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_hbh.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_ipv6header.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_mh.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_rt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/netfilter/ip6table_filter.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/netfilter/ip6table_mangle.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/netfilter/ip6table_raw.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/netfilter/nf_conntrack_ipv6.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/sit.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/tunnel6.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/xfrm6_mode_beet.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/xfrm6_mode_ro.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/xfrm6_mode_transport.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/xfrm6_mode_tunnel.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/xfrm6_tunnel.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/irda -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/irda/ircomm -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/irda/ircomm/ircomm-tty.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/irda/ircomm/ircomm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/irda/irda.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/irda/irlan -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/irda/irlan/irlan.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/irda/irnet -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/irda/irnet/irnet.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/key -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/key/af_key.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/llc -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/llc/llc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/mac80211 -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/mac80211/mac80211.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/ipvs -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/ipvs/ip_vs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/nf_conntrack.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/nf_conntrack_amanda.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/nf_conntrack_ftp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/nf_conntrack_h323.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/nf_conntrack_irc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/nf_conntrack_netbios_ns.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/nf_conntrack_netlink.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/nf_conntrack_pptp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/nf_conntrack_proto_dccp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/nf_conntrack_proto_gre.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/nf_conntrack_proto_sctp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/nf_conntrack_proto_udplite.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/nf_conntrack_sane.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/nf_conntrack_sip.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/nf_conntrack_tftp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/nf_tproxy_core.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/nfnetlink.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/nfnetlink_log.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/nfnetlink_queue.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/x_tables.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_CLASSIFY.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_CONNMARK.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_DSCP.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_HL.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_IMQ.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_LED.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_MARK.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_NFLOG.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_NFQUEUE.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_NOTRACK.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_RATEEST.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_TCPMSS.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_TCPOPTSTRIP.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_TPROXY.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_TRACE.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_cluster.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_comment.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_connbytes.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_connlimit.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_connmark.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_conntrack.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_dccp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_dscp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_esp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_hashlimit.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_helper.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_hl.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_iprange.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_layer7.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_length.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_limit.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_mac.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_mark.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_multiport.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_osf.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_owner.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_physdev.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_pkttype.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_policy.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_quota.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_rateest.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_realm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_recent.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_sctp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_socket.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_state.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_statistic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_string.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_tcpmss.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_tcpudp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_time.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_u32.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/phonet -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/phonet/phonet.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/phonet/pn_pep.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/rds -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/rds/rds.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/rds/rds_tcp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/rfkill -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/rfkill/rfkill.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/rxrpc -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/rxrpc/af-rxrpc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/rxrpc/rxkad.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/act_gact.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/act_ipt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/act_mirred.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/act_nat.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/act_pedit.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/act_police.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/act_skbedit.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/cls_basic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/cls_flow.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/cls_fw.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/cls_route.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/cls_rsvp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/cls_rsvp6.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/cls_tcindex.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/cls_u32.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/em_cmp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/em_meta.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/em_nbyte.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/em_text.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/em_u32.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/sch_atm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/sch_cbq.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/sch_drr.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/sch_dsmark.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/sch_gred.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/sch_hfsc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/sch_htb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/sch_ingress.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/sch_multiq.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/sch_netem.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/sch_prio.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/sch_red.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/sch_sfq.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/sch_tbf.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/sch_teql.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sunrpc -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sunrpc/auth_gss -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sunrpc/sunrpc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/wimax -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/wimax/wimax.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/wireless -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/wireless/cfg80211.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/wireless/lib80211.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/wireless/lib80211_crypt_ccmp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/wireless/lib80211_crypt_tkip.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/wireless/lib80211_crypt_wep.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/xfrm -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/xfrm/xfrm_ipcomp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/xfrm/xfrm_user.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/ac97_bus.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/core -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/core/oss -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/core/oss/snd-mixer-oss.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/core/oss/snd-pcm-oss.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/core/seq -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/core/seq/oss -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/core/seq/oss/snd-seq-oss.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/core/seq/snd-seq-device.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/core/seq/snd-seq-dummy.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/core/seq/snd-seq-midi-emul.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/core/seq/snd-seq-midi-event.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/core/seq/snd-seq-midi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/core/seq/snd-seq-virmidi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/core/seq/snd-seq.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/core/snd-hwdep.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/core/snd-page-alloc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/core/snd-pcm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/core/snd-rawmidi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/core/snd-timer.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/core/snd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/drivers -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/drivers/mpu401 -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/drivers/mpu401/snd-mpu401-uart.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/drivers/mpu401/snd-mpu401.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/drivers/opl3 -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/drivers/opl3/snd-opl3-lib.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/drivers/opl3/snd-opl3-synth.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/drivers/snd-dummy.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/drivers/snd-mtpav.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/drivers/snd-mts64.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/drivers/snd-portman2x4.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/drivers/snd-serial-u16550.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/drivers/snd-virmidi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/drivers/vx -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/drivers/vx/snd-vx-lib.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/i2c -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/i2c/other -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/i2c/other/snd-ak4114.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/i2c/other/snd-ak4117.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/i2c/other/snd-ak4xxx-adda.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/i2c/other/snd-pt2258.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/i2c/snd-cs8427.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/i2c/snd-i2c.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/isa -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/isa/sb -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/isa/sb/snd-sb-common.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/isa/sb/snd-sb16-dsp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/ac97 -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/ac97/snd-ac97-codec.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/ali5451 -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/ali5451/snd-ali5451.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/au88x0 -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/au88x0/snd-au8810.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/au88x0/snd-au8820.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/au88x0/snd-au8830.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/ca0106 -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/ca0106/snd-ca0106.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/cs46xx -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/cs46xx/snd-cs46xx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/cs5535audio -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/cs5535audio/snd-cs5535audio.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/ctxfi -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/ctxfi/snd-ctxfi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/echoaudio -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/echoaudio/snd-darla20.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/echoaudio/snd-darla24.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/echoaudio/snd-echo3g.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/echoaudio/snd-gina20.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/echoaudio/snd-gina24.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigo.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigodj.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigodjx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigoio.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigoiox.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/echoaudio/snd-layla20.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/echoaudio/snd-layla24.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/echoaudio/snd-mia.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/echoaudio/snd-mona.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/emu10k1 -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/emu10k1/snd-emu10k1-synth.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/emu10k1/snd-emu10k1.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/emu10k1/snd-emu10k1x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/hda -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-analog.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-atihdmi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-ca0110.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-cirrus.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-cmedia.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-conexant.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-idt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-intelhdmi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-nvhdmi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-realtek.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-si3054.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-via.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/hda/snd-hda-intel.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/ice1712 -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/ice1712/snd-ice1712.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/ice1712/snd-ice1724.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/ice1712/snd-ice17xx-ak4xxx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/korg1212 -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/korg1212/snd-korg1212.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/lx6464es -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/lx6464es/snd-lx6464es.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/mixart -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/mixart/snd-mixart.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/nm256 -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/nm256/snd-nm256.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/oxygen -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/oxygen/snd-hifier.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/oxygen/snd-oxygen-lib.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/oxygen/snd-oxygen.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/oxygen/snd-virtuoso.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/pcxhr -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/pcxhr/snd-pcxhr.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/riptide -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/riptide/snd-riptide.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/rme9652 -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/rme9652/snd-hdsp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/rme9652/snd-hdspm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/rme9652/snd-rme9652.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-ad1889.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-als300.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-als4000.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-atiixp-modem.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-atiixp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-bt87x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-cmipci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-cs4281.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-cs5530.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-ens1370.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-ens1371.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-es1938.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-es1968.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-fm801.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-intel8x0.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-intel8x0m.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-maestro3.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-rme32.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-rme96.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-sis7019.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-sonicvibes.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-via82xx-modem.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-via82xx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/trident -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/trident/snd-trident.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/vx222 -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/vx222/snd-vx222.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/ymfpci -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/ymfpci/snd-ymfpci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pcmcia -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pcmcia/pdaudiocf -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pcmcia/pdaudiocf/snd-pdaudiocf.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pcmcia/vx -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pcmcia/vx/snd-vxpocket.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-ad73311.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-ak4535.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-ak4642.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-cs4270.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-l3.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-max9877.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-pcm3008.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-spdif.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-ssm2602.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-tlv320aic23.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-tlv320aic3x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-uda134x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-uda1380.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm-hubs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8350.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8400.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8510.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8523.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8580.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8728.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8731.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8750.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8753.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8776.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8900.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8903.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8940.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8960.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8961.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8971.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8974.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8988.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8990.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8993.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm9081.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/snd-soc-core.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soundcore.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/synth -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/synth/emux -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/synth/emux/snd-emux-synth.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/synth/snd-util-mem.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/usb -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/usb/caiaq -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/usb/caiaq/snd-usb-caiaq.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/usb/snd-usb-audio.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/usb/snd-usb-lib.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/usb/usx2y -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/usb/usx2y/snd-usb-us122l.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/usb/usx2y/snd-usb-usx2y.ko -#lib/modules/2.6.32.61-ipfire-xen/modules.alias -#lib/modules/2.6.32.61-ipfire-xen/modules.alias.bin -#lib/modules/2.6.32.61-ipfire-xen/modules.ccwmap -#lib/modules/2.6.32.61-ipfire-xen/modules.dep -#lib/modules/2.6.32.61-ipfire-xen/modules.dep.bin -#lib/modules/2.6.32.61-ipfire-xen/modules.ieee1394map -#lib/modules/2.6.32.61-ipfire-xen/modules.inputmap -#lib/modules/2.6.32.61-ipfire-xen/modules.isapnpmap -#lib/modules/2.6.32.61-ipfire-xen/modules.ofmap -#lib/modules/2.6.32.61-ipfire-xen/modules.order -#lib/modules/2.6.32.61-ipfire-xen/modules.pcimap -#lib/modules/2.6.32.61-ipfire-xen/modules.seriomap -#lib/modules/2.6.32.61-ipfire-xen/modules.symbols -#lib/modules/2.6.32.61-ipfire-xen/modules.symbols.bin -#lib/modules/2.6.32.61-ipfire-xen/modules.usbmap -#lib/modules/2.6.32.61-ipfire-xen/source diff --git a/config/rootfiles/packages/mysql b/config/rootfiles/packages/mysql index d214c08..0beaca8 100644 --- a/config/rootfiles/packages/mysql +++ b/config/rootfiles/packages/mysql @@ -66,7 +66,6 @@ usr/bin/mysql usr/bin/mysql_client_test usr/bin/mysql_config usr/bin/mysql_convert_table_format -usr/bin/mysql_create_system_tables usr/bin/mysql_explain_log usr/bin/mysql_find_rows usr/bin/mysql_fix_extensions @@ -101,11 +100,13 @@ usr/bin/replace usr/bin/resolve_stack_dump usr/bin/resolveip #usr/include/mysql +#usr/include/mysql/decimal.h #usr/include/mysql/errmsg.h #usr/include/mysql/keycache.h #usr/include/mysql/m_ctype.h #usr/include/mysql/m_string.h #usr/include/mysql/my_alloc.h +#usr/include/mysql/my_attribute.h #usr/include/mysql/my_config.h #usr/include/mysql/my_dbug.h #usr/include/mysql/my_dir.h @@ -115,7 +116,6 @@ usr/bin/resolveip #usr/include/mysql/my_net.h #usr/include/mysql/my_no_pthread.h #usr/include/mysql/my_pthread.h -#usr/include/mysql/my_semaphore.h #usr/include/mysql/my_sys.h #usr/include/mysql/my_xml.h #usr/include/mysql/mysql.h @@ -132,7 +132,6 @@ usr/bin/resolveip #usr/include/mysql/sslopt-longopts.h #usr/include/mysql/sslopt-vars.h #usr/include/mysql/typelib.h -#usr/info/mysql.info #usr/lib/libmysqlclient.so #usr/lib/libmysqlclient.so.15 #usr/lib/libmysqlclient.so.15.0.0 @@ -157,39 +156,60 @@ usr/bin/resolveip #usr/lib/mysql/libmystrings.a #usr/lib/mysql/libmysys.a #usr/lib/mysql/libvio.a -#usr/man/man1/msql2mysql.1 -#usr/man/man1/myisam_ftdump.1 -#usr/man/man1/myisamchk.1 -#usr/man/man1/myisamlog.1 -#usr/man/man1/myisampack.1 -#usr/man/man1/mysql.1 -#usr/man/man1/mysql.server.1 -#usr/man/man1/mysql_config.1 -#usr/man/man1/mysql_explain_log.1 -#usr/man/man1/mysql_fix_privilege_tables.1 -#usr/man/man1/mysql_upgrade.1 -#usr/man/man1/mysql_zap.1 -#usr/man/man1/mysqlaccess.1 -#usr/man/man1/mysqladmin.1 -#usr/man/man1/mysqlbinlog.1 -#usr/man/man1/mysqlcheck.1 -#usr/man/man1/mysqld.1 -#usr/man/man1/mysqld_multi.1 -#usr/man/man1/mysqld_safe.1 -#usr/man/man1/mysqldump.1 -#usr/man/man1/mysqlhotcopy.1 -#usr/man/man1/mysqlimport.1 -#usr/man/man1/mysqlman.1 -#usr/man/man1/mysqlmanager.1 -#usr/man/man1/mysqlshow.1 -#usr/man/man1/perror.1 -#usr/man/man1/replace.1 -#usr/man/man1/safe_mysqld.1 usr/sbin/mysqld usr/sbin/mysqlmanager -#usr/share/mysql +#usr/share/info/mysql.info +#usr/share/man/man1/comp_err.1 +#usr/share/man/man1/innochecksum.1 +#usr/share/man/man1/msql2mysql.1 +#usr/share/man/man1/my_print_defaults.1 +#usr/share/man/man1/myisam_ftdump.1 +#usr/share/man/man1/myisamchk.1 +#usr/share/man/man1/myisamlog.1 +#usr/share/man/man1/myisampack.1 +#usr/share/man/man1/mysql-stress-test.pl.1 +#usr/share/man/man1/mysql-test-run.pl.1 +#usr/share/man/man1/mysql.1 +#usr/share/man/man1/mysql.server.1 +#usr/share/man/man1/mysql_client_test.1 +#usr/share/man/man1/mysql_config.1 +#usr/share/man/man1/mysql_convert_table_format.1 +#usr/share/man/man1/mysql_explain_log.1 +#usr/share/man/man1/mysql_find_rows.1 +#usr/share/man/man1/mysql_fix_extensions.1 +#usr/share/man/man1/mysql_fix_privilege_tables.1 +#usr/share/man/man1/mysql_install_db.1 +#usr/share/man/man1/mysql_secure_installation.1 +#usr/share/man/man1/mysql_setpermission.1 +#usr/share/man/man1/mysql_tableinfo.1 +#usr/share/man/man1/mysql_tzinfo_to_sql.1 +#usr/share/man/man1/mysql_upgrade.1 +#usr/share/man/man1/mysql_waitpid.1 +#usr/share/man/man1/mysql_zap.1 +#usr/share/man/man1/mysqlaccess.1 +#usr/share/man/man1/mysqladmin.1 +#usr/share/man/man1/mysqlbinlog.1 +#usr/share/man/man1/mysqlbug.1 +#usr/share/man/man1/mysqlcheck.1 +#usr/share/man/man1/mysqld_multi.1 +#usr/share/man/man1/mysqld_safe.1 +#usr/share/man/man1/mysqldump.1 +#usr/share/man/man1/mysqldumpslow.1 +#usr/share/man/man1/mysqlhotcopy.1 +#usr/share/man/man1/mysqlimport.1 +#usr/share/man/man1/mysqlman.1 +#usr/share/man/man1/mysqlshow.1 +#usr/share/man/man1/mysqltest.1 +#usr/share/man/man1/perror.1 +#usr/share/man/man1/replace.1 +#usr/share/man/man1/resolve_stack_dump.1 +#usr/share/man/man1/resolveip.1 +#usr/share/man/man1/safe_mysqld.1 +#usr/share/man/man8/mysqld.8 +#usr/share/man/man8/mysqlmanager.8 +usr/share/mysql #usr/share/mysql/binary-configure -usr/share/mysql/charsets +#usr/share/mysql/charsets #usr/share/mysql/charsets/Index.xml #usr/share/mysql/charsets/README #usr/share/mysql/charsets/armscii8.xml @@ -223,15 +243,15 @@ usr/share/mysql/charsets #usr/share/mysql/dutch #usr/share/mysql/dutch/errmsg.sys #usr/share/mysql/english -usr/share/mysql/english/errmsg.sys -usr/share/mysql/errmsg.txt +#usr/share/mysql/english/errmsg.sys +#usr/share/mysql/errmsg.txt #usr/share/mysql/estonian #usr/share/mysql/estonian/errmsg.sys #usr/share/mysql/fill_help_tables.sql #usr/share/mysql/french #usr/share/mysql/french/errmsg.sys #usr/share/mysql/german -usr/share/mysql/german/errmsg.sys +#usr/share/mysql/german/errmsg.sys #usr/share/mysql/greek #usr/share/mysql/greek/errmsg.sys #usr/share/mysql/hungarian @@ -252,6 +272,10 @@ usr/share/mysql/german/errmsg.sys #usr/share/mysql/mysql-log-rotate #usr/share/mysql/mysql.server #usr/share/mysql/mysql_fix_privilege_tables.sql +#usr/share/mysql/mysql_system_tables.sql +#usr/share/mysql/mysql_system_tables_data.sql +#usr/share/mysql/mysql_test_data_timezone.sql +#usr/share/mysql/mysqld_multi.server #usr/share/mysql/ndb-config-2-node.ini #usr/share/mysql/norwegian #usr/share/mysql/norwegian-ny @@ -275,4 +299,5 @@ usr/share/mysql/german/errmsg.sys #usr/share/mysql/swedish/errmsg.sys #usr/share/mysql/ukrainian #usr/share/mysql/ukrainian/errmsg.sys +var/ipfire/backup/addons/includes/mysql var/run/mysql diff --git a/config/rootfiles/packages/nfs b/config/rootfiles/packages/nfs index 6fa115a..666512b 100644 --- a/config/rootfiles/packages/nfs +++ b/config/rootfiles/packages/nfs @@ -1,4 +1,3 @@ -etc/rc.d/init.d/nfs-server sbin/mount.nfs sbin/mount.nfs4 sbin/osd_login @@ -37,6 +36,7 @@ usr/sbin/start-statd #usr/share/man/man3/nfs4_uid_to_name.3 #usr/share/man/man5/exports.5 #usr/share/man/man5/idmapd.conf.5 +#usr/share/man/man5/nfs.5 #usr/share/man/man7/nfsd.7 #usr/share/man/man8/exportfs.8 #usr/share/man/man8/idmapd.8 @@ -64,4 +64,5 @@ var/lib/nfs/sm #var/lib/nfs/sm.bak var/lib/nfs/state var/lib/nfs/xtab +etc/rc.d/init.d/nfs-server var/ipfire/nfs/nfs-server diff --git a/config/rootfiles/packages/perl-DBD-SQLite b/config/rootfiles/packages/perl-DBD-SQLite new file mode 100644 index 0000000..74a1fe6 --- /dev/null +++ b/config/rootfiles/packages/perl-DBD-SQLite @@ -0,0 +1,15 @@ +#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBD/SQLite +usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBD/SQLite.pm +#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBD/SQLite/Cookbook.pod +#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/DBD/SQLite +#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/DBD/SQLite/.packlist +#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/DBD/SQLite/SQLite.bs +usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/DBD/SQLite/SQLite.so +#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/share +#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/share/dist +#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/share/dist/DBD-SQLite +#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/share/dist/DBD-SQLite/sqlite3.c +#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/share/dist/DBD-SQLite/sqlite3.h +#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/share/dist/DBD-SQLite/sqlite3ext.h +#usr/share/man/man3/DBD::SQLite.3 +#usr/share/man/man3/DBD::SQLite::Cookbook.3 diff --git a/config/rootfiles/packages/perl-DBI b/config/rootfiles/packages/perl-DBI index 188fa18..7351841 100644 --- a/config/rootfiles/packages/perl-DBI +++ b/config/rootfiles/packages/perl-DBI @@ -5,7 +5,11 @@ usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/Bundle/DBI.pm #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBD usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBD/DBM.pm usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBD/ExampleP.pm +#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBD/File usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBD/File.pm +#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBD/File/Developers.pod +#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBD/File/HowTo.pod +#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBD/File/Roadmap.pod #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBD/Gofer usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBD/Gofer.pm #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBD/Gofer/Policy @@ -15,6 +19,7 @@ usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBD/Gofer/Policy/pedan usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBD/Gofer/Policy/rush.pm #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBD/Gofer/Transport usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBD/Gofer/Transport/Base.pm +usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBD/Gofer/Transport/corostream.pm usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBD/Gofer/Transport/null.pm usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBD/Gofer/Transport/pipeone.pm usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBD/Gofer/Transport/stream.pm @@ -33,6 +38,10 @@ usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBI/Const/GetInfoType. #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBI/DBD usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBI/DBD.pm usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBI/DBD/Metadata.pm +#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBI/DBD/SqlEngine +usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBI/DBD/SqlEngine.pm +#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBI/DBD/SqlEngine/Developers.pod +#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBI/DBD/SqlEngine/HowTo.pod usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBI/FAQ.pm #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBI/Gofer usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBI/Gofer/Execute.pm @@ -54,15 +63,12 @@ usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBI/ProfileDumper/Apac usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBI/ProfileSubs.pm usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBI/ProxyServer.pm usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBI/PurePerl.pm -usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBI/Roadmap.pm #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBI/SQL usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBI/SQL/Nano.pm #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBI/Util usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBI/Util/CacheMemory.pm usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBI/Util/_accessor.pm usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/DBI/W32ODBC.pm -#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/Roadmap.pod -#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/TASKS.pod #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/Win32 usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/Win32/DBIODBC.pm #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/DBI @@ -84,12 +90,16 @@ usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/DBI/DBI.so #usr/share/man/man3/Bundle::DBI.3 #usr/share/man/man3/DBD::DBM.3 #usr/share/man/man3/DBD::File.3 +#usr/share/man/man3/DBD::File::Developers.3 +#usr/share/man/man3/DBD::File::HowTo.3 +#usr/share/man/man3/DBD::File::Roadmap.3 #usr/share/man/man3/DBD::Gofer.3 #usr/share/man/man3/DBD::Gofer::Policy::Base.3 #usr/share/man/man3/DBD::Gofer::Policy::classic.3 #usr/share/man/man3/DBD::Gofer::Policy::pedantic.3 #usr/share/man/man3/DBD::Gofer::Policy::rush.3 #usr/share/man/man3/DBD::Gofer::Transport::Base.3 +#usr/share/man/man3/DBD::Gofer::Transport::corostream.3 #usr/share/man/man3/DBD::Gofer::Transport::null.3 #usr/share/man/man3/DBD::Gofer::Transport::pipeone.3 #usr/share/man/man3/DBD::Gofer::Transport::stream.3 @@ -102,6 +112,9 @@ usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/DBI/DBI.so #usr/share/man/man3/DBI::Const::GetInfoType.3 #usr/share/man/man3/DBI::DBD.3 #usr/share/man/man3/DBI::DBD::Metadata.3 +#usr/share/man/man3/DBI::DBD::SqlEngine.3 +#usr/share/man/man3/DBI::DBD::SqlEngine::Developers.3 +#usr/share/man/man3/DBI::DBD::SqlEngine::HowTo.3 #usr/share/man/man3/DBI::FAQ.3 #usr/share/man/man3/DBI::Gofer::Execute.3 #usr/share/man/man3/DBI::Gofer::Request.3 @@ -122,6 +135,4 @@ usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/DBI/DBI.so #usr/share/man/man3/DBI::SQL::Nano.3 #usr/share/man/man3/DBI::Util::CacheMemory.3 #usr/share/man/man3/DBI::W32ODBC.3 -#usr/share/man/man3/Roadmap.3 -#usr/share/man/man3/TASKS.3 #usr/share/man/man3/Win32::DBIODBC.3 diff --git a/config/rootfiles/packages/perl-File-ReadBackwards b/config/rootfiles/packages/perl-File-ReadBackwards new file mode 100644 index 0000000..5985ef0 --- /dev/null +++ b/config/rootfiles/packages/perl-File-ReadBackwards @@ -0,0 +1,5 @@ +usr/lib/perl5/site_perl/5.12.3/File/ReadBackwards.pm +#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/File +#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/File/ReadBackwards +#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/File/ReadBackwards/.packlist +#usr/share/man/man3/File::ReadBackwards.3 diff --git a/config/rootfiles/packages/sslh b/config/rootfiles/packages/sslh index c52d156..2c67aad 100644 --- a/config/rootfiles/packages/sslh +++ b/config/rootfiles/packages/sslh @@ -1,4 +1,2 @@ -usr/local/sbin/sslh -#usr/local/share/man/man8/sslh.8.gz etc/rc.d/init.d/sslh -#usr/local/bin/sslh +usr/sbin/sslh diff --git a/config/rootfiles/packages/vdr_eepg b/config/rootfiles/packages/vdr_eepg new file mode 100644 index 0000000..17f7bc4 --- /dev/null +++ b/config/rootfiles/packages/vdr_eepg @@ -0,0 +1,2 @@ +etc/vdr/plugins/eepg +usr/lib/vdr/libvdr-eepg.so.2.0.0 diff --git a/config/rpi-firmware/config.txt b/config/rpi-firmware/config.txt index 266cfb4..37b1b2d 100644 --- a/config/rpi-firmware/config.txt +++ b/config/rpi-firmware/config.txt @@ -7,7 +7,6 @@ ############################################################################### # # GPU Memory Settings (16,32,64 ... ) -# 16MB has a issue at reboot so we use 32MB memory split ############################################################################### gpu_mem=16
diff --git a/config/u-boot/boot.scr b/config/u-boot/boot.scr index aad40ae..672b152 100755 Binary files a/config/u-boot/boot.scr and b/config/u-boot/boot.scr differ diff --git a/config/u-boot/boot.script b/config/u-boot/boot.script index 0f71815..66d7628 100755 --- a/config/u-boot/boot.script +++ b/config/u-boot/boot.script @@ -1,4 +1,7 @@ -fatload mmc 0:1 0x80000000 uImage-ipfire-omap -fatload mmc 0:1 0x81600000 uInit-ipfire-omap -setenv bootargs vram=32M console=tty1 rootwait smsc95xx.macaddr=$usbethaddr root=/dev/mmcblk0p3 ro -bootm 0x80000000 0x81600000 +fatload mmc 0:1 0x82000000 zImage-ipfire-multi +fatload mmc 0:1 0x85000000 uInit-ipfire-multi +#fatload mmc 0:1 ${fdtaddr} omap4-${board_name}.dtb +setenv bootargs video=800x600 console=tty1 rootwait smsc95xx.macaddr=$usbethaddr root=/dev/mmcblk0p3 ro +# Pandaboard has serious Problems in dt mode with kernel 3.10.x +#bootz 0x82000000 0x85000000 ${fdtaddr} +bootz 0x82000000 0x85000000 diff --git a/config/udev/90-hwrng.rules b/config/udev/90-hwrng.rules new file mode 100644 index 0000000..a939790 --- /dev/null +++ b/config/udev/90-hwrng.rules @@ -0,0 +1 @@ +ACTION=="add|remove", KERNEL=="hw_random", RUN+="/etc/rc.d/init.d/rngd udev-event" diff --git a/config/udev/blacklist b/config/udev/blacklist deleted file mode 100644 index 6b76366..0000000 --- a/config/udev/blacklist +++ /dev/null @@ -1,6 +0,0 @@ -blacklist crc_ccitt -blacklist slhc - -# Intel MEI controllers -# makes some systems hang on reboot -blacklist mei diff --git a/config/udev/blacklist.conf b/config/udev/blacklist.conf new file mode 100644 index 0000000..6b76366 --- /dev/null +++ b/config/udev/blacklist.conf @@ -0,0 +1,6 @@ +blacklist crc_ccitt +blacklist slhc + +# Intel MEI controllers +# makes some systems hang on reboot +blacklist mei diff --git a/config/udev/udev.conf b/config/udev/udev.conf new file mode 100644 index 0000000..31bb662 --- /dev/null +++ b/config/udev/udev.conf @@ -0,0 +1,4 @@ +# The initial syslog(3) priority: "err", "info", "debug" or its +# numerical equivalent. For runtime debugging, the daemons internal +# state can be changed with: "udevadm control --log-priority=<value>". +udev_log="err" diff --git a/config/updxlrator/updxlrator b/config/updxlrator/updxlrator index cdfce26..91ff8a9 100644 --- a/config/updxlrator/updxlrator +++ b/config/updxlrator/updxlrator @@ -108,8 +108,8 @@ while (<>) { # -----------------------------------------------------------
if ( - ($source_url =~ m@^[h|f]t?tp://[^?]+.(deb|rpm)$@i) || - ($source_url =~ m@^[h|f]t?tp://[^?]+/distfiles/[^?]+.(tar.gz|tar.bz2|tgz|zip|patch.bz2|gz|docx|patch|pdf|exe)$@i) + ($source_url =~ m@^[h|f]t?tp://[^?]+.(pkg.tar.xz|deb|rpm)$@i) || + ($source_url =~ m@^[h|f]t?tp://[^?]+/distfiles/[^?]+.(tar.gz|tar.bz2|tar.xz|tgz|zip|patch.bz2|gz|docx|patch|pdf|exe)$@i) ) { $xlrator_url = &check_cache($source_url,$hostaddr,$username,"Linux",$mirror); diff --git a/config/vdr/etc/setup.conf b/config/vdr/etc/setup.conf index a14aff9..749ad03 100644 --- a/config/vdr/etc/setup.conf +++ b/config/vdr/etc/setup.conf @@ -50,7 +50,6 @@ OSDWidth = 624 PauseLifetime = 1 PausePriority = 10 PrimaryDVB = 1 -PrimaryLimit = 0 RecordingDirs = 1 ResumeID = 0 SetSystemTime = 0 @@ -82,5 +81,4 @@ streamdev-server.MaxClients = 5 streamdev-server.ServerPort = 2004 streamdev-server.StartHTTPServer = 1 streamdev-server.StartServer = 1 -streamdev-server.SuspendMode = 1 streamdev-server.VTPBindIP = 0.0.0.0 diff --git a/config/vim/vimrc b/config/vim/vimrc new file mode 100644 index 0000000..18c1481 --- /dev/null +++ b/config/vim/vimrc @@ -0,0 +1,42 @@ +if v:lang =~ "utf8$" || v:lang =~ "UTF-8$" + set fileencodings=ucs-bom,utf-8,latin1 +endif + +set nocompatible +set bs=indent,eol,start " allow backspacing over everything in insert mode +set viminfo='20,"50 " read/write a .viminfo file, don't store more + " than 50 lines of registers +set history=50 " keep 50 lines of command line history +set ruler " show the cursor position all the time + +" Only do this part when compiled with support for autocommands +if has("autocmd") + augroup ipfire + autocmd! + + " In text files, always limit the width of text to 78 characters + " autocmd BufRead *.txt set tw=78 + + " When editing a file, always jump to the last cursor position + autocmd BufReadPost * + \ if line("'"") > 0 && line ("'"") <= line("$") | + \ exe "normal! g'"" | + \ endif + + " don't write swapfile on most commonly used directories for NFS mounts or USB sticks + autocmd BufNewFile,BufReadPre /media/*,/mnt/* set directory=~/tmp,/var/tmp,/tmp + + " start with spec file template + autocmd BufNewFile *.spec 0r /usr/share/vim/vimfiles/template.spec + + augroup END +endif + +syntax on +if (&term == "iterm") || (&term == "putty") + set background=dark +endif + +" Don't wake up system with blinking cursor: +" http://www.linuxpowertop.org/known.php +let &guicursor = &guicursor . ",a:blinkon0" diff --git a/config/w_scan/w_scan_start b/config/w_scan/w_scan_start index 05d9a78..c424f5f 100755 --- a/config/w_scan/w_scan_start +++ b/config/w_scan/w_scan_start @@ -109,26 +109,26 @@ clear rm -rf /tmp/channels.conf if [[ "$W_SCAN_TYPE" == *DVB-T* ]]; then echo ":->W-SCAN DVB-T $(date +%Y%m%d%H%M)" >>/tmp/channels.conf - $WSCAN -f t -c $W_SCAN_COUNTRY -C UTF-8 -o 7 >>/tmp/channels.conf + $WSCAN -f t -c $W_SCAN_COUNTRY -C UTF-8 -o 2 >>/tmp/channels.conf fi if [[ "$W_SCAN_TYPE" == *DVB-C* ]]; then echo ":->W-SCAN DVB-C $(date +%Y%m%d%H%M)" >>/tmp/channels.conf - $WSCAN -f c -c $W_SCAN_COUNTRY -C UTF-8 -o 7 >>/tmp/channels.conf + $WSCAN -f c -c $W_SCAN_COUNTRY -C UTF-8 -o 2 >>/tmp/channels.conf fi if [[ "$W_SCAN_TYPE" == *DVB-S* ]]; then for SATELLITE in $W_SCAN_SATELLITE; do echo ":->W-SCAN DVB-S $SATELLITE $(date +%Y%m%d%H%M)" >>/tmp/channels.conf - $WSCAN -f s -s $SATELLITE -C UTF-8 -o 7 >>/tmp/channels.conf + $WSCAN -f s -s $SATELLITE -C UTF-8 -o 2 >>/tmp/channels.conf done fi if [[ "$W_SCAN_TYPE" == *ATSC-T* ]]; then echo ":->W-SCAN ATSC-T $(date +%Y%m%d%H%M)" >>/tmp/channels.conf - $WSCAN -f a -A 1 -c $W_SCAN_COUNTRY -C UTF-8 -o 7 >>/tmp/channels.conf + $WSCAN -f a -A 1 -c $W_SCAN_COUNTRY -C UTF-8 -o 2 >>/tmp/channels.conf fi if [[ "$W_SCAN_TYPE" == *ATSC-C* ]]; then echo ":->W-SCAN ATSC-C $(date +%Y%m%d%H%M)" >>/tmp/channels.conf - $WSCAN -f a -A 2 -c $W_SCAN_COUNTRY -C UTF-8 -o 7 >>/tmp/channels.conf + $WSCAN -f a -A 2 -c $W_SCAN_COUNTRY -C UTF-8 -o 2 >>/tmp/channels.conf fi
# Save result to current dir. diff --git a/config/xen-image/README b/config/xen-image/README index 49c1192..3813572 100644 --- a/config/xen-image/README +++ b/config/xen-image/README @@ -1,7 +1,9 @@ -Howto install Ipfire as a paravirtualized DomU: +How to install Ipfire as a Xen DomU: + +- run xen-image-maker.sh to download and build the xen-images. + you need to be root because the skript do some loop mounts. + The script need wget and gpg for download and decode ipfire packages.
-- download image -- extract the downloaded file, be careful, you need at least 2gb - edit the file ipfire.cfg - start ipfire: "xm create ipfire.cfg" - if you get no errormessage go to console: "xm console ipfire-xen" @@ -16,8 +18,3 @@ other usefull commands from the Dom0: - shutdown the fire: "xm shutdown ipfire-xen" - reset the fire: "xm destroy ipfire-xen" - look what is going on: "xm top" or "xm list" - -++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -+ This is image is build with the normal build environment + -+ and not full tested yet + -++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ diff --git a/config/xen-image/ipfire.cfg b/config/xen-image/ipfire.cfg index eeb35c9..594c82a 100644 --- a/config/xen-image/ipfire.cfg +++ b/config/xen-image/ipfire.cfg @@ -1,6 +1,6 @@ bootloader = '/usr/bin/pygrub'
-memory = 128 +memory = 256 name = "ipfire-xen"
acpi=1 diff --git a/config/xen-image/xen-image-maker.sh b/config/xen-image/xen-image-maker.sh new file mode 100644 index 0000000..c080450 --- /dev/null +++ b/config/xen-image/xen-image-maker.sh @@ -0,0 +1,196 @@ +#/bin/bash +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2014 Arne Fitzenreiter arne_f@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +SNAME=xxxSNAMExxx +VERSION=xxxVERSIONxxx +CORE=xxxCORExxx + +KERN_TYPE=pae +KVER=xxxKVERxxx +KERN_PACK=xxxKERN_PACKxxx +KRNDOWN=http://mirror0.ipfire.org/pakfire2/$VERSION/paks + +############################################################################### +# If you really want to use outdated legacy kernel uncomment this lines. ##### +# Not recommended!!! ########################################################## +###################### +#KERN_TYPE=xen +#KVER=2.6.32.61 +#KERN_PACK=28 +#KRNDOWN=http://mirror0.ipfire.org/pakfire2/2.15/paks +############################################################################### + +SIZEboot=64 +SIZEswap=512 +SIZEroot=1024 +SIZEvar=1024 +# ct'server does not support ext4 so change this to ext3. +FSTYPE=ext4 + +############################################################################## + +SOURCEISO=$SNAME-$VERSION.i586-full-core$CORE.iso +HTTPDIR=http://download.ipfire.org/releases/ipfire-2.x/$VERSION-core$CORE + +TMPDIR=./ipfire-tmp +ISODIR=$TMPDIR/iso +MNThdd=$TMPDIR/harddisk + +IMGboot=./$SNAME-boot.img +IMGswap=./$SNAME-swap.img +IMGroot=./$SNAME-root.img +IMGvar=./$SNAME-var.img + +KERNEL=linux-$KERN_TYPE-$KVER-$KERN_PACK.ipfire + +rm -rf $TMPDIR && mkdir -p $MNThdd && mkdir -p $ISODIR +echo -------------------------------------------------------- +echo - Download $SOURCEISO ... +echo -------------------------------------------------------- +wget $HTTPDIR/$SOURCEISO -O $TMPDIR/$SOURCEISO +mount -o loop $TMPDIR/$SOURCEISO $ISODIR + +echo -------------------------------------------------------- +echo - Download $KERNEL ... +echo -------------------------------------------------------- +wget $KRNDOWN/$KERNEL -O $TMPDIR/$KERNEL.gpg +gpg -d $TMPDIR/$KERNEL.gpg > $TMPDIR/$KERNEL + +echo -------------------------------------------------------- +echo - Create Images ... +echo -------------------------------------------------------- + +#Create bootimage +dd bs=1M if=/dev/zero of=$IMGboot count=$SIZEboot +mkfs.ext2 -F $IMGboot + +#Create swapimage +dd bs=1M if=/dev/zero of=$IMGswap count=$SIZEswap +mkswap $IMGswap + +#Create rootimage +dd bs=1M if=/dev/zero of=$IMGroot count=$SIZEroot +mkfs.$FSTYPE -F $IMGroot + +#Create varimage +dd bs=1M if=/dev/zero of=$IMGvar count=$SIZEvar +mkfs.$FSTYPE -F $IMGvar + +echo -------------------------------------------------------- +echo - Intall IPFire to the Images ... +echo -------------------------------------------------------- + +# Mount Images +mount -o loop $IMGroot $MNThdd +mkdir $MNThdd/boot +mkdir $MNThdd/var +mkdir $MNThdd/var/log +mount -o loop $IMGboot $MNThdd/boot +mount -o loop $IMGvar $MNThdd/var + +# Install IPFire without kernel modules +tar -C $MNThdd/ -xvf $ISODIR/$SNAME-$VERSION.tlz --lzma \ + --exclude=lib/modules* --exclude=boot* + +#Install Kernel +tar -C $MNThdd/opt/pakfire/tmp -xvf $TMPDIR/$KERNEL +chroot $MNThdd /opt/pakfire/tmp/install.sh +rm -rf $MNThdd/opt/pakfire/tmp/* + +#Create grub menuentry for pygrub +mkdir $MNThdd/boot/grub +echo "timeout 10" > $MNThdd/boot/grub/grub.conf +echo "default 0" >> $MNThdd/boot/grub/grub.conf +echo "title IPFire ($KERN_TYPE-kernel)" >> $MNThdd/boot/grub/grub.conf +echo " kernel /vmlinuz-$KVER-ipfire-xen root=/dev/xvda3 rootdelay=10 panic=10 console=xvc0 ro" \ + >> $MNThdd/boot/grub/grub.conf +echo " initrd /ipfirerd-$KVER-$KERN_TYPE.img" >> $MNThdd/boot/grub/grub.conf +echo "# savedefault 0" >> $MNThdd/boot/grub/grub.conf + +ln -s grub.conf $MNThdd/boot/grub/menu.lst + +#create the meta-info of linux-kernel package +echo "" > $MNThdd/opt/pakfire/db/meta/linux-$KERN_TYPE +echo "Name: linux-$KERN_TYPE" >> $MNThdd/opt/pakfire/db/meta/linux-$KERN_TYPE +echo "ProgVersion: $KVER" >> $MNThdd/opt/pakfire/db/meta/linux-$KERN_TYPE +echo "Release: $KERN_PACK" >> $MNThdd/opt/pakfire/db/meta/linux-$KERN_TYPE +echo "" >> $MNThdd/opt/pakfire/db/meta/linux-$KERN_TYPE +echo "" > $MNThdd/opt/pakfire/db/installed/linux-$KERN_TYPE +echo "Name: linux-$KERN_TYPE" >> $MNThdd/opt/pakfire/db/installed/linux-$KERN_TYPE +echo "ProgVersion: $KVER" >> $MNThdd/opt/pakfire/db/installed/linux-$KERN_TYPE +echo "Release: $KERN_PACK" >> $MNThdd/opt/pakfire/db/installed/linux-$KERN_TYPE +echo "" >> $MNThdd/opt/pakfire/db/installed/linux-$KERN_TYPE + +#Set default configuration +echo "LANGUAGE=en" >> $MNThdd/var/ipfire/main/settings +echo "HOSTNAME=$SNAME" >> $MNThdd/var/ipfire/main/settings +echo "THEME=ipfire" >> $MNThdd/var/ipfire/main/settings +touch $MNThdd/lib/modules/$KVER-ipfire-$KERN_TYPE/modules.dep +mkdir $MNThdd/proc +mount --bind /proc $MNThdd/proc +mount --bind /dev $MNThdd/dev +mount --bind /sys $MNThdd/sys +chroot $MNThdd /usr/bin/perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang" +sed -i -e "s|DEVICE1|/dev/xvda1|g" $MNThdd/etc/fstab +sed -i -e "s|DEVICE2|/dev/xvda2|g" $MNThdd/etc/fstab +sed -i -e "s|DEVICE3|/dev/xvda3|g" $MNThdd/etc/fstab +sed -i -e "s|DEVICE4|/dev/xvda4|g" $MNThdd/etc/fstab + +sed -i -e "s|FSTYPE|$FSTYPE|g" $MNThdd/etc/fstab + +#Remove root / fstab check +rm -rf $MNThdd/etc/rc.d/rcsysinit.d/S19checkfstab +#Remove console init +rm -rf $MNThdd/etc/rc.d/rcsysinit.d/S70console + +#Add xvc0 to securetty +echo xvc0 >> $MNThdd/etc/securetty + +#Add getty for xvc0 +echo "#Enable login for XEN" >> $MNThdd/etc/inittab +echo "8:2345:respawn:/sbin/agetty xvc0 9600 --noclear" >> $MNThdd/etc/inittab + +#Disable some initskripts +echo "#!/bin/sh" > $MNThdd/etc/rc.d/init.d/setclock +echo "#!/bin/sh" > $MNThdd/etc/rc.d/init.d/keymap + +#Remove autoload of acpi modules +sed -i -e "s|^ac|#ac|g" $MNThdd/etc/sysconfig/modules +sed -i -e "s|^battery|#battery|g" $MNThdd/etc/sysconfig/modules +sed -i -e "s|^button|#button|g" $MNThdd/etc/sysconfig/modules +sed -i -e "s|^fan|#fan|g" $MNThdd/etc/sysconfig/modules +sed -i -e "s|^processor|#processor|g" $MNThdd/etc/sysconfig/modules +sed -i -e "s|^thermal|#thermal|g" $MNThdd/etc/sysconfig/modules +sed -i -e "s|^video|#video|g" $MNThdd/etc/sysconfig/modules + +# Unmount +umount $MNThdd/proc +umount $MNThdd/dev +umount $MNThdd/sys +umount $MNThdd/var +umount $MNThdd/boot +umount $MNThdd + +umount $ISODIR +rm -rf ./ipfire-tmp +echo -------------------------------------------------------- +echo - Done. +echo -------------------------------------------------------- diff --git a/doc/language_issues.de b/doc/language_issues.de index 07d7c7c..a7d8940 100644 --- a/doc/language_issues.de +++ b/doc/language_issues.de @@ -4,6 +4,7 @@ WARNING: translation string unused: ConnSched select profile WARNING: translation string unused: HDD temperature WARNING: translation string unused: Level7 rule WARNING: translation string unused: Local VPN IP +WARNING: translation string unused: MB written WARNING: translation string unused: Ping WARNING: translation string unused: Queuelenght WARNING: translation string unused: Remote IP @@ -11,11 +12,15 @@ WARNING: translation string unused: Remote VPN IP WARNING: translation string unused: Resolv WARNING: translation string unused: TOS Bits WARNING: translation string unused: Verbose +WARNING: translation string unused: access allowed WARNING: translation string unused: access refused with this oinkcode +WARNING: translation string unused: add a new rule WARNING: translation string unused: add network WARNING: translation string unused: add new ovpn WARNING: translation string unused: add service +WARNING: translation string unused: add xtaccess WARNING: translation string unused: add-route +WARNING: translation string unused: addon WARNING: translation string unused: admin user password has been changed WARNING: translation string unused: administrator user password WARNING: translation string unused: advproxy LDAP auth @@ -38,6 +43,11 @@ WARNING: translation string unused: advproxy errmsg password incorrect WARNING: translation string unused: advproxy no cre groups WARNING: translation string unused: advproxy ssadvanced proxy WARNING: translation string unused: advproxy update notification +WARNING: translation string unused: age second +WARNING: translation string unused: age seconds +WARNING: translation string unused: age shour +WARNING: translation string unused: age sminute +WARNING: translation string unused: age ssecond WARNING: translation string unused: alcatelusb help WARNING: translation string unused: alcatelusb upload WARNING: translation string unused: all interfaces @@ -45,9 +55,11 @@ WARNING: translation string unused: all updates installed WARNING: translation string unused: allmsg WARNING: translation string unused: alt information WARNING: translation string unused: alt ovpn +WARNING: translation string unused: alt vpn WARNING: translation string unused: and WARNING: translation string unused: apply WARNING: translation string unused: archive not exist +WARNING: translation string unused: attemps WARNING: translation string unused: available updates WARNING: translation string unused: backup config floppy WARNING: translation string unused: backup configuration @@ -68,6 +80,7 @@ WARNING: translation string unused: cache management WARNING: translation string unused: cache size WARNING: translation string unused: calamaris report interval (in minutes) WARNING: translation string unused: calc traffic all x minutes +WARNING: translation string unused: cant enable xtaccess WARNING: translation string unused: capsinactive WARNING: translation string unused: ccd err iroute WARNING: translation string unused: ccd err netadr @@ -107,8 +120,14 @@ WARNING: translation string unused: ddns help freedns WARNING: translation string unused: ddns help plus WARNING: translation string unused: debugme WARNING: translation string unused: deep scan directories +WARNING: translation string unused: default ip WARNING: translation string unused: default networks WARNING: translation string unused: default services +WARNING: translation string unused: description +WARNING: translation string unused: destination ip bad +WARNING: translation string unused: destination ip or net +WARNING: translation string unused: destination net +WARNING: translation string unused: destination port overlaps WARNING: translation string unused: dhcp base ip fixed lease WARNING: translation string unused: dhcp create fixed leases WARNING: translation string unused: dhcp fixed lease err1 @@ -118,17 +137,27 @@ WARNING: translation string unused: dial user password WARNING: translation string unused: dial user password has been changed WARNING: translation string unused: dialup settings WARNING: translation string unused: disconnect +WARNING: translation string unused: disconnects WARNING: translation string unused: display traffic at home +WARNING: translation string unused: display webinterface effects +WARNING: translation string unused: dmz pinhole configuration +WARNING: translation string unused: dmz pinhole rule added +WARNING: translation string unused: dmz pinhole rule removed +WARNING: translation string unused: dmzpinholes for same net not necessary WARNING: translation string unused: dns server WARNING: translation string unused: do not log this port list WARNING: translation string unused: donation-link WARNING: translation string unused: driver +WARNING: translation string unused: dstprt range overlaps +WARNING: translation string unused: dstprt within existing WARNING: translation string unused: dynamic dns client WARNING: translation string unused: eciadsl help WARNING: translation string unused: eciadsl upload +WARNING: translation string unused: edit a rule WARNING: translation string unused: edit network WARNING: translation string unused: edit service WARNING: translation string unused: editor +WARNING: translation string unused: eg WARNING: translation string unused: email server can not be empty WARNING: translation string unused: enable javascript WARNING: translation string unused: enabled on @@ -146,10 +175,18 @@ WARNING: translation string unused: err rs 7 untartst WARNING: translation string unused: err rs 8 untar WARNING: translation string unused: error config WARNING: translation string unused: error external access +WARNING: translation string unused: esp encryption +WARNING: translation string unused: esp grouptype +WARNING: translation string unused: esp integrity +WARNING: translation string unused: esp keylife WARNING: translation string unused: expected WARNING: translation string unused: expertoptions WARNING: translation string unused: exportkey +WARNING: translation string unused: external access configuration +WARNING: translation string unused: external access rule added WARNING: translation string unused: external access rule changed +WARNING: translation string unused: external access rule removed +WARNING: translation string unused: extrahd WARNING: translation string unused: extrahd unable to read WARNING: translation string unused: extrahd unable to write WARNING: translation string unused: filename @@ -158,6 +195,10 @@ WARNING: translation string unused: firewall log viewer WARNING: translation string unused: firmware WARNING: translation string unused: firmware upload WARNING: translation string unused: force update +WARNING: translation string unused: forward firewall +WARNING: translation string unused: forwarding rule added +WARNING: translation string unused: forwarding rule removed +WARNING: translation string unused: forwarding rule updated WARNING: translation string unused: frequency WARNING: translation string unused: fritzdsl help WARNING: translation string unused: fritzdsl upload @@ -166,6 +207,38 @@ WARNING: translation string unused: from email pw WARNING: translation string unused: from email server WARNING: translation string unused: from email user WARNING: translation string unused: from warn email bad +WARNING: translation string unused: fwdfw MODE1 +WARNING: translation string unused: fwdfw MODE2 +WARNING: translation string unused: fwdfw addrule +WARNING: translation string unused: fwdfw err nosrcip +WARNING: translation string unused: fwdfw err notgtip +WARNING: translation string unused: fwdfw err prot_port1 +WARNING: translation string unused: fwdfw final_rule +WARNING: translation string unused: fwdfw from +WARNING: translation string unused: fwdfw ipsec network +WARNING: translation string unused: fwdfw man port +WARNING: translation string unused: fwdfw natport used +WARNING: translation string unused: fwdfw p2p txt +WARNING: translation string unused: fwdfw rule action +WARNING: translation string unused: fwdfw rules +WARNING: translation string unused: fwdfw std network +WARNING: translation string unused: fwdfw till +WARNING: translation string unused: fwdfw time +WARNING: translation string unused: fwdfw xt access +WARNING: translation string unused: fwhost attention +WARNING: translation string unused: fwhost blue +WARNING: translation string unused: fwhost changeremark +WARNING: translation string unused: fwhost err addrgrp +WARNING: translation string unused: fwhost err hostorip +WARNING: translation string unused: fwhost err mac +WARNING: translation string unused: fwhost green +WARNING: translation string unused: fwhost hosts +WARNING: translation string unused: fwhost ipadr +WARNING: translation string unused: fwhost ipsec host +WARNING: translation string unused: fwhost orange +WARNING: translation string unused: fwhost reread +WARNING: translation string unused: fwhost reset +WARNING: translation string unused: fwhost wo subnet WARNING: translation string unused: gen static key WARNING: translation string unused: generate WARNING: translation string unused: genkey @@ -182,6 +255,10 @@ WARNING: translation string unused: icmp selected but no type WARNING: translation string unused: icmp type WARNING: translation string unused: id WARNING: translation string unused: ids preprocessor +WARNING: translation string unused: ike encryption +WARNING: translation string unused: ike grouptype +WARNING: translation string unused: ike integrity +WARNING: translation string unused: ike lifetime WARNING: translation string unused: import WARNING: translation string unused: importkey WARNING: translation string unused: in @@ -191,6 +268,7 @@ WARNING: translation string unused: install new update WARNING: translation string unused: installed WARNING: translation string unused: installed updates WARNING: translation string unused: intrusion detection system log viewer +WARNING: translation string unused: intrusion detection system2 WARNING: translation string unused: invalid cache size WARNING: translation string unused: invalid date entered WARNING: translation string unused: invalid downlink speed @@ -203,6 +281,7 @@ WARNING: translation string unused: invalid upstream proxy username or password WARNING: translation string unused: invert WARNING: translation string unused: ip address in use WARNING: translation string unused: ipfire side +WARNING: translation string unused: ipsec no connections WARNING: translation string unused: iptable rules WARNING: translation string unused: isdn WARNING: translation string unused: isdn settings @@ -220,6 +299,7 @@ WARNING: translation string unused: local hard disk WARNING: translation string unused: localkeyfile WARNING: translation string unused: log enabled WARNING: translation string unused: log viewer +WARNING: translation string unused: logging WARNING: translation string unused: loosedirectorychecking WARNING: translation string unused: ls_dhcpd WARNING: translation string unused: ls_disk space @@ -245,6 +325,7 @@ WARNING: translation string unused: mbmon value WARNING: translation string unused: min size WARNING: translation string unused: missing dat WARNING: translation string unused: missing gz +WARNING: translation string unused: mode WARNING: translation string unused: modem on com1 WARNING: translation string unused: modem on com2 WARNING: translation string unused: modem on com3 @@ -261,6 +342,7 @@ WARNING: translation string unused: monthly volume start day short WARNING: translation string unused: mount WARNING: translation string unused: mtu QoS WARNING: translation string unused: nat-traversal +WARNING: translation string unused: net WARNING: translation string unused: net address WARNING: translation string unused: net config type WARNING: translation string unused: net config type help @@ -269,6 +351,7 @@ WARNING: translation string unused: network added WARNING: translation string unused: network configuration WARNING: translation string unused: network removed WARNING: translation string unused: network status information +WARNING: translation string unused: network time WARNING: translation string unused: network traffic graphs WARNING: translation string unused: network updated WARNING: translation string unused: networks settings @@ -286,6 +369,7 @@ WARNING: translation string unused: o-no WARNING: translation string unused: o-yes WARNING: translation string unused: online help en WARNING: translation string unused: only red +WARNING: translation string unused: open to all WARNING: translation string unused: openvpn disabled WARNING: translation string unused: openvpn enabled WARNING: translation string unused: optional data @@ -296,7 +380,24 @@ WARNING: translation string unused: original WARNING: translation string unused: other countries WARNING: translation string unused: our donors WARNING: translation string unused: out +WARNING: translation string unused: outgoing firewall add ip group +WARNING: translation string unused: outgoing firewall add mac group +WARNING: translation string unused: outgoing firewall edit ip group +WARNING: translation string unused: outgoing firewall edit mac group +WARNING: translation string unused: outgoing firewall group error +WARNING: translation string unused: outgoing firewall groups +WARNING: translation string unused: outgoing firewall ip groups +WARNING: translation string unused: outgoing firewall mac groups +WARNING: translation string unused: outgoing firewall mode0 +WARNING: translation string unused: outgoing firewall mode1 +WARNING: translation string unused: outgoing firewall mode2 WARNING: translation string unused: outgoing firewall outgoing firewall reserved groupname +WARNING: translation string unused: outgoing firewall p2p description 1 +WARNING: translation string unused: outgoing firewall p2p description 2 +WARNING: translation string unused: outgoing firewall p2p description 3 +WARNING: translation string unused: outgoing firewall reset +WARNING: translation string unused: outgoing firewall view group +WARNING: translation string unused: outgoing firewall warning WARNING: translation string unused: override mtu WARNING: translation string unused: ovpn WARNING: translation string unused: ovpn config @@ -324,9 +425,11 @@ WARNING: translation string unused: pakfire updates WARNING: translation string unused: password contains illegal characters WARNING: translation string unused: password crypting key WARNING: translation string unused: passwords must be at least 6 characters in length +WARNING: translation string unused: phase1 group WARNING: translation string unused: phonebook entry WARNING: translation string unused: ping disabled WARNING: translation string unused: polfile +WARNING: translation string unused: port forwarding configuration WARNING: translation string unused: ports WARNING: translation string unused: pots WARNING: translation string unused: pppoe @@ -337,23 +440,31 @@ WARNING: translation string unused: proxy no proxy extend WARNING: translation string unused: proxy no proxy local WARNING: translation string unused: proxy port WARNING: translation string unused: psk +WARNING: translation string unused: reboot ask +WARNING: translation string unused: reboot question WARNING: translation string unused: reboot schedule -WARNING: translation string unused: rebooting +WARNING: translation string unused: reboot sure WARNING: translation string unused: refresh update list WARNING: translation string unused: released WARNING: translation string unused: removable device advice WARNING: translation string unused: reportfile WARNING: translation string unused: requested data +WARNING: translation string unused: reserved dst port +WARNING: translation string unused: reserved src port WARNING: translation string unused: restore hardware settings WARNING: translation string unused: root WARNING: translation string unused: root path WARNING: translation string unused: root user password WARNING: translation string unused: route subnet is invalid WARNING: translation string unused: router ip +WARNING: translation string unused: rsvd dst port overlap +WARNING: translation string unused: rsvd src port overlap WARNING: translation string unused: rules already up to date WARNING: translation string unused: safe removal of umounted device WARNING: translation string unused: save error +WARNING: translation string unused: select dest net WARNING: translation string unused: select media +WARNING: translation string unused: select source net WARNING: translation string unused: selecttraffic WARNING: translation string unused: send email notification WARNING: translation string unused: send test mail @@ -364,20 +475,30 @@ WARNING: translation string unused: service updated WARNING: translation string unused: servicename WARNING: translation string unused: services settings WARNING: translation string unused: shaping list options -WARNING: translation string unused: shutdown control +WARNING: translation string unused: shutdown ask +WARNING: translation string unused: shutdown sure WARNING: translation string unused: shutdown2 -WARNING: translation string unused: shutting down WARNING: translation string unused: sitekeyfile WARNING: translation string unused: smbreload +WARNING: translation string unused: source ip bad +WARNING: translation string unused: source ip in use +WARNING: translation string unused: source ip or net +WARNING: translation string unused: source net +WARNING: translation string unused: source network +WARNING: translation string unused: source port overlaps WARNING: translation string unused: squid extension methods WARNING: translation string unused: squid extension methods invalid WARNING: translation string unused: squid fix cache +WARNING: translation string unused: srcprt range overlaps +WARNING: translation string unused: srcprt within existing +WARNING: translation string unused: ssdmz pinholes WARNING: translation string unused: ssh access tip WARNING: translation string unused: ssh1 disabled WARNING: translation string unused: ssh1 enabled WARNING: translation string unused: ssh1 support WARNING: translation string unused: ssnetwork status WARNING: translation string unused: sspasswords +WARNING: translation string unused: ssport forwarding WARNING: translation string unused: ssproxy graphs WARNING: translation string unused: sssystem status WARNING: translation string unused: sstraffic graphs @@ -411,6 +532,7 @@ WARNING: translation string unused: tor accounting period daily WARNING: translation string unused: tor accounting period monthly WARNING: translation string unused: tor accounting period weekly WARNING: translation string unused: tor exit country +WARNING: translation string unused: total connection time WARNING: translation string unused: traffic back WARNING: translation string unused: traffic calc time WARNING: translation string unused: traffic calc time bad @@ -477,15 +599,18 @@ WARNING: translation string unused: warn when traffic reaches WARNING: translation string unused: web proxy configuration WARNING: translation string unused: week-graph WARNING: translation string unused: weekly firewallhits +WARNING: translation string unused: wlanap wlan services +WARNING: translation string unused: xtaccess all error WARNING: translation string unused: xtaccess bad transfert WARNING: translation string unused: year-graph WARNING: translation string unused: yearly firewallhits WARNING: untranslated string: Scan for Songs +WARNING: untranslated string: addons WARNING: untranslated string: bytes WARNING: untranslated string: community rules +WARNING: untranslated string: dead peer detection WARNING: untranslated string: emerging rules -WARNING: untranslated string: new -WARNING: untranslated string: outgoing firewall reserved groupname +WARNING: untranslated string: fwhost err hostip WARNING: untranslated string: qos add subclass WARNING: untranslated string: route config changed WARNING: untranslated string: routing config added diff --git a/doc/language_issues.en b/doc/language_issues.en index 7bdf4ca..26c8d32 100644 --- a/doc/language_issues.en +++ b/doc/language_issues.en @@ -4,6 +4,7 @@ WARNING: translation string unused: ConnSched select profile WARNING: translation string unused: HDD temperature WARNING: translation string unused: Level7 rule WARNING: translation string unused: Local VPN IP +WARNING: translation string unused: MB written WARNING: translation string unused: Ping WARNING: translation string unused: Queuelenght WARNING: translation string unused: Remote IP @@ -11,10 +12,13 @@ WARNING: translation string unused: Remote VPN IP WARNING: translation string unused: Resolv WARNING: translation string unused: TOS Bits WARNING: translation string unused: Verbose +WARNING: translation string unused: access allowed WARNING: translation string unused: access refused with this oinkcode +WARNING: translation string unused: add a new rule WARNING: translation string unused: add network WARNING: translation string unused: add new ovpn WARNING: translation string unused: add service +WARNING: translation string unused: add xtaccess WARNING: translation string unused: add-route WARNING: translation string unused: admin user password has been changed WARNING: translation string unused: administrator user password @@ -39,6 +43,11 @@ WARNING: translation string unused: advproxy no cre groups WARNING: translation string unused: advproxy ssadvanced proxy WARNING: translation string unused: advproxy update information WARNING: translation string unused: advproxy update notification +WARNING: translation string unused: age second +WARNING: translation string unused: age seconds +WARNING: translation string unused: age shour +WARNING: translation string unused: age sminute +WARNING: translation string unused: age ssecond WARNING: translation string unused: alcatelusb help WARNING: translation string unused: alcatelusb upload WARNING: translation string unused: all interfaces @@ -46,10 +55,12 @@ WARNING: translation string unused: all updates installed WARNING: translation string unused: allmsg WARNING: translation string unused: alt information WARNING: translation string unused: alt ovpn +WARNING: translation string unused: alt vpn WARNING: translation string unused: and WARNING: translation string unused: ansi t1.483 WARNING: translation string unused: apply WARNING: translation string unused: archive not exist +WARNING: translation string unused: attemps WARNING: translation string unused: available updates WARNING: translation string unused: backup archive WARNING: translation string unused: backup clear archive @@ -87,6 +98,7 @@ WARNING: translation string unused: cache management WARNING: translation string unused: cache size WARNING: translation string unused: calamaris report interval (in minutes) WARNING: translation string unused: calc traffic all x minutes +WARNING: translation string unused: cant enable xtaccess WARNING: translation string unused: capsinactive WARNING: translation string unused: ccd err iroute WARNING: translation string unused: ccd err netadr @@ -127,8 +139,14 @@ WARNING: translation string unused: ddns help freedns WARNING: translation string unused: ddns help plus WARNING: translation string unused: debugme WARNING: translation string unused: deep scan directories +WARNING: translation string unused: default ip WARNING: translation string unused: default networks WARNING: translation string unused: default services +WARNING: translation string unused: description +WARNING: translation string unused: destination ip bad +WARNING: translation string unused: destination ip or net +WARNING: translation string unused: destination net +WARNING: translation string unused: destination port overlaps WARNING: translation string unused: dhcp base ip fixed lease WARNING: translation string unused: dhcp create fixed leases WARNING: translation string unused: dhcp fixed lease err1 @@ -140,18 +158,28 @@ WARNING: translation string unused: dial user password WARNING: translation string unused: dial user password has been changed WARNING: translation string unused: dialup settings WARNING: translation string unused: disconnect +WARNING: translation string unused: disconnects WARNING: translation string unused: display traffic at home +WARNING: translation string unused: display webinterface effects +WARNING: translation string unused: dmz pinhole configuration +WARNING: translation string unused: dmz pinhole rule added +WARNING: translation string unused: dmz pinhole rule removed +WARNING: translation string unused: dmzpinholes for same net not necessary WARNING: translation string unused: dns server WARNING: translation string unused: do not log this port list WARNING: translation string unused: donation-link WARNING: translation string unused: done WARNING: translation string unused: driver +WARNING: translation string unused: dstprt range overlaps +WARNING: translation string unused: dstprt within existing WARNING: translation string unused: dynamic dns client WARNING: translation string unused: eciadsl help WARNING: translation string unused: eciadsl upload +WARNING: translation string unused: edit a rule WARNING: translation string unused: edit network WARNING: translation string unused: edit service WARNING: translation string unused: editor +WARNING: translation string unused: eg WARNING: translation string unused: email server can not be empty WARNING: translation string unused: enable javascript WARNING: translation string unused: enabled on @@ -169,10 +197,18 @@ WARNING: translation string unused: err rs 7 untartst WARNING: translation string unused: err rs 8 untar WARNING: translation string unused: error config WARNING: translation string unused: error external access +WARNING: translation string unused: esp encryption +WARNING: translation string unused: esp grouptype +WARNING: translation string unused: esp integrity +WARNING: translation string unused: esp keylife WARNING: translation string unused: expected WARNING: translation string unused: expertoptions WARNING: translation string unused: exportkey +WARNING: translation string unused: external access configuration +WARNING: translation string unused: external access rule added WARNING: translation string unused: external access rule changed +WARNING: translation string unused: external access rule removed +WARNING: translation string unused: extrahd WARNING: translation string unused: extrahd unable to read WARNING: translation string unused: extrahd unable to write WARNING: translation string unused: filename @@ -181,6 +217,10 @@ WARNING: translation string unused: firewall log viewer WARNING: translation string unused: firmware WARNING: translation string unused: firmware upload WARNING: translation string unused: force update +WARNING: translation string unused: forward firewall +WARNING: translation string unused: forwarding rule added +WARNING: translation string unused: forwarding rule removed +WARNING: translation string unused: forwarding rule updated WARNING: translation string unused: frequency WARNING: translation string unused: fritzdsl help WARNING: translation string unused: fritzdsl upload @@ -189,6 +229,38 @@ WARNING: translation string unused: from email pw WARNING: translation string unused: from email server WARNING: translation string unused: from email user WARNING: translation string unused: from warn email bad +WARNING: translation string unused: fwdfw MODE1 +WARNING: translation string unused: fwdfw MODE2 +WARNING: translation string unused: fwdfw addrule +WARNING: translation string unused: fwdfw err nosrcip +WARNING: translation string unused: fwdfw err notgtip +WARNING: translation string unused: fwdfw err prot_port1 +WARNING: translation string unused: fwdfw final_rule +WARNING: translation string unused: fwdfw from +WARNING: translation string unused: fwdfw ipsec network +WARNING: translation string unused: fwdfw man port +WARNING: translation string unused: fwdfw natport used +WARNING: translation string unused: fwdfw p2p txt +WARNING: translation string unused: fwdfw rule action +WARNING: translation string unused: fwdfw rules +WARNING: translation string unused: fwdfw std network +WARNING: translation string unused: fwdfw till +WARNING: translation string unused: fwdfw time +WARNING: translation string unused: fwdfw xt access +WARNING: translation string unused: fwhost attention +WARNING: translation string unused: fwhost blue +WARNING: translation string unused: fwhost changeremark +WARNING: translation string unused: fwhost err addrgrp +WARNING: translation string unused: fwhost err hostorip +WARNING: translation string unused: fwhost err mac +WARNING: translation string unused: fwhost green +WARNING: translation string unused: fwhost hosts +WARNING: translation string unused: fwhost ipadr +WARNING: translation string unused: fwhost ipsec host +WARNING: translation string unused: fwhost orange +WARNING: translation string unused: fwhost reread +WARNING: translation string unused: fwhost reset +WARNING: translation string unused: fwhost wo subnet WARNING: translation string unused: g.dtm WARNING: translation string unused: g.lite WARNING: translation string unused: gen static key @@ -207,6 +279,10 @@ WARNING: translation string unused: icmp selected but no type WARNING: translation string unused: icmp type WARNING: translation string unused: id WARNING: translation string unused: ids preprocessor +WARNING: translation string unused: ike encryption +WARNING: translation string unused: ike grouptype +WARNING: translation string unused: ike integrity +WARNING: translation string unused: ike lifetime WARNING: translation string unused: import WARNING: translation string unused: importkey WARNING: translation string unused: in @@ -217,6 +293,7 @@ WARNING: translation string unused: install new update WARNING: translation string unused: installed WARNING: translation string unused: installed updates WARNING: translation string unused: intrusion detection system log viewer +WARNING: translation string unused: intrusion detection system2 WARNING: translation string unused: invalid cache size WARNING: translation string unused: invalid date entered WARNING: translation string unused: invalid downlink speed @@ -229,6 +306,7 @@ WARNING: translation string unused: invalid upstream proxy username or password WARNING: translation string unused: invert WARNING: translation string unused: ip address in use WARNING: translation string unused: ipfire side +WARNING: translation string unused: ipsec no connections WARNING: translation string unused: iptable rules WARNING: translation string unused: isdn WARNING: translation string unused: isdn settings @@ -246,6 +324,7 @@ WARNING: translation string unused: local hard disk WARNING: translation string unused: localkeyfile WARNING: translation string unused: log enabled WARNING: translation string unused: log viewer +WARNING: translation string unused: logging WARNING: translation string unused: loosedirectorychecking WARNING: translation string unused: ls_dhcpd WARNING: translation string unused: ls_disk space @@ -271,6 +350,7 @@ WARNING: translation string unused: mbmon value WARNING: translation string unused: min size WARNING: translation string unused: missing dat WARNING: translation string unused: missing gz +WARNING: translation string unused: mode WARNING: translation string unused: modem on com1 WARNING: translation string unused: modem on com2 WARNING: translation string unused: modem on com3 @@ -287,6 +367,7 @@ WARNING: translation string unused: monthly volume start day short WARNING: translation string unused: mount WARNING: translation string unused: mtu QoS WARNING: translation string unused: nat-traversal +WARNING: translation string unused: net WARNING: translation string unused: net address WARNING: translation string unused: net config type WARNING: translation string unused: net config type help @@ -295,6 +376,7 @@ WARNING: translation string unused: network added WARNING: translation string unused: network configuration WARNING: translation string unused: network removed WARNING: translation string unused: network status information +WARNING: translation string unused: network time WARNING: translation string unused: network traffic graphs WARNING: translation string unused: network updated WARNING: translation string unused: networks settings @@ -313,6 +395,7 @@ WARNING: translation string unused: o-no WARNING: translation string unused: o-yes WARNING: translation string unused: online help en WARNING: translation string unused: only red +WARNING: translation string unused: open to all WARNING: translation string unused: openvpn disabled WARNING: translation string unused: openvpn enabled WARNING: translation string unused: optional data @@ -323,7 +406,24 @@ WARNING: translation string unused: original WARNING: translation string unused: other countries WARNING: translation string unused: our donors WARNING: translation string unused: out +WARNING: translation string unused: outgoing firewall add ip group +WARNING: translation string unused: outgoing firewall add mac group +WARNING: translation string unused: outgoing firewall edit ip group +WARNING: translation string unused: outgoing firewall edit mac group +WARNING: translation string unused: outgoing firewall group error +WARNING: translation string unused: outgoing firewall groups +WARNING: translation string unused: outgoing firewall ip groups +WARNING: translation string unused: outgoing firewall mac groups +WARNING: translation string unused: outgoing firewall mode0 +WARNING: translation string unused: outgoing firewall mode1 +WARNING: translation string unused: outgoing firewall mode2 WARNING: translation string unused: outgoing firewall outgoing firewall reserved groupname +WARNING: translation string unused: outgoing firewall p2p description 1 +WARNING: translation string unused: outgoing firewall p2p description 2 +WARNING: translation string unused: outgoing firewall p2p description 3 +WARNING: translation string unused: outgoing firewall reset +WARNING: translation string unused: outgoing firewall view group +WARNING: translation string unused: outgoing firewall warning WARNING: translation string unused: override mtu WARNING: translation string unused: ovpn WARNING: translation string unused: ovpn config @@ -351,9 +451,11 @@ WARNING: translation string unused: pakfire updates WARNING: translation string unused: password contains illegal characters WARNING: translation string unused: password crypting key WARNING: translation string unused: passwords must be at least 6 characters in length +WARNING: translation string unused: phase1 group WARNING: translation string unused: phonebook entry WARNING: translation string unused: ping disabled WARNING: translation string unused: polfile +WARNING: translation string unused: port forwarding configuration WARNING: translation string unused: ports WARNING: translation string unused: pots WARNING: translation string unused: pppoe @@ -365,23 +467,31 @@ WARNING: translation string unused: proxy no proxy local WARNING: translation string unused: proxy port WARNING: translation string unused: psk WARNING: translation string unused: quick control +WARNING: translation string unused: reboot ask +WARNING: translation string unused: reboot question WARNING: translation string unused: reboot schedule -WARNING: translation string unused: rebooting +WARNING: translation string unused: reboot sure WARNING: translation string unused: refresh update list WARNING: translation string unused: released WARNING: translation string unused: removable device advice WARNING: translation string unused: reportfile WARNING: translation string unused: requested data +WARNING: translation string unused: reserved dst port +WARNING: translation string unused: reserved src port WARNING: translation string unused: restore hardware settings WARNING: translation string unused: root WARNING: translation string unused: root path WARNING: translation string unused: root user password WARNING: translation string unused: route subnet is invalid WARNING: translation string unused: router ip +WARNING: translation string unused: rsvd dst port overlap +WARNING: translation string unused: rsvd src port overlap WARNING: translation string unused: rules already up to date WARNING: translation string unused: safe removal of umounted device WARNING: translation string unused: save error +WARNING: translation string unused: select dest net WARNING: translation string unused: select media +WARNING: translation string unused: select source net WARNING: translation string unused: selecttraffic WARNING: translation string unused: send email notification WARNING: translation string unused: send test mail @@ -395,20 +505,30 @@ WARNING: translation string unused: shaping add options WARNING: translation string unused: shaping list options WARNING: translation string unused: show areas WARNING: translation string unused: show lines -WARNING: translation string unused: shutdown control +WARNING: translation string unused: shutdown ask +WARNING: translation string unused: shutdown sure WARNING: translation string unused: shutdown2 -WARNING: translation string unused: shutting down WARNING: translation string unused: sitekeyfile WARNING: translation string unused: smbreload +WARNING: translation string unused: source ip bad +WARNING: translation string unused: source ip in use +WARNING: translation string unused: source ip or net +WARNING: translation string unused: source net +WARNING: translation string unused: source network +WARNING: translation string unused: source port overlaps WARNING: translation string unused: squid extension methods WARNING: translation string unused: squid extension methods invalid WARNING: translation string unused: squid fix cache +WARNING: translation string unused: srcprt range overlaps +WARNING: translation string unused: srcprt within existing +WARNING: translation string unused: ssdmz pinholes WARNING: translation string unused: ssh access tip WARNING: translation string unused: ssh1 disabled WARNING: translation string unused: ssh1 enabled WARNING: translation string unused: ssh1 support WARNING: translation string unused: ssnetwork status WARNING: translation string unused: sspasswords +WARNING: translation string unused: ssport forwarding WARNING: translation string unused: ssproxy graphs WARNING: translation string unused: sssystem status WARNING: translation string unused: sstraffic graphs @@ -444,6 +564,7 @@ WARNING: translation string unused: tor accounting period weekly WARNING: translation string unused: tor bridge enabled WARNING: translation string unused: tor errmsg invalid node id WARNING: translation string unused: tor exit country +WARNING: translation string unused: total connection time WARNING: translation string unused: traffic back WARNING: translation string unused: traffic calc time WARNING: translation string unused: traffic calc time bad @@ -512,13 +633,14 @@ WARNING: translation string unused: warn when traffic reaches WARNING: translation string unused: web proxy configuration WARNING: translation string unused: week-graph WARNING: translation string unused: weekly firewallhits +WARNING: translation string unused: wlanap wlan services +WARNING: translation string unused: xtaccess all error WARNING: translation string unused: xtaccess bad transfert WARNING: translation string unused: year-graph WARNING: translation string unused: yearly firewallhits WARNING: untranslated string: Scan for Songs WARNING: untranslated string: bytes -WARNING: untranslated string: new -WARNING: untranslated string: outgoing firewall reserved groupname +WARNING: untranslated string: fwhost err hostip WARNING: untranslated string: route config changed WARNING: untranslated string: routing config added WARNING: untranslated string: routing config changed diff --git a/doc/language_issues.es b/doc/language_issues.es index f46723e..ab8dea7 100644 --- a/doc/language_issues.es +++ b/doc/language_issues.es @@ -11,10 +11,13 @@ WARNING: translation string unused: Remote VPN IP WARNING: translation string unused: Resolv WARNING: translation string unused: TOS Bits WARNING: translation string unused: Verbose +WARNING: translation string unused: access allowed WARNING: translation string unused: access refused with this oinkcode +WARNING: translation string unused: add a new rule WARNING: translation string unused: add network WARNING: translation string unused: add new ovpn WARNING: translation string unused: add service +WARNING: translation string unused: add xtaccess WARNING: translation string unused: add-route WARNING: translation string unused: admin user password has been changed WARNING: translation string unused: administrator user password @@ -46,10 +49,12 @@ WARNING: translation string unused: all updates installed WARNING: translation string unused: allmsg WARNING: translation string unused: alt information WARNING: translation string unused: alt ovpn +WARNING: translation string unused: alt vpn WARNING: translation string unused: and WARNING: translation string unused: ansi t1.483 WARNING: translation string unused: apply WARNING: translation string unused: archive not exist +WARNING: translation string unused: attemps WARNING: translation string unused: available updates WARNING: translation string unused: backup archive WARNING: translation string unused: backup clear archive @@ -87,6 +92,7 @@ WARNING: translation string unused: cache management WARNING: translation string unused: cache size WARNING: translation string unused: calamaris report interval (in minutes) WARNING: translation string unused: calc traffic all x minutes +WARNING: translation string unused: cant enable xtaccess WARNING: translation string unused: capsinactive WARNING: translation string unused: cfg restart WARNING: translation string unused: check for net traffic update @@ -127,6 +133,11 @@ WARNING: translation string unused: debugme WARNING: translation string unused: deep scan directories WARNING: translation string unused: default networks WARNING: translation string unused: default services +WARNING: translation string unused: description +WARNING: translation string unused: destination ip bad +WARNING: translation string unused: destination ip or net +WARNING: translation string unused: destination net +WARNING: translation string unused: destination port overlaps WARNING: translation string unused: dhcp base ip fixed lease WARNING: translation string unused: dhcp create fixed leases WARNING: translation string unused: dhcp fixed lease err1 @@ -138,18 +149,29 @@ WARNING: translation string unused: dial user password WARNING: translation string unused: dial user password has been changed WARNING: translation string unused: dialup settings WARNING: translation string unused: disconnect +WARNING: translation string unused: disconnects WARNING: translation string unused: display traffic at home +WARNING: translation string unused: display webinterface effects +WARNING: translation string unused: dmz pinhole configuration +WARNING: translation string unused: dmz pinhole rule added +WARNING: translation string unused: dmz pinhole rule removed +WARNING: translation string unused: dmzpinholes for same net not necessary WARNING: translation string unused: dns server WARNING: translation string unused: do not log this port list WARNING: translation string unused: donation-link WARNING: translation string unused: done WARNING: translation string unused: driver +WARNING: translation string unused: drop output +WARNING: translation string unused: dstprt range overlaps +WARNING: translation string unused: dstprt within existing WARNING: translation string unused: dynamic dns client WARNING: translation string unused: eciadsl help WARNING: translation string unused: eciadsl upload +WARNING: translation string unused: edit a rule WARNING: translation string unused: edit network WARNING: translation string unused: edit service WARNING: translation string unused: editor +WARNING: translation string unused: eg WARNING: translation string unused: email server can not be empty WARNING: translation string unused: enable javascript WARNING: translation string unused: enabled on @@ -167,10 +189,18 @@ WARNING: translation string unused: err rs 7 untartst WARNING: translation string unused: err rs 8 untar WARNING: translation string unused: error config WARNING: translation string unused: error external access +WARNING: translation string unused: esp encryption +WARNING: translation string unused: esp grouptype +WARNING: translation string unused: esp integrity +WARNING: translation string unused: esp keylife WARNING: translation string unused: expected WARNING: translation string unused: expertoptions WARNING: translation string unused: exportkey +WARNING: translation string unused: external access configuration +WARNING: translation string unused: external access rule added WARNING: translation string unused: external access rule changed +WARNING: translation string unused: external access rule removed +WARNING: translation string unused: extrahd WARNING: translation string unused: extrahd unable to read WARNING: translation string unused: extrahd unable to write WARNING: translation string unused: filename @@ -179,6 +209,9 @@ WARNING: translation string unused: firewall log viewer WARNING: translation string unused: firmware WARNING: translation string unused: firmware upload WARNING: translation string unused: force update +WARNING: translation string unused: forwarding rule added +WARNING: translation string unused: forwarding rule removed +WARNING: translation string unused: forwarding rule updated WARNING: translation string unused: frequency WARNING: translation string unused: fritzdsl help WARNING: translation string unused: fritzdsl upload @@ -205,6 +238,10 @@ WARNING: translation string unused: icmp selected but no type WARNING: translation string unused: icmp type WARNING: translation string unused: id WARNING: translation string unused: ids preprocessor +WARNING: translation string unused: ike encryption +WARNING: translation string unused: ike grouptype +WARNING: translation string unused: ike integrity +WARNING: translation string unused: ike lifetime WARNING: translation string unused: import WARNING: translation string unused: importkey WARNING: translation string unused: in @@ -215,6 +252,7 @@ WARNING: translation string unused: install new update WARNING: translation string unused: installed WARNING: translation string unused: installed updates WARNING: translation string unused: intrusion detection system log viewer +WARNING: translation string unused: intrusion detection system2 WARNING: translation string unused: invalid cache size WARNING: translation string unused: invalid date entered WARNING: translation string unused: invalid downlink speed @@ -244,6 +282,7 @@ WARNING: translation string unused: local hard disk WARNING: translation string unused: localkeyfile WARNING: translation string unused: log enabled WARNING: translation string unused: log viewer +WARNING: translation string unused: logging WARNING: translation string unused: loosedirectorychecking WARNING: translation string unused: ls_dhcpd WARNING: translation string unused: ls_disk space @@ -269,6 +308,7 @@ WARNING: translation string unused: mbmon value WARNING: translation string unused: min size WARNING: translation string unused: missing dat WARNING: translation string unused: missing gz +WARNING: translation string unused: mode WARNING: translation string unused: modem on com1 WARNING: translation string unused: modem on com2 WARNING: translation string unused: modem on com3 @@ -285,6 +325,7 @@ WARNING: translation string unused: monthly volume start day short WARNING: translation string unused: mount WARNING: translation string unused: mtu QoS WARNING: translation string unused: nat-traversal +WARNING: translation string unused: net WARNING: translation string unused: net address WARNING: translation string unused: net config type WARNING: translation string unused: net config type help @@ -293,6 +334,7 @@ WARNING: translation string unused: network added WARNING: translation string unused: network configuration WARNING: translation string unused: network removed WARNING: translation string unused: network status information +WARNING: translation string unused: network time WARNING: translation string unused: network traffic graphs WARNING: translation string unused: network updated WARNING: translation string unused: networks settings @@ -311,6 +353,7 @@ WARNING: translation string unused: o-no WARNING: translation string unused: o-yes WARNING: translation string unused: online help en WARNING: translation string unused: only red +WARNING: translation string unused: open to all WARNING: translation string unused: optional data WARNING: translation string unused: optionsfw portlist hint WARNING: translation string unused: optionsfw warning @@ -318,8 +361,13 @@ WARNING: translation string unused: or WARNING: translation string unused: original WARNING: translation string unused: other countries WARNING: translation string unused: out +WARNING: translation string unused: outgoing firewall mode0 +WARNING: translation string unused: outgoing firewall mode1 +WARNING: translation string unused: outgoing firewall mode2 WARNING: translation string unused: outgoing firewall outgoing firewall reserved groupname WARNING: translation string unused: outgoing firewall p2p description +WARNING: translation string unused: outgoing firewall reset +WARNING: translation string unused: outgoing firewall warning WARNING: translation string unused: override mtu WARNING: translation string unused: ovpn WARNING: translation string unused: ovpn config @@ -347,9 +395,11 @@ WARNING: translation string unused: pakfire updates WARNING: translation string unused: password contains illegal characters WARNING: translation string unused: password crypting key WARNING: translation string unused: passwords must be at least 6 characters in length +WARNING: translation string unused: phase1 group WARNING: translation string unused: phonebook entry WARNING: translation string unused: ping disabled WARNING: translation string unused: polfile +WARNING: translation string unused: port forwarding configuration WARNING: translation string unused: ports WARNING: translation string unused: pots WARNING: translation string unused: pppoe @@ -361,23 +411,31 @@ WARNING: translation string unused: proxy no proxy local WARNING: translation string unused: proxy port WARNING: translation string unused: psk WARNING: translation string unused: quick control +WARNING: translation string unused: reboot ask +WARNING: translation string unused: reboot question WARNING: translation string unused: reboot schedule -WARNING: translation string unused: rebooting +WARNING: translation string unused: reboot sure WARNING: translation string unused: refresh update list WARNING: translation string unused: released WARNING: translation string unused: removable device advice WARNING: translation string unused: reportfile WARNING: translation string unused: requested data +WARNING: translation string unused: reserved dst port +WARNING: translation string unused: reserved src port WARNING: translation string unused: restore hardware settings WARNING: translation string unused: root WARNING: translation string unused: root path WARNING: translation string unused: root user password WARNING: translation string unused: route subnet is invalid WARNING: translation string unused: router ip +WARNING: translation string unused: rsvd dst port overlap +WARNING: translation string unused: rsvd src port overlap WARNING: translation string unused: rules already up to date WARNING: translation string unused: safe removal of umounted device WARNING: translation string unused: save error +WARNING: translation string unused: select dest net WARNING: translation string unused: select media +WARNING: translation string unused: select source net WARNING: translation string unused: selecttraffic WARNING: translation string unused: send email notification WARNING: translation string unused: send test mail @@ -391,20 +449,30 @@ WARNING: translation string unused: shaping add options WARNING: translation string unused: shaping list options WARNING: translation string unused: show areas WARNING: translation string unused: show lines -WARNING: translation string unused: shutdown control +WARNING: translation string unused: shutdown ask +WARNING: translation string unused: shutdown sure WARNING: translation string unused: shutdown2 -WARNING: translation string unused: shutting down WARNING: translation string unused: sitekeyfile WARNING: translation string unused: smbreload +WARNING: translation string unused: source ip bad +WARNING: translation string unused: source ip in use +WARNING: translation string unused: source ip or net +WARNING: translation string unused: source net +WARNING: translation string unused: source network +WARNING: translation string unused: source port overlaps WARNING: translation string unused: squid extension methods WARNING: translation string unused: squid extension methods invalid WARNING: translation string unused: squid fix cache +WARNING: translation string unused: srcprt range overlaps +WARNING: translation string unused: srcprt within existing +WARNING: translation string unused: ssdmz pinholes WARNING: translation string unused: ssh access tip WARNING: translation string unused: ssh1 disabled WARNING: translation string unused: ssh1 enabled WARNING: translation string unused: ssh1 support WARNING: translation string unused: ssnetwork status WARNING: translation string unused: sspasswords +WARNING: translation string unused: ssport forwarding WARNING: translation string unused: ssproxy graphs WARNING: translation string unused: sssystem status WARNING: translation string unused: sstraffic graphs @@ -433,6 +501,7 @@ WARNING: translation string unused: to email adr WARNING: translation string unused: to install an update WARNING: translation string unused: to warn email bad WARNING: translation string unused: too long 80 char max +WARNING: translation string unused: total connection time WARNING: translation string unused: traffic back WARNING: translation string unused: traffic calc time WARNING: translation string unused: traffic calc time bad @@ -497,23 +566,23 @@ WARNING: translation string unused: warn when traffic reaches WARNING: translation string unused: web proxy configuration WARNING: translation string unused: week-graph WARNING: translation string unused: weekly firewallhits +WARNING: translation string unused: wlanap wlan services +WARNING: translation string unused: xtaccess all error WARNING: translation string unused: xtaccess bad transfert WARNING: translation string unused: year-graph WARNING: translation string unused: yearly firewallhits WARNING: untranslated string: Async logging enabled +WARNING: untranslated string: MB read WARNING: untranslated string: Scan for Songs WARNING: untranslated string: Set time on boot +WARNING: untranslated string: addons WARNING: untranslated string: advproxy cache-digest WARNING: untranslated string: advproxy errmsg cache WARNING: untranslated string: advproxy errmsg invalid upstream proxy WARNING: untranslated string: advproxy errmsg proxy ports equal WARNING: untranslated string: advproxy proxy port transparent -WARNING: untranslated string: age second -WARNING: untranslated string: age seconds -WARNING: untranslated string: age shour -WARNING: untranslated string: age sminute -WARNING: untranslated string: age ssecond WARNING: untranslated string: attention +WARNING: untranslated string: bit WARNING: untranslated string: bytes WARNING: untranslated string: ccd add WARNING: untranslated string: ccd choose net @@ -528,6 +597,8 @@ WARNING: untranslated string: ccd err invalidname WARNING: untranslated string: ccd err invalidnet WARNING: untranslated string: ccd err irouteexist WARNING: untranslated string: ccd err isipsecnet +WARNING: untranslated string: ccd err isipsecrw +WARNING: untranslated string: ccd err isovpnn2n WARNING: untranslated string: ccd err isovpnnet WARNING: untranslated string: ccd err issubnet WARNING: untranslated string: ccd err name @@ -550,7 +621,15 @@ WARNING: untranslated string: ccd none WARNING: untranslated string: ccd routes WARNING: untranslated string: ccd subnet WARNING: untranslated string: ccd used +WARNING: untranslated string: count +WARNING: untranslated string: countries +WARNING: untranslated string: country codes and flags +WARNING: untranslated string: countrycode +WARNING: untranslated string: dead peer detection WARNING: untranslated string: deprecated fs warn +WARNING: untranslated string: details +WARNING: untranslated string: dnat address +WARNING: untranslated string: dns servers WARNING: untranslated string: dnsforward WARNING: untranslated string: dnsforward add a new entry WARNING: untranslated string: dnsforward configuration @@ -558,7 +637,18 @@ WARNING: untranslated string: dnsforward edit an entry WARNING: untranslated string: dnsforward entries WARNING: untranslated string: dnsforward forward_server WARNING: untranslated string: dnsforward zone +WARNING: untranslated string: downlink +WARNING: untranslated string: dpd delay +WARNING: untranslated string: dpd timeout +WARNING: untranslated string: drop action +WARNING: untranslated string: drop action1 +WARNING: untranslated string: drop action2 +WARNING: untranslated string: drop forward +WARNING: untranslated string: drop outgoing WARNING: untranslated string: emerging rules +WARNING: untranslated string: encryption +WARNING: untranslated string: entropy +WARNING: untranslated string: entropy graphs WARNING: untranslated string: fireinfo ipfire version WARNING: untranslated string: fireinfo is disabled WARNING: untranslated string: fireinfo is enabled @@ -576,36 +666,184 @@ WARNING: untranslated string: fireinfo why descr2 WARNING: untranslated string: fireinfo why enable WARNING: untranslated string: fireinfo why read more WARNING: untranslated string: fireinfo your profile id +WARNING: untranslated string: firewall rules +WARNING: untranslated string: first +WARNING: untranslated string: flag +WARNING: untranslated string: fw default drop +WARNING: untranslated string: fw settings +WARNING: untranslated string: fw settings color +WARNING: untranslated string: fw settings dropdown +WARNING: untranslated string: fw settings remark +WARNING: untranslated string: fw settings ruletable +WARNING: untranslated string: fwdfw ACCEPT +WARNING: untranslated string: fwdfw DROP +WARNING: untranslated string: fwdfw REJECT +WARNING: untranslated string: fwdfw action +WARNING: untranslated string: fwdfw additional +WARNING: untranslated string: fwdfw all icmp +WARNING: untranslated string: fwdfw change +WARNING: untranslated string: fwdfw copy +WARNING: untranslated string: fwdfw delete +WARNING: untranslated string: fwdfw dnat +WARNING: untranslated string: fwdfw dnat error +WARNING: untranslated string: fwdfw dnat extport +WARNING: untranslated string: fwdfw dnat nochoice +WARNING: untranslated string: fwdfw dnat porterr +WARNING: untranslated string: fwdfw dnat porterr2 +WARNING: untranslated string: fwdfw edit +WARNING: untranslated string: fwdfw err nosrc +WARNING: untranslated string: fwdfw err notgt +WARNING: untranslated string: fwdfw err prot_port +WARNING: untranslated string: fwdfw err remark +WARNING: untranslated string: fwdfw err ruleexists +WARNING: untranslated string: fwdfw err same +WARNING: untranslated string: fwdfw err samesub +WARNING: untranslated string: fwdfw err src_addr +WARNING: untranslated string: fwdfw err tgt_addr +WARNING: untranslated string: fwdfw err tgt_grp +WARNING: untranslated string: fwdfw err tgt_mac +WARNING: untranslated string: fwdfw err tgt_port +WARNING: untranslated string: fwdfw err time +WARNING: untranslated string: fwdfw external port nat +WARNING: untranslated string: fwdfw hint ip1 +WARNING: untranslated string: fwdfw hint ip2 +WARNING: untranslated string: fwdfw hint mac +WARNING: untranslated string: fwdfw iface +WARNING: untranslated string: fwdfw log +WARNING: untranslated string: fwdfw log rule +WARNING: untranslated string: fwdfw menu +WARNING: untranslated string: fwdfw movedown +WARNING: untranslated string: fwdfw moveup +WARNING: untranslated string: fwdfw newrule +WARNING: untranslated string: fwdfw pol allow +WARNING: untranslated string: fwdfw pol block +WARNING: untranslated string: fwdfw pol text +WARNING: untranslated string: fwdfw pol text1 +WARNING: untranslated string: fwdfw pol title +WARNING: untranslated string: fwdfw prot41 +WARNING: untranslated string: fwdfw prot41 short +WARNING: untranslated string: fwdfw red +WARNING: untranslated string: fwdfw reread +WARNING: untranslated string: fwdfw rule activate +WARNING: untranslated string: fwdfw rulepos +WARNING: untranslated string: fwdfw snat +WARNING: untranslated string: fwdfw source +WARNING: untranslated string: fwdfw sourceip +WARNING: untranslated string: fwdfw target +WARNING: untranslated string: fwdfw targetip +WARNING: untranslated string: fwdfw timeframe +WARNING: untranslated string: fwdfw toggle +WARNING: untranslated string: fwdfw togglelog +WARNING: untranslated string: fwdfw use nat +WARNING: untranslated string: fwdfw use srcport +WARNING: untranslated string: fwdfw use srv +WARNING: untranslated string: fwdfw useless rule +WARNING: untranslated string: fwdfw warn1 +WARNING: untranslated string: fwdfw wd_fri +WARNING: untranslated string: fwdfw wd_mon +WARNING: untranslated string: fwdfw wd_sat +WARNING: untranslated string: fwdfw wd_sun +WARNING: untranslated string: fwdfw wd_thu +WARNING: untranslated string: fwdfw wd_tue +WARNING: untranslated string: fwdfw wd_wed +WARNING: untranslated string: fwhost addgrp +WARNING: untranslated string: fwhost addgrpname +WARNING: untranslated string: fwhost addhost +WARNING: untranslated string: fwhost addnet +WARNING: untranslated string: fwhost addservice +WARNING: untranslated string: fwhost addservicegrp +WARNING: untranslated string: fwhost any +WARNING: untranslated string: fwhost back +WARNING: untranslated string: fwhost ccdhost +WARNING: untranslated string: fwhost ccdnet +WARNING: untranslated string: fwhost change +WARNING: untranslated string: fwhost cust addr +WARNING: untranslated string: fwhost cust grp +WARNING: untranslated string: fwhost cust net +WARNING: untranslated string: fwhost cust service +WARNING: untranslated string: fwhost cust srvgrp +WARNING: untranslated string: fwhost deleted +WARNING: untranslated string: fwhost empty +WARNING: untranslated string: fwhost err addr +WARNING: untranslated string: fwhost err empty +WARNING: untranslated string: fwhost err emptytable +WARNING: untranslated string: fwhost err groupempty +WARNING: untranslated string: fwhost err grpexist +WARNING: untranslated string: fwhost err hostexist +WARNING: untranslated string: fwhost err hostip +WARNING: untranslated string: fwhost err ip +WARNING: untranslated string: fwhost err ipcheck +WARNING: untranslated string: fwhost err ipmac +WARNING: untranslated string: fwhost err ipwithsub +WARNING: untranslated string: fwhost err isccdhost +WARNING: untranslated string: fwhost err isccdiphost +WARNING: untranslated string: fwhost err isccdipnet +WARNING: untranslated string: fwhost err isccdnet +WARNING: untranslated string: fwhost err isingrp +WARNING: untranslated string: fwhost err maxservicetcp +WARNING: untranslated string: fwhost err maxserviceudp +WARNING: untranslated string: fwhost err name +WARNING: untranslated string: fwhost err name1 +WARNING: untranslated string: fwhost err net +WARNING: untranslated string: fwhost err netexist +WARNING: untranslated string: fwhost err partofnet +WARNING: untranslated string: fwhost err port +WARNING: untranslated string: fwhost err remark +WARNING: untranslated string: fwhost err srv exists +WARNING: untranslated string: fwhost err srvexist +WARNING: untranslated string: fwhost err sub32 +WARNING: untranslated string: fwhost hint +WARNING: untranslated string: fwhost icmptype +WARNING: untranslated string: fwhost ip_mac +WARNING: untranslated string: fwhost ipsec net +WARNING: untranslated string: fwhost menu +WARNING: untranslated string: fwhost netaddress +WARNING: untranslated string: fwhost newgrp +WARNING: untranslated string: fwhost newhost +WARNING: untranslated string: fwhost newnet +WARNING: untranslated string: fwhost newservice +WARNING: untranslated string: fwhost newservicegrp +WARNING: untranslated string: fwhost ovpn_n2n +WARNING: untranslated string: fwhost port +WARNING: untranslated string: fwhost prot +WARNING: untranslated string: fwhost services +WARNING: untranslated string: fwhost srv_name +WARNING: untranslated string: fwhost stdnet +WARNING: untranslated string: fwhost type +WARNING: untranslated string: fwhost used +WARNING: untranslated string: fwhost welcome +WARNING: untranslated string: grouptype +WARNING: untranslated string: hardware support +WARNING: untranslated string: integrity +WARNING: untranslated string: invalid input for dpd delay +WARNING: untranslated string: invalid input for dpd timeout +WARNING: untranslated string: ipsec +WARNING: untranslated string: ipsec network +WARNING: untranslated string: last WARNING: untranslated string: least preferred +WARNING: untranslated string: lifetime +WARNING: untranslated string: mac filter +WARNING: untranslated string: maximum +WARNING: untranslated string: minimum WARNING: untranslated string: minute WARNING: untranslated string: most preferred -WARNING: untranslated string: new +WARNING: untranslated string: no hardware random number generator +WARNING: untranslated string: notice WARNING: untranslated string: openvpn default WARNING: untranslated string: openvpn destination port used WARNING: untranslated string: openvpn fragment allowed with udp WARNING: untranslated string: openvpn mssfix allowed with udp +WARNING: untranslated string: openvpn network WARNING: untranslated string: openvpn prefix local subnet WARNING: untranslated string: openvpn prefix openvpn subnet WARNING: untranslated string: openvpn prefix remote subnet WARNING: untranslated string: openvpn subnet is used WARNING: untranslated string: other -WARNING: untranslated string: outgoing firewall add ip group -WARNING: untranslated string: outgoing firewall add mac group -WARNING: untranslated string: outgoing firewall edit ip group -WARNING: untranslated string: outgoing firewall edit mac group -WARNING: untranslated string: outgoing firewall group error -WARNING: untranslated string: outgoing firewall groups -WARNING: untranslated string: outgoing firewall ip groups -WARNING: untranslated string: outgoing firewall mac groups WARNING: untranslated string: outgoing firewall p2p allow WARNING: untranslated string: outgoing firewall p2p deny -WARNING: untranslated string: outgoing firewall p2p description 1 -WARNING: untranslated string: outgoing firewall p2p description 2 -WARNING: untranslated string: outgoing firewall p2p description 3 -WARNING: untranslated string: outgoing firewall reserved groupname -WARNING: untranslated string: outgoing firewall view group WARNING: untranslated string: ovpn errmsg green already pushed WARNING: untranslated string: ovpn errmsg invalid ip or mask +WARNING: untranslated string: ovpn mgmt in root range WARNING: untranslated string: ovpn mtu-disc WARNING: untranslated string: ovpn mtu-disc and mtu not 1500 WARNING: untranslated string: ovpn mtu-disc maybe @@ -613,8 +851,12 @@ WARNING: untranslated string: ovpn mtu-disc no WARNING: untranslated string: ovpn mtu-disc off WARNING: untranslated string: ovpn mtu-disc with mssfix or fragment WARNING: untranslated string: ovpn mtu-disc yes +WARNING: untranslated string: ovpn no connections +WARNING: untranslated string: ovpn port in root range WARNING: untranslated string: ovpn routes push WARNING: untranslated string: ovpn routes push options +WARNING: untranslated string: p2p block +WARNING: untranslated string: p2p block save notice WARNING: untranslated string: pakfire ago WARNING: untranslated string: proxy reports WARNING: untranslated string: proxy reports daily @@ -622,12 +864,18 @@ WARNING: untranslated string: proxy reports monthly WARNING: untranslated string: proxy reports today WARNING: untranslated string: proxy reports weekly WARNING: untranslated string: qos enter bandwidths +WARNING: untranslated string: red1 WARNING: untranslated string: route config changed WARNING: untranslated string: routing config added WARNING: untranslated string: routing config changed WARNING: untranslated string: routing table WARNING: untranslated string: server restart +WARNING: untranslated string: snat new source ip address +WARNING: untranslated string: ssh WARNING: untranslated string: static routes +WARNING: untranslated string: support donation +WARNING: untranslated string: system has hwrng +WARNING: untranslated string: system has rdrand WARNING: untranslated string: system information WARNING: untranslated string: tor WARNING: untranslated string: tor accounting @@ -677,6 +925,7 @@ WARNING: untranslated string: tor traffic limit hard WARNING: untranslated string: tor traffic limit soft WARNING: untranslated string: tor traffic read written WARNING: untranslated string: tor use exit nodes +WARNING: untranslated string: uplink WARNING: untranslated string: uptime load average WARNING: untranslated string: urlfilter redirect template WARNING: untranslated string: visit us at @@ -711,4 +960,5 @@ WARNING: untranslated string: wlan client wpa mode all WARNING: untranslated string: wlan client wpa mode ccmp ccmp WARNING: untranslated string: wlan client wpa mode ccmp tkip WARNING: untranslated string: wlan client wpa mode tkip tkip +WARNING: untranslated string: wlan clients WARNING: untranslated string: wlanap country diff --git a/doc/language_issues.fr b/doc/language_issues.fr index 32aa9b5..7085978 100644 --- a/doc/language_issues.fr +++ b/doc/language_issues.fr @@ -11,10 +11,13 @@ WARNING: translation string unused: Remote VPN IP WARNING: translation string unused: Resolv WARNING: translation string unused: TOS Bits WARNING: translation string unused: Verbose +WARNING: translation string unused: access allowed WARNING: translation string unused: access refused with this oinkcode +WARNING: translation string unused: add a new rule WARNING: translation string unused: add network WARNING: translation string unused: add new ovpn WARNING: translation string unused: add service +WARNING: translation string unused: add xtaccess WARNING: translation string unused: add-route WARNING: translation string unused: admin user password has been changed WARNING: translation string unused: administrator user password @@ -46,10 +49,12 @@ WARNING: translation string unused: all updates installed WARNING: translation string unused: allmsg WARNING: translation string unused: alt information WARNING: translation string unused: alt ovpn +WARNING: translation string unused: alt vpn WARNING: translation string unused: and WARNING: translation string unused: ansi t1.483 WARNING: translation string unused: apply WARNING: translation string unused: archive not exist +WARNING: translation string unused: attemps WARNING: translation string unused: available updates WARNING: translation string unused: backup archive WARNING: translation string unused: backup clear archive @@ -87,6 +92,7 @@ WARNING: translation string unused: cache management WARNING: translation string unused: cache size WARNING: translation string unused: calamaris report interval (in minutes) WARNING: translation string unused: calc traffic all x minutes +WARNING: translation string unused: cant enable xtaccess WARNING: translation string unused: capsinactive WARNING: translation string unused: cfg restart WARNING: translation string unused: check for net traffic update @@ -127,6 +133,11 @@ WARNING: translation string unused: debugme WARNING: translation string unused: deep scan directories WARNING: translation string unused: default networks WARNING: translation string unused: default services +WARNING: translation string unused: description +WARNING: translation string unused: destination ip bad +WARNING: translation string unused: destination ip or net +WARNING: translation string unused: destination net +WARNING: translation string unused: destination port overlaps WARNING: translation string unused: dhcp base ip fixed lease WARNING: translation string unused: dhcp create fixed leases WARNING: translation string unused: dhcp fixed lease err1 @@ -138,18 +149,29 @@ WARNING: translation string unused: dial user password WARNING: translation string unused: dial user password has been changed WARNING: translation string unused: dialup settings WARNING: translation string unused: disconnect +WARNING: translation string unused: disconnects WARNING: translation string unused: display traffic at home +WARNING: translation string unused: display webinterface effects +WARNING: translation string unused: dmz pinhole configuration +WARNING: translation string unused: dmz pinhole rule added +WARNING: translation string unused: dmz pinhole rule removed +WARNING: translation string unused: dmzpinholes for same net not necessary WARNING: translation string unused: dns server WARNING: translation string unused: do not log this port list WARNING: translation string unused: donation-link WARNING: translation string unused: done WARNING: translation string unused: driver +WARNING: translation string unused: drop output +WARNING: translation string unused: dstprt range overlaps +WARNING: translation string unused: dstprt within existing WARNING: translation string unused: dynamic dns client WARNING: translation string unused: eciadsl help WARNING: translation string unused: eciadsl upload +WARNING: translation string unused: edit a rule WARNING: translation string unused: edit network WARNING: translation string unused: edit service WARNING: translation string unused: editor +WARNING: translation string unused: eg WARNING: translation string unused: email server can not be empty WARNING: translation string unused: enable javascript WARNING: translation string unused: enabled on @@ -167,10 +189,18 @@ WARNING: translation string unused: err rs 7 untartst WARNING: translation string unused: err rs 8 untar WARNING: translation string unused: error config WARNING: translation string unused: error external access +WARNING: translation string unused: esp encryption +WARNING: translation string unused: esp grouptype +WARNING: translation string unused: esp integrity +WARNING: translation string unused: esp keylife WARNING: translation string unused: expected WARNING: translation string unused: expertoptions WARNING: translation string unused: exportkey +WARNING: translation string unused: external access configuration +WARNING: translation string unused: external access rule added WARNING: translation string unused: external access rule changed +WARNING: translation string unused: external access rule removed +WARNING: translation string unused: extrahd WARNING: translation string unused: extrahd unable to read WARNING: translation string unused: extrahd unable to write WARNING: translation string unused: filename @@ -179,6 +209,9 @@ WARNING: translation string unused: firewall log viewer WARNING: translation string unused: firmware WARNING: translation string unused: firmware upload WARNING: translation string unused: force update +WARNING: translation string unused: forwarding rule added +WARNING: translation string unused: forwarding rule removed +WARNING: translation string unused: forwarding rule updated WARNING: translation string unused: frequency WARNING: translation string unused: fritzdsl help WARNING: translation string unused: fritzdsl upload @@ -205,6 +238,10 @@ WARNING: translation string unused: icmp selected but no type WARNING: translation string unused: icmp type WARNING: translation string unused: id WARNING: translation string unused: ids preprocessor +WARNING: translation string unused: ike encryption +WARNING: translation string unused: ike grouptype +WARNING: translation string unused: ike integrity +WARNING: translation string unused: ike lifetime WARNING: translation string unused: import WARNING: translation string unused: importkey WARNING: translation string unused: in @@ -215,6 +252,7 @@ WARNING: translation string unused: install new update WARNING: translation string unused: installed WARNING: translation string unused: installed updates WARNING: translation string unused: intrusion detection system log viewer +WARNING: translation string unused: intrusion detection system2 WARNING: translation string unused: invalid cache size WARNING: translation string unused: invalid date entered WARNING: translation string unused: invalid downlink speed @@ -244,6 +282,7 @@ WARNING: translation string unused: local hard disk WARNING: translation string unused: localkeyfile WARNING: translation string unused: log enabled WARNING: translation string unused: log viewer +WARNING: translation string unused: logging WARNING: translation string unused: loosedirectorychecking WARNING: translation string unused: ls_dhcpd WARNING: translation string unused: ls_disk space @@ -269,6 +308,7 @@ WARNING: translation string unused: mbmon value WARNING: translation string unused: min size WARNING: translation string unused: missing dat WARNING: translation string unused: missing gz +WARNING: translation string unused: mode WARNING: translation string unused: modem on com1 WARNING: translation string unused: modem on com2 WARNING: translation string unused: modem on com3 @@ -285,6 +325,7 @@ WARNING: translation string unused: monthly volume start day short WARNING: translation string unused: mount WARNING: translation string unused: mtu QoS WARNING: translation string unused: nat-traversal +WARNING: translation string unused: net WARNING: translation string unused: net address WARNING: translation string unused: net config type WARNING: translation string unused: net config type help @@ -293,6 +334,7 @@ WARNING: translation string unused: network added WARNING: translation string unused: network configuration WARNING: translation string unused: network removed WARNING: translation string unused: network status information +WARNING: translation string unused: network time WARNING: translation string unused: network traffic graphs WARNING: translation string unused: network updated WARNING: translation string unused: networks settings @@ -311,6 +353,7 @@ WARNING: translation string unused: o-no WARNING: translation string unused: o-yes WARNING: translation string unused: online help en WARNING: translation string unused: only red +WARNING: translation string unused: open to all WARNING: translation string unused: optional data WARNING: translation string unused: optionsfw portlist hint WARNING: translation string unused: optionsfw warning @@ -318,7 +361,24 @@ WARNING: translation string unused: or WARNING: translation string unused: original WARNING: translation string unused: other countries WARNING: translation string unused: out +WARNING: translation string unused: outgoing firewall add ip group +WARNING: translation string unused: outgoing firewall add mac group +WARNING: translation string unused: outgoing firewall edit ip group +WARNING: translation string unused: outgoing firewall edit mac group +WARNING: translation string unused: outgoing firewall group error +WARNING: translation string unused: outgoing firewall groups +WARNING: translation string unused: outgoing firewall ip groups +WARNING: translation string unused: outgoing firewall mac groups +WARNING: translation string unused: outgoing firewall mode0 +WARNING: translation string unused: outgoing firewall mode1 +WARNING: translation string unused: outgoing firewall mode2 WARNING: translation string unused: outgoing firewall outgoing firewall reserved groupname +WARNING: translation string unused: outgoing firewall p2p description 1 +WARNING: translation string unused: outgoing firewall p2p description 2 +WARNING: translation string unused: outgoing firewall p2p description 3 +WARNING: translation string unused: outgoing firewall reset +WARNING: translation string unused: outgoing firewall view group +WARNING: translation string unused: outgoing firewall warning WARNING: translation string unused: override mtu WARNING: translation string unused: ovpn WARNING: translation string unused: ovpn config @@ -346,9 +406,11 @@ WARNING: translation string unused: pakfire updates WARNING: translation string unused: password contains illegal characters WARNING: translation string unused: password crypting key WARNING: translation string unused: passwords must be at least 6 characters in length +WARNING: translation string unused: phase1 group WARNING: translation string unused: phonebook entry WARNING: translation string unused: ping disabled WARNING: translation string unused: polfile +WARNING: translation string unused: port forwarding configuration WARNING: translation string unused: ports WARNING: translation string unused: pots WARNING: translation string unused: pppoe @@ -360,23 +422,31 @@ WARNING: translation string unused: proxy no proxy local WARNING: translation string unused: proxy port WARNING: translation string unused: psk WARNING: translation string unused: quick control +WARNING: translation string unused: reboot ask +WARNING: translation string unused: reboot question WARNING: translation string unused: reboot schedule -WARNING: translation string unused: rebooting +WARNING: translation string unused: reboot sure WARNING: translation string unused: refresh update list WARNING: translation string unused: released WARNING: translation string unused: removable device advice WARNING: translation string unused: reportfile WARNING: translation string unused: requested data +WARNING: translation string unused: reserved dst port +WARNING: translation string unused: reserved src port WARNING: translation string unused: restore hardware settings WARNING: translation string unused: root WARNING: translation string unused: root path WARNING: translation string unused: root user password WARNING: translation string unused: route subnet is invalid WARNING: translation string unused: router ip +WARNING: translation string unused: rsvd dst port overlap +WARNING: translation string unused: rsvd src port overlap WARNING: translation string unused: rules already up to date WARNING: translation string unused: safe removal of umounted device WARNING: translation string unused: save error +WARNING: translation string unused: select dest net WARNING: translation string unused: select media +WARNING: translation string unused: select source net WARNING: translation string unused: selecttraffic WARNING: translation string unused: send email notification WARNING: translation string unused: send test mail @@ -390,20 +460,30 @@ WARNING: translation string unused: shaping add options WARNING: translation string unused: shaping list options WARNING: translation string unused: show areas WARNING: translation string unused: show lines -WARNING: translation string unused: shutdown control +WARNING: translation string unused: shutdown ask +WARNING: translation string unused: shutdown sure WARNING: translation string unused: shutdown2 -WARNING: translation string unused: shutting down WARNING: translation string unused: sitekeyfile WARNING: translation string unused: smbreload +WARNING: translation string unused: source ip bad +WARNING: translation string unused: source ip in use +WARNING: translation string unused: source ip or net +WARNING: translation string unused: source net +WARNING: translation string unused: source network +WARNING: translation string unused: source port overlaps WARNING: translation string unused: squid extension methods WARNING: translation string unused: squid extension methods invalid WARNING: translation string unused: squid fix cache +WARNING: translation string unused: srcprt range overlaps +WARNING: translation string unused: srcprt within existing +WARNING: translation string unused: ssdmz pinholes WARNING: translation string unused: ssh access tip WARNING: translation string unused: ssh1 disabled WARNING: translation string unused: ssh1 enabled WARNING: translation string unused: ssh1 support WARNING: translation string unused: ssnetwork status WARNING: translation string unused: sspasswords +WARNING: translation string unused: ssport forwarding WARNING: translation string unused: ssproxy graphs WARNING: translation string unused: sssystem status WARNING: translation string unused: sstraffic graphs @@ -432,6 +512,7 @@ WARNING: translation string unused: to email adr WARNING: translation string unused: to install an update WARNING: translation string unused: to warn email bad WARNING: translation string unused: too long 80 char max +WARNING: translation string unused: total connection time WARNING: translation string unused: traffic back WARNING: translation string unused: traffic calc time WARNING: translation string unused: traffic calc time bad @@ -498,21 +579,20 @@ WARNING: translation string unused: warn when traffic reaches WARNING: translation string unused: web proxy configuration WARNING: translation string unused: week-graph WARNING: translation string unused: weekly firewallhits +WARNING: translation string unused: xtaccess all error WARNING: translation string unused: xtaccess bad transfert WARNING: translation string unused: year-graph WARNING: translation string unused: yearly firewallhits +WARNING: untranslated string: MB read WARNING: untranslated string: Scan for Songs +WARNING: untranslated string: addons WARNING: untranslated string: advproxy cache-digest WARNING: untranslated string: advproxy errmsg cache WARNING: untranslated string: advproxy errmsg invalid upstream proxy WARNING: untranslated string: advproxy errmsg proxy ports equal WARNING: untranslated string: advproxy proxy port transparent -WARNING: untranslated string: age second -WARNING: untranslated string: age seconds -WARNING: untranslated string: age shour -WARNING: untranslated string: age sminute -WARNING: untranslated string: age ssecond WARNING: untranslated string: attention +WARNING: untranslated string: bit WARNING: untranslated string: bytes WARNING: untranslated string: ccd add WARNING: untranslated string: ccd choose net @@ -527,6 +607,8 @@ WARNING: untranslated string: ccd err invalidname WARNING: untranslated string: ccd err invalidnet WARNING: untranslated string: ccd err irouteexist WARNING: untranslated string: ccd err isipsecnet +WARNING: untranslated string: ccd err isipsecrw +WARNING: untranslated string: ccd err isovpnn2n WARNING: untranslated string: ccd err isovpnnet WARNING: untranslated string: ccd err issubnet WARNING: untranslated string: ccd err name @@ -549,8 +631,16 @@ WARNING: untranslated string: ccd none WARNING: untranslated string: ccd routes WARNING: untranslated string: ccd subnet WARNING: untranslated string: ccd used +WARNING: untranslated string: count +WARNING: untranslated string: countries +WARNING: untranslated string: country codes and flags +WARNING: untranslated string: countrycode +WARNING: untranslated string: dead peer detection WARNING: untranslated string: deprecated fs warn +WARNING: untranslated string: details +WARNING: untranslated string: dnat address WARNING: untranslated string: dns address deleted txt +WARNING: untranslated string: dns servers WARNING: untranslated string: dnsforward WARNING: untranslated string: dnsforward add a new entry WARNING: untranslated string: dnsforward configuration @@ -558,7 +648,18 @@ WARNING: untranslated string: dnsforward edit an entry WARNING: untranslated string: dnsforward entries WARNING: untranslated string: dnsforward forward_server WARNING: untranslated string: dnsforward zone +WARNING: untranslated string: downlink +WARNING: untranslated string: dpd delay +WARNING: untranslated string: dpd timeout +WARNING: untranslated string: drop action +WARNING: untranslated string: drop action1 +WARNING: untranslated string: drop action2 +WARNING: untranslated string: drop forward +WARNING: untranslated string: drop outgoing WARNING: untranslated string: emerging rules +WARNING: untranslated string: encryption +WARNING: untranslated string: entropy +WARNING: untranslated string: entropy graphs WARNING: untranslated string: fireinfo ipfire version WARNING: untranslated string: fireinfo is disabled WARNING: untranslated string: fireinfo is enabled @@ -576,22 +677,182 @@ WARNING: untranslated string: fireinfo why descr2 WARNING: untranslated string: fireinfo why enable WARNING: untranslated string: fireinfo why read more WARNING: untranslated string: fireinfo your profile id +WARNING: untranslated string: firewall rules +WARNING: untranslated string: first +WARNING: untranslated string: flag +WARNING: untranslated string: fw default drop +WARNING: untranslated string: fw settings +WARNING: untranslated string: fw settings color +WARNING: untranslated string: fw settings dropdown +WARNING: untranslated string: fw settings remark +WARNING: untranslated string: fw settings ruletable +WARNING: untranslated string: fwdfw ACCEPT +WARNING: untranslated string: fwdfw DROP +WARNING: untranslated string: fwdfw REJECT +WARNING: untranslated string: fwdfw action +WARNING: untranslated string: fwdfw additional +WARNING: untranslated string: fwdfw all icmp +WARNING: untranslated string: fwdfw change +WARNING: untranslated string: fwdfw copy +WARNING: untranslated string: fwdfw delete +WARNING: untranslated string: fwdfw dnat +WARNING: untranslated string: fwdfw dnat error +WARNING: untranslated string: fwdfw dnat extport +WARNING: untranslated string: fwdfw dnat nochoice +WARNING: untranslated string: fwdfw dnat porterr +WARNING: untranslated string: fwdfw dnat porterr2 +WARNING: untranslated string: fwdfw edit +WARNING: untranslated string: fwdfw err nosrc +WARNING: untranslated string: fwdfw err notgt +WARNING: untranslated string: fwdfw err prot_port +WARNING: untranslated string: fwdfw err remark +WARNING: untranslated string: fwdfw err ruleexists +WARNING: untranslated string: fwdfw err same +WARNING: untranslated string: fwdfw err samesub +WARNING: untranslated string: fwdfw err src_addr +WARNING: untranslated string: fwdfw err tgt_addr +WARNING: untranslated string: fwdfw err tgt_grp +WARNING: untranslated string: fwdfw err tgt_mac +WARNING: untranslated string: fwdfw err tgt_port +WARNING: untranslated string: fwdfw err time +WARNING: untranslated string: fwdfw external port nat +WARNING: untranslated string: fwdfw hint ip1 +WARNING: untranslated string: fwdfw hint ip2 +WARNING: untranslated string: fwdfw hint mac +WARNING: untranslated string: fwdfw iface +WARNING: untranslated string: fwdfw log +WARNING: untranslated string: fwdfw log rule +WARNING: untranslated string: fwdfw menu +WARNING: untranslated string: fwdfw movedown +WARNING: untranslated string: fwdfw moveup +WARNING: untranslated string: fwdfw newrule +WARNING: untranslated string: fwdfw pol allow +WARNING: untranslated string: fwdfw pol block +WARNING: untranslated string: fwdfw pol text +WARNING: untranslated string: fwdfw pol text1 +WARNING: untranslated string: fwdfw pol title +WARNING: untranslated string: fwdfw prot41 +WARNING: untranslated string: fwdfw prot41 short +WARNING: untranslated string: fwdfw red +WARNING: untranslated string: fwdfw reread +WARNING: untranslated string: fwdfw rule activate +WARNING: untranslated string: fwdfw rulepos +WARNING: untranslated string: fwdfw snat +WARNING: untranslated string: fwdfw source +WARNING: untranslated string: fwdfw sourceip +WARNING: untranslated string: fwdfw target +WARNING: untranslated string: fwdfw targetip +WARNING: untranslated string: fwdfw timeframe +WARNING: untranslated string: fwdfw toggle +WARNING: untranslated string: fwdfw togglelog +WARNING: untranslated string: fwdfw use nat +WARNING: untranslated string: fwdfw use srcport +WARNING: untranslated string: fwdfw use srv +WARNING: untranslated string: fwdfw useless rule +WARNING: untranslated string: fwdfw warn1 +WARNING: untranslated string: fwdfw wd_fri +WARNING: untranslated string: fwdfw wd_mon +WARNING: untranslated string: fwdfw wd_sat +WARNING: untranslated string: fwdfw wd_sun +WARNING: untranslated string: fwdfw wd_thu +WARNING: untranslated string: fwdfw wd_tue +WARNING: untranslated string: fwdfw wd_wed +WARNING: untranslated string: fwhost addgrp +WARNING: untranslated string: fwhost addgrpname +WARNING: untranslated string: fwhost addhost +WARNING: untranslated string: fwhost addnet +WARNING: untranslated string: fwhost addservice +WARNING: untranslated string: fwhost addservicegrp +WARNING: untranslated string: fwhost any +WARNING: untranslated string: fwhost back +WARNING: untranslated string: fwhost ccdhost +WARNING: untranslated string: fwhost ccdnet +WARNING: untranslated string: fwhost change +WARNING: untranslated string: fwhost cust addr +WARNING: untranslated string: fwhost cust grp +WARNING: untranslated string: fwhost cust net +WARNING: untranslated string: fwhost cust service +WARNING: untranslated string: fwhost cust srvgrp +WARNING: untranslated string: fwhost deleted +WARNING: untranslated string: fwhost empty +WARNING: untranslated string: fwhost err addr +WARNING: untranslated string: fwhost err empty +WARNING: untranslated string: fwhost err emptytable +WARNING: untranslated string: fwhost err groupempty +WARNING: untranslated string: fwhost err grpexist +WARNING: untranslated string: fwhost err hostexist +WARNING: untranslated string: fwhost err hostip +WARNING: untranslated string: fwhost err ip +WARNING: untranslated string: fwhost err ipcheck +WARNING: untranslated string: fwhost err ipmac +WARNING: untranslated string: fwhost err ipwithsub +WARNING: untranslated string: fwhost err isccdhost +WARNING: untranslated string: fwhost err isccdiphost +WARNING: untranslated string: fwhost err isccdipnet +WARNING: untranslated string: fwhost err isccdnet +WARNING: untranslated string: fwhost err isingrp +WARNING: untranslated string: fwhost err maxservicetcp +WARNING: untranslated string: fwhost err maxserviceudp +WARNING: untranslated string: fwhost err name +WARNING: untranslated string: fwhost err name1 +WARNING: untranslated string: fwhost err net +WARNING: untranslated string: fwhost err netexist +WARNING: untranslated string: fwhost err partofnet +WARNING: untranslated string: fwhost err port +WARNING: untranslated string: fwhost err remark +WARNING: untranslated string: fwhost err srv exists +WARNING: untranslated string: fwhost err srvexist +WARNING: untranslated string: fwhost err sub32 +WARNING: untranslated string: fwhost hint +WARNING: untranslated string: fwhost icmptype +WARNING: untranslated string: fwhost ip_mac +WARNING: untranslated string: fwhost ipsec net +WARNING: untranslated string: fwhost menu +WARNING: untranslated string: fwhost netaddress +WARNING: untranslated string: fwhost newgrp +WARNING: untranslated string: fwhost newhost +WARNING: untranslated string: fwhost newnet +WARNING: untranslated string: fwhost newservice +WARNING: untranslated string: fwhost newservicegrp +WARNING: untranslated string: fwhost ovpn_n2n +WARNING: untranslated string: fwhost port +WARNING: untranslated string: fwhost prot +WARNING: untranslated string: fwhost services +WARNING: untranslated string: fwhost srv_name +WARNING: untranslated string: fwhost stdnet +WARNING: untranslated string: fwhost type +WARNING: untranslated string: fwhost used +WARNING: untranslated string: fwhost welcome +WARNING: untranslated string: grouptype +WARNING: untranslated string: hardware support +WARNING: untranslated string: integrity +WARNING: untranslated string: invalid input for dpd delay +WARNING: untranslated string: invalid input for dpd timeout +WARNING: untranslated string: ipsec +WARNING: untranslated string: ipsec network +WARNING: untranslated string: last WARNING: untranslated string: least preferred +WARNING: untranslated string: lifetime +WARNING: untranslated string: mac filter +WARNING: untranslated string: maximum +WARNING: untranslated string: minimum WARNING: untranslated string: minute WARNING: untranslated string: most preferred -WARNING: untranslated string: new +WARNING: untranslated string: no hardware random number generator +WARNING: untranslated string: notice WARNING: untranslated string: ntp common settings WARNING: untranslated string: ntp sync WARNING: untranslated string: openvpn default WARNING: untranslated string: openvpn destination port used WARNING: untranslated string: openvpn fragment allowed with udp WARNING: untranslated string: openvpn mssfix allowed with udp +WARNING: untranslated string: openvpn network WARNING: untranslated string: openvpn prefix local subnet WARNING: untranslated string: openvpn prefix openvpn subnet WARNING: untranslated string: openvpn prefix remote subnet WARNING: untranslated string: openvpn subnet is used WARNING: untranslated string: other -WARNING: untranslated string: outgoing firewall reserved groupname +WARNING: untranslated string: ovpn mgmt in root range WARNING: untranslated string: ovpn mtu-disc WARNING: untranslated string: ovpn mtu-disc and mtu not 1500 WARNING: untranslated string: ovpn mtu-disc maybe @@ -599,6 +860,10 @@ WARNING: untranslated string: ovpn mtu-disc no WARNING: untranslated string: ovpn mtu-disc off WARNING: untranslated string: ovpn mtu-disc with mssfix or fragment WARNING: untranslated string: ovpn mtu-disc yes +WARNING: untranslated string: ovpn no connections +WARNING: untranslated string: ovpn port in root range +WARNING: untranslated string: p2p block +WARNING: untranslated string: p2p block save notice WARNING: untranslated string: pakfire ago WARNING: untranslated string: proxy reports WARNING: untranslated string: proxy reports daily @@ -606,13 +871,19 @@ WARNING: untranslated string: proxy reports monthly WARNING: untranslated string: proxy reports today WARNING: untranslated string: proxy reports weekly WARNING: untranslated string: qos enter bandwidths +WARNING: untranslated string: red1 WARNING: untranslated string: route config changed WARNING: untranslated string: routing config added WARNING: untranslated string: routing config changed WARNING: untranslated string: routing table WARNING: untranslated string: server restart +WARNING: untranslated string: snat new source ip address WARNING: untranslated string: snort working +WARNING: untranslated string: ssh WARNING: untranslated string: static routes +WARNING: untranslated string: support donation +WARNING: untranslated string: system has hwrng +WARNING: untranslated string: system has rdrand WARNING: untranslated string: system information WARNING: untranslated string: tor WARNING: untranslated string: tor accounting @@ -662,6 +933,7 @@ WARNING: untranslated string: tor traffic limit hard WARNING: untranslated string: tor traffic limit soft WARNING: untranslated string: tor traffic read written WARNING: untranslated string: tor use exit nodes +WARNING: untranslated string: uplink WARNING: untranslated string: upload new ruleset WARNING: untranslated string: uptime load average WARNING: untranslated string: urlfilter file ext block @@ -699,6 +971,7 @@ WARNING: untranslated string: wlan client wpa mode all WARNING: untranslated string: wlan client wpa mode ccmp ccmp WARNING: untranslated string: wlan client wpa mode ccmp tkip WARNING: untranslated string: wlan client wpa mode tkip tkip +WARNING: untranslated string: wlan clients WARNING: untranslated string: wlanap access point WARNING: untranslated string: wlanap channel WARNING: untranslated string: wlanap country @@ -717,6 +990,5 @@ WARNING: untranslated string: wlanap select interface WARNING: untranslated string: wlanap verbose WARNING: untranslated string: wlanap warnings WARNING: untranslated string: wlanap wlan card -WARNING: untranslated string: wlanap wlan services WARNING: untranslated string: wlanap wlan settings WARNING: untranslated string: wlanap wlan status diff --git a/doc/language_issues.nl b/doc/language_issues.nl index cdde0f3..695bcc0 100644 --- a/doc/language_issues.nl +++ b/doc/language_issues.nl @@ -11,10 +11,13 @@ WARNING: translation string unused: Remote VPN IP WARNING: translation string unused: Resolv WARNING: translation string unused: TOS Bits WARNING: translation string unused: Verbose +WARNING: translation string unused: access allowed WARNING: translation string unused: access refused with this oinkcode +WARNING: translation string unused: add a new rule WARNING: translation string unused: add network WARNING: translation string unused: add new ovpn WARNING: translation string unused: add service +WARNING: translation string unused: add xtaccess WARNING: translation string unused: add-route WARNING: translation string unused: admin user password has been changed WARNING: translation string unused: administrator user password @@ -46,10 +49,12 @@ WARNING: translation string unused: all updates installed WARNING: translation string unused: allmsg WARNING: translation string unused: alt information WARNING: translation string unused: alt ovpn +WARNING: translation string unused: alt vpn WARNING: translation string unused: and WARNING: translation string unused: ansi t1.483 WARNING: translation string unused: apply WARNING: translation string unused: archive not exist +WARNING: translation string unused: attemps WARNING: translation string unused: available updates WARNING: translation string unused: backup archive WARNING: translation string unused: backup clear archive @@ -87,6 +92,7 @@ WARNING: translation string unused: cache management WARNING: translation string unused: cache size WARNING: translation string unused: calamaris report interval (in minutes) WARNING: translation string unused: calc traffic all x minutes +WARNING: translation string unused: cant enable xtaccess WARNING: translation string unused: capsinactive WARNING: translation string unused: ccd err iroute WARNING: translation string unused: ccd err netadr @@ -129,6 +135,11 @@ WARNING: translation string unused: debugme WARNING: translation string unused: deep scan directories WARNING: translation string unused: default networks WARNING: translation string unused: default services +WARNING: translation string unused: description +WARNING: translation string unused: destination ip bad +WARNING: translation string unused: destination ip or net +WARNING: translation string unused: destination net +WARNING: translation string unused: destination port overlaps WARNING: translation string unused: dhcp base ip fixed lease WARNING: translation string unused: dhcp create fixed leases WARNING: translation string unused: dhcp fixed lease err1 @@ -140,18 +151,29 @@ WARNING: translation string unused: dial user password WARNING: translation string unused: dial user password has been changed WARNING: translation string unused: dialup settings WARNING: translation string unused: disconnect +WARNING: translation string unused: disconnects WARNING: translation string unused: display traffic at home +WARNING: translation string unused: display webinterface effects +WARNING: translation string unused: dmz pinhole configuration +WARNING: translation string unused: dmz pinhole rule added +WARNING: translation string unused: dmz pinhole rule removed +WARNING: translation string unused: dmzpinholes for same net not necessary WARNING: translation string unused: dns server WARNING: translation string unused: do not log this port list WARNING: translation string unused: donation-link WARNING: translation string unused: done WARNING: translation string unused: driver +WARNING: translation string unused: drop output +WARNING: translation string unused: dstprt range overlaps +WARNING: translation string unused: dstprt within existing WARNING: translation string unused: dynamic dns client WARNING: translation string unused: eciadsl help WARNING: translation string unused: eciadsl upload +WARNING: translation string unused: edit a rule WARNING: translation string unused: edit network WARNING: translation string unused: edit service WARNING: translation string unused: editor +WARNING: translation string unused: eg WARNING: translation string unused: email server can not be empty WARNING: translation string unused: enable javascript WARNING: translation string unused: enabled on @@ -169,10 +191,18 @@ WARNING: translation string unused: err rs 7 untartst WARNING: translation string unused: err rs 8 untar WARNING: translation string unused: error config WARNING: translation string unused: error external access +WARNING: translation string unused: esp encryption +WARNING: translation string unused: esp grouptype +WARNING: translation string unused: esp integrity +WARNING: translation string unused: esp keylife WARNING: translation string unused: expected WARNING: translation string unused: expertoptions WARNING: translation string unused: exportkey +WARNING: translation string unused: external access configuration +WARNING: translation string unused: external access rule added WARNING: translation string unused: external access rule changed +WARNING: translation string unused: external access rule removed +WARNING: translation string unused: extrahd WARNING: translation string unused: extrahd unable to read WARNING: translation string unused: extrahd unable to write WARNING: translation string unused: filename @@ -181,6 +211,9 @@ WARNING: translation string unused: firewall log viewer WARNING: translation string unused: firmware WARNING: translation string unused: firmware upload WARNING: translation string unused: force update +WARNING: translation string unused: forwarding rule added +WARNING: translation string unused: forwarding rule removed +WARNING: translation string unused: forwarding rule updated WARNING: translation string unused: frequency WARNING: translation string unused: fritzdsl help WARNING: translation string unused: fritzdsl upload @@ -207,6 +240,10 @@ WARNING: translation string unused: icmp selected but no type WARNING: translation string unused: icmp type WARNING: translation string unused: id WARNING: translation string unused: ids preprocessor +WARNING: translation string unused: ike encryption +WARNING: translation string unused: ike grouptype +WARNING: translation string unused: ike integrity +WARNING: translation string unused: ike lifetime WARNING: translation string unused: import WARNING: translation string unused: importkey WARNING: translation string unused: in @@ -217,6 +254,7 @@ WARNING: translation string unused: install new update WARNING: translation string unused: installed WARNING: translation string unused: installed updates WARNING: translation string unused: intrusion detection system log viewer +WARNING: translation string unused: intrusion detection system2 WARNING: translation string unused: invalid cache size WARNING: translation string unused: invalid date entered WARNING: translation string unused: invalid downlink speed @@ -246,6 +284,7 @@ WARNING: translation string unused: local hard disk WARNING: translation string unused: localkeyfile WARNING: translation string unused: log enabled WARNING: translation string unused: log viewer +WARNING: translation string unused: logging WARNING: translation string unused: loosedirectorychecking WARNING: translation string unused: ls_dhcpd WARNING: translation string unused: ls_disk space @@ -271,6 +310,7 @@ WARNING: translation string unused: mbmon value WARNING: translation string unused: min size WARNING: translation string unused: missing dat WARNING: translation string unused: missing gz +WARNING: translation string unused: mode WARNING: translation string unused: modem on com1 WARNING: translation string unused: modem on com2 WARNING: translation string unused: modem on com3 @@ -287,6 +327,7 @@ WARNING: translation string unused: monthly volume start day short WARNING: translation string unused: mount WARNING: translation string unused: mtu QoS WARNING: translation string unused: nat-traversal +WARNING: translation string unused: net WARNING: translation string unused: net address WARNING: translation string unused: net config type WARNING: translation string unused: net config type help @@ -295,6 +336,7 @@ WARNING: translation string unused: network added WARNING: translation string unused: network configuration WARNING: translation string unused: network removed WARNING: translation string unused: network status information +WARNING: translation string unused: network time WARNING: translation string unused: network traffic graphs WARNING: translation string unused: network updated WARNING: translation string unused: networks settings @@ -313,6 +355,7 @@ WARNING: translation string unused: o-no WARNING: translation string unused: o-yes WARNING: translation string unused: online help en WARNING: translation string unused: only red +WARNING: translation string unused: open to all WARNING: translation string unused: openvpn disabled WARNING: translation string unused: openvpn enabled WARNING: translation string unused: optional data @@ -323,7 +366,24 @@ WARNING: translation string unused: original WARNING: translation string unused: other countries WARNING: translation string unused: our donors WARNING: translation string unused: out +WARNING: translation string unused: outgoing firewall add ip group +WARNING: translation string unused: outgoing firewall add mac group +WARNING: translation string unused: outgoing firewall edit ip group +WARNING: translation string unused: outgoing firewall edit mac group +WARNING: translation string unused: outgoing firewall group error +WARNING: translation string unused: outgoing firewall groups +WARNING: translation string unused: outgoing firewall ip groups +WARNING: translation string unused: outgoing firewall mac groups +WARNING: translation string unused: outgoing firewall mode0 +WARNING: translation string unused: outgoing firewall mode1 +WARNING: translation string unused: outgoing firewall mode2 WARNING: translation string unused: outgoing firewall outgoing firewall reserved groupname +WARNING: translation string unused: outgoing firewall p2p description 1 +WARNING: translation string unused: outgoing firewall p2p description 2 +WARNING: translation string unused: outgoing firewall p2p description 3 +WARNING: translation string unused: outgoing firewall reset +WARNING: translation string unused: outgoing firewall view group +WARNING: translation string unused: outgoing firewall warning WARNING: translation string unused: override mtu WARNING: translation string unused: ovpn WARNING: translation string unused: ovpn config @@ -351,9 +411,11 @@ WARNING: translation string unused: pakfire updates WARNING: translation string unused: password contains illegal characters WARNING: translation string unused: password crypting key WARNING: translation string unused: passwords must be at least 6 characters in length +WARNING: translation string unused: phase1 group WARNING: translation string unused: phonebook entry WARNING: translation string unused: ping disabled WARNING: translation string unused: polfile +WARNING: translation string unused: port forwarding configuration WARNING: translation string unused: ports WARNING: translation string unused: pots WARNING: translation string unused: pppoe @@ -365,23 +427,31 @@ WARNING: translation string unused: proxy no proxy local WARNING: translation string unused: proxy port WARNING: translation string unused: psk WARNING: translation string unused: quick control +WARNING: translation string unused: reboot ask +WARNING: translation string unused: reboot question WARNING: translation string unused: reboot schedule -WARNING: translation string unused: rebooting +WARNING: translation string unused: reboot sure WARNING: translation string unused: refresh update list WARNING: translation string unused: released WARNING: translation string unused: removable device advice WARNING: translation string unused: reportfile WARNING: translation string unused: requested data +WARNING: translation string unused: reserved dst port +WARNING: translation string unused: reserved src port WARNING: translation string unused: restore hardware settings WARNING: translation string unused: root WARNING: translation string unused: root path WARNING: translation string unused: root user password WARNING: translation string unused: route subnet is invalid WARNING: translation string unused: router ip +WARNING: translation string unused: rsvd dst port overlap +WARNING: translation string unused: rsvd src port overlap WARNING: translation string unused: rules already up to date WARNING: translation string unused: safe removal of umounted device WARNING: translation string unused: save error +WARNING: translation string unused: select dest net WARNING: translation string unused: select media +WARNING: translation string unused: select source net WARNING: translation string unused: selecttraffic WARNING: translation string unused: send email notification WARNING: translation string unused: send test mail @@ -395,20 +465,30 @@ WARNING: translation string unused: shaping add options WARNING: translation string unused: shaping list options WARNING: translation string unused: show areas WARNING: translation string unused: show lines -WARNING: translation string unused: shutdown control +WARNING: translation string unused: shutdown ask +WARNING: translation string unused: shutdown sure WARNING: translation string unused: shutdown2 -WARNING: translation string unused: shutting down WARNING: translation string unused: sitekeyfile WARNING: translation string unused: smbreload +WARNING: translation string unused: source ip bad +WARNING: translation string unused: source ip in use +WARNING: translation string unused: source ip or net +WARNING: translation string unused: source net +WARNING: translation string unused: source network +WARNING: translation string unused: source port overlaps WARNING: translation string unused: squid extension methods WARNING: translation string unused: squid extension methods invalid WARNING: translation string unused: squid fix cache +WARNING: translation string unused: srcprt range overlaps +WARNING: translation string unused: srcprt within existing +WARNING: translation string unused: ssdmz pinholes WARNING: translation string unused: ssh access tip WARNING: translation string unused: ssh1 disabled WARNING: translation string unused: ssh1 enabled WARNING: translation string unused: ssh1 support WARNING: translation string unused: ssnetwork status WARNING: translation string unused: sspasswords +WARNING: translation string unused: ssport forwarding WARNING: translation string unused: ssproxy graphs WARNING: translation string unused: sssystem status WARNING: translation string unused: sstraffic graphs @@ -437,6 +517,7 @@ WARNING: translation string unused: to email adr WARNING: translation string unused: to install an update WARNING: translation string unused: to warn email bad WARNING: translation string unused: too long 80 char max +WARNING: translation string unused: total connection time WARNING: translation string unused: traffic back WARNING: translation string unused: traffic calc time WARNING: translation string unused: traffic calc time bad @@ -501,20 +582,30 @@ WARNING: translation string unused: warn when traffic reaches WARNING: translation string unused: web proxy configuration WARNING: translation string unused: week-graph WARNING: translation string unused: weekly firewallhits +WARNING: translation string unused: wlanap wlan services +WARNING: translation string unused: xtaccess all error WARNING: translation string unused: xtaccess bad transfert WARNING: translation string unused: year-graph WARNING: translation string unused: yearly firewallhits +WARNING: untranslated string: MB read WARNING: untranslated string: Scan for Songs +WARNING: untranslated string: addons WARNING: untranslated string: advproxy cache-digest WARNING: untranslated string: advproxy errmsg proxy ports equal WARNING: untranslated string: advproxy proxy port transparent -WARNING: untranslated string: age second -WARNING: untranslated string: age seconds -WARNING: untranslated string: age shour -WARNING: untranslated string: age sminute -WARNING: untranslated string: age ssecond +WARNING: untranslated string: bit WARNING: untranslated string: bytes +WARNING: untranslated string: ccd err isipsecrw +WARNING: untranslated string: ccd err isovpnn2n WARNING: untranslated string: ccd iroute2 +WARNING: untranslated string: count +WARNING: untranslated string: countries +WARNING: untranslated string: country codes and flags +WARNING: untranslated string: countrycode +WARNING: untranslated string: dead peer detection +WARNING: untranslated string: details +WARNING: untranslated string: dnat address +WARNING: untranslated string: dns servers WARNING: untranslated string: dnsforward WARNING: untranslated string: dnsforward add a new entry WARNING: untranslated string: dnsforward configuration @@ -522,15 +613,196 @@ WARNING: untranslated string: dnsforward edit an entry WARNING: untranslated string: dnsforward entries WARNING: untranslated string: dnsforward forward_server WARNING: untranslated string: dnsforward zone +WARNING: untranslated string: downlink +WARNING: untranslated string: dpd delay +WARNING: untranslated string: dpd timeout +WARNING: untranslated string: drop action +WARNING: untranslated string: drop action1 +WARNING: untranslated string: drop action2 +WARNING: untranslated string: drop forward +WARNING: untranslated string: drop outgoing +WARNING: untranslated string: encryption +WARNING: untranslated string: entropy +WARNING: untranslated string: entropy graphs +WARNING: untranslated string: firewall rules +WARNING: untranslated string: first +WARNING: untranslated string: flag +WARNING: untranslated string: fw default drop +WARNING: untranslated string: fw settings +WARNING: untranslated string: fw settings color +WARNING: untranslated string: fw settings dropdown +WARNING: untranslated string: fw settings remark +WARNING: untranslated string: fw settings ruletable +WARNING: untranslated string: fwdfw ACCEPT +WARNING: untranslated string: fwdfw DROP +WARNING: untranslated string: fwdfw REJECT +WARNING: untranslated string: fwdfw action +WARNING: untranslated string: fwdfw additional +WARNING: untranslated string: fwdfw all icmp +WARNING: untranslated string: fwdfw change +WARNING: untranslated string: fwdfw copy +WARNING: untranslated string: fwdfw delete +WARNING: untranslated string: fwdfw dnat +WARNING: untranslated string: fwdfw dnat error +WARNING: untranslated string: fwdfw dnat extport +WARNING: untranslated string: fwdfw dnat nochoice +WARNING: untranslated string: fwdfw dnat porterr +WARNING: untranslated string: fwdfw dnat porterr2 +WARNING: untranslated string: fwdfw edit +WARNING: untranslated string: fwdfw err nosrc +WARNING: untranslated string: fwdfw err notgt +WARNING: untranslated string: fwdfw err prot_port +WARNING: untranslated string: fwdfw err remark +WARNING: untranslated string: fwdfw err ruleexists +WARNING: untranslated string: fwdfw err same +WARNING: untranslated string: fwdfw err samesub +WARNING: untranslated string: fwdfw err src_addr +WARNING: untranslated string: fwdfw err tgt_addr +WARNING: untranslated string: fwdfw err tgt_grp +WARNING: untranslated string: fwdfw err tgt_mac +WARNING: untranslated string: fwdfw err tgt_port +WARNING: untranslated string: fwdfw err time +WARNING: untranslated string: fwdfw external port nat +WARNING: untranslated string: fwdfw hint ip1 +WARNING: untranslated string: fwdfw hint ip2 +WARNING: untranslated string: fwdfw hint mac +WARNING: untranslated string: fwdfw iface +WARNING: untranslated string: fwdfw log +WARNING: untranslated string: fwdfw log rule +WARNING: untranslated string: fwdfw menu +WARNING: untranslated string: fwdfw movedown +WARNING: untranslated string: fwdfw moveup +WARNING: untranslated string: fwdfw newrule +WARNING: untranslated string: fwdfw pol allow +WARNING: untranslated string: fwdfw pol block +WARNING: untranslated string: fwdfw pol text +WARNING: untranslated string: fwdfw pol text1 +WARNING: untranslated string: fwdfw pol title +WARNING: untranslated string: fwdfw prot41 +WARNING: untranslated string: fwdfw prot41 short +WARNING: untranslated string: fwdfw red +WARNING: untranslated string: fwdfw reread +WARNING: untranslated string: fwdfw rule activate +WARNING: untranslated string: fwdfw rulepos +WARNING: untranslated string: fwdfw snat +WARNING: untranslated string: fwdfw source +WARNING: untranslated string: fwdfw sourceip +WARNING: untranslated string: fwdfw target +WARNING: untranslated string: fwdfw targetip +WARNING: untranslated string: fwdfw timeframe +WARNING: untranslated string: fwdfw toggle +WARNING: untranslated string: fwdfw togglelog +WARNING: untranslated string: fwdfw use nat +WARNING: untranslated string: fwdfw use srcport +WARNING: untranslated string: fwdfw use srv +WARNING: untranslated string: fwdfw useless rule +WARNING: untranslated string: fwdfw warn1 +WARNING: untranslated string: fwdfw wd_fri +WARNING: untranslated string: fwdfw wd_mon +WARNING: untranslated string: fwdfw wd_sat +WARNING: untranslated string: fwdfw wd_sun +WARNING: untranslated string: fwdfw wd_thu +WARNING: untranslated string: fwdfw wd_tue +WARNING: untranslated string: fwdfw wd_wed +WARNING: untranslated string: fwhost addgrp +WARNING: untranslated string: fwhost addgrpname +WARNING: untranslated string: fwhost addhost +WARNING: untranslated string: fwhost addnet +WARNING: untranslated string: fwhost addservice +WARNING: untranslated string: fwhost addservicegrp +WARNING: untranslated string: fwhost any +WARNING: untranslated string: fwhost back +WARNING: untranslated string: fwhost ccdhost +WARNING: untranslated string: fwhost ccdnet +WARNING: untranslated string: fwhost change +WARNING: untranslated string: fwhost cust addr +WARNING: untranslated string: fwhost cust grp +WARNING: untranslated string: fwhost cust net +WARNING: untranslated string: fwhost cust service +WARNING: untranslated string: fwhost cust srvgrp +WARNING: untranslated string: fwhost deleted +WARNING: untranslated string: fwhost empty +WARNING: untranslated string: fwhost err addr +WARNING: untranslated string: fwhost err empty +WARNING: untranslated string: fwhost err emptytable +WARNING: untranslated string: fwhost err groupempty +WARNING: untranslated string: fwhost err grpexist +WARNING: untranslated string: fwhost err hostexist +WARNING: untranslated string: fwhost err hostip +WARNING: untranslated string: fwhost err ip +WARNING: untranslated string: fwhost err ipcheck +WARNING: untranslated string: fwhost err ipmac +WARNING: untranslated string: fwhost err ipwithsub +WARNING: untranslated string: fwhost err isccdhost +WARNING: untranslated string: fwhost err isccdiphost +WARNING: untranslated string: fwhost err isccdipnet +WARNING: untranslated string: fwhost err isccdnet +WARNING: untranslated string: fwhost err isingrp +WARNING: untranslated string: fwhost err maxservicetcp +WARNING: untranslated string: fwhost err maxserviceudp +WARNING: untranslated string: fwhost err name +WARNING: untranslated string: fwhost err name1 +WARNING: untranslated string: fwhost err net +WARNING: untranslated string: fwhost err netexist +WARNING: untranslated string: fwhost err partofnet +WARNING: untranslated string: fwhost err port +WARNING: untranslated string: fwhost err remark +WARNING: untranslated string: fwhost err srv exists +WARNING: untranslated string: fwhost err srvexist +WARNING: untranslated string: fwhost err sub32 +WARNING: untranslated string: fwhost hint +WARNING: untranslated string: fwhost icmptype +WARNING: untranslated string: fwhost ip_mac +WARNING: untranslated string: fwhost ipsec net +WARNING: untranslated string: fwhost menu +WARNING: untranslated string: fwhost netaddress +WARNING: untranslated string: fwhost newgrp +WARNING: untranslated string: fwhost newhost +WARNING: untranslated string: fwhost newnet +WARNING: untranslated string: fwhost newservice +WARNING: untranslated string: fwhost newservicegrp +WARNING: untranslated string: fwhost ovpn_n2n +WARNING: untranslated string: fwhost port +WARNING: untranslated string: fwhost prot +WARNING: untranslated string: fwhost services +WARNING: untranslated string: fwhost srv_name +WARNING: untranslated string: fwhost stdnet +WARNING: untranslated string: fwhost type +WARNING: untranslated string: fwhost used +WARNING: untranslated string: fwhost welcome +WARNING: untranslated string: grouptype +WARNING: untranslated string: hardware support +WARNING: untranslated string: integrity +WARNING: untranslated string: invalid input for dpd delay +WARNING: untranslated string: invalid input for dpd timeout +WARNING: untranslated string: ipsec +WARNING: untranslated string: ipsec network +WARNING: untranslated string: last WARNING: untranslated string: least preferred +WARNING: untranslated string: lifetime +WARNING: untranslated string: mac filter +WARNING: untranslated string: maximum +WARNING: untranslated string: minimum WARNING: untranslated string: most preferred -WARNING: untranslated string: new -WARNING: untranslated string: outgoing firewall reserved groupname +WARNING: untranslated string: no hardware random number generator +WARNING: untranslated string: notice +WARNING: untranslated string: openvpn network +WARNING: untranslated string: ovpn mgmt in root range +WARNING: untranslated string: ovpn no connections +WARNING: untranslated string: ovpn port in root range +WARNING: untranslated string: p2p block +WARNING: untranslated string: p2p block save notice WARNING: untranslated string: qos enter bandwidths +WARNING: untranslated string: red1 WARNING: untranslated string: route config changed WARNING: untranslated string: routing config added WARNING: untranslated string: routing config changed WARNING: untranslated string: routing table +WARNING: untranslated string: snat new source ip address +WARNING: untranslated string: ssh +WARNING: untranslated string: support donation +WARNING: untranslated string: system has hwrng +WARNING: untranslated string: system has rdrand WARNING: untranslated string: tor WARNING: untranslated string: tor accounting WARNING: untranslated string: tor accounting bytes @@ -579,6 +851,7 @@ WARNING: untranslated string: tor traffic limit hard WARNING: untranslated string: tor traffic limit soft WARNING: untranslated string: tor traffic read written WARNING: untranslated string: tor use exit nodes +WARNING: untranslated string: uplink WARNING: untranslated string: uptime load average WARNING: untranslated string: urlfilter redirect template WARNING: untranslated string: wlan client @@ -611,3 +884,4 @@ WARNING: untranslated string: wlan client wpa mode all WARNING: untranslated string: wlan client wpa mode ccmp ccmp WARNING: untranslated string: wlan client wpa mode ccmp tkip WARNING: untranslated string: wlan client wpa mode tkip tkip +WARNING: untranslated string: wlan clients diff --git a/doc/language_issues.pl b/doc/language_issues.pl index f46723e..ab8dea7 100644 --- a/doc/language_issues.pl +++ b/doc/language_issues.pl @@ -11,10 +11,13 @@ WARNING: translation string unused: Remote VPN IP WARNING: translation string unused: Resolv WARNING: translation string unused: TOS Bits WARNING: translation string unused: Verbose +WARNING: translation string unused: access allowed WARNING: translation string unused: access refused with this oinkcode +WARNING: translation string unused: add a new rule WARNING: translation string unused: add network WARNING: translation string unused: add new ovpn WARNING: translation string unused: add service +WARNING: translation string unused: add xtaccess WARNING: translation string unused: add-route WARNING: translation string unused: admin user password has been changed WARNING: translation string unused: administrator user password @@ -46,10 +49,12 @@ WARNING: translation string unused: all updates installed WARNING: translation string unused: allmsg WARNING: translation string unused: alt information WARNING: translation string unused: alt ovpn +WARNING: translation string unused: alt vpn WARNING: translation string unused: and WARNING: translation string unused: ansi t1.483 WARNING: translation string unused: apply WARNING: translation string unused: archive not exist +WARNING: translation string unused: attemps WARNING: translation string unused: available updates WARNING: translation string unused: backup archive WARNING: translation string unused: backup clear archive @@ -87,6 +92,7 @@ WARNING: translation string unused: cache management WARNING: translation string unused: cache size WARNING: translation string unused: calamaris report interval (in minutes) WARNING: translation string unused: calc traffic all x minutes +WARNING: translation string unused: cant enable xtaccess WARNING: translation string unused: capsinactive WARNING: translation string unused: cfg restart WARNING: translation string unused: check for net traffic update @@ -127,6 +133,11 @@ WARNING: translation string unused: debugme WARNING: translation string unused: deep scan directories WARNING: translation string unused: default networks WARNING: translation string unused: default services +WARNING: translation string unused: description +WARNING: translation string unused: destination ip bad +WARNING: translation string unused: destination ip or net +WARNING: translation string unused: destination net +WARNING: translation string unused: destination port overlaps WARNING: translation string unused: dhcp base ip fixed lease WARNING: translation string unused: dhcp create fixed leases WARNING: translation string unused: dhcp fixed lease err1 @@ -138,18 +149,29 @@ WARNING: translation string unused: dial user password WARNING: translation string unused: dial user password has been changed WARNING: translation string unused: dialup settings WARNING: translation string unused: disconnect +WARNING: translation string unused: disconnects WARNING: translation string unused: display traffic at home +WARNING: translation string unused: display webinterface effects +WARNING: translation string unused: dmz pinhole configuration +WARNING: translation string unused: dmz pinhole rule added +WARNING: translation string unused: dmz pinhole rule removed +WARNING: translation string unused: dmzpinholes for same net not necessary WARNING: translation string unused: dns server WARNING: translation string unused: do not log this port list WARNING: translation string unused: donation-link WARNING: translation string unused: done WARNING: translation string unused: driver +WARNING: translation string unused: drop output +WARNING: translation string unused: dstprt range overlaps +WARNING: translation string unused: dstprt within existing WARNING: translation string unused: dynamic dns client WARNING: translation string unused: eciadsl help WARNING: translation string unused: eciadsl upload +WARNING: translation string unused: edit a rule WARNING: translation string unused: edit network WARNING: translation string unused: edit service WARNING: translation string unused: editor +WARNING: translation string unused: eg WARNING: translation string unused: email server can not be empty WARNING: translation string unused: enable javascript WARNING: translation string unused: enabled on @@ -167,10 +189,18 @@ WARNING: translation string unused: err rs 7 untartst WARNING: translation string unused: err rs 8 untar WARNING: translation string unused: error config WARNING: translation string unused: error external access +WARNING: translation string unused: esp encryption +WARNING: translation string unused: esp grouptype +WARNING: translation string unused: esp integrity +WARNING: translation string unused: esp keylife WARNING: translation string unused: expected WARNING: translation string unused: expertoptions WARNING: translation string unused: exportkey +WARNING: translation string unused: external access configuration +WARNING: translation string unused: external access rule added WARNING: translation string unused: external access rule changed +WARNING: translation string unused: external access rule removed +WARNING: translation string unused: extrahd WARNING: translation string unused: extrahd unable to read WARNING: translation string unused: extrahd unable to write WARNING: translation string unused: filename @@ -179,6 +209,9 @@ WARNING: translation string unused: firewall log viewer WARNING: translation string unused: firmware WARNING: translation string unused: firmware upload WARNING: translation string unused: force update +WARNING: translation string unused: forwarding rule added +WARNING: translation string unused: forwarding rule removed +WARNING: translation string unused: forwarding rule updated WARNING: translation string unused: frequency WARNING: translation string unused: fritzdsl help WARNING: translation string unused: fritzdsl upload @@ -205,6 +238,10 @@ WARNING: translation string unused: icmp selected but no type WARNING: translation string unused: icmp type WARNING: translation string unused: id WARNING: translation string unused: ids preprocessor +WARNING: translation string unused: ike encryption +WARNING: translation string unused: ike grouptype +WARNING: translation string unused: ike integrity +WARNING: translation string unused: ike lifetime WARNING: translation string unused: import WARNING: translation string unused: importkey WARNING: translation string unused: in @@ -215,6 +252,7 @@ WARNING: translation string unused: install new update WARNING: translation string unused: installed WARNING: translation string unused: installed updates WARNING: translation string unused: intrusion detection system log viewer +WARNING: translation string unused: intrusion detection system2 WARNING: translation string unused: invalid cache size WARNING: translation string unused: invalid date entered WARNING: translation string unused: invalid downlink speed @@ -244,6 +282,7 @@ WARNING: translation string unused: local hard disk WARNING: translation string unused: localkeyfile WARNING: translation string unused: log enabled WARNING: translation string unused: log viewer +WARNING: translation string unused: logging WARNING: translation string unused: loosedirectorychecking WARNING: translation string unused: ls_dhcpd WARNING: translation string unused: ls_disk space @@ -269,6 +308,7 @@ WARNING: translation string unused: mbmon value WARNING: translation string unused: min size WARNING: translation string unused: missing dat WARNING: translation string unused: missing gz +WARNING: translation string unused: mode WARNING: translation string unused: modem on com1 WARNING: translation string unused: modem on com2 WARNING: translation string unused: modem on com3 @@ -285,6 +325,7 @@ WARNING: translation string unused: monthly volume start day short WARNING: translation string unused: mount WARNING: translation string unused: mtu QoS WARNING: translation string unused: nat-traversal +WARNING: translation string unused: net WARNING: translation string unused: net address WARNING: translation string unused: net config type WARNING: translation string unused: net config type help @@ -293,6 +334,7 @@ WARNING: translation string unused: network added WARNING: translation string unused: network configuration WARNING: translation string unused: network removed WARNING: translation string unused: network status information +WARNING: translation string unused: network time WARNING: translation string unused: network traffic graphs WARNING: translation string unused: network updated WARNING: translation string unused: networks settings @@ -311,6 +353,7 @@ WARNING: translation string unused: o-no WARNING: translation string unused: o-yes WARNING: translation string unused: online help en WARNING: translation string unused: only red +WARNING: translation string unused: open to all WARNING: translation string unused: optional data WARNING: translation string unused: optionsfw portlist hint WARNING: translation string unused: optionsfw warning @@ -318,8 +361,13 @@ WARNING: translation string unused: or WARNING: translation string unused: original WARNING: translation string unused: other countries WARNING: translation string unused: out +WARNING: translation string unused: outgoing firewall mode0 +WARNING: translation string unused: outgoing firewall mode1 +WARNING: translation string unused: outgoing firewall mode2 WARNING: translation string unused: outgoing firewall outgoing firewall reserved groupname WARNING: translation string unused: outgoing firewall p2p description +WARNING: translation string unused: outgoing firewall reset +WARNING: translation string unused: outgoing firewall warning WARNING: translation string unused: override mtu WARNING: translation string unused: ovpn WARNING: translation string unused: ovpn config @@ -347,9 +395,11 @@ WARNING: translation string unused: pakfire updates WARNING: translation string unused: password contains illegal characters WARNING: translation string unused: password crypting key WARNING: translation string unused: passwords must be at least 6 characters in length +WARNING: translation string unused: phase1 group WARNING: translation string unused: phonebook entry WARNING: translation string unused: ping disabled WARNING: translation string unused: polfile +WARNING: translation string unused: port forwarding configuration WARNING: translation string unused: ports WARNING: translation string unused: pots WARNING: translation string unused: pppoe @@ -361,23 +411,31 @@ WARNING: translation string unused: proxy no proxy local WARNING: translation string unused: proxy port WARNING: translation string unused: psk WARNING: translation string unused: quick control +WARNING: translation string unused: reboot ask +WARNING: translation string unused: reboot question WARNING: translation string unused: reboot schedule -WARNING: translation string unused: rebooting +WARNING: translation string unused: reboot sure WARNING: translation string unused: refresh update list WARNING: translation string unused: released WARNING: translation string unused: removable device advice WARNING: translation string unused: reportfile WARNING: translation string unused: requested data +WARNING: translation string unused: reserved dst port +WARNING: translation string unused: reserved src port WARNING: translation string unused: restore hardware settings WARNING: translation string unused: root WARNING: translation string unused: root path WARNING: translation string unused: root user password WARNING: translation string unused: route subnet is invalid WARNING: translation string unused: router ip +WARNING: translation string unused: rsvd dst port overlap +WARNING: translation string unused: rsvd src port overlap WARNING: translation string unused: rules already up to date WARNING: translation string unused: safe removal of umounted device WARNING: translation string unused: save error +WARNING: translation string unused: select dest net WARNING: translation string unused: select media +WARNING: translation string unused: select source net WARNING: translation string unused: selecttraffic WARNING: translation string unused: send email notification WARNING: translation string unused: send test mail @@ -391,20 +449,30 @@ WARNING: translation string unused: shaping add options WARNING: translation string unused: shaping list options WARNING: translation string unused: show areas WARNING: translation string unused: show lines -WARNING: translation string unused: shutdown control +WARNING: translation string unused: shutdown ask +WARNING: translation string unused: shutdown sure WARNING: translation string unused: shutdown2 -WARNING: translation string unused: shutting down WARNING: translation string unused: sitekeyfile WARNING: translation string unused: smbreload +WARNING: translation string unused: source ip bad +WARNING: translation string unused: source ip in use +WARNING: translation string unused: source ip or net +WARNING: translation string unused: source net +WARNING: translation string unused: source network +WARNING: translation string unused: source port overlaps WARNING: translation string unused: squid extension methods WARNING: translation string unused: squid extension methods invalid WARNING: translation string unused: squid fix cache +WARNING: translation string unused: srcprt range overlaps +WARNING: translation string unused: srcprt within existing +WARNING: translation string unused: ssdmz pinholes WARNING: translation string unused: ssh access tip WARNING: translation string unused: ssh1 disabled WARNING: translation string unused: ssh1 enabled WARNING: translation string unused: ssh1 support WARNING: translation string unused: ssnetwork status WARNING: translation string unused: sspasswords +WARNING: translation string unused: ssport forwarding WARNING: translation string unused: ssproxy graphs WARNING: translation string unused: sssystem status WARNING: translation string unused: sstraffic graphs @@ -433,6 +501,7 @@ WARNING: translation string unused: to email adr WARNING: translation string unused: to install an update WARNING: translation string unused: to warn email bad WARNING: translation string unused: too long 80 char max +WARNING: translation string unused: total connection time WARNING: translation string unused: traffic back WARNING: translation string unused: traffic calc time WARNING: translation string unused: traffic calc time bad @@ -497,23 +566,23 @@ WARNING: translation string unused: warn when traffic reaches WARNING: translation string unused: web proxy configuration WARNING: translation string unused: week-graph WARNING: translation string unused: weekly firewallhits +WARNING: translation string unused: wlanap wlan services +WARNING: translation string unused: xtaccess all error WARNING: translation string unused: xtaccess bad transfert WARNING: translation string unused: year-graph WARNING: translation string unused: yearly firewallhits WARNING: untranslated string: Async logging enabled +WARNING: untranslated string: MB read WARNING: untranslated string: Scan for Songs WARNING: untranslated string: Set time on boot +WARNING: untranslated string: addons WARNING: untranslated string: advproxy cache-digest WARNING: untranslated string: advproxy errmsg cache WARNING: untranslated string: advproxy errmsg invalid upstream proxy WARNING: untranslated string: advproxy errmsg proxy ports equal WARNING: untranslated string: advproxy proxy port transparent -WARNING: untranslated string: age second -WARNING: untranslated string: age seconds -WARNING: untranslated string: age shour -WARNING: untranslated string: age sminute -WARNING: untranslated string: age ssecond WARNING: untranslated string: attention +WARNING: untranslated string: bit WARNING: untranslated string: bytes WARNING: untranslated string: ccd add WARNING: untranslated string: ccd choose net @@ -528,6 +597,8 @@ WARNING: untranslated string: ccd err invalidname WARNING: untranslated string: ccd err invalidnet WARNING: untranslated string: ccd err irouteexist WARNING: untranslated string: ccd err isipsecnet +WARNING: untranslated string: ccd err isipsecrw +WARNING: untranslated string: ccd err isovpnn2n WARNING: untranslated string: ccd err isovpnnet WARNING: untranslated string: ccd err issubnet WARNING: untranslated string: ccd err name @@ -550,7 +621,15 @@ WARNING: untranslated string: ccd none WARNING: untranslated string: ccd routes WARNING: untranslated string: ccd subnet WARNING: untranslated string: ccd used +WARNING: untranslated string: count +WARNING: untranslated string: countries +WARNING: untranslated string: country codes and flags +WARNING: untranslated string: countrycode +WARNING: untranslated string: dead peer detection WARNING: untranslated string: deprecated fs warn +WARNING: untranslated string: details +WARNING: untranslated string: dnat address +WARNING: untranslated string: dns servers WARNING: untranslated string: dnsforward WARNING: untranslated string: dnsforward add a new entry WARNING: untranslated string: dnsforward configuration @@ -558,7 +637,18 @@ WARNING: untranslated string: dnsforward edit an entry WARNING: untranslated string: dnsforward entries WARNING: untranslated string: dnsforward forward_server WARNING: untranslated string: dnsforward zone +WARNING: untranslated string: downlink +WARNING: untranslated string: dpd delay +WARNING: untranslated string: dpd timeout +WARNING: untranslated string: drop action +WARNING: untranslated string: drop action1 +WARNING: untranslated string: drop action2 +WARNING: untranslated string: drop forward +WARNING: untranslated string: drop outgoing WARNING: untranslated string: emerging rules +WARNING: untranslated string: encryption +WARNING: untranslated string: entropy +WARNING: untranslated string: entropy graphs WARNING: untranslated string: fireinfo ipfire version WARNING: untranslated string: fireinfo is disabled WARNING: untranslated string: fireinfo is enabled @@ -576,36 +666,184 @@ WARNING: untranslated string: fireinfo why descr2 WARNING: untranslated string: fireinfo why enable WARNING: untranslated string: fireinfo why read more WARNING: untranslated string: fireinfo your profile id +WARNING: untranslated string: firewall rules +WARNING: untranslated string: first +WARNING: untranslated string: flag +WARNING: untranslated string: fw default drop +WARNING: untranslated string: fw settings +WARNING: untranslated string: fw settings color +WARNING: untranslated string: fw settings dropdown +WARNING: untranslated string: fw settings remark +WARNING: untranslated string: fw settings ruletable +WARNING: untranslated string: fwdfw ACCEPT +WARNING: untranslated string: fwdfw DROP +WARNING: untranslated string: fwdfw REJECT +WARNING: untranslated string: fwdfw action +WARNING: untranslated string: fwdfw additional +WARNING: untranslated string: fwdfw all icmp +WARNING: untranslated string: fwdfw change +WARNING: untranslated string: fwdfw copy +WARNING: untranslated string: fwdfw delete +WARNING: untranslated string: fwdfw dnat +WARNING: untranslated string: fwdfw dnat error +WARNING: untranslated string: fwdfw dnat extport +WARNING: untranslated string: fwdfw dnat nochoice +WARNING: untranslated string: fwdfw dnat porterr +WARNING: untranslated string: fwdfw dnat porterr2 +WARNING: untranslated string: fwdfw edit +WARNING: untranslated string: fwdfw err nosrc +WARNING: untranslated string: fwdfw err notgt +WARNING: untranslated string: fwdfw err prot_port +WARNING: untranslated string: fwdfw err remark +WARNING: untranslated string: fwdfw err ruleexists +WARNING: untranslated string: fwdfw err same +WARNING: untranslated string: fwdfw err samesub +WARNING: untranslated string: fwdfw err src_addr +WARNING: untranslated string: fwdfw err tgt_addr +WARNING: untranslated string: fwdfw err tgt_grp +WARNING: untranslated string: fwdfw err tgt_mac +WARNING: untranslated string: fwdfw err tgt_port +WARNING: untranslated string: fwdfw err time +WARNING: untranslated string: fwdfw external port nat +WARNING: untranslated string: fwdfw hint ip1 +WARNING: untranslated string: fwdfw hint ip2 +WARNING: untranslated string: fwdfw hint mac +WARNING: untranslated string: fwdfw iface +WARNING: untranslated string: fwdfw log +WARNING: untranslated string: fwdfw log rule +WARNING: untranslated string: fwdfw menu +WARNING: untranslated string: fwdfw movedown +WARNING: untranslated string: fwdfw moveup +WARNING: untranslated string: fwdfw newrule +WARNING: untranslated string: fwdfw pol allow +WARNING: untranslated string: fwdfw pol block +WARNING: untranslated string: fwdfw pol text +WARNING: untranslated string: fwdfw pol text1 +WARNING: untranslated string: fwdfw pol title +WARNING: untranslated string: fwdfw prot41 +WARNING: untranslated string: fwdfw prot41 short +WARNING: untranslated string: fwdfw red +WARNING: untranslated string: fwdfw reread +WARNING: untranslated string: fwdfw rule activate +WARNING: untranslated string: fwdfw rulepos +WARNING: untranslated string: fwdfw snat +WARNING: untranslated string: fwdfw source +WARNING: untranslated string: fwdfw sourceip +WARNING: untranslated string: fwdfw target +WARNING: untranslated string: fwdfw targetip +WARNING: untranslated string: fwdfw timeframe +WARNING: untranslated string: fwdfw toggle +WARNING: untranslated string: fwdfw togglelog +WARNING: untranslated string: fwdfw use nat +WARNING: untranslated string: fwdfw use srcport +WARNING: untranslated string: fwdfw use srv +WARNING: untranslated string: fwdfw useless rule +WARNING: untranslated string: fwdfw warn1 +WARNING: untranslated string: fwdfw wd_fri +WARNING: untranslated string: fwdfw wd_mon +WARNING: untranslated string: fwdfw wd_sat +WARNING: untranslated string: fwdfw wd_sun +WARNING: untranslated string: fwdfw wd_thu +WARNING: untranslated string: fwdfw wd_tue +WARNING: untranslated string: fwdfw wd_wed +WARNING: untranslated string: fwhost addgrp +WARNING: untranslated string: fwhost addgrpname +WARNING: untranslated string: fwhost addhost +WARNING: untranslated string: fwhost addnet +WARNING: untranslated string: fwhost addservice +WARNING: untranslated string: fwhost addservicegrp +WARNING: untranslated string: fwhost any +WARNING: untranslated string: fwhost back +WARNING: untranslated string: fwhost ccdhost +WARNING: untranslated string: fwhost ccdnet +WARNING: untranslated string: fwhost change +WARNING: untranslated string: fwhost cust addr +WARNING: untranslated string: fwhost cust grp +WARNING: untranslated string: fwhost cust net +WARNING: untranslated string: fwhost cust service +WARNING: untranslated string: fwhost cust srvgrp +WARNING: untranslated string: fwhost deleted +WARNING: untranslated string: fwhost empty +WARNING: untranslated string: fwhost err addr +WARNING: untranslated string: fwhost err empty +WARNING: untranslated string: fwhost err emptytable +WARNING: untranslated string: fwhost err groupempty +WARNING: untranslated string: fwhost err grpexist +WARNING: untranslated string: fwhost err hostexist +WARNING: untranslated string: fwhost err hostip +WARNING: untranslated string: fwhost err ip +WARNING: untranslated string: fwhost err ipcheck +WARNING: untranslated string: fwhost err ipmac +WARNING: untranslated string: fwhost err ipwithsub +WARNING: untranslated string: fwhost err isccdhost +WARNING: untranslated string: fwhost err isccdiphost +WARNING: untranslated string: fwhost err isccdipnet +WARNING: untranslated string: fwhost err isccdnet +WARNING: untranslated string: fwhost err isingrp +WARNING: untranslated string: fwhost err maxservicetcp +WARNING: untranslated string: fwhost err maxserviceudp +WARNING: untranslated string: fwhost err name +WARNING: untranslated string: fwhost err name1 +WARNING: untranslated string: fwhost err net +WARNING: untranslated string: fwhost err netexist +WARNING: untranslated string: fwhost err partofnet +WARNING: untranslated string: fwhost err port +WARNING: untranslated string: fwhost err remark +WARNING: untranslated string: fwhost err srv exists +WARNING: untranslated string: fwhost err srvexist +WARNING: untranslated string: fwhost err sub32 +WARNING: untranslated string: fwhost hint +WARNING: untranslated string: fwhost icmptype +WARNING: untranslated string: fwhost ip_mac +WARNING: untranslated string: fwhost ipsec net +WARNING: untranslated string: fwhost menu +WARNING: untranslated string: fwhost netaddress +WARNING: untranslated string: fwhost newgrp +WARNING: untranslated string: fwhost newhost +WARNING: untranslated string: fwhost newnet +WARNING: untranslated string: fwhost newservice +WARNING: untranslated string: fwhost newservicegrp +WARNING: untranslated string: fwhost ovpn_n2n +WARNING: untranslated string: fwhost port +WARNING: untranslated string: fwhost prot +WARNING: untranslated string: fwhost services +WARNING: untranslated string: fwhost srv_name +WARNING: untranslated string: fwhost stdnet +WARNING: untranslated string: fwhost type +WARNING: untranslated string: fwhost used +WARNING: untranslated string: fwhost welcome +WARNING: untranslated string: grouptype +WARNING: untranslated string: hardware support +WARNING: untranslated string: integrity +WARNING: untranslated string: invalid input for dpd delay +WARNING: untranslated string: invalid input for dpd timeout +WARNING: untranslated string: ipsec +WARNING: untranslated string: ipsec network +WARNING: untranslated string: last WARNING: untranslated string: least preferred +WARNING: untranslated string: lifetime +WARNING: untranslated string: mac filter +WARNING: untranslated string: maximum +WARNING: untranslated string: minimum WARNING: untranslated string: minute WARNING: untranslated string: most preferred -WARNING: untranslated string: new +WARNING: untranslated string: no hardware random number generator +WARNING: untranslated string: notice WARNING: untranslated string: openvpn default WARNING: untranslated string: openvpn destination port used WARNING: untranslated string: openvpn fragment allowed with udp WARNING: untranslated string: openvpn mssfix allowed with udp +WARNING: untranslated string: openvpn network WARNING: untranslated string: openvpn prefix local subnet WARNING: untranslated string: openvpn prefix openvpn subnet WARNING: untranslated string: openvpn prefix remote subnet WARNING: untranslated string: openvpn subnet is used WARNING: untranslated string: other -WARNING: untranslated string: outgoing firewall add ip group -WARNING: untranslated string: outgoing firewall add mac group -WARNING: untranslated string: outgoing firewall edit ip group -WARNING: untranslated string: outgoing firewall edit mac group -WARNING: untranslated string: outgoing firewall group error -WARNING: untranslated string: outgoing firewall groups -WARNING: untranslated string: outgoing firewall ip groups -WARNING: untranslated string: outgoing firewall mac groups WARNING: untranslated string: outgoing firewall p2p allow WARNING: untranslated string: outgoing firewall p2p deny -WARNING: untranslated string: outgoing firewall p2p description 1 -WARNING: untranslated string: outgoing firewall p2p description 2 -WARNING: untranslated string: outgoing firewall p2p description 3 -WARNING: untranslated string: outgoing firewall reserved groupname -WARNING: untranslated string: outgoing firewall view group WARNING: untranslated string: ovpn errmsg green already pushed WARNING: untranslated string: ovpn errmsg invalid ip or mask +WARNING: untranslated string: ovpn mgmt in root range WARNING: untranslated string: ovpn mtu-disc WARNING: untranslated string: ovpn mtu-disc and mtu not 1500 WARNING: untranslated string: ovpn mtu-disc maybe @@ -613,8 +851,12 @@ WARNING: untranslated string: ovpn mtu-disc no WARNING: untranslated string: ovpn mtu-disc off WARNING: untranslated string: ovpn mtu-disc with mssfix or fragment WARNING: untranslated string: ovpn mtu-disc yes +WARNING: untranslated string: ovpn no connections +WARNING: untranslated string: ovpn port in root range WARNING: untranslated string: ovpn routes push WARNING: untranslated string: ovpn routes push options +WARNING: untranslated string: p2p block +WARNING: untranslated string: p2p block save notice WARNING: untranslated string: pakfire ago WARNING: untranslated string: proxy reports WARNING: untranslated string: proxy reports daily @@ -622,12 +864,18 @@ WARNING: untranslated string: proxy reports monthly WARNING: untranslated string: proxy reports today WARNING: untranslated string: proxy reports weekly WARNING: untranslated string: qos enter bandwidths +WARNING: untranslated string: red1 WARNING: untranslated string: route config changed WARNING: untranslated string: routing config added WARNING: untranslated string: routing config changed WARNING: untranslated string: routing table WARNING: untranslated string: server restart +WARNING: untranslated string: snat new source ip address +WARNING: untranslated string: ssh WARNING: untranslated string: static routes +WARNING: untranslated string: support donation +WARNING: untranslated string: system has hwrng +WARNING: untranslated string: system has rdrand WARNING: untranslated string: system information WARNING: untranslated string: tor WARNING: untranslated string: tor accounting @@ -677,6 +925,7 @@ WARNING: untranslated string: tor traffic limit hard WARNING: untranslated string: tor traffic limit soft WARNING: untranslated string: tor traffic read written WARNING: untranslated string: tor use exit nodes +WARNING: untranslated string: uplink WARNING: untranslated string: uptime load average WARNING: untranslated string: urlfilter redirect template WARNING: untranslated string: visit us at @@ -711,4 +960,5 @@ WARNING: untranslated string: wlan client wpa mode all WARNING: untranslated string: wlan client wpa mode ccmp ccmp WARNING: untranslated string: wlan client wpa mode ccmp tkip WARNING: untranslated string: wlan client wpa mode tkip tkip +WARNING: untranslated string: wlan clients WARNING: untranslated string: wlanap country diff --git a/doc/language_issues.ru b/doc/language_issues.ru index a7d46db..f7ee844 100644 --- a/doc/language_issues.ru +++ b/doc/language_issues.ru @@ -11,10 +11,13 @@ WARNING: translation string unused: Remote VPN IP WARNING: translation string unused: Resolv WARNING: translation string unused: TOS Bits WARNING: translation string unused: Verbose +WARNING: translation string unused: access allowed WARNING: translation string unused: access refused with this oinkcode +WARNING: translation string unused: add a new rule WARNING: translation string unused: add network WARNING: translation string unused: add new ovpn WARNING: translation string unused: add service +WARNING: translation string unused: add xtaccess WARNING: translation string unused: add-route WARNING: translation string unused: admin user password has been changed WARNING: translation string unused: administrator user password @@ -46,10 +49,12 @@ WARNING: translation string unused: all updates installed WARNING: translation string unused: allmsg WARNING: translation string unused: alt information WARNING: translation string unused: alt ovpn +WARNING: translation string unused: alt vpn WARNING: translation string unused: and WARNING: translation string unused: ansi t1.483 WARNING: translation string unused: apply WARNING: translation string unused: archive not exist +WARNING: translation string unused: attemps WARNING: translation string unused: available updates WARNING: translation string unused: backup archive WARNING: translation string unused: backup clear archive @@ -87,6 +92,7 @@ WARNING: translation string unused: cache management WARNING: translation string unused: cache size WARNING: translation string unused: calamaris report interval (in minutes) WARNING: translation string unused: calc traffic all x minutes +WARNING: translation string unused: cant enable xtaccess WARNING: translation string unused: capsinactive WARNING: translation string unused: cfg restart WARNING: translation string unused: check for net traffic update @@ -126,6 +132,11 @@ WARNING: translation string unused: debugme WARNING: translation string unused: deep scan directories WARNING: translation string unused: default networks WARNING: translation string unused: default services +WARNING: translation string unused: description +WARNING: translation string unused: destination ip bad +WARNING: translation string unused: destination ip or net +WARNING: translation string unused: destination net +WARNING: translation string unused: destination port overlaps WARNING: translation string unused: dhcp base ip fixed lease WARNING: translation string unused: dhcp create fixed leases WARNING: translation string unused: dhcp fixed lease err1 @@ -137,18 +148,29 @@ WARNING: translation string unused: dial user password WARNING: translation string unused: dial user password has been changed WARNING: translation string unused: dialup settings WARNING: translation string unused: disconnect +WARNING: translation string unused: disconnects WARNING: translation string unused: display traffic at home +WARNING: translation string unused: display webinterface effects +WARNING: translation string unused: dmz pinhole configuration +WARNING: translation string unused: dmz pinhole rule added +WARNING: translation string unused: dmz pinhole rule removed +WARNING: translation string unused: dmzpinholes for same net not necessary WARNING: translation string unused: dns server WARNING: translation string unused: do not log this port list WARNING: translation string unused: donation-link WARNING: translation string unused: done WARNING: translation string unused: driver +WARNING: translation string unused: drop output +WARNING: translation string unused: dstprt range overlaps +WARNING: translation string unused: dstprt within existing WARNING: translation string unused: dynamic dns client WARNING: translation string unused: eciadsl help WARNING: translation string unused: eciadsl upload +WARNING: translation string unused: edit a rule WARNING: translation string unused: edit network WARNING: translation string unused: edit service WARNING: translation string unused: editor +WARNING: translation string unused: eg WARNING: translation string unused: email server can not be empty WARNING: translation string unused: enable javascript WARNING: translation string unused: enabled on @@ -166,16 +188,27 @@ WARNING: translation string unused: err rs 7 untartst WARNING: translation string unused: err rs 8 untar WARNING: translation string unused: error config WARNING: translation string unused: error external access +WARNING: translation string unused: esp encryption +WARNING: translation string unused: esp grouptype +WARNING: translation string unused: esp integrity +WARNING: translation string unused: esp keylife WARNING: translation string unused: expected WARNING: translation string unused: expertoptions WARNING: translation string unused: exportkey +WARNING: translation string unused: external access configuration +WARNING: translation string unused: external access rule added WARNING: translation string unused: external access rule changed +WARNING: translation string unused: external access rule removed +WARNING: translation string unused: extrahd WARNING: translation string unused: filename WARNING: translation string unused: firewall graphs WARNING: translation string unused: firewall log viewer WARNING: translation string unused: firmware WARNING: translation string unused: firmware upload WARNING: translation string unused: force update +WARNING: translation string unused: forwarding rule added +WARNING: translation string unused: forwarding rule removed +WARNING: translation string unused: forwarding rule updated WARNING: translation string unused: fritzdsl help WARNING: translation string unused: fritzdsl upload WARNING: translation string unused: from email adr @@ -200,6 +233,10 @@ WARNING: translation string unused: icmp selected but no type WARNING: translation string unused: icmp type WARNING: translation string unused: id WARNING: translation string unused: ids preprocessor +WARNING: translation string unused: ike encryption +WARNING: translation string unused: ike grouptype +WARNING: translation string unused: ike integrity +WARNING: translation string unused: ike lifetime WARNING: translation string unused: import WARNING: translation string unused: importkey WARNING: translation string unused: in @@ -210,6 +247,7 @@ WARNING: translation string unused: install new update WARNING: translation string unused: installed WARNING: translation string unused: installed updates WARNING: translation string unused: intrusion detection system log viewer +WARNING: translation string unused: intrusion detection system2 WARNING: translation string unused: invalid cache size WARNING: translation string unused: invalid date entered WARNING: translation string unused: invalid downlink speed @@ -239,6 +277,7 @@ WARNING: translation string unused: local hard disk WARNING: translation string unused: localkeyfile WARNING: translation string unused: log enabled WARNING: translation string unused: log viewer +WARNING: translation string unused: logging WARNING: translation string unused: loosedirectorychecking WARNING: translation string unused: ls_dhcpd WARNING: translation string unused: ls_disk space @@ -264,6 +303,7 @@ WARNING: translation string unused: mbmon value WARNING: translation string unused: min size WARNING: translation string unused: missing dat WARNING: translation string unused: missing gz +WARNING: translation string unused: mode WARNING: translation string unused: modem on com1 WARNING: translation string unused: modem on com2 WARNING: translation string unused: modem on com3 @@ -279,6 +319,7 @@ WARNING: translation string unused: monthly volume start day short WARNING: translation string unused: mount WARNING: translation string unused: mtu QoS WARNING: translation string unused: nat-traversal +WARNING: translation string unused: net WARNING: translation string unused: net address WARNING: translation string unused: net config type WARNING: translation string unused: net config type help @@ -287,6 +328,7 @@ WARNING: translation string unused: network added WARNING: translation string unused: network configuration WARNING: translation string unused: network removed WARNING: translation string unused: network status information +WARNING: translation string unused: network time WARNING: translation string unused: network traffic graphs WARNING: translation string unused: network updated WARNING: translation string unused: networks settings @@ -305,6 +347,7 @@ WARNING: translation string unused: o-no WARNING: translation string unused: o-yes WARNING: translation string unused: online help en WARNING: translation string unused: only red +WARNING: translation string unused: open to all WARNING: translation string unused: optional data WARNING: translation string unused: optionsfw portlist hint WARNING: translation string unused: optionsfw warning @@ -312,7 +355,24 @@ WARNING: translation string unused: or WARNING: translation string unused: original WARNING: translation string unused: other countries WARNING: translation string unused: out +WARNING: translation string unused: outgoing firewall add ip group +WARNING: translation string unused: outgoing firewall add mac group +WARNING: translation string unused: outgoing firewall edit ip group +WARNING: translation string unused: outgoing firewall edit mac group +WARNING: translation string unused: outgoing firewall group error +WARNING: translation string unused: outgoing firewall groups +WARNING: translation string unused: outgoing firewall ip groups +WARNING: translation string unused: outgoing firewall mac groups +WARNING: translation string unused: outgoing firewall mode0 +WARNING: translation string unused: outgoing firewall mode1 +WARNING: translation string unused: outgoing firewall mode2 WARNING: translation string unused: outgoing firewall outgoing firewall reserved groupname +WARNING: translation string unused: outgoing firewall p2p description 1 +WARNING: translation string unused: outgoing firewall p2p description 2 +WARNING: translation string unused: outgoing firewall p2p description 3 +WARNING: translation string unused: outgoing firewall reset +WARNING: translation string unused: outgoing firewall view group +WARNING: translation string unused: outgoing firewall warning WARNING: translation string unused: override mtu WARNING: translation string unused: ovpn WARNING: translation string unused: ovpn config @@ -340,9 +400,11 @@ WARNING: translation string unused: pakfire updates WARNING: translation string unused: password contains illegal characters WARNING: translation string unused: password crypting key WARNING: translation string unused: passwords must be at least 6 characters in length +WARNING: translation string unused: phase1 group WARNING: translation string unused: phonebook entry WARNING: translation string unused: ping disabled WARNING: translation string unused: polfile +WARNING: translation string unused: port forwarding configuration WARNING: translation string unused: ports WARNING: translation string unused: pots WARNING: translation string unused: pppoe @@ -354,23 +416,31 @@ WARNING: translation string unused: proxy no proxy local WARNING: translation string unused: proxy port WARNING: translation string unused: psk WARNING: translation string unused: quick control +WARNING: translation string unused: reboot ask +WARNING: translation string unused: reboot question WARNING: translation string unused: reboot schedule -WARNING: translation string unused: rebooting +WARNING: translation string unused: reboot sure WARNING: translation string unused: refresh update list WARNING: translation string unused: released WARNING: translation string unused: removable device advice WARNING: translation string unused: reportfile WARNING: translation string unused: requested data +WARNING: translation string unused: reserved dst port +WARNING: translation string unused: reserved src port WARNING: translation string unused: restore hardware settings WARNING: translation string unused: root WARNING: translation string unused: root path WARNING: translation string unused: root user password WARNING: translation string unused: route subnet is invalid WARNING: translation string unused: router ip +WARNING: translation string unused: rsvd dst port overlap +WARNING: translation string unused: rsvd src port overlap WARNING: translation string unused: rules already up to date WARNING: translation string unused: safe removal of umounted device WARNING: translation string unused: save error +WARNING: translation string unused: select dest net WARNING: translation string unused: select media +WARNING: translation string unused: select source net WARNING: translation string unused: selecttraffic WARNING: translation string unused: send email notification WARNING: translation string unused: send test mail @@ -384,20 +454,30 @@ WARNING: translation string unused: shaping add options WARNING: translation string unused: shaping list options WARNING: translation string unused: show areas WARNING: translation string unused: show lines -WARNING: translation string unused: shutdown control +WARNING: translation string unused: shutdown ask +WARNING: translation string unused: shutdown sure WARNING: translation string unused: shutdown2 -WARNING: translation string unused: shutting down WARNING: translation string unused: sitekeyfile WARNING: translation string unused: smbreload +WARNING: translation string unused: source ip bad +WARNING: translation string unused: source ip in use +WARNING: translation string unused: source ip or net +WARNING: translation string unused: source net +WARNING: translation string unused: source network +WARNING: translation string unused: source port overlaps WARNING: translation string unused: squid extension methods WARNING: translation string unused: squid extension methods invalid WARNING: translation string unused: squid fix cache +WARNING: translation string unused: srcprt range overlaps +WARNING: translation string unused: srcprt within existing +WARNING: translation string unused: ssdmz pinholes WARNING: translation string unused: ssh access tip WARNING: translation string unused: ssh1 disabled WARNING: translation string unused: ssh1 enabled WARNING: translation string unused: ssh1 support WARNING: translation string unused: ssnetwork status WARNING: translation string unused: sspasswords +WARNING: translation string unused: ssport forwarding WARNING: translation string unused: ssproxy graphs WARNING: translation string unused: sssystem status WARNING: translation string unused: sstraffic graphs @@ -426,6 +506,7 @@ WARNING: translation string unused: to email adr WARNING: translation string unused: to install an update WARNING: translation string unused: to warn email bad WARNING: translation string unused: too long 80 char max +WARNING: translation string unused: total connection time WARNING: translation string unused: traffic back WARNING: translation string unused: traffic calc time WARNING: translation string unused: traffic calc time bad @@ -489,22 +570,22 @@ WARNING: translation string unused: vpn watch WARNING: translation string unused: warn when traffic reaches WARNING: translation string unused: web proxy configuration WARNING: translation string unused: weekly firewallhits +WARNING: translation string unused: wlanap wlan services +WARNING: translation string unused: xtaccess all error WARNING: translation string unused: xtaccess bad transfert WARNING: translation string unused: yearly firewallhits WARNING: untranslated string: Add a route WARNING: untranslated string: Edit an existing route +WARNING: untranslated string: MB read WARNING: untranslated string: Scan for Songs +WARNING: untranslated string: addons WARNING: untranslated string: advproxy cache-digest WARNING: untranslated string: advproxy errmsg cache WARNING: untranslated string: advproxy errmsg invalid upstream proxy WARNING: untranslated string: advproxy errmsg proxy ports equal WARNING: untranslated string: advproxy proxy port transparent -WARNING: untranslated string: age second -WARNING: untranslated string: age seconds -WARNING: untranslated string: age shour -WARNING: untranslated string: age sminute -WARNING: untranslated string: age ssecond WARNING: untranslated string: attention +WARNING: untranslated string: bit WARNING: untranslated string: bytes WARNING: untranslated string: ccd add WARNING: untranslated string: ccd choose net @@ -519,6 +600,8 @@ WARNING: untranslated string: ccd err invalidname WARNING: untranslated string: ccd err invalidnet WARNING: untranslated string: ccd err irouteexist WARNING: untranslated string: ccd err isipsecnet +WARNING: untranslated string: ccd err isipsecrw +WARNING: untranslated string: ccd err isovpnn2n WARNING: untranslated string: ccd err isovpnnet WARNING: untranslated string: ccd err issubnet WARNING: untranslated string: ccd err name @@ -542,8 +625,16 @@ WARNING: untranslated string: ccd routes WARNING: untranslated string: ccd subnet WARNING: untranslated string: ccd used WARNING: untranslated string: community rules +WARNING: untranslated string: count +WARNING: untranslated string: countries +WARNING: untranslated string: country codes and flags +WARNING: untranslated string: countrycode +WARNING: untranslated string: dead peer detection WARNING: untranslated string: deprecated fs warn +WARNING: untranslated string: details WARNING: untranslated string: disk access per +WARNING: untranslated string: dnat address +WARNING: untranslated string: dns servers WARNING: untranslated string: dnsforward WARNING: untranslated string: dnsforward add a new entry WARNING: untranslated string: dnsforward configuration @@ -551,7 +642,18 @@ WARNING: untranslated string: dnsforward edit an entry WARNING: untranslated string: dnsforward entries WARNING: untranslated string: dnsforward forward_server WARNING: untranslated string: dnsforward zone +WARNING: untranslated string: downlink +WARNING: untranslated string: dpd delay +WARNING: untranslated string: dpd timeout +WARNING: untranslated string: drop action +WARNING: untranslated string: drop action1 +WARNING: untranslated string: drop action2 +WARNING: untranslated string: drop forward +WARNING: untranslated string: drop outgoing WARNING: untranslated string: emerging rules +WARNING: untranslated string: encryption +WARNING: untranslated string: entropy +WARNING: untranslated string: entropy graphs WARNING: untranslated string: extrahd because there is already a device mounted WARNING: untranslated string: extrahd cant umount WARNING: untranslated string: extrahd install or load driver @@ -559,22 +661,182 @@ WARNING: untranslated string: extrahd maybe the device is in use WARNING: untranslated string: extrahd to WARNING: untranslated string: extrahd to root WARNING: untranslated string: extrahd you cant mount +WARNING: untranslated string: firewall rules +WARNING: untranslated string: first +WARNING: untranslated string: flag +WARNING: untranslated string: fw default drop +WARNING: untranslated string: fw settings +WARNING: untranslated string: fw settings color +WARNING: untranslated string: fw settings dropdown +WARNING: untranslated string: fw settings remark +WARNING: untranslated string: fw settings ruletable +WARNING: untranslated string: fwdfw ACCEPT +WARNING: untranslated string: fwdfw DROP +WARNING: untranslated string: fwdfw REJECT +WARNING: untranslated string: fwdfw action +WARNING: untranslated string: fwdfw additional +WARNING: untranslated string: fwdfw all icmp +WARNING: untranslated string: fwdfw change +WARNING: untranslated string: fwdfw copy +WARNING: untranslated string: fwdfw delete +WARNING: untranslated string: fwdfw dnat +WARNING: untranslated string: fwdfw dnat error +WARNING: untranslated string: fwdfw dnat extport +WARNING: untranslated string: fwdfw dnat nochoice +WARNING: untranslated string: fwdfw dnat porterr +WARNING: untranslated string: fwdfw dnat porterr2 +WARNING: untranslated string: fwdfw edit +WARNING: untranslated string: fwdfw err nosrc +WARNING: untranslated string: fwdfw err notgt +WARNING: untranslated string: fwdfw err prot_port +WARNING: untranslated string: fwdfw err remark +WARNING: untranslated string: fwdfw err ruleexists +WARNING: untranslated string: fwdfw err same +WARNING: untranslated string: fwdfw err samesub +WARNING: untranslated string: fwdfw err src_addr +WARNING: untranslated string: fwdfw err tgt_addr +WARNING: untranslated string: fwdfw err tgt_grp +WARNING: untranslated string: fwdfw err tgt_mac +WARNING: untranslated string: fwdfw err tgt_port +WARNING: untranslated string: fwdfw err time +WARNING: untranslated string: fwdfw external port nat +WARNING: untranslated string: fwdfw hint ip1 +WARNING: untranslated string: fwdfw hint ip2 +WARNING: untranslated string: fwdfw hint mac +WARNING: untranslated string: fwdfw iface +WARNING: untranslated string: fwdfw log +WARNING: untranslated string: fwdfw log rule +WARNING: untranslated string: fwdfw menu +WARNING: untranslated string: fwdfw movedown +WARNING: untranslated string: fwdfw moveup +WARNING: untranslated string: fwdfw newrule +WARNING: untranslated string: fwdfw pol allow +WARNING: untranslated string: fwdfw pol block +WARNING: untranslated string: fwdfw pol text +WARNING: untranslated string: fwdfw pol text1 +WARNING: untranslated string: fwdfw pol title +WARNING: untranslated string: fwdfw prot41 +WARNING: untranslated string: fwdfw prot41 short +WARNING: untranslated string: fwdfw red +WARNING: untranslated string: fwdfw reread +WARNING: untranslated string: fwdfw rule activate +WARNING: untranslated string: fwdfw rulepos +WARNING: untranslated string: fwdfw snat +WARNING: untranslated string: fwdfw source +WARNING: untranslated string: fwdfw sourceip +WARNING: untranslated string: fwdfw target +WARNING: untranslated string: fwdfw targetip +WARNING: untranslated string: fwdfw timeframe +WARNING: untranslated string: fwdfw toggle +WARNING: untranslated string: fwdfw togglelog +WARNING: untranslated string: fwdfw use nat +WARNING: untranslated string: fwdfw use srcport +WARNING: untranslated string: fwdfw use srv +WARNING: untranslated string: fwdfw useless rule +WARNING: untranslated string: fwdfw warn1 +WARNING: untranslated string: fwdfw wd_fri +WARNING: untranslated string: fwdfw wd_mon +WARNING: untranslated string: fwdfw wd_sat +WARNING: untranslated string: fwdfw wd_sun +WARNING: untranslated string: fwdfw wd_thu +WARNING: untranslated string: fwdfw wd_tue +WARNING: untranslated string: fwdfw wd_wed +WARNING: untranslated string: fwhost addgrp +WARNING: untranslated string: fwhost addgrpname +WARNING: untranslated string: fwhost addhost +WARNING: untranslated string: fwhost addnet +WARNING: untranslated string: fwhost addservice +WARNING: untranslated string: fwhost addservicegrp +WARNING: untranslated string: fwhost any +WARNING: untranslated string: fwhost back +WARNING: untranslated string: fwhost ccdhost +WARNING: untranslated string: fwhost ccdnet +WARNING: untranslated string: fwhost change +WARNING: untranslated string: fwhost cust addr +WARNING: untranslated string: fwhost cust grp +WARNING: untranslated string: fwhost cust net +WARNING: untranslated string: fwhost cust service +WARNING: untranslated string: fwhost cust srvgrp +WARNING: untranslated string: fwhost deleted +WARNING: untranslated string: fwhost empty +WARNING: untranslated string: fwhost err addr +WARNING: untranslated string: fwhost err empty +WARNING: untranslated string: fwhost err emptytable +WARNING: untranslated string: fwhost err groupempty +WARNING: untranslated string: fwhost err grpexist +WARNING: untranslated string: fwhost err hostexist +WARNING: untranslated string: fwhost err hostip +WARNING: untranslated string: fwhost err ip +WARNING: untranslated string: fwhost err ipcheck +WARNING: untranslated string: fwhost err ipmac +WARNING: untranslated string: fwhost err ipwithsub +WARNING: untranslated string: fwhost err isccdhost +WARNING: untranslated string: fwhost err isccdiphost +WARNING: untranslated string: fwhost err isccdipnet +WARNING: untranslated string: fwhost err isccdnet +WARNING: untranslated string: fwhost err isingrp +WARNING: untranslated string: fwhost err maxservicetcp +WARNING: untranslated string: fwhost err maxserviceudp +WARNING: untranslated string: fwhost err name +WARNING: untranslated string: fwhost err name1 +WARNING: untranslated string: fwhost err net +WARNING: untranslated string: fwhost err netexist +WARNING: untranslated string: fwhost err partofnet +WARNING: untranslated string: fwhost err port +WARNING: untranslated string: fwhost err remark +WARNING: untranslated string: fwhost err srv exists +WARNING: untranslated string: fwhost err srvexist +WARNING: untranslated string: fwhost err sub32 +WARNING: untranslated string: fwhost hint +WARNING: untranslated string: fwhost icmptype +WARNING: untranslated string: fwhost ip_mac +WARNING: untranslated string: fwhost ipsec net +WARNING: untranslated string: fwhost menu +WARNING: untranslated string: fwhost netaddress +WARNING: untranslated string: fwhost newgrp +WARNING: untranslated string: fwhost newhost +WARNING: untranslated string: fwhost newnet +WARNING: untranslated string: fwhost newservice +WARNING: untranslated string: fwhost newservicegrp +WARNING: untranslated string: fwhost ovpn_n2n +WARNING: untranslated string: fwhost port +WARNING: untranslated string: fwhost prot +WARNING: untranslated string: fwhost services +WARNING: untranslated string: fwhost srv_name +WARNING: untranslated string: fwhost stdnet +WARNING: untranslated string: fwhost type +WARNING: untranslated string: fwhost used +WARNING: untranslated string: fwhost welcome +WARNING: untranslated string: grouptype +WARNING: untranslated string: hardware support WARNING: untranslated string: incoming traffic in bytes per second +WARNING: untranslated string: integrity +WARNING: untranslated string: invalid input for dpd delay +WARNING: untranslated string: invalid input for dpd timeout +WARNING: untranslated string: ipsec +WARNING: untranslated string: ipsec network +WARNING: untranslated string: last WARNING: untranslated string: least preferred +WARNING: untranslated string: lifetime +WARNING: untranslated string: mac filter +WARNING: untranslated string: maximum +WARNING: untranslated string: minimum WARNING: untranslated string: minute WARNING: untranslated string: most preferred -WARNING: untranslated string: new +WARNING: untranslated string: no hardware random number generator +WARNING: untranslated string: notice WARNING: untranslated string: openvpn default WARNING: untranslated string: openvpn destination port used WARNING: untranslated string: openvpn fragment allowed with udp WARNING: untranslated string: openvpn mssfix allowed with udp +WARNING: untranslated string: openvpn network WARNING: untranslated string: openvpn prefix local subnet WARNING: untranslated string: openvpn prefix openvpn subnet WARNING: untranslated string: openvpn prefix remote subnet WARNING: untranslated string: openvpn subnet is used WARNING: untranslated string: other -WARNING: untranslated string: outgoing firewall reserved groupname WARNING: untranslated string: outgoing traffic in bytes per second +WARNING: untranslated string: ovpn mgmt in root range WARNING: untranslated string: ovpn mtu-disc WARNING: untranslated string: ovpn mtu-disc and mtu not 1500 WARNING: untranslated string: ovpn mtu-disc maybe @@ -582,18 +844,28 @@ WARNING: untranslated string: ovpn mtu-disc no WARNING: untranslated string: ovpn mtu-disc off WARNING: untranslated string: ovpn mtu-disc with mssfix or fragment WARNING: untranslated string: ovpn mtu-disc yes +WARNING: untranslated string: ovpn no connections +WARNING: untranslated string: ovpn port in root range +WARNING: untranslated string: p2p block +WARNING: untranslated string: p2p block save notice WARNING: untranslated string: proxy reports WARNING: untranslated string: proxy reports daily WARNING: untranslated string: proxy reports monthly WARNING: untranslated string: proxy reports today WARNING: untranslated string: proxy reports weekly WARNING: untranslated string: qos enter bandwidths +WARNING: untranslated string: red1 WARNING: untranslated string: route config changed WARNING: untranslated string: routing config added WARNING: untranslated string: routing config changed WARNING: untranslated string: routing table WARNING: untranslated string: server restart +WARNING: untranslated string: snat new source ip address +WARNING: untranslated string: ssh WARNING: untranslated string: static routes +WARNING: untranslated string: support donation +WARNING: untranslated string: system has hwrng +WARNING: untranslated string: system has rdrand WARNING: untranslated string: tor WARNING: untranslated string: tor accounting WARNING: untranslated string: tor accounting bytes @@ -642,6 +914,7 @@ WARNING: untranslated string: tor traffic limit hard WARNING: untranslated string: tor traffic limit soft WARNING: untranslated string: tor traffic read written WARNING: untranslated string: tor use exit nodes +WARNING: untranslated string: uplink WARNING: untranslated string: uptime load average WARNING: untranslated string: urlfilter redirect template WARNING: untranslated string: visit us at @@ -676,4 +949,5 @@ WARNING: untranslated string: wlan client wpa mode all WARNING: untranslated string: wlan client wpa mode ccmp ccmp WARNING: untranslated string: wlan client wpa mode ccmp tkip WARNING: untranslated string: wlan client wpa mode tkip tkip +WARNING: untranslated string: wlan clients WARNING: untranslated string: wlanap country diff --git a/doc/language_issues.tr b/doc/language_issues.tr index d1d655a..f7c9402 100644 --- a/doc/language_issues.tr +++ b/doc/language_issues.tr @@ -11,10 +11,13 @@ WARNING: translation string unused: Remote VPN IP WARNING: translation string unused: Resolv WARNING: translation string unused: TOS Bits WARNING: translation string unused: Verbose +WARNING: translation string unused: access allowed WARNING: translation string unused: access refused with this oinkcode +WARNING: translation string unused: add a new rule WARNING: translation string unused: add network WARNING: translation string unused: add new ovpn WARNING: translation string unused: add service +WARNING: translation string unused: add xtaccess WARNING: translation string unused: add-route WARNING: translation string unused: admin user password has been changed WARNING: translation string unused: administrator user password @@ -39,6 +42,11 @@ WARNING: translation string unused: advproxy no cre groups WARNING: translation string unused: advproxy ssadvanced proxy WARNING: translation string unused: advproxy update information WARNING: translation string unused: advproxy update notification +WARNING: translation string unused: age second +WARNING: translation string unused: age seconds +WARNING: translation string unused: age shour +WARNING: translation string unused: age sminute +WARNING: translation string unused: age ssecond WARNING: translation string unused: alcatelusb help WARNING: translation string unused: alcatelusb upload WARNING: translation string unused: all interfaces @@ -46,10 +54,12 @@ WARNING: translation string unused: all updates installed WARNING: translation string unused: allmsg WARNING: translation string unused: alt information WARNING: translation string unused: alt ovpn +WARNING: translation string unused: alt vpn WARNING: translation string unused: and WARNING: translation string unused: ansi t1.483 WARNING: translation string unused: apply WARNING: translation string unused: archive not exist +WARNING: translation string unused: attemps WARNING: translation string unused: available updates WARNING: translation string unused: backup archive WARNING: translation string unused: backup clear archive @@ -87,6 +97,7 @@ WARNING: translation string unused: cache management WARNING: translation string unused: cache size WARNING: translation string unused: calamaris report interval (in minutes) WARNING: translation string unused: calc traffic all x minutes +WARNING: translation string unused: cant enable xtaccess WARNING: translation string unused: capsinactive WARNING: translation string unused: ccd err iroute WARNING: translation string unused: ccd err netadr @@ -127,8 +138,14 @@ WARNING: translation string unused: ddns help freedns WARNING: translation string unused: ddns help plus WARNING: translation string unused: debugme WARNING: translation string unused: deep scan directories +WARNING: translation string unused: default ip WARNING: translation string unused: default networks WARNING: translation string unused: default services +WARNING: translation string unused: description +WARNING: translation string unused: destination ip bad +WARNING: translation string unused: destination ip or net +WARNING: translation string unused: destination net +WARNING: translation string unused: destination port overlaps WARNING: translation string unused: dhcp base ip fixed lease WARNING: translation string unused: dhcp create fixed leases WARNING: translation string unused: dhcp fixed lease err1 @@ -140,18 +157,29 @@ WARNING: translation string unused: dial user password WARNING: translation string unused: dial user password has been changed WARNING: translation string unused: dialup settings WARNING: translation string unused: disconnect +WARNING: translation string unused: disconnects WARNING: translation string unused: display traffic at home +WARNING: translation string unused: display webinterface effects +WARNING: translation string unused: dmz pinhole configuration +WARNING: translation string unused: dmz pinhole rule added +WARNING: translation string unused: dmz pinhole rule removed +WARNING: translation string unused: dmzpinholes for same net not necessary WARNING: translation string unused: dns server WARNING: translation string unused: do not log this port list WARNING: translation string unused: donation-link WARNING: translation string unused: done WARNING: translation string unused: driver +WARNING: translation string unused: drop output +WARNING: translation string unused: dstprt range overlaps +WARNING: translation string unused: dstprt within existing WARNING: translation string unused: dynamic dns client WARNING: translation string unused: eciadsl help WARNING: translation string unused: eciadsl upload +WARNING: translation string unused: edit a rule WARNING: translation string unused: edit network WARNING: translation string unused: edit service WARNING: translation string unused: editor +WARNING: translation string unused: eg WARNING: translation string unused: email server can not be empty WARNING: translation string unused: enable javascript WARNING: translation string unused: enabled on @@ -169,10 +197,18 @@ WARNING: translation string unused: err rs 7 untartst WARNING: translation string unused: err rs 8 untar WARNING: translation string unused: error config WARNING: translation string unused: error external access +WARNING: translation string unused: esp encryption +WARNING: translation string unused: esp grouptype +WARNING: translation string unused: esp integrity +WARNING: translation string unused: esp keylife WARNING: translation string unused: expected WARNING: translation string unused: expertoptions WARNING: translation string unused: exportkey +WARNING: translation string unused: external access configuration +WARNING: translation string unused: external access rule added WARNING: translation string unused: external access rule changed +WARNING: translation string unused: external access rule removed +WARNING: translation string unused: extrahd WARNING: translation string unused: extrahd unable to read WARNING: translation string unused: extrahd unable to write WARNING: translation string unused: filename @@ -181,6 +217,10 @@ WARNING: translation string unused: firewall log viewer WARNING: translation string unused: firmware WARNING: translation string unused: firmware upload WARNING: translation string unused: force update +WARNING: translation string unused: forward firewall +WARNING: translation string unused: forwarding rule added +WARNING: translation string unused: forwarding rule removed +WARNING: translation string unused: forwarding rule updated WARNING: translation string unused: frequency WARNING: translation string unused: fritzdsl help WARNING: translation string unused: fritzdsl upload @@ -189,6 +229,38 @@ WARNING: translation string unused: from email pw WARNING: translation string unused: from email server WARNING: translation string unused: from email user WARNING: translation string unused: from warn email bad +WARNING: translation string unused: fwdfw MODE1 +WARNING: translation string unused: fwdfw MODE2 +WARNING: translation string unused: fwdfw addrule +WARNING: translation string unused: fwdfw err nosrcip +WARNING: translation string unused: fwdfw err notgtip +WARNING: translation string unused: fwdfw err prot_port1 +WARNING: translation string unused: fwdfw final_rule +WARNING: translation string unused: fwdfw from +WARNING: translation string unused: fwdfw ipsec network +WARNING: translation string unused: fwdfw man port +WARNING: translation string unused: fwdfw natport used +WARNING: translation string unused: fwdfw p2p txt +WARNING: translation string unused: fwdfw rule action +WARNING: translation string unused: fwdfw rules +WARNING: translation string unused: fwdfw std network +WARNING: translation string unused: fwdfw till +WARNING: translation string unused: fwdfw time +WARNING: translation string unused: fwdfw xt access +WARNING: translation string unused: fwhost attention +WARNING: translation string unused: fwhost blue +WARNING: translation string unused: fwhost changeremark +WARNING: translation string unused: fwhost err addrgrp +WARNING: translation string unused: fwhost err hostorip +WARNING: translation string unused: fwhost err mac +WARNING: translation string unused: fwhost green +WARNING: translation string unused: fwhost hosts +WARNING: translation string unused: fwhost ipadr +WARNING: translation string unused: fwhost ipsec host +WARNING: translation string unused: fwhost orange +WARNING: translation string unused: fwhost reread +WARNING: translation string unused: fwhost reset +WARNING: translation string unused: fwhost wo subnet WARNING: translation string unused: g.dtm WARNING: translation string unused: g.lite WARNING: translation string unused: gen static key @@ -207,6 +279,10 @@ WARNING: translation string unused: icmp selected but no type WARNING: translation string unused: icmp type WARNING: translation string unused: id WARNING: translation string unused: ids preprocessor +WARNING: translation string unused: ike encryption +WARNING: translation string unused: ike grouptype +WARNING: translation string unused: ike integrity +WARNING: translation string unused: ike lifetime WARNING: translation string unused: import WARNING: translation string unused: importkey WARNING: translation string unused: in @@ -217,6 +293,7 @@ WARNING: translation string unused: install new update WARNING: translation string unused: installed WARNING: translation string unused: installed updates WARNING: translation string unused: intrusion detection system log viewer +WARNING: translation string unused: intrusion detection system2 WARNING: translation string unused: invalid cache size WARNING: translation string unused: invalid date entered WARNING: translation string unused: invalid downlink speed @@ -229,6 +306,7 @@ WARNING: translation string unused: invalid upstream proxy username or password WARNING: translation string unused: invert WARNING: translation string unused: ip address in use WARNING: translation string unused: ipfire side +WARNING: translation string unused: ipsec no connections WARNING: translation string unused: iptable rules WARNING: translation string unused: isdn WARNING: translation string unused: isdn settings @@ -246,6 +324,7 @@ WARNING: translation string unused: local hard disk WARNING: translation string unused: localkeyfile WARNING: translation string unused: log enabled WARNING: translation string unused: log viewer +WARNING: translation string unused: logging WARNING: translation string unused: loosedirectorychecking WARNING: translation string unused: ls_dhcpd WARNING: translation string unused: ls_disk space @@ -271,6 +350,7 @@ WARNING: translation string unused: mbmon value WARNING: translation string unused: min size WARNING: translation string unused: missing dat WARNING: translation string unused: missing gz +WARNING: translation string unused: mode WARNING: translation string unused: modem on com1 WARNING: translation string unused: modem on com2 WARNING: translation string unused: modem on com3 @@ -287,6 +367,7 @@ WARNING: translation string unused: monthly volume start day short WARNING: translation string unused: mount WARNING: translation string unused: mtu QoS WARNING: translation string unused: nat-traversal +WARNING: translation string unused: net WARNING: translation string unused: net address WARNING: translation string unused: net config type WARNING: translation string unused: net config type help @@ -295,6 +376,7 @@ WARNING: translation string unused: network added WARNING: translation string unused: network configuration WARNING: translation string unused: network removed WARNING: translation string unused: network status information +WARNING: translation string unused: network time WARNING: translation string unused: network traffic graphs WARNING: translation string unused: network updated WARNING: translation string unused: networks settings @@ -313,6 +395,7 @@ WARNING: translation string unused: o-no WARNING: translation string unused: o-yes WARNING: translation string unused: online help en WARNING: translation string unused: only red +WARNING: translation string unused: open to all WARNING: translation string unused: openvpn disabled WARNING: translation string unused: openvpn enabled WARNING: translation string unused: optional data @@ -323,7 +406,24 @@ WARNING: translation string unused: original WARNING: translation string unused: other countries WARNING: translation string unused: our donors WARNING: translation string unused: out +WARNING: translation string unused: outgoing firewall add ip group +WARNING: translation string unused: outgoing firewall add mac group +WARNING: translation string unused: outgoing firewall edit ip group +WARNING: translation string unused: outgoing firewall edit mac group +WARNING: translation string unused: outgoing firewall group error +WARNING: translation string unused: outgoing firewall groups +WARNING: translation string unused: outgoing firewall ip groups +WARNING: translation string unused: outgoing firewall mac groups +WARNING: translation string unused: outgoing firewall mode0 +WARNING: translation string unused: outgoing firewall mode1 +WARNING: translation string unused: outgoing firewall mode2 WARNING: translation string unused: outgoing firewall outgoing firewall reserved groupname +WARNING: translation string unused: outgoing firewall p2p description 1 +WARNING: translation string unused: outgoing firewall p2p description 2 +WARNING: translation string unused: outgoing firewall p2p description 3 +WARNING: translation string unused: outgoing firewall reset +WARNING: translation string unused: outgoing firewall view group +WARNING: translation string unused: outgoing firewall warning WARNING: translation string unused: override mtu WARNING: translation string unused: ovpn WARNING: translation string unused: ovpn config @@ -351,9 +451,11 @@ WARNING: translation string unused: pakfire updates WARNING: translation string unused: password contains illegal characters WARNING: translation string unused: password crypting key WARNING: translation string unused: passwords must be at least 6 characters in length +WARNING: translation string unused: phase1 group WARNING: translation string unused: phonebook entry WARNING: translation string unused: ping disabled WARNING: translation string unused: polfile +WARNING: translation string unused: port forwarding configuration WARNING: translation string unused: ports WARNING: translation string unused: pots WARNING: translation string unused: pppoe @@ -365,23 +467,31 @@ WARNING: translation string unused: proxy no proxy local WARNING: translation string unused: proxy port WARNING: translation string unused: psk WARNING: translation string unused: quick control +WARNING: translation string unused: reboot ask +WARNING: translation string unused: reboot question WARNING: translation string unused: reboot schedule -WARNING: translation string unused: rebooting +WARNING: translation string unused: reboot sure WARNING: translation string unused: refresh update list WARNING: translation string unused: released WARNING: translation string unused: removable device advice WARNING: translation string unused: reportfile WARNING: translation string unused: requested data +WARNING: translation string unused: reserved dst port +WARNING: translation string unused: reserved src port WARNING: translation string unused: restore hardware settings WARNING: translation string unused: root WARNING: translation string unused: root path WARNING: translation string unused: root user password WARNING: translation string unused: route subnet is invalid WARNING: translation string unused: router ip +WARNING: translation string unused: rsvd dst port overlap +WARNING: translation string unused: rsvd src port overlap WARNING: translation string unused: rules already up to date WARNING: translation string unused: safe removal of umounted device WARNING: translation string unused: save error +WARNING: translation string unused: select dest net WARNING: translation string unused: select media +WARNING: translation string unused: select source net WARNING: translation string unused: selecttraffic WARNING: translation string unused: send email notification WARNING: translation string unused: send test mail @@ -395,20 +505,30 @@ WARNING: translation string unused: shaping add options WARNING: translation string unused: shaping list options WARNING: translation string unused: show areas WARNING: translation string unused: show lines -WARNING: translation string unused: shutdown control +WARNING: translation string unused: shutdown ask +WARNING: translation string unused: shutdown sure WARNING: translation string unused: shutdown2 -WARNING: translation string unused: shutting down WARNING: translation string unused: sitekeyfile WARNING: translation string unused: smbreload +WARNING: translation string unused: source ip bad +WARNING: translation string unused: source ip in use +WARNING: translation string unused: source ip or net +WARNING: translation string unused: source net +WARNING: translation string unused: source network +WARNING: translation string unused: source port overlaps WARNING: translation string unused: squid extension methods WARNING: translation string unused: squid extension methods invalid WARNING: translation string unused: squid fix cache +WARNING: translation string unused: srcprt range overlaps +WARNING: translation string unused: srcprt within existing +WARNING: translation string unused: ssdmz pinholes WARNING: translation string unused: ssh access tip WARNING: translation string unused: ssh1 disabled WARNING: translation string unused: ssh1 enabled WARNING: translation string unused: ssh1 support WARNING: translation string unused: ssnetwork status WARNING: translation string unused: sspasswords +WARNING: translation string unused: ssport forwarding WARNING: translation string unused: ssproxy graphs WARNING: translation string unused: sssystem status WARNING: translation string unused: sstraffic graphs @@ -443,6 +563,7 @@ WARNING: translation string unused: tor accounting period weekly WARNING: translation string unused: tor bridge enabled WARNING: translation string unused: tor errmsg invalid node id WARNING: translation string unused: tor exit country +WARNING: translation string unused: total connection time WARNING: translation string unused: traffic back WARNING: translation string unused: traffic calc time WARNING: translation string unused: traffic calc time bad @@ -511,21 +632,32 @@ WARNING: translation string unused: warn when traffic reaches WARNING: translation string unused: web proxy configuration WARNING: translation string unused: week-graph WARNING: translation string unused: weekly firewallhits +WARNING: translation string unused: wlanap wlan services +WARNING: translation string unused: xtaccess all error WARNING: translation string unused: xtaccess bad transfert WARNING: translation string unused: year-graph WARNING: translation string unused: yearly firewallhits +WARNING: untranslated string: MB read WARNING: untranslated string: Scan for Songs -WARNING: untranslated string: advproxy errmsg proxy ports equal -WARNING: untranslated string: advproxy proxy port transparent WARNING: untranslated string: bytes -WARNING: untranslated string: least preferred -WARNING: untranslated string: most preferred -WARNING: untranslated string: new -WARNING: untranslated string: outgoing firewall reserved groupname +WARNING: untranslated string: ccd err isipsecrw +WARNING: untranslated string: ccd err isovpnn2n +WARNING: untranslated string: count +WARNING: untranslated string: countries +WARNING: untranslated string: country codes and flags +WARNING: untranslated string: countrycode +WARNING: untranslated string: details +WARNING: untranslated string: drop outgoing +WARNING: untranslated string: entropy graphs +WARNING: untranslated string: flag +WARNING: untranslated string: fwdfw warn1 +WARNING: untranslated string: fwhost err hostip +WARNING: untranslated string: hardware support +WARNING: untranslated string: last +WARNING: untranslated string: no hardware random number generator WARNING: untranslated string: route config changed WARNING: untranslated string: routing config added WARNING: untranslated string: routing config changed WARNING: untranslated string: routing table -WARNING: untranslated string: tor directory port -WARNING: untranslated string: tor errmsg invalid directory port -WARNING: untranslated string: urlfilter redirect template +WARNING: untranslated string: system has hwrng +WARNING: untranslated string: system has rdrand diff --git a/doc/language_missings b/doc/language_missings index 7c7b082..5530615 100644 --- a/doc/language_missings +++ b/doc/language_missings @@ -4,6 +4,7 @@ ############################################################################ # Checking cgi-bin translations for language: en # ############################################################################ +< addon < ccd maxclients ############################################################################ # Checking install/setup translations for language: fr # @@ -11,6 +12,7 @@ ############################################################################ # Checking cgi-bin translations for language: fr # ############################################################################ +< addon < advproxy cache-digest < advproxy errmsg cache < advproxy errmsg invalid upstream proxy @@ -22,6 +24,7 @@ < age sminute < age ssecond < attention +< bit < ccd add < ccd choose net < ccd clientip @@ -36,6 +39,8 @@ < ccd err iroute < ccd err irouteexist < ccd err isipsecnet +< ccd err isipsecrw +< ccd err isovpnn2n < ccd err isovpnnet < ccd err issubnet < ccd err name @@ -60,7 +65,14 @@ < ccd routes < ccd subnet < ccd used +< count +< countries +< countrycode +< country codes and flags +< default ip < deprecated fs warn +< details +< dnat address < dns address deleted txt < dnsforward < dnsforward add a new entry @@ -69,6 +81,18 @@ < dnsforward entries < dnsforward forward_server < dnsforward zone +< dns servers +< downlink +< dpd delay +< dpd timeout +< drop action +< drop action1 +< drop action2 +< drop forward +< drop outgoing +< encryption +< entropy +< entropy graphs < fireinfo ipfire version < fireinfo is disabled < fireinfo is enabled @@ -86,9 +110,204 @@ < fireinfo why enable < fireinfo why read more < fireinfo your profile id +< firewall rules +< first +< flag +< forward firewall +< fw default drop +< fwdfw ACCEPT +< fwdfw action +< fwdfw additional +< fwdfw addrule +< fwdfw all icmp +< fwdfw change +< fwdfw copy +< fwdfw delete +< fwdfw dnat +< fwdfw dnat error +< fwdfw dnat extport +< fwdfw dnat nochoice +< fwdfw dnat porterr +< fwdfw dnat porterr2 +< fwdfw DROP +< fwdfw edit +< fwdfw err nosrc +< fwdfw err nosrcip +< fwdfw err notgt +< fwdfw err notgtip +< fwdfw err prot_port +< fwdfw err prot_port1 +< fwdfw err remark +< fwdfw err ruleexists +< fwdfw err same +< fwdfw err samesub +< fwdfw err src_addr +< fwdfw err tgt_addr +< fwdfw err tgt_grp +< fwdfw err tgt_mac +< fwdfw err tgt_port +< fwdfw err time +< fwdfw external port nat +< fwdfw final_rule +< fwdfw from +< fwdfw hint ip1 +< fwdfw hint ip2 +< fwdfw hint mac +< fwdfw iface +< fwdfw ipsec network +< fwdfw log +< fwdfw log rule +< fwdfw man port +< fwdfw menu +< fwdfw MODE1 +< fwdfw MODE2 +< fwdfw movedown +< fwdfw moveup +< fwdfw natport used +< fwdfw newrule +< fwdfw p2p txt +< fwdfw pol allow +< fwdfw pol block +< fwdfw pol text +< fwdfw pol text1 +< fwdfw pol title +< fwdfw prot41 +< fwdfw prot41 short +< fwdfw red +< fwdfw REJECT +< fwdfw reread +< fwdfw rule action +< fwdfw rule activate +< fwdfw rulepos +< fwdfw rules +< fwdfw snat +< fwdfw source +< fwdfw sourceip +< fwdfw std network +< fwdfw target +< fwdfw targetip +< fwdfw till +< fwdfw time +< fwdfw timeframe +< fwdfw toggle +< fwdfw togglelog +< fwdfw useless rule +< fwdfw use nat +< fwdfw use srcport +< fwdfw use srv +< fwdfw warn1 +< fwdfw wd_fri +< fwdfw wd_mon +< fwdfw wd_sat +< fwdfw wd_sun +< fwdfw wd_thu +< fwdfw wd_tue +< fwdfw wd_wed +< fwdfw xt access +< fwhost addgrp +< fwhost addgrpname +< fwhost addhost +< fwhost addnet +< fwhost addservice +< fwhost addservicegrp +< fwhost any +< fwhost attention +< fwhost back +< fwhost blue +< fwhost ccdhost +< fwhost ccdnet +< fwhost change +< fwhost changeremark +< fwhost cust addr +< fwhost cust grp +< fwhost cust net +< fwhost cust service +< fwhost cust srvgrp +< fwhost deleted +< fwhost empty +< fwhost err addr +< fwhost err addrgrp +< fwhost err empty +< fwhost err emptytable +< fwhost err groupempty +< fwhost err grpexist +< fwhost err hostexist +< fwhost err hostorip +< fwhost err ip +< fwhost err ipcheck +< fwhost err ipmac +< fwhost err ipwithsub +< fwhost err isccdhost +< fwhost err isccdiphost +< fwhost err isccdipnet +< fwhost err isccdnet +< fwhost err isingrp +< fwhost err mac +< fwhost err maxservicetcp +< fwhost err maxserviceudp +< fwhost err name +< fwhost err name1 +< fwhost err net +< fwhost err netexist +< fwhost err partofnet +< fwhost err port +< fwhost err remark +< fwhost err srvexist +< fwhost err srv exists +< fwhost err sub32 +< fwhost green +< fwhost hint +< fwhost hosts +< fwhost icmptype +< fwhost ipadr +< fwhost ip_mac +< fwhost ipsec host +< fwhost ipsec net +< fwhost menu +< fwhost netaddress +< fwhost newgrp +< fwhost newhost +< fwhost newnet +< fwhost newservice +< fwhost newservicegrp +< fwhost orange +< fwhost ovpn_n2n +< fwhost port +< fwhost prot +< fwhost reread +< fwhost reset +< fwhost services +< fwhost srv_name +< fwhost stdnet +< fwhost type +< fwhost used +< fwhost welcome +< fwhost wo subnet +< fw settings +< fw settings color +< fw settings dropdown +< fw settings remark +< fw settings ruletable +< grouptype +< hardware support +< integrity +< invalid input for dpd delay +< invalid input for dpd timeout +< ipsec +< ipsec network +< ipsec no connections +< last < least preferred +< lifetime +< mac filter +< maximum +< MB read +< MB written +< minimum < minute < most preferred +< no hardware random number generator +< notice < ntp common settings < ntp sync < openvpn default @@ -97,12 +316,14 @@ < openvpn enabled < openvpn fragment allowed with udp < openvpn mssfix allowed with udp +< openvpn network < openvpn prefix local subnet < openvpn prefix openvpn subnet < openvpn prefix remote subnet < openvpn subnet is used < other < our donors +< ovpn mgmt in root range < ovpn mtu-disc < ovpn mtu-disc and mtu not 1500 < ovpn mtu-disc maybe @@ -110,15 +331,25 @@ < ovpn mtu-disc off < ovpn mtu-disc with mssfix or fragment < ovpn mtu-disc yes +< ovpn no connections +< ovpn port in root range +< p2p block +< p2p block save notice < proxy reports < proxy reports daily < proxy reports monthly < proxy reports today < proxy reports weekly < qos enter bandwidths +< red1 < server restart +< snat new source ip address < snort working +< ssh < static routes +< support donation +< system has hwrng +< system has rdrand < system information < tor < tor 0 = disabled @@ -175,6 +406,7 @@ < tor use exit nodes < updxlrtr sources < updxlrtr standard view +< uplink < upload new ruleset < uptime < uptime load average @@ -227,6 +459,7 @@ < wlan client pairwise key algorithm < wlan client pairwise key group key < wlan client psk +< wlan clients < wlan client ssid < wlan client tkip < wlan client wpa mode @@ -240,6 +473,7 @@ ############################################################################ # Checking cgi-bin translations for language: es # ############################################################################ +< addon < advproxy cache-digest < advproxy errmsg cache < advproxy errmsg invalid upstream proxy @@ -252,6 +486,7 @@ < age ssecond < Async logging enabled < attention +< bit < ccd add < ccd choose net < ccd clientip @@ -266,6 +501,8 @@ < ccd err iroute < ccd err irouteexist < ccd err isipsecnet +< ccd err isipsecrw +< ccd err isovpnn2n < ccd err isovpnnet < ccd err issubnet < ccd err name @@ -290,7 +527,14 @@ < ccd routes < ccd subnet < ccd used +< count +< countries +< countrycode +< country codes and flags +< default ip < deprecated fs warn +< details +< dnat address < dnsforward < dnsforward add a new entry < dnsforward configuration @@ -298,6 +542,18 @@ < dnsforward entries < dnsforward forward_server < dnsforward zone +< dns servers +< downlink +< dpd delay +< dpd timeout +< drop action +< drop action1 +< drop action2 +< drop forward +< drop outgoing +< encryption +< entropy +< entropy graphs < fireinfo ipfire version < fireinfo is disabled < fireinfo is enabled @@ -315,15 +571,211 @@ < fireinfo why enable < fireinfo why read more < fireinfo your profile id +< firewall rules +< first +< flag +< forward firewall +< fw default drop +< fwdfw ACCEPT +< fwdfw action +< fwdfw additional +< fwdfw addrule +< fwdfw all icmp +< fwdfw change +< fwdfw copy +< fwdfw delete +< fwdfw dnat +< fwdfw dnat error +< fwdfw dnat extport +< fwdfw dnat nochoice +< fwdfw dnat porterr +< fwdfw dnat porterr2 +< fwdfw DROP +< fwdfw edit +< fwdfw err nosrc +< fwdfw err nosrcip +< fwdfw err notgt +< fwdfw err notgtip +< fwdfw err prot_port +< fwdfw err prot_port1 +< fwdfw err remark +< fwdfw err ruleexists +< fwdfw err same +< fwdfw err samesub +< fwdfw err src_addr +< fwdfw err tgt_addr +< fwdfw err tgt_grp +< fwdfw err tgt_mac +< fwdfw err tgt_port +< fwdfw err time +< fwdfw external port nat +< fwdfw final_rule +< fwdfw from +< fwdfw hint ip1 +< fwdfw hint ip2 +< fwdfw hint mac +< fwdfw iface +< fwdfw ipsec network +< fwdfw log +< fwdfw log rule +< fwdfw man port +< fwdfw menu +< fwdfw MODE1 +< fwdfw MODE2 +< fwdfw movedown +< fwdfw moveup +< fwdfw natport used +< fwdfw newrule +< fwdfw p2p txt +< fwdfw pol allow +< fwdfw pol block +< fwdfw pol text +< fwdfw pol text1 +< fwdfw pol title +< fwdfw prot41 +< fwdfw prot41 short +< fwdfw red +< fwdfw REJECT +< fwdfw reread +< fwdfw rule action +< fwdfw rule activate +< fwdfw rulepos +< fwdfw rules +< fwdfw snat +< fwdfw source +< fwdfw sourceip +< fwdfw std network +< fwdfw target +< fwdfw targetip +< fwdfw till +< fwdfw time +< fwdfw timeframe +< fwdfw toggle +< fwdfw togglelog +< fwdfw useless rule +< fwdfw use nat +< fwdfw use srcport +< fwdfw use srv +< fwdfw warn1 +< fwdfw wd_fri +< fwdfw wd_mon +< fwdfw wd_sat +< fwdfw wd_sun +< fwdfw wd_thu +< fwdfw wd_tue +< fwdfw wd_wed +< fwdfw xt access +< fwhost addgrp +< fwhost addgrpname +< fwhost addhost +< fwhost addnet +< fwhost addservice +< fwhost addservicegrp +< fwhost any +< fwhost attention +< fwhost back +< fwhost blue +< fwhost ccdhost +< fwhost ccdnet +< fwhost change +< fwhost changeremark +< fwhost cust addr +< fwhost cust grp +< fwhost cust net +< fwhost cust service +< fwhost cust srvgrp +< fwhost deleted +< fwhost empty +< fwhost err addr +< fwhost err addrgrp +< fwhost err empty +< fwhost err emptytable +< fwhost err groupempty +< fwhost err grpexist +< fwhost err hostexist +< fwhost err hostorip +< fwhost err ip +< fwhost err ipcheck +< fwhost err ipmac +< fwhost err ipwithsub +< fwhost err isccdhost +< fwhost err isccdiphost +< fwhost err isccdipnet +< fwhost err isccdnet +< fwhost err isingrp +< fwhost err mac +< fwhost err maxservicetcp +< fwhost err maxserviceudp +< fwhost err name +< fwhost err name1 +< fwhost err net +< fwhost err netexist +< fwhost err partofnet +< fwhost err port +< fwhost err remark +< fwhost err srvexist +< fwhost err srv exists +< fwhost err sub32 +< fwhost green +< fwhost hint +< fwhost hosts +< fwhost icmptype +< fwhost ipadr +< fwhost ip_mac +< fwhost ipsec host +< fwhost ipsec net +< fwhost menu +< fwhost netaddress +< fwhost newgrp +< fwhost newhost +< fwhost newnet +< fwhost newservice +< fwhost newservicegrp +< fwhost orange +< fwhost ovpn_n2n +< fwhost port +< fwhost prot +< fwhost reread +< fwhost reset +< fwhost services +< fwhost srv_name +< fwhost stdnet +< fwhost type +< fwhost used +< fwhost welcome +< fwhost wo subnet +< fw settings +< fw settings color +< fw settings dropdown +< fw settings remark +< fw settings ruletable +< grouptype +< hardware support +< integrity +< invalid input for dpd delay +< invalid input for dpd timeout +< ipsec +< ipsec network +< ipsec no connections +< last < least preferred +< lifetime +< mac filter +< maximum +< MB read +< MB written +< minimum < minute < most preferred +< no hardware random number generator +< notice < openvpn default < openvpn destination port used < openvpn disabled < openvpn enabled < openvpn fragment allowed with udp < openvpn mssfix allowed with udp +< openvpn network < openvpn prefix local subnet < openvpn prefix openvpn subnet < openvpn prefix remote subnet @@ -346,6 +798,7 @@ < outgoing firewall view group < ovpn errmsg green already pushed < ovpn errmsg invalid ip or mask +< ovpn mgmt in root range < ovpn mtu-disc < ovpn mtu-disc and mtu not 1500 < ovpn mtu-disc maybe @@ -353,17 +806,27 @@ < ovpn mtu-disc off < ovpn mtu-disc with mssfix or fragment < ovpn mtu-disc yes +< ovpn no connections +< ovpn port in root range < ovpn routes push < ovpn routes push options +< p2p block +< p2p block save notice < proxy reports < proxy reports daily < proxy reports monthly < proxy reports today < proxy reports weekly < qos enter bandwidths +< red1 < server restart < Set time on boot +< snat new source ip address +< ssh < static routes +< support donation +< system has hwrng +< system has rdrand < system information < tor < tor 0 = disabled @@ -420,6 +883,7 @@ < tor use exit nodes < updxlrtr sources < updxlrtr standard view +< uplink < uptime < uptime load average < urlfilter redirect template @@ -449,6 +913,7 @@ < wlan client pairwise key algorithm < wlan client pairwise key group key < wlan client psk +< wlan clients < wlan client ssid < wlan client tkip < wlan client wpa mode @@ -462,6 +927,7 @@ ############################################################################ # Checking cgi-bin translations for language: pl # ############################################################################ +< addon < advproxy cache-digest < advproxy errmsg cache < advproxy errmsg invalid upstream proxy @@ -473,6 +939,7 @@ < age sminute < age ssecond < attention +< bit < ccd add < ccd choose net < ccd clientip @@ -487,6 +954,8 @@ < ccd err iroute < ccd err irouteexist < ccd err isipsecnet +< ccd err isipsecrw +< ccd err isovpnn2n < ccd err isovpnnet < ccd err issubnet < ccd err name @@ -511,7 +980,14 @@ < ccd routes < ccd subnet < ccd used +< count +< countries +< countrycode +< country codes and flags +< default ip < deprecated fs warn +< details +< dnat address < dnsforward < dnsforward add a new entry < dnsforward configuration @@ -519,6 +995,18 @@ < dnsforward entries < dnsforward forward_server < dnsforward zone +< dns servers +< downlink +< dpd delay +< dpd timeout +< drop action +< drop action1 +< drop action2 +< drop forward +< drop outgoing +< encryption +< entropy +< entropy graphs < extrahd because there is already a device mounted < extrahd cant umount < extrahd install or load driver @@ -528,15 +1016,211 @@ < extrahd unable to read < extrahd unable to write < extrahd you cant mount +< firewall rules +< first +< flag +< forward firewall +< fw default drop +< fwdfw ACCEPT +< fwdfw action +< fwdfw additional +< fwdfw addrule +< fwdfw all icmp +< fwdfw change +< fwdfw copy +< fwdfw delete +< fwdfw dnat +< fwdfw dnat error +< fwdfw dnat extport +< fwdfw dnat nochoice +< fwdfw dnat porterr +< fwdfw dnat porterr2 +< fwdfw DROP +< fwdfw edit +< fwdfw err nosrc +< fwdfw err nosrcip +< fwdfw err notgt +< fwdfw err notgtip +< fwdfw err prot_port +< fwdfw err prot_port1 +< fwdfw err remark +< fwdfw err ruleexists +< fwdfw err same +< fwdfw err samesub +< fwdfw err src_addr +< fwdfw err tgt_addr +< fwdfw err tgt_grp +< fwdfw err tgt_mac +< fwdfw err tgt_port +< fwdfw err time +< fwdfw external port nat +< fwdfw final_rule +< fwdfw from +< fwdfw hint ip1 +< fwdfw hint ip2 +< fwdfw hint mac +< fwdfw iface +< fwdfw ipsec network +< fwdfw log +< fwdfw log rule +< fwdfw man port +< fwdfw menu +< fwdfw MODE1 +< fwdfw MODE2 +< fwdfw movedown +< fwdfw moveup +< fwdfw natport used +< fwdfw newrule +< fwdfw p2p txt +< fwdfw pol allow +< fwdfw pol block +< fwdfw pol text +< fwdfw pol text1 +< fwdfw pol title +< fwdfw prot41 +< fwdfw prot41 short +< fwdfw red +< fwdfw REJECT +< fwdfw reread +< fwdfw rule action +< fwdfw rule activate +< fwdfw rulepos +< fwdfw rules +< fwdfw snat +< fwdfw source +< fwdfw sourceip +< fwdfw std network +< fwdfw target +< fwdfw targetip +< fwdfw till +< fwdfw time +< fwdfw timeframe +< fwdfw toggle +< fwdfw togglelog +< fwdfw useless rule +< fwdfw use nat +< fwdfw use srcport +< fwdfw use srv +< fwdfw warn1 +< fwdfw wd_fri +< fwdfw wd_mon +< fwdfw wd_sat +< fwdfw wd_sun +< fwdfw wd_thu +< fwdfw wd_tue +< fwdfw wd_wed +< fwdfw xt access +< fwhost addgrp +< fwhost addgrpname +< fwhost addhost +< fwhost addnet +< fwhost addservice +< fwhost addservicegrp +< fwhost any +< fwhost attention +< fwhost back +< fwhost blue +< fwhost ccdhost +< fwhost ccdnet +< fwhost change +< fwhost changeremark +< fwhost cust addr +< fwhost cust grp +< fwhost cust net +< fwhost cust service +< fwhost cust srvgrp +< fwhost deleted +< fwhost empty +< fwhost err addr +< fwhost err addrgrp +< fwhost err empty +< fwhost err emptytable +< fwhost err groupempty +< fwhost err grpexist +< fwhost err hostexist +< fwhost err hostorip +< fwhost err ip +< fwhost err ipcheck +< fwhost err ipmac +< fwhost err ipwithsub +< fwhost err isccdhost +< fwhost err isccdiphost +< fwhost err isccdipnet +< fwhost err isccdnet +< fwhost err isingrp +< fwhost err mac +< fwhost err maxservicetcp +< fwhost err maxserviceudp +< fwhost err name +< fwhost err name1 +< fwhost err net +< fwhost err netexist +< fwhost err partofnet +< fwhost err port +< fwhost err remark +< fwhost err srvexist +< fwhost err srv exists +< fwhost err sub32 +< fwhost green +< fwhost hint +< fwhost hosts +< fwhost icmptype +< fwhost ipadr +< fwhost ip_mac +< fwhost ipsec host +< fwhost ipsec net +< fwhost menu +< fwhost netaddress +< fwhost newgrp +< fwhost newhost +< fwhost newnet +< fwhost newservice +< fwhost newservicegrp +< fwhost orange +< fwhost ovpn_n2n +< fwhost port +< fwhost prot +< fwhost reread +< fwhost reset +< fwhost services +< fwhost srv_name +< fwhost stdnet +< fwhost type +< fwhost used +< fwhost welcome +< fwhost wo subnet +< fw settings +< fw settings color +< fw settings dropdown +< fw settings remark +< fw settings ruletable +< grouptype +< hardware support +< integrity +< invalid input for dpd delay +< invalid input for dpd timeout +< ipsec +< ipsec network +< ipsec no connections +< last < least preferred +< lifetime +< mac filter +< maximum +< MB read +< MB written +< minimum < minute < most preferred +< no hardware random number generator +< notice < openvpn default < openvpn destination port used < openvpn disabled < openvpn enabled < openvpn fragment allowed with udp < openvpn mssfix allowed with udp +< openvpn network < openvpn prefix local subnet < openvpn prefix openvpn subnet < openvpn prefix remote subnet @@ -545,6 +1229,7 @@ < our donors < ovpn errmsg green already pushed < ovpn errmsg invalid ip or mask +< ovpn mgmt in root range < ovpn mtu-disc < ovpn mtu-disc and mtu not 1500 < ovpn mtu-disc maybe @@ -552,16 +1237,26 @@ < ovpn mtu-disc off < ovpn mtu-disc with mssfix or fragment < ovpn mtu-disc yes +< ovpn no connections +< ovpn port in root range < ovpn routes push < ovpn routes push options +< p2p block +< p2p block save notice < proxy reports < proxy reports daily < proxy reports monthly < proxy reports today < proxy reports weekly < qos enter bandwidths +< red1 < server restart +< snat new source ip address +< ssh < static routes +< support donation +< system has hwrng +< system has rdrand < tor < tor 0 = disabled < tor accounting @@ -617,6 +1312,7 @@ < tor use exit nodes < updxlrtr sources < updxlrtr standard view +< uplink < uptime < uptime load average < urlfilter redirect template @@ -646,6 +1342,7 @@ < wlan client pairwise key algorithm < wlan client pairwise key group key < wlan client psk +< wlan clients < wlan client ssid < wlan client tkip < wlan client wpa mode @@ -660,6 +1357,7 @@ # Checking cgi-bin translations for language: ru # ############################################################################ < Add a route +< addon < advproxy cache-digest < advproxy errmsg cache < advproxy errmsg invalid upstream proxy @@ -671,6 +1369,7 @@ < age sminute < age ssecond < attention +< bit < ccd add < ccd choose net < ccd clientip @@ -685,6 +1384,8 @@ < ccd err iroute < ccd err irouteexist < ccd err isipsecnet +< ccd err isipsecrw +< ccd err isovpnn2n < ccd err isovpnnet < ccd err issubnet < ccd err name @@ -709,9 +1410,16 @@ < ccd routes < ccd subnet < ccd used +< count +< countries +< countrycode +< country codes and flags < day-graph +< default ip < deprecated fs warn +< details < disk access per +< dnat address < dnsforward < dnsforward add a new entry < dnsforward configuration @@ -719,7 +1427,19 @@ < dnsforward entries < dnsforward forward_server < dnsforward zone +< dns servers +< downlink +< dpd delay +< dpd timeout +< drop action +< drop action1 +< drop action2 +< drop forward +< drop outgoing < Edit an existing route +< encryption +< entropy +< entropy graphs < extrahd because there is already a device mounted < extrahd cant umount < extrahd install or load driver @@ -729,19 +1449,215 @@ < extrahd unable to read < extrahd unable to write < extrahd you cant mount +< firewall rules +< first +< flag +< forward firewall < frequency +< fw default drop +< fwdfw ACCEPT +< fwdfw action +< fwdfw additional +< fwdfw addrule +< fwdfw all icmp +< fwdfw change +< fwdfw copy +< fwdfw delete +< fwdfw dnat +< fwdfw dnat error +< fwdfw dnat extport +< fwdfw dnat nochoice +< fwdfw dnat porterr +< fwdfw dnat porterr2 +< fwdfw DROP +< fwdfw edit +< fwdfw err nosrc +< fwdfw err nosrcip +< fwdfw err notgt +< fwdfw err notgtip +< fwdfw err prot_port +< fwdfw err prot_port1 +< fwdfw err remark +< fwdfw err ruleexists +< fwdfw err same +< fwdfw err samesub +< fwdfw err src_addr +< fwdfw err tgt_addr +< fwdfw err tgt_grp +< fwdfw err tgt_mac +< fwdfw err tgt_port +< fwdfw err time +< fwdfw external port nat +< fwdfw final_rule +< fwdfw from +< fwdfw hint ip1 +< fwdfw hint ip2 +< fwdfw hint mac +< fwdfw iface +< fwdfw ipsec network +< fwdfw log +< fwdfw log rule +< fwdfw man port +< fwdfw menu +< fwdfw MODE1 +< fwdfw MODE2 +< fwdfw movedown +< fwdfw moveup +< fwdfw natport used +< fwdfw newrule +< fwdfw p2p txt +< fwdfw pol allow +< fwdfw pol block +< fwdfw pol text +< fwdfw pol text1 +< fwdfw pol title +< fwdfw prot41 +< fwdfw prot41 short +< fwdfw red +< fwdfw REJECT +< fwdfw reread +< fwdfw rule action +< fwdfw rule activate +< fwdfw rulepos +< fwdfw rules +< fwdfw snat +< fwdfw source +< fwdfw sourceip +< fwdfw std network +< fwdfw target +< fwdfw targetip +< fwdfw till +< fwdfw time +< fwdfw timeframe +< fwdfw toggle +< fwdfw togglelog +< fwdfw useless rule +< fwdfw use nat +< fwdfw use srcport +< fwdfw use srv +< fwdfw warn1 +< fwdfw wd_fri +< fwdfw wd_mon +< fwdfw wd_sat +< fwdfw wd_sun +< fwdfw wd_thu +< fwdfw wd_tue +< fwdfw wd_wed +< fwdfw xt access +< fwhost addgrp +< fwhost addgrpname +< fwhost addhost +< fwhost addnet +< fwhost addservice +< fwhost addservicegrp +< fwhost any +< fwhost attention +< fwhost back +< fwhost blue +< fwhost ccdhost +< fwhost ccdnet +< fwhost change +< fwhost changeremark +< fwhost cust addr +< fwhost cust grp +< fwhost cust net +< fwhost cust service +< fwhost cust srvgrp +< fwhost deleted +< fwhost empty +< fwhost err addr +< fwhost err addrgrp +< fwhost err empty +< fwhost err emptytable +< fwhost err groupempty +< fwhost err grpexist +< fwhost err hostexist +< fwhost err hostorip +< fwhost err ip +< fwhost err ipcheck +< fwhost err ipmac +< fwhost err ipwithsub +< fwhost err isccdhost +< fwhost err isccdiphost +< fwhost err isccdipnet +< fwhost err isccdnet +< fwhost err isingrp +< fwhost err mac +< fwhost err maxservicetcp +< fwhost err maxserviceudp +< fwhost err name +< fwhost err name1 +< fwhost err net +< fwhost err netexist +< fwhost err partofnet +< fwhost err port +< fwhost err remark +< fwhost err srvexist +< fwhost err srv exists +< fwhost err sub32 +< fwhost green +< fwhost hint +< fwhost hosts +< fwhost icmptype +< fwhost ipadr +< fwhost ip_mac +< fwhost ipsec host +< fwhost ipsec net +< fwhost menu +< fwhost netaddress +< fwhost newgrp +< fwhost newhost +< fwhost newnet +< fwhost newservice +< fwhost newservicegrp +< fwhost orange +< fwhost ovpn_n2n +< fwhost port +< fwhost prot +< fwhost reread +< fwhost reset +< fwhost services +< fwhost srv_name +< fwhost stdnet +< fwhost type +< fwhost used +< fwhost welcome +< fwhost wo subnet +< fw settings +< fw settings color +< fw settings dropdown +< fw settings remark +< fw settings ruletable +< grouptype +< hardware support < hour-graph < incoming traffic in bytes per second +< integrity +< invalid input for dpd delay +< invalid input for dpd timeout +< ipsec +< ipsec network +< ipsec no connections +< last < least preferred +< lifetime +< mac filter +< maximum +< MB read +< MB written +< minimum < minute < month-graph < most preferred +< no hardware random number generator +< notice < openvpn default < openvpn destination port used < openvpn disabled < openvpn enabled < openvpn fragment allowed with udp < openvpn mssfix allowed with udp +< openvpn network < openvpn prefix local subnet < openvpn prefix openvpn subnet < openvpn prefix remote subnet @@ -749,6 +1665,7 @@ < other < our donors < outgoing traffic in bytes per second +< ovpn mgmt in root range < ovpn mtu-disc < ovpn mtu-disc and mtu not 1500 < ovpn mtu-disc maybe @@ -756,14 +1673,24 @@ < ovpn mtu-disc off < ovpn mtu-disc with mssfix or fragment < ovpn mtu-disc yes +< ovpn no connections +< ovpn port in root range +< p2p block +< p2p block save notice < proxy reports < proxy reports daily < proxy reports monthly < proxy reports today < proxy reports weekly < qos enter bandwidths +< red1 < server restart +< snat new source ip address +< ssh < static routes +< support donation +< system has hwrng +< system has rdrand < tor < tor 0 = disabled < tor accounting @@ -819,6 +1746,7 @@ < tor use exit nodes < updxlrtr sources < updxlrtr standard view +< uplink < uptime < uptime load average < urlfilter redirect template @@ -849,6 +1777,7 @@ < wlan client pairwise key algorithm < wlan client pairwise key group key < wlan client psk +< wlan clients < wlan client ssid < wlan client tkip < wlan client wpa mode diff --git a/html/cgi-bin/aliases.cgi b/html/cgi-bin/aliases.cgi index 9043962..09f6ea3 100644 --- a/html/cgi-bin/aliases.cgi +++ b/html/cgi-bin/aliases.cgi @@ -241,16 +241,16 @@ my %checked =(); # Checkbox manipulations
if ($errormessage) { &Header::openbox('100%', 'left', $Lang::tr{'error messages'}); - print "<font class='base'>$errormessage </font>"; + print "$errormessage "; &Header::closebox(); } unless (( $netsettings{'CONFIG_TYPE'} =~ /^(1|2|3|4)$/ ) && ($netsettings{'RED_TYPE'} eq 'STATIC')) { &Header::openbox('100%', 'left', $Lang::tr{'capswarning'}); print <<END - <table width='100%'> + <table style='width:100%;'> <tr> - <td width='100%' class='boldbase' align='center'><font color='${Header::colourred}'><b>$Lang::tr{'aliases not active'}</b></font></td> + <td class='boldbase' style='color:${Header::colourred};'><b>$Lang::tr{'aliases not active'}</b></td> </tr> </table> END @@ -275,23 +275,22 @@ if ($settings{'KEY1'} ne '') { print <<END <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='KEY1' value='$settings{'KEY1'}' /> -<table width='100%'> +<table style='width:100%;'> <tr> -<td class='base'><font color='${Header::colourred}'>$Lang::tr{'name'}: <img src='/blob.gif' alt='*' /></font></td> +<td class='base' style='color:${Header::colourred};'>$Lang::tr{'name'}: <img src='/blob.gif' alt='*' /></td> <td><input type='text' name='NAME' value='$settings{'NAME'}' size='32' /></td> -<td class='base' align='right'><font color='${Header::colourred}'>$Lang::tr{'alias ip'}: </font></td> +<td class='base' style='text-align:right; color:${Header::colourred};'>$Lang::tr{'alias ip'}: </td> <td><input type='text' name='IP' value='$settings{'IP'}' size='16' /></td> -<td class='base' align='right'>$Lang::tr{'enabled'} </td> +<td class='base' style='text-align:right;'>$Lang::tr{'enabled'} </td> <td><input type='checkbox' name='ENABLED' $checked{'ENABLED'}{'on'} /></td> </tr> </table> +<br> <hr /> -<table width='100%'> +<table style='width:100%;'> <tr> - <td class='base' width='55%'><img src='/blob.gif' align='top' alt='*' /> $Lang::tr{'this field may be blank'}</td> - <td width='40%' align='center'><input type='hidden' name='ACTION' value='$Lang::tr{'add'}' /><input type='submit' name='SUBMIT' value='$buttontext' /></td> - <td width='5%' align='right'> - </td> + <td><img src='/blob.gif' alt='*' /> $Lang::tr{'this field may be blank'}</td> + <td style='text-align:right;'><input type='hidden' name='ACTION' value='$Lang::tr{'add'}' /><input type='submit' name='SUBMIT' value='$buttontext' /></td> </tr> </table> </form> @@ -320,11 +319,11 @@ if ($netsettings{'SORT_ALIASES'} eq 'NAMERev') { # &Header::openbox('100%', 'left', $Lang::tr{'current aliases'}); print <<END -<table width='100%'> +<table class='tbl' style='width:100%;'> <tr> - <td width='50%' align='center'><a href='$ENV{'SCRIPT_NAME'}?NAME'><b>$Lang::tr{'name'}</b></a> $sortarrow1</td> - <td width='45%' align='center'><a href='$ENV{'SCRIPT_NAME'}?IP'><b>$Lang::tr{'alias ip'}</b></a> $sortarrow2</td> - <td width='5%' colspan='3' class='boldbase' align='center'><b>$Lang::tr{'action'}</b></td> + <th style='width:55%; text-align:center;'><a href='$ENV{'SCRIPT_NAME'}?NAME'><b>$Lang::tr{'name'}</b></a> $sortarrow1</th> + <th style='width:45%; text-align:center;'><a href='$ENV{'SCRIPT_NAME'}?IP'><b>$Lang::tr{'alias ip'}</b></a> $sortarrow2</th> + <th colspan='3' class='boldbase' style='width:5%; text-align:center;'><b>$Lang::tr{'action'}</b></th> </tr> END ; @@ -336,6 +335,7 @@ END #
my $key = 0; +my $col=""; foreach my $line (@current) { chomp($line); my @temp = split(/,/,$line); @@ -353,18 +353,19 @@ foreach my $line (@current) {
#Colorize each line if ($settings{'KEY1'} eq $key) { - print "<tr bgcolor='${Header::colouryellow}'>"; + $col="background-color:${Header::colouryellow};"; } elsif ($key % 2) { - print "<tr bgcolor='${Header::table2colour}'>"; + $col="background-color:${Header::table2colour};"; } else { - print "<tr bgcolor='${Header::table1colour}'>"; + $col="background-color:${Header::table1colour};"; } + print "<tr style='$col'>";
print <<END -<td align='center'>$temp[2]</td> -<td align='center'>$temp[0]</td> +<td style='text-align:center; $col'>$temp[2]</td> +<td style='text-align:center; $col'>$temp[0]</td>
-<td align='center'> +<td style='text-align:center; $col'> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' /> <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' alt='$gdesc' title='$gdesc' /> @@ -372,7 +373,7 @@ foreach my $line (@current) { </form> </td>
-<td align='center'> +<td style='text-align:center; $col'> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'edit'}' /> <input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' /> @@ -380,7 +381,7 @@ foreach my $line (@current) { </form> </td>
-<td align='center'> +<td style='text-align:center; $col'> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' /> <input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' /> @@ -510,3 +511,4 @@ sub BuildConfiguration { # Restart service associated with this system '/usr/local/bin/setaliases'; } + diff --git a/html/cgi-bin/atm-status.cgi b/html/cgi-bin/atm-status.cgi index 5c0fa8b..c2a9914 100644 --- a/html/cgi-bin/atm-status.cgi +++ b/html/cgi-bin/atm-status.cgi @@ -46,6 +46,27 @@ foreach (@modems){ my $lines=0; print "<center><table>"; my $modem=$_; + my @pfile = `grep . /sys/class/atm/$modem/parameters/* 2>/dev/null`; + foreach (@pfile){ + chomp($_); + my $param= `echo $_ | cut -d'/' -f7 | cut -d':' -f1`; + my $value= `cat /sys/class/atm/$modem/parameters/$param`; + chomp($param); + chomp($value); + if (!($param =~"uevent") + && !($param =~"resource") + && !($param eq "") + ) { + + $lines++; + if ($lines % 2){ + print "<tr bgcolor='$color{'color22'}'>"; + }else{ + print "<tr bgcolor='$color{'color20'}'>"; + } + print "<td align='left'>$param</td><td align='left'>$value</td> "; + } + } my @pfile = `grep . /sys/class/atm/$modem/device/* 2>/dev/null`; foreach (@pfile){ chomp($_); @@ -58,6 +79,8 @@ foreach (@modems){ && !($param =~"bInterface") && !($param =~"bAlternateSetting") && !($param =~"bNumEndpoints") + && !($param =~"config matches") + && !($param =~"resource") && !($param eq "") ) { diff --git a/html/cgi-bin/backup.cgi b/html/cgi-bin/backup.cgi index 830775d..86e21cf 100644 --- a/html/cgi-bin/backup.cgi +++ b/html/cgi-bin/backup.cgi @@ -166,7 +166,7 @@ if ( -e "/var/tmp/backupiso/" ){ @backupisos = `cd /var/tmp/backupiso/ && ls *.iso 2>/dev/null`; }
-&Header::openbox('100%', 'center', $Lang::tr{'backup'}); +&Header::openbox('100%', 'center', );
print <<END <form method='post' action='$ENV{'SCRIPT_NAME'}'> @@ -233,7 +233,7 @@ END ############################################################################################################################ ############################################# Backups von Addons erstellen #################################################
-&Header::openbox('100%', 'center', 'addons'); +&Header::openbox('100%', 'center', $Lang::tr{'addons'});
my @addonincluds = `ls /var/ipfire/backup/addons/includes/ 2>/dev/null`; my @addons = `ls /var/ipfire/backup/addons/backup/ 2>/dev/null`; @@ -339,4 +339,4 @@ END ; &Header::closebox(); &Header::closebigbox(); -&Header::closepage(); \ No newline at end of file +&Header::closepage(); diff --git a/html/cgi-bin/connections.cgi b/html/cgi-bin/connections.cgi index d566cf7..c7220f6 100644 --- a/html/cgi-bin/connections.cgi +++ b/html/cgi-bin/connections.cgi @@ -282,34 +282,34 @@ if (-e "${General::swroot}/ovpn/n2nconf") {
# Print legend. print <<END; - <table width='100%'> + <table style='width:100%'> <tr> - <td align='center'> - <b>$Lang::tr{'legend'} : </b> + <td style='text-align:center;'> + <b>$Lang::tr{'legend'} :</b> </td> - <td align='center' bgcolor='${Header::colourgreen}'> - <b><font color='#FFFFFF'>$Lang::tr{'lan'}</font></b> + <td style='text-align:center; color:#FFFFFF; background-color:${Header::colourgreen}; font-weight:bold;'> + <b>$Lang::tr{'lan'}</b> </td> - <td align='center' bgcolor='${Header::colourred}'> - <b><font color='#FFFFFF'>$Lang::tr{'internet'}</font></b> + <td style='text-align:center; color:#FFFFFF; background-color:${Header::colourred};'> + <b>$Lang::tr{'internet'}</b> </td> - <td align='center' bgcolor='${Header::colourorange}'> - <b><font color='#FFFFFF'>$Lang::tr{'dmz'}</font></b> + <td style='text-align:center; color:#FFFFFF; background-color:${Header::colourorange};'> + <b>$Lang::tr{'dmz'}</b> </td> - <td align='center' bgcolor='${Header::colourblue}'> - <b><font color='#FFFFFF'>$Lang::tr{'wireless'}</font></b> + <td style='text-align:center; color:#FFFFFF; background-color:${Header::colourblue};'> + <b>$Lang::tr{'wireless'}</b> </td> - <td align='center' bgcolor='${Header::colourfw}'> - <b><font color='#FFFFFF'>IPFire</font></b> + <td style='text-align:center; color:#FFFFFF; background-color:${Header::colourfw};'> + <b>IPFire</b> </td> - <td align='center' bgcolor='${Header::colourvpn}'> - <b><font color='#FFFFFF'>$Lang::tr{'vpn'}</font></b> + <td style='text-align:center; color:#FFFFFF; background-color:${Header::colourvpn};'> + <b>$Lang::tr{'vpn'}</b> </td> - <td align='center' bgcolor='${Header::colourovpn}'> - <b><font color='#FFFFFF'>$Lang::tr{'OpenVPN'}</font></b> + <td style='text-align:center; color:#FFFFFF; background-color:${Header::colourovpn};'> + <b>$Lang::tr{'OpenVPN'}</b> </td> - <td align='center' bgcolor='$colour_multicast'> - <b><font color='#FFFFFF'>Multicast</font></b> + <td style='text-align:center; color:#FFFFFF; background-color:$colour_multicast;'> + <b>Multicast</b> </td> </tr> </table> @@ -345,60 +345,60 @@ END
# Print table header. print <<END; - <table width='100%'> - <tr valign="top""> - <th align='center'> - <a href="?sort_field=5&sort_order=d"><img style="width:10px" src="/images/up.gif"></a> - <a href="?sort_field=5&sort_order=a"><img style="width:10px" src="/images/down.gif"></a> + <table style='width:100%'> + <tr> + <th style='text-align:center'> + <a href="?sort_field=5&sort_order=d"><img style="width:10px" src="/images/up.gif" alt=""></a> + <a href="?sort_field=5&sort_order=a"><img style="width:10px" src="/images/down.gif" alt=""></a> </th> - <th align='center' colspan="2"> - <a href="?sort_field=1&sort_order=d"><img style="width:10px" src="/images/up.gif"></a> - <a href="?sort_field=1&sort_order=a"><img style="width:10px" src="/images/down.gif"></a> + <th style='text-align:center' colspan='2'> + <a href="?sort_field=1&sort_order=d"><img style="width:10px" src="/images/up.gif" alt=""></a> + <a href="?sort_field=1&sort_order=a"><img style="width:10px" src="/images/down.gif" alt=""></a> - <a href="?sort_field=3&sort_order=d"><img style="width:10px" src="/images/up.gif"></a> - <a href="?sort_field=3&sort_order=a"><img style="width:10px" src="/images/down.gif"></a> + <a href="?sort_field=3&sort_order=d"><img style="width:10px" src="/images/up.gif" alt=""></a> + <a href="?sort_field=3&sort_order=a"><img style="width:10px" src="/images/down.gif" alt=""></a> </th> - <th align='center' colspan="2"> - <a href="?sort_field=2&sort_order=d"><img style="width:10px" src="/images/up.gif"></a> - <a href="?sort_field=2&sort_order=a"><img style="width:10px" src="/images/down.gif"></a> + <th style='text-align:center' colspan='2'> + <a href="?sort_field=2&sort_order=d"><img style="width:10px" src="/images/up.gif" alt=""></a> + <a href="?sort_field=2&sort_order=a"><img style="width:10px" src="/images/down.gif" alt=""></a> - <a href="?sort_field=4&sort_order=d"><img style="width:10px" src="/images/up.gif"></a> - <a href="?sort_field=4&sort_order=a"><img style="width:10px" src="/images/down.gif"></a> + <a href="?sort_field=4&sort_order=d"><img style="width:10px" src="/images/up.gif" alt=""></a> + <a href="?sort_field=4&sort_order=a"><img style="width:10px" src="/images/down.gif" alt=""></a> </th> - <th align='center'> - <a href="?sort_field=8&sort_order=d"><img style="width:10px" src="/images/up.gif"></a> - <a href="?sort_field=8&sort_order=a"><img style="width:10px" src="/images/down.gif"></a> + <th style='text-align:center'> + <a href="?sort_field=8&sort_order=d"><img style="width:10px" src="/images/up.gif" alt=""></a> + <a href="?sort_field=8&sort_order=a"><img style="width:10px" src="/images/down.gif" alt=""></a> - <a href="?sort_field=9&sort_order=d"><img style="width:10px" src="/images/up.gif"></a> - <a href="?sort_field=9&sort_order=a"><img style="width:10px" src="/images/down.gif"></a> + <a href="?sort_field=9&sort_order=d"><img style="width:10px" src="/images/up.gif" alt=""></a> + <a href="?sort_field=9&sort_order=a"><img style="width:10px" src="/images/down.gif" alt=""></a> </th> - <th align='center'> - <a href="?sort_field=6&sort_order=d"><img style="width:10px" src="/images/up.gif"></a> - <a href="?sort_field=6&sort_order=a"><img style="width:10px" src="/images/down.gif"></a> + <th style='text-align:center'> + <a href="?sort_field=6&sort_order=d"><img style="width:10px" src="/images/up.gif" alt=""></a> + <a href="?sort_field=6&sort_order=a"><img style="width:10px" src="/images/down.gif" alt=""></a> </th> - <th align='center'> - <a href="?sort_field=7&sort_order=d"><img style="width:10px" src="/images/up.gif"></a> - <a href="?sort_field=7&sort_order=a"><img style="width:10px" src="/images/down.gif"></a> + <th style='text-align:center'> + <a href="?sort_field=7&sort_order=d"><img style="width:10px" src="/images/up.gif" alt=""></a> + <a href="?sort_field=7&sort_order=a"><img style="width:10px" src="/images/down.gif" alt=""></a> </th> </tr> - <tr valign="top""> - <th align='center'> + <tr> + <th style='text-align:center'> $Lang::tr{'protocol'} </th> - <th align='center' colspan="2"> + <th style='text-align:center' colspan='2'> $Lang::tr{'source ip and port'} </th> - <th align='center' colspan="2"> + <th style='text-align:center' colspan='2'> $Lang::tr{'dest ip and port'} </th> - <th align='center'> + <th style='text-align:center'> $Lang::tr{'download'} / <br>$Lang::tr{'upload'} </th> - <th align='center'> + <th style='text-align:center'> $Lang::tr{'connection'}<br>$Lang::tr{'status'} </th> - <th align='center'> + <th style='text-align:center'> $Lang::tr{'expires'}<br>($Lang::tr{'seconds'}) </th> </tr> @@ -523,17 +523,17 @@ foreach my $line (@conntrack) {
my $sip_extra; if ($sip ne $sip_ret) { - $sip_extra = "<font color='#FFFFFF'>></font> "; + $sip_extra = "<span style='color:#FFFFFF;'>></span> "; $sip_extra .= "<a href='/cgi-bin/ipinfo.cgi?ip=$sip_ret'>"; - $sip_extra .= " <font color='#FFFFFF'>$sip_ret</font>"; + $sip_extra .= " <span style='color:#FFFFFF;'>$sip_ret</span>"; $sip_extra .= "</a>"; }
my $dip_extra; if ($dip ne $dip_ret) { - $dip_extra = "<font color='#FFFFFF'>></font> "; + $dip_extra = "<span style='color:#FFFFFF;'>></span> "; $dip_extra .= "<a href='/cgi-bin/ipinfo.cgi?ip=$dip_ret'>"; - $dip_extra .= " <font color='#FFFFFF'>$dip_ret</font>"; + $dip_extra .= " <span style='color:#FFFFFF;'>$dip_ret</span>"; $dip_extra .= "</a>"; }
@@ -545,9 +545,9 @@ foreach my $line (@conntrack) { $sserv_ret = uc(getservbyport($sport_ret, lc($l4proto))); }
- $sport_extra = "<font color='#FFFFFF'>></font> "; + $sport_extra = "<span style='color:#FFFFFF;'>></span> "; $sport_extra .= "<a href='http://isc.sans.org/port_details.php?port=$sport_ret' target='top' title='$sserv_ret'>"; - $sport_extra .= " <font color='#FFFFFF'>$sport_ret</font>"; + $sport_extra .= " <span style='color:#FFFFFF;'>$sport_ret</span>"; $sport_extra .= "</a>"; }
@@ -558,44 +558,44 @@ foreach my $line (@conntrack) { $dserv_ret = uc(getservbyport($dport_ret, lc($l4proto))); }
- $dport_extra = "<font color='#FFFFFF'>></font> "; + $dport_extra = "<span style='color:#FFFFFF;'>></span> "; $dport_extra .= "<a href='http://isc.sans.org/port_details.php?port=$dport_ret' target='top' title='$dserv_ret'>"; - $dport_extra .= " <font color='#FFFFFF'>$dport_ret</font>"; + $dport_extra .= " <span style='color:#FFFFFF;'>$dport_ret</span>"; $dport_extra .= "</a>"; }
print <<END; <tr> - <td align='center'>$l4proto</td> - <td align='center' bgcolor='$sip_colour'> + <td style='text-align:center'>$l4proto</td> + <td style='text-align:center; background-color:$sip_colour;'> <a href='/cgi-bin/ipinfo.cgi?ip=$sip'> - <font color='#FFFFFF'>$sip</font> + <span style='color:#FFFFFF;'>$sip</span> </a> $sip_extra </td> - <td align='center' bgcolor='$sip_colour'> + <td style='text-align:center; background-color:$sip_colour;'> <a href='http://isc.sans.org/port_details.php?port=$sport' target='top' title='$sserv'> - <font color='#FFFFFF'>$sport</font> + <span style='color:#FFFFFF;'>$sport</span> </a> $sport_extra </td> - <td align='center' bgcolor='$dip_colour'> + <td style='text-align:center; background-color:$dip_colour;'> <a href='/cgi-bin/ipinfo.cgi?ip=$dip'> - <font color='#FFFFFF'>$dip</font> + <span style='color:#FFFFFF;'>$dip</span> </a> $dip_extra </td> - <td align='center' bgcolor='$dip_colour'> + <td style='text-align:center; background-color:$dip_colour;'> <a href='http://isc.sans.org/port_details.php?port=$dport' target='top' title='$dserv'> - <font color='#FFFFFF'>$dport</font> + <span style='color:#FFFFFF;'>$dport</span> </a> $dport_extra </td> - <td align='center'> + <td style='text-align:center'> $bytes_in / $bytes_out </td> - <td align='center'>$state</td> - <td align='center'>$ttl</td> + <td style='text-align:center'>$state</td> + <td style='text-align:center'>$ttl</td> </tr> END } diff --git a/html/cgi-bin/connscheduler.cgi b/html/cgi-bin/connscheduler.cgi index b257adb..f4fc5ef 100644 --- a/html/cgi-bin/connscheduler.cgi +++ b/html/cgi-bin/connscheduler.cgi @@ -307,7 +307,7 @@ for ($minute = 0; $minute <= 55; $minute += 5)
print <<END </select></td></tr> -<tr><td colspan='2'><hr /></td></tr> +<tr><td colspan='2'><br><br></td></tr> <tr><td width='15%' class='base'>$Lang::tr{'ConnSched action'}</td><td> <input type='radio' value='CONNECT' name='ACTION_ACTION' $checked_connect /> <select name='ACTION_CONNECT'> <option value='reconnect' $selected{'reconnect'}>$Lang::tr{'ConnSched reconnect'}</option> @@ -335,7 +335,7 @@ for ($i = 1; $i <= $CONNSCHED::maxprofiles; $i++) } print <<END </select></td></tr> -<tr><td colspan='2'><hr /></td></tr> +<tr><td colspan='2'><br><br></td></tr> <tr><td width='15%' class='base'>$Lang::tr{'ConnSched days'}</td> <td><input type='radio' value='DAYS' name='ACTION_DAYSTYPE' $checked_days /> <select name='ACTION_DAYSTART'> END @@ -375,14 +375,15 @@ print <<END <input type='checkbox' name='Sat' $checked_sat />$Lang::tr{'saturday'}<br /> <input type='checkbox' name='Sun' $checked_sun />$Lang::tr{'sunday'} </td></tr> -<tr><td colspan='2'><hr /></td></tr> +<tr><td colspan='2'><br></td></tr> <tr><td width='15%' class='base'>$Lang::tr{'remark title'} <img src='/blob.gif' alt='*' /></td> <td><input type='text' name='ACTION_COMMENT' size='40' value='$comment' /></td></tr></table> -<hr /> +<br> +<hr> <table width='100%'><tr> <td class='base' valign='top'><img src='/blob.gif' alt='*' /></td> <td width='55%' class='base'>$Lang::tr{'this field may be blank'}</td> - <td width='40%' align='center'><input type='submit' name='SUBMIT' value='$buttontext' /> + <td width='40%' align='right'><input type='submit' name='SUBMIT' value='$buttontext' /> <input type='hidden' name='ACTION' value='$hiddenvalue' /></td> <input type='hidden' name='UPDATE_ID' value='$cgiparams{'ID'}' /></td> </tr></table> @@ -399,67 +400,67 @@ END
&Header::openbox('100%', 'left', $Lang::tr{'ConnSched scheduled actions'}); print <<END -<table width='100%' border='0' cellspacing='1' cellpadding='0'> +<table width='100%' cellspacing='1' cellpadding='0' class='tbl'> <tr> -<td align='center' width='10%'><b>$Lang::tr{'time'}</b></td> -<td width='15%'> </td> -<td align='center' width='60%'><b>$Lang::tr{'remark'}</b></td> -<td align='center' colspan='5' width='5%'><b>$Lang::tr{'action'}</b></td> +<th align='center' width='10%'><b>$Lang::tr{'time'}</b></th> +<th width='15%'> </th> +<th align='center' width='60%'><b>$Lang::tr{'remark'}</b></th> +<th align='center' colspan='5' width='5%'><b>$Lang::tr{'action'}</b></th> </tr> END ; - +my $col=""; for my $id ( 0 .. $#CONNSCHED::config ) { - my $trcolor; - if ( ($cgiparams{'ACTION'} eq 'edit') && ($id == $cgiparams{'ID'}) ) { - $trcolor = "<tr bgcolor='${Header::colouryellow}'>"; + print "<tr>"; + $col="bgcolor='${Header::colouryellow}'"; } elsif ( $id % 2 ) { - $trcolor = "<tr bgcolor='$color{'color20'}'>"; + print "<tr>"; + $col="bgcolor='$color{'color20'}'"; } else { - $trcolor = "<tr bgcolor='$color{'color22'}'>"; + print "<tr>"; + $col="bgcolor='$color{'color22'}'"; }
print <<END -$trcolor -<td align='center'>$CONNSCHED::config[$id]{'TIME'}</td> -<td>$Lang::tr{"ConnSched $CONNSCHED::config[$id]{'ACTION'}"} $CONNSCHED::config[$id]{'PROFILENR'}</td> -<td>$CONNSCHED::config[$id]{'COMMENT'}</td> -<td align='center'> +<td align='center' $col>$CONNSCHED::config[$id]{'TIME'}</td> +<td $col>$Lang::tr{"ConnSched $CONNSCHED::config[$id]{'ACTION'}"} $CONNSCHED::config[$id]{'PROFILENR'}</td> +<td $col>$CONNSCHED::config[$id]{'COMMENT'}</td> +<td align='center' $col> <form method='post' name='frm$id' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='toggle' /> <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$CONNSCHED::config[$id]{'ACTIVE'}.gif' alt='$Lang::tr{'toggle enable disable'}' title='$Lang::tr{'toggle enable disable'}' /> <input type='hidden' name='ID' value='$id' /> </form> </td> -<td align='center'> +<td align='center' $col> <form method='post' name='frm$id' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='edit' /> <input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' /> <input type='hidden' name='ID' value='$id' /> </form> </td> -<td align='center'> +<td align='center' $col> <form method='post' name='frm$id' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='remove' /> <input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' /> <input type='hidden' name='ID' value='$id' /> </form> </td> -<td align='center'> +<td align='center' $col> <form method='post' name='frm$id' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='up' /> <input type='image' name='$Lang::tr{'ConnSched up'}' src='/images/up.gif' alt='$Lang::tr{'ConnSched up'}' title='$Lang::tr{'ConnSched up'}' /> <input type='hidden' name='ID' value='$id' /> </form> </td> -<td align='center'> +<td align='center' $col> <form method='post' name='frm$id' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='down' /> <input type='image' name='$Lang::tr{'ConnSched down'}' src='/images/down.gif' alt='$Lang::tr{'ConnSched down'}' title='$Lang::tr{'ConnSched down'}' /> @@ -467,9 +468,9 @@ $trcolor </form> </td> </tr> -$trcolor -<td> </td> -<td colspan='7'>$CONNSCHED::config[$id]{'DAYS'}$CONNSCHED::config[$id]{'WEEKDAYS_PR'} </td> +<tr> +<td $col> </td> +<td colspan='7' $col>$CONNSCHED::config[$id]{'DAYS'}$CONNSCHED::config[$id]{'WEEKDAYS_PR'} </td> </tr> END ; diff --git a/html/cgi-bin/country.cgi b/html/cgi-bin/country.cgi index 474d60c..76035fb 100644 --- a/html/cgi-bin/country.cgi +++ b/html/cgi-bin/country.cgi @@ -36,18 +36,18 @@ require "${General::swroot}/header.pl";
&Header::showhttpheaders();
-&Header::openpage('Country Codes', 1, ''); -&Header::openbigbox('100%', 'LEFT'); - -&Header::openbox('100%', 'LEFT', 'Flags & Country Codes:'); -print "<TABLE WIDTH='100%'>"; -print "<tr><td width='5%'><b>Flag</b></td>"; -print "<td width='5%'><b>Code</b></td>"; -print "<td width='40%'><b>Country</b></td>"; -print "<td><b> </b></td>"; -print "<td width='5%'><b>Flag</b></td>"; -print "<td width='5%'><b>Code</b></td>"; -print "<td width='40%'><b>Country</b></td></tr>"; +&Header::openpage($Lang::tr{'countries'}, 1, ''); +&Header::openbigbox('100%', 'left'); + +&Header::openbox('100%', 'left', $Lang::tr{'country codes and flags'}); +print "<table class='tbl'>"; +print "<tr><th style='width=5%;'><b>$Lang::tr{'flag'}</b></th>"; +print "<th style='width=5%;'><b>$Lang::tr{'countrycode'}</b></th>"; +print "<th style='width=40%; text-align:left;'><b>$Lang::tr{'country'}</b></th>"; +print "<th> </th>"; +print "<th style='width=5%;'><b>$Lang::tr{'flag'}</b></th>"; +print "<th style='width=5%;'><b>$Lang::tr{'countrycode'}</b></th>"; +print "<th style='width=40%; text-align:left;'><b>$Lang::tr{'country'}</b></th></tr>";
@flaglist = <$flagdir/*>;
@@ -57,50 +57,46 @@ foreach (@flaglist) { if (!-d) { push(@flaglistfiles,substr($_,rindex($_,"/")+1)); } } - +my $col=""; foreach $flag (@flaglistfiles) { $lines++; - - my $flagcode = uc(substr($flag, 0, 2)); - my $fcode = lc($flagcode); + + my $flagcode = uc(substr($flag, 0, 2)); + my $fcode = lc($flagcode); my $country = Locale::Country::code2country($fcode); - if($fcode eq 'eu') { $country = 'Europe'; } - if($fcode eq 'tp') { $country = 'East Timor'; } - if($fcode eq 'yu') { $country = 'Yugoslavia'; } - if ($lines % 2) { - print "<td><a name='$fcode'/><img src='/images/flags/$fcode.png' border='0' align='absmiddle' alt='$flagcode'</td>"; - print "<td>$flagcode</td>"; - print "<td>$country</td></tr>\n"; - } - else { - $lines2++; - if($lines2 % 2) { - print "<tr bgcolor='${Header::table1colour}'>"; - } else { - print "<tr bgcolor='${Header::table2colour}'>"; + if($fcode eq 'eu') { $country = 'Europe'; } + if($fcode eq 'tp') { $country = 'East Timor'; } + if($fcode eq 'yu') { $country = 'Yugoslavia'; } + if ($lines % 2) { + print "<td $col><a id='$fcode'><img src='/images/flags/$fcode.png' alt='$flagcode' title='$flagcode'/></a></td>"; + print "<td $col>$flagcode</td>"; + print "<td $col>$country</td></tr>\n"; + } + else { + $lines2++; + if($lines2 % 2) { + $col="style='background-color:${Header::table2colour};'"; + } else { + $col="style='background-color:${Header::table1colour};'"; + } + print "<tr>"; + print "<td $col><a id='$fcode'><img src='/images/flags/$fcode.png' alt='$flagcode' title='$flagcode'/></a></td>"; + print "<td $col>$flagcode</td>"; + print "<td $col>$country</td>"; + print "<td $col> </td>"; } - print "<td><a name='$fcode'/><img src='/images/flags/$fcode.png' border='0' align='absmiddle' alt='$flagcode'</td>"; - print "<td>$flagcode</td>"; - print "<td>$country</td>"; - #print "<td><img src='/blob.gif' alt='*' /></td>"; - print "<td> </td>"; - } }
-print "</TABLE>"; +print "</table>"; &Header::closebox();
&Header::closebigbox();
print <<END -<div align='center'> -<table width='80%'> -<tr> -<td align='center'><a href='$ENV{'HTTP_REFERER'}'>$Lang::tr{'back'}</a></td> -</tr> -</table> +<div style='text-align:center'> +<a href='$ENV{'HTTP_REFERER'}'>$Lang::tr{'back'}</a> </div> END ; diff --git a/html/cgi-bin/credits.cgi b/html/cgi-bin/credits.cgi index d61019e..19fae9b 100644 --- a/html/cgi-bin/credits.cgi +++ b/html/cgi-bin/credits.cgi @@ -49,14 +49,14 @@ END ; &Header::closebox();
-&Header::openbox('100%', 'left', $Lang::tr{'credits'}); +&Header::openbox('100%', 'left',);
print <<END <br> <center> $Lang::tr{'visit us at'}: <b><a href='http://www.ipfire.org/' target="_blank">http://www.ipfire.org/</a></b> </center> -<br><hr><br> +<br><br>
<p><b>Development:</b><br />
@@ -68,6 +68,8 @@ Christian Schmidt (<a href='mailto:christian.schmidt\@ipfire.org'>christian.schmidt@ipfire.org</a>) - Vice Project Leader <br /> Stefan Schantl (<a href='mailto:stefan.schantl\@ipfire.org'>stefan.schantl@ipfire.org</a>)<br /> +Alexander Marx +(<a href='mailto:alexander.marx\@ipfire.org'>alexander.marx@ipfire.org</a>)<br /> Heiner Schmeling (<a href='mailto:heiner.schmeling\@ipfire.org'>heiner.schmeling@ipfire.org</a>)<br /> Ronald Wiesinger diff --git a/html/cgi-bin/ddns.cgi b/html/cgi-bin/ddns.cgi index 88847a0..4e51ab6 100644 --- a/html/cgi-bin/ddns.cgi +++ b/html/cgi-bin/ddns.cgi @@ -303,7 +303,7 @@ print <<END <tr> <td class='base' valign='top'><img src='/blob.gif' alt='*' /></td> <td width='70%' class='base'>$Lang::tr{'avoid dod'}</td> - <td width='30%' align='center' class='base'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td> + <td width='30%' align='right' valign='top' class='base'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td> </tr> </table> </form> @@ -377,13 +377,14 @@ print <<END <td><input type='password' name='PASSWORD2' value='$settings{'PASSWORD2'}' /></td> </tr> </table> +<br> <hr /> <table width='100%'> <tr> <td class='base' valign='top'><img src='/blob.gif' alt='*' /></td> <td width='70%' class='base'>$ddnsprefix</td>
- <td width='30%' align='center' class='base'> + <td width='30%' align='right' class='base'> <input type='hidden' name='ACTION' value='$Lang::tr{'add'}' /> <input type='submit' name='SUBMIT' value='$buttontext' /> </td> </tr> @@ -398,14 +399,14 @@ END # &Header::openbox('100%', 'left', $Lang::tr{'current hosts'}); print <<END -<table width='100%'> +<table width='100%' class='tbl'> <tr> - <td width='15%' align='center' class='boldbase'><b>$Lang::tr{'service'}</b></td> - <td width='25%' align='center' class='boldbase'><b>$Lang::tr{'hostname'}</b></td> - <td width='30%' align='center' class='boldbase'><b>$Lang::tr{'domain'}</b></td> - <td width='10%' align='center' class='boldbase'><b>$Lang::tr{'proxy'}</b></td> - <td width='10%' align='center' class='boldbase'><b>$Lang::tr{'wildcards'}</b></td> - <td width='10%' colspan='3' class='boldbase' align='center'><b>$Lang::tr{'action'}</b></td> + <th width='15%' align='center' class='boldbase'><b>$Lang::tr{'service'}</b></th> + <th width='25%' align='center' class='boldbase'><b>$Lang::tr{'hostname'}</b></th> + <th width='30%' align='center' class='boldbase'><b>$Lang::tr{'domain'}</b></th> + <th width='10%' align='center' class='boldbase'><b>$Lang::tr{'proxy'}</b></th> + <th width='10%' align='center' class='boldbase'><b>$Lang::tr{'wildcards'}</b></th> + <th width='10%' colspan='3' class='boldbase' align='center'><b>$Lang::tr{'action'}</b></th> </tr> END ; @@ -428,7 +429,7 @@ foreach my $line (@current) { $descproxy = $Lang::tr{'click to disable'}; } else { $gifproxy = 'off.gif'; - $descproxy = $Lang::tr{'click to enable'}; + $descproxy = $Lang::tr{'click to enable'}; }
my $gifwildcard=''; @@ -452,26 +453,30 @@ foreach my $line (@current) { $gif = 'off.gif'; $gdesc = $Lang::tr{'click to enable'}; } - + + my $col=""; #Colorize each line if ($settings{'KEY1'} eq $key) { - print "<tr bgcolor='${Header::colouryellow}'>"; + print "<tr>"; + $col="bgcolor='${Header::colouryellow}'"; } elsif ($key % 2) { - print "<tr bgcolor='$color{'color22'}'>"; + print "<tr>"; + $col="bgcolor='$color{'color20'}'"; } else { - print "<tr bgcolor='$color{'color20'}'>"; + print "<tr>"; + $col="bgcolor='$color{'color22'}'"; } - + #if a field is empty, replace it with a '---' to see colorized info! $temp[1] = '---' if (!$temp[1]); $temp[2] = '---' if (!$temp[2]);
print <<END -<td align='center'><a href='http://$temp[0]'>$temp[0]</a></td> -<td align='center'>$sync$temp[1]</td> -<td align='center'>$sync$temp[2]</td> +<td align='center' $col><a href='http://$temp[0]'>$temp[0]</a></td> +<td align='center' $col>$sync$temp[1]</td> +<td align='center' $col>$sync$temp[2]</td>
-<td align='center'> +<td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' /> <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gifproxy' alt='$descproxy' title='$descproxy' /> @@ -480,7 +485,7 @@ foreach my $line (@current) { </form> </td>
-<td align='center'> +<td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' /> <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gifwildcard' alt='$descwildcard' title='$descwildcard' /> @@ -489,7 +494,7 @@ foreach my $line (@current) { </form> </td>
-<td align='center'> +<td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' /> <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' alt='$gdesc' title='$gdesc' /> @@ -498,7 +503,7 @@ foreach my $line (@current) { </form> </td>
-<td align='center'> +<td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'edit'}' /> <input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' /> @@ -506,7 +511,7 @@ foreach my $line (@current) { </form> </td>
-<td align='center'> +<td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' /> <input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' /> @@ -538,7 +543,7 @@ print <<END <td><img src='/images/delete.gif' alt='$Lang::tr{'remove'}' /></td> <td class='base'>$Lang::tr{'remove'}</td> <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <td align='center' width='30%'><input type='submit' name='ACTION' value='$Lang::tr{'instant update'}' /></td> + <td align='right' width='30%'><input type='submit' name='ACTION' value='$Lang::tr{'instant update'}' /></td> </form> </tr> </table> diff --git a/html/cgi-bin/dhcp.cgi b/html/cgi-bin/dhcp.cgi index cde6065..9a7d983 100644 --- a/html/cgi-bin/dhcp.cgi +++ b/html/cgi-bin/dhcp.cgi @@ -590,8 +590,7 @@ print <<END <tr> <td class='base' width='25%'><img src='/blob.gif' align='top' alt='*' /> $Lang::tr{'this field may be blank'}</td> <td class='base' width='30%'>$warnNTPmessage</td> - <td width='40%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td> - <td width='5%' align='right'> </td> + <td width='40%' align='right'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td> </tr> </table> </form> @@ -651,7 +650,7 @@ print <<END <table width='100%'> <tr> <td class='base' width='50%'><img src='/blob.gif' align='top' alt='*' /> $Lang::tr{'dhcp advopt scope help'}</td> - <td width='50%' align='center'> + <td width='50%' align='right'> <input type='hidden' name='ACTION' value='$Lang::tr{'add'}1' /> <input type='submit' name='SUBMIT' value='$buttontext' /> <input type='submit' name='SUBMIT' value='$Lang::tr{'dhcp advopt help'}' /> @@ -851,7 +850,7 @@ print <<END <table width='100%'> <tr> <td class='base' width='50%'><img src='/blob.gif' align='top' alt='*' /> $Lang::tr{'this field may be blank'}</td> - <td width='50%' align='center'> + <td width='50%' align='right'> <input type='hidden' name='ACTION' value='$Lang::tr{'add'}2' /> <input type='submit' name='SUBMIT' value='$buttontext' /> <input type='hidden' name='KEY2' value='$dhcpsettings{'KEY2'}' /></td> @@ -864,15 +863,15 @@ END
print <<END <hr /> -<table width='100%'> +<table width='100%' class='tbl'> <tr> - <td width='20%' align='center'><a href='$ENV{'SCRIPT_NAME'}?FETHER'><b>$Lang::tr{'mac address'}</b></a></td> - <td width='20%' align='center'><a href='$ENV{'SCRIPT_NAME'}?FIPADDR'><b>$Lang::tr{'ip address'}</b></a></td> - <td width='15%' align='center'><b>$Lang::tr{'remark'}</b></td> - <td width='15%' class='boldbase' align='center'><b>next-server</b></td> - <td width='15%' class='boldbase' align='center'><b>filename</b></td> - <td width='15%' class='boldbase' align='center'><b>root path</b></td> - <td colspan='3' class='boldbase' align='center'><b>$Lang::tr{'action'}</b></td> + <th width='20%' align='center'><a href='$ENV{'SCRIPT_NAME'}?FETHER'><b>$Lang::tr{'mac address'}</b></a></th> + <th width='20%' align='center'><a href='$ENV{'SCRIPT_NAME'}?FIPADDR'><b>$Lang::tr{'ip address'}</b></a></th> + <th width='15%' align='center'><b>$Lang::tr{'remark'}</b></th> + <th width='15%' class='boldbase' align='center'><b>next-server</b></th> + <th width='15%' class='boldbase' align='center'><b>filename</b></th> + <th width='15%' class='boldbase' align='center'><b>root path</b></th> + <th colspan='3' class='boldbase' align='center'><b>$Lang::tr{'action'}</b></th> </tr> END ; @@ -904,6 +903,7 @@ foreach my $line (@current2) { }
$key = 0; +my $col=""; foreach my $line (@current2) { my $gif = ''; my $gdesc = ''; @@ -919,11 +919,14 @@ foreach my $line (@current2) { }
if ($dhcpsettings{'KEY2'} eq $key) { - print "<tr bgcolor='${Header::colouryellow}'>"; + print "<tr>"; + $col="bgcolor='${Header::colouryellow}'"; } elsif ($key % 2) { - print "<tr bgcolor='$color{'color22'}'>"; + print "<tr>"; + $col="bgcolor='$color{'color20'}'"; } else { - print "<tr bgcolor='$color{'color20'}'>"; + print "<tr>"; + $col="bgcolor='$color{'color22'}'"; } my $TAG0 = ''; my $TAG1 = ''; @@ -943,14 +946,14 @@ foreach my $line (@current2) { }
print <<END -<td align='center'>$TAG2$temp[0]$TAG3</td> -<td align='center' $TAG4>$TAG0$temp[1]$TAG1</td> -<td align='center'>$temp[6] </td> -<td align='center'>$temp[3] </td> -<td align='center'>$temp[4] </td> -<td align='center'>$temp[5] </td> - -<td align='center'> +<td align='center' $col>$TAG2$temp[0]$TAG3</td> +<td align='center' $col $TAG4>$TAG0$temp[1]$TAG1</td> +<td align='center' $col>$temp[6] </td> +<td align='center' $col>$temp[3] </td> +<td align='center' $col>$temp[4] </td> +<td align='center' $col>$temp[5] </td> + +<td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}2' /> <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' alt='$gdesc' title='$gdesc' /> @@ -958,7 +961,7 @@ foreach my $line (@current2) { </form> </td>
-<td align='center'> +<td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'edit'}2' /> <input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' /> @@ -966,7 +969,7 @@ foreach my $line (@current2) { </form> </td>
-<td align='center'> +<td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'remove'}2' /> <input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' /> diff --git a/html/cgi-bin/dmzholes.cgi b/html/cgi-bin/dmzholes.cgi deleted file mode 100644 index 5c16f00..0000000 --- a/html/cgi-bin/dmzholes.cgi +++ /dev/null @@ -1,446 +0,0 @@ -#!/usr/bin/perl -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -use strict; - -# enable only the following on debugging purpose -#use warnings; -#use CGI::Carp 'fatalsToBrowser'; - -require '/var/ipfire/general-functions.pl'; -require "${General::swroot}/lang.pl"; -require "${General::swroot}/header.pl"; - -#workaround to suppress a warning when a variable is used only once -my @dummy = ( ${Header::table2colour}, ${Header::colouryellow} ); -undef (@dummy); - -my %cgiparams=(); -my %checked=(); -my %selected=(); -my %netsettings=(); -my $errormessage = ''; -my $filename = "${General::swroot}/dmzholes/config"; - -&General::readhash("${General::swroot}/ethernet/settings", %netsettings); - -&Header::showhttpheaders(); - -$cgiparams{'ENABLED'} = 'off'; -$cgiparams{'REMARK'} = ''; -$cgiparams{'ACTION'} = ''; -$cgiparams{'SRC_IP'} = ''; -$cgiparams{'DEST_IP'} =''; -$cgiparams{'DEST_PORT'} = ''; -&Header::getcgihash(%cgiparams); - -open(FILE, $filename) or die 'Unable to open config file.'; -my @current = <FILE>; -close(FILE); - -if ($cgiparams{'ACTION'} eq $Lang::tr{'add'}) -{ - unless($cgiparams{'PROTOCOL'} =~ /^(tcp|udp)$/) { $errormessage = $Lang::tr{'invalid input'}; } - unless(&General::validipormask($cgiparams{'SRC_IP'})) { $errormessage = $Lang::tr{'source ip bad'}; } - unless($errormessage){$errormessage = &General::validportrange($cgiparams{'DEST_PORT'},'dst');} - unless(&General::validipormask($cgiparams{'DEST_IP'})) { $errormessage = $Lang::tr{'destination ip bad'}; } - unless ($errormessage) { - $errormessage = &validNet($cgiparams{'SRC_NET'},$cgiparams{'DEST_NET'}); } - # Darren Critchley - Remove commas from remarks - $cgiparams{'REMARK'} = &Header::cleanhtml($cgiparams{'REMARK'}); - - unless ($errormessage) - { - if($cgiparams{'EDITING'} eq 'no') { - open(FILE,">>$filename") or die 'Unable to open config file.'; - flock FILE, 2; - print FILE "$cgiparams{'PROTOCOL'},"; # [0] - print FILE "$cgiparams{'SRC_IP'},"; # [1] - print FILE "$cgiparams{'DEST_IP'},"; # [2] - print FILE "$cgiparams{'DEST_PORT'},"; # [3] - print FILE "$cgiparams{'ENABLED'},"; # [4] - print FILE "$cgiparams{'SRC_NET'},"; # [5] - print FILE "$cgiparams{'DEST_NET'},"; # [6] - print FILE "$cgiparams{'REMARK'}\n"; # [7] - } else { - open(FILE,">$filename") or die 'Unable to open config file.'; - flock FILE, 2; - my $id = 0; - foreach my $line (@current) - { - $id++; - if ($cgiparams{'EDITING'} eq $id) { - print FILE "$cgiparams{'PROTOCOL'},"; # [0] - print FILE "$cgiparams{'SRC_IP'},"; # [1] - print FILE "$cgiparams{'DEST_IP'},"; # [2] - print FILE "$cgiparams{'DEST_PORT'},"; # [3] - print FILE "$cgiparams{'ENABLED'},"; # [4] - print FILE "$cgiparams{'SRC_NET'},"; # [5] - print FILE "$cgiparams{'DEST_NET'},"; # [6] - print FILE "$cgiparams{'REMARK'}\n"; # [7] - } else { print FILE "$line"; } - } - } - close(FILE); - undef %cgiparams; - &General::log($Lang::tr{'dmz pinhole rule added'}); - system('/usr/local/bin/setdmzholes'); - } -} -if ($cgiparams{'ACTION'} eq $Lang::tr{'remove'}) -{ - my $id = 0; - open(FILE, ">$filename") or die 'Unable to open config file.'; - flock FILE, 2; - foreach my $line (@current) - { - $id++; - unless ($cgiparams{'ID'} eq $id) { print FILE "$line"; } - } - close(FILE); - system('/usr/local/bin/setdmzholes'); - &General::log($Lang::tr{'dmz pinhole rule removed'}); -} -if ($cgiparams{'ACTION'} eq $Lang::tr{'toggle enable disable'}) -{ - my $id = 0; - open(FILE, ">$filename") or die 'Unable to open config file.'; - flock FILE, 2; - foreach my $line (@current) - { - $id++; - unless ($cgiparams{'ID'} eq $id) { print FILE "$line"; } - else - { - chomp($line); - my @temp = split(/,/,$line); - print FILE "$temp[0],$temp[1],$temp[2],$temp[3],$cgiparams{'ENABLE'},$temp[5],$temp[6],$temp[7]\n"; - } - } - close(FILE); - system('/usr/local/bin/setdmzholes'); -} -if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'}) -{ - my $id = 0; - foreach my $line (@current) - { - $id++; - if ($cgiparams{'ID'} eq $id) - { - chomp($line); - my @temp = split(/,/,$line); - $cgiparams{'PROTOCOL'} = $temp[0]; - $cgiparams{'SRC_IP'} = $temp[1]; - $cgiparams{'DEST_IP'} = $temp[2]; - $cgiparams{'DEST_PORT'} = $temp[3]; - $cgiparams{'ENABLED'} = $temp[4]; - $cgiparams{'SRC_NET'} = $temp[5]; - $cgiparams{'DEST_NET'} = $temp[6]; - $cgiparams{'REMARK'} = $temp[7]; - } - } -} - -if ($cgiparams{'ACTION'} eq '') -{ - $cgiparams{'PROTOCOL'} = 'tcp'; - $cgiparams{'ENABLED'} = 'on'; - $cgiparams{'SRC_NET'} = 'orange'; - $cgiparams{'DEST_NET'} = 'blue'; -} - -$selected{'PROTOCOL'}{'udp'} = ''; -$selected{'PROTOCOL'}{'tcp'} = ''; -$selected{'PROTOCOL'}{$cgiparams{'PROTOCOL'}} = "selected='selected'"; - -$selected{'SRC_NET'}{'orange'} = ''; -$selected{'SRC_NET'}{'blue'} = ''; -$selected{'SRC_NET'}{$cgiparams{'SRC_NET'}} = "selected='selected'"; - -$selected{'DEST_NET'}{'blue'} = ''; -$selected{'DEST_NET'}{'green'} = ''; -$selected{'DEST_NET'}{$cgiparams{'DEST_NET'}} = "selected='selected'"; - -$checked{'ENABLED'}{'off'} = ''; -$checked{'ENABLED'}{'on'} = ''; -$checked{'ENABLED'}{$cgiparams{'ENABLED'}} = "checked='checked'"; - -&Header::openpage($Lang::tr{'dmz pinhole configuration'}, 1, ''); - -&Header::openbigbox('100%', 'left', '', $errormessage); - -if ($errormessage) { - &Header::openbox('100%', 'left', $Lang::tr{'error messages'}); - print "<class name='base'>$errormessage\n"; - print " </class>\n"; - &Header::closebox(); -} - -print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>\n"; - -my $buttonText = $Lang::tr{'add'}; -if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'}) { - &Header::openbox('100%', 'left', $Lang::tr{'edit a rule'}); - $buttonText = $Lang::tr{'update'}; -} else { - &Header::openbox('100%', 'left', $Lang::tr{'add a new rule'}); -} -print <<END -<table width='100%'> -<tr> -<td> - <select name='PROTOCOL'> - <option value='udp' $selected{'PROTOCOL'}{'udp'}>UDP</option> - <option value='tcp' $selected{'PROTOCOL'}{'tcp'}>TCP</option> - </select> -</td> -<td> - $Lang::tr{'source net'}:</td> -<td> - <select name='SRC_NET'> -END -; - if (&haveOrangeNet()) { - print "<option value='orange' $selected{'SRC_NET'}{'orange'}>$Lang::tr{'orange'}</option>"; - } - if (&haveBlueNet()) { - print "<option value='blue' $selected{'SRC_NET'}{'blue'}>$Lang::tr{'blue'}</option>"; - } -print <<END - </select> -</td> -<td class='base'>$Lang::tr{'source ip or net'}:</td> -<td><input type='text' name='SRC_IP' value='$cgiparams{'SRC_IP'}' size='15' /></td> -</tr> -<tr> -<td> - </td> -<td> - $Lang::tr{'destination net'}:</td> -<td> - <select name='DEST_NET'> -END -; - if (&haveOrangeNet() && &haveBlueNet()) { - print "<option value='blue' $selected{'DEST_NET'}{'blue'}>$Lang::tr{'blue'}</option>"; - } - -print <<END - <option value='green' $selected{'DEST_NET'}{'green'}>$Lang::tr{'green'}</option> - </select> -</td> -<td class='base'> - $Lang::tr{'destination ip or net'}:</td> -<td> - <input type='text' name='DEST_IP' value='$cgiparams{'DEST_IP'}' size='15' /> -</td> -<td class='base'> - $Lang::tr{'destination port'}: - <input type='text' name='DEST_PORT' value='$cgiparams{'DEST_PORT'}' size='5' /> -</td> -</tr> -</table> -<table width='100%'> - <tr> - <td colspan='3' width='50%' class='base'> - <font class='boldbase'>$Lang::tr{'remark title'} <img src='/blob.gif' alt='*' /></font> - <input type='text' name='REMARK' value='$cgiparams{'REMARK'}' size='55' maxlength='50' /> - </td> - </tr> - <tr> - <td class='base' width='50%'> - <img src='/blob.gif' alt ='*' align='top' /> - <font class='base'>$Lang::tr{'this field may be blank'}</font> - </td> - <td class='base' width='25%' align='center'>$Lang::tr{'enabled'}<input type='checkbox' name='ENABLED' $checked{'ENABLED'}{'on'} /></td> - <td width='25%' align='center'> - <input type='hidden' name='ACTION' value='$Lang::tr{'add'}' /> - <input type='submit' name='SUBMIT' value='$buttonText' /> - </td> - </tr> -</table> -END -; -if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'}) { - print "<input type='hidden' name='EDITING' value='$cgiparams{'ID'}' />\n"; -} else { - print "<input type='hidden' name='EDITING' value='no' />\n"; -} -&Header::closebox(); -print "</form>\n"; - -&Header::openbox('100%', 'left', $Lang::tr{'current rules'}); -print <<END -<table width='100%'> -<tr> -<td width='7%' class='boldbase' align='center'><b>$Lang::tr{'proto'}</b></td> -<td width='3%' class='boldbase' align='center'><b>$Lang::tr{'net'}</b></td> -<td width='25%' class='boldbase' align='center'><b>$Lang::tr{'source'}</b></td> -<td width='2%' class='boldbase' align='center'> </td> -<td width='3%' class='boldbase' align='center'><b>$Lang::tr{'net'}</b></td> -<td width='25%' class='boldbase' align='center'><b>$Lang::tr{'destination'}</b></td> -<td width='30%' class='boldbase' align='center'><b>$Lang::tr{'remark'}</b></td> -<td width='1%' class='boldbase' align='center'> </td> -<td width='4%' class='boldbase' colspan='3' align='center'><b>$Lang::tr{'action'}</b></td> -END -; - -# Achim Weber: if i add a new rule, this rule is not displayed?!? -# we re-read always config. -# If something has happeened re-read config -#if($cgiparams{'ACTION'} ne '') -#{ - open(FILE, $filename) or die 'Unable to open config file.'; - @current = <FILE>; - close(FILE); -#} -my $id = 0; -foreach my $line (@current) -{ - my $protocol=''; - my $gif=''; - my $toggle=''; - my $gdesc=''; - $id++; - chomp($line); - my @temp = split(/,/,$line); - if ($temp[0] eq 'udp') { $protocol = 'UDP'; } else { $protocol = 'TCP' } - - my $srcnetcolor = ($temp[5] eq 'blue')? ${Header::colourblue} : ${Header::colourorange}; - my $destnetcolor = ($temp[6] eq 'blue')? ${Header::colourblue} : ${Header::colourgreen}; - - if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'} && $cgiparams{'ID'} eq $id) { - print "<tr bgcolor='${Header::colouryellow}'>\n"; } - elsif ($id % 2) { - print "<tr bgcolor='${Header::table1colour}'>\n"; } - else { - print "<tr bgcolor='${Header::table2colour}'>\n"; } - if ($temp[4] eq 'on') { $gif='on.gif'; $toggle='off'; $gdesc=$Lang::tr{'click to disable'};} - else { $gif = 'off.gif'; $toggle='on'; $gdesc=$Lang::tr{'click to enable'}; } - - # Darren Critchley - Get Port Service Name if we can - code borrowed from firewalllog.dat - my $dstprt =$temp[3]; - $_=$temp[3]; - if (/^\d+$/) { - my $servi = uc(getservbyport($temp[3], lc($temp[0]))); - if ($servi ne '' && $temp[3] < 1024) { - $dstprt = "$dstprt($servi)"; } - } - # Darren Critchley - If the line is too long, wrap the port numbers - my $dstaddr = "$temp[2] : $dstprt"; - if (length($dstaddr) > 26) { - $dstaddr = "$temp[2] :<br /> $dstprt"; - } -print <<END -<td align='center'>$protocol</td> -<td bgcolor='$srcnetcolor'></td> -<td align='center'>$temp[1]</td> -<td align='center'><img src='/images/forward.gif' /></td> -<td bgcolor='$destnetcolor'></td> -<td align='center'>$dstaddr</td> -<td align='center'>$temp[7]</td> - -<td align='center'> -<form method='post' name='frma$id' action='$ENV{'SCRIPT_NAME'}'> -<input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' alt='$gdesc' /> -<input type='hidden' name='ID' value='$id' /> -<input type='hidden' name='ENABLE' value='$toggle' /> -<input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' /> -</form> -</td> - -<td align='center'> -<form method='post' name='frmb$id' action='$ENV{'SCRIPT_NAME'}'> -<input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' /> -<input type='hidden' name='ID' value='$id' /> -<input type='hidden' name='ACTION' value='$Lang::tr{'edit'}' /> -</form> -</td> - -<td align='center'> -<form method='post' name='frmc$id' action='$ENV{'SCRIPT_NAME'}'> -<input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' /> -<input type='hidden' name='ID' value='$id' /> -<input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' /> -</form> -</td> - -</tr> -END - ; -} -print "</table>\n"; - -# If the fixed lease file contains entries, print Key to action icons -if ( ! -z "$filename") { -print <<END -<table> -<tr> - <td class='boldbase'> <b>$Lang::tr{'legend'}:</b></td> - <td> <img src='/images/on.gif' alt='$Lang::tr{'click to disable'}' /></td> - <td class='base'>$Lang::tr{'click to disable'}</td> - <td> <img src='/images/off.gif' alt='$Lang::tr{'click to enable'}' /></td> - <td class='base'>$Lang::tr{'click to enable'}</td> - <td> <img src='/images/edit.gif' alt='$Lang::tr{'edit'}' /></td> - <td class='base'>$Lang::tr{'edit'}</td> - <td> <img src='/images/delete.gif' alt='$Lang::tr{'remove'}' /></td> - <td class='base'>$Lang::tr{'remove'}</td> -</tr> -</table> -END -; -} - -&Header::closebox(); - -&Header::closebigbox(); - -&Header::closepage(); - -sub validNet -{ - my $srcNet = $_[0]; - my $destNet = $_[1]; - - if ($srcNet eq $destNet) { - return $Lang::tr{'dmzpinholes for same net not necessary'}; } - unless ($srcNet =~ /^(blue|orange)$/) { - return $Lang::tr{'select source net'}; } - unless ($destNet =~ /^(blue|green)$/) { - return $Lang::tr{'select dest net'}; } - - return ''; -} - -sub haveOrangeNet -{ - if ($netsettings{'CONFIG_TYPE'} == 2) {return 1;} - if ($netsettings{'CONFIG_TYPE'} == 4) {return 1;} - return 0; -} - -sub haveBlueNet -{ - if ($netsettings{'CONFIG_TYPE'} == 3) {return 1;} - if ($netsettings{'CONFIG_TYPE'} == 4) {return 1;} - return 0; -} diff --git a/html/cgi-bin/dnsforward.cgi b/html/cgi-bin/dnsforward.cgi index 15d430c..b66fa46 100644 --- a/html/cgi-bin/dnsforward.cgi +++ b/html/cgi-bin/dnsforward.cgi @@ -207,30 +207,30 @@ if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'}) { print <<END <table width='100%'> <tr> - <td width='20%' class='base'><font>$Lang::tr{'dnsforward zone'}:</font></td> + <td width='20%' class='base'>$Lang::tr{'dnsforward zone'}:</td> <td><input type='text' name='ZONE' value='$cgiparams{'ZONE'}' size='24' /></td> <td width='30%' class='base'>$Lang::tr{'enabled'}<input type='checkbox' name='ENABLED' $checked{'ENABLED'}{'on'} /></td> </tr>
<tr> - <td width='20%' class='base'><font>$Lang::tr{'dnsforward forward_server'}:</font></td> + <td width='20%' class='base'>$Lang::tr{'dnsforward forward_server'}:</td> <td><input type='text' name='FORWARD_SERVER' value='$cgiparams{'FORWARD_SERVER'}' size='24' /></td> </tr> </table>
<table width='100%'> <tr> - <td width ='20%' class='base'><font class='boldbase'>$Lang::tr{'remark'}:</font> <img src='/blob.gif' alt='*' /></td> + <td width ='20%' class='base'>$Lang::tr{'remark'}: <img src='/blob.gif' alt='*' /></td> <td><input type='text' name='REMARK' value='$cgiparams{'REMARK'}' size='40' maxlength='50' /></td> </tr> </table> - +<br> <hr>
<table width='100%'> <tr> - <td class='base' width='55%'><img src='/blob.gif' alt ='*' align='top' /> <font class='base'>$Lang::tr{'this field may be blank'}</font></td> - <td width='40%' align='center'> + <td class='base' width='55%'><img src='/blob.gif' alt ='*' align='top' /> $Lang::tr{'this field may be blank'}</td> + <td width='40%' align='right'> <input type='hidden' name='ACTION' value='$Lang::tr{'add'}' /> <input type='submit' name='SUBMIT' value='$buttontext' /> </td> @@ -252,12 +252,12 @@ print "</form>\n"; # &Header::openbox('100%', 'left', $Lang::tr{'dnsforward entries'}); print <<END -<table width='100%'> +<table width='100%' class='tbl'> <tr> - <td width='35%' class='boldbase' align='center'><b>$Lang::tr{'dnsforward zone'}</b></td> - <td width='30%' class='boldbase' align='center'><b>$Lang::tr{'dnsforward forward_server'}</b></td> - <td width='30%' class='boldbase' align='center'><b>$Lang::tr{'remark'}</b></td> - <td width='5%' class='boldbase' colspan='3' align='center'><b>$Lang::tr{'action'}</b></td> + <th width='35%' class='boldbase' align='center'><b>$Lang::tr{'dnsforward zone'}</b></th> + <th width='30%' class='boldbase' align='center'><b>$Lang::tr{'dnsforward forward_server'}</b></th> + <th width='30%' class='boldbase' align='center'><b>$Lang::tr{'remark'}</b></th> + <th width='5%' class='boldbase' colspan='3' align='center'><b>$Lang::tr{'action'}</b></th> </tr> END ; @@ -274,6 +274,7 @@ if($cgiparams{'ACTION'} ne '' or $changed ne 'no') # Re-read entries and highlight selected item for editing. # my $id = 0; +my $col=""; foreach my $line (@current) { $id++; @@ -285,11 +286,14 @@ foreach my $line (@current) my $toggle = ''; if($cgiparams{'ACTION'} eq $Lang::tr{'edit'} && $cgiparams{'ID'} eq $id) { - print "<tr bgcolor='${Header::colouryellow}'>\n"; } + print "<tr>"; + $col="bgcolor='${Header::colouryellow}'"; } elsif ($id % 2) { - print "<tr bgcolor='$color{'color22'}'>\n"; } + print "<tr>"; + $col="bgcolor='$color{'color22'}'"; } else { - print "<tr bgcolor='$color{'color20'}'>\n"; } + print "<tr>"; + $col="bgcolor='$color{'color20'}'"; }
if ($temp[0] eq 'on') { $gif='on.gif'; $toggle='off'; $gdesc=$Lang::tr{'click to disable'};} else { $gif='off.gif'; $toggle='on'; $gdesc=$Lang::tr{'click to enable'}; } @@ -298,10 +302,10 @@ foreach my $line (@current) # Display edit page. # print <<END - <td align='center'>$temp[1]</td> - <td align='center'>$temp[2]</td> - <td align='center'>$temp[3]</td> - <td align='center'> + <td align='center' $col>$temp[1]</td> + <td align='center' $col>$temp[2]</td> + <td align='center' $col>$temp[3]</td> + <td align='center' $col> <form method='post' name='frma$id' action='$ENV{'SCRIPT_NAME'}'> <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' title='$gdesc' alt='$gdesc' /> <input type='hidden' name='ID' value='$id' /> @@ -309,14 +313,14 @@ print <<END <input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' /> </form> </td> - <td align='center'> + <td align='center' $col> <form method='post' name='frmb$id' action='$ENV{'SCRIPT_NAME'}'> <input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' title='$Lang::tr{'edit'}' alt='$Lang::tr{'edit'}' /> <input type='hidden' name='ID' value='$id' /> <input type='hidden' name='ACTION' value='$Lang::tr{'edit'}' /> </form> </td> - <td align='center'> + <td align='center' $col> <form method='post' name='frmc$id' action='$ENV{'SCRIPT_NAME'}'> <input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' title='$Lang::tr{'remove'}' alt='$Lang::tr{'remove'}' /> <input type='hidden' name='ID' value='$id' /> diff --git a/html/cgi-bin/entropy.cgi b/html/cgi-bin/entropy.cgi new file mode 100644 index 0000000..bd3de82 --- /dev/null +++ b/html/cgi-bin/entropy.cgi @@ -0,0 +1,89 @@ +#!/usr/bin/perl +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2005-2010 IPFire Team # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +use strict; + +# enable only the following on debugging purpose +#use warnings; +#use CGI::Carp 'fatalsToBrowser'; + +require '/var/ipfire/general-functions.pl'; +require "${General::swroot}/lang.pl"; +require "${General::swroot}/header.pl"; +require "${General::swroot}/graphs.pl"; + +my @querry = split(/?/,$ENV{'QUERY_STRING'}); +$querry[0] = '' unless defined $querry[0]; +$querry[1] = 'hour' unless defined $querry[1]; + +if ( $querry[0] ne~ "") { + print "Content-type: image/png\n\n"; + binmode(STDOUT); + &Graphs::updateentropygraph($querry[1]); + +} else { + &Header::showhttpheaders(); + &Header::openpage($Lang::tr{'entropy'}, 1, ''); + &Header::openbigbox('100%', 'left'); + + &Header::openbox('100%', 'center', $Lang::tr{'entropy'}); + &Graphs::makegraphbox("entropy.cgi", "day", '', 350); + &Header::closebox(); + + # Check for hardware support. + my $message; + my $message_colour = $Header::colourred; + if (&has_hwrng()) { + $message = $Lang::tr{'system has hwrng'}; + $message_colour = $Header::colourgreen; + } elsif (&has_rdrand()) { + $message = $Lang::tr{'system has rdrand'}; + $message_colour = $Header::colourgreen; + } else { + $message = $Lang::tr{'no hardware random number generator'}; + } + + &Header::openbox('100%', 'center', $Lang::tr{'hardware support'}); + print <<EOF; + <p style="color: $message_colour; text-align: center;">$message</p> +EOF + &Header::closebox(); + + &Header::closebigbox(); + &Header::closepage(); +} + +sub has_hwrng() { + return (-c "/dev/hwrng"); +} + +sub has_rdrand() { + open(FILE, "/proc/cpuinfo") or return 0; + my @cpuinfo = <FILE>; + close(FILE); + + my @result = grep(/rdrand/, @cpuinfo); + if (@result) { + return 1; + } + + return 0; +} diff --git a/html/cgi-bin/extrahd.cgi b/html/cgi-bin/extrahd.cgi index 86b0de5..5a6fbce 100644 --- a/html/cgi-bin/extrahd.cgi +++ b/html/cgi-bin/extrahd.cgi @@ -127,7 +127,6 @@ if ($errormessage) { ############################################################################################################################ ############################################################################################################################
-&Header::openbox('100%', 'center', $Lang::tr{'extrahd'}); open( FILE, "< $devicefile" ) or die "Unable to read $devicefile"; @devices = <FILE>; close FILE; @@ -153,7 +152,7 @@ END <input type='hidden' name='FS' value='$deviceline[1]' /> <input type='hidden' name='PATH' value='$deviceline[2]' /> <input type='hidden' name='ACTION' value=$Lang::tr{'delete'} /> - <input type='image' alt=$Lang::tr{'delete'} src='/images/delete.gif' /> + <input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/delete.gif' /> </form></td></tr> END ; @@ -162,9 +161,6 @@ END </table> END ; - -&Header::closebox(); - &Header::openbox('100%', 'center', $Lang::tr{'extrahd detected drives'}); print <<END <table border='0' width='600' cellspacing="0"> @@ -228,7 +224,7 @@ END <input type='hidden' name='DEVICE' value='$partitionline[0]' /> <input type='hidden' name='UUID' value='$partitionline[2]' /> <input type='hidden' name='ACTION' value=$Lang::tr{'add'} /> - <input type='image' alt=$Lang::tr{'add'} src='/images/add.gif' /> + <input type='image' alt='$Lang::tr{'add'}' title='$Lang::tr{'add'}' src='/images/add.gif' /> </form></td></tr> END ; diff --git a/html/cgi-bin/fireinfo.cgi b/html/cgi-bin/fireinfo.cgi index 11c4637..0060a11 100644 --- a/html/cgi-bin/fireinfo.cgi +++ b/html/cgi-bin/fireinfo.cgi @@ -79,7 +79,7 @@ END
if ($errormessage) { &Header::openbox('100%', 'left', "$Lang::tr{'error messages'}"); - print "<FONT CLASS='base'>$errormessage </FONT>\n"; + print "<font class='base'>$errormessage </font>\n"; &Header::closebox(); }
@@ -156,7 +156,7 @@ print <<END; </tr> <tr> <td colspan='2'> - <textarea rows="25" cols="75" readonly="true">$profile</textarea> + <textarea rows="25" cols="75" readonly="readonly">$profile</textarea> </td> </tr> </table> diff --git a/html/cgi-bin/firewall.cgi b/html/cgi-bin/firewall.cgi new file mode 100644 index 0000000..164e7cb --- /dev/null +++ b/html/cgi-bin/firewall.cgi @@ -0,0 +1,2860 @@ +#!/usr/bin/perl +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2013 Alexander Marx amarx@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +use strict; +use Sort::Naturally; +use utf8; +use feature 'unicode_strings'; + +no warnings 'uninitialized'; + +# enable only the following on debugging purpose +#use warnings; +#use CGI::Carp 'fatalsToBrowser'; + +require '/var/ipfire/general-functions.pl'; +require "${General::swroot}/lang.pl"; +require "${General::swroot}/header.pl"; +require "/usr/lib/firewall/firewall-lib.pl"; + +unless (-d "${General::swroot}/firewall") { system("mkdir ${General::swroot}/firewall"); } +unless (-e "${General::swroot}/firewall/settings") { system("touch ${General::swroot}/firewall/settings"); } +unless (-e "${General::swroot}/firewall/config") { system("touch ${General::swroot}/firewall/config"); } +unless (-e "${General::swroot}/firewall/input") { system("touch ${General::swroot}/firewall/input"); } +unless (-e "${General::swroot}/firewall/outgoing") { system("touch ${General::swroot}/firewall/outgoing"); } + +my %fwdfwsettings=(); +my %selected=() ; +my %defaultNetworks=(); +my %netsettings=(); +my %customhost=(); +my %customgrp=(); +my %customnetworks=(); +my %customservice=(); +my %customservicegrp=(); +my %ccdnet=(); +my %customnetwork=(); +my %ccdhost=(); +my %configfwdfw=(); +my %configinputfw=(); +my %configoutgoingfw=(); +my %ipsecconf=(); +my %color=(); +my %mainsettings=(); +my %checked=(); +my %icmptypes=(); +my %ovpnsettings=(); +my %ipsecsettings=(); +my %aliases=(); +my %optionsfw=(); +my %ifaces=(); + +my @PROTOCOLS = ("TCP", "UDP", "ICMP", "IGMP", "AH", "ESP", "GRE","IPv6","IPIP"); + +my $color; +my $confignet = "${General::swroot}/fwhosts/customnetworks"; +my $confighost = "${General::swroot}/fwhosts/customhosts"; +my $configgrp = "${General::swroot}/fwhosts/customgroups"; +my $configsrv = "${General::swroot}/fwhosts/customservices"; +my $configsrvgrp = "${General::swroot}/fwhosts/customservicegrp"; +my $configccdnet = "${General::swroot}/ovpn/ccd.conf"; +my $configccdhost = "${General::swroot}/ovpn/ovpnconfig"; +my $configipsec = "${General::swroot}/vpn/config"; +my $configipsecrw = "${General::swroot}/vpn/settings"; +my $configfwdfw = "${General::swroot}/firewall/config"; +my $configinput = "${General::swroot}/firewall/input"; +my $configoutgoing = "${General::swroot}/firewall/outgoing"; +my $configovpn = "${General::swroot}/ovpn/settings"; +my $fwoptions = "${General::swroot}/optionsfw/settings"; +my $ifacesettings = "${General::swroot}/ethernet/settings"; +my $errormessage=''; +my $hint=''; +my $ipgrp="${General::swroot}/outgoing/groups"; +my $tdcolor=''; +my $checkorange=''; +my @protocols; +&General::readhash("${General::swroot}/firewall/settings", %fwdfwsettings); +&General::readhash("${General::swroot}/main/settings", %mainsettings); +&General::readhash("/srv/web/ipfire/html/themes/".$mainsettings{'THEME'}."/include/colors.txt", %color); +&General::readhash($fwoptions, %optionsfw); +&General::readhash($ifacesettings, %ifaces); +&General::readhash("$configovpn", %ovpnsettings); +&General::readhash("$configipsecrw", %ipsecsettings); +&General::readhasharray("$configipsec", %ipsecconf); +&Header::showhttpheaders(); +&Header::getcgihash(%fwdfwsettings); +&Header::openpage($Lang::tr{'fwdfw menu'}, 1, ''); +&Header::openbigbox('100%', 'center',$errormessage); +#### JAVA SCRIPT #### +print<<END; +<script> + var PROTOCOLS_WITH_PORTS = ["TCP", "UDP"]; + + var update_protocol = function() { + var protocol = $("#protocol").val(); + + if (protocol === undefined) + return; + + // Check if a template is/should be used. + if (protocol === "template") { + $("#PROTOCOL_TEMPLATE").show(); + } else { + $("#PROTOCOL_TEMPLATE").hide(); + } + + // Check if we are dealing with a protocol, that knows ports. + if ($.inArray(protocol, PROTOCOLS_WITH_PORTS) >= 0) { + $("#PROTOCOL_PORTS").show(); + } else { + $("#PROTOCOL_PORTS").hide(); + } + + // Handle ICMP. + if (protocol === "ICMP") { + $("#PROTOCOL_ICMP_TYPES").show(); + } else { + $("#PROTOCOL_ICMP_TYPES").hide(); + } + }; + + $(document).ready(function() { + $("#protocol").change(update_protocol); + update_protocol(); + + // Show/Hide elements when NAT checkbox is checked. + if ($("#USE_NAT").attr("checked")) { + $("#actions").hide(); + } else { + $(".NAT").hide(); + } + + // Show NAT area when "use nat" checkbox is clicked + $("#USE_NAT").change(function() { + $(".NAT").toggle(); + $("#actions").toggle(); + }); + + // Time constraints + if(!$("#USE_TIME_CONSTRAINTS").attr("checked")) { + $("#TIME_CONSTRAINTS").hide(); + } + $("#USE_TIME_CONSTRAINTS").change(function() { + $("#TIME_CONSTRAINTS").toggle(); + }); + + // Automatically select radio buttons when corresponding + // dropdown menu changes. + $("select").change(function() { + var id = $(this).attr("name"); + $('#' + id).prop("checked", true); + }); + }); +</script> +END + +#### ACTION ##### + +if ($fwdfwsettings{'ACTION'} eq 'saverule') +{ + &General::readhasharray("$configfwdfw", %configfwdfw); + &General::readhasharray("$configinput", %configinputfw); + &General::readhasharray("$configoutgoing", %configoutgoingfw); + #Set Variables according to the JQuery code in protocol section + if ($fwdfwsettings{'PROT'} eq 'TCP' || $fwdfwsettings{'PROT'} eq 'UDP') + { + if ($fwdfwsettings{'SRC_PORT'} ne '') + { + $fwdfwsettings{'USE_SRC_PORT'} = 'ON'; + } + if ($fwdfwsettings{'TGT_PORT'} ne '') + { + $fwdfwsettings{'USESRV'} = 'ON'; + $fwdfwsettings{'grp3'} = 'TGT_PORT'; + } + } + if ($fwdfwsettings{'PROT'} eq 'template') + { + $fwdfwsettings{'USESRV'} = 'ON'; + } + $errormessage=&checksource; + if(!$errormessage){&checktarget;} + if(!$errormessage){&checkrule;} + + #check if manual ip (source) is orange network + if ($fwdfwsettings{'grp1'} eq 'src_addr'){ + my ($sip,$scidr) = split("/",$fwdfwsettings{$fwdfwsettings{'grp1'}}); + if ( &General::IpInSubnet($sip,$netsettings{'ORANGE_ADDRESS'},$netsettings{'ORANGE_NETMASK'})){ + $checkorange='on'; + } + } + #check useless rules + if( ($fwdfwsettings{$fwdfwsettings{'grp1'}} eq 'ORANGE' || $checkorange eq 'on') && $fwdfwsettings{'grp2'} eq 'ipfire'){ + $errormessage.=$Lang::tr{'fwdfw useless rule'}."<br>"; + } + #check if we try to break rules + if( $fwdfwsettings{'grp1'} eq 'ipfire_src' && $fwdfwsettings{'grp2'} eq 'ipfire'){ + $errormessage=$Lang::tr{'fwdfw err same'}; + } + #INPUT part + if($fwdfwsettings{'grp2'} eq 'ipfire' && $fwdfwsettings{$fwdfwsettings{'grp1'}} ne 'ORANGE'){ + $fwdfwsettings{'config'}=$configinput; + $fwdfwsettings{'chain'} = 'INPUTFW'; + my $maxkey=&General::findhasharraykey(%configinputfw); + #check if we have an identical rule already + if($fwdfwsettings{'oldrulenumber'} eq $fwdfwsettings{'rulepos'}){ + foreach my $key (sort keys %configinputfw){ + if ( "$fwdfwsettings{'RULE_ACTION'},$fwdfwsettings{'ACTIVE'},$fwdfwsettings{'grp1'},$fwdfwsettings{$fwdfwsettings{'grp1'}},$fwdfwsettings{'grp2'},$fwdfwsettings{$fwdfwsettings{'grp2'}},$fwdfwsettings{'USE_SRC_PORT'},$fwdfwsettings{'PROT'},$fwdfwsettings{'ICMP_TYPES'},$fwdfwsettings{'SRC_PORT'},$fwdfwsettings{'USESRV'},$fwdfwsettings{'TGT_PROT'},$fwdfwsettings{'ICMP_TGT'},$fwdfwsettings{'grp3'},$fwdfwsettings{$fwdfwsettings{'grp3'}},$fwdfwsettings{'LOG'},$fwdfwsettings{'TIME'},$fwdfwsettings{'TIME_MON'},$fwdfwsettings{'TIME_TUE'},$fwdfwsettings{'TIME_WED'},$fwdfwsettings{'TIME_THU'},$fwdfwsettings{'TIME_FRI'},$fwdfwsettings{'TIME_SAT'},$fwdfwsettings{'TIME_SUN'},$fwdfwsettings{'TIME_FROM'},$fwdfwsettings{'TIME_TO'},$fwdfwsettings{'USE_NAT'},$fwdfwsettings{$fwdfwsettings{'nat'}},$fwdfwsettings{'dnatport'},$fwdfwsettings{'nat'}" + eq "$configinputfw{$key}[0],$configinputfw{$key}[2],$configinputfw{$key}[3],$configinputfw{$key}[4],$configinputfw{$key}[5],$configinputfw{$key}[6],$configinputfw{$key}[7],$configinputfw{$key}[8],$configinputfw{$key}[9],$configinputfw{$key}[10],$configinputfw{$key}[11],$configinputfw{$key}[12],$configinputfw{$key}[13],$configinputfw{$key}[14],$configinputfw{$key}[15],$configinputfw{$key}[17],$configinputfw{$key}[18],$configinputfw{$key}[19],$configinputfw{$key}[20],$configinputfw{$key}[21],$configinputfw{$key}[22],$configinputfw{$key}[23],$configinputfw{$key}[24],$configinputfw{$key}[25],$configinputfw{$key}[26],$configinputfw{$key}[27],$configinputfw{$key}[28],$configinputfw{$key}[29],$configinputfw{$key}[30],$configinputfw{$key}[31]"){ + $errormessage.=$Lang::tr{'fwdfw err ruleexists'}; + if($fwdfwsettings{'oldruleremark'} ne $fwdfwsettings{'ruleremark'} && $fwdfwsettings{'updatefwrule'} eq 'on' && $fwdfwsettings{'ruleremark'} ne '' && !&validremark($fwdfwsettings{'ruleremark'})){ + $errormessage=$Lang::tr{'fwdfw err remark'}."<br>"; + } + if($fwdfwsettings{'oldruleremark'} ne $fwdfwsettings{'ruleremark'} && $fwdfwsettings{'updatefwrule'} eq 'on' && $fwdfwsettings{'ruleremark'} ne '' && &validremark($fwdfwsettings{'ruleremark'})){ + $errormessage=''; + } + if ($fwdfwsettings{'oldruleremark'} eq $fwdfwsettings{'ruleremark'}){ + $fwdfwsettings{'nosave'} = 'on'; + } + } + } + } + #check Rulepos on new Rule + if($fwdfwsettings{'rulepos'} > 0 && !$fwdfwsettings{'oldrulenumber'}){ + $fwdfwsettings{'oldrulenumber'}=$maxkey; + foreach my $key (sort keys %configinputfw){ + if ( "$fwdfwsettings{'RULE_ACTION'},$fwdfwsettings{'ACTIVE'},$fwdfwsettings{'grp1'},$fwdfwsettings{$fwdfwsettings{'grp1'}},$fwdfwsettings{'grp2'},$fwdfwsettings{$fwdfwsettings{'grp2'}},$fwdfwsettings{'USE_SRC_PORT'},$fwdfwsettings{'PROT'},$fwdfwsettings{'ICMP_TYPES'},$fwdfwsettings{'SRC_PORT'},$fwdfwsettings{'USESRV'},$fwdfwsettings{'TGT_PROT'},$fwdfwsettings{'ICMP_TGT'},$fwdfwsettings{'grp3'},$fwdfwsettings{$fwdfwsettings{'grp3'}},$fwdfwsettings{'LOG'},$fwdfwsettings{'TIME'},$fwdfwsettings{'TIME_MON'},$fwdfwsettings{'TIME_TUE'},$fwdfwsettings{'TIME_WED'},$fwdfwsettings{'TIME_THU'},$fwdfwsettings{'TIME_FRI'},$fwdfwsettings{'TIME_SAT'},$fwdfwsettings{'TIME_SUN'},$fwdfwsettings{'TIME_FROM'},$fwdfwsettings{'TIME_TO'},$fwdfwsettings{'USE_NAT'},$fwdfwsettings{$fwdfwsettings{'nat'}},$fwdfwsettings{'dnatport'},$fwdfwsettings{'nat'}" + eq "$configinputfw{$key}[0],$configinputfw{$key}[2],$configinputfw{$key}[3],$configinputfw{$key}[4],$configinputfw{$key}[5],$configinputfw{$key}[6],$configinputfw{$key}[7],$configinputfw{$key}[8],$configinputfw{$key}[9],$configinputfw{$key}[10],$configinputfw{$key}[11],$configinputfw{$key}[12],$configinputfw{$key}[13],$configinputfw{$key}[14],$configinputfw{$key}[15],$configinputfw{$key}[17],$configinputfw{$key}[18],$configinputfw{$key}[19],$configinputfw{$key}[20],$configinputfw{$key}[21],$configinputfw{$key}[22],$configinputfw{$key}[23],$configinputfw{$key}[24],$configinputfw{$key}[25],$configinputfw{$key}[26],$configinputfw{$key}[27],$configinputfw{$key}[28],$configinputfw{$key}[29],$configinputfw{$key}[30],$configinputfw{$key}[31]"){ + $errormessage.=$Lang::tr{'fwdfw err ruleexists'}; + } + } + } + #check if we just close a rule + if( $fwdfwsettings{'oldgrp1a'} eq $fwdfwsettings{'grp1'} && $fwdfwsettings{'oldgrp1b'} eq $fwdfwsettings{$fwdfwsettings{'grp1'}} && $fwdfwsettings{'oldgrp2a'} eq $fwdfwsettings{'grp2'} && $fwdfwsettings{'oldgrp2b'} eq $fwdfwsettings{$fwdfwsettings{'grp2'}} && $fwdfwsettings{'oldgrp3a'} eq $fwdfwsettings{'grp3'} && $fwdfwsettings{'oldgrp3b'} eq $fwdfwsettings{$fwdfwsettings{'grp3'}} && $fwdfwsettings{'oldusesrv'} eq $fwdfwsettings{'USESRV'} && $fwdfwsettings{'oldruleremark'} eq $fwdfwsettings{'ruleremark'} && $fwdfwsettings{'oldruletype'} eq $fwdfwsettings{'chain'}) { + if($fwdfwsettings{'nosave'} eq 'on' && $fwdfwsettings{'updatefwrule'} eq 'on'){ + $errormessage=''; + $fwdfwsettings{'nosave2'} = 'on'; + } + } + if (!$errormessage){ + if($fwdfwsettings{'nosave2'} ne 'on'){ + &saverule(%configinputfw,$configinput); + } + } + }elsif($fwdfwsettings{'grp1'} eq 'ipfire_src' ){ + # OUTGOING PART + $fwdfwsettings{'config'}=$configoutgoing; + $fwdfwsettings{'chain'} = 'OUTGOINGFW'; + my $maxkey=&General::findhasharraykey(%configoutgoingfw); + if($fwdfwsettings{'oldrulenumber'} eq $fwdfwsettings{'rulepos'}){ + foreach my $key (sort keys %configoutgoingfw){ + if ( "$fwdfwsettings{'RULE_ACTION'},$fwdfwsettings{'ACTIVE'},$fwdfwsettings{'grp1'},$fwdfwsettings{$fwdfwsettings{'grp1'}},$fwdfwsettings{'grp2'},$fwdfwsettings{$fwdfwsettings{'grp2'}},$fwdfwsettings{'USE_SRC_PORT'},$fwdfwsettings{'PROT'},$fwdfwsettings{'ICMP_TYPES'},$fwdfwsettings{'SRC_PORT'},$fwdfwsettings{'USESRV'},$fwdfwsettings{'TGT_PROT'},$fwdfwsettings{'ICMP_TGT'},$fwdfwsettings{'grp3'},$fwdfwsettings{$fwdfwsettings{'grp3'}},$fwdfwsettings{'LOG'},$fwdfwsettings{'TIME'},$fwdfwsettings{'TIME_MON'},$fwdfwsettings{'TIME_TUE'},$fwdfwsettings{'TIME_WED'},$fwdfwsettings{'TIME_THU'},$fwdfwsettings{'TIME_FRI'},$fwdfwsettings{'TIME_SAT'},$fwdfwsettings{'TIME_SUN'},$fwdfwsettings{'TIME_FROM'},$fwdfwsettings{'TIME_TO'},$fwdfwsettings{'USE_NAT'},$fwdfwsettings{$fwdfwsettings{'nat'}},$fwdfwsettings{'dnatport'},$fwdfwsettings{'nat'}" + eq "$configoutgoingfw{$key}[0],$configoutgoingfw{$key}[2],$configoutgoingfw{$key}[3],$configoutgoingfw{$key}[4],$configoutgoingfw{$key}[5],$configoutgoingfw{$key}[6],$configoutgoingfw{$key}[7],$configoutgoingfw{$key}[8],$configoutgoingfw{$key}[9],$configoutgoingfw{$key}[10],$configoutgoingfw{$key}[11],$configoutgoingfw{$key}[12],$configoutgoingfw{$key}[13],$configoutgoingfw{$key}[14],$configoutgoingfw{$key}[15],$configoutgoingfw{$key}[17],$configoutgoingfw{$key}[18],$configoutgoingfw{$key}[19],$configoutgoingfw{$key}[20],$configoutgoingfw{$key}[21],$configoutgoingfw{$key}[22],$configoutgoingfw{$key}[23],$configoutgoingfw{$key}[24],$configoutgoingfw{$key}[25],$configoutgoingfw{$key}[26],$configoutgoingfw{$key}[27],$configoutgoingfw{$key}[28],$configoutgoingfw{$key}[29],$configoutgoingfw{$key}[30],$configoutgoingfw{$key}[31]"){ + $errormessage.=$Lang::tr{'fwdfw err ruleexists'}; + if($fwdfwsettings{'oldruleremark'} ne $fwdfwsettings{'ruleremark'} && $fwdfwsettings{'updatefwrule'} eq 'on' && $fwdfwsettings{'ruleremark'} ne '' && !&validremark($fwdfwsettings{'ruleremark'})){ + $errormessage=$Lang::tr{'fwdfw err remark'}."<br>"; + } + if($fwdfwsettings{'oldruleremark'} ne $fwdfwsettings{'ruleremark'} && $fwdfwsettings{'updatefwrule'} eq 'on' && $fwdfwsettings{'ruleremark'} ne '' && &validremark($fwdfwsettings{'ruleremark'})){ + $errormessage=''; + } + if ($fwdfwsettings{'oldruleremark'} eq $fwdfwsettings{'ruleremark'}){ + $fwdfwsettings{'nosave'} = 'on'; + } + } + } + } + #check Rulepos on new Rule + if($fwdfwsettings{'rulepos'} > 0 && !$fwdfwsettings{'oldrulenumber'}){ + $fwdfwsettings{'oldrulenumber'}=$maxkey; + foreach my $key (sort keys %configoutgoingfw){ + if ( "$fwdfwsettings{'RULE_ACTION'},$fwdfwsettings{'ACTIVE'},$fwdfwsettings{'grp1'},$fwdfwsettings{$fwdfwsettings{'grp1'}},$fwdfwsettings{'grp2'},$fwdfwsettings{$fwdfwsettings{'grp2'}},$fwdfwsettings{'USE_SRC_PORT'},$fwdfwsettings{'PROT'},$fwdfwsettings{'ICMP_TYPES'},$fwdfwsettings{'SRC_PORT'},$fwdfwsettings{'USESRV'},$fwdfwsettings{'TGT_PROT'},$fwdfwsettings{'ICMP_TGT'},$fwdfwsettings{'grp3'},$fwdfwsettings{$fwdfwsettings{'grp3'}},$fwdfwsettings{'LOG'},$fwdfwsettings{'TIME'},$fwdfwsettings{'TIME_MON'},$fwdfwsettings{'TIME_TUE'},$fwdfwsettings{'TIME_WED'},$fwdfwsettings{'TIME_THU'},$fwdfwsettings{'TIME_FRI'},$fwdfwsettings{'TIME_SAT'},$fwdfwsettings{'TIME_SUN'},$fwdfwsettings{'TIME_FROM'},$fwdfwsettings{'TIME_TO'},$fwdfwsettings{'USE_NAT'},$fwdfwsettings{$fwdfwsettings{'nat'}},$fwdfwsettings{'dnatport'},$fwdfwsettings{'nat'}" + eq "$configoutgoingfw{$key}[0],$configoutgoingfw{$key}[2],$configoutgoingfw{$key}[3],$configoutgoingfw{$key}[4],$configoutgoingfw{$key}[5],$configoutgoingfw{$key}[6],$configoutgoingfw{$key}[7],$configoutgoingfw{$key}[8],$configoutgoingfw{$key}[9],$configoutgoingfw{$key}[10],$configoutgoingfw{$key}[11],$configoutgoingfw{$key}[12],$configoutgoingfw{$key}[13],$configoutgoingfw{$key}[14],$configoutgoingfw{$key}[15],$configoutgoingfw{$key}[17],$configoutgoingfw{$key}[18],$configoutgoingfw{$key}[19],$configoutgoingfw{$key}[20],$configoutgoingfw{$key}[21],$configoutgoingfw{$key}[22],$configoutgoingfw{$key}[23],$configoutgoingfw{$key}[24],$configoutgoingfw{$key}[25],$configoutgoingfw{$key}[26],$configoutgoingfw{$key}[27],$configoutgoingfw{$key}[28],$configoutgoingfw{$key}[29],$configoutgoingfw{$key}[30],$configoutgoingfw{$key}[31]"){ + $errormessage.=$Lang::tr{'fwdfw err ruleexists'}; + } + } + } + #check if we just close a rule + if( $fwdfwsettings{'oldgrp1a'} eq $fwdfwsettings{'grp1'} && $fwdfwsettings{'oldgrp1b'} eq $fwdfwsettings{$fwdfwsettings{'grp1'}} && $fwdfwsettings{'oldgrp2a'} eq $fwdfwsettings{'grp2'} && $fwdfwsettings{'oldgrp2b'} eq $fwdfwsettings{$fwdfwsettings{'grp2'}} && $fwdfwsettings{'oldgrp3a'} eq $fwdfwsettings{'grp3'} && $fwdfwsettings{'oldgrp3b'} eq $fwdfwsettings{$fwdfwsettings{'grp3'}} && $fwdfwsettings{'oldusesrv'} eq $fwdfwsettings{'USESRV'} && $fwdfwsettings{'oldruleremark'} eq $fwdfwsettings{'ruleremark'} && $fwdfwsettings{'oldruletype'} eq $fwdfwsettings{'chain'}) { + if($fwdfwsettings{'nosave'} eq 'on' && $fwdfwsettings{'updatefwrule'} eq 'on'){ + $fwdfwsettings{'nosave2'} = 'on'; + $errormessage=''; + } + } + #increase counters + if (!$errormessage){ + if ($fwdfwsettings{'nosave2'} ne 'on'){ + &saverule(%configoutgoingfw,$configoutgoing); + } + } + }else{ + #FORWARD PART + $fwdfwsettings{'config'}=$configfwdfw; + $fwdfwsettings{'chain'} = 'FORWARDFW'; + my $maxkey=&General::findhasharraykey(%configfwdfw); + if($fwdfwsettings{'oldrulenumber'} eq $fwdfwsettings{'rulepos'}){ + #check if we have an identical rule already + foreach my $key (sort keys %configfwdfw){ + if ( "$fwdfwsettings{'RULE_ACTION'},$fwdfwsettings{'ACTIVE'},$fwdfwsettings{'grp1'},$fwdfwsettings{$fwdfwsettings{'grp1'}},$fwdfwsettings{'grp2'},$fwdfwsettings{$fwdfwsettings{'grp2'}},$fwdfwsettings{'USE_SRC_PORT'},$fwdfwsettings{'PROT'},$fwdfwsettings{'ICMP_TYPES'},$fwdfwsettings{'SRC_PORT'},$fwdfwsettings{'USESRV'},$fwdfwsettings{'TGT_PROT'},$fwdfwsettings{'ICMP_TGT'},$fwdfwsettings{'grp3'},$fwdfwsettings{$fwdfwsettings{'grp3'}},$fwdfwsettings{'TIME'},$fwdfwsettings{'TIME_MON'},$fwdfwsettings{'TIME_TUE'},$fwdfwsettings{'TIME_WED'},$fwdfwsettings{'TIME_THU'},$fwdfwsettings{'TIME_FRI'},$fwdfwsettings{'TIME_SAT'},$fwdfwsettings{'TIME_SUN'},$fwdfwsettings{'TIME_FROM'},$fwdfwsettings{'TIME_TO'},$fwdfwsettings{'USE_NAT'},$fwdfwsettings{$fwdfwsettings{'nat'}},$fwdfwsettings{'dnatport'},$fwdfwsettings{'nat'}" + eq "$configfwdfw{$key}[0],$configfwdfw{$key}[2],$configfwdfw{$key}[3],$configfwdfw{$key}[4],$configfwdfw{$key}[5],$configfwdfw{$key}[6],$configfwdfw{$key}[7],$configfwdfw{$key}[8],$configfwdfw{$key}[9],$configfwdfw{$key}[10],$configfwdfw{$key}[11],$configfwdfw{$key}[12],$configfwdfw{$key}[13],$configfwdfw{$key}[14],$configfwdfw{$key}[15],$configfwdfw{$key}[18],$configfwdfw{$key}[19],$configfwdfw{$key}[20],$configfwdfw{$key}[21],$configfwdfw{$key}[22],$configfwdfw{$key}[23],$configfwdfw{$key}[24],$configfwdfw{$key}[25],$configfwdfw{$key}[26],$configfwdfw{$key}[27],$configfwdfw{$key}[28],$configfwdfw{$key}[29],$configfwdfw{$key}[30],$configfwdfw{$key}[31]"){ + $errormessage.=$Lang::tr{'fwdfw err ruleexists'}; + if($fwdfwsettings{'oldruleremark'} ne $fwdfwsettings{'ruleremark'} && $fwdfwsettings{'updatefwrule'} eq 'on' && $fwdfwsettings{'ruleremark'} ne '' && !&validremark($fwdfwsettings{'ruleremark'})){ + $errormessage=$Lang::tr{'fwdfw err remark'}."<br>"; + } + if($fwdfwsettings{'oldruleremark'} ne $fwdfwsettings{'ruleremark'} && $fwdfwsettings{'updatefwrule'} eq 'on' && $fwdfwsettings{'ruleremark'} ne '' && &validremark($fwdfwsettings{'ruleremark'})){ + $errormessage=''; + } + if ($fwdfwsettings{'oldruleremark'} eq $fwdfwsettings{'ruleremark'}){ + $fwdfwsettings{'nosave'} = 'on'; + } + } + } + } + #check Rulepos on new Rule + if($fwdfwsettings{'rulepos'} > 0 && !$fwdfwsettings{'oldrulenumber'}){ + $fwdfwsettings{'oldrulenumber'}=$maxkey; + foreach my $key (sort keys %configfwdfw){ + if ( "$fwdfwsettings{'RULE_ACTION'},$fwdfwsettings{'ACTIVE'},$fwdfwsettings{'grp1'},$fwdfwsettings{$fwdfwsettings{'grp1'}},$fwdfwsettings{'grp2'},$fwdfwsettings{$fwdfwsettings{'grp2'}},$fwdfwsettings{'USE_SRC_PORT'},$fwdfwsettings{'PROT'},$fwdfwsettings{'ICMP_TYPES'},$fwdfwsettings{'SRC_PORT'},$fwdfwsettings{'USESRV'},$fwdfwsettings{'TGT_PROT'},$fwdfwsettings{'ICMP_TGT'},$fwdfwsettings{'grp3'},$fwdfwsettings{$fwdfwsettings{'grp3'}},$fwdfwsettings{'TIME'},$fwdfwsettings{'TIME_MON'},$fwdfwsettings{'TIME_TUE'},$fwdfwsettings{'TIME_WED'},$fwdfwsettings{'TIME_THU'},$fwdfwsettings{'TIME_FRI'},$fwdfwsettings{'TIME_SAT'},$fwdfwsettings{'TIME_SUN'},$fwdfwsettings{'TIME_FROM'},$fwdfwsettings{'TIME_TO'},$fwdfwsettings{'USE_NAT'},$fwdfwsettings{$fwdfwsettings{'nat'}},$fwdfwsettings{'dnatport'},$fwdfwsettings{'nat'}" + eq "$configfwdfw{$key}[0],$configfwdfw{$key}[2],$configfwdfw{$key}[3],$configfwdfw{$key}[4],$configfwdfw{$key}[5],$configfwdfw{$key}[6],$configfwdfw{$key}[7],$configfwdfw{$key}[8],$configfwdfw{$key}[9],$configfwdfw{$key}[10],$configfwdfw{$key}[11],$configfwdfw{$key}[12],$configfwdfw{$key}[13],$configfwdfw{$key}[14],$configfwdfw{$key}[15],$configfwdfw{$key}[18],$configfwdfw{$key}[19],$configfwdfw{$key}[20],$configfwdfw{$key}[21],$configfwdfw{$key}[22],$configfwdfw{$key}[23],$configfwdfw{$key}[24],$configfwdfw{$key}[25],$configfwdfw{$key}[26],$configfwdfw{$key}[27],$configfwdfw{$key}[28],$configfwdfw{$key}[29],$configfwdfw{$key}[30],$configfwdfw{$key}[31]"){ + $errormessage.=$Lang::tr{'fwdfw err ruleexists'}; + } + } + } + #check if we just close a rule + if( $fwdfwsettings{'oldgrp1a'} eq $fwdfwsettings{'grp1'} && $fwdfwsettings{'oldgrp1b'} eq $fwdfwsettings{$fwdfwsettings{'grp1'}} && $fwdfwsettings{'oldgrp2a'} eq $fwdfwsettings{'grp2'} && $fwdfwsettings{'oldgrp2b'} eq $fwdfwsettings{$fwdfwsettings{'grp2'}} && $fwdfwsettings{'oldgrp3a'} eq $fwdfwsettings{'grp3'} && $fwdfwsettings{'oldgrp3b'} eq $fwdfwsettings{$fwdfwsettings{'grp3'}} && $fwdfwsettings{'oldusesrv'} eq $fwdfwsettings{'USESRV'} && $fwdfwsettings{'oldruleremark'} eq $fwdfwsettings{'ruleremark'} && $fwdfwsettings{'oldruletype'} eq $fwdfwsettings{'chain'}) { + if($fwdfwsettings{'nosave'} eq 'on' && $fwdfwsettings{'updatefwrule'} eq 'on'){ + $fwdfwsettings{'nosave2'} = 'on'; + $errormessage=''; + } + } + #increase counters + if (!$errormessage){ + if ($fwdfwsettings{'nosave2'} ne 'on'){ + &saverule(%configfwdfw,$configfwdfw); + } + } + } + if ($errormessage){ + &newrule; + }else{ + if($fwdfwsettings{'nosave2'} ne 'on'){ + &General::firewall_config_changed(); + } + &base; + } +} +if ($fwdfwsettings{'ACTION'} eq $Lang::tr{'fwdfw newrule'}) +{ + &newrule; +} +if ($fwdfwsettings{'ACTION'} eq $Lang::tr{'fwdfw toggle'}) +{ + my %togglehash=(); + &General::readhasharray($fwdfwsettings{'config'}, %togglehash); + foreach my $key (sort keys %togglehash){ + if ($key eq $fwdfwsettings{'key'}){ + if ($togglehash{$key}[2] eq 'ON'){$togglehash{$key}[2]='';}else{$togglehash{$key}[2]='ON';} + } + } + &General::writehasharray($fwdfwsettings{'config'}, %togglehash); + &General::firewall_config_changed(); + &base; +} +if ($fwdfwsettings{'ACTION'} eq $Lang::tr{'fwdfw togglelog'}) +{ + my %togglehash=(); + &General::readhasharray($fwdfwsettings{'config'}, %togglehash); + foreach my $key (sort keys %togglehash){ + if ($key eq $fwdfwsettings{'key'}){ + if ($togglehash{$key}[17] eq 'ON'){$togglehash{$key}[17]='';}else{$togglehash{$key}[17]='ON';} + } + } + &General::writehasharray($fwdfwsettings{'config'}, %togglehash); + &General::firewall_config_changed(); + &base; +} +if ($fwdfwsettings{'ACTION'} eq $Lang::tr{'fwdfw reread'}) +{ + &General::firewall_reload(); + &base; +} +if ($fwdfwsettings{'ACTION'} eq 'editrule') +{ + $fwdfwsettings{'updatefwrule'}='on'; + &newrule; +} +if ($fwdfwsettings{'ACTION'} eq 'deleterule') +{ + &deleterule; +} +if ($fwdfwsettings{'ACTION'} eq 'moveup') +{ + &pos_up; + &base; +} +if ($fwdfwsettings{'ACTION'} eq 'movedown') +{ + &pos_down; + &base; +} +if ($fwdfwsettings{'ACTION'} eq 'copyrule') +{ + $fwdfwsettings{'copyfwrule'}='on'; + &newrule; +} +if ($fwdfwsettings{'ACTION'} eq '' or $fwdfwsettings{'ACTION'} eq 'reset') +{ + &base; +} +### Functions #### +sub addrule +{ + &error; + + &Header::openbox('100%', 'left', ""); + print <<END; + <form method="POST" action=""> + <table border='0' width="100%"> + <tr> + <td align='center'> + <input type='submit' name='ACTION' value='$Lang::tr{'fwdfw newrule'}'> +END + + if (&General::firewall_needs_reload()) { + print <<END; + <input type='submit' name='ACTION' value='$Lang::tr{'fwdfw reread'}' style='font-weight: bold; color: green;'> +END + } + + print <<END; + </td> + </tr> + </table> + </form> + + <br> +END + + &Header::closebox(); + &viewtablerule; +} +sub base +{ + &hint; + &addrule; +} +sub changerule +{ + my $oldchain=shift; + $fwdfwsettings{'updatefwrule'}=''; + $fwdfwsettings{'config'}=$oldchain; + $fwdfwsettings{'nobase'}='on'; + &deleterule; +} +sub checksource +{ + my ($ip,$subnet); + #check ip-address if manual + if ($fwdfwsettings{'src_addr'} eq $fwdfwsettings{$fwdfwsettings{'grp1'}} && $fwdfwsettings{'src_addr'} ne ''){ + #check if ip with subnet + if ($fwdfwsettings{'src_addr'} =~ /^(.*?)/(.*?)$/) { + ($ip,$subnet)=split (///,$fwdfwsettings{'src_addr'}); + $subnet = &General::iporsubtocidr($subnet); + $fwdfwsettings{'isip'}='on'; + } + #check if only ip + if($fwdfwsettings{'src_addr'}=~/^(\d{1,3}).(\d{1,3}).(\d{1,3}).(\d{1,3})$/){ + $ip=$fwdfwsettings{'src_addr'}; + $subnet = '32'; + $fwdfwsettings{'isip'}='on'; + } + + if ($fwdfwsettings{'isip'} ne 'on'){ + if (&General::validmac($fwdfwsettings{'src_addr'})){ + $fwdfwsettings{'ismac'}='on'; + } + } + if ($fwdfwsettings{'isip'} eq 'on'){ + ##check if ip is valid + if (! &General::validip($ip)){ + $errormessage.=$Lang::tr{'fwdfw err src_addr'}."<br>"; + return $errormessage; + } + #check and form valid IP + $ip=&General::ip2dec($ip); + $ip=&General::dec2ip($ip); + #check if net or broadcast + $fwdfwsettings{'src_addr'}="$ip/$subnet"; + if(!&General::validipandmask($fwdfwsettings{'src_addr'})){ + $errormessage.=$Lang::tr{'fwdfw err src_addr'}."<br>"; + return $errormessage; + } + } + if ($fwdfwsettings{'isip'} ne 'on' && $fwdfwsettings{'ismac'} ne 'on'){ + $errormessage.=$Lang::tr{'fwdfw err src_addr'}."<br>"; + return $errormessage; + } + }elsif($fwdfwsettings{'src_addr'} eq $fwdfwsettings{$fwdfwsettings{'grp1'}} && $fwdfwsettings{'src_addr'} eq ''){ + $fwdfwsettings{'grp1'}='std_net_src'; + $fwdfwsettings{$fwdfwsettings{'grp1'}} = 'ALL'; + } + + #check empty fields + if ($fwdfwsettings{$fwdfwsettings{'grp1'}} eq ''){ $errormessage.=$Lang::tr{'fwdfw err nosrc'}."<br>";} + if($fwdfwsettings{'USE_SRC_PORT'} eq 'ON' && ($fwdfwsettings{'PROT'} eq 'TCP' || $fwdfwsettings{'PROT'} eq 'UDP') && $fwdfwsettings{'SRC_PORT'} ne ''){ + my @parts=split(",",$fwdfwsettings{'SRC_PORT'}); + my @values=(); + foreach (@parts){ + chomp($_); + if ($_ =~ /^(\d+)-(\d+)$/ || $_ =~ /^(\d+):(\d+)$/) { + my $check; + #change dashes with : + $_=~ tr/-/:/; + if ($_ eq "*") { + push(@values,"1:65535"); + $check='on'; + } + if ($_ =~ /^(\D):(\d+)$/ || $_ =~ /^(\D)-(\d+)$/) { + push(@values,"1:$2"); + $check='on'; + } + if ($_ =~ /^(\d+):(\D)$/ || $_ =~ /^(\d+)-(\D)$/ ) { + push(@values,"$1:65535"); + $check='on' + } + $errormessage .= &General::validportrange($_, 'destination'); + if(!$check){ + push (@values,$_); + } + }else{ + if (&General::validport($_)){ + push (@values,$_); + }else{ + + } + } + } + $fwdfwsettings{'SRC_PORT'}=join("|",@values); + } + return $errormessage; +} +sub checktarget +{ + my ($ip,$subnet); + &General::readhasharray("$configsrv", %customservice); + #check DNAT settings (has to be single Host and single Port or portrange) + if ($fwdfwsettings{'USE_NAT'} eq 'ON' && $fwdfwsettings{'nat'} eq 'dnat'){ + if($fwdfwsettings{'grp2'} eq 'tgt_addr' || $fwdfwsettings{'grp2'} eq 'cust_host_tgt' || $fwdfwsettings{'grp2'} eq 'ovpn_host_tgt'){ + #check if manual ip is a single Host (if set) + if ($fwdfwsettings{'grp2'} eq 'tgt_addr'){ + my @tmp= split (/./,$fwdfwsettings{$fwdfwsettings{'grp2'}}); + my @tmp1= split ("/",$tmp[3]); + if (($tmp1[0] eq "0") || ($tmp1[0] eq "255")) + { + $errormessage=$Lang::tr{'fwdfw dnat error'}."<br>"; + return $errormessage; + } + } + #check if Port is a single Port or portrange + if ($fwdfwsettings{'nat'} eq 'dnat' && $fwdfwsettings{'grp3'} eq 'TGT_PORT'){ + if(($fwdfwsettings{'PROT'} ne 'TCP'|| $fwdfwsettings{'PROT'} ne 'UDP') && $fwdfwsettings{'TGT_PORT'} eq ''){ + $errormessage=$Lang::tr{'fwdfw target'}.": ".$Lang::tr{'fwdfw dnat porterr'}."<br>"; + return $errormessage; + } + if (($fwdfwsettings{'PROT'} eq 'TCP'|| $fwdfwsettings{'PROT'} eq 'UDP') && $fwdfwsettings{'TGT_PORT'} ne '' && !&check_natport($fwdfwsettings{'TGT_PORT'})){ + $errormessage=$Lang::tr{'fwdfw target'}.": ".$Lang::tr{'fwdfw dnat porterr'}."<br>"; + return $errormessage; + } + } + }else{ + if ($fwdfwsettings{'grp2'} ne 'ipfire'){ + $errormessage=$Lang::tr{'fwdfw dnat error'}."<br>"; + return $errormessage; + } + } + } + if ($fwdfwsettings{'tgt_addr'} eq $fwdfwsettings{$fwdfwsettings{'grp2'}} && $fwdfwsettings{'tgt_addr'} ne ''){ + #check if ip with subnet + if ($fwdfwsettings{'tgt_addr'} =~ /^(.*?)/(.*?)$/) { + ($ip,$subnet)=split (///,$fwdfwsettings{'tgt_addr'}); + $subnet = &General::iporsubtocidr($subnet); + } + #check if only ip + if($fwdfwsettings{'tgt_addr'}=~/^(\d{1,3}).(\d{1,3}).(\d{1,3}).(\d{1,3})$/){ + $ip=$fwdfwsettings{'tgt_addr'}; + $subnet='32'; + } + #check if ip is valid + if (! &General::validip($ip)){ + $errormessage.=$Lang::tr{'fwdfw err tgt_addr'}."<br>"; + return $errormessage; + } + #check and form valid IP + $ip=&General::ip2dec($ip); + $ip=&General::dec2ip($ip); + $fwdfwsettings{'tgt_addr'}="$ip/$subnet"; + if(!&General::validipandmask($fwdfwsettings{'tgt_addr'})){ + $errormessage.=$Lang::tr{'fwdfw err tgt_addr'}."<br>"; + return $errormessage; + } + }elsif($fwdfwsettings{'tgt_addr'} eq $fwdfwsettings{$fwdfwsettings{'grp2'}} && $fwdfwsettings{'tgt_addr'} eq ''){ + $fwdfwsettings{'grp2'}='std_net_tgt'; + $fwdfwsettings{$fwdfwsettings{'grp2'}} = 'ALL'; + } + #check for mac in targetgroup + if ($fwdfwsettings{'grp2'} eq 'cust_grp_tgt'){ + &General::readhasharray("$configgrp", %customgrp); + &General::readhasharray("$confighost", %customhost); + foreach my $grpkey (sort keys %customgrp){ + foreach my $hostkey (sort keys %customhost){ + if ($customgrp{$grpkey}[2] eq $customhost{$hostkey}[0] && $customhost{$hostkey}[1] eq 'mac'){ + $hint=$Lang::tr{'fwdfw hint mac'}; + return $hint; + } + } + } + } + #check empty fields + if ($fwdfwsettings{$fwdfwsettings{'grp2'}} eq ''){ $errormessage.=$Lang::tr{'fwdfw err notgt'}."<br>";} + #check tgt services + if ($fwdfwsettings{'USESRV'} eq 'ON'){ + if ($fwdfwsettings{'grp3'} eq 'cust_srv'){ + $fwdfwsettings{'TGT_PROT'}=''; + $fwdfwsettings{'ICMP_TGT'}=''; + $fwdfwsettings{'TGT_PORT'}=''; + } + if ($fwdfwsettings{'grp3'} eq 'cust_srvgrp'){ + $fwdfwsettings{'TGT_PROT'}=''; + $fwdfwsettings{'ICMP_TGT'}=''; + $fwdfwsettings{'TGT_PORT'}=''; + #check target service + if($fwdfwsettings{$fwdfwsettings{'grp3'}} eq ''){ + $errormessage.=$Lang::tr{'fwdfw err tgt_grp'}; + } + } + if ($fwdfwsettings{'grp3'} eq 'TGT_PORT'){ + if ($fwdfwsettings{'PROT'} eq 'TCP' || $fwdfwsettings{'PROT'} eq 'UDP'){ + if ($fwdfwsettings{'TGT_PORT'} ne ''){ + if ($fwdfwsettings{'TGT_PORT'} =~ "," && $fwdfwsettings{'USE_NAT'} && $fwdfwsettings{'nat'} eq 'dnat') { + $errormessage=$Lang::tr{'fwdfw dnat porterr'}."<br>"; + return $errormessage; + } + my @parts=split(",",$fwdfwsettings{'TGT_PORT'}); + my @values=(); + foreach (@parts){ + chomp($_); + if ($_ =~ /^(\d+)-(\d+)$/ || $_ =~ /^(\d+):(\d+)$/) { + my $check; + #change dashes with : + $_=~ tr/-/:/; + if ($_ eq "*") { + push(@values,"1:65535"); + $check='on'; + } + if ($_ =~ /^(\D):(\d+)$/ || $_ =~ /^(\D)-(\d+)$/) { + push(@values,"1:$2"); + $check='on'; + } + if ($_ =~ /^(\d+):(\D)$/ || $_ =~ /^(\d+)-(\D)$/) { + push(@values,"$1:65535"); + $check='on' + } + $errormessage .= &General::validportrange($_, 'destination'); + if(!$check){ + push (@values,$_); + } + }else{ + if (&General::validport($_)){ + push (@values,$_); + }else{ + $errormessage=$Lang::tr{'fwdfw err tgt_port'}; + return $errormessage; + } + } + } + $fwdfwsettings{'TGT_PORT'}=join("|",@values); + } + }elsif ($fwdfwsettings{'PROT'} eq 'GRE'){ + $fwdfwsettings{$fwdfwsettings{'grp3'}} = ''; + $fwdfwsettings{'TGT_PORT'} = ''; + $fwdfwsettings{'ICMP_TGT'} = ''; + }elsif ($fwdfwsettings{'PROT'} eq 'ESP'){ + $fwdfwsettings{$fwdfwsettings{'grp3'}} = ''; + $fwdfwsettings{'TGT_PORT'} = ''; + $fwdfwsettings{'ICMP_TGT'}=''; + }elsif ($fwdfwsettings{'PROT'} eq 'AH'){ + $fwdfwsettings{$fwdfwsettings{'grp3'}} = ''; + $fwdfwsettings{'TGT_PORT'} = ''; + $fwdfwsettings{'ICMP_TGT'}=''; + }elsif ($fwdfwsettings{'PROT'} eq 'ICMP'){ + $fwdfwsettings{$fwdfwsettings{'grp3'}} = ''; + $fwdfwsettings{'TGT_PORT'} = ''; + } + } + } + #check targetport + if ($fwdfwsettings{'USESRV'} ne 'ON'){ + $fwdfwsettings{'grp3'}=''; + $fwdfwsettings{$fwdfwsettings{'grp3'}}=''; + $fwdfwsettings{'ICMP_TGT'}=''; + } + #check timeframe + if($fwdfwsettings{'TIME'} eq 'ON'){ + if($fwdfwsettings{'TIME_MON'} eq '' && $fwdfwsettings{'TIME_TUE'} eq '' && $fwdfwsettings{'TIME_WED'} eq '' && $fwdfwsettings{'TIME_THU'} eq '' && $fwdfwsettings{'TIME_FRI'} eq '' && $fwdfwsettings{'TIME_SAT'} eq '' && $fwdfwsettings{'TIME_SUN'} eq ''){ + $errormessage=$Lang::tr{'fwdfw err time'}; + return $errormessage; + } + } + return $errormessage; +} +sub check_natport +{ + my $val=shift; + if($fwdfwsettings{'USE_NAT'} eq 'ON' && $fwdfwsettings{'nat'} eq 'dnat' && $fwdfwsettings{'dnatport'} ne ''){ + if ($fwdfwsettings{'dnatport'} =~ /^(\d+)-(\d+)$/) { + $fwdfwsettings{'dnatport'} =~ tr/-/:/; + if ($fwdfwsettings{'dnatport'} eq "*") { + $fwdfwsettings{'dnatport'}="1:65535"; + } + if ($fwdfwsettings{'dnatport'} =~ /^(\D):(\d+)$/) { + $fwdfwsettings{'dnatport'} = "1:$2"; + } + if ($fwdfwsettings{'dnatport'} =~ /^(\d+):(\D)$/) { + $fwdfwsettings{'dnatport'} ="$1:65535"; + } + } + return 1; + } + if ($val =~ "," || $val>65536 || $val<0){ + return 0; + } + return 1; +} +sub checkrule +{ + #check valid port for NAT + if($fwdfwsettings{'USE_NAT'} eq 'ON'){ + #RULE_ACTION must be ACCEPT if we use NAT + $fwdfwsettings{'RULE_ACTION'} = 'ACCEPT'; + + #if no dnat or snat selected errormessage + if ($fwdfwsettings{'nat'} eq ''){ + $errormessage=$Lang::tr{'fwdfw dnat nochoice'}; + return; + } + + #if using snat, the external port has to be empty + if ($fwdfwsettings{'nat'} eq 'snat' && $fwdfwsettings{'dnatport'} ne ''){ + $errormessage=$Lang::tr{'fwdfw dnat extport'}; + return; + } + #if no dest port is given in nat area, take target host port + if($fwdfwsettings{'nat'} eq 'dnat' && $fwdfwsettings{'grp3'} eq 'TGT_PORT' && $fwdfwsettings{'dnatport'} eq ''){$fwdfwsettings{'dnatport'}=$fwdfwsettings{'TGT_PORT'};} + if($fwdfwsettings{'TGT_PORT'} eq '' && $fwdfwsettings{'dnatport'} ne '' && ($fwdfwsettings{'PROT'} eq 'TCP' || $fwdfwsettings{'PROT'} eq 'UDP')){ + $errormessage=$Lang::tr{'fwdfw dnat porterr2'}; + return; + } + #check if port given in nat area is a single valid port or portrange + if($fwdfwsettings{'nat'} eq 'dnat' && $fwdfwsettings{'TGT_PORT'} ne '' && !&check_natport($fwdfwsettings{'dnatport'})){ + $errormessage=$Lang::tr{'fwdfw target'}.": ".$Lang::tr{'fwdfw dnat porterr'}."<br>"; + }elsif($fwdfwsettings{'USESRV'} eq 'ON' && $fwdfwsettings{'grp3'} eq 'cust_srv'){ + my $custsrvport; + #get service Protocol and Port + foreach my $key (sort keys %customservice){ + if($fwdfwsettings{$fwdfwsettings{'grp3'}} eq $customservice{$key}[0]){ + if ($customservice{$key}[2] ne 'TCP' && $customservice{$key}[2] ne 'UDP'){ + $errormessage=$Lang::tr{'fwdfw target'}.": ".$Lang::tr{'fwdfw dnat porterr'}."<br>"; + } + $custsrvport= $customservice{$key}[1]; + } + } + if($fwdfwsettings{'nat'} eq 'dnat' && $fwdfwsettings{'dnatport'} eq ''){$fwdfwsettings{'dnatport'}=$custsrvport;} + } + #check if DNAT port is multiple + if($fwdfwsettings{'nat'} eq 'dnat' && $fwdfwsettings{'dnatport'} ne ''){ + my @parts=split(",",$fwdfwsettings{'dnatport'}); + my @values=(); + foreach (@parts){ + chomp($_); + if ($_ =~ /^(\d+)-(\d+)$/ || $_ =~ /^(\d+):(\d+)$/) { + my $check; + #change dashes with : + $_=~ tr/-/:/; + if ($_ eq "*") { + push(@values,"1:65535"); + $check='on'; + } + if ($_ =~ /^(\D):(\d+)$/ || $_ =~ /^(\D)-(\d+)$/) { + push(@values,"1:$2"); + $check='on'; + } + if ($_ =~ /^(\d+):(\D)$/ || $_ =~ /^(\d+)-(\D)$/) { + push(@values,"$1:65535"); + $check='on' + } + $errormessage .= &General::validportrange($_, 'destination'); + if(!$check){ + push (@values,$_); + } + }else{ + if (&General::validport($_)){ + push (@values,$_); + }else{ + + } + } + } + $fwdfwsettings{'dnatport'}=join("|",@values); + } + #check if a rule with prot tcp or udp and ports is edited and now prot is "all", then delete all ports + if($fwdfwsettings{'PROT'} eq ''){ + $fwdfwsettings{'dnatport'}=''; + } + } + #check valid remark + if ($fwdfwsettings{'ruleremark'} ne '' && !&validremark($fwdfwsettings{'ruleremark'})){ + $errormessage.=$Lang::tr{'fwdfw err remark'}."<br>"; + } + #check if source and target identical + if ($fwdfwsettings{$fwdfwsettings{'grp1'}} eq $fwdfwsettings{$fwdfwsettings{'grp2'}} && $fwdfwsettings{$fwdfwsettings{'grp1'}} ne 'ALL'){ + $errormessage=$Lang::tr{'fwdfw err same'}; + return $errormessage; + } + #get source and targetip address if possible + my ($sip,$scidr,$tip,$tcidr); + ($sip,$scidr)=&get_ip("src","grp1"); + ($tip,$tcidr)=&get_ip("tgt","grp2"); + #check same iprange in source and target + if ($sip ne '' && $scidr ne '' && $tip ne '' && $tcidr ne ''){ + my $networkip1=&General::getnetworkip($sip,$scidr); + my $networkip2=&General::getnetworkip($tip,$tcidr); + if ($scidr gt $tcidr){ + if ( &General::IpInSubnet($networkip1,$tip,&General::iporsubtodec($tcidr))){ + $errormessage.=$Lang::tr{'fwdfw err samesub'}; + } + }elsif($scidr eq $tcidr && $scidr eq '32'){ + my ($sbyte1,$sbyte2,$sbyte3,$sbyte4)=split(/./,$networkip1); + my ($tbyte1,$tbyte2,$tbyte3,$tbyte4)=split(/./,$networkip2); + if ($sbyte1 eq $tbyte1 && $sbyte2 eq $tbyte2 && $sbyte3 eq $tbyte3){ + $hint=$Lang::tr{'fwdfw hint ip1'}."<br>"; + $hint.=$Lang::tr{'fwdfw hint ip2'}." Source: $networkip1/$scidr Target: $networkip2/$tcidr<br>"; + } + }else{ + if ( &General::IpInSubnet($networkip2,$sip,&General::iporsubtodec($scidr)) ){ + $errormessage.=$Lang::tr{'fwdfw err samesub'}; + } + } + } + #when icmp selected, no source and targetport allowed + if (($fwdfwsettings{'PROT'} ne '' && $fwdfwsettings{'PROT'} ne 'TCP' && $fwdfwsettings{'PROT'} ne 'UDP' && $fwdfwsettings{'PROT'} ne 'template') && ($fwdfwsettings{'USESRV'} eq 'ON' || $fwdfwsettings{'USE_SRC_PORT'} eq 'ON')){ + $errormessage.=$Lang::tr{'fwdfw err prot_port'}; + return; + } + #change protocol if prot not equal dest single service + if ($fwdfwsettings{'grp3'} eq 'cust_srv'){ + foreach my $key (sort keys %customservice){ + if($customservice{$key}[0] eq $fwdfwsettings{$fwdfwsettings{'grp3'}}){ + if ($customservice{$key}[2] ne $fwdfwsettings{'PROT'}){ + $fwdfwsettings{'PROT'} = $customservice{$key}[2]; + last; + } + } + } + } + #check source and destination protocol if source manual and dest servicegroup + if ($fwdfwsettings{'grp3'} eq 'cust_srvgrp'){ + $fwdfwsettings{'PROT'} = ''; + } + #ATTENTION: $fwdfwsetting{'TGT_PROT'} deprecated since 30.09.2013 + $fwdfwsettings{'TGT_PROT'}=''; #Set field empty (deprecated) + #Check ICMP Types + if ($fwdfwsettings{'PROT'} eq 'ICMP'){ + $fwdfwsettings{'USE_SRC_PORT'}=''; + $fwdfwsettings{'SRC_PORT'}=''; + #$fwdfwsettings{'USESRV'}=''; + $fwdfwsettings{'TGT_PORT'}=''; + &General::readhasharray("${General::swroot}/fwhosts/icmp-types", %icmptypes); + foreach my $key (keys %icmptypes){ + if($fwdfwsettings{'ICMP_TYPES'} eq "$icmptypes{$key}[0] ($icmptypes{$key}[1])"){ + $fwdfwsettings{'ICMP_TYPES'}="$icmptypes{$key}[0]"; + } + } + }elsif($fwdfwsettings{'PROT'} eq 'GRE'){ + $fwdfwsettings{'USE_SRC_PORT'}=''; + $fwdfwsettings{'SRC_PORT'}=''; + $fwdfwsettings{'ICMP_TYPES'}=''; + $fwdfwsettings{'USESRV'}=''; + $fwdfwsettings{'TGT_PORT'}=''; + }elsif($fwdfwsettings{'PROT'} eq 'ESP'){ + $fwdfwsettings{'USE_SRC_PORT'}=''; + $fwdfwsettings{'SRC_PORT'}=''; + $fwdfwsettings{'ICMP_TYPES'}=''; + $fwdfwsettings{'USESRV'}=''; + $fwdfwsettings{'TGT_PORT'}=''; + }elsif($fwdfwsettings{'PROT'} eq 'AH'){ + $fwdfwsettings{'USE_SRC_PORT'}=''; + $fwdfwsettings{'SRC_PORT'}=''; + $fwdfwsettings{'ICMP_TYPES'}=''; + $fwdfwsettings{'USESRV'}=''; + $fwdfwsettings{'TGT_PORT'}=''; + }elsif($fwdfwsettings{'PROT'} eq 'IGMP'){ + $fwdfwsettings{'USE_SRC_PORT'}=''; + $fwdfwsettings{'SRC_PORT'}=''; + $fwdfwsettings{'ICMP_TYPES'}=''; + $fwdfwsettings{'USESRV'}=''; + $fwdfwsettings{'TGT_PORT'}=''; + }elsif($fwdfwsettings{'PROT'} eq 'IPv6'){ + $fwdfwsettings{'USE_SRC_PORT'}=''; + $fwdfwsettings{'SRC_PORT'}=''; + $fwdfwsettings{'ICMP_TYPES'}=''; + $fwdfwsettings{'USESRV'}=''; + $fwdfwsettings{'TGT_PORT'}=''; + }elsif($fwdfwsettings{'PROT'} eq 'IPIP'){ + $fwdfwsettings{'USE_SRC_PORT'}=''; + $fwdfwsettings{'SRC_PORT'}=''; + $fwdfwsettings{'ICMP_TYPES'}=''; + $fwdfwsettings{'USESRV'}=''; + $fwdfwsettings{'TGT_PORT'}=''; + }elsif($fwdfwsettings{'PROT'} ne 'TCP' && $fwdfwsettings{'PROT'} ne 'UDP'){ + $fwdfwsettings{'ICMP_TYPES'}=''; + $fwdfwsettings{'SRC_PORT'}=''; + $fwdfwsettings{'TGT_PORT'}=''; + }elsif($fwdfwsettings{'PROT'} ne 'ICMP'){ + $fwdfwsettings{'ICMP_TYPES'}=''; + } +} +sub checkvpn +{ + my $ip=shift; + #Test if manual IP is part of static OpenVPN networks + &General::readhasharray("$configccdnet", %ccdnet); + foreach my $key (sort keys %ccdnet){ + my ($vpnip,$vpnsubnet) = split ("/",$ccdnet{$key}[1]); + my $sub=&General::iporsubtodec($vpnsubnet); + if (&General::IpInSubnet($ip,$vpnip,$sub)){ + return 0; + } + } + # A Test if manual ip is part of dynamic openvpn subnet is made in getcolor + # because if one creates a custom host with the ip, we need to check the color there! + # It does not make sense to check this here + + # Test if manual IP is part of an OpenVPN N2N subnet does also not make sense here + # Is also checked in getcolor + + # Test if manual ip is part of an IPsec Network is also checked in getcolor + return 1; +} +sub checkvpncolor +{ + +} +sub deleterule +{ + my %delhash=(); + &General::readhasharray($fwdfwsettings{'config'}, %delhash); + foreach my $key (sort {$a <=> $b} keys %delhash){ + if ($key >= $fwdfwsettings{'key'}) { + my $next = $key + 1; + if (exists $delhash{$next}) { + foreach my $i (0 .. $#{$delhash{$next}}) { + $delhash{$key}[$i] = $delhash{$next}[$i]; + } + } + } + } + # Remove the very last entry. + my $last_key = (sort {$a <=> $b} keys %delhash)[-1]; + delete $delhash{$last_key}; + + &General::writehasharray($fwdfwsettings{'config'}, %delhash); + &General::firewall_config_changed(); + + if($fwdfwsettings{'nobase'} ne 'on'){ + &base; + } +} +sub del_double +{ + my %all=(); + @all{@_}=1; + return (keys %all); +} +sub disable_rule +{ + my $key1=shift; + &General::readhasharray("$configfwdfw", %configfwdfw); + foreach my $key (sort keys %configfwdfw){ + if ($key eq $key1 ){ + if ($configfwdfw{$key}[2] eq 'ON'){$configfwdfw{$key}[2]='';} + } + } + &General::writehasharray("$configfwdfw", %configfwdfw); + &General::firewall_config_changed(); +} +sub error +{ + if ($errormessage) { + &Header::openbox('100%', 'left', $Lang::tr{'error messages'}); + print "<class name='base'>$errormessage\n"; + print " </class>\n"; + &Header::closebox(); + } +} +sub fillselect +{ + my %hash=%{(shift)}; + my $val=shift; + my $key; + foreach my $key (sort { ncmp($hash{$a}[0],$hash{$b}[0]) } keys %hash){ + if($hash{$key}[0] eq $val){ + print"<option value='$hash{$key}[0]' selected>$hash{$key}[0]</option>"; + }else{ + print"<option value='$hash{$key}[0]'>$hash{$key}[0]</option>"; + } + } +} +sub gen_dd_block +{ + my $srctgt = shift; + my $grp=shift; + my $helper=''; + my $show=''; + $checked{'grp1'}{$fwdfwsettings{'grp1'}} = 'CHECKED'; + $checked{'grp2'}{$fwdfwsettings{'grp2'}} = 'CHECKED'; + $checked{'grp3'}{$fwdfwsettings{'grp3'}} = 'CHECKED'; + $checked{'USE_SRC_PORT'}{$fwdfwsettings{'USE_SRC_PORT'}} = 'CHECKED'; + $checked{'USESRV'}{$fwdfwsettings{'USESRV'}} = 'CHECKED'; + $checked{'ACTIVE'}{$fwdfwsettings{'ACTIVE'}} = 'CHECKED'; + $checked{'LOG'}{$fwdfwsettings{'LOG'}} = 'CHECKED'; + $checked{'TIME'}{$fwdfwsettings{'TIME'}} = 'CHECKED'; + $checked{'TIME_MON'}{$fwdfwsettings{'TIME_MON'}} = 'CHECKED'; + $checked{'TIME_TUE'}{$fwdfwsettings{'TIME_TUE'}} = 'CHECKED'; + $checked{'TIME_WED'}{$fwdfwsettings{'TIME_WED'}} = 'CHECKED'; + $checked{'TIME_THU'}{$fwdfwsettings{'TIME_THU'}} = 'CHECKED'; + $checked{'TIME_FRI'}{$fwdfwsettings{'TIME_FRI'}} = 'CHECKED'; + $checked{'TIME_SAT'}{$fwdfwsettings{'TIME_SAT'}} = 'CHECKED'; + $checked{'TIME_SUN'}{$fwdfwsettings{'TIME_SUN'}} = 'CHECKED'; + $selected{'TIME_FROM'}{$fwdfwsettings{'TIME_FROM'}} = 'selected'; + $selected{'TIME_TO'}{$fwdfwsettings{'TIME_TO'}} = 'selected'; + $selected{'ipfire'}{$fwdfwsettings{$fwdfwsettings{'grp1'}}} ='selected'; + $selected{'ipfire'}{$fwdfwsettings{$fwdfwsettings{'grp2'}}} ='selected'; +print<<END; + <table width='100%' border='0'> + <tr><td width='50%' valign='top'> + <table width='95%' border='0'> + <tr><td width='1%'><input type='radio' name='$grp' id='std_net_$srctgt' value='std_net_$srctgt' $checked{$grp}{'std_net_'.$srctgt}></td><td>$Lang::tr{'fwhost stdnet'}</td><td align='right'><select name='std_net_$srctgt' style='width:200px;'> +END + foreach my $network (sort keys %defaultNetworks) + { + next if($defaultNetworks{$network}{'NAME'} eq "RED" && $srctgt eq 'src'); + next if($defaultNetworks{$network}{'NAME'} eq "IPFire"); + print "<option value='$defaultNetworks{$network}{'NAME'}'"; + print " selected='selected'" if ($fwdfwsettings{$fwdfwsettings{$grp}} eq $defaultNetworks{$network}{'NAME'}); + my $defnet="$defaultNetworks{$network}{'NAME'}_NETADDRESS"; + my $defsub="$defaultNetworks{$network}{'NAME'}_NETMASK"; + my $defsub1=&General::subtocidr($ifaces{$defsub}); + $ifaces{$defnet}='' if ($defaultNetworks{$network}{'NAME'} eq 'RED'); + if ($ifaces{$defnet}){ + print ">$network ($ifaces{$defnet}/$defsub1)</option>"; + }else{ + print ">$network</option>"; + } + } + print"</select></td></tr>"; + #custom networks + if (! -z $confignet || $optionsfw{'SHOWDROPDOWN'} eq 'on'){ + print"<tr><td><input type='radio' name='$grp' id='cust_net_$srctgt' value='cust_net_$srctgt' $checked{$grp}{'cust_net_'.$srctgt}></td><td>$Lang::tr{'fwhost cust net'}</td><td align='right'><select name='cust_net_$srctgt' style='width:200px;'>"; + &fillselect(%customnetwork,$fwdfwsettings{$fwdfwsettings{$grp}}); + print"</select></td>"; + } + #custom hosts + if (! -z $confighost || $optionsfw{'SHOWDROPDOWN'} eq 'on'){ + print"<tr><td><input type='radio' name='$grp' id='cust_host_$srctgt' value='cust_host_$srctgt' $checked{$grp}{'cust_host_'.$srctgt}></td><td>$Lang::tr{'fwhost cust addr'}</td><td align='right'><select name='cust_host_$srctgt' style='width:200px;'>"; + &fillselect(%customhost,$fwdfwsettings{$fwdfwsettings{$grp}}); + print"</select></td>"; + } + #custom groups + if (! -z $configgrp || $optionsfw{'SHOWDROPDOWN'} eq 'on'){ + print"<tr><td valign='top'><input type='radio' name='$grp' id='cust_grp_$srctgt' value='cust_grp_$srctgt' $checked{$grp}{'cust_grp_'.$srctgt}></td><td >$Lang::tr{'fwhost cust grp'}</td><td align='right'><select name='cust_grp_$srctgt' style='width:200px;'>"; + foreach my $key (sort { ncmp($customgrp{$a}[0],$customgrp{$b}[0]) } keys %customgrp) { + if($helper ne $customgrp{$key}[0] && $customgrp{$key}[2] ne 'none'){ + print"<option "; + print "selected='selected' " if ($fwdfwsettings{$fwdfwsettings{$grp}} eq $customgrp{$key}[0]); + print ">$customgrp{$key}[0]</option>"; + } + $helper=$customgrp{$key}[0]; + } + print"</select></td>"; + } + #End left table. start right table (vpn) + print"</tr></table></td><td valign='top'><table width='95%' border='0' align='right'><tr>"; + # CCD networks + if( ! -z $configccdnet || $optionsfw{'SHOWDROPDOWN'} eq 'on'){ + print"<td width='1%'><input type='radio' name='$grp' id='ovpn_net_$srctgt' value='ovpn_net_$srctgt' $checked{$grp}{'ovpn_net_'.$srctgt}></td><td nowrap='nowrap' width='16%'>$Lang::tr{'fwhost ccdnet'}</td><td nowrap='nowrap' width='1%' align='right'><select name='ovpn_net_$srctgt' style='width:200px;'>"; + &fillselect(%ccdnet,$fwdfwsettings{$fwdfwsettings{$grp}}); + print"</select></td></tr>"; + } + #OVPN CCD Hosts + foreach my $key (sort { ncmp($ccdhost{$a}[0],$ccdhost{$b}[0]) } keys %ccdhost){ + if ($ccdhost{$key}[33] ne '' ){ + print"<tr><td width='1%'><input type='radio' name='$grp' id='ovpn_host_$srctgt' value='ovpn_host_$srctgt' $checked{$grp}{'ovpn_host_'.$srctgt}></td><td nowrap='nowrap' width='16%'>$Lang::tr{'fwhost ccdhost'}</td><td nowrap='nowrap' width='1%' align='right'><select name='ovpn_host_$srctgt' style='width:200px;'>" if ($show eq ''); + $show='1'; + print "<option value='$ccdhost{$key}[1]'"; + print "selected='selected'" if ($fwdfwsettings{$fwdfwsettings{$grp}} eq $ccdhost{$key}[1]); + print ">$ccdhost{$key}[1]</option>"; + } + } + if($optionsfw{'SHOWDROPDOWN'} eq 'on' && $show eq ''){ + print"<tr><td width='1%'><input type='radio' name='$grp' id='ovpn_host_$srctgt' value='ovpn_host_$srctgt' $checked{$grp}{'ovpn_host_'.$srctgt}></td><td nowrap='nowrap' width='16%'>$Lang::tr{'fwhost ccdhost'}</td><td nowrap='nowrap' width='1%' align='right'><select name='ovpn_host_$srctgt' style='width:200px;'></select></td></tr>" ; + } + if ($show eq '1'){$show='';print"</select></td></tr>";} + #OVPN N2N + foreach my $key (sort { ncmp($ccdhost{$a}[1],$ccdhost{$b}[1]) } keys %ccdhost){ + if ($ccdhost{$key}[3] eq 'net'){ + print"<tr><td width='1%'><input type='radio' name='$grp' id='ovpn_n2n_$srctgt' value='ovpn_n2n_$srctgt' $checked{$grp}{'ovpn_n2n_'.$srctgt}></td><td nowrap='nowrap' width='16%'>$Lang::tr{'fwhost ovpn_n2n'}:</td><td nowrap='nowrap' width='1%' align='right'><select name='ovpn_n2n_$srctgt' style='width:200px;'>" if ($show eq ''); + $show='1'; + print "<option value='$ccdhost{$key}[1]'"; + print "selected='selected'" if ($fwdfwsettings{$fwdfwsettings{$grp}} eq $ccdhost{$key}[1]); + print ">$ccdhost{$key}[1]</option>"; + } + } + if($optionsfw{'SHOWDROPDOWN'} eq 'on' && $show eq ''){ + print"<tr><td width='1%'><input type='radio' name='$grp' id='ovpn_n2n_$srctgt' value='ovpn_n2n_$srctgt' $checked{$grp}{'ovpn_n2n_'.$srctgt}></td><td nowrap='nowrap' width='16%'>$Lang::tr{'fwhost ovpn_n2n'}</td><td nowrap='nowrap' width='1%' align='right'><select name='ovpn_n2n_$srctgt' style='width:200px;'></select></td></tr>" ; + } + if ($show eq '1'){$show='';print"</select></td></tr>";} + #IPsec netze + foreach my $key (sort { ncmp($ipsecconf{$a}[1],$ipsecconf{$b}[1]) } keys %ipsecconf) { + if ($ipsecconf{$key}[3] eq 'net' || ($optionsfw{'SHOWDROPDOWN'} eq 'on' && $ipsecconf{$key}[3] ne 'host')){ + print"<tr><td valign='top'><input type='radio' name='$grp' value='ipsec_net_$srctgt' $checked{$grp}{'ipsec_net_'.$srctgt}></td><td >$Lang::tr{'fwhost ipsec net'}</td><td align='right'><select name='ipsec_net_$srctgt' style='width:200px;'>" if ($show eq ''); + $show='1'; + print "<option "; + print "selected='selected'" if ($fwdfwsettings{$fwdfwsettings{$grp}} eq $ipsecconf{$key}[1]); + print ">$ipsecconf{$key}[1]</option>"; + } + } + if($optionsfw{'SHOWDROPDOWN'} eq 'on' && $show eq ''){ + print"<tr><td valign='top'><input type='radio' name='$grp' id='ipsec_net_$srctgt' value='ipsec_net_$srctgt' $checked{$grp}{'ipsec_net_'.$srctgt}></td><td >$Lang::tr{'fwhost ipsec net'}</td><td align='right'><select name='ipsec_net_$srctgt' style='width:200px;'><select></td></tr>"; + } + if ($show eq '1'){$show='';print"</select></td></tr>";} + + print"</table>"; + print"</td></tr></table><br>"; +} +sub get_ip +{ + my $val=shift; + my $grp =shift; + my $a; + my $b; + &General::readhash("/var/ipfire/ethernet/settings", %netsettings); + if ($fwdfwsettings{$grp} ne $Lang::tr{'fwhost any'}){ + if ($fwdfwsettings{$grp} eq $val.'_addr'){ + ($a,$b) = split (///, $fwdfwsettings{$fwdfwsettings{$grp}}); + }elsif($fwdfwsettings{$grp} eq 'std_net_'.$val){ + if ($fwdfwsettings{$fwdfwsettings{$grp}} =~ /Gr/i){ + $a=$netsettings{'GREEN_NETADDRESS'}; + $b=&General::iporsubtocidr($netsettings{'GREEN_NETMASK'}); + }elsif($fwdfwsettings{$fwdfwsettings{$grp}} =~ /Ora/i){ + $a=$netsettings{'ORANGE_NETADDRESS'}; + $b=&General::iporsubtocidr($netsettings{'ORANGE_NETMASK'}); + }elsif($fwdfwsettings{$fwdfwsettings{$grp}} =~ /Bl/i){ + $a=$netsettings{'BLUE_NETADDRESS'}; + $b=&General::iporsubtocidr($netsettings{'BLUE_NETMASK'}); + }elsif($fwdfwsettings{$fwdfwsettings{$grp}} =~ /OpenVPN/i){ + &General::readhash("$configovpn",%ovpnsettings); + ($a,$b) = split (///, $ovpnsettings{'DOVPN_SUBNET'}); + $b=&General::iporsubtocidr($b); + } + }elsif($fwdfwsettings{$grp} eq 'cust_net_'.$val){ + &General::readhasharray("$confignet", %customnetwork); + foreach my $key (keys %customnetwork){ + if($customnetwork{$key}[0] eq $fwdfwsettings{$fwdfwsettings{$grp}}){ + $a=$customnetwork{$key}[1]; + $b=&General::iporsubtocidr($customnetwork{$key}[2]); + } + } + }elsif($fwdfwsettings{$grp} eq 'cust_host_'.$val){ + &General::readhasharray("$confighost", %customhost); + foreach my $key (keys %customhost){ + if($customhost{$key}[0] eq $fwdfwsettings{$fwdfwsettings{$grp}}){ + if ($customhost{$key}[1] eq 'ip'){ + ($a,$b)=split (///,$customhost{$key}[2]); + $b=&General::iporsubtocidr($b); + }else{ + if ($grp eq 'grp2'){ + $errormessage=$Lang::tr{'fwdfw err tgt_mac'}; + } + } + } + } + } + } + return $a,$b; +} +sub get_name +{ + my $val=shift; + &General::setup_default_networks(%defaultNetworks); + foreach my $network (sort keys %defaultNetworks) + { + return "$network" if ($val eq $defaultNetworks{$network}{'NAME'}); + } +} +sub getsrcport +{ + my %hash=%{(shift)}; + my $key=shift; + if($hash{$key}[7] eq 'ON' && $hash{$key}[10]){ + $hash{$key}[10]=~ s/|/,/g; + print": $hash{$key}[10]"; + }elsif($hash{$key}[7] eq 'ON' && $hash{$key}[8] eq 'ICMP'){ + print": <br>$hash{$key}[9] "; + } +} +sub gettgtport +{ + my %hash=%{(shift)}; + my $key=shift; + my $service; + my $prot; + if($hash{$key}[11] eq 'ON' && $hash{$key}[12] ne 'ICMP'){ + if($hash{$key}[14] eq 'cust_srv'){ + &General::readhasharray("$configsrv", %customservice); + foreach my $i (sort keys %customservice){ + if($customservice{$i}[0] eq $hash{$key}[15]){ + $service = $customservice{$i}[0]; + } + } + }elsif($hash{$key}[14] eq 'cust_srvgrp'){ + $service=$hash{$key}[15]; + }elsif($hash{$key}[14] eq 'TGT_PORT'){ + $hash{$key}[15]=~ s/|/,/g; + $service=$hash{$key}[15]; + } + if($service){ + print": $service"; + } + } +} +sub get_serviceports +{ + my $type=shift; + my $name=shift; + &General::readhasharray("$configsrv", %customservice); + &General::readhasharray("$configsrvgrp", %customservicegrp); + my $tcp; + my $udp; + my $icmp; + @protocols=(); + if($type eq 'service'){ + foreach my $key (sort { ncmp($customservice{$a}[0],$customservice{$b}[0]) } keys %customservice){ + if ($customservice{$key}[0] eq $name){ + push (@protocols,$customservice{$key}[2]); + } + } + }elsif($type eq 'group'){ + foreach my $key (sort { ncmp($customservicegrp{$a}[0],$customservicegrp{$b}[0]) } keys %customservicegrp){ + if ($customservicegrp{$key}[0] eq $name){ + foreach my $key1 (sort { ncmp($customservice{$a}[0],$customservice{$b}[0]) } keys %customservice){ + if ($customservice{$key1}[0] eq $customservicegrp{$key}[2]){ + if($customservice{$key1}[2] eq 'TCP'){ + $tcp='TCP'; + }elsif($customservice{$key1}[2] eq 'ICMP'){ + $icmp='ICMP'; + }elsif($customservice{$key1}[2] eq 'UDP'){ + $udp='UDP'; + } + } + } + } + } + } + if($tcp && $udp && $icmp){ + push (@protocols,"TCP,UDP, <br>ICMP"); + return @protocols; + } + if($tcp){ + push (@protocols,"TCP"); + } + if($udp){ + push (@protocols,"UDP"); + } + if($icmp){ + push (@protocols,"ICMP"); + } + return @protocols; +} +sub getcolor +{ + my $nettype=shift; + my $val=shift; + my $hash=shift; + if($optionsfw{'SHOWCOLORS'} eq 'on'){ + # Don't colourise MAC addresses + if (&General::validmac($val)) { + $tdcolor = ""; + return; + } + + #custom Hosts + if ($nettype eq 'cust_host_src' || $nettype eq 'cust_host_tgt'){ + foreach my $key (sort keys %$hash){ + if ($$hash{$key}[0] eq $val){ + $val=$$hash{$key}[2]; + } + } + } + #standard networks + if ($val eq 'GREEN'){ + $tdcolor="style='background-color: $Header::colourgreen;color:white;'"; + return; + }elsif ($val eq 'ORANGE'){ + $tdcolor="style='background-color: $Header::colourorange;color:white;'"; + return; + }elsif ($val eq 'BLUE'){ + $tdcolor="style='background-color: $Header::colourblue;color:white;'"; + return; + }elsif ($val eq 'RED' ||$val eq 'RED1' ){ + $tdcolor="style='background-color: $Header::colourred;color:white;'"; + return; + }elsif ($val eq 'IPFire' ){ + $tdcolor="style='background-color: $Header::colourred;color:white;'"; + return; + }elsif ($val eq 'OpenVPN-Dyn' ){ + $tdcolor="style='background-color: $Header::colourovpn;color:white;'"; + return; + }elsif ($val eq 'IPsec RW' ){ + $tdcolor="style='background-color: $Header::colourvpn;color:white;'"; + return; + }elsif($val =~ /^(.*?)/(.*?)$/){ + my ($sip,$scidr) = split ("/",$val); + if ( &General::IpInSubnet($sip,$netsettings{'ORANGE_ADDRESS'},$netsettings{'ORANGE_NETMASK'})){ + $tdcolor="style='background-color: $Header::colourorange;color:white;'"; + return; + } + if ( &General::IpInSubnet($sip,$netsettings{'GREEN_ADDRESS'},$netsettings{'GREEN_NETMASK'})){ + $tdcolor="style='background-color: $Header::colourgreen;color:white;'"; + return; + } + if ( &General::IpInSubnet($sip,$netsettings{'BLUE_ADDRESS'},$netsettings{'BLUE_NETMASK'})){ + $tdcolor="style='background-color: $Header::colourblue;color:white;'"; + return; + } + }elsif ($val eq 'Default IP'){ + $tdcolor="style='background-color: $Header::colourred;color:white;'"; + return; + } + #Check if a manual IP or custom host is part of a VPN + if ($nettype eq 'src_addr' || $nettype eq 'tgt_addr' || $nettype eq 'cust_host_src' || $nettype eq 'cust_host_tgt'){ + #Check if IP is part of OpenVPN dynamic subnet + my ($a,$b) = split("/",$ovpnsettings{'DOVPN_SUBNET'}); + my ($c,$d) = split("/",$val); + if (&General::IpInSubnet($c,$a,$b)){ + $tdcolor="style='background-color: $Header::colourovpn;color:white;'"; + return; + } + #Check if IP is part of OpenVPN static subnet + foreach my $key (sort keys %ccdnet){ + my ($a,$b) = split("/",$ccdnet{$key}[1]); + $b =&General::iporsubtodec($b); + if (&General::IpInSubnet($c,$a,$b)){ + $tdcolor="style='background-color: $Header::colourovpn;color:white;'"; + return; + } + } + #Check if IP is part of OpenVPN N2N subnet + foreach my $key (sort keys %ccdhost){ + if ($ccdhost{$key}[3] eq 'net'){ + my ($a,$b) = split("/",$ccdhost{$key}[11]); + if (&General::IpInSubnet($c,$a,$b)){ + $tdcolor="style='background-color: $Header::colourovpn;color:white;'"; + return; + } + } + } + #Check if IP is part of IPsec RW network + if ($ipsecsettings{'RW_NET'} ne ''){ + my ($a,$b) = split("/",$ipsecsettings{'RW_NET'}); + $b=&General::iporsubtodec($b); + if (&General::IpInSubnet($c,$a,$b)){ + $tdcolor="style='background-color: $Header::colourvpn;color:white;'"; + return; + } + } + #Check if IP is part of a IPsec N2N network + foreach my $key (sort keys %ipsecconf){ + my ($a,$b) = split("/",$ipsecconf{$key}[11]); + $b=&General::iporsubtodec($b); + if (&General::IpInSubnet($c,$a,$b)){ + $tdcolor="style='background-color: $Header::colourvpn;color:white;'"; + return; + } + } + } + #VPN networks + if ($nettype eq 'ovpn_n2n_src' || $nettype eq 'ovpn_n2n_tgt' || $nettype eq 'ovpn_net_src' || $nettype eq 'ovpn_net_tgt'|| $nettype eq 'ovpn_host_src' || $nettype eq 'ovpn_host_tgt'){ + $tdcolor="style='background-color: $Header::colourovpn;color:white;'"; + return; + } + if ($nettype eq 'ipsec_net_src' || $nettype eq 'ipsec_net_tgt'){ + $tdcolor="style='background-color: $Header::colourvpn;color:white;'"; + return; + } + #ALIASE + foreach my $alias (sort keys %aliases) + { + if ($val eq $alias){ + $tdcolor="style='background-color:$Header::colourred;color:white;'"; + return; + } + } + } + $tdcolor=''; + return; +} +sub hint +{ + if ($hint) { + &Header::openbox('100%', 'left', $Lang::tr{'fwhost hint'}); + print "<class name='base'>$hint\n"; + print " </class>\n"; + &Header::closebox(); + } +} +sub newrule +{ + &error; + &General::setup_default_networks(%defaultNetworks); + &General::readhash("/var/ipfire/ethernet/settings", %netsettings); + #read all configfiles + &General::readhasharray("$configccdnet", %ccdnet); + &General::readhasharray("$confignet", %customnetwork); + &General::readhasharray("$configccdhost", %ccdhost); + &General::readhasharray("$confighost", %customhost); + &General::readhasharray("$configccdhost", %ccdhost); + &General::readhasharray("$configgrp", %customgrp); + &General::readhasharray("$configipsec", %ipsecconf); + &General::get_aliases(%aliases); + my %checked=(); + my $helper; + my $sum=0; + if($fwdfwsettings{'config'} eq ''){$fwdfwsettings{'config'}=$configfwdfw;} + my $config=$fwdfwsettings{'config'}; + my %hash=(); + #Get Red IP-ADDRESS + open (CONN1,"/var/ipfire/red/local-ipaddress"); + my $redip = <CONN1>; + close(CONN1); + if (! $fwdfwsettings{'RULE_ACTION'} && $fwdfwsettings{'POLICY'} eq 'MODE2'){ + $fwdfwsettings{'RULE_ACTION'}='DROP'; + }elsif(! $fwdfwsettings{'RULE_ACTION'} && $fwdfwsettings{'POLICY'} eq 'MODE1'){ + $fwdfwsettings{'RULE_ACTION'}='ACCEPT'; + } + $checked{'grp1'}{$fwdfwsettings{'grp1'}} = 'CHECKED'; + $checked{'grp2'}{$fwdfwsettings{'grp2'}} = 'CHECKED'; + $checked{'grp3'}{$fwdfwsettings{'grp3'}} = 'CHECKED'; + $checked{'USE_SRC_PORT'}{$fwdfwsettings{'USE_SRC_PORT'}} = 'CHECKED'; + $checked{'USESRV'}{$fwdfwsettings{'USESRV'}} = 'CHECKED'; + $checked{'ACTIVE'}{$fwdfwsettings{'ACTIVE'}} = 'CHECKED'; + $checked{'LOG'}{$fwdfwsettings{'LOG'}} = 'CHECKED'; + $checked{'TIME'}{$fwdfwsettings{'TIME'}} = 'CHECKED'; + $checked{'TIME_MON'}{$fwdfwsettings{'TIME_MON'}} = 'CHECKED'; + $checked{'TIME_TUE'}{$fwdfwsettings{'TIME_TUE'}} = 'CHECKED'; + $checked{'TIME_WED'}{$fwdfwsettings{'TIME_WED'}} = 'CHECKED'; + $checked{'TIME_THU'}{$fwdfwsettings{'TIME_THU'}} = 'CHECKED'; + $checked{'TIME_FRI'}{$fwdfwsettings{'TIME_FRI'}} = 'CHECKED'; + $checked{'TIME_SAT'}{$fwdfwsettings{'TIME_SAT'}} = 'CHECKED'; + $checked{'TIME_SUN'}{$fwdfwsettings{'TIME_SUN'}} = 'CHECKED'; + $checked{'USE_NAT'}{$fwdfwsettings{'USE_NAT'}} = 'CHECKED'; + $selected{'TIME_FROM'}{$fwdfwsettings{'TIME_FROM'}} = 'selected'; + $selected{'TIME_TO'}{$fwdfwsettings{'TIME_TO'}} = 'selected'; + $selected{'ipfire'}{$fwdfwsettings{$fwdfwsettings{'grp2'}}} ='selected'; + $selected{'ipfire_src'}{$fwdfwsettings{$fwdfwsettings{'grp1'}}} ='selected'; + #check if update and get values + if($fwdfwsettings{'updatefwrule'} eq 'on' || $fwdfwsettings{'copyfwrule'} eq 'on' && !$errormessage){ + &General::readhasharray("$config", %hash); + foreach my $key (sort keys %hash){ + $sum++; + if ($key eq $fwdfwsettings{'key'}){ + $fwdfwsettings{'oldrulenumber'} = $fwdfwsettings{'key'}; + $fwdfwsettings{'RULE_ACTION'} = $hash{$key}[0]; + $fwdfwsettings{'chain'} = $hash{$key}[1]; + $fwdfwsettings{'ACTIVE'} = $hash{$key}[2]; + $fwdfwsettings{'grp1'} = $hash{$key}[3]; + $fwdfwsettings{$fwdfwsettings{'grp1'}} = $hash{$key}[4]; + $fwdfwsettings{'grp2'} = $hash{$key}[5]; + $fwdfwsettings{$fwdfwsettings{'grp2'}} = $hash{$key}[6]; + $fwdfwsettings{'USE_SRC_PORT'} = $hash{$key}[7]; + $fwdfwsettings{'PROT'} = $hash{$key}[8]; + $fwdfwsettings{'ICMP_TYPES'} = $hash{$key}[9]; + $fwdfwsettings{'SRC_PORT'} = $hash{$key}[10]; + $fwdfwsettings{'USESRV'} = $hash{$key}[11]; + $fwdfwsettings{'TGT_PROT'} = $hash{$key}[12]; + $fwdfwsettings{'ICMP_TGT'} = $hash{$key}[13]; + $fwdfwsettings{'grp3'} = $hash{$key}[14]; + $fwdfwsettings{$fwdfwsettings{'grp3'}} = $hash{$key}[15]; + $fwdfwsettings{'ruleremark'} = $hash{$key}[16]; + $fwdfwsettings{'LOG'} = $hash{$key}[17]; + $fwdfwsettings{'TIME'} = $hash{$key}[18]; + $fwdfwsettings{'TIME_MON'} = $hash{$key}[19]; + $fwdfwsettings{'TIME_TUE'} = $hash{$key}[20]; + $fwdfwsettings{'TIME_WED'} = $hash{$key}[21]; + $fwdfwsettings{'TIME_THU'} = $hash{$key}[22]; + $fwdfwsettings{'TIME_FRI'} = $hash{$key}[23]; + $fwdfwsettings{'TIME_SAT'} = $hash{$key}[24]; + $fwdfwsettings{'TIME_SUN'} = $hash{$key}[25]; + $fwdfwsettings{'TIME_FROM'} = $hash{$key}[26]; + $fwdfwsettings{'TIME_TO'} = $hash{$key}[27]; + $fwdfwsettings{'USE_NAT'} = $hash{$key}[28]; + $fwdfwsettings{'nat'} = $hash{$key}[31]; #changed order + $fwdfwsettings{$fwdfwsettings{'nat'}} = $hash{$key}[29]; + $fwdfwsettings{'dnatport'} = $hash{$key}[30]; + $checked{'grp1'}{$fwdfwsettings{'grp1'}} = 'CHECKED'; + $checked{'grp2'}{$fwdfwsettings{'grp2'}} = 'CHECKED'; + $checked{'grp3'}{$fwdfwsettings{'grp3'}} = 'CHECKED'; + $checked{'USE_SRC_PORT'}{$fwdfwsettings{'USE_SRC_PORT'}} = 'CHECKED'; + $checked{'USESRV'}{$fwdfwsettings{'USESRV'}} = 'CHECKED'; + $checked{'ACTIVE'}{$fwdfwsettings{'ACTIVE'}} = 'CHECKED'; + $checked{'LOG'}{$fwdfwsettings{'LOG'}} = 'CHECKED'; + $checked{'TIME'}{$fwdfwsettings{'TIME'}} = 'CHECKED'; + $checked{'TIME_MON'}{$fwdfwsettings{'TIME_MON'}} = 'CHECKED'; + $checked{'TIME_TUE'}{$fwdfwsettings{'TIME_TUE'}} = 'CHECKED'; + $checked{'TIME_WED'}{$fwdfwsettings{'TIME_WED'}} = 'CHECKED'; + $checked{'TIME_THU'}{$fwdfwsettings{'TIME_THU'}} = 'CHECKED'; + $checked{'TIME_FRI'}{$fwdfwsettings{'TIME_FRI'}} = 'CHECKED'; + $checked{'TIME_SAT'}{$fwdfwsettings{'TIME_SAT'}} = 'CHECKED'; + $checked{'TIME_SUN'}{$fwdfwsettings{'TIME_SUN'}} = 'CHECKED'; + $checked{'USE_NAT'}{$fwdfwsettings{'USE_NAT'}} = 'CHECKED'; + $checked{'nat'}{$fwdfwsettings{'nat'}} = 'CHECKED'; + $selected{'TIME_FROM'}{$fwdfwsettings{'TIME_FROM'}} = 'selected'; + $selected{'TIME_TO'}{$fwdfwsettings{'TIME_TO'}} = 'selected'; + $selected{'ipfire'}{$fwdfwsettings{$fwdfwsettings{'grp2'}}} ='selected'; + $selected{'ipfire_src'}{$fwdfwsettings{$fwdfwsettings{'grp1'}}} ='selected'; + $selected{'dnat'}{$fwdfwsettings{'dnat'}} ='selected'; + } + } + $fwdfwsettings{'oldgrp1a'}=$fwdfwsettings{'grp1'}; + $fwdfwsettings{'oldgrp1b'}=$fwdfwsettings{$fwdfwsettings{'grp1'}}; + $fwdfwsettings{'oldgrp2a'}=$fwdfwsettings{'grp2'}; + $fwdfwsettings{'oldgrp2b'}=$fwdfwsettings{$fwdfwsettings{'grp2'}}; + $fwdfwsettings{'oldgrp3a'}=$fwdfwsettings{'grp3'}; + $fwdfwsettings{'oldgrp3b'}=$fwdfwsettings{$fwdfwsettings{'grp3'}}; + $fwdfwsettings{'oldusesrv'}=$fwdfwsettings{'USESRV'}; + $fwdfwsettings{'oldruleremark'}=$fwdfwsettings{'ruleremark'}; + $fwdfwsettings{'oldnat'}=$fwdfwsettings{'USE_NAT'}; + $fwdfwsettings{'oldruletype'}=$fwdfwsettings{'chain'}; + #check if manual ip (source) is orange network + if ($fwdfwsettings{'grp1'} eq 'src_addr'){ + my ($sip,$scidr) = split("/",$fwdfwsettings{$fwdfwsettings{'grp1'}}); + if ( &General::IpInSubnet($sip,$netsettings{'ORANGE_ADDRESS'},$netsettings{'ORANGE_NETMASK'})){ + $fwdfwsettings{'oldorange'} ='on'; + } + } + }else{ + $fwdfwsettings{'ACTIVE'}='ON'; + $fwdfwsettings{'nat'} = 'dnat'; + $checked{'ACTIVE'}{$fwdfwsettings{'ACTIVE'}} = 'CHECKED'; + $checked{'nat'}{$fwdfwsettings{'nat'}} = 'CHECKED'; + $fwdfwsettings{'oldgrp1a'}=$fwdfwsettings{'grp1'}; + $fwdfwsettings{'oldgrp1b'}=$fwdfwsettings{$fwdfwsettings{'grp1'}}; + $fwdfwsettings{'oldgrp2a'}=$fwdfwsettings{'grp2'}; + $fwdfwsettings{'oldgrp2b'}=$fwdfwsettings{$fwdfwsettings{'grp2'}}; + $fwdfwsettings{'oldgrp3a'}=$fwdfwsettings{'grp3'}; + $fwdfwsettings{'oldgrp3b'}=$fwdfwsettings{$fwdfwsettings{'grp3'}}; + $fwdfwsettings{'oldusesrv'}=$fwdfwsettings{'USESRV'}; + $fwdfwsettings{'oldruleremark'}=$fwdfwsettings{'ruleremark'}; + $fwdfwsettings{'oldnat'}=$fwdfwsettings{'USE_NAT'}; + #check if manual ip (source) is orange network + if ($fwdfwsettings{'grp1'} eq 'src_addr'){ + my ($sip,$scidr) = split("/",$fwdfwsettings{$fwdfwsettings{'grp1'}}); + if ( &General::IpInSubnet($sip,$netsettings{'ORANGE_ADDRESS'},$netsettings{'ORANGE_NETMASK'})){ + $fwdfwsettings{'oldorange'} ='on'; + } + } + } + # Split manual source and target address and delete the subnet + my ($sip,$scidr) = split("/",$fwdfwsettings{$fwdfwsettings{'grp1'}}); + if ($scidr eq '32'){$fwdfwsettings{$fwdfwsettings{'grp1'}}=$sip;} + my ($dip,$dcidr) = split("/",$fwdfwsettings{$fwdfwsettings{'grp2'}}); + if ($dcidr eq '32'){$fwdfwsettings{$fwdfwsettings{'grp2'}}=$dip;} + &Header::openbox('100%', 'left', $Lang::tr{'fwdfw source'}); + #------SOURCE------------------------------------------------------- + print "<form method='post'>"; + print<<END; + <table width='100%' border='0'> + <tr><td width='1%'><input type='radio' name='grp1' value='src_addr' checked></td><td width='60%'>$Lang::tr{'fwdfw sourceip'}<input type='TEXT' name='src_addr' value='$fwdfwsettings{'src_addr'}' size='16' maxlength='18' ></td><td width='1%'><input type='radio' name='grp1' id='ipfire_src' value='ipfire_src' $checked{'grp1'}{'ipfire_src'}></td><td><b>Firewall</b></td> +END + print"<td align='right'><select name='ipfire_src' style='width:200px;'>"; + print "<option value='ALL' $selected{'ipfire_src'}{'ALL'}>$Lang::tr{'all'}</option>"; + print "<option value='GREEN' $selected{'ipfire_src'}{'GREEN'}>$Lang::tr{'green'} ($ifaces{'GREEN_ADDRESS'})</option>" if $ifaces{'GREEN_ADDRESS'}; + print "<option value='ORANGE' $selected{'ipfire_src'}{'ORANGE'}>$Lang::tr{'orange'} ($ifaces{'ORANGE_ADDRESS'})</option>" if (&Header::orange_used()); + print "<option value='BLUE' $selected{'ipfire_src'}{'BLUE'}>$Lang::tr{'blue'} ($ifaces{'BLUE_ADDRESS'})</option>" if (&Header::blue_used()); + print "<option value='RED1' $selected{'ipfire_src'}{'RED1'}>$Lang::tr{'red1'} ($redip)" if ($redip); + if (! -z "${General::swroot}/ethernet/aliases"){ + foreach my $alias (sort keys %aliases) + { + print "<option value='$alias' $selected{'ipfire'}{$alias}>$alias</option>"; + } + } + print<<END; + </select></td></tr> + <tr><td><br></td></tr> + </table> +END + &gen_dd_block('src','grp1'); + &Header::closebox(); + + #---SNAT / DNAT ------------------------------------------------ + &Header::openbox('100%', 'left', 'NAT'); + print<<END; + <label> + <input type='checkbox' name='USE_NAT' id='USE_NAT' value="ON" $checked{'USE_NAT'}{'ON'}> + $Lang::tr{'fwdfw use nat'} + </label> + <div class="NAT"> + <table width='100%' border='0'> + <tr> + <td width='5%'></td> + <td width='40%'> + <label> + <input type='radio' name='nat' value='dnat' $checked{'nat'}{'dnat'}> + $Lang::tr{'fwdfw dnat'} + </label> + </td> +END + + print <<END; + <td width='25%' align='right'>$Lang::tr{'dnat address'}:</td> + <td width='30%'> + <select name='dnat' style='width: 100%;'> + <option value='AUTO' $selected{'dnat'}{'AUTO'}>- $Lang::tr{'automatic'} -</option> + <option value='Default IP' $selected{'dnat'}{'Default IP'}>$Lang::tr{'red1'} ($redip)</option> +END + if (%aliases) { + foreach my $alias (sort keys %aliases) { + print "<option value='$alias' $selected{'dnat'}{$alias}>$alias ($aliases{$alias}{'IPT'})</option>"; + } + } + #DNAT Dropdown + foreach my $network (sort keys %defaultNetworks) + { + if ($defaultNetworks{$network}{'NAME'} eq 'BLUE'||$defaultNetworks{$network}{'NAME'} eq 'GREEN' ||$defaultNetworks{$network}{'NAME'} eq 'ORANGE'){ + print "<option value='$defaultNetworks{$network}{'NAME'}'"; + print " selected='selected'" if ($fwdfwsettings{'dnat'} eq $defaultNetworks{$network}{'NAME'}); + print ">$network ($defaultNetworks{$network}{'NET'})</option>"; + } + } + print "</select>"; + print "</tr>"; + + #SNAT + print <<END; + <tr> + <td width='5%'></td> + <td width='40%'> + <label> + <input type='radio' name='nat' value='snat' $checked{'nat'}{'snat'}> + $Lang::tr{'fwdfw snat'} + </label> + </td> + <td width='25%' align='right'>$Lang::tr{'snat new source ip address'}:</td> + <td width='30%'> + <select name='snat' style='width: 100%;'> +END + + foreach my $alias (sort keys %aliases) { + print "<option value='$alias' $selected{'snat'}{$alias}>$alias ($aliases{$alias}{'IPT'})</option>"; + } + # SNAT Dropdown + foreach my $network (sort keys %defaultNetworks) { + if ($defaultNetworks{$network}{'NAME'} eq 'BLUE'||$defaultNetworks{$network}{'NAME'} eq 'GREEN' ||$defaultNetworks{$network}{'NAME'} eq 'ORANGE'){ + print "<option value='$defaultNetworks{$network}{'NAME'}'"; + print " selected='selected'" if ($fwdfwsettings{'snat'} eq $defaultNetworks{$network}{'NAME'}); + print ">$network ($defaultNetworks{$network}{'NET'})</option>"; + } + } + print <<END; + </select> + </td> + </tr> + </table> + </div> +END + &Header::closebox(); + + #---TARGET------------------------------------------------------ + &Header::openbox('100%', 'left', $Lang::tr{'fwdfw target'}); + print<<END; + <table width='100%' border='0'> + <tr><td width='1%'><input type='radio' name='grp2' value='tgt_addr' checked></td><td width='60%' nowrap='nowrap'>$Lang::tr{'fwdfw targetip'}<input type='TEXT' name='tgt_addr' value='$fwdfwsettings{'tgt_addr'}' size='16' maxlength='18'><td width='1%'><input type='radio' name='grp2' id='ipfire' value='ipfire' $checked{'grp2'}{'ipfire'}></td><td><b>Firewall</b></td> +END + print"<td align='right'><select name='ipfire' style='width:200px;'>"; + print "<option value='ALL' $selected{'ipfire'}{'ALL'}>$Lang::tr{'all'}</option>"; + print "<option value='GREEN' $selected{'ipfire'}{'GREEN'}>$Lang::tr{'green'} ($ifaces{'GREEN_ADDRESS'})</option>" if $ifaces{'GREEN_ADDRESS'}; + print "<option value='ORANGE' $selected{'ipfire'}{'ORANGE'}>$Lang::tr{'orange'} ($ifaces{'ORANGE_ADDRESS'})</option>" if (&Header::orange_used()); + print "<option value='BLUE' $selected{'ipfire'}{'BLUE'}>$Lang::tr{'blue'} ($ifaces{'BLUE_ADDRESS'})</option>"if (&Header::blue_used()); + print "<option value='RED1' $selected{'ipfire'}{'RED1'}>$Lang::tr{'red1'} ($redip)" if ($redip); + if (! -z "${General::swroot}/ethernet/aliases"){ + foreach my $alias (sort keys %aliases) + { + print "<option value='$alias' $selected{'ipfire'}{$alias}>$alias</option>"; + } + } + print<<END; + </select></td></tr> + <tr><td><br></td></tr></table> +END + &gen_dd_block('tgt','grp2'); + &Header::closebox; + #---PROTOCOL------------------------------------------------------ + $fwdfwsettings{'SRC_PORT'} =~ s/|/,/g; + $fwdfwsettings{'TGT_PORT'} =~ s/|/,/g; + $fwdfwsettings{'dnatport'} =~ tr/|/,/; + + # The dnatport may be empty, if it matches TGT_PORT + if ($fwdfwsettings{'dnatport'} eq $fwdfwsettings{'TGT_PORT'}) { + $fwdfwsettings{'dnatport'} = ""; + } + + &Header::openbox('100%', 'left', $Lang::tr{'fwhost prot'}); + #Fix Protocol for JQuery + if ($fwdfwsettings{'grp3'} eq 'cust_srv' || $fwdfwsettings{'grp3'} eq 'cust_srvgrp'){ + $fwdfwsettings{'PROT'} = 'template'; + } + print<<END; + <table width='100%' border='0'> + <tr> + <td width="25%"> + <select name='PROT' id='protocol' style="width: 95px;"> +END + print "<option value="""; + if ($fwdfwsettings{'PROT'} eq '') { + print " selected="selected""; + } + print ">$Lang::tr{'all'}</option>"; + + print "<option value="template""; + print " selected="selected"" if ($fwdfwsettings{'grp3'} eq 'cust_srv' || $fwdfwsettings{'grp3'} eq 'cust_srvgrp'); + print ">- $Lang::tr{'template'} -</option>"; + + foreach (@PROTOCOLS) { + print"<option value="$_""; + if ($_ eq $fwdfwsettings{'PROT'}) { + print " selected="selected""; + } + if($_ eq "IPv6"){ + print ">$Lang::tr{'fwdfw prot41'}</option>"; + }else{ + print ">$_</option>"; + } + } + + print<<END; + </select> + </td> + <td width="75%"> + <table width='100%' border='0' id="PROTOCOL_ICMP_TYPES"> + <tr> + <td width='20%'>$Lang::tr{'fwhost icmptype'}</td> + <td colspan='2'> + <select name='ICMP_TYPES' style='min-width:230px;'> +END + &General::readhasharray("${General::swroot}/fwhosts/icmp-types", %icmptypes); + print"<option value='All ICMP-Types'>$Lang::tr{'fwdfw all icmp'}</option>"; + foreach my $key (sort { ncmp($icmptypes{$a}[0],$icmptypes{$b}[0]) }keys %icmptypes){ + if($fwdfwsettings{'ICMP_TYPES'} eq "$icmptypes{$key}[0]"){ + print"<option selected>$icmptypes{$key}[0] ($icmptypes{$key}[1])</option>"; + }else{ + print"<option>$icmptypes{$key}[0] ($icmptypes{$key}[1])</option>"; + } + } + + print <<END; + </select> + </td> + </tr> + </table> + + <table width="100%" border="0" id="PROTOCOL_PORTS"> + <tr> + <!-- #SOURCEPORT --> + <td> + $Lang::tr{'fwdfw use srcport'} + </td> + <td> + <input type='text' name='SRC_PORT' value='$fwdfwsettings{'SRC_PORT'}' maxlength='20' size='18'> + </td> + <td width='10%'> + </td> + + <!-- #TARGETPORT --> + <td> + $Lang::tr{'fwdfw use srv'} + </td> + + <td> + <input type='text' name='TGT_PORT' value='$fwdfwsettings{'TGT_PORT'}' maxlength='20' size='18'> + </td> + </tr> + <tr class="NAT"> + <td colspan='3'></td> + <td>$Lang::tr{'fwdfw external port nat'}:</td> + <td> + <input type='text' name='dnatport' value="$fwdfwsettings{'dnatport'}" maxlength='20' size='18'> + </td> + </tr> + </table> + + <table width="100%" border="0" id="PROTOCOL_TEMPLATE"> + <tr> + <td> + <input type='radio' name='grp3' id='cust_srv' value='cust_srv' checked> + $Lang::tr{'fwhost cust service'} + </td> + <td> + <select name='cust_srv' style='min-width: 230px;'> +END + + &General::readhasharray("$configsrv", %customservice); + foreach my $key (sort { ncmp($customservice{$a}[0],$customservice{$b}[0]) } keys %customservice){ + print"<option "; + print"selected='selected'" if ($fwdfwsettings{$fwdfwsettings{'grp3'}} eq $customservice{$key}[0]); + print"value='$customservice{$key}[0]'>$customservice{$key}[0]</option>"; + } + + print <<END; + </select> + </td> + </tr> + <tr> + <td> + <input type='radio' name='grp3' id='cust_srvgrp' value='cust_srvgrp' $checked{'grp3'}{'cust_srvgrp'}> + $Lang::tr{'fwhost cust srvgrp'} + </td> + <td> + <select name='cust_srvgrp' style='min-width:230px;'> +END + + &General::readhasharray("$configsrvgrp", %customservicegrp); + my $helper; + foreach my $key (sort { ncmp($customservicegrp{$a}[0],$customservicegrp{$b}[0]) } keys %customservicegrp){ + if ($helper ne $customservicegrp{$key}[0] && $customservicegrp{$key}[2] ne 'none'){ + print"<option "; + print"selected='selected'" if ($fwdfwsettings{$fwdfwsettings{'grp3'}} eq $customservicegrp{$key}[0]); + print">$customservicegrp{$key}[0]</option>"; + } + $helper=$customservicegrp{$key}[0]; + } + + print<<END; + </select> + </td> + </tr> + </table> + </td> + </tr> + </table> +END + + &Header::closebox; + $checked{"RULE_ACTION"}{$fwdfwsettings{'RULE_ACTION'}} = 'CHECKED'; + print <<END; + <center> + <table width="80%" class='tbl' id='actions'> + <tr> + <td width="33%" align="center" bgcolor="$color{'color17'}"> + <br> + </td> + <td width="33%" align="center" bgcolor="$color{'color25'}"> + <br> + </td> + <td width="33%" align="center" bgcolor="$color{'color16'}"> + <br> + </td> + </tr> + <tr> + <td width="33%" align="center"> + <label> + <input type="radio" name="RULE_ACTION" value="ACCEPT" $checked{"RULE_ACTION"}{"ACCEPT"}> + <strong>$Lang::tr{'fwdfw ACCEPT'}</strong> + </label> + </td> + <td width="33%" align="center"> + <label> + <input type="radio" name="RULE_ACTION" value="DROP" $checked{"RULE_ACTION"}{"DROP"}> + <strong>$Lang::tr{'fwdfw DROP'}</strong> + </label> + </td> + <td width="33%" align="center"> + <label> + <input type="radio" name="RULE_ACTION" value="REJECT" $checked{"RULE_ACTION"}{"REJECT"}> + <strong>$Lang::tr{'fwdfw REJECT'}</strong> + </label> + </td> + </tr> + </table> + </center> + + <br> +END + #---Activate/logging/remark------------------------------------- + &Header::openbox('100%', 'left', $Lang::tr{'fwdfw additional'}); + print<<END; + <table width='100%' border='0'> +END + print"<tr><td width='12%'>$Lang::tr{'remark'}:</td><td width='88%' align='left'><input type='text' name='ruleremark' maxlength='255' value='$fwdfwsettings{'ruleremark'}' style='width:99%;'></td></tr>"; + if($fwdfwsettings{'updatefwrule'} eq 'on' || $fwdfwsettings{'copyfwrule'} eq 'on'){ + print "<tr><td width='12%'>$Lang::tr{'fwdfw rulepos'}:</td><td><select name='rulepos' >"; + for (my $count =1; $count <= $sum; $count++){ + print"<option value='$count' "; + print"selected='selected'" if($fwdfwsettings{'oldrulenumber'} eq $count); + print">$count</option>"; + } + print"</select></td></tr>"; + }else{ + print "<tr><td width='12%'>$Lang::tr{'fwdfw rulepos'}:</td><td><input type='text' name='rulepos' size='2'></td></tr>"; + } + + print<<END; + </table> + <table width='100%'> + <tr> +END + + if ($fwdfwsettings{'updatefwrule'} eq 'on') { + print <<END; + <td> + <input type='checkbox' name='ACTIVE' value="ON" $checked{'ACTIVE'}{'ON'}> + </td> + <td>$Lang::tr{'fwdfw rule activate'}</td> +END + } else { + print <<END; + <td colspan="2"> + <input type="hidden" name="ACTIVE" value="ON"> + </td> +END + } + + print <<END; + </tr> + <tr> + <td> + <input type='checkbox' name='LOG' value='ON' $checked{'LOG'}{'ON'}> + </td> + <td>$Lang::tr{'fwdfw log rule'}</td> + </tr> + <tr> + <td width='1%'> + <input type='checkbox' name='TIME' id="USE_TIME_CONSTRAINTS" value='ON' $checked{'TIME'}{'ON'}> + </td> + <td>$Lang::tr{'fwdfw timeframe'}</td> + </tr> + <tr id="TIME_CONSTRAINTS"> + <td colspan="2"> + <table width="66%" border="0"> + <tr> + <td width="8em"> </td> + <td align="center">$Lang::tr{'advproxy monday'}</td> + <td align="center">$Lang::tr{'advproxy tuesday'}</td> + <td align="center">$Lang::tr{'advproxy wednesday'}</td> + <td align="center">$Lang::tr{'advproxy thursday'}</td> + <td align="center">$Lang::tr{'advproxy friday'}</td> + <td align="center">$Lang::tr{'advproxy saturday'}</td> + <td align="center">$Lang::tr{'advproxy sunday'}</td> + <td> </td> + </tr> + <tr> + <td width="8em"> </td> + <td align="center"><input type='checkbox' name='TIME_MON' value='on' $checked{'TIME_MON'}{'on'} ></td> + <td align="center"><input type='checkbox' name='TIME_TUE' value='on' $checked{'TIME_TUE'}{'on'} ></td> + <td align="center"><input type='checkbox' name='TIME_WED' value='on' $checked{'TIME_WED'}{'on'} ></td> + <td align="center"><input type='checkbox' name='TIME_THU' value='on' $checked{'TIME_THU'}{'on'} ></td> + <td align="center"><input type='checkbox' name='TIME_FRI' value='on' $checked{'TIME_FRI'}{'on'} ></td> + <td align="center"><input type='checkbox' name='TIME_SAT' value='on' $checked{'TIME_SAT'}{'on'} ></td> + <td align="center"><input type='checkbox' name='TIME_SUN' value='on' $checked{'TIME_SUN'}{'on'} ></td> + <td> + <select name='TIME_FROM'> +END + for (my $i=0;$i<=23;$i++) { + $i = sprintf("%02s",$i); + for (my $j=0;$j<=45;$j+=15) { + $j = sprintf("%02s",$j); + my $time = $i.":".$j; + print "<option $selected{'TIME_FROM'}{$time}>$i:$j</option>\n"; + } + } + print<<END; + </select> ‐ + <select name='TIME_TO'> +END + for (my $i=0;$i<=23;$i++) { + $i = sprintf("%02s",$i); + for (my $j=0;$j<=45;$j+=15) { + $j = sprintf("%02s",$j); + my $time = $i.":".$j; + print "<option $selected{'TIME_TO'}{$time}>$i:$j</option>\n"; + } + } + print<<END; + </select> + </td> + </tr> + </table> + </td> + </tr> + </table> + <br> +END + + #---ACTION------------------------------------------------------ + if($fwdfwsettings{'updatefwrule'} ne 'on'){ + print<<END; + <table border='0' width='100%'> + <tr><td align='right'><input type='submit' value='$Lang::tr{'add'}' style='min-width:100px;' /> + <input type='hidden' name='config' value='$config' > + <input type='hidden' name='ACTION' value='saverule' ></form> + <form method='post' style='display:inline;'><input type='submit' value='$Lang::tr{'fwhost back'}' style='min-width:100px;'><input type='hidden' name='ACTION' value='reset'></form></td></tr> + </table> + <br> +END + }else{ + print<<END; + <table border='0' width='100%'> + <tr><td align='right'><input type='submit' value='$Lang::tr{'fwdfw change'}' style='min-width:100px;' /><input type='hidden' name='updatefwrule' value='$fwdfwsettings{'updatefwrule'}'><input type='hidden' name='key' value='$fwdfwsettings{'key'}'> + <input type='hidden' name='oldgrp1a' value='$fwdfwsettings{'oldgrp1a'}' /> + <input type='hidden' name='oldgrp1b' value='$fwdfwsettings{'oldgrp1b'}' /> + <input type='hidden' name='oldgrp2a' value='$fwdfwsettings{'oldgrp2a'}' /> + <input type='hidden' name='oldgrp2b' value='$fwdfwsettings{'oldgrp2b'}' /> + <input type='hidden' name='oldgrp3a' value='$fwdfwsettings{'oldgrp3a'}' /> + <input type='hidden' name='oldgrp3b' value='$fwdfwsettings{'oldgrp3b'}' /> + <input type='hidden' name='oldusesrv' value='$fwdfwsettings{'oldusesrv'}' /> + <input type='hidden' name='oldrulenumber' value='$fwdfwsettings{'oldrulenumber'}' /> + <input type='hidden' name='rulenumber' value='$fwdfwsettings{'rulepos'}' /> + <input type='hidden' name='oldruleremark' value='$fwdfwsettings{'oldruleremark'}' /> + <input type='hidden' name='oldorange' value='$fwdfwsettings{'oldorange'}' /> + <input type='hidden' name='oldnat' value='$fwdfwsettings{'oldnat'}' /> + <input type='hidden' name='oldruletype' value='$fwdfwsettings{'oldruletype'}' /> + <input type='hidden' name='ACTION' value='saverule' ></form><form method='post' style='display:inline'><input type='submit' value='$Lang::tr{'fwhost back'}' style='min-width:100px;'><input type='hidden' name='ACTION' value'reset'></td></td> + </table></form> +END + } + &Header::closebox(); +} +sub pos_up +{ + my %uphash=(); + my %tmp=(); + &General::readhasharray($fwdfwsettings{'config'}, %uphash); + foreach my $key (sort keys %uphash){ + if ($key eq $fwdfwsettings{'key'}) { + my $last = $key -1; + if (exists $uphash{$last}){ + #save rule last + foreach my $y (0 .. $#{$uphash{$last}}) { + $tmp{0}[$y] = $uphash{$last}[$y]; + } + #copy active rule to last + foreach my $i (0 .. $#{$uphash{$last}}) { + $uphash{$last}[$i] = $uphash{$key}[$i]; + } + #copy saved rule to actual position + foreach my $x (0 .. $#{$tmp{0}}) { + $uphash{$key}[$x] = $tmp{0}[$x]; + } + } + } + } + &General::writehasharray($fwdfwsettings{'config'}, %uphash); + &General::firewall_config_changed(); +} +sub pos_down +{ + my %downhash=(); + my %tmp=(); + &General::readhasharray($fwdfwsettings{'config'}, %downhash); + foreach my $key (sort keys %downhash){ + if ($key eq $fwdfwsettings{'key'}) { + my $next = $key + 1; + if (exists $downhash{$next}){ + #save rule next + foreach my $y (0 .. $#{$downhash{$next}}) { + $tmp{0}[$y] = $downhash{$next}[$y]; + } + #copy active rule to next + foreach my $i (0 .. $#{$downhash{$next}}) { + $downhash{$next}[$i] = $downhash{$key}[$i]; + } + #copy saved rule to actual position + foreach my $x (0 .. $#{$tmp{0}}) { + $downhash{$key}[$x] = $tmp{0}[$x]; + } + } + } + } + &General::writehasharray($fwdfwsettings{'config'}, %downhash); + &General::firewall_config_changed(); +} +sub saverule +{ + my $hash=shift; + my $config=shift; + &General::readhasharray("$config", $hash); + if (!$errormessage){ + ################################################################ + #check if we change an INPUT rule to a OUTGOING + if($fwdfwsettings{'oldruletype'} eq 'INPUTFW' && $fwdfwsettings{'chain'} eq 'OUTGOINGFW' ){ + &changerule($configinput); + #print"1"; + } + #check if we change an INPUT rule to a FORWARD + elsif($fwdfwsettings{'oldruletype'} eq 'INPUTFW' && $fwdfwsettings{'chain'} eq 'FORWARDFW' ){ + &changerule($configinput); + #print"2"; + } + ################################################################ + #check if we change an OUTGOING rule to an INPUT + elsif($fwdfwsettings{'oldruletype'} eq 'OUTGOINGFW' && $fwdfwsettings{'chain'} eq 'INPUTFW' ){ + &changerule($configoutgoing); + #print"3"; + } + #check if we change an OUTGOING rule to a FORWARD + elsif($fwdfwsettings{'oldruletype'} eq 'OUTGOINGFW' && $fwdfwsettings{'chain'} eq 'FORWARDFW' ){ + &changerule($configoutgoing); + #print"4"; + } + ################################################################ + #check if we change a FORWARD rule to an INPUT + elsif($fwdfwsettings{'oldruletype'} eq 'FORWARDFW' && $fwdfwsettings{'chain'} eq 'INPUTFW'){ + &changerule($configfwdfw); + #print"5"; + } + #check if we change a FORWARD rule to an OUTGOING + elsif($fwdfwsettings{'oldruletype'} eq 'FORWARDFW' && $fwdfwsettings{'chain'} eq 'OUTGOINGFW'){ + &changerule($configfwdfw); + #print"6"; + } + $fwdfwsettings{'ruleremark'}=~ s/,/;/g; + utf8::decode($fwdfwsettings{'ruleremark'}); + $fwdfwsettings{'ruleremark'}=&Header::escape($fwdfwsettings{'ruleremark'}); + if ($fwdfwsettings{'updatefwrule'} ne 'on'){ + my $key = &General::findhasharraykey ($hash); + $$hash{$key}[0] = $fwdfwsettings{'RULE_ACTION'}; + $$hash{$key}[1] = $fwdfwsettings{'chain'}; + $$hash{$key}[2] = $fwdfwsettings{'ACTIVE'}; + $$hash{$key}[3] = $fwdfwsettings{'grp1'}; + $$hash{$key}[4] = $fwdfwsettings{$fwdfwsettings{'grp1'}}; + $$hash{$key}[5] = $fwdfwsettings{'grp2'}; + $$hash{$key}[6] = $fwdfwsettings{$fwdfwsettings{'grp2'}}; + $$hash{$key}[7] = $fwdfwsettings{'USE_SRC_PORT'}; + $$hash{$key}[8] = $fwdfwsettings{'PROT'}; + $$hash{$key}[9] = $fwdfwsettings{'ICMP_TYPES'}; + $$hash{$key}[10] = $fwdfwsettings{'SRC_PORT'}; + $$hash{$key}[11] = $fwdfwsettings{'USESRV'}; + $$hash{$key}[12] = $fwdfwsettings{'TGT_PROT'}; + $$hash{$key}[13] = $fwdfwsettings{'ICMP_TGT'}; + $$hash{$key}[14] = $fwdfwsettings{'grp3'}; + $$hash{$key}[15] = $fwdfwsettings{$fwdfwsettings{'grp3'}}; + $$hash{$key}[16] = $fwdfwsettings{'ruleremark'}; + $$hash{$key}[17] = $fwdfwsettings{'LOG'}; + $$hash{$key}[18] = $fwdfwsettings{'TIME'}; + $$hash{$key}[19] = $fwdfwsettings{'TIME_MON'}; + $$hash{$key}[20] = $fwdfwsettings{'TIME_TUE'}; + $$hash{$key}[21] = $fwdfwsettings{'TIME_WED'}; + $$hash{$key}[22] = $fwdfwsettings{'TIME_THU'}; + $$hash{$key}[23] = $fwdfwsettings{'TIME_FRI'}; + $$hash{$key}[24] = $fwdfwsettings{'TIME_SAT'}; + $$hash{$key}[25] = $fwdfwsettings{'TIME_SUN'}; + $$hash{$key}[26] = $fwdfwsettings{'TIME_FROM'}; + $$hash{$key}[27] = $fwdfwsettings{'TIME_TO'}; + $$hash{$key}[28] = $fwdfwsettings{'USE_NAT'}; + $$hash{$key}[29] = $fwdfwsettings{$fwdfwsettings{'nat'}}; + $$hash{$key}[30] = $fwdfwsettings{'dnatport'}; + $$hash{$key}[31] = $fwdfwsettings{'nat'}; + &General::writehasharray("$config", $hash); + }else{ + foreach my $key (sort {$a <=> $b} keys %$hash){ + if($key eq $fwdfwsettings{'key'}){ + $$hash{$key}[0] = $fwdfwsettings{'RULE_ACTION'}; + $$hash{$key}[1] = $fwdfwsettings{'chain'}; + $$hash{$key}[2] = $fwdfwsettings{'ACTIVE'}; + $$hash{$key}[3] = $fwdfwsettings{'grp1'}; + $$hash{$key}[4] = $fwdfwsettings{$fwdfwsettings{'grp1'}}; + $$hash{$key}[5] = $fwdfwsettings{'grp2'}; + $$hash{$key}[6] = $fwdfwsettings{$fwdfwsettings{'grp2'}}; + $$hash{$key}[7] = $fwdfwsettings{'USE_SRC_PORT'}; + $$hash{$key}[8] = $fwdfwsettings{'PROT'}; + $$hash{$key}[9] = $fwdfwsettings{'ICMP_TYPES'}; + $$hash{$key}[10] = $fwdfwsettings{'SRC_PORT'}; + $$hash{$key}[11] = $fwdfwsettings{'USESRV'}; + $$hash{$key}[12] = $fwdfwsettings{'TGT_PROT'}; + $$hash{$key}[13] = $fwdfwsettings{'ICMP_TGT'}; + $$hash{$key}[14] = $fwdfwsettings{'grp3'}; + $$hash{$key}[15] = $fwdfwsettings{$fwdfwsettings{'grp3'}}; + $$hash{$key}[16] = $fwdfwsettings{'ruleremark'}; + $$hash{$key}[17] = $fwdfwsettings{'LOG'}; + $$hash{$key}[18] = $fwdfwsettings{'TIME'}; + $$hash{$key}[19] = $fwdfwsettings{'TIME_MON'}; + $$hash{$key}[20] = $fwdfwsettings{'TIME_TUE'}; + $$hash{$key}[21] = $fwdfwsettings{'TIME_WED'}; + $$hash{$key}[22] = $fwdfwsettings{'TIME_THU'}; + $$hash{$key}[23] = $fwdfwsettings{'TIME_FRI'}; + $$hash{$key}[24] = $fwdfwsettings{'TIME_SAT'}; + $$hash{$key}[25] = $fwdfwsettings{'TIME_SUN'}; + $$hash{$key}[26] = $fwdfwsettings{'TIME_FROM'}; + $$hash{$key}[27] = $fwdfwsettings{'TIME_TO'}; + $$hash{$key}[28] = $fwdfwsettings{'USE_NAT'}; + $$hash{$key}[29] = $fwdfwsettings{$fwdfwsettings{'nat'}}; + $$hash{$key}[30] = $fwdfwsettings{'dnatport'}; + $$hash{$key}[31] = $fwdfwsettings{'nat'}; + last; + } + } + } + &General::writehasharray("$config", $hash); + if($fwdfwsettings{'oldrulenumber'} > $fwdfwsettings{'rulepos'}){ + my %tmp=(); + my $val=$fwdfwsettings{'oldrulenumber'}-$fwdfwsettings{'rulepos'}; + for (my $z=0;$z<$val;$z++){ + foreach my $key (sort {$a <=> $b} keys %$hash){ + if ($key eq $fwdfwsettings{'oldrulenumber'}) { + my $last = $key -1; + if (exists $$hash{$last}){ + #save rule last + foreach my $y (0 .. $#{$$hash{$last}}) { + $tmp{0}[$y] = $$hash{$last}[$y]; + } + #copy active rule to last + foreach my $i (0 .. $#{$$hash{$last}}) { + $$hash{$last}[$i] = $$hash{$key}[$i]; + } + #copy saved rule to actual position + foreach my $x (0 .. $#{$tmp{0}}) { + $$hash{$key}[$x] = $tmp{0}[$x]; + } + } + } + } + $fwdfwsettings{'oldrulenumber'}--; + } + &General::writehasharray("$config", $hash); + &General::firewall_config_changed(); + }elsif($fwdfwsettings{'rulepos'} > $fwdfwsettings{'oldrulenumber'}){ + my %tmp=(); + my $val=$fwdfwsettings{'rulepos'}-$fwdfwsettings{'oldrulenumber'}; + for (my $z=0;$z<$val;$z++){ + foreach my $key (sort {$a <=> $b} keys %$hash){ + if ($key eq $fwdfwsettings{'oldrulenumber'}) { + my $next = $key + 1; + if (exists $$hash{$next}){ + #save rule next + foreach my $y (0 .. $#{$$hash{$next}}) { + $tmp{0}[$y] = $$hash{$next}[$y]; + } + #copy active rule to next + foreach my $i (0 .. $#{$$hash{$next}}) { + $$hash{$next}[$i] = $$hash{$key}[$i]; + } + #copy saved rule to actual position + foreach my $x (0 .. $#{$tmp{0}}) { + $$hash{$key}[$x] = $tmp{0}[$x]; + } + } + } + } + $fwdfwsettings{'oldrulenumber'}++; + } + &General::writehasharray("$config", $hash); + &General::firewall_config_changed(); + } + } +} +sub validremark +{ + # Checks a hostname against RFC1035 + my $remark = $_[0]; + + # Try to decode $remark into UTF-8. If this doesn't work, + # we assume that the string it not sane. + if (!utf8::decode($remark)) { + return 0; + } + + # Check if the string only contains of printable characters. + if ($remark =~ /^[[:print:]]*$/) { + return 1; + } + return 0; +} +sub viewtablerule +{ + &General::readhash("/var/ipfire/ethernet/settings", %netsettings); + + &viewtablenew(%configfwdfw, $configfwdfw, $Lang::tr{'firewall rules'}); + &viewtablenew(%configinputfw, $configinput, $Lang::tr{'external access'}); + &viewtablenew(%configoutgoingfw, $configoutgoing, $Lang::tr{'outgoing firewall'}); +} +sub viewtablenew +{ + my $hash=shift; + my $config=shift; + my $title=shift; + my $go=''; + + my $show_box = (! -z $config) || ($optionsfw{'SHOWTABLES'} eq 'on'); + return if (!$show_box); + + &General::get_aliases(%aliases); + &General::readhasharray("$confighost", %customhost); + &General::readhasharray("$config", $hash); + &General::readhasharray("$configccdnet", %ccdnet); + &General::readhasharray("$configccdhost", %ccdhost); + &General::readhasharray("$configgrp", %customgrp); + &General::readhasharray("$configsrvgrp", %customservicegrp); + + &Header::openbox('100%', 'left', $title); + print "<table width='100%' cellspacing='0' class='tbl'>"; + + if (! -z $config) { + my $count=0; + my ($gif,$log); + my $ruletype; + my $rulecolor; + my $tooltip; + my @tmpsrc=(); + my @tmptgt=(); + my $coloryellow=''; + + print <<END; + <tr> + <th align='right' width='3%'> + # + </th> + <th width='2%'></th> + <th align='center'> + <b>$Lang::tr{'protocol'}</b> + </th> + <th align='center' width='30%'> + <b>$Lang::tr{'fwdfw source'}</b> + </th> + <th align='center'> + <b>$Lang::tr{'fwdfw log'}</b> + </th> + <th align='center' width='30%'> + <b>$Lang::tr{'fwdfw target'}</b> + </th> + <th align='center' colspan='6' width='18%'> + <b>$Lang::tr{'fwdfw action'}</b> + </th> + </tr> +END + + foreach my $key (sort {$a <=> $b} keys %$hash){ + $tdcolor=''; + @tmpsrc=(); + @tmptgt=(); + #check if vpn hosts/nets have been deleted + if($$hash{$key}[3] =~ /ipsec/i || $$hash{$key}[3] =~ /ovpn/i){ + push (@tmpsrc,$$hash{$key}[4]); + } + if($$hash{$key}[5] =~ /ipsec/i || $$hash{$key}[5] =~ /ovpn/i){ + push (@tmptgt,$$hash{$key}[6]); + } + foreach my $host (@tmpsrc){ + if($$hash{$key}[3] eq 'ipsec_net_src'){ + if(&fwlib::get_ipsec_net_ip($host,11) eq ''){ + $coloryellow='on'; + } + }elsif($$hash{$key}[3] eq 'ovpn_net_src'){ + if(&fwlib::get_ovpn_net_ip($host,1) eq ''){ + $coloryellow='on'; + } + }elsif($$hash{$key}[3] eq 'ovpn_n2n_src'){ + if(&fwlib::get_ovpn_n2n_ip($host,27) eq ''){ + $coloryellow='on'; + } + }elsif($$hash{$key}[3] eq 'ovpn_host_src'){ + if(&fwlib::get_ovpn_host_ip($host,33) eq ''){ + $coloryellow='on'; + } + } + } + foreach my $host (@tmptgt){ + if($$hash{$key}[5] eq 'ipsec_net_tgt'){ + if(&fwlib::get_ipsec_net_ip($host,11) eq ''){ + $coloryellow='on'; + } + }elsif($$hash{$key}[5] eq 'ovpn_net_tgt'){ + if(&fwlib::get_ovpn_net_ip($host,1) eq ''){ + $coloryellow='on'; + } + }elsif($$hash{$key}[5] eq 'ovpn_n2n_tgt'){ + if(&fwlib::get_ovpn_n2n_ip($host,27) eq ''){ + $coloryellow='on'; + } + }elsif($$hash{$key}[5] eq 'ovpn_host_tgt'){ + if(&fwlib::get_ovpn_host_ip($host,33) eq ''){ + $coloryellow='on'; + } + } + } + #check if networkgroups or servicegroups are empty + foreach my $netgroup (sort keys %customgrp){ + if(($$hash{$key}[4] eq $customgrp{$netgroup}[0] || $$hash{$key}[6] eq $customgrp{$netgroup}[0]) && $customgrp{$netgroup}[2] eq 'none'){ + $coloryellow='on'; + } + } + foreach my $srvgroup (sort keys %customservicegrp){ + if($$hash{$key}[15] eq $customservicegrp{$srvgroup}[0] && $customservicegrp{$srvgroup}[2] eq 'none'){ + $coloryellow='on'; + } + } + $$hash{'ACTIVE'}=$$hash{$key}[2]; + $count++; + if($coloryellow eq 'on'){ + $color="$color{'color14'}"; + $coloryellow=''; + }elsif($coloryellow eq ''){ + if ($count % 2){ + $color="$color{'color22'}"; + } + else{ + $color="$color{'color20'}"; + } + } + print<<END; + <tr bgcolor='$color'> + <td align='right' width='3%'> + <b>$key </b> + </td> +END + + #RULETYPE (A,R,D) + if ($$hash{$key}[0] eq 'ACCEPT'){ + $ruletype='A'; + $tooltip='ACCEPT'; + $rulecolor=$color{'color17'}; + }elsif($$hash{$key}[0] eq 'DROP'){ + $ruletype='D'; + $tooltip='DROP'; + $rulecolor=$color{'color25'}; + }elsif($$hash{$key}[0] eq 'REJECT'){ + $ruletype='R'; + $tooltip='REJECT'; + $rulecolor=$color{'color16'}; + } + + print <<END; + <td bgcolor='$rulecolor' align='center' width='2%'> + <span title='$tooltip'> </span> + </td> +END + + #Get Protocol + my $prot; + if ($$hash{$key}[8]){ + if ($$hash{$key}[8] eq "IPv6"){ + push (@protocols,$Lang::tr{'fwdfw prot41 short'}) + }else{ + push (@protocols,$$hash{$key}[8]); + } + }elsif($$hash{$key}[14] eq 'cust_srv'){ + &get_serviceports("service",$$hash{$key}[15]); + }elsif($$hash{$key}[14] eq 'cust_srvgrp'){ + &get_serviceports("group",$$hash{$key}[15]); + }else{ + push (@protocols,$Lang::tr{'all'}); + } + + my $protz=join(",",@protocols); + if($protz eq 'ICMP' && $$hash{$key}[9] ne 'All ICMP-Types' && $$hash{$key}[14] ne 'cust_srvgrp'){ + &General::readhasharray("${General::swroot}/fwhosts/icmp-types", %icmptypes); + foreach my $keyicmp (sort { ncmp($icmptypes{$a}[0],$icmptypes{$b}[0]) }keys %icmptypes){ + if($$hash{$key}[9] eq "$icmptypes{$keyicmp}[0]"){ + print "<td align='center'><span title='$icmptypes{$keyicmp}[0]'><b>$protz ($icmptypes{$keyicmp}[1])</b></span></td>"; + last; + } + } + }else{ + print"<td align='center'>$protz</td>"; + } + @protocols=(); + #SOURCE + my $ipfireiface; + &getcolor($$hash{$key}[3],$$hash{$key}[4],%customhost); + print"<td align='center' width='30%' $tdcolor>"; + if ($$hash{$key}[3] eq 'ipfire_src'){ + $ipfireiface=$Lang::tr{'fwdfw iface'}; + } + if ($$hash{$key}[3] eq 'std_net_src'){ + print &get_name($$hash{$key}[4]); + }elsif ($$hash{$key}[3] eq 'src_addr'){ + my ($split1,$split2) = split("/",$$hash{$key}[4]); + if ($split2 eq '32'){ + print $split1; + }else{ + print $$hash{$key}[4]; + } + }elsif ($$hash{$key}[4] eq 'RED1'){ + print "$ipfireiface $Lang::tr{'fwdfw red'}"; + }elsif ($$hash{$key}[4] eq 'ALL'){ + print "$ipfireiface $Lang::tr{'all'}"; + }else{ + if ($$hash{$key}[4] eq 'GREEN' || $$hash{$key}[4] eq 'ORANGE' || $$hash{$key}[4] eq 'BLUE' || $$hash{$key}[4] eq 'RED'){ + print "$ipfireiface $Lang::tr{lc($$hash{$key}[4])}"; + }else{ + print "$ipfireiface $$hash{$key}[4]"; + } + } + $tdcolor=''; + #SOURCEPORT + &getsrcport(%$hash,$key); + #Is this a SNAT rule? + if ($$hash{$key}[31] eq 'snat' && $$hash{$key}[28] eq 'ON'){ + my $net=&get_name($$hash{$key}[29]); + if ( ! $net){ $net=$$hash{$key}[29];} + print"<br>->$net"; + if ($$hash{$key}[30] ne ''){ + print": $$hash{$key}[30]"; + } + } + if ($$hash{$key}[17] eq 'ON'){ + $log="/images/on.gif"; + }else{ + $log="/images/off.gif"; + } + #LOGGING + print<<END; + </td> + <td align='center'> + <form method='POST' action=''> + <input type='image' img src='$log' alt='$Lang::tr{'click to disable'}' title='$Lang::tr{'fwdfw togglelog'}' style='padding-top: 0px; padding-left: 0px; padding-bottom: 0px ;padding-right: 0px ;'/> + <input type='hidden' name='key' value='$key' /> + <input type='hidden' name='config' value='$config' /> + <input type='hidden' name='ACTION' value='$Lang::tr{'fwdfw togglelog'}' /> + </form> + </td> +END + #TARGET + &getcolor($$hash{$key}[5],$$hash{$key}[6],%customhost); + print<<END; + <td align='center' $tdcolor> +END + #Is this a DNAT rule? + my $natstring; + if ($$hash{$key}[31] eq 'dnat' && $$hash{$key}[28] eq 'ON'){ + if ($$hash{$key}[29] eq 'Default IP'){$$hash{$key}[29]=$Lang::tr{'red1'};} + if ($$hash{$key}[29] eq 'AUTO'){ + my @src_addresses=&fwlib::get_addresses(%$hash,$key,'src'); + my @nat_ifaces; + foreach my $val (@src_addresses){ + push (@nat_ifaces,&fwlib::get_nat_address($$hash{$key}[29],$val)); + } + @nat_ifaces=&del_double(@nat_ifaces); + $natstring = join(', ', @nat_ifaces); + }else{ + $natstring = $$hash{$key}[29]; + } + print "$Lang::tr{'firewall'} ($natstring)"; + if($$hash{$key}[30] ne ''){ + $$hash{$key}[30]=~ tr/|/,/; + print": $$hash{$key}[30]"; + } + print"<br>->"; + } + if ($$hash{$key}[5] eq 'std_net_tgt' || $$hash{$key}[5] eq 'ipfire'){ + if ($$hash{$key}[6] eq 'RED1'){ + print "$Lang::tr{'red1'}"; + }elsif ($$hash{$key}[6] eq 'GREEN' || $$hash{$key}[6] eq 'ORANGE' || $$hash{$key}[6] eq 'BLUE'|| $$hash{$key}[6] eq 'ALL' || $$hash{$key}[6] eq 'RED') + { + print &get_name($$hash{$key}[6]); + }else{ + print $$hash{$key}[6]; + } + }elsif ($$hash{$key}[5] eq 'tgt_addr'){ + my ($split1,$split2) = split("/",$$hash{$key}[6]); + if ($split2 eq '32'){ + print $split1; + }else{ + print $$hash{$key}[6]; + } + }else{ + print "$$hash{$key}[6]"; + } + $tdcolor=''; + #TARGETPORT + &gettgtport(%$hash,$key); + print"</td>"; + #RULE ACTIVE + if($$hash{$key}[2] eq 'ON'){ + $gif="/images/on.gif" + + }else{ + $gif="/images/off.gif" + } + print<<END; + <td width='3%' align='center'> + <form method='POST' action=''> + <input type='image' img src='$gif' alt='$Lang::tr{'click to disable'}' title='$Lang::tr{'fwdfw toggle'}' style='padding-top: 0px; padding-left: 0px; padding-bottom: 0px ;padding-right: 0px ;display: block;' /> + <input type='hidden' name='key' value='$key' /> + <input type='hidden' name='config' value='$config' /> + <input type='hidden' name='ACTION' value='$Lang::tr{'fwdfw toggle'}' /> + </form> + </td> + <td width='3%' align='center'> + <form method='POST' action=''> + <input type='image' img src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'fwdfw edit'}' style='padding-top: 0px; padding-left: 0px; padding-bottom: 0px ;padding-right: 0px ;display: block;' /> + <input type='hidden' name='key' value='$key' /> + <input type='hidden' name='config' value='$config' /> + <input type='hidden' name='ACTION' value='editrule' /> + </form> + </td> + <td width='3%' align='center'> + <form method='POST' action=''> + <input type='image' img src='/images/addblue.gif' alt='$Lang::tr{'fwdfw copy'}' title='$Lang::tr{'fwdfw copy'}' style='padding-top: 0px; padding-left: 0px; padding-bottom: 0px ;padding-right: 0px ;display: block;' /> + <input type='hidden' name='key' value='$key' /> + <input type='hidden' name='config' value='$config' /> + <input type='hidden' name='ACTION' value='copyrule' /> + </form> + </td> + <td width='3%' align='center'> + <form method='POST' action=''> + <input type='image' img src='/images/delete.gif' alt='$Lang::tr{'delete'}' title='$Lang::tr{'fwdfw delete'}' style='padding-top: 0px; padding-left: 0px; padding-bottom: 0px ;padding-right: 0px ;display: block;' /> + <input type='hidden' name='key' value='$key' /> + <input type='hidden' name='config' value='$config' /> + <input type='hidden' name='ACTION' value='deleterule' /> + </form> + </td> +END + if (exists $$hash{$key-1}){ + print<<END; + <td width='3%' align='center'> + <form method='POST' action=''> + <input type='image' img src='/images/up.gif' alt='$Lang::tr{'fwdfw moveup'}' title='$Lang::tr{'fwdfw moveup'}' style='padding-top: 0px; padding-left: 0px; padding-bottom: 0px ;padding-right: 0px ;display: block;' /> + <input type='hidden' name='key' value='$key' /> + <input type='hidden' name='config' value='$config' /> + <input type='hidden' name='ACTION' value='moveup' /> + </form> + </td> +END + }else{ + print"<td width='3%'></td>"; + } + + if (exists $$hash{$key+1}){ + print<<END; + <td width='3%' align='center'> + <form method='POST' action=''> + <input type='image' img src='/images/down.gif' alt='$Lang::tr{'fwdfw movedown'}' title='$Lang::tr{'fwdfw movedown'}' style='padding-top: 0px; padding-left: 0px; padding-bottom: 0px ;padding-right: 0px ;display: block;' /> + <input type='hidden' name='key' value='$key' /> + <input type='hidden' name='config' value='$config' /> + <input type='hidden' name='ACTION' value='movedown' /> + </form> + </td> + </tr> +END + }else{ + print"<td width='3%'></td></tr>"; + } + #REMARK + if ($optionsfw{'SHOWREMARK'} eq 'on' && $$hash{$key}[16] ne ''){ + print <<END; + <tr bgcolor='$color'> + <td> </td> + <td bgcolor='$rulecolor'></td> + <td colspan='10'> + <em>$$hash{$key}[16]</em> + </td> + </tr> +END + } + + if ($$hash{$key}[18] eq 'ON'){ + #TIMEFRAME + if ($$hash{$key}[18] eq 'ON'){ + my @days=(); + if($$hash{$key}[19] ne ''){push (@days,$Lang::tr{'fwdfw wd_mon'});} + if($$hash{$key}[20] ne ''){push (@days,$Lang::tr{'fwdfw wd_tue'});} + if($$hash{$key}[21] ne ''){push (@days,$Lang::tr{'fwdfw wd_wed'});} + if($$hash{$key}[22] ne ''){push (@days,$Lang::tr{'fwdfw wd_thu'});} + if($$hash{$key}[23] ne ''){push (@days,$Lang::tr{'fwdfw wd_fri'});} + if($$hash{$key}[24] ne ''){push (@days,$Lang::tr{'fwdfw wd_sat'});} + if($$hash{$key}[25] ne ''){push (@days,$Lang::tr{'fwdfw wd_sun'});} + my $weekdays=join(",",@days); + if (@days){ + print"<tr bgcolor='$color'>"; + print"<td> </td><td bgcolor='$rulecolor'></td><td align='left' colspan='10'> $weekdays $$hash{$key}[26] - $$hash{$key}[27]</td></tr>"; + } + } + } + print"<tr bgcolor='FFFFFF'><td colspan='13' height='1'></td></tr>"; + } + } elsif ($optionsfw{'SHOWTABLES'} eq 'on') { + print <<END; + <tr> + <td colspan='7' height='30' bgcolor=$color{'color22'} align='center'>$Lang::tr{'fwhost empty'}</td> + </tr> +END + } + + #SHOW FINAL RULE + my $policy = 'fwdfw ' . $fwdfwsettings{'POLICY'}; + my $colour = "bgcolor='green'"; + if ($fwdfwsettings{'POLICY'} eq 'MODE1') { + $colour = "bgcolor='darkred'"; + } + + my $message; + if (($config eq '/var/ipfire/firewall/config') && ($fwdfwsettings{'POLICY'} ne 'MODE1')) { + print <<END; + <tr> + <td colspan='13'> </td> + </tr> + <tr> + <td colspan='13' style="padding-left:0px;padding-right:0px"> + <table width="100%" border='1' rules="cols" cellspacing='0'> +END + + # GREEN + print <<END; + <tr> + <td align='center'> + <font color="$Header::colourgreen">$Lang::tr{'green'}</font> + </td> + <td align='center'> + <font color="$Header::colourred">$Lang::tr{'red'}</font> + ($Lang::tr{'fwdfw pol allow'}) + </td> +END + + if (&Header::orange_used()) { + print <<END; + <td align='center'> + <font color="$Header::colourorange">$Lang::tr{'orange'}</font> + ($Lang::tr{'fwdfw pol allow'}) + </td> +END + } + + if (&Header::blue_used()) { + print <<END; + <td align='center'> + <font color="$Header::colourblue">$Lang::tr{'blue'}</font> + ($Lang::tr{'fwdfw pol allow'}) + </td> +END + } + + print"</tr>"; + + # ORANGE + if (&Header::orange_used()) { + print <<END; + <tr> + <td align='center' width='20%'> + <font color="$Header::colourorange">$Lang::tr{'orange'}</font> + </td> + <td align='center'> + <font color="$Header::colourred">$Lang::tr{'red'}</font> + ($Lang::tr{'fwdfw pol allow'}) + </td> + <td align='center'> + <font color="$Header::colourgreen">$Lang::tr{'green'}</font> + ($Lang::tr{'fwdfw pol block'}) + </td> +END + + if (&Header::blue_used()) { + print <<END; + <td align='center'> + <font color="$Header::colourblue">$Lang::tr{'blue'}</font> + ($Lang::tr{'fwdfw pol block'}) + </td> +END + } + + print"</tr>"; + } + + if (&Header::blue_used()) { + print <<END; + <tr> + <td align='center'> + <font color="$Header::colourblue">$Lang::tr{'blue'}</font> + </td> + <td align='center'> + <font color="$Header::colourred">$Lang::tr{'red'}</font> + ($Lang::tr{'fwdfw pol allow'}) + </td> +END + + if (&Header::orange_used()) { + print <<END; + <td align='center'> + <font color="$Header::colourorange">$Lang::tr{'orange'}</font> + ($Lang::tr{'fwdfw pol block'}) + </td> +END + } + + print <<END; + <td align='center'> + <font color="$Header::colourgreen">$Lang::tr{'green'}</font> + ($Lang::tr{'fwdfw pol block'}) + </td> + </tr> +END + } + + print <<END; + </table> + </td> + </tr> +END + + $message = $Lang::tr{'fwdfw pol allow'}; + + } elsif ($config eq '/var/ipfire/firewall/outgoing' && ($fwdfwsettings{'POLICY1'} ne 'MODE1')) { + $message = $Lang::tr{'fwdfw pol allow'}; + $colour = "bgcolor='green'"; + } else { + $message = $Lang::tr{'fwdfw pol block'}; + $colour = "bgcolor='darkred'"; + } + + if ($message) { + print <<END; + <tr> + <td $colour align='center' colspan='13'> + <font color='#FFFFFF'>$Lang::tr{'policy'}: $message</font> + </td> + </tr> +END + } + + print "</table>"; + print "<br>"; + + &Header::closebox(); +} + +&Header::closebigbox(); +&Header::closepage(); diff --git a/html/cgi-bin/fwhosts.cgi b/html/cgi-bin/fwhosts.cgi new file mode 100644 index 0000000..042fdde --- /dev/null +++ b/html/cgi-bin/fwhosts.cgi @@ -0,0 +1,2662 @@ +#!/usr/bin/perl +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2013 Alexander Marx amarx@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### +use strict; + +# enable only the following on debugging purpose +#use warnings; + +use Sort::Naturally; +use CGI::Carp 'fatalsToBrowser'; +no warnings 'uninitialized'; +require '/var/ipfire/general-functions.pl'; +require "${General::swroot}/lang.pl"; +require "${General::swroot}/header.pl"; + +my %fwhostsettings=(); +my %customnetwork=(); +my %customhost=(); +my %customgrp=(); +my %customservice=(); +my %customservicegrp=(); +my %ccdnet=(); +my %ccdhost=(); +my %ipsecconf=(); +my %icmptypes=(); +my %color=(); +my %defaultNetworks=(); +my %mainsettings=(); +my %ownnet=(); +my %ipsecsettings=(); +my %fwfwd=(); +my %fwinp=(); +my %fwout=(); +my %ovpnsettings=(); +my %netsettings=(); + +my $errormessage; +my $hint; +my $update=0; +my $confignet = "${General::swroot}/fwhosts/customnetworks"; +my $confighost = "${General::swroot}/fwhosts/customhosts"; +my $configgrp = "${General::swroot}/fwhosts/customgroups"; +my $configccdnet = "${General::swroot}/ovpn/ccd.conf"; +my $configccdhost = "${General::swroot}/ovpn/ovpnconfig"; +my $configipsec = "${General::swroot}/vpn/config"; +my $configsrv = "${General::swroot}/fwhosts/customservices"; +my $configsrvgrp = "${General::swroot}/fwhosts/customservicegrp"; +my $fwconfigfwd = "${General::swroot}/firewall/config"; +my $fwconfiginp = "${General::swroot}/firewall/input"; +my $fwconfigout = "${General::swroot}/firewall/outgoing"; +my $configovpn = "${General::swroot}/ovpn/settings"; +my $tdcolor=''; +my $configipsecrw = "${General::swroot}/vpn/settings"; + +unless (-e $confignet) { system("touch $confignet"); } +unless (-e $confighost) { system("touch $confighost"); } +unless (-e $configgrp) { system("touch $configgrp"); } +unless (-e $configsrv) { system("touch $configsrv"); } +unless (-e $configsrvgrp) { system("touch $configsrvgrp"); } + +&General::readhash("${General::swroot}/main/settings", %mainsettings); +&General::readhash("/srv/web/ipfire/html/themes/".$mainsettings{'THEME'}."/include/colors.txt", %color); +&General::readhash("${General::swroot}/ethernet/settings", %ownnet); +&General::readhash("$configovpn", %ovpnsettings); +&General::readhasharray("$configipsec", %ipsecconf); +&General::readhash("$configipsecrw", %ipsecsettings); +&General::readhash("/var/ipfire/ethernet/settings", %netsettings); +&Header::getcgihash(%fwhostsettings); + +&Header::showhttpheaders(); +&Header::openpage($Lang::tr{'fwhost menu'}, 1, ''); +&Header::openbigbox('100%', 'center'); + +#### JAVA SCRIPT #### +print<<END; +<script> + var PROTOCOLS_WITH_PORTS = ["TCP", "UDP"]; + var update_protocol = function() { + var protocol = $("#protocol").val(); + + if (protocol === undefined) + return; + + // Check if we are dealing with a protocol, that knows ports. + if ($.inArray(protocol, PROTOCOLS_WITH_PORTS) >= 0) { + $("#PORT").show(); + $("#PROTOKOLL").hide(); + } else { + $("#PORT").hide(); + $("#PROTOKOLL").show(); + } + }; + + $(document).ready(function() { + var protocol = $("#protocol").val(); + $("#protocol").change(update_protocol); + update_protocol(); + // Automatically select radio buttons when corresponding + // dropdown menu changes. + $("select").change(function() { + var id = $(this).attr("name"); + $('#' + id).prop("checked", true); + }); + }); +</script> +END + +## ACTION #### +# Update +if ($fwhostsettings{'ACTION'} eq 'updatenet' ) +{ + &General::readhasharray("$confignet", %customnetwork); + foreach my $key (keys %customnetwork) + { + if($customnetwork{$key}[0] eq $fwhostsettings{'orgname'}) + { + $fwhostsettings{'orgname'} = $customnetwork{$key}[0]; + $fwhostsettings{'orgip'} = $customnetwork{$key}[1]; + $fwhostsettings{'orgsub'} = $customnetwork{$key}[2]; + $fwhostsettings{'netremark'} = $customnetwork{$key}[3]; + $fwhostsettings{'count'} = $customnetwork{$key}[4]; + delete $customnetwork{$key}; + + } + } + &General::writehasharray("$confignet", %customnetwork); + $fwhostsettings{'actualize'} = 'on'; + $fwhostsettings{'ACTION'} = 'savenet'; +} +if ($fwhostsettings{'ACTION'} eq 'updatehost') +{ + my ($ip,$subnet); + &General::readhasharray("$confighost", %customhost); + foreach my $key (keys %customhost) + { + if($customhost{$key}[0] eq $fwhostsettings{'orgname'}) + { + if ($customhost{$key}[1] eq 'ip'){ + ($ip,$subnet) = split (///,$customhost{$key}[2]); + }else{ + $ip = $customhost{$key}[2]; + } + $fwhostsettings{'orgip'} = $ip; + $fwhostsettings{'count'} = $customhost{$key}[4]; + delete $customhost{$key}; + &General::writehasharray("$confighost", %customhost); + } + } + $fwhostsettings{'actualize'} = 'on'; + if($fwhostsettings{'orgip'}){ + $fwhostsettings{'ACTION'} = 'savehost'; + }else{ + $fwhostsettings{'ACTION'} = $Lang::tr{'fwhost newhost'}; + } +} +if ($fwhostsettings{'ACTION'} eq 'updateservice') +{ + my $count=0; + my $needrules=0; + $errormessage=&checkports(%customservice); + if ($fwhostsettings{'oldsrvname'} ne $fwhostsettings{'SRV_NAME'} && !&checkgroup($fwhostsettings{'SRV_NAME'})){ + $errormessage=$Lang::tr{'fwhost err grpexist'}; + } + if (!$errormessage){ + &General::readhasharray("$configsrv", %customservice); + foreach my $key (keys %customservice) + { + if ($customservice{$key}[0] eq $fwhostsettings{'oldsrvname'}) + { + delete $customservice{$key}; + &General::writehasharray("$configsrv", %customservice); + last; + } + } + if ($fwhostsettings{'PROT'} ne 'ICMP'){ + $fwhostsettings{'ICMP_TYPES'}='BLANK'; + } + my $key1 = &General::findhasharraykey(%customservice); + #find out short ICMP-TYPE + &General::readhasharray("${General::swroot}/fwhosts/icmp-types", %icmptypes); + foreach my $key (keys %icmptypes){ + if ("$icmptypes{$key}[0] ($icmptypes{$key}[1])" eq $fwhostsettings{'ICMP_TYPES'}){ + $fwhostsettings{'ICMP_TYPES'}=$icmptypes{$key}[0]; + } + } + foreach my $i (0 .. 4) { $customservice{$key1}[$i] = "";} + $customservice{$key1}[0] = $fwhostsettings{'SRV_NAME'}; + $customservice{$key1}[1] = $fwhostsettings{'SRV_PORT'}; + $customservice{$key1}[2] = $fwhostsettings{'PROT'}; + $customservice{$key1}[3] = $fwhostsettings{'ICMP_TYPES'}; + &General::writehasharray("$configsrv", %customservice); + #check if we need to update firewallrules + if ($fwhostsettings{'SRV_NAME'} ne $fwhostsettings{'oldsrvname'}){ + if ( ! -z $fwconfigfwd ){ + &General::readhasharray("$fwconfigfwd", %fwfwd); + foreach my $key (sort keys %fwfwd){ + if ($fwfwd{$key}[15] eq $fwhostsettings{'oldsrvname'}){ + $fwfwd{$key}[15] = $fwhostsettings{'SRV_NAME'}; + } + } + &General::writehasharray("$fwconfigfwd", %fwfwd); + } + if ( ! -z $fwconfiginp ){ + &General::readhasharray("$fwconfiginp", %fwinp); + foreach my $line (sort keys %fwinp){ + if ($fwfwd{$line}[15] eq $fwhostsettings{'oldsrvname'}){ + $fwfwd{$line}[15] = $fwhostsettings{'SRV_NAME'}; + } + } + &General::writehasharray("$fwconfiginp", %fwinp); + } + if ( ! -z $fwconfigout ){ + &General::readhasharray("$fwconfigout", %fwout); + foreach my $line (sort keys %fwout){ + if ($fwout{$line}[15] eq $fwhostsettings{'oldsrvname'}){ + $fwout{$line}[15] = $fwhostsettings{'SRV_NAME'}; + } + } + &General::writehasharray("$fwconfigout", %fwout); + } + #check if we need to update groups + &General::readhasharray("$configsrvgrp", %customservicegrp); + foreach my $key (sort keys %customservicegrp){ + if($customservicegrp{$key}[2] eq $fwhostsettings{'oldsrvname'}){ + $customservicegrp{$key}[2] = $fwhostsettings{'SRV_NAME'}; + &checkrulereload($customservicegrp{$key}[0]); + } + } + &General::writehasharray("$configsrvgrp", %customservicegrp); + } + &checkrulereload($fwhostsettings{'SRV_NAME'}); + $fwhostsettings{'SRV_NAME'} = ''; + $fwhostsettings{'SRV_PORT'} = ''; + $fwhostsettings{'PROT'} = ''; + $fwhostsettings{'ICMP'} = ''; + $fwhostsettings{'oldsrvicmp'} = ''; + $fwhostsettings{'updatesrv'} = ''; + }else{ + $fwhostsettings{'SRV_NAME'} = $fwhostsettings{'oldsrvname'}; + $fwhostsettings{'SRV_PORT'} = $fwhostsettings{'oldsrvport'}; + $fwhostsettings{'PROT'} = $fwhostsettings{'oldsrvprot'}; + $fwhostsettings{'ICMP'} = $fwhostsettings{'oldsrvicmp'}; + $fwhostsettings{'updatesrv'}= 'on'; + } + &addservice; +} +# save +if ($fwhostsettings{'ACTION'} eq 'savenet' ) +{ + my $needrules=0; + if ($fwhostsettings{'orgname'} eq ''){$fwhostsettings{'orgname'}=$fwhostsettings{'HOSTNAME'};} + #check if all fields are set + if ($fwhostsettings{'HOSTNAME'} eq '' || $fwhostsettings{'IP'} eq '' || $fwhostsettings{'SUBNET'} eq '') + { + $errormessage=$errormessage.$Lang::tr{'fwhost err empty'}; + &addnet; + &viewtablenet; + }else{ + #check valid ip + if (!&General::validipandmask($fwhostsettings{'IP'}."/".$fwhostsettings{'SUBNET'})) + { + $errormessage=$errormessage.$Lang::tr{'fwhost err addr'}; + $fwhostsettings{'BLK_HOST'} ='readonly'; + $fwhostsettings{'NOCHECK'} ='false'; + $fwhostsettings{'error'} ='on'; + } + #check remark + if ($fwhostsettings{'NETREMARK'} ne '' && !&validremark($fwhostsettings{'NETREMARK'})){ + $errormessage=$Lang::tr{'fwhost err remark'}; + $fwhostsettings{'error'} ='on'; + } + #check if subnet is sigle host + if(&General::iporsubtocidr($fwhostsettings{'SUBNET'}) eq '32') + { + $errormessage=$errormessage.$Lang::tr{'fwhost err sub32'}; + } + if($fwhostsettings{'error'} ne 'on'){ + #check if we use one of ipfire's networks (green,orange,blue) + if (($ownnet{'GREEN_NETADDRESS'} ne '' && $ownnet{'GREEN_NETADDRESS'} ne '0.0.0.0') && &General::IpInSubnet($fwhostsettings{'IP'},$ownnet{'GREEN_NETADDRESS'},$ownnet{'GREEN_NETMASK'})) + { + $errormessage=$errormessage.$Lang::tr{'ccd err green'}."<br>"; + $fwhostsettings{'HOSTNAME'} = $fwhostsettings{'orgname'}; + if ($fwhostsettings{'update'} eq 'on'){$fwhostsettings{'ACTION'}='editnet';} + } + if (($ownnet{'ORANGE_NETADDRESS'} ne '' && $ownnet{'ORANGE_NETADDRESS'} ne '0.0.0.0') && &General::IpInSubnet($fwhostsettings{'IP'},$ownnet{'ORANGE_NETADDRESS'},$ownnet{'ORANGE_NETMASK'})) + { + $errormessage=$errormessage.$Lang::tr{'ccd err orange'}."<br>"; + $fwhostsettings{'HOSTNAME'} = $fwhostsettings{'orgname'}; + if ($fwhostsettings{'update'} eq 'on'){$fwhostsettings{'ACTION'}='editnet';} + } + if (($ownnet{'BLUE_NETADDRESS'} ne '' && $ownnet{'BLUE_NETADDRESS'} ne '0.0.0.0') && &General::IpInSubnet($fwhostsettings{'IP'},$ownnet{'BLUE_NETADDRESS'},$ownnet{'BLUE_NETMASK'})) + { + $errormessage=$errormessage.$Lang::tr{'ccd err blue'}."<br>"; + $fwhostsettings{'HOSTNAME'} = $fwhostsettings{'orgname'}; + if ($fwhostsettings{'update'} eq 'on'){$fwhostsettings{'ACTION'}='editnet';} + } + if (($ownnet{'RED_NETADDRESS'} ne '' && $ownnet{'RED_NETADDRESS'} ne '0.0.0.0') && &General::IpInSubnet($fwhostsettings{'IP'},$ownnet{'RED_NETADDRESS'},$ownnet{'RED_NETMASK'})) + { + $errormessage=$errormessage.$Lang::tr{'ccd err red'}."<br>"; + $fwhostsettings{'HOSTNAME'} = $fwhostsettings{'orgname'}; + if ($fwhostsettings{'update'} eq 'on'){$fwhostsettings{'ACTION'}='editnet';} + } + } + #only check plausi when no error till now + if (!$errormessage){ + &plausicheck("editnet"); + } + #check if network ip is part of an already used one + if(&checksubnet(%customnetwork)) + { + $errormessage=$errormessage.$Lang::tr{'fwhost err partofnet'}; + $fwhostsettings{'HOSTNAME'} = $fwhostsettings{'orgname'}; + } + if($fwhostsettings{'actualize'} eq 'on' && $fwhostsettings{'newnet'} ne 'on' && $errormessage) + { + $fwhostsettings{'actualize'} = ''; + my $key = &General::findhasharraykey (%customnetwork); + foreach my $i (0 .. 3) { $customnetwork{$key}[$i] = "";} + $customnetwork{$key}[0] = $fwhostsettings{'orgname'} ; + $customnetwork{$key}[1] = $fwhostsettings{'orgip'} ; + $customnetwork{$key}[2] = $fwhostsettings{'orgsub'}; + $customnetwork{$key}[3] = $fwhostsettings{'orgnetremark'}; + &General::writehasharray("$confignet", %customnetwork); + undef %customnetwork; + } + if (!$errormessage){ + + &General::readhasharray("$confignet", %customnetwork); + if ($fwhostsettings{'ACTION'} eq 'updatenet'){ + if ($fwhostsettings{'update'} == '0'){ + foreach my $key (keys %customnetwork) { + if($customnetwork{$key}[0] eq $fwhostsettings{'orgname'}){ + delete $customnetwork{$key}; + last; + } + } + } + } + #get count if actualize is 'on' + if($fwhostsettings{'actualize'} eq 'on'){ + $fwhostsettings{'actualize'} = ''; + #check if we need to reload rules + if($fwhostsettings{'orgip'} ne $fwhostsettings{'IP'}){ + $needrules='on'; + } + if ($fwhostsettings{'orgname'} ne $fwhostsettings{'HOSTNAME'}){ + #check if we need to update groups + &General::readhasharray("$configgrp", %customgrp); + foreach my $key (sort keys %customgrp){ + if($customgrp{$key}[2] eq $fwhostsettings{'orgname'}){ + $customgrp{$key}[2]=$fwhostsettings{'HOSTNAME'}; + last; + } + } + &General::writehasharray("$configgrp", %customgrp); + #check if we need to update firewallrules + if ( ! -z $fwconfigfwd ){ + &General::readhasharray("$fwconfigfwd", %fwfwd); + foreach my $line (sort keys %fwfwd){ + if ($fwfwd{$line}[4] eq $fwhostsettings{'orgname'}){ + $fwfwd{$line}[4] = $fwhostsettings{'HOSTNAME'}; + } + if ($fwfwd{$line}[6] eq $fwhostsettings{'orgname'}){ + $fwfwd{$line}[6] = $fwhostsettings{'HOSTNAME'}; + } + } + &General::writehasharray("$fwconfigfwd", %fwfwd); + } + if ( ! -z $fwconfiginp ){ + &General::readhasharray("$fwconfiginp", %fwinp); + foreach my $line (sort keys %fwinp){ + if ($fwfwd{$line}[4] eq $fwhostsettings{'orgname'}){ + $fwfwd{$line}[4] = $fwhostsettings{'HOSTNAME'}; + } + } + &General::writehasharray("$fwconfiginp", %fwinp); + } + } + } + my $key = &General::findhasharraykey (%customnetwork); + foreach my $i (0 .. 3) { $customnetwork{$key}[$i] = "";} + $fwhostsettings{'SUBNET'} = &General::iporsubtocidr($fwhostsettings{'SUBNET'}); + $customnetwork{$key}[0] = $fwhostsettings{'HOSTNAME'}; + #convert ip when leading '0' in byte + $fwhostsettings{'IP'} =&General::ip2dec($fwhostsettings{'IP'}); + $fwhostsettings{'IP'} =&General::dec2ip($fwhostsettings{'IP'}); + $customnetwork{$key}[1] = &General::getnetworkip($fwhostsettings{'IP'},$fwhostsettings{'SUBNET'}) ; + $customnetwork{$key}[2] = &General::iporsubtodec($fwhostsettings{'SUBNET'}) ; + $customnetwork{$key}[3] = $fwhostsettings{'NETREMARK'}; + &General::writehasharray("$confignet", %customnetwork); + $fwhostsettings{'IP'}=$fwhostsettings{'IP'}."/".&General::iporsubtodec($fwhostsettings{'SUBNET'}); + undef %customnetwork; + $fwhostsettings{'HOSTNAME'}=''; + $fwhostsettings{'IP'}=''; + $fwhostsettings{'SUBNET'}=''; + $fwhostsettings{'NETREMARK'}=''; + #check if an edited net affected groups and need to reload rules + if ($needrules eq 'on'){ + &General::firewall_config_changed(); + } + &addnet; + &viewtablenet; + }else { + &addnet; + &viewtablenet; + } + } +} +if ($fwhostsettings{'ACTION'} eq 'savehost') +{ + my $needrules=0; + if ($fwhostsettings{'orgname'} eq ''){$fwhostsettings{'orgname'}=$fwhostsettings{'HOSTNAME'};} + $fwhostsettings{'SUBNET'}='32'; + #check if all fields are set + if ($fwhostsettings{'HOSTNAME'} eq '' || $fwhostsettings{'IP'} eq '' || $fwhostsettings{'SUBNET'} eq '') + { + $errormessage=$errormessage.$Lang::tr{'fwhost err empty'}; + $fwhostsettings{'ACTION'} = 'edithost'; + }else{ + if($fwhostsettings{'IP'}=~/^([0-9a-fA-F]{1,2}:){5}[0-9a-fA-F]{1,2}$/){ + $fwhostsettings{'type'} = 'mac'; + }elsif($fwhostsettings{'IP'}=~/^(\d{1,3}).(\d{1,3}).(\d{1,3}).(\d{1,3})$/){ + $fwhostsettings{'type'} = 'ip'; + }else{ + $fwhostsettings{'type'} = ''; + $errormessage=$Lang::tr{'fwhost err ipmac'}; + } + #check remark + if ($fwhostsettings{'HOSTREMARK'} ne '' && !&validremark($fwhostsettings{'HOSTREMARK'})){ + $errormessage=$Lang::tr{'fwhost err remark'}; + } + #CHECK IP-PART + if ($fwhostsettings{'type'} eq 'ip'){ + #check for subnet + if (rindex($fwhostsettings{'IP'},'/') eq '-1' ){ + if($fwhostsettings{'type'} eq 'ip' && !&General::validipandmask($fwhostsettings{'IP'}."/32")) + { + $errormessage.=$errormessage.$Lang::tr{'fwhost err ip'}; + $fwhostsettings{'error'}='on'; + } + }elsif(rindex($fwhostsettings{'IP'},'/') ne '-1' ){ + $errormessage=$errormessage.$Lang::tr{'fwhost err ipwithsub'}; + $fwhostsettings{'error'}='on'; + } + #check if net or broadcast + my @tmp= split (/./,$fwhostsettings{'IP'}); + if (($tmp[3] eq "0") || ($tmp[3] eq "255")){ + $errormessage=$Lang::tr{'fwhost err hostip'}; + } + } + #only check plausi when no error till now + if (!$errormessage){ + &plausicheck("edithost"); + } + if($fwhostsettings{'actualize'} eq 'on' && $fwhostsettings{'newhost'} ne 'on' && $errormessage){ + $fwhostsettings{'actualize'} = ''; + my $key = &General::findhasharraykey (%customhost); + foreach my $i (0 .. 3) { $customhost{$key}[$i] = "";} + $customhost{$key}[0] = $fwhostsettings{'orgname'} ; + $customhost{$key}[1] = $fwhostsettings{'type'} ; + if($customhost{$key}[1] eq 'ip'){ + $customhost{$key}[2] = $fwhostsettings{'orgip'}."/".&General::iporsubtodec($fwhostsettings{'SUBNET'}); + }else{ + $customhost{$key}[2] = $fwhostsettings{'orgip'}; + } + $customhost{$key}[3] = $fwhostsettings{'orgremark'}; + &General::writehasharray("$confighost", %customhost); + undef %customhost; + } + if (!$errormessage){ + #get count if host was edited + if($fwhostsettings{'actualize'} eq 'on'){ + if($fwhostsettings{'orgip'} ne $fwhostsettings{'IP'}){ + $needrules='on'; + } + if($fwhostsettings{'orgname'} ne $fwhostsettings{'HOSTNAME'}){ + #check if we need to update groups + &General::readhasharray("$configgrp", %customgrp); + foreach my $key (sort keys %customgrp){ + if($customgrp{$key}[2] eq $fwhostsettings{'orgname'}){ + $customgrp{$key}[2]=$fwhostsettings{'HOSTNAME'}; + } + } + &General::writehasharray("$configgrp", %customgrp); + #check if we need to update firewallrules + if ( ! -z $fwconfigfwd ){ + &General::readhasharray("$fwconfigfwd", %fwfwd); + foreach my $line (sort keys %fwfwd){ + if ($fwfwd{$line}[4] eq $fwhostsettings{'orgname'}){ + $fwfwd{$line}[4] = $fwhostsettings{'HOSTNAME'}; + } + if ($fwfwd{$line}[6] eq $fwhostsettings{'orgname'}){ + $fwfwd{$line}[6] = $fwhostsettings{'HOSTNAME'}; + } + } + &General::writehasharray("$fwconfigfwd", %fwfwd); + } + if ( ! -z $fwconfiginp ){ + &General::readhasharray("$fwconfiginp", %fwinp); + foreach my $line (sort keys %fwinp){ + if ($fwfwd{$line}[4] eq $fwhostsettings{'orgname'}){ + $fwfwd{$line}[4] = $fwhostsettings{'HOSTNAME'}; + } + } + &General::writehasharray("$fwconfiginp", %fwinp); + } + } + } + my $key = &General::findhasharraykey (%customhost); + foreach my $i (0 .. 3) { $customhost{$key}[$i] = "";} + $customhost{$key}[0] = $fwhostsettings{'HOSTNAME'} ; + $customhost{$key}[1] = $fwhostsettings{'type'} ; + if ($fwhostsettings{'type'} eq 'ip'){ + #convert ip when leading '0' in byte + $fwhostsettings{'IP'}=&General::ip2dec($fwhostsettings{'IP'}); + $fwhostsettings{'IP'}=&General::dec2ip($fwhostsettings{'IP'}); + $customhost{$key}[2] = $fwhostsettings{'IP'}."/".&General::iporsubtodec($fwhostsettings{'SUBNET'}); + }else{ + $customhost{$key}[2] = $fwhostsettings{'IP'}; + } + $customhost{$key}[3] = $fwhostsettings{'HOSTREMARK'}; + &General::writehasharray("$confighost", %customhost); + undef %customhost; + $fwhostsettings{'HOSTNAME'}=''; + $fwhostsettings{'IP'}=''; + $fwhostsettings{'type'}=''; + $fwhostsettings{'HOSTREMARK'}=''; + #check if we need to update rules while host was edited + if($needrules eq 'on'){ + &General::firewall_config_changed(); + } + &addhost; + &viewtablehost; + }else{ + &addhost; + &viewtablehost; + } + } +} +if ($fwhostsettings{'ACTION'} eq 'savegrp') +{ + my $grp=$fwhostsettings{'grp_name'}; + my $rem=$fwhostsettings{'remark'}; + my $count; + my $type; + my $updcounter='off'; + my @target; + my @newgrp; + &General::readhasharray("$configgrp", %customgrp); + &General::readhasharray("$confignet", %customnetwork); + &General::readhasharray("$confighost", %customhost); + &General::readhasharray("$fwconfigfwd", %fwfwd); + &General::readhasharray("$fwconfiginp", %fwinp); + &General::readhasharray("$fwconfigout", %fwout); + #check name + if (!&validhostname($grp)){$errormessage.=$Lang::tr{'fwhost err name'};} + #check existing name + if (!&checkgroup($grp) && $fwhostsettings{'update'} ne 'on'){$errormessage.=$Lang::tr{'fwhost err grpexist'};} + #check remark + if ($rem ne '' && !&validremark($rem) && $fwhostsettings{'update'} ne 'on'){ + $errormessage.=$Lang::tr{'fwhost err remark'}; + } + if ($fwhostsettings{'update'} eq 'on'){ + #check standard networks + if ($fwhostsettings{'grp2'} eq 'std_net'){ + @target=$fwhostsettings{'DEFAULT_SRC_ADR'}; + $type='Standard Network'; + } + #check custom networks + if ($fwhostsettings{'grp2'} eq 'cust_net' && $fwhostsettings{'CUST_SRC_NET'} ne ''){ + @target=$fwhostsettings{'CUST_SRC_NET'}; + $updcounter='net'; + $type='Custom Network'; + }elsif($fwhostsettings{'grp2'} eq 'cust_net' && $fwhostsettings{'CUST_SRC_NET'} eq ''){ + $errormessage=$Lang::tr{'fwhost err groupempty'}."<br>"; + $fwhostsettings{'grp_name'}=''; + $fwhostsettings{'remark'}=''; + } + #check custom addresses + if ($fwhostsettings{'grp2'} eq 'cust_host' && $fwhostsettings{'CUST_SRC_HOST'} ne ''){ + @target=$fwhostsettings{'CUST_SRC_HOST'}; + $updcounter='host'; + $type='Custom Host'; + }elsif($fwhostsettings{'grp2'} eq 'cust_host' && $fwhostsettings{'CUST_SRC_HOST'} eq ''){ + $errormessage=$Lang::tr{'fwhost err groupempty'}."<br>"; + $fwhostsettings{'grp_name'}=''; + $fwhostsettings{'remark'}=''; + } + #get address from ovpn ccd static net + if ($fwhostsettings{'grp2'} eq 'ovpn_net' && $fwhostsettings{'OVPN_CCD_NET'} ne ''){ + @target=$fwhostsettings{'OVPN_CCD_NET'}; + $type='OpenVPN static network'; + }elsif($fwhostsettings{'grp2'} eq 'ovpn_net' && $fwhostsettings{'OVPN_CCD_NET'} eq ''){ + $errormessage=$Lang::tr{'fwhost err groupempty'}; + $fwhostsettings{'grp_name'}=''; + $fwhostsettings{'remark'}=''; + } + #get address from ovpn ccd static host + if ($fwhostsettings{'grp2'} eq 'ovpn_host' && $fwhostsettings{'OVPN_CCD_HOST'} ne ''){ + @target=$fwhostsettings{'OVPN_CCD_HOST'}; + $type='OpenVPN static host'; + }elsif ($fwhostsettings{'grp2'} eq 'ovpn_host' && $fwhostsettings{'OVPN_CCD_HOST'} eq ''){ + $errormessage=$Lang::tr{'fwhost err groupempty'}; + } + #get address from ovpn ccd Net-2-Net + if ($fwhostsettings{'grp2'} eq 'ovpn_n2n' && $fwhostsettings{'OVPN_N2N'} ne ''){ + @target=$fwhostsettings{'OVPN_N2N'}; + $type='OpenVPN N-2-N'; + }elsif ($fwhostsettings{'grp2'} eq 'ovpn_n2n' && $fwhostsettings{'OVPN_N2N'} eq ''){ + $errormessage=$Lang::tr{'fwhost err groupempty'}; + $fwhostsettings{'grp_name'}=''; + $fwhostsettings{'remark'}=''; + } + #get address from IPSEC HOST + if ($fwhostsettings{'grp2'} eq 'ipsec_host' && $fwhostsettings{'IPSEC_HOST'} ne ''){ + @target=$fwhostsettings{'IPSEC_HOST'}; + $type='IpSec Host'; + }elsif ($fwhostsettings{'grp2'} eq 'ipsec_host' && $fwhostsettings{'IPSEC_HOST'} eq ''){ + $errormessage=$Lang::tr{'fwhost err groupempty'}; + $fwhostsettings{'grp_name'}=''; + $fwhostsettings{'remark'}=''; + } + #get address from IPSEC NETWORK + if ($fwhostsettings{'grp2'} eq 'ipsec_net' && $fwhostsettings{'IPSEC_NET'} ne ''){ + @target=$fwhostsettings{'IPSEC_NET'}; + $type='IpSec Network'; + }elsif ($fwhostsettings{'grp2'} eq 'ipsec_net' && $fwhostsettings{'IPSEC_NET'} eq ''){ + $errormessage=$Lang::tr{'fwhost err groupempty'}; + $fwhostsettings{'grp_name'}=''; + $fwhostsettings{'remark'}=''; + } + #check if host/net exists in grp + + my $test="$grp,$fwhostsettings{'oldremark'},@target"; + foreach my $key (keys %customgrp) { + my $test1="$customgrp{$key}[0],$customgrp{$key}[1],$customgrp{$key}[2]"; + if ($test1 eq $test){ + $errormessage=$Lang::tr{'fwhost err isingrp'}; + $fwhostsettings{'update'} = 'on'; + } + } + } + + if (!$errormessage){ + #on first save, we have an empty @target, so fill it with nothing + my $targetvalues=@target; + if ($targetvalues == '0'){ + @target="none"; + } + #on update, we have to delete the dummy entry + foreach my $key (keys %customgrp){ + if ($customgrp{$key}[0] eq $grp && $customgrp{$key}[2] eq "none"){ + delete $customgrp{$key}; + last; + } + } + &General::writehasharray("$configgrp", %customgrp); + &General::readhasharray("$configgrp", %customgrp); + #create array with new lines + foreach my $line (@target){ + push (@newgrp,"$grp,$rem,$line"); + } + #append new entries + my $key = &General::findhasharraykey (%customgrp); + foreach my $line (@newgrp){ + foreach my $i (0 .. 3) { $customgrp{$key}[$i] = "";} + my ($a,$b,$c,$d) = split (",",$line); + $customgrp{$key}[0] = $a; + $customgrp{$key}[1] = $b; + $customgrp{$key}[2] = $c; + $customgrp{$key}[3] = $type; + } + &General::writehasharray("$configgrp", %customgrp); + #update counter in Host/Net + $fwhostsettings{'update'}='on'; + } + #check if ruleupdate is needed + my $netgrpcount=0; + $netgrpcount=&getnetcount($grp); + if($netgrpcount > 0 ) + { + &General::firewall_config_changed(); + } + &addgrp; + &viewtablegrp; +} +if ($fwhostsettings{'ACTION'} eq 'saveservice') +{ + my $ICMP; + &General::readhasharray("$configsrv", %customservice ); + &General::readhasharray("$configgrp", %customgrp); + $errormessage=&checkports(%customservice); + if ($fwhostsettings{'PROT'} eq 'ICMP'){ + &General::readhasharray("${General::swroot}/fwhosts/icmp-types", %icmptypes); + foreach my $key (keys %icmptypes){ + if ("$icmptypes{$key}[0] ($icmptypes{$key}[1])" eq $fwhostsettings{'ICMP_TYPES'}){ + $ICMP=$icmptypes{$key}[0]; + } + } + } + if($ICMP eq ''){$ICMP=$fwhostsettings{'ICMP_TYPES'};} + if ($fwhostsettings{'PROT'} ne 'ICMP'){$ICMP='BLANK';} + #Check if a group with the same name already exists + if (!&checkgroup($fwhostsettings{'SRV_NAME'})){ + $errormessage = $Lang::tr{'fwhost err grpexist'}; + } + if (!$errormessage){ + my $key = &General::findhasharraykey (%customservice); + foreach my $i (0 .. 4) { $customservice{$key}[$i] = "";} + $customservice{$key}[0] = $fwhostsettings{'SRV_NAME'}; + $customservice{$key}[1] = $fwhostsettings{'SRV_PORT'}; + $customservice{$key}[2] = $fwhostsettings{'PROT'}; + $customservice{$key}[3] = $ICMP; + &General::writehasharray("$configsrv", %customservice ); + #reset fields + $fwhostsettings{'SRV_NAME'}=''; + $fwhostsettings{'SRV_PORT'}=''; + $fwhostsettings{'PROT'}=''; + $fwhostsettings{'ICMP_TYPES'}=''; + } + &addservice; +} +if ($fwhostsettings{'ACTION'} eq 'saveservicegrp') +{ + my $prot; + my $port; + my $tcpcounter=0; + my $udpcounter=0; + &General::readhasharray("$configsrvgrp", %customservicegrp ); + &General::readhasharray("$configsrv", %customservice ); + $errormessage=&checkservicegroup; + #Check if we have more than 15 services from one Protocol in the group + #iptables can only handle 15 ports/portranges via multiport + foreach my $key (keys %customservicegrp){ + if($customservicegrp{$key}[0] eq $fwhostsettings{'SRVGRP_NAME'}){ + foreach my $key1 (keys %customservice){ + $tcpcounter++ if $customservice{$key1}[2] eq 'TCP' && $customservicegrp{$key}[2] eq $customservice{$key1}[0]; + $tcpcounter++ if $customservice{$key1}[2] eq 'TCP' && $customservicegrp{$key}[2] eq $customservice{$key1}[0] && $customservice{$key1}[1] =~m/:/i; + $udpcounter++ if $customservice{$key1}[2] eq 'UDP' && $customservicegrp{$key}[2] eq $customservice{$key1}[0]; + $udpcounter++ if $customservice{$key1}[2] eq 'UDP' && $customservicegrp{$key}[2] eq $customservice{$key1}[0] && $customservice{$key1}[1] =~m/:/i; + } + } + } + if ($tcpcounter > 15){ + $errormessage=$Lang::tr{'fwhost err maxservicetcp'}; + } + if ($udpcounter > 15){ + $errormessage=$Lang::tr{'fwhost err maxserviceudp'}; + } + $tcpcounter=0; + $udpcounter=0; + #check remark + if ($fwhostsettings{'SRVGRP_REMARK'} ne '' && !&validremark($fwhostsettings{'SRVGRP_REMARK'})){ + $errormessage .= $Lang::tr{'fwhost err remark'}; + } + #Check if there is already a service with the same name + if(!&checkservice($fwhostsettings{'SRVGRP_NAME'})){ + $errormessage .= $Lang::tr{'fwhost err srv exists'}; + } + if (!$errormessage){ + #on first save, we have to enter a dummy value + if ($fwhostsettings{'CUST_SRV'} eq ''){ + $fwhostsettings{'CUST_SRV'}='none'; + } + #on update, we have to delete the dummy entry + foreach my $key (keys %customservicegrp){ + if ($customservicegrp{$key}[2] eq 'none' && $customservicegrp{$key}[0] eq $fwhostsettings{'SRVGRP_NAME'}){ + delete $customservicegrp{$key}; + last; + } + } + &General::writehasharray("$configsrvgrp", %customservicegrp ); + #check if remark has also changed + if ($fwhostsettings{'SRVGRP_REMARK'} ne $fwhostsettings{'oldsrvgrpremark'} && $fwhostsettings{'updatesrvgrp'} eq 'on') + { + foreach my $key (keys %customservicegrp) + { + if($customservicegrp{$key}[0] eq $fwhostsettings{'SRVGRP_NAME'} && $customservicegrp{$key}[1] eq $fwhostsettings{'oldsrvgrpremark'}) + { + $customservicegrp{$key}[1]=''; + $customservicegrp{$key}[1]=$fwhostsettings{'SRVGRP_REMARK'}; + } + } + } + my $key = &General::findhasharraykey (%customservicegrp); + foreach my $i (0 .. 2) { $customservice{$key}[$i] = "";} + $customservicegrp{$key}[0] = $fwhostsettings{'SRVGRP_NAME'}; + $customservicegrp{$key}[1] = $fwhostsettings{'SRVGRP_REMARK'}; + $customservicegrp{$key}[2] = $fwhostsettings{'CUST_SRV'}; + &General::writehasharray("$configsrvgrp", %customservicegrp ); + $fwhostsettings{'updatesrvgrp'}='on'; + } + &checkrulereload($fwhostsettings{'SRVGRP_NAME'}); + &addservicegrp; + &viewtableservicegrp; +} +# edit +if ($fwhostsettings{'ACTION'} eq 'editnet') +{ + &addnet; + &viewtablenet; +} +if ($fwhostsettings{'ACTION'} eq 'edithost') +{ + &addhost; + &viewtablehost; +} +if ($fwhostsettings{'ACTION'} eq 'editgrp') +{ + $fwhostsettings{'update'}='on'; + &addgrp; + &viewtablegrp; +} +if ($fwhostsettings{'ACTION'} eq 'editservice') +{ + $fwhostsettings{'updatesrv'}='on'; + &addservice; +} +if ($fwhostsettings{'ACTION'} eq 'editservicegrp') +{ + $fwhostsettings{'updatesrvgrp'} = 'on'; + &addservicegrp; + &viewtableservicegrp; +} +# reset +if ($fwhostsettings{'ACTION'} eq 'resetnet') +{ + $fwhostsettings{'HOSTNAME'} =""; + $fwhostsettings{'IP'} =""; + $fwhostsettings{'SUBNET'} =""; + &showmenu; +} +if ($fwhostsettings{'ACTION'} eq 'resethost') +{ + $fwhostsettings{'HOSTNAME'} =""; + $fwhostsettings{'IP'} =""; + $fwhostsettings{'type'} =""; + &showmenu; +} +if ($fwhostsettings{'ACTION'} eq 'resetgrp') +{ + $fwhostsettings{'grp_name'} =""; + $fwhostsettings{'remark'} =""; + &showmenu; +} +# delete +if ($fwhostsettings{'ACTION'} eq 'delnet') +{ + &General::readhasharray("$confignet", %customnetwork); + foreach my $key (keys %customnetwork) { + if($fwhostsettings{'key'} eq $customnetwork{$key}[0]){ + delete $customnetwork{$key}; + &General::writehasharray("$confignet", %customnetwork); + last; + } + } + &addnet; + &viewtablenet; +} +if ($fwhostsettings{'ACTION'} eq 'delhost') +{ + &General::readhasharray("$confighost", %customhost); + foreach my $key (keys %customhost) { + if($fwhostsettings{'key'} eq $customhost{$key}[0]){ + delete $customhost{$key}; + &General::writehasharray("$confighost", %customhost); + last; + } + } + &addhost; + &viewtablehost; +} +if ($fwhostsettings{'ACTION'} eq 'deletegrphost') +{ + my $grpremark; + my $grpname; + &General::readhasharray("$configgrp", %customgrp); + foreach my $key (keys %customgrp){ + if($customgrp{$key}[0].",".$customgrp{$key}[1].",".$customgrp{$key}[2].",".$customgrp{$key}[3] eq $fwhostsettings{'delhost'}){ + $grpname=$customgrp{$key}[0]; + $grpremark=$customgrp{$key}[1]; + #check if we delete the last entry, then generate dummy + if ($fwhostsettings{'last'} eq 'on'){ + $customgrp{$key}[1] = ''; + $customgrp{$key}[2] = 'none'; + $customgrp{$key}[3] = ''; + $fwhostsettings{'last'}=''; + last; + }else{ + delete $customgrp{$key}; + } + } + } + &General::writehasharray("$configgrp", %customgrp); + &General::firewall_config_changed(); + if ($fwhostsettings{'grpcnt'} > 0){ + &General::firewall_config_changed(); + } + if ($fwhostsettings{'update'} eq 'on'){ + $fwhostsettings{'remark'}= $grpremark; + $fwhostsettings{'grp_name'}=$grpname; + } + &addgrp; + &viewtablegrp; +} +if ($fwhostsettings{'ACTION'} eq 'delgrp') +{ + &General::readhasharray("$configgrp", %customgrp); + &decrease($fwhostsettings{'grp_name'}); + foreach my $key (sort keys %customgrp) + { + if($customgrp{$key}[0] eq $fwhostsettings{'grp_name'}) + { + delete $customgrp{$key}; + } + } + &General::writehasharray("$configgrp", %customgrp); + $fwhostsettings{'grp_name'}=''; + &addgrp; + &viewtablegrp; +} +if ($fwhostsettings{'ACTION'} eq 'delservice') +{ + &General::readhasharray("$configsrv", %customservice); + foreach my $key (keys %customservice) { + if($customservice{$key}[0] eq $fwhostsettings{'SRV_NAME'}){ + delete $customservice{$key}; + &General::writehasharray("$configsrv", %customservice); + last; + } + } + $fwhostsettings{'SRV_NAME'}=''; + $fwhostsettings{'SRV_PORT'}=''; + $fwhostsettings{'PROT'}=''; + &addservice; +} +if ($fwhostsettings{'ACTION'} eq 'delservicegrp') +{ + &General::readhasharray("$configsrvgrp", %customservicegrp); + &decreaseservice($fwhostsettings{'SRVGRP_NAME'}); + foreach my $key (sort keys %customservicegrp) + { + if($customservicegrp{$key}[0] eq $fwhostsettings{'SRVGRP_NAME'}) + { + delete $customservicegrp{$key}; + } + } + &General::writehasharray("$configsrvgrp", %customservicegrp); + $fwhostsettings{'SRVGRP_NAME'}=''; + &addservicegrp; + &viewtableservicegrp; +} +if ($fwhostsettings{'ACTION'} eq 'delgrpservice') +{ + my $grpname; + my $grpremark; + &General::readhasharray("$configsrvgrp", %customservicegrp); + foreach my $key (keys %customservicegrp){ + if($customservicegrp{$key}[0].",".$customservicegrp{$key}[1].",".$customservicegrp{$key}[2] eq $fwhostsettings{'delsrvfromgrp'}) + { + $grpname=$customservicegrp{$key}[0]; + $grpremark=$customservicegrp{$key}[1]; + if($fwhostsettings{'last'} eq 'on'){ + $customservicegrp{$key}[2] = 'none'; + $fwhostsettings{'last'} = ''; + last; + }else{ + delete $customservicegrp{$key}; + } + } + } + &General::writehasharray("$configsrvgrp", %customservicegrp); + &General::firewall_config_changed(); + if ($fwhostsettings{'updatesrvgrp'} eq 'on'){ + $fwhostsettings{'SRVGRP_NAME'}=$grpname; + $fwhostsettings{'SRVGRP_REMARK'}=$grpremark; + } + &addservicegrp; + &viewtableservicegrp; +} +if ($fwhostsettings{'ACTION'} eq $Lang::tr{'fwhost newnet'}) +{ + &addnet; + &viewtablenet; +} +if ($fwhostsettings{'ACTION'} eq $Lang::tr{'fwhost newhost'}) +{ + &addhost; + &viewtablehost; +} +if ($fwhostsettings{'ACTION'} eq $Lang::tr{'fwhost newgrp'}) +{ + &addgrp; + &viewtablegrp; +} +if ($fwhostsettings{'ACTION'} eq $Lang::tr{'fwhost newservice'}) +{ + &addservice; +} +if ($fwhostsettings{'ACTION'} eq $Lang::tr{'fwhost newservicegrp'}) +{ + &addservicegrp; + &viewtableservicegrp; +} +if ($fwhostsettings{'ACTION'} eq 'changegrpremark') +{ + &General::readhasharray("$configgrp", %customgrp); + if ($fwhostsettings{'oldrem'} ne $fwhostsettings{'newrem'} && (&validremark($fwhostsettings{'newrem'}) || $fwhostsettings{'newrem'} eq '')){ + foreach my $key (sort keys %customgrp) + { + if($customgrp{$key}[0] eq $fwhostsettings{'grp'} && $customgrp{$key}[1] eq $fwhostsettings{'oldrem'}) + { + $customgrp{$key}[1]=''; + $customgrp{$key}[1]=$fwhostsettings{'newrem'}; + } + } + &General::writehasharray("$configgrp", %customgrp); + $fwhostsettings{'update'}='on'; + $fwhostsettings{'remark'}=$fwhostsettings{'newrem'}; + }else{ + $errormessage=$Lang::tr{'fwhost err remark'}; + $fwhostsettings{'remark'}=$fwhostsettings{'oldrem'}; + $fwhostsettings{'grp_name'}=$fwhostsettings{'grp'}; + $fwhostsettings{'update'} = 'on'; + } + $fwhostsettings{'grp_name'}=$fwhostsettings{'grp'}; + &addgrp; + &viewtablegrp; +} +if ($fwhostsettings{'ACTION'} eq 'changesrvgrpremark') +{ + &General::readhasharray("$configsrvgrp", %customservicegrp ); + if ($fwhostsettings{'oldsrvrem'} ne $fwhostsettings{'newsrvrem'} && (&validremark($fwhostsettings{'newsrvrem'}) || $fwhostsettings{'newsrvrem'} eq '')){ + foreach my $key (sort keys %customservicegrp) + { + if($customservicegrp{$key}[0] eq $fwhostsettings{'srvgrp'} && $customservicegrp{$key}[1] eq $fwhostsettings{'oldsrvrem'}) + { + $customservicegrp{$key}[1]=''; + $customservicegrp{$key}[1]=$fwhostsettings{'newsrvrem'}; + } + } + &General::writehasharray("$configsrvgrp", %customservicegrp); + $fwhostsettings{'updatesrvgrp'}='on'; + $fwhostsettings{'SRVGRP_REMARK'}=$fwhostsettings{'newsrvrem'}; + }elsif($fwhostsettings{'oldsrvrem'} eq $fwhostsettings{'newsrvrem'}){ + &addservicegrp; + &viewtableservicegrp; + }else{ + $errormessage=$Lang::tr{'fwhost err remark'}; + $fwhostsettings{'SRVGRP_REMARK'}=$fwhostsettings{'oldsrvrem'}; + $fwhostsettings{'SRVGRP_NAME'}=$fwhostsettings{'srvgrp'}; + $fwhostsettings{'updatesrvgrp'} = 'on'; + } + $fwhostsettings{'SRVGRP_NAME'}=$fwhostsettings{'srvgrp'}; + &addservicegrp; + &viewtableservicegrp; +} +if ($fwhostsettings{'ACTION'} eq 'changesrvgrpname') +{ + &General::readhasharray("$configsrvgrp", %customservicegrp ); + if ($fwhostsettings{'oldsrvgrpname'} ne $fwhostsettings{'srvgrp'}){ + #Check new groupname + if (!&validhostname($fwhostsettings{'srvgrp'})){ + $errormessage.=$Lang::tr{'fwhost err name'}."<br>"; + } + if (!$errormessage){ + #Rename group in customservicegroup + foreach my $key (keys %customservicegrp) { + if($customservicegrp{$key}[0] eq $fwhostsettings{'oldsrvgrpname'}){ + $customservicegrp{$key}[0]=$fwhostsettings{'srvgrp'}; + } + } + &General::writehasharray("$configsrvgrp", %customservicegrp ); + #change name in FW Rules + &changenameinfw($fwhostsettings{'oldsrvgrpname'},$fwhostsettings{'srvgrp'},15); + } + } + &addservicegrp; + &viewtableservicegrp; +} +if ($fwhostsettings{'ACTION'} eq 'changegrpname') +{ + &General::readhasharray("$configgrp", %customgrp ); + if ($fwhostsettings{'oldgrpname'} ne $fwhostsettings{'grp'}){ + #Check new groupname + if (!&validhostname($fwhostsettings{'grp'})){ + $errormessage.=$Lang::tr{'fwhost err name'}."<br>"; + } + if (!$errormessage){ + #Rename group in customservicegroup + foreach my $key (keys %customgrp) { + if($customgrp{$key}[0] eq $fwhostsettings{'oldgrpname'}){ + $customgrp{$key}[0]=$fwhostsettings{'grp'}; + } + } + &General::writehasharray("$configgrp", %customgrp ); + #change name in FW Rules + &changenameinfw($fwhostsettings{'oldgrpname'},$fwhostsettings{'grp'},6); + } + } + &addgrp; + &viewtablegrp; +} +### VIEW ### +if($fwhostsettings{'ACTION'} eq '') +{ + &showmenu; +} +### FUNCTIONS ### +sub showmenu { + &Header::openbox('100%', 'left',); + print "$Lang::tr{'fwhost welcome'}"; + print<<END; + <br><br><table border='0' width='100%'> + <tr><td><form method='post'><input type='submit' name='ACTION' value='$Lang::tr{'fwhost newnet'}' ><input type='submit' name='ACTION' value='$Lang::tr{'fwhost newhost'}' ><input type='submit' name='ACTION' value='$Lang::tr{'fwhost newgrp'}' ></form></td> + <td align='right'><form method='post'><input type='submit' name='ACTION' value='$Lang::tr{'fwhost newservice'}' ><input type='submit' name='ACTION' value='$Lang::tr{'fwhost newservicegrp'}' ></form></td></tr> + <tr><td colspan='6'></td></tr></table> +END + &Header::closebox(); + +} +# Add +sub addnet +{ + &error; + &showmenu; + &Header::openbox('100%', 'left', $Lang::tr{'fwhost addnet'}); + $fwhostsettings{'orgname'}=$fwhostsettings{'HOSTNAME'}; + $fwhostsettings{'orgnetremark'}=$fwhostsettings{'NETREMARK'}; + print<<END; + <table border='0' width='100%' > + <tr><td width='15%'>$Lang::tr{'name'}:</td><td><form method='post'><input type='TEXT' name='HOSTNAME' id='textbox1' value='$fwhostsettings{'HOSTNAME'}' $fwhostsettings{'BLK_HOST'} size='20'><script>document.getElementById('textbox1').focus()</script></td></tr> + <tr><td>$Lang::tr{'fwhost netaddress'}:</td><td><input type='TEXT' name='IP' value='$fwhostsettings{'IP'}' $fwhostsettings{'BLK_IP'} size='20' maxlength='15'></td></tr> + <tr><td>$Lang::tr{'netmask'}:</td><td><input type='TEXT' name='SUBNET' value='$fwhostsettings{'SUBNET'}' $fwhostsettings{'BLK_IP'} size='20' maxlength='15'></td></tr> + <tr><td>$Lang::tr{'remark'}:</td><td><input type='TEXT' name='NETREMARK' value='$fwhostsettings{'NETREMARK'}' style='width: 98.5%;'></td></tr> + <tr><td colspan='6'><br></td></tr><tr> +END + if ($fwhostsettings{'ACTION'} eq 'editnet' || $fwhostsettings{'error'} eq 'on') + { + print "<td colspan='6' align='right'><input type='submit' value='$Lang::tr{'update'}' style='min-width:100px;'><input type='hidden' name='ACTION' value='updatenet'><input type='hidden' name='orgnetremark' value='$fwhostsettings{'orgnetremark'}' ><input type='hidden' name='orgname' value='$fwhostsettings{'orgname'}' ><input type='hidden' name='update' value='on'><input type='hidden' name='newnet' value='$fwhostsettings{'newnet'}'>"; + }else{ + print "<td colspan='6' align='right'><input type='submit' value='$Lang::tr{'save'}' style='min-width:100px;'><input type='hidden' name='ACTION' value='savenet'><input type='hidden' name='newnet' value='on'>"; + } + print "</form><form method='post' style='display:inline'><input type='submit' value='$Lang::tr{'fwhost back'}' style='min-width:100px;' ><input type='hidden' name='ACTION' value='resetnet'></form></td></tr></table>"; + &Header::closebox(); +} +sub addhost +{ + &error; + &showmenu; + &Header::openbox('100%', 'left', $Lang::tr{'fwhost addhost'}); + $fwhostsettings{'orgname'}=$fwhostsettings{'HOSTNAME'}; + $fwhostsettings{'orgremark'}=$fwhostsettings{'HOSTREMARK'}; + print<<END; + <table width='100%'> + <tr><td>$Lang::tr{'name'}:</td><td><form method='post' style='display:inline;'><input type='TEXT' name='HOSTNAME' id='textbox1' value='$fwhostsettings{'HOSTNAME'}' $fwhostsettings{'BLK_HOST'} size='20'><script>document.getElementById('textbox1').focus()</script></td></tr> + <tr><td>IP/MAC:</td><td><input type='TEXT' name='IP' value='$fwhostsettings{'IP'}' $fwhostsettings{'BLK_IP'} size='20' maxlength='17'></td></tr> + <tr><td width='10%'>$Lang::tr{'remark'}:</td><td><input type='TEXT' name='HOSTREMARK' value='$fwhostsettings{'HOSTREMARK'}' style='width:98%;'></td></tr> + <tr><td colspan='5'><br></td></tr><tr> +END + + if ($fwhostsettings{'ACTION'} eq 'edithost' || $fwhostsettings{'error'} eq 'on') + { + + print " <td colspan='4' align='right'><input type='submit' value='$Lang::tr{'update'}' style='min-width:100px;'/><input type='hidden' name='ACTION' value='updatehost'><input type='hidden' name='orgremark' value='$fwhostsettings{'orgremark'}' ><input type='hidden' name='orgname' value='$fwhostsettings{'orgname'}' ><input type='hidden' name='update' value='on'><input type='hidden' name='newhost' value='$fwhostsettings{'newhost'}'></form>"; + }else{ + print " <td colspan='4' align='right'><input type='submit' name='savehost' value='$Lang::tr{'save'}' style='min-width:100px;' /><input type='hidden' name='ACTION' value='savehost' /><input type='hidden' name='newhost' value='on'>"; + } + print " </form><form method='post' style='display:inline'><input type='submit' value='$Lang::tr{'fwhost back'}' style='min-width:100px;' ><input type='hidden' name='ACTION' value='resethost'></form></td></tr></table>"; + &Header::closebox(); +} +sub addgrp +{ + &hint; + &error; + &showmenu; + &Header::openbox('100%', 'left', $Lang::tr{'fwhost addgrp'}); + &General::setup_default_networks(%defaultNetworks); + &General::readhasharray("$configccdnet", %ccdnet); + &General::readhasharray("$confignet", %customnetwork); + &General::readhasharray("$configccdhost", %ccdhost); + &General::readhasharray("$confighost", %customhost); + &General::readhasharray("$configipsec", %ipsecconf); + + my %checked=(); + my $show=''; + $checked{'check1'}{'off'} = ''; + $checked{'check1'}{'on'} = ''; + $checked{'grp2'}{$fwhostsettings{'grp2'}} = 'CHECKED'; + $fwhostsettings{'oldremark'}=$fwhostsettings{'remark'}; + $fwhostsettings{'oldgrpname'}=$fwhostsettings{'grp_name'}; + my $grp=$fwhostsettings{'grp_name'}; + my $rem=$fwhostsettings{'remark'}; + if ($fwhostsettings{'update'} eq ''){ + print<<END; + <table width='100%' border='0'> + <tr> + <td style='width:15%;'>$Lang::tr{'fwhost addgrpname'}</td> + <td><form method='post'><input type='TEXT' name='grp_name' value='$fwhostsettings{'grp_name'}' size='30'></td> + </tr> + <tr> + <td>$Lang::tr{'remark'}:</td> + <td ><input type='TEXT' name='remark' value='$fwhostsettings{'remark'}' style='width: 99%;'></td> + </tr> + <tr> + <td colspan='2'><br></td> + </tr> + </table> +END + }else{ + print<<END; + <table width='100%' border='0'><form method='post'> + <tr> + <td style='width:15%;'>$Lang::tr{'fwhost addgrpname'}</td> + <td style='width:30%;'><input type='TEXT' name='grp' value='$fwhostsettings{'grp_name'}' size='30'></td> + <td><input type='submit' value='$Lang::tr{'fwhost change'}'><input type='hidden' name='oldgrpname' value='$fwhostsettings{'oldgrpname'}'><input type='hidden' name='ACTION' value='changegrpname'></td> + <td></td></form> + </tr> + <tr><form method='post' style='display:inline'> + <td>$Lang::tr{'remark'}:</td> + <td colspan='2' style='width:98%;'><input type='TEXT' name='newrem' value='$fwhostsettings{'remark'}' style='width:98%;'></td> + <td align='right'><input type='submit' value='$Lang::tr{'fwhost change'}'><input type='hidden' name='grp' value='$fwhostsettings{'grp_name'}'><input type='hidden' name='oldrem' value='$fwhostsettings{'oldremark'}'><input type='hidden' name='ACTION' value='changegrpremark' ></td> + </tr> + </table></form> + <br><br> +END + } + if ($fwhostsettings{'update'} eq 'on'){ + print<<END; + <form method='post'><input type='hidden' name='remark' value='$rem'><input type='hidden' name='grp_name' value='$grp'> + <table width='100%' border='0'> + <tr><td width=50% valign='top'> + <table width='90%' border='0'> + <tr> + <td style='width:15em;'> + <label> + <input type='radio' name='grp2' value='std_net' id='DEFAULT_SRC_ADR' checked> + $Lang::tr{'fwhost stdnet'} + </label> + </td> + <td style='text-align:right;'> + <select name='DEFAULT_SRC_ADR' style='width:16em;'> +END + foreach my $network (sort keys %defaultNetworks) + { + next if($defaultNetworks{$network}{'LOCATION'} eq "IPCOP"); + next if($defaultNetworks{$network}{'NAME'} eq "IPFire"); + print "<option value='$defaultNetworks{$network}{'NAME'}'"; + print " selected='selected'" if ($fwhostsettings{'DEFAULT_SRC_ADR'} eq $defaultNetworks{$network}{'NAME'}); + my $defnet="$defaultNetworks{$network}{'NAME'}_NETADDRESS"; + my $defsub="$defaultNetworks{$network}{'NAME'}_NETMASK"; + my $defsub1=&General::subtocidr($ownnet{$defsub}); + $ownnet{$defnet}='' if ($defaultNetworks{$network}{'NAME'} eq 'RED'); + if ($ownnet{$defnet}){ + print ">$network ($ownnet{$defnet}/$defsub1)</option>"; + }else{ + print ">$network</option>"; + } + } + print"</select></td></tr>"; + if (! -z $confignet){ + print<<END; + <tr> + <td> + <label> + <input type='radio' name='grp2' id='CUST_SRC_NET' value='cust_net' $checked{'grp2'}{'cust_net'}> + $Lang::tr{'fwhost cust net'}: + </label> + </td> + <td style='text-align:right;'> + <select name='CUST_SRC_NET' style='width:16em;'>"; +END + foreach my $key (sort { ncmp($customnetwork{$a}[0],$customnetwork{$b}[0]) } keys %customnetwork) { + print"<option>$customnetwork{$key}[0]</option>"; + } + print"</select></td></tr>"; + } + if (! -z $confighost){ + print<<END; + <tr> + <td valign='top'> + <label> + <input type='radio' name='grp2' id='CUST_SRC_HOST' value='cust_host' $checked{'grp2'}{'cust_host'}> + $Lang::tr{'fwhost cust addr'}: + </label> + </td> + <td style='text-align:right;'> + <select name='CUST_SRC_HOST' style='width:16em;'>"; +END + foreach my $key (sort { ncmp($customhost{$a}[0],$customhost{$b}[0]) } keys %customhost) { + print"<option>$customhost{$key}[0]</option>"; + } + print"</select></td></tr>"; + } + print"</table>"; + #Inner table right + print"</td><td align='right' style='vertical-align:top;'><table width='90%' border='0'>"; + #OVPN networks + if (! -z $configccdnet){ + print<<END; + <td style='width:15em;'> + <label> + <input type='radio' name='grp2' id='OVPN_CCD_NET' value='ovpn_net' $checked{'grp2'}{'ovpn_net'}> + $Lang::tr{'fwhost ccdnet'} + </label> + </td> + <td style='text-align:right;'> + <select name='OVPN_CCD_NET' style='width:16em;'>"; +END + foreach my $key (sort { ncmp($ccdnet{$a}[0],$ccdnet{$b}[0]) } keys %ccdnet) + { + print"<option value='$ccdnet{$key}[0]'>$ccdnet{$key}[0]</option>"; + } + print"</select></td></tr>"; + } + #OVPN clients + my @ovpn_clients=(); + foreach my $key (sort { ncmp($ccdhost{$a}[0],$ccdhost{$b}[0]) } keys %ccdhost) + { + if ($ccdhost{$key}[33] ne ''){ + $show='1'; + push (@ovpn_clients,$ccdhost{$key}[1]); + } + } + if ($show eq '1'){ + $show=''; + print<<END; + <td style='width:15em;'> + <label> + <input type='radio' name='grp2' value='ovpn_host' $checked{'grp2'}{'ovpn_host'}> + $Lang::tr{'fwhost ccdhost'} + </label> + </td> + <td style='text-align:right;'> + <select name='OVPN_CCD_HOST' style='width:16em;'>" if ($show eq ''); +END + foreach(@ovpn_clients){ + print"<option value='$_'>$_</option>"; + } + print"</select></td></tr>"; + } + #OVPN n2n networks + my @OVPN_N2N=(); + foreach my $key (sort { ncmp($ccdhost{$a}[1],$ccdhost{$b}[1]) } keys %ccdhost) { + if($ccdhost{$key}[3] eq 'net'){ + $show='1'; + push (@OVPN_N2N,$ccdhost{$key}[1]); + } + } + if ($show eq '1'){ + $show=''; + print<<END; + <td style='width:15em;'> + <label> + <input type='radio' name='grp2' id='OVPN_N2N' value='ovpn_n2n' $checked{'grp2'}{'ovpn_n2n'}> + $Lang::tr{'fwhost ovpn_n2n'}: + </label> + </td> + <td style='text-align:right;'> + <select name='OVPN_N2N' style='width:16em;'>" +END + foreach(@OVPN_N2N){ + print"<option>$_</option>"; + } + print"</select></td></tr>"; + } + #IPsec networks + my @IPSEC_N2N=(); + foreach my $key (sort { ncmp($ipsecconf{$a}[0],$ipsecconf{$b}[0]) } keys %ipsecconf) { + if ($ipsecconf{$key}[3] eq 'net'){ + $show='1'; + push (@IPSEC_N2N,$ipsecconf{$key}[1]); + } + } + if ($show eq '1'){ + $show=''; + print<<END; + <td style='width:15em;'> + <label> + <input type='radio' name='grp2' id='IPSEC_NET' value='ipsec_net' $checked{'grp2'}{'ipsec_net'}> + $Lang::tr{'fwhost ipsec net'} + </label> + </td> + <td style='text-align:right;'> + <select name='IPSEC_NET' style='width:16em;'>" +END + foreach(@IPSEC_N2N){ + print"<option value='$_'>$_</option>"; + } + } + print"</select></td></tr>"; + print"</table>"; + print"</td></tr></table>"; + print"<br><br>"; + } + print"<table width='100%'>"; + print"<tr><td style='text-align:right;'><input type='submit' value='$Lang::tr{'add'}' style='min-width:100px;' /><input type='hidden' name='oldremark' value='$fwhostsettings{'oldremark'}'><input type='hidden' name='update' value="$fwhostsettings{'update'}"><input type='hidden' name='ACTION' value='savegrp' ></form><form method='post' style='display:inline'><input type='submit' value='$Lang::tr{'fwhost back'}' style='min-width:100px;'><input type='hidden' name='ACTION' value='resetgrp'></form></td></table>"; + &Header::closebox(); +} +sub addservice +{ + &error; + &showmenu; + &Header::openbox('100%', 'left', $Lang::tr{'fwhost addservice'}); + if ($fwhostsettings{'updatesrv'} eq 'on') + { + $fwhostsettings{'oldsrvname'} = $fwhostsettings{'SRV_NAME'}; + $fwhostsettings{'oldsrvport'} = $fwhostsettings{'SRV_PORT'}; + $fwhostsettings{'oldsrvprot'} = $fwhostsettings{'PROT'}; + $fwhostsettings{'oldsrvicmp'} = $fwhostsettings{'ICMP'}; + } + print<<END; + <table width='100%' border='0'><form method='post'> + <tr><td width='10%' nowrap='nowrap'>$Lang::tr{'fwhost srv_name'}:</td><td><input type='text' name='SRV_NAME' id='textbox1' value='$fwhostsettings{'SRV_NAME'}' size='24'><script>document.getElementById('textbox1').focus()</script></td></tr> + <tr><td width='10%' nowrap='nowrap'>$Lang::tr{'fwhost prot'}:</td><td><select name='PROT' id='protocol' > +END + foreach ("TCP","UDP","ICMP") + { + if ($_ eq $fwhostsettings{'PROT'}) + { + print"<option selected>$_</option>"; + }else{ + print"<option>$_</option>"; + } + } + print<<END; + </select></td></tr></table> + <div id='PROTOKOLL' class='noscript'><table width=100%' border='0'><tr><td width='10%' nowrap='nowrap'>$Lang::tr{'fwhost icmptype'}</td><td><select name='ICMP_TYPES'> +END + &General::readhasharray("${General::swroot}/fwhosts/icmp-types", %icmptypes); + print"<option value='All ICMP-Types'>$Lang::tr{'fwdfw all icmp'}</option>"; + foreach my $key (sort { ncmp($icmptypes{$a}[0],$icmptypes{$b}[0]) }keys %icmptypes){ + if ($icmptypes{$key}[0] eq $fwhostsettings{'oldsrvicmp'}){ + print"<option selected>$icmptypes{$key}[0] ($icmptypes{$key}[1])</option>"; + }else{ + print"<option>$icmptypes{$key}[0] ($icmptypes{$key}[1])</option>"; + } + } + print<<END; + </select></td></tr></table></div> + <div id='PORT' class='noscript'><table width='100%' border='0'><tr><td width='10%'>$Lang::tr{'fwhost port'}:</td><td><input type='text' name='SRV_PORT' value='$fwhostsettings{'SRV_PORT'}' maxlength='11' size='24'></td></tr></table></div> + <table width='100%' border='0'><tr><td colspan='6'><br></td></tr> + <tr><td colspan='6' align='right'> +END + if ($fwhostsettings{'updatesrv'} eq 'on') + { + print<<END; + <input type='submit' value='$Lang::tr{'update'}'style='min-width:100px;' > + <input type='hidden' name='ACTION' value='updateservice'> + <input type='hidden' name='oldsrvname' value='$fwhostsettings{'oldsrvname'}'> + <input type='hidden' name='oldsrvport' value='$fwhostsettings{'oldsrvport'}'> + <input type='hidden' name='oldsrvprot' value='$fwhostsettings{'oldsrvprot'}'> + <input type='hidden' name='oldsrvicmp' value='$fwhostsettings{'oldsrvicmp'}'> + </form> +END + }else{ + print"<input type='submit' value='$Lang::tr{'save'}' style='min-width:100px;'><input type='hidden' name='ACTION' value='saveservice'></form>"; + } + print<<END; + <form style='display:inline;' method='post'><input type='submit' value='$Lang::tr{'fwhost back'}' style='min-width:100px;'></form></td></tr> + </table></form> +END + &Header::closebox(); + &viewtableservice; +} +sub addservicegrp +{ + &hint; + &error; + &showmenu; + &Header::openbox('100%', 'left', $Lang::tr{'fwhost addservicegrp'}); + $fwhostsettings{'oldsrvgrpremark'}=$fwhostsettings{'SRVGRP_REMARK'}; + $fwhostsettings{'oldsrvgrpname'}=$fwhostsettings{'SRVGRP_NAME'}; + if ($fwhostsettings{'updatesrvgrp'} eq ''){ + print<<END; + <table width='100%' border='0'><form method='post'> + <tr><td width='10%'>$Lang::tr{'fwhost addgrpname'}</td><td><input type='text' name='SRVGRP_NAME' value='$fwhostsettings{'SRVGRP_NAME'}' size='24'></td></tr> + <tr><td width='10%'>$Lang::tr{'remark'}:</td><td><input type='text' name='SRVGRP_REMARK' value='$fwhostsettings{'SRVGRP_REMARK'}' style='width: 98%;'></td></tr> + <tr><td colspan='2'><br></tr> + </table> +END + }else{ + print<<END; + <table width='100%'><form method='post' style='display:inline'> + <tr><td width='10%'>$Lang::tr{'fwhost addgrpname'}</td><td width='20%'><input type='text' name='srvgrp' value='$fwhostsettings{'SRVGRP_NAME'}' size='14'></td><td align='left'><input type='submit' value='$Lang::tr{'fwhost change'}'><input type='hidden' name='oldsrvgrpname' value='$fwhostsettings{'oldsrvgrpname'}'><input type='hidden' name='ACTION' value='changesrvgrpname'></td><td width='3%'></td></form></tr> + <tr> + <form method='post'> + <td width='10%'> + $Lang::tr{'remark'}: + </td> + <td colspan='2'> + <input type='text' name='newsrvrem' value='$fwhostsettings{'SRVGRP_REMARK'}' style='width:98%;'> + </td> + <td align='right'> + <input type='submit' value='$Lang::tr{'fwhost change'}'> + <input type='hidden' name='oldsrvrem' value='$fwhostsettings{'oldsrvgrpremark'}'> + <input type='hidden' name='srvgrp' value='$fwhostsettings{'SRVGRP_NAME'}'> + <input type='hidden' name='ACTION' value='changesrvgrpremark' > + </td> + </tr> + <tr> + <td colspan='4'> + <br> + </td> + </tr> + </table> + </form> +END + } + if($fwhostsettings{'updatesrvgrp'} eq 'on'){ + print<<END; + <form method='post'><input type='hidden' name='SRVGRP_REMARK' value='$fwhostsettings{'SRVGRP_REMARK'}'><input type='hidden' name='SRVGRP_NAME' value='$fwhostsettings{'SRVGRP_NAME'}'><table border='0' width='100%'> + <tr><td width='10%' nowrap='nowrap'>$Lang::tr{'add'}: </td><td><select name='CUST_SRV' style='min-width:185px;'> +END + &General::readhasharray("$configsrv", %customservice); + #Protocols for use in servicegroups + print "<optgroup label='$Lang::tr{'fwhost cust service'}'>"; + foreach my $key (sort { ncmp($customservice{$a}[0],$customservice{$b}[0]) } keys %customservice) + { + print "<option>$customservice{$key}[0]</option>"; + } + print "</optgroup>"; + print "<optgroup label='$Lang::tr{'protocol'}'>"; + print "<option>GRE</option>"; + print "<option>AH</option>"; + print "<option>ESP</option>"; + print "<option>IGMP</option>"; + print "<option>IPIP</option>"; + print "<option value='IPV6'>IPv6 encap</option>"; + print "</optgroup>"; + print<<END; + </select></td></tr> + <tr><td colspan='4'><br><br></td></tr> + <tr><td colspan='4'></td></tr> + </table> +END + } + print<<END; + <table width='100%'> + <tr><td align='right'><input type='submit' value='$Lang::tr{'add'}' style='min-width:100px;' /><input type='hidden' name='updatesrvgrp' value='$fwhostsettings{'updatesrvgrp'}'><input type='hidden' name='oldsrvgrpremark' value='$fwhostsettings{'oldsrvgrpremark'}'><input type='hidden' name='ACTION' value='saveservicegrp' ></form><form style='display:inline;' method='post'><input type='submit' value='$Lang::tr{'fwhost back'}' style='min-width:100px;'></td></tr> + </table></form> +END + &Header::closebox(); +} +# View +sub viewtablenet +{ + if(! -z $confignet){ + &Header::openbox('100%', 'left', $Lang::tr{'fwhost cust net'}); + &General::readhasharray("$confignet", %customnetwork); + &General::readhasharray("$configgrp", %customgrp); + &General::readhasharray("$fwconfigfwd", %fwfwd); + &General::readhasharray("$fwconfiginp", %fwinp); + &General::readhasharray("$fwconfigout", %fwout); + + if (!keys %customnetwork) + { + print "<center><b>$Lang::tr{'fwhost empty'}</b>"; + }else{ + print<<END; + <table width='100%' cellspacing='0' class='tbl'> + <tr><th align='center'><b>$Lang::tr{'name'}</b></th><th align='center'><b>$Lang::tr{'fwhost netaddress'}</b></th><th align='center'><b>$Lang::tr{'remark'}</b></th><th align='center'><b>$Lang::tr{'used'}</b></th><th></th><th width='3%'></th></tr> +END + } + my $count=0; + my $col=''; + foreach my $key (sort {ncmp($a,$b)} keys %customnetwork) { + if ($fwhostsettings{'ACTION'} eq 'editnet' && $fwhostsettings{'HOSTNAME'} eq $customnetwork{$key}[0]) { + print" <tr>"; + $col="bgcolor='${Header::colouryellow}'"; + }elsif ($count % 2) + { + $col="bgcolor='$color{'color20'}'"; + print" <tr>"; + }else + { + $col="bgcolor='$color{'color22'}'"; + print" <tr>"; + } + my $colnet="$customnetwork{$key}[1]/".&General::subtocidr($customnetwork{$key}[2]); + my $netcount=&getnetcount($customnetwork{$key}[0]); + print"<td width='20%' $col><form method='post'>$customnetwork{$key}[0]</td><td width='15%' align='center' $col>".&getcolor($colnet)."</td><td width='40%' $col>$customnetwork{$key}[3]</td><td align='center' $col>$netcount x</td>"; + print<<END; + <td width='1%' $col><input type='image' src='/images/edit.gif' align='middle' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' /> + <input type='hidden' name='ACTION' value='editnet'> + <input type='hidden' name='HOSTNAME' value='$customnetwork{$key}[0]' /> + <input type='hidden' name='IP' value='$customnetwork{$key}[1]' /> + <input type='hidden' name='SUBNET' value='$customnetwork{$key}[2]' /> + <input type='hidden' name='NETREMARK' value='$customnetwork{$key}[3]' /> + </td></form> +END + if($netcount == '0') + { + print"<td width='1%' $col><form method='post'><input type='image' src='/images/delete.gif' align='middle' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' /><input type='hidden' name='ACTION' value='delnet' /><input type='hidden' name='key' value='$customnetwork{$key}[0]' /></td></form></tr>"; + }else{ + print"<td $col></td></tr>"; + } + $count++; + } + print"</table>"; + &Header::closebox(); + } + +} +sub getcolor +{ + my $c=shift; + my $sip; + my $scidr; + #Check if MAC + if (&General::validmac($c)){ return $c;} + + #Check if we got a full IP with subnet then split it + if($c =~ /^(.*?)/(.*?)$/){ + ($sip,$scidr) = split ("/",$c); + }else{ + $sip=$c; + } + + #Now check if IP is part of ORANGE,BLUE or GREEN + if ( &General::IpInSubnet($sip,$netsettings{'ORANGE_ADDRESS'},$netsettings{'ORANGE_NETMASK'})){ + $tdcolor="<font style='color: $Header::colourorange;'>$c</font>"; + return $tdcolor; + } + if ( &General::IpInSubnet($sip,$netsettings{'GREEN_ADDRESS'},$netsettings{'GREEN_NETMASK'})){ + $tdcolor="<font style='color: $Header::colourgreen;'>$c</font>"; + return $tdcolor; + } + if ( &General::IpInSubnet($sip,$netsettings{'BLUE_ADDRESS'},$netsettings{'BLUE_NETMASK'})){ + $tdcolor="<font style='color: $Header::colourblue;'>$c</font>"; + return $tdcolor; + } + + #Check if IP is part of OpenVPN N2N subnet + foreach my $key (sort keys %ccdhost){ + if ($ccdhost{$key}[3] eq 'net'){ + my ($a,$b) = split("/",$ccdhost{$key}[11]); + if (&General::IpInSubnet($sip,$a,$b)){ + $tdcolor="<font style='color:$Header::colourovpn ;'>$c</font>"; + return $tdcolor; + } + } + } + + #Check if IP is part of OpenVPN dynamic subnet + my ($a,$b) = split("/",$ovpnsettings{'DOVPN_SUBNET'}); + if (&General::IpInSubnet($sip,$a,$b)){ + $tdcolor="<font style='color: $Header::colourovpn;'>$c</font>"; + return $tdcolor; + } + + #Check if IP is part of OpenVPN static subnet + foreach my $key (sort keys %ccdnet){ + my ($a,$b) = split("/",$ccdnet{$key}[1]); + $b =&General::iporsubtodec($b); + if (&General::IpInSubnet($sip,$a,$b)){ + $tdcolor="<font style='color: $Header::colourovpn;'>$c</font>"; + return $tdcolor; + } + } + + #Check if IP is part of IPsec RW network + if ($ipsecsettings{'RW_NET'} ne ''){ + my ($a,$b) = split("/",$ipsecsettings{'RW_NET'}); + $b=&General::iporsubtodec($b); + if (&General::IpInSubnet($sip,$a,$b)){ + $tdcolor="<font style='color: $Header::colourvpn;'>$c</font>"; + return $tdcolor; + } + } + + #Check if IP is part of a IPsec N2N network + foreach my $key (sort keys %ipsecconf){ + my ($a,$b) = split("/",$ipsecconf{$key}[11]); + if (&General::IpInSubnet($sip,$a,$b)){ + $tdcolor="<font style='color: $Header::colourvpn;'>$c</font>"; + return $tdcolor; + } + } + return "$c"; +} +sub viewtablehost +{ + if (! -z $confighost){ + &Header::openbox('100%', 'left', $Lang::tr{'fwhost cust addr'}); + &General::readhasharray("$confighost", %customhost); + &General::readhasharray("$configccdnet", %ccdnet); + &General::readhasharray("$configccdhost", %ccdhost); + &General::readhasharray("$fwconfigfwd", %fwfwd); + &General::readhasharray("$fwconfiginp", %fwinp); + &General::readhasharray("$fwconfigout", %fwout); + &General::readhasharray("$configgrp", %customgrp); + if (!keys %customhost) + { + print "<center><b>$Lang::tr{'fwhost empty'}</b>"; + }else{ + print<<END; + <table width='100%' cellspacing='0' class='tbl'> + <tr><th align='center'><b>$Lang::tr{'name'}</b></th><th align='center'><b>$Lang::tr{'fwhost ip_mac'}</b></th><th align='center'><b>$Lang::tr{'remark'}</b></th><th align='center'><b>$Lang::tr{'used'}</b></th><th></th><th width='3%'></th></tr> +END + } + my $count=0; + my $col=''; + foreach my $key (sort { ncmp ($customhost{$a}[0],$customhost{$b}[0])} keys %customhost) { + if ( ($fwhostsettings{'ACTION'} eq 'edithost' || $fwhostsettings{'error'}) && $fwhostsettings{'HOSTNAME'} eq $customhost{$key}[0]) { + print" <tr>"; + $col="bgcolor='${Header::colouryellow}'"; + }elsif ($count % 2){ + print" <tr>"; + $col="bgcolor='$color{'color20'}'"; + }else{ + $col="bgcolor='$color{'color22'}'"; + print" <tr>"; + } + my ($ip,$sub)=split(///,$customhost{$key}[2]); + $customhost{$key}[4]=~s/\s+//g; + my $hostcount=0; + $hostcount=&gethostcount($customhost{$key}[0]); + print"<td width='20%' $col>$customhost{$key}[0]</td><td width='20%' align='center' $col >".&getcolor($ip)."</td><td width='50%' align='left' $col>$customhost{$key}[3]</td><td align='center' $col>$hostcount x</td>"; + print<<END; + <td width='1%' $col><form method='post'><input type='image' src='/images/edit.gif' align='middle' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' /> + <input type='hidden' name='ACTION' value='edithost' /> + <input type='hidden' name='HOSTNAME' value='$customhost{$key}[0]' /> + <input type='hidden' name='IP' value='$ip' /> + <input type='hidden' name='type' value='$customhost{$key}[1]' /> + <input type='hidden' name='HOSTREMARK' value='$customhost{$key}[3]' /> + </form></td> +END + if($hostcount == '0') + { + print"<td width='1%' $col><form method='post'><input type='image' src='/images/delete.gif' align='middle' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' /><input type='hidden' name='ACTION' value='delhost' /><input type='hidden' name='key' value='$customhost{$key}[0]' /></td></form></tr>"; + }else{ + print"<td width='1%' $col></td></tr>"; + } + $count++; + } + print"</table>"; + &Header::closebox(); + } +} +sub viewtablegrp +{ + if(! -z "$configgrp"){ + &Header::openbox('100%', 'left', $Lang::tr{'fwhost cust grp'}); + &General::readhasharray("$configgrp", %customgrp); + &General::readhasharray("$configipsec", %ipsecconf); + &General::readhasharray("$configccdhost", %ccdhost); + &General::readhasharray("$configccdnet", %ccdnet); + &General::readhasharray("$confighost", %customhost); + &General::readhasharray("$confignet", %customnetwork); + &General::readhasharray("$fwconfigfwd", %fwfwd); + &General::readhasharray("$fwconfiginp", %fwinp); + &General::readhasharray("$fwconfigout", %fwout); + my @grp=(); + my $helper=''; + my $count=1; + my $grpname; + my $remark; + my $number; + my $delflag; + my @counter; + my %hash; + if (!keys %customgrp) + { + print "<center><b>$Lang::tr{'fwhost err emptytable'}</b>"; + }else{ + #get all groups in a hash + foreach my $key (sort { ncmp($customgrp{$a}[0],$customgrp{$b}[0]) } sort { ncmp($customgrp{$a}[2],$customgrp{$b}[2]) } keys %customgrp){ + push (@counter,$customgrp{$key}[0]); + } + foreach my $key1 (@counter) { + $hash{$key1}++ ; + } + foreach my $key (sort { ncmp($customgrp{$a}[0],$customgrp{$b}[0]) } sort { ncmp($customgrp{$a}[2],$customgrp{$b}[2]) } keys %customgrp){ + $count++; + if ($helper ne $customgrp{$key}[0]){ + $delflag='0'; + foreach my $key1 (sort { ncmp($customgrp{$a}[0],$customgrp{$b}[0]) } sort { ncmp($customgrp{$a}[2],$customgrp{$b}[2]) } keys %customgrp){ + if ($customgrp{$key}[0] eq $customgrp{$key1}[0]) + { + $delflag++; + } + if($delflag > 1){ + last; + } + } + $number=1; + if ($customgrp{$key}[2] eq "none"){$customgrp{$key}[2]=$Lang::tr{'fwhost err emptytable'};} + $grpname=$customgrp{$key}[0]; + $remark="$customgrp{$key}[1]"; + if($count gt 1){ print"</table>";$count=1;} + print "<br><b><u>$grpname</u></b> "; + print " <b>$Lang::tr{'remark'}:</b>  $remark   " if ($remark ne ''); + my $netgrpcount=&getnetcount($grpname); + print "<b>$Lang::tr{'used'}:</b> $netgrpcount x"; + if($netgrpcount == '0') + { + print"<form method='post' style='display:inline'><input type='image' src='/images/delete.gif' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' align='right' /><input type='hidden' name='grp_name' value='$grpname' ><input type='hidden' name='ACTION' value='delgrp'></form>"; + } + print"<form method='post' style='display:inline'><input type='image' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' align='right' /><input type='hidden' name='grp_name' value='$grpname' ><input type='hidden' name='remark' value='$remark' ><input type='hidden' name='ACTION' value='editgrp'></form>"; + print"<table width='100%' cellspacing='0' class='tbl'><tr><th align='center'><b>$Lang::tr{'name'}</b></th><th align='center'><b>$Lang::tr{'fwhost ip_mac'}</b></th><th align='center' width='25%'><b>$Lang::tr{'fwhost type'}</th><th></th></tr>"; + } + my $col=''; + if ( ($fwhostsettings{'ACTION'} eq 'editgrp' || $fwhostsettings{'update'} ne '') && $fwhostsettings{'grp_name'} eq $customgrp{$key}[0]) { + print" <tr>"; + $col="bgcolor='${Header::colouryellow}'"; + }elsif ($count %2 == 0){ + print"<tr>"; + $col="bgcolor='$color{'color20'}'"; + }else{ + print"<tr>"; + $col="bgcolor='$color{'color22'}'"; + } + my $ip=&getipforgroup($customgrp{$key}[2],$customgrp{$key}[3]); + if ($ip eq ''){ + print"<tr>"; + $col="bgcolor='${Header::colouryellow}'"; + } + print "<td width='39%' align='left' $col>"; + if($customgrp{$key}[3] eq 'Standard Network'){ + print &get_name($customgrp{$key}[2])."</td>"; + }else{ + print "$customgrp{$key}[2]</td>"; + } + if ($ip eq '' && $customgrp{$key}[2] ne $Lang::tr{'fwhost err emptytable'}){ + print "<td align='center' $col>$Lang::tr{'fwhost deleted'}</td><td align='center' $col>$customgrp{$key}[3]</td><td width='1%' $col><form method='post'>"; + }else{ + my ($colip,$colsub) = split("/",$ip); + $ip="$colip/".&General::subtocidr($colsub) if ($colsub); + print"<td align='center' $col>".&getcolor($ip)."</td><td align='center' $col>$customgrp{$key}[3]</td><td width='1%' $col><form method='post'>"; + } + if ($delflag > 0 && $ip ne ''){ + print"<input type='image' src='/images/delete.gif' align='middle' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' />"; + #check if this group has only one entry + foreach my $key2 (keys %hash) { + if ($hash{$key2}<2 && $key2 eq $customgrp{$key}[0]){ + print "<input type='hidden' name='last' value='on'>" ; + } + } + } + print"<input type='hidden' name='ACTION' value='deletegrphost'><input type='hidden' name='grpcnt' value='$customgrp{$key}[4]'><input type='hidden' name='update' value='$fwhostsettings{'update'}'><input type='hidden' name='delhost' value='$grpname,$remark,$customgrp{$key}[2],$customgrp{$key}[3]'></form></td></tr>"; + + $helper=$customgrp{$key}[0]; + $number++; + } + print"</table>"; + } + &Header::closebox(); +} + +} +sub viewtableservice +{ + my $count=0; + my $srvcount; + if(! -z "$configsrv") + { + &Header::openbox('100%', 'left', $Lang::tr{'fwhost services'}); + &General::readhasharray("$configsrv", %customservice); + &General::readhasharray("$configsrvgrp", %customservicegrp); + &General::readhasharray("$fwconfigfwd", %fwfwd); + &General::readhasharray("$fwconfiginp", %fwinp); + &General::readhasharray("$fwconfigout", %fwout); + print<<END; + <table width='100%' cellspacing='0' class='tbl'> + <tr><th align='center'><b>$Lang::tr{'fwhost srv_name'}</b></th><th align='center'><b>$Lang::tr{'fwhost prot'}</b></th><th align='center'><b>$Lang::tr{'fwhost port'}</b></th><th align='center'><b>ICMP</b></th><th align='center'><b>$Lang::tr{'fwhost used'}</b></th><th></th><th width='3%'></th></tr> +END + my $col=''; + foreach my $key (sort { ncmp($customservice{$a}[0],$customservice{$b}[0])} keys %customservice) + { + $count++; + if ( ($fwhostsettings{'updatesrv'} eq 'on' || $fwhostsettings{'error'}) && $fwhostsettings{'SRV_NAME'} eq $customservice{$key}[0]) { + print" <tr>"; + $col="bgcolor='${Header::colouryellow}'"; + }elsif ($count % 2){ + print" <tr>"; + $col="bgcolor='$color{'color22'}'"; + }else{ + print" <tr>"; + $col="bgcolor='$color{'color20'}'"; + } + print<<END; + <td $col>$customservice{$key}[0]</td><td align='center' $col>$customservice{$key}[2]</td><td align='center' $col>$customservice{$key}[1]</td><td align='center' $col> +END + #Neuer count + $srvcount=&getsrvcount($customservice{$key}[0]); + if($customservice{$key}[3] eq 'All ICMP-Types'){print $Lang::tr{'fwdfw all icmp'};} + elsif($customservice{$key}[3] ne 'BLANK'){print $customservice{$key}[3];} + print<<END; + </td><td align='center' $col>$srvcount x</td> + <td width='1%' $col><form method='post'><input type='image' src='/images/edit.gif' align='middle' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' /><input type='hidden' name='ACTION' value='editservice' /> + <input type='hidden' name='SRV_NAME' value='$customservice{$key}[0]' /> + <input type='hidden' name='SRV_PORT' value='$customservice{$key}[1]' /> + <input type='hidden' name='PROT' value='$customservice{$key}[2]' /> + <input type='hidden' name='ICMP' value='$customservice{$key}[3]' /></form></td> +END + if ($srvcount eq '0') + { + print"<td width='1%' $col><form method='post'><input type='image' src='/images/delete.gif' align='middle' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' /><input type='hidden' name='ACTION' value='delservice' /><input type='hidden' name='SRV_NAME' value='$customservice{$key}[0]'></td></tr></form>"; + }else{ + print"<td $col></td></tr>"; + } + } + print"</table>"; + &Header::closebox(); + } +} +sub viewtableservicegrp +{ + my $count=0; + my $grpname; + my $remark; + my $helper; + my $helper1; + my $port; + my $protocol; + my $delflag; + my $grpcount=0; + my $col=''; + my $lastentry=0; + my @counter; + my %hash; + if (! -z $configsrvgrp){ + &Header::openbox('100%', 'left', $Lang::tr{'fwhost cust srvgrp'}); + &General::readhasharray("$configsrvgrp", %customservicegrp); + &General::readhasharray("$configsrv", %customservice); + &General::readhasharray("$fwconfigfwd", %fwfwd); + &General::readhasharray("$fwconfiginp", %fwinp); + &General::readhasharray("$fwconfigout", %fwout); + my $number= keys %customservicegrp; + foreach my $key (sort { ncmp($customservicegrp{$a}[0],$customservicegrp{$b}[0]) } sort { ncmp($customservicegrp{$a}[2],$customservicegrp{$b}[2]) }keys %customservicegrp){ + push (@counter,$customservicegrp{$key}[0]); + } + foreach my $key1 (@counter) { + $hash{$key1}++ ; + } + foreach my $key (sort { ncmp($customservicegrp{$a}[0],$customservicegrp{$b}[0]) } sort { ncmp($customservicegrp{$a}[2],$customservicegrp{$b}[2]) }keys %customservicegrp){ + $count++; + if ($helper ne $customservicegrp{$key}[0]){ + #Get used groupcounter + $grpcount=&getsrvcount($customservicegrp{$key}[0]); + $delflag=0; + foreach my $key1 (sort { ncmp($customservicegrp{$a}[0],$customservicegrp{$b}[0]) } sort { ncmp($customservicegrp{$a}[2],$customservicegrp{$b}[2]) } keys %customservicegrp){ + if ($customservicegrp{$key}[0] eq $customservicegrp{$key1}[0]) + { + $delflag++; + } + if($delflag > 1){ + last; + } + } + $grpname=$customservicegrp{$key}[0]; + if ($customservicegrp{$key}[2] eq "none"){ + $customservicegrp{$key}[2]=$Lang::tr{'fwhost err emptytable'}; + $port=''; + $protocol=''; + } + $remark="$customservicegrp{$key}[1]"; + if($count >0){print"</table>";$count=1;} + print "<br><b><u>$grpname</u></b> "; + print "<b>$Lang::tr{'remark'}:</b> $remark " if ($remark ne ''); + print " <b>$Lang::tr{'used'}:</b> $grpcount x"; + if($grpcount == '0') + { + print"<form method='post' style='display:inline'><input type='image' src='/images/delete.gif' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' align='right' /><input type='hidden' name='SRVGRP_NAME' value='$grpname' ><input type='hidden' name='ACTION' value='delservicegrp'></form>"; + } + print"<form method='post' style='display:inline'><input type='image' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' align='right' /><input type='hidden' name='SRVGRP_NAME' value='$grpname' ><input type='hidden' name='SRVGRP_REMARK' value='$remark' ><input type='hidden' name='ACTION' value='editservicegrp'></form>"; + print"<table width='100%' cellspacing='0' class='tbl'><tr><th align='center'><b>Name</b></th><th align='center'><b>$Lang::tr{'port'}</b></th><th align='center' width='25%'><b>$Lang::tr{'fwhost prot'}</th><th></th></tr>"; + } + if( $fwhostsettings{'SRVGRP_NAME'} eq $customservicegrp{$key}[0]) { + print"<tr>"; + $col="bgcolor='${Header::colouryellow}'"; + }elsif ($count %2 == 0){ + print"<tr>"; + $col="bgcolor='$color{'color20'}'"; + }else{ + print"<tr>"; + $col="bgcolor='$color{'color22'}'"; + } + #make lines yellow if it is a dummy entry + if ($customservicegrp{$key}[2] eq $Lang::tr{'fwhost err emptytable'}){ + print"<tr>"; + $col="bgcolor='${Header::colouryellow}'"; + } + #Set fields if we use protocols in servicegroups + if ($customservicegrp{$key}[2] ne 'TCP' || $customservicegrp{$key}[2] ne 'UDP' || $customservicegrp{$key}[2] ne 'ICMP'){ + $port='-'; + } + if ($customservicegrp{$key}[2] eq 'GRE'){$protocol='GRE';$customservicegrp{$key}[2]="$Lang::tr{'protocol'} GRE";} + if ($customservicegrp{$key}[2] eq 'ESP'){$protocol='ESP';$customservicegrp{$key}[2]="$Lang::tr{'protocol'} ESP";} + if ($customservicegrp{$key}[2] eq 'AH'){$protocol='AH';$customservicegrp{$key}[2]="$Lang::tr{'protocol'} AH";} + if ($customservicegrp{$key}[2] eq 'IGMP'){$protocol='IGMP';$customservicegrp{$key}[2]="$Lang::tr{'protocol'} IGMP";} + if ($customservicegrp{$key}[2] eq 'IPIP'){$protocol='IPIP';$customservicegrp{$key}[2]="$Lang::tr{'protocol'} IPIP";} + if ($customservicegrp{$key}[2] eq 'IPV6'){$protocol='IPV6';$customservicegrp{$key}[2]="$Lang::tr{'protocol'} IPv6 encapsulation";} + print "<td width='39%' $col>$customservicegrp{$key}[2]</td>"; + foreach my $srv (sort keys %customservice){ + if ($customservicegrp{$key}[2] eq $customservice{$srv}[0]){ + $protocol=$customservice{$srv}[2]; + $port=$customservice{$srv}[1]; + last; + } + } + print"<td align='center' $col>$port</td><td align='center' $col>$protocol</td><td width='1%' $col><form method='post'>"; + if ($delflag gt '0'){ + if ($customservicegrp{$key}[2] ne $Lang::tr{'fwhost err emptytable'}){ + print"<input type='image' src='/images/delete.gif' align='middle' alt='$Lang::tr{'delete'}' title=$Lang::tr{'delete'} />"; + } + #check if this group has only one entry + foreach my $key2 (keys %hash) { + if ($hash{$key2}<2 && $key2 eq $customservicegrp{$key}[0]){ + print "<input type='hidden' name='last' value='on'>" ; + } + } + } + print"<input type='hidden' name='ACTION' value='delgrpservice'><input type='hidden' name='updatesrvgrp' value='$fwhostsettings{'updatesrvgrp'}'>"; + if($protocol eq 'TCP' || $protocol eq 'UDP' || $protocol eq 'ICMP'){ + print "<input type='hidden' name='delsrvfromgrp' value='$grpname,$remark,$customservicegrp{$key}[2]'></form></td></tr>"; + }else{ + print "<input type='hidden' name='delsrvfromgrp' value='$grpname,$remark,$protocol'></form></td></tr>"; + } + $helper=$customservicegrp{$key}[0]; + } + print"</table>"; + &Header::closebox(); + } +} +# Check +sub checkname +{ + my %hash=%{(shift)}; + foreach my $key (keys %hash) { + if($hash{$key}[0] eq $fwhostsettings{'HOSTNAME'}){ + return 0; + } + } + return 1; + +} +sub checkgroup +{ + &General::readhasharray("$configgrp", %customgrp ); + my $name=shift; + foreach my $key (keys %customservicegrp) { + if($customservicegrp{$key}[0] eq $name){ + return 0; + } + } + return 1; +} +sub checkservice +{ + &General::readhasharray("$configsrv", %customservice ); + my $name=shift; + foreach my $key (keys %customservice) { + if($customservice{$key}[0] eq $name){ + return 0; + } + } + return 1; +} +sub checkip +{ + + my %hash=%{(shift)}; + my $a=shift; + foreach my $key (keys %hash) { + if($hash{$key}[$a] eq $fwhostsettings{'IP'}."/".&General::iporsubtodec($fwhostsettings{'SUBNET'})){ + return 0; + } + } + return 1; +} +sub checksubnet +{ + my %hash=%{(shift)}; + &General::readhasharray("$confignet", %hash); + foreach my $key (keys %hash) { + if(&General::IpInSubnet($fwhostsettings{'IP'},$hash{$key}[1],$hash{$key}[2])) + { + return 1; + } + } + return 0; +} +sub checkservicegroup +{ + &General::readhasharray("$configsrvgrp", %customservicegrp); + #check name + if ( ! &validhostname($fwhostsettings{'SRVGRP_NAME'})) + { + $errormessage.=$Lang::tr{'fwhost err name'}."<br>"; + return $errormessage; + } + #check empty selectbox + if (keys %customservice lt 1) + { + $errormessage.=$Lang::tr{'fwhost err groupempty'}."<br>"; + } + #check if name already exists + if ($fwhostsettings{'updatesrvgrp'} ne 'on'){ + foreach my $key (keys %customservicegrp) { + if( $customservicegrp{$key}[0] eq $fwhostsettings{'SRVGRP_NAME'} ){ + $errormessage.=$Lang::tr{'fwhost err grpexist'}."<br>"; + + } + } + } + #check if service already exists in group + foreach my $key (keys %customservicegrp) { + if($customservicegrp{$key}[0] eq $fwhostsettings{'SRVGRP_NAME'} && $customservicegrp{$key}[2] eq $fwhostsettings{'CUST_SRV'} ){ + $errormessage.=$Lang::tr{'fwhost err srvexist'}."<br>"; + } + } + return $errormessage; +} +sub checkrulereload +{ + my $search=shift; + &General::readhasharray("$fwconfigfwd", %fwfwd); + &General::readhasharray("$fwconfiginp", %fwinp); + &General::readhasharray("$fwconfigout", %fwout); + + #check if service or servicegroup is used in rules + foreach my $key (keys %fwfwd){ + if($search eq $fwfwd{$key}[15]){ + &General::firewall_config_changed(); + return; + } + } + foreach my $key (keys %fwinp){ + if($search eq $fwinp{$key}[15]){ + &General::firewall_config_changed(); + return; + } + } + foreach my $key (keys %fwout){ + if($search eq $fwout{$key}[15]){ + &General::firewall_config_changed(); + return; + } + } +} +sub error +{ + if ($errormessage) { + &Header::openbox('100%', 'left', $Lang::tr{'error messages'}); + print "<class name='base'>$errormessage\n"; + print " </class>\n"; + &Header::closebox(); + } +} +sub hint +{ + if ($hint) { + &Header::openbox('100%', 'left', $Lang::tr{'fwhost hint'}); + print "<class name='base'>$hint\n"; + print " </class>\n"; + &Header::closebox(); + } +} +sub get_name +{ + my $val=shift; + &General::setup_default_networks(%defaultNetworks); + foreach my $network (sort keys %defaultNetworks) + { + return "$network" if ($val eq $defaultNetworks{$network}{'NAME'}); + } +} +sub gethostcount +{ + my $searchstring=shift; + my $srvcounter=0; + #Count services used in servicegroups + foreach my $key (keys %customgrp) { + if($customgrp{$key}[2] eq $searchstring){ + $srvcounter++; + } + } + #Count services used in firewall - config + foreach my $key1 (keys %fwfwd) { + if($fwfwd{$key1}[4] eq $searchstring){ + $srvcounter++; + } + if($fwfwd{$key1}[6] eq $searchstring){ + $srvcounter++; + } + } + #Count services used in firewall - input + foreach my $key2 (keys %fwinp) { + if($fwinp{$key2}[4] eq $searchstring){ + $srvcounter++; + } + if($fwinp{$key2}[6] eq $searchstring){ + $srvcounter++; + } + } + #Count services used in firewall - outgoing + foreach my $key3 (keys %fwout) { + if($fwout{$key3}[4] eq $searchstring){ + $srvcounter++; + } + if($fwout{$key3}[6] eq $searchstring){ + $srvcounter++; + } + } + return $srvcounter; +} +sub getnetcount +{ + my $searchstring=shift; + my $srvcounter=0; + #Count services used in servicegroups + foreach my $key (keys %customgrp) { + if($customgrp{$key}[2] eq $searchstring){ + $srvcounter++; + } + } + #Count services used in firewall - config + foreach my $key1 (keys %fwfwd) { + if($fwfwd{$key1}[4] eq $searchstring){ + $srvcounter++; + } + if($fwfwd{$key1}[6] eq $searchstring){ + $srvcounter++; + } + } + #Count services used in firewall - input + foreach my $key2 (keys %fwinp) { + if($fwinp{$key2}[4] eq $searchstring){ + $srvcounter++; + } + if($fwinp{$key2}[6] eq $searchstring){ + $srvcounter++; + } + } + #Count services used in firewall - outgoing + foreach my $key3 (keys %fwout) { + if($fwout{$key3}[4] eq $searchstring){ + $srvcounter++; + } + if($fwout{$key3}[6] eq $searchstring){ + $srvcounter++; + } + } + return $srvcounter; +} +sub getsrvcount +{ + my $searchstring=shift; + my $srvcounter=0; + #Count services used in servicegroups + foreach my $key (keys %customservicegrp) { + if($customservicegrp{$key}[2] eq $searchstring){ + $srvcounter++; + } + } + #Count services used in firewall - config + foreach my $key1 (keys %fwfwd) { + if($fwfwd{$key1}[15] eq $searchstring){ + $srvcounter++; + } + } + #Count services used in firewall - input + foreach my $key2 (keys %fwinp) { + if($fwinp{$key2}[15] eq $searchstring){ + $srvcounter++; + } + } + #Count services used in firewall - outgoing + foreach my $key3 (keys %fwout) { + if($fwout{$key3}[15] eq $searchstring){ + $srvcounter++; + } + } + return $srvcounter; +} +sub deletefromgrp +{ + my $target=shift; + my $config=shift; + my %hash=(); + &General::readhasharray("$config",%hash); + foreach my $key (keys %hash) { + if($hash{$key}[2] eq $target){ + delete $hash{$key}; + } + } + &General::writehasharray("$config",%hash); + +} +sub plausicheck +{ + my $edit=shift; + #check hostname + if (!&validhostname($fwhostsettings{'HOSTNAME'})) + { + $errormessage=$errormessage.$Lang::tr{'fwhost err name'}; + $fwhostsettings{'BLK_IP'}='readonly'; + $fwhostsettings{'HOSTNAME'} = $fwhostsettings{'orgname'}; + if ($fwhostsettings{'update'} eq 'on'){$fwhostsettings{'ACTION'}=$edit;} + } + #check if name collides with CCD Netname + &General::readhasharray("$configccdnet", %ccdnet); + foreach my $key (keys %ccdnet) { + if($ccdnet{$key}[0] eq $fwhostsettings{'HOSTNAME'}){ + $errormessage=$errormessage.$Lang::tr{'fwhost err isccdnet'};; + $fwhostsettings{'HOSTNAME'} = $fwhostsettings{'orgname'}; + if ($fwhostsettings{'update'} eq 'on'){$fwhostsettings{'ACTION'}=$edit;} + last; + } + } + #check if IP collides with CCD NetIP + if ($fwhostsettings{'type'} ne 'mac'){ + &General::readhasharray("$configccdnet", %ccdnet); + foreach my $key (keys %ccdnet) { + my $test=(&General::getnetworkip($fwhostsettings{'IP'},&General::iporsubtocidr($fwhostsettings{'SUBNET'})))."/".$fwhostsettings{'SUBNET'}; + if($ccdnet{$key}[1] eq $test){ + $errormessage=$errormessage.$Lang::tr{'fwhost err isccdipnet'}; + $fwhostsettings{'IP'} = $fwhostsettings{'orgip'}; + $fwhostsettings{'SUBNET'} = $fwhostsettings{'orgsubnet'}; + if ($fwhostsettings{'update'} eq 'on'){$fwhostsettings{'ACTION'}=$edit;} + last; + } + } + } + #check if name collides with CCD Hostname + &General::readhasharray("$configccdhost", %ccdhost); + foreach my $key (keys %ccdhost) { + my ($ip,$sub)=split(///,$ccdhost{$key}[33]); + if($ip eq $fwhostsettings{'IP'}){ + $errormessage=$Lang::tr{'fwhost err isccdiphost'}; + if ($fwhostsettings{'update'} eq 'on'){$fwhostsettings{'ACTION'}=$edit;} + last; + } + } + #check if IP collides with CCD HostIP (only hosts) + if ($edit eq 'edithost') + { + foreach my $key (keys %ccdhost) { + if($ccdhost{$key}[1] eq $fwhostsettings{'HOSTNAME'}){ + $errormessage=$Lang::tr{'fwhost err isccdhost'}; + $fwhostsettings{'IP'} = $fwhostsettings{'orgname'}; + if ($fwhostsettings{'update'} eq 'on'){$fwhostsettings{'ACTION'}=$edit;} + last; + } + } + } + #check if network with this name already exists + &General::readhasharray("$confignet", %customnetwork); + if (!&checkname(%customnetwork)) + { + $errormessage=$errormessage."<br>".$Lang::tr{'fwhost err netexist'}; + $fwhostsettings{'HOSTNAME'} = $fwhostsettings{'orgname'}; + if ($fwhostsettings{'update'} eq 'on'){$fwhostsettings{'ACTION'}=$edit;} + } + #check if network ip already exists + if (!&checkip(%customnetwork,1)) + { + $errormessage=$errormessage."<br>".$Lang::tr{'fwhost err net'}; + if ($fwhostsettings{'update'} eq 'on'){$fwhostsettings{'ACTION'}=$edit;} + } + #check if host with this name already exists + &General::readhasharray("$confighost", %customhost); + if (!&checkname(%customhost)) + { + $errormessage.="<br>".$Lang::tr{'fwhost err hostexist'}; + $fwhostsettings{'HOSTNAME'} = $fwhostsettings{'orgname'}; + if ($fwhostsettings{'update'} eq 'on'){$fwhostsettings{'ACTION'}=$edit;} + } + #check if host with this ip already exists + if (!&checkip(%customhost,2)) + { + $errormessage=$errormessage."<br>".$Lang::tr{'fwhost err ipcheck'}; + } + return; +} +sub getipforgroup +{ + my $name=$_[0], + my $type=$_[1]; + my $value; + + #get address from IPSEC NETWORK + if ($type eq 'IpSec Network'){ + foreach my $key (keys %ipsecconf) { + if ($ipsecconf{$key}[1] eq $name){ + return $ipsecconf{$key}[11]; + } + } + &deletefromgrp($name,$configgrp); + } + + #get address from IPSEC HOST + if ($type eq 'IpSec Host'){ + foreach my $key (keys %ipsecconf) { + if ($ipsecconf{$key}[1] eq $name){ + return $ipsecconf{$key}[10]; + } + } + &deletefromgrp($name,$configgrp); + } + + #get address from ovpn ccd Net-2-Net + if ($type eq 'OpenVPN N-2-N'){ + foreach my $key (keys %ccdhost) { + if($ccdhost{$key}[1] eq $name){ + my ($a,$b) = split ("/",$ccdhost{$key}[11]); + $b=&General::iporsubtodec($b); + return "$a/$b"; + } + } + &deletefromgrp($name,$configgrp); + } + + #get address from ovpn ccd static host + if ($type eq 'OpenVPN static host'){ + foreach my $key (keys %ccdhost) { + if($ccdhost{$key}[1] eq $name){ + my ($a,$b) = split (///,$ccdhost{$key}[33]); + $b=&General::iporsubtodec($b); + return "$a/$b"; + } + } + &deletefromgrp($name,$configgrp); + } + + #get address from ovpn ccd static net + if ($type eq 'OpenVPN static network'){ + foreach my $key (keys %ccdnet) { + if ($ccdnet{$key}[0] eq $name){ + my ($a,$b) = split (///,$ccdnet{$key}[1]); + $b=&General::iporsubtodec($b); + return "$a/$b"; + } + } + } + + #check custom addresses + if ($type eq 'Custom Host'){ + foreach my $key (keys %customhost) { + if ($customhost{$key}[0] eq $name){ + my ($ip,$sub) = split("/",$customhost{$key}[2]); + return $ip; + } + } + } + + ##check custom networks + if ($type eq 'Custom Network'){ + foreach my $key (keys %customnetwork) { + if($customnetwork{$key}[0] eq $name){ + return $customnetwork{$key}[1]."/".$customnetwork{$key}[2]; + } + } + } + + #check standard networks + if ($type eq 'Standard Network'){ + if ($name =~ /OpenVPN/i){ + my %ovpn=(); + &General::readhash("${General::swroot}/ovpn/settings",%ovpn); + return $ovpn{'DOVPN_SUBNET'}; + } + if ($name eq 'GREEN'){ + my %hash=(); + &General::readhash("${General::swroot}/ethernet/settings",%hash); + return $hash{'GREEN_NETADDRESS'}."/".$hash{'GREEN_NETMASK'}; + } + if ($name eq 'BLUE'){ + my %hash=(); + &General::readhash("${General::swroot}/ethernet/settings",%hash); + return $hash{'BLUE_NETADDRESS'}."/".$hash{'BLUE_NETMASK'}; + } + if ($name eq 'ORANGE'){ + my %hash=(); + &General::readhash("${General::swroot}/ethernet/settings",%hash); + return $hash{'ORANGE_NETADDRESS'}."/".$hash{'ORANGE_NETMASK'}; + } + if ($name eq 'ALL'){ + return "0.0.0.0/0.0.0.0"; + } + if ($name =~ /IPsec/i){ + my %hash=(); + &General::readhash("${General::swroot}/vpn/settings",%hash); + return $hash{'RW_NET'}; + } + } +} +sub decrease +{ + my $grp=$_[0]; + &General::readhasharray("$confignet", %customnetwork); + &General::readhasharray("$confighost", %customhost); + foreach my $key (sort keys %customgrp ){ + if ( ($customgrp{$key}[0] eq $grp) && ($customgrp{$key}[3] eq 'Custom Network')){ + foreach my $key1 (sort keys %customnetwork){ + if ($customnetwork{$key1}[0] eq $customgrp{$key}[2]){ + $customnetwork{$key1}[4]=$customnetwork{$key1}[4]-1; + last; + } + } + } + + if (($customgrp{$key}[0] eq $grp) && ($customgrp{$key}[3] eq 'Custom Host')){ + foreach my $key2 (sort keys %customhost){ + if ($customhost{$key2}[0] eq $customgrp{$key}[2]){ + $customhost{$key2}[4]=$customhost{$key2}[4]-1; + last; + } + } + + } + } + &General::writehasharray("$confignet", %customnetwork); + &General::writehasharray("$confighost", %customhost); +} +sub decreaseservice +{ + my $grp=$_[0]; + &General::readhasharray("$configsrv", %customservice); + &General::readhasharray("$configsrvgrp", %customservicegrp); + + foreach my $key (sort keys %customservicegrp){ + if ($customservicegrp{$key}[0] eq $grp ){ + foreach my $key2 (sort keys %customservice){ + if ($customservice{$key2}[0] eq $customservicegrp{$key}[2]){ + $customservice{$key2}[4]--; + } + } + } + } + &General::writehasharray("$configsrv", %customservice); + +} +sub changenameinfw +{ + my $old=shift; + my $new=shift; + my $fld=shift; + &General::readhasharray("$fwconfigfwd", %fwfwd); + &General::readhasharray("$fwconfiginp", %fwinp); + &General::readhasharray("$fwconfigout", %fwout); + #Rename group in Firewall-CONFIG + foreach my $key1 (keys %fwfwd) { + if($fwfwd{$key1}[$fld] eq $old){ + $fwfwd{$key1}[$fld]=$new; + } + } + &General::writehasharray("$fwconfigfwd", %fwfwd ); + #Rename group in Firewall-INPUT + foreach my $key2 (keys %fwinp) { + if($fwinp{$key2}[$fld] eq $old){ + $fwinp{$key2}[$fld]=$new; + } + } + &General::writehasharray("$fwconfiginp", %fwinp ); + #Rename group in Firewall-OUTGOING + foreach my $key3 (keys %fwout) { + if($fwout{$key3}[$fld] eq $old){ + $fwout{$key3}[$fld]=$new; + } + } + &General::writehasharray("$fwconfigout", %fwout ); +} +sub checkports +{ + + my %hash=%{(shift)}; + #check empty fields + if ($fwhostsettings{'SRV_NAME'} eq '' ){ + $errormessage=$Lang::tr{'fwhost err name1'}; + } + if ($fwhostsettings{'SRV_PORT'} eq '' && $fwhostsettings{'PROT'} ne 'ICMP'){ + $errormessage=$Lang::tr{'fwhost err port'}; + } + #check valid name + if (! &validhostname($fwhostsettings{'SRV_NAME'})){ + $errormessage="<br>".$Lang::tr{'fwhost err name'}; + } + #change dashes with : + $fwhostsettings{'SRV_PORT'}=~ tr/-/:/; + + if ($fwhostsettings{'SRV_PORT'} eq "*") { + $fwhostsettings{'SRV_PORT'} = "1:65535"; + } + if ($fwhostsettings{'SRV_PORT'} =~ /^(\D):(\d+)$/) { + $fwhostsettings{'SRV_PORT'} = "1:$2"; + } + if ($fwhostsettings{'SRV_PORT'} =~ /^(\d+):(\D)$/) { + $fwhostsettings{'SRV_PORT'} = "$1:65535"; + } + if($fwhostsettings{'PROT'} ne 'ICMP'){ + $errormessage = $errormessage.&General::validportrange($fwhostsettings{'SRV_PORT'}, 'src'); + } + # a new service has to have a different name + foreach my $key (keys %hash){ + if ($hash{$key}[0] eq $fwhostsettings{'SRV_NAME'}){ + $errormessage = "<br>".$Lang::tr{'fwhost err srv exists'}; + last; + } + } + return $errormessage; +} +sub validhostname +{ + # Checks a hostname against RFC1035 + my $hostname = $_[0]; + + # Each part should be at least two characters in length + # but no more than 63 characters + if (length ($hostname) < 1 || length ($hostname) > 63) { + return 0;} + # Only valid characters are a-z, A-Z, 0-9 and - + if ($hostname !~ /^[a-zA-ZÀöÌÃÃÃ0-9-_.;()/\s]*$/) { + return 0;} + # First character can only be a letter or a digit + if (substr ($hostname, 0, 1) !~ /^[a-zA-ZöÀÌÃÃÃ0-9]*$/) { + return 0;} + # Last character can only be a letter or a digit + if (substr ($hostname, -1, 1) !~ /^[a-zA-ZöÀÌÃÃÃ0-9()]*$/) { + return 0;} + return 1; +} +sub validremark +{ + # Checks a hostname against RFC1035 + my $remark = $_[0]; + # Each part should be at least two characters in length + # but no more than 63 characters + if (length ($remark) < 1 || length ($remark) > 255) { + return 0;} + # Only valid characters are a-z, A-Z, 0-9 and - + if ($remark !~ /^[a-zÀöÌA-ZÃÃÃ0-9-.:;|_()/\s]*$/) { + return 0;} + # First character can only be a letter or a digit + if (substr ($remark, 0, 1) !~ /^[a-zÀöÌA-ZÃÃÃ0-9]*$/) { + return 0;} + # Last character can only be a letter or a digit + if (substr ($remark, -1, 1) !~ /^[a-zöÀÌA-ZÃÃÃ0-9.:;_)]*$/) { + return 0;} + return 1; +} +&Header::closebigbox(); +&Header::closepage(); diff --git a/html/cgi-bin/gpl.cgi b/html/cgi-bin/gpl.cgi new file mode 100644 index 0000000..94187ce --- /dev/null +++ b/html/cgi-bin/gpl.cgi @@ -0,0 +1,89 @@ +#!/usr/bin/perl +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +use strict; +# enable only the following on debugging purpose +#use warnings; +#use CGI::Carp 'fatalsToBrowser'; + +require '/var/ipfire/general-functions.pl'; +require "${General::swroot}/lang.pl"; +require "${General::swroot}/header.pl"; +require "/opt/pakfire/lib/functions.pl"; + +# If the license has already been accepted. +if ( -e "/var/ipfire/main/gpl_accepted" ) { + &redirect(); +} + +my %cgiparams; +$cgiparams{'ACTION'} = ''; + +&Header::getcgihash(%cgiparams); + +# Check if the license agreement has been accepted. +if ($cgiparams{'ACTION'} eq "$Lang::tr{'yes'}" && $cgiparams{'gpl_accepted'} eq '1') { + open(FILE, ">/var/ipfire/main/gpl_accepted"); + close(FILE); + + &redirect(); +} + +&Header::showhttpheaders(); + +&Header::openpage($Lang::tr{'main page'}, 1); +&Header::openbigbox('', 'center'); + +&Header::openbox('100%', 'left', $Lang::tr{'gpl license agreement'}); +print <<END; + $Lang::tr{'gpl please read carefully the general public license and accept it below'}. + <br /><br /> +END +; +if ( -e "/usr/share/doc/licenses/GPLv3" ) { + print '<textarea rows='25' cols='75' readonly='readonly'>'; + print `cat /usr/share/doc/licenses/GPLv3`; + print '</textarea>'; +} +else { + print '<br /><a href='http://www.gnu.org/licenses/gpl-3.0.txt%5C' target='_blank'>GNU GENERAL PUBLIC LICENSE</a><br />'; +} +print <<END; + <p> + <form method='post' action='$ENV{'SCRIPT_NAME'}'> + <input type='checkbox' name='gpl_accepted' value='1'/> $Lang::tr{'gpl i accept these terms and conditions'}. + <br/ > + <input type='submit' name='ACTION' value=$Lang::tr{'yes'} /> + </form> + </p> + <a href='http://www.gnu.org/licenses/translations.html' target='_blank'>$Lang::tr{'gpl unofficial translation of the general public license v3'}</a> + +END + +&Header::closebox(); +&Header::closebigbox(); +&Header::closepage(); + +sub redirect { + print "Status: 302 Moved Temporarily\n"; + print "Location: index.cgi\n\n"; + exit (0); +} diff --git a/html/cgi-bin/gui.cgi b/html/cgi-bin/gui.cgi index 5abf88e..726abf7 100644 --- a/html/cgi-bin/gui.cgi +++ b/html/cgi-bin/gui.cgi @@ -36,10 +36,8 @@ my %checked=(); my $errormessage='';
-$cgiparams{'FX'} = 'off'; $cgiparams{'SPEED'} = 'off'; $cgiparams{'WINDOWWITHHOSTNAME'} = 'off'; -$cgiparams{'REBOOTQUESTION'} = 'off'; $cgiparams{'REFRESHINDEX'} = 'off'; $cgiparams{'ACTION'} = ''; &Header::getcgihash(%cgiparams); @@ -65,7 +63,7 @@ if ($cgiparams{'ACTION'} eq "$Lang::tr{'save'}") close (FILE); if ( $found == 0 ) { - $errormessage="$errormessage<P>$Lang::tr{'invalid input'}"; + $errormessage="$errormessage<p>$Lang::tr{'invalid input'}</p>"; goto SAVE_ERROR; }
@@ -88,9 +86,7 @@ if ($cgiparams{'ACTION'} eq "$Lang::tr{'save'}") # write cgi vars to the file. $mainsettings{'LANGUAGE'} = $cgiparams{'lang'}; $mainsettings{'WINDOWWITHHOSTNAME'} = $cgiparams{'WINDOWWITHHOSTNAME'}; - $mainsettings{'REBOOTQUESTION'} = $cgiparams{'REBOOTQUESTION'}; $mainsettings{'PPPUPDOWNBEEP'} = $cgiparams{'PPPUPDOWNBEEP'}; - $mainsettings{'FX'} = $cgiparams{'FX'}; $mainsettings{'SPEED'} = $cgiparams{'SPEED'}; $mainsettings{'THEME'} = $cgiparams{'theme'}; $mainsettings{'REFRESHINDEX'} = $cgiparams{'REFRESHINDEX'}; @@ -101,13 +97,7 @@ if ($cgiparams{'ACTION'} eq "$Lang::tr{'save'}") if ($mainsettings{'WINDOWWITHHOSTNAME'}) { $cgiparams{'WINDOWWITHHOSTNAME'} = $mainsettings{'WINDOWWITHHOSTNAME'}; } else { - $cgiparams{'WINDOWWITHHOSTNAME'} = 'off'; - } - - if ($mainsettings{'REBOOTQUESTION'}) { - $cgiparams{'REBOOTQUESTION'} = $mainsettings{'REBOOTQUESTION'}; - } else { - $cgiparams{'REBOOTQUESTION'} = 'on'; + $cgiparams{'WINDOWWITHHOSTNAME'} = 'on'; }
if ($mainsettings{'PPPUPDOWNBEEP'}) { @@ -116,12 +106,6 @@ if ($cgiparams{'ACTION'} eq "$Lang::tr{'save'}") $cgiparams{'PPPUPDOWNBEEP'} = 'on'; }
- if ($mainsettings{'FX'}) { - $cgiparams{'FX'} = $mainsettings{'FX'}; - } else { - $cgiparams{'FX'} = 'on'; - } - if ($mainsettings{'THEME'}) { $cgiparams{'THEME'} = $mainsettings{'THEME'}; } else { @@ -146,11 +130,9 @@ if ($cgiparams{'ACTION'} eq "$Lang::tr{'save'}") # Default settings if ($cgiparams{'ACTION'} eq "$Lang::tr{'restore defaults'}") { - $cgiparams{'WINDOWWITHHOSTNAME'} = 'off'; - $cgiparams{'REBOOTQUESTION'} = 'on'; + $cgiparams{'WINDOWWITHHOSTNAME'} = 'on'; $cgiparams{'PPPUPDOWNBEEP'} = 'on'; $cgiparams{'REFRESHINDEX'} = 'off'; - $cgiparams{'FX'} = 'on'; $cgiparams{'SPEED'} = 'on'; $cgiparams{'THEME'} = 'ipfire'; } @@ -159,10 +141,6 @@ $checked{'WINDOWWITHHOSTNAME'}{'off'} = ''; $checked{'WINDOWWITHHOSTNAME'}{'on'} = ''; $checked{'WINDOWWITHHOSTNAME'}{$cgiparams{'WINDOWWITHHOSTNAME'}} = "checked='checked'";
-$checked{'REBOOTQUESTION'}{'off'} = ''; -$checked{'REBOOTQUESTION'}{'on'} = ''; -$checked{'REBOOTQUESTION'}{$cgiparams{'REBOOTQUESTION'}} = "checked='checked'"; - $checked{'PPPUPDOWNBEEP'}{'off'} = ''; $checked{'PPPUPDOWNBEEP'}{'on'} = ''; $checked{'PPPUPDOWNBEEP'}{$cgiparams{'PPPUPDOWNBEEP'}} = "checked='checked'"; @@ -171,10 +149,6 @@ $checked{'REFRESHINDEX'}{'off'} = ''; $checked{'REFRESHINDEX'}{'on'} = ''; $checked{'REFRESHINDEX'}{$cgiparams{'REFRESHINDEX'}} = "checked='checked'";
-$checked{'FX'}{'off'} = ''; -$checked{'FX'}{'on'} = ''; -$checked{'FX'}{$cgiparams{'FX'}} = "checked='checked'"; - $checked{'SPEED'}{'off'} = ''; $checked{'SPEED'}{'on'} = ''; $checked{'SPEED'}{$cgiparams{'SPEED'}} = "checked='checked'"; @@ -188,27 +162,16 @@ if ($errormessage) { &Header::closebox(); }
-&Header::openbox('100%','left',$Lang::tr{'gui settings'}); +&Header::openbox('100%','left',$Lang::tr{'display'});
print <<END <form method='post' action='$ENV{'SCRIPT_NAME'}'> <table width='100%'> <tr> - <td colspan='2'><p><b>$Lang::tr{'display'}</b></td> -</tr> -<tr> - <td><input type='checkbox' name='FX' $checked{'FX'}{'on'} /></td> - <td>$Lang::tr{'display webinterface effects'}</td> -</tr> -<tr> <td><input type='checkbox' name='WINDOWWITHHOSTNAME' $checked{'WINDOWWITHHOSTNAME'}{'on'} /></td> <td>$Lang::tr{'display hostname in window title'}</td> </tr> <tr> - <td><input type='checkbox' name='REBOOTQUESTION' $checked{'REBOOTQUESTION'}{'on'} /></td> - <td>$Lang::tr{'reboot question'}</td> -</tr> -<tr> <td><input type='checkbox' name='REFRESHINDEX' $checked{'REFRESHINDEX'}{'on'} /></td> <td>$Lang::tr{'refresh index page while connected'}</td> </tr> @@ -249,9 +212,13 @@ END
print <<END </select></td></tr> -<tr> - <td colspan='2'><hr /><p><b>$Lang::tr{'theme'}</b></td> -</tr> +</table> +END +; +&Header::closebox(); +&Header::openbox('100%','left',$Lang::tr{'theme'}); +print<<END; +<table> <tr> <td> </td> <td><select name='theme'> @@ -282,22 +249,26 @@ foreach $item (sort (@files)) {
print <<END </select></td></tr> -<tr> - <td colspan='2'><hr /><p><b>$Lang::tr{'sound'}</b></td> -</tr> +</table> +END +; +&Header::closebox(); +&Header::openbox('100%','left',$Lang::tr{'sound'}); +print <<END <tr> <td><input type ='checkbox' name='PPPUPDOWNBEEP' $checked{'PPPUPDOWNBEEP'}{'on'} /></td> <td>$Lang::tr{'beep when ppp connects or disconnects'}</td> </tr> <tr> - <td colspan='2'><hr /></td> + <td colspan='2'></td> </tr> </table> -<div align='center'> -<table width='80%'> +<div align='right'> +<br> +<table width='100%'> <tr> - <td width='50%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'restore defaults'}' /></td> - <td width='50%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td> + <td width='90%' align='right'><input type='submit' name='ACTION' value='$Lang::tr{'restore defaults'}' /></td> + <td width='10%' align='right'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td> </tr> </table> </div> diff --git a/html/cgi-bin/hosts.cgi b/html/cgi-bin/hosts.cgi index 94a48d3..bb7df1f 100644 --- a/html/cgi-bin/hosts.cgi +++ b/html/cgi-bin/hosts.cgi @@ -4,7 +4,7 @@ # IPFire.org - A linux based firewall # # Copyright (C) 2007 Michael Tremer & Christian Schmidt # # # -# This program is free software: you can redistribute it and/or modify # +# This program is free software you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation, either version 3 of the License, or # # (at your option) any later version. # @@ -264,11 +264,12 @@ print <<END <td><input type='checkbox' name='EN' $checked{'EN'}{'on'} /></td> </tr> </table> +<br> <hr /> <table width='100%'> <tr> <td class='base' width='50%'><img src='/blob.gif' align='top' alt='*' /> $Lang::tr{'this field may be blank'}</td> - <td width='50%' align='center'><input type='hidden' name='ACTION' value='$Lang::tr{'add'}' /><input type='submit' name='SUBMIT' value='$buttontext' /></td> + <td width='50%' align='right'><input type='hidden' name='ACTION' value='$Lang::tr{'add'}' /><input type='submit' name='SUBMIT' value='$buttontext' /></td> </tr> </table> </form> @@ -283,12 +284,12 @@ END # &Header::openbox('100%', 'left', $Lang::tr{'current hosts'}); print <<END -<table width='100%'> +<table width='100%' class='tbl'> <tr> - <td width='20%' align='center'><a href='$ENV{'SCRIPT_NAME'}?IP'><b>$Lang::tr{'host ip'}</b></a></td> - <td width='20%' align='center'><a href='$ENV{'SCRIPT_NAME'}?HOST'><b>$Lang::tr{'hostname'}</b></a></td> - <td width='50%' align='center'><a href='$ENV{'SCRIPT_NAME'}?DOM'><b>$Lang::tr{'domain name'}</b></a></td> - <td width='10%' colspan='3' class='boldbase' align='center'><b>$Lang::tr{'action'}</b></td> + <th width='20%' align='center'><a href='$ENV{'SCRIPT_NAME'}?IP'><b>$Lang::tr{'host ip'}</b></a></th> + <th width='20%' align='center'><a href='$ENV{'SCRIPT_NAME'}?HOST'><b>$Lang::tr{'hostname'}</b></a></th> + <th width='50%' align='center'><a href='$ENV{'SCRIPT_NAME'}?DOM'><b>$Lang::tr{'domain name'}</b></a></th> + <th width='10%' colspan='3' class='boldbase' align='center'><b>$Lang::tr{'action'}</b></th> </tr> END ; @@ -296,7 +297,7 @@ END # # Print each line of @current list # - +my $col=""; my $key = 0; foreach my $line (@current) { chomp($line); # remove newline @@ -318,15 +319,17 @@ foreach my $line (@current) { if ($settings{'KEY1'} eq $key) { print "<tr bgcolor='${Header::colouryellow}'>"; } elsif ($key % 2) { - print "<tr bgcolor='$color{'color22'}'>"; + print "<tr>"; + $col="bgcolor='$color{'color20'}'"; } else { - print "<tr bgcolor='$color{'color20'}'>"; + print "<tr>"; + $col="bgcolor='$color{'color22'}'"; } print <<END -<td align='center'>$temp[1]</td> -<td align='center'>$temp[2]</td> -<td align='center'>$temp[3]</td> -<td align='center'> +<td align='center' $col>$temp[1]</td> +<td align='center' $col>$temp[2]</td> +<td align='center' $col>$temp[3]</td> +<td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' /> <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' alt='$gdesc' title='$gdesc' /> @@ -334,7 +337,7 @@ foreach my $line (@current) { </form> </td>
-<td align='center'> +<td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'edit'}' /> <input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' /> @@ -342,7 +345,7 @@ foreach my $line (@current) { </form> </td>
-<td align='center'> +<td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' /> <input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' /> diff --git a/html/cgi-bin/ids.cgi b/html/cgi-bin/ids.cgi index 4bd0128..55e2645 100644 --- a/html/cgi-bin/ids.cgi +++ b/html/cgi-bin/ids.cgi @@ -413,9 +413,9 @@ $selected{'RULES'}{$snortsettings{'RULES'}} = "selected='selected'"; &Header::openpage($Lang::tr{'intrusion detection system'}, 1, '');
####################### Added for snort rules control ################################# -print "<SCRIPT LANGUAGE='JavaScript' SRC='/include/snortupdateutility.js'></SCRIPT>"; +print "<script type='text/javascript' src='/include/snortupdateutility.js'></script>"; print <<END -<STYLE TYPE="text/css"> +<style type="text/css"> <!-- .section { border: groove; @@ -433,7 +433,7 @@ print <<END background-color: #DCDCDC; } --> -</STYLE> +</style> END ; ####################### End added for snort rules control ################################# @@ -472,7 +472,7 @@ if ($return) { $Lang::tr{'snort working'} <tr><td colspan='2' align='center'> <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <input type='image' alt='$Lang::tr{'reload'}' src='/images/view-refresh.png' /> + <input type='image' alt='$Lang::tr{'reload'}' title='$Lang::tr{'reload'}' src='/images/view-refresh.png' /> </form> <tr><td colspan='2' align='left'><pre> END @@ -491,7 +491,7 @@ END refreshpage(); }
-&Header::openbox('100%', 'left', $Lang::tr{'intrusion detection system2'}); +&Header::openbox('100%', 'left', $Lang::tr{'intrusion detection system'}); print <<END <form method='post' action='$ENV{'SCRIPT_NAME'}'><table width='100%'> <tr><td class='base'><input type='checkbox' name='ENABLE_SNORT_GREEN' $checked{'ENABLE_SNORT_GREEN'}{'on'} />GREEN Snort @@ -511,7 +511,7 @@ if ( -e "/var/ipfire/guardian/guardian.conf" ) { print <<END </td></tr> <tr> - <td><hr /></td> + <td><br><br></td> </tr> <tr> <td><b>$Lang::tr{'ids rules update'}</b></td> @@ -536,7 +536,7 @@ print <<END <td nowrap='nowrap'>Oinkcode: <input type='text' size='40' name='OINKCODE' value='$snortsettings{'OINKCODE'}' /></td> </tr> <tr> - <td width='30%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'download new ruleset'}' /> + <td width='30%' align='left'><br><input type='submit' name='ACTION' value='$Lang::tr{'download new ruleset'}' /> END ; if ( -e "/var/tmp/snortrules.tar.gz"){ @@ -548,10 +548,10 @@ print " $Lang::tr{'updates installed'}: $snortsettings{'INSTALLDATE'}</td>" print <<END </tr> </table> -<hr /> +<br><br> <table width='100%'> <tr> - <td align='center'><input type='hidden' name='ACTION2' value='snort' /><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td> + <td align='right'><input type='hidden' name='ACTION2' value='snort' /><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td> </tr> </table> </form> @@ -579,7 +579,7 @@ END print `cat /var/ipfire/guardian/guardian.ignore`; print <<END </textarea></td></tr> -<tr><td align='center' colspan='2'><input type='hidden' name='ACTION2' value='guardian' /><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td></tr> +<tr><td align='right' colspan='2'><input type='hidden' name='ACTION2' value='guardian' /><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td></tr> </table> </form> END @@ -594,7 +594,7 @@ END if ( -e "${General::swroot}/snort/enable" || -e "${General::swroot}/snort/enable_green" || -e "${General::swroot}/snort/enable_blue" || -e "${General::swroot}/snort/enable_orange" ) { &Header::openbox('100%', 'LEFT', $Lang::tr{'intrusion detection system rules'}); # Output display table for rule files - print "<TABLE width='100%'><TR><TD VALIGN='TOP'><TABLE>"; + print "<table width='100%'><tr><td valign='top'><table>";
print "<form method='post'>";
@@ -615,7 +615,7 @@ if ( -e "${General::swroot}/snort/enable" || -e "${General::swroot}/snort/enable
# Check if reached half-way through rule file rules to start new column if ($ruledisplaycnt > $rulecnt) { - print "</TABLE></TD><TD VALIGN='TOP'><TABLE>"; + print "</table></td><td valign='top'><table>"; $ruledisplaycnt = 0; }
@@ -666,21 +666,21 @@ if ( -e "${General::swroot}/snort/enable" || -e "${General::swroot}/snort/enable }
# Output rule file name and checkbox - print "<TR><TD CLASS='base' VALIGN='TOP'><INPUT TYPE='checkbox' NAME='SNORT_RULE_$rulefile' $rulechecked> <A HREF='$rulefilelink'>$rulefile</A></TD></TR>"; - print "<TR><TD CLASS='base' VALIGN='TOP'>"; + print "<tr><td class='base' valign='top'><input type='checkbox' NAME='SNORT_RULE_$rulefile' $rulechecked> <a href='$rulefilelink'>$rulefile</a></td></tr>"; + print "<tr><td class='base' valign='top'>";
# Check for empty 'Description' if ($snortrules{$rulefile}{'Description'} eq '') { - print "<TABLE WIDTH='100%'><TR><TD CLASS='base'>No description available</TD></TR>"; + print "<table width='100%'><tr><td class='base'>No description available</td></tr>"; } else { # Output rule file 'Description' - print "<TABLE WIDTH='100%'><TR><TD CLASS='base'>$snortrules{$rulefile}{'Description'}</TD></TR>"; + print "<table width='100%'><tr><td class='base'>$snortrules{$rulefile}{'Description'}</td></tr>"; }
# Check for display flag if ($displayrulefilerules) { # Rule file definition rule display - print "<TR><TD CLASS='base' VALIGN='TOP'><TABLE border=1><TR>"; + print "<tr><td class='base' valign='top'><table border='0'><tr>";
# Local vars my $ruledefdisplaycnt = 0; @@ -695,7 +695,7 @@ if ( -e "${General::swroot}/snort/enable" || -e "${General::swroot}/snort/enable
# If have display 2 rules, start new row if (($ruledefdisplaycnt % 2) == 0) { - print "</TR><TR>"; + print "</tr><tr>"; $ruledefdisplaycnt = 0; }
@@ -707,7 +707,7 @@ if ( -e "${General::swroot}/snort/enable" || -e "${General::swroot}/snort/enable # Create rule file rule's checkbox $checkboxname = "SNORT_RULE_$rulefile"; $checkboxname .= "_$ruledef"; - print "<TD CLASS='base'><INPUT TYPE='checkbox' NAME='$checkboxname' $ruledefchecked> $snortrules{$rulefile}{'Definition'}{$ruledef}{'Description'}</TD>"; + print "<td class='base'><input type='checkbox' NAME='$checkboxname' $ruledefchecked> $snortrules{$rulefile}{'Definition'}{$ruledef}{'Description'}</td>";
# Increment count $ruledefdisplaycnt++; @@ -715,26 +715,24 @@ if ( -e "${General::swroot}/snort/enable" || -e "${General::swroot}/snort/enable
# If do not have second rule for row, create empty cell if (($ruledefdisplaycnt % 2) != 0) { - print "<TD CLASS='base'></TD>"; + print "<td class='base'></td>"; }
# Close display table - print "</TR></TABLE></TD></TR>"; + print "</tr></table></td></tr>"; }
# Close display table - print "</TABLE>"; + print "</table>";
# Increment ruledisplaycnt $ruledisplaycnt++; } - print "</TD></TR></TABLE></TD></TR></TABLE>"; + print "</td></tr></table></td></tr></table>"; print <<END <table width='100%'> <tr> - <td width='33%'> </td> - <td width='33%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'update'}' /></td> - <td width='33%'> + <td width='100%' align='right'><input type='submit' name='ACTION' value='$Lang::tr{'update'}' /></td> <!-- space for future online help link --> </td> </tr> diff --git a/html/cgi-bin/imspector.cgi b/html/cgi-bin/imspector.cgi index 7cc2e64..fff4329 100644 --- a/html/cgi-bin/imspector.cgi +++ b/html/cgi-bin/imspector.cgi @@ -92,7 +92,7 @@ sub scriptheader my $conversation = sprintf( "%.4d-%.2d-%.2d", $year, $mon, $mday );
my $script = qq { -<script language="Javascript"> +<script type="text/javascript"> var section ='none'; var moveit = 1; var skimhtml = 1; diff --git a/html/cgi-bin/index.cgi b/html/cgi-bin/index.cgi index ea19e26..53adeac 100644 --- a/html/cgi-bin/index.cgi +++ b/html/cgi-bin/index.cgi @@ -2,7 +2,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2014 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -21,6 +21,7 @@
use strict; use Net::Telnet; +use Sort::Naturally;
# enable only the following on debugging purpose #use warnings; @@ -36,10 +37,22 @@ my %pppsettings=(); my %modemsettings=(); my %netsettings=(); my %ddnssettings=(); +my %proxysettings=(); +my %vpnsettings=(); +my %vpnconfig=(); +my %ovpnconfig=(); my $warnmessage = ''; my $refresh = ""; my $ipaddr=''; - +my $showbox=0; +my $showipsec=0; +my $showovpn=0; + +if ( ! -e "/var/ipfire/main/gpl_accepted" ) { + print "Status: 302 Moved Temporarily\n"; + print "Location: gpl.cgi\n\n"; + exit (0); +}
&Header::showhttpheaders();
@@ -51,6 +64,8 @@ $pppsettings{'PROFILENAME'} = 'None'; &General::readhash("${General::swroot}/modem/settings", %modemsettings); &General::readhash("${General::swroot}/ethernet/settings", %netsettings); &General::readhash("${General::swroot}/ddns/settings", %ddnssettings); +&General::readhash("${General::swroot}/proxy/advanced/settings", %proxysettings); +&General::readhash("${General::swroot}/vpn/settings", %vpnsettings);
my %color = (); my %mainsettings = (); @@ -59,14 +74,12 @@ my %mainsettings = ();
my $connstate = &Header::connectionstatus();
- if ( -e "/var/ipfire/main/gpl-accepted" ) { -if ($cgiparams{'ACTION'} eq $Lang::tr{'shutdown'} || $cgiparams{'ACTION'} eq $Lang::tr{'reboot'}) { - $refresh = "<meta http-equiv='refresh' content='300;'>"; -} elsif ($connstate =~ /$Lang::tr{'connecting'}/ || /$Lang::tr{'connection closed'}/ ){ - $refresh = "<meta http-equiv='refresh' content='5;'>"; -} elsif ($connstate =~ /$Lang::tr{'dod waiting'}/ || -e "${General::swroot}/main/refreshindex") { - $refresh = "<meta http-equiv='refresh' content='30;'>"; -} +if ( -e "/var/ipfire/main/gpl-accepted" ) { + if ($connstate =~ /$Lang::tr{'connecting'}/ || /$Lang::tr{'connection closed'}/ ){ + $refresh = "<meta http-equiv='refresh' content='5;'>"; + }elsif ($connstate =~ /$Lang::tr{'dod waiting'}/ || -e "${General::swroot}/main/refreshindex") { + $refresh = "<meta http-equiv='refresh' content='30;'>"; + } }
if ($cgiparams{'ACTION'} eq $Lang::tr{'dial profile'}) @@ -81,8 +94,8 @@ if ($cgiparams{'ACTION'} eq $Lang::tr{'dial profile'}) unlink("${General::swroot}/ppp/settings"); link("${General::swroot}/ppp/settings-$cgiparams{'PROFILE'}", "${General::swroot}/ppp/settings"); - system ("/usr/bin/touch", "${General::swroot}/ppp/updatesettings"); - + open (TMP, ">${General::swroot}/ppp/updatesettings"); + close TMP; # read in the new params "early" so we can write secrets. %cgiparams = (); &General::readhash("${General::swroot}/ppp/settings", %cgiparams); @@ -106,10 +119,11 @@ if ($cgiparams{'ACTION'} eq $Lang::tr{'dial profile'})
if ($cgiparams{'ACTION'} eq $Lang::tr{'dial'}) { system('/usr/local/bin/redctrl start > /dev/null') == 0 - or &General::log("Dial failed: $?"); sleep 1;} -elsif ($cgiparams{'ACTION'} eq $Lang::tr{'hangup'}) { + or &General::log("Dial failed: $?"); sleep 1; +}elsif ($cgiparams{'ACTION'} eq $Lang::tr{'hangup'}) { system('/usr/local/bin/redctrl stop > /dev/null') == 0 - or &General::log("Hangup failed: $?"); sleep 1;} + or &General::log("Hangup failed: $?"); sleep 1; +}
my $c; my $maxprofiles = 5; @@ -129,18 +143,15 @@ for ($c = 1; $c <= $maxprofiles; $c++) { $selected{'PROFILE'}{$pppsettings{'PROFILE'}} = "selected='selected'"; my $dialButtonDisabled = "disabled='disabled'";
- &Header::openpage($Lang::tr{'main page'}, 1, $refresh); &Header::openbigbox('', 'center'); +if (open(IPADDR,"${General::swroot}/red/local-ipaddress")) { + $ipaddr = <IPADDR>; + close IPADDR; + chomp ($ipaddr); + }
-# licence agreement -if ($cgiparams{'ACTION'} eq $Lang::tr{'yes'} && $cgiparams{'gpl_accepted'} eq '1') { - system('touch /var/ipfire/main/gpl_accepted') -} -if ( -e "/var/ipfire/main/gpl_accepted" ) { -&Header::openbox('100%', 'center', &Header::cleanhtml(`/bin/uname -n`,"y")); - - +&Header::openbox('100%', 'center', ''); if ( ( $pppsettings{'VALID'} eq 'yes' && $modemsettings{'VALID'} eq 'yes' ) || ( $netsettings{'CONFIG_TYPE'} =~ /^(1|2|3|4)$/ && $netsettings{'RED_TYPE'} =~ /^(DHCP|STATIC)$/ )) { if (open(IPADDR,"${General::swroot}/ddns/ipcache")) { $ipaddr = <IPADDR>; @@ -158,306 +169,338 @@ if ( ( $pppsettings{'VALID'} eq 'yes' && $modemsettings{'VALID'} eq 'yes' ) || ( print "$Lang::tr{'profile has errors'}\n </b></font>\n"; }
-#if ( $netsettings{'RED_TYPE'} =~ /^(DHCP|STATIC)$/ ) { -# $ipaddr = $netsettings{'RED_ADDRESS'}; -#} - -my $death = 0; -my $rebirth = 0; - -if ($cgiparams{'ACTION'} eq $Lang::tr{'shutdown'}) { - $death = 1; - &General::log($Lang::tr{'shutting down ipfire'}); - system '/usr/local/bin/ipfirereboot down'; -} elsif ($cgiparams{'ACTION'} eq $Lang::tr{'reboot'}) { - $rebirth = 1; - &General::log($Lang::tr{'rebooting ipfire'}); - system '/usr/local/bin/ipfirereboot boot'; -} - -if ($death == 0 && $rebirth == 0) { - -if ($mainsettings{'REBOOTQUESTION'} eq "off") { -print <<END - <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <table width='100%'> - <tr> - <td width='33%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'reboot'}' /></td> - <td width='33%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'refresh'}' /></td> - <td width='33%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'shutdown'}' /></td> - </tr> - </table> - </form> -END -; -} else { - if ($cgiparams{'ACTION'} eq $Lang::tr{'reboot ask'}) { -print <<END - <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <table width='100%'> - <tr> - <td colspan="3" align='left'><font color="red">$Lang::tr{'reboot sure'}</font></td> - </tr> - <tr> - <td width='33%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'reboot'}' /></td> - <td width='33%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'refresh'}' /></td> - <td width='33%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'shutdown ask'}' /></td> - </tr> - </table> - </form> +print <<END; +<!-- Table of networks --> +<table class='tbl' style='width:80%;'> + <tr> + <th style='background-color:$color{'color20'};'>$Lang::tr{'network'}</th> + <th style='background-color:$color{'color20'};'>$Lang::tr{'ip address'}</th> + <th style='background-color:$color{'color20'};'>$Lang::tr{'status'}</th> + </tr> + <tr> + <td style='width:25%; text-align:center; background-color:$Header::colourred;'><a href='/cgi-bin/pppsetup.cgi' style='color:white;'><b>$Lang::tr{'internet'}</b></a><br/></td> + <td style='width:30%; text-align:center;'>$ipaddr </td> + <td style='width:45%; text-align:center;'>$connstate </td> + </tr> END -; - } elsif ($cgiparams{'ACTION'} eq $Lang::tr{'shutdown ask'}) { -print <<END - <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <table width='100%'> - <tr> - <td colspan="3" align='right'><font color="red">$Lang::tr{'shutdown sure'}</font></td> - </tr> - <tr> - <td width='33%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'reboot ask'}' /></td> - <td width='33%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'refresh'}' /></td> - <td width='33%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'shutdown'}' /></td> - </tr> - </table> - </form> + my $HOSTNAME = (gethostbyaddr(pack("C4", split(/./, $ipaddr)), 2))[0]; + if ( "$HOSTNAME" ne "" ) { + print <<END; + <tr><td><b>$Lang::tr{'hostname'}:</b><td style='text-align:center;'>$HOSTNAME</td><td></td> END -; - } else { -print <<END - <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <table width='100%'> - <tr> - <td width='33%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'reboot ask'}' /></td> - <td width='33%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'refresh'}' /></td> - <td width='33%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'shutdown ask'}' /></td> - </tr> - </table> - </form> + } + + if ( -e "${General::swroot}/red/remote-ipaddress" ) { + open (TMP, "<${General::swroot}/red/remote-ipaddress"); + my $GATEWAY = <TMP>; + chomp($GATEWAY); + close TMP; + print <<END; + <tr><td><b>$Lang::tr{'gateway'}:</b><td style='text-align:center;'>$GATEWAY</td><td></td></tr> END -; } -} -print <<END;
+ my @dns_servers = (); + foreach my $f ("${General::swroot}/red/dns1", "${General::swroot}/red/dns2") { + open(DNS, "<$f"); + my $dns_server = <DNS>; + close(DNS);
+ chomp($dns_server); + if ($dns_server) { + push(@dns_servers, $dns_server); + } + } + my $dns_servers_str = join(", ", @dns_servers);
-<!-- Table of networks --> -<table border='0' width=80%> - <tr> <th bgcolor='$color{'color20'}'>$Lang::tr{'network'}</th> - <th bgcolor='$color{'color20'}'>IP</th> - <th bgcolor='$color{'color20'}'>$Lang::tr{'status'}</th></tr> - <tr> <td align='center' bgcolor='$Header::colourred' width='25%'><a href="/cgi-bin/pppsetup.cgi"><font size='2' color='white'><b>$Lang::tr{'internet'}</b></font></a><br></td> - <td width='30%' align='center'>$ipaddr </td> - <td width='45%' align='center'>$connstate + print <<END; + <tr> + <td> + <b>$Lang::tr{'dns servers'}:</b> + </td> + <td style='text-align:center;'> + $dns_servers_str + </td> + <td></td> + </tr> + </table> END -if ( $netsettings{'RED_TYPE'} ne "STATIC" && $netsettings{'RED_TYPE'} ne "DHCP" ){ -print `/usr/local/bin/dialctrl.pl show`; -print <<END; - </td></tr> - <tr><td colspan='2'>
+#Dial profiles +if ( $netsettings{'RED_TYPE'} ne "STATIC" && $netsettings{'RED_TYPE'} ne "DHCP" ){ + if ( ( $pppsettings{'VALID'} eq 'yes' ) || ( $netsettings{'CONFIG_TYPE'} =~ /^(1|2|3|4)$/ && $netsettings{'RED_TYPE'} =~ /^(DHCP|STATIC)$/ ) ) { + print <<END; + <br/> + <table style='width:80%;'> + <tr><td> <form method='post' action='$ENV{'SCRIPT_NAME'}'>$Lang::tr{'profile'}: <select name='PROFILE'> END - for ($c = 1; $c <= $maxprofiles; $c++) - { - if ($profilenames[$c] ne '') { - $dialButtonDisabled = ""; - print "\t<option value='$c' $selected{'PROFILE'}{$c}>$c. $profilenames[$c]</option>\n"; + for ($c = 1; $c <= $maxprofiles; $c++) + { + if ($profilenames[$c] ne '') { + $dialButtonDisabled = ""; + print "<option value='$c' $selected{'PROFILE'}{$c}>$c. $profilenames[$c]</option>"; + } } - } - $dialButtonDisabled = "disabled='disabled'" if (-e '/var/run/ppp-ipfire.pid' || -e "${General::swroot}/red/active"); - if ( ( $pppsettings{'VALID'} eq 'yes' ) || ( $netsettings{'CONFIG_TYPE'} =~ /^(1|2|3|4)$/ && $netsettings{'RED_TYPE'} =~ /^(DHCP|STATIC)$/ ) ) { + $dialButtonDisabled = "disabled='disabled'" if (-e '/var/run/ppp-ipfire.pid' || -e "${General::swroot}/red/active"); print <<END; - </select> - <input type='submit' name='ACTION' value='$Lang::tr{'dial profile'}' $dialButtonDisabled /> - </form> - <td align='center'> - <table width='100%' border='0'> - <tr> - <td width='50%' align='right'> <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <input type='submit' name='ACTION' value='$Lang::tr{'dial'}'> - </form> - <td width='50%' align='left'> <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <input type='submit' name='ACTION' value='$Lang::tr{'hangup'}'> - </form> - </table> + </select> + <input type='submit' name='ACTION' value='$Lang::tr{'dial profile'}' $dialButtonDisabled /> + </form> + </td> + <td style='text-align:center;'> + <table style='width:100%;'> + <tr> + <td style='width=50%; text-align:right;'> + <form method='post' action='$ENV{'SCRIPT_NAME'}'> + <input type='submit' name='ACTION' value='$Lang::tr{'dial'}'> + </form> + </td> + <td style='width=50%; text-align:left;'> + <form method='post' action='$ENV{'SCRIPT_NAME'}'> + <input type='submit' name='ACTION' value='$Lang::tr{'hangup'}'> + </form> + </td> + </tr> + </table> + </td> + </tr> + </table> END } else { - print "$Lang::tr{'profile has errors'}\n </b></font>\n"; + print "<br/><span style='color:red;'>$Lang::tr{'profile has errors'}</span><br/>"; } } - my $HOSTNAME = (gethostbyaddr(pack("C4", split(/./, $ipaddr)), 2))[0]; - if ( "$HOSTNAME" ne "" ) { - print <<END; - <tr><td><b>Hostname:</b><td align='center'>$HOSTNAME<td> + + +print <<END; +<br/> +<table class='tbl' style='width:80%;'> +<tr> + <th>$Lang::tr{'network'}</th> + <th>$Lang::tr{'ip address'}</th> + <th>$Lang::tr{'status'}</th> +</tr> END - }
- if ( -e "/var/ipfire/red/remote-ipaddress" ) { - my $GATEWAY = `cat /var/ipfire/red/remote-ipaddress`; - chomp($GATEWAY); +if ( $netsettings{'GREEN_DEV'} ) { + my $sub=&General::iporsubtocidr($netsettings{'GREEN_NETMASK'}); print <<END; - <tr><td><b>Gateway:</b><td align='center'>$GATEWAY<td> + <tr> + <td style='width:25%; text-align:center; background-color:$Header::colourgreen;'> + <a href='/cgi-bin/dhcp.cgi' style='color:white'><b>$Lang::tr{'lan'}</b></a> + </td> + <td style='width:30%; text-align:center;'>$netsettings{'GREEN_ADDRESS'}/$sub</td> + <td style='width:45%; text-align:center;'> END + if ( $proxysettings{'ENABLE'} eq 'on' ) { + print $Lang::tr{'advproxy on'}; + if ( $proxysettings{'TRANSPARENT'} eq 'on' ) { print " (transparent)"; } + } else { print $Lang::tr{'advproxy off'}; } + print '</td>'; + print '</tr>'; } - - my $DNS1 = `cat /var/ipfire/red/dns1`; - my $DNS2 = `cat /var/ipfire/red/dns2`; - chomp($DNS1); - chomp($DNS1); - - if ( $DNS1 ) { print <<END; - <tr><td><b>DNS-Server:</b><td align='center'>$DNS1 +if ( $netsettings{'BLUE_DEV'} ) { + my $sub=&General::iporsubtocidr($netsettings{'BLUE_NETMASK'}); + print <<END; + <tr> + <td style='width:25%; text-align:center; background-color:$Header::colourblue;'> + <a href='/cgi-bin/wireless.cgi' style='color:white'><b>$Lang::tr{'wireless'}</b></a> + </td> + <td style='width:30%; text-align:center;'>$netsettings{'BLUE_ADDRESS'}/$sub + <td style='width:45%; text-align:center;'> END + if ( $proxysettings{'ENABLE_BLUE'} eq 'on' ) { + print $Lang::tr{'advproxy on'}; + if ( $proxysettings{'TRANSPARENT_BLUE'} eq 'on' ) { print " (transparent)"; } + } else { print $Lang::tr{'advproxy off'}; } + print '</td>'; + print '</tr>'; } - if ( $DNS2 ) { print <<END; - <td align='center'>$DNS2 -END - } else { print <<END; - <td> +if ( $netsettings{'ORANGE_DEV'} ) { + my $sub=&General::iporsubtocidr($netsettings{'ORANGE_NETMASK'}); + print <<END; + <tr> + <td style='width:25%; text-align:center; background-color:$Header::colourorange;'> + <a href='/cgi-bin/firewall.cgi' style='color:white'><b>$Lang::tr{'dmz'}</b></a> + </td> + <td style='width:30%; text-align:center;'>$netsettings{'ORANGE_ADDRESS'}/$sub</td> + <td style='width:45%; text-align:center; color:$Header::colourgreen;'>Online</td> + </tr> END } +#check if IPSEC is running +if ( $vpnsettings{'ENABLED'} eq 'on' || $vpnsettings{'ENABLED_BLUE'} eq 'on' ) { + my $ipsecip = $vpnsettings{'VPN_IP'}; +print<<END; + <tr> + <td style='width:25%; text-align:center; background-color:$Header::colourvpn;'> + <a href='/cgi-bin/vpnmain.cgi' style='color:white'><b>$Lang::tr{'ipsec'}</b></a> + </td> + <td style='width:30%; text-align:center;'>$ipsecip</td> + <td style='width:45%; text-align:center; color:$Header::colourgreen;'>Online</td> + </tr> +END +}
- if ( $netsettings{'GREEN_DEV'} ) { print <<END; - <tr><td align='center' bgcolor='$Header::colourgreen' width='25%'><a href="/cgi-bin/dhcp.cgi"><font size='2' color='white'><b>$Lang::tr{'lan'}</b></font></a> - <td width='30%' align='center'>$netsettings{'GREEN_ADDRESS'} - <td width='45%' align='center'> +#check if OpenVPN is running +my %confighash=(); +&General::readhash("${General::swroot}/ovpn/settings", %confighash); + +if (($confighash{'ENABLED'} eq "on") || + ($confighash{'ENABLED_BLUE'} eq "on") || + ($confighash{'ENABLED_ORANGE'} eq "on")) { + my ($ovpnip,$sub) = split("/",$confighash{'DOVPN_SUBNET'}); + $sub=&General::iporsubtocidr($sub); + $ovpnip="$ovpnip/$sub"; +print <<END; + <tr> + <td style='width:25%; text-align:center; background-color:$Header::colourovpn;'> + <a href='/cgi-bin/ovpnmain.cgi' style='color:white'><b>OpenVPN</b></a> + </td> + <td style='width:30%; text-align:center;'>$ovpnip</td> + <td style='width:45%; text-align:center; color:$Header::colourgreen;'>Online</td> + </tr> END - if ( `cat /var/ipfire/proxy/advanced/settings | grep ^ENABLE=on` ) { - print $Lang::tr{'advproxy on'}; - if ( `cat /var/ipfire/proxy/advanced/settings | grep ^TRANSPARENT=on` ) { print " (transparent)"; } - } else { print $Lang::tr{'advproxy off'}; } } - if ( $netsettings{'BLUE_DEV'} ) { print <<END; - <tr><td align='center' bgcolor='$Header::colourblue' width='25%'><a href="/cgi-bin/wireless.cgi"><font size='2' color='white'><b>$Lang::tr{'wireless'}</b></font></a><br> - <td width='30%' align='center'>$netsettings{'BLUE_ADDRESS'} - <td width='45%' align='center'> -END - if ( `cat /var/ipfire/proxy/advanced/settings | grep ^ENABLE_BLUE=on` ) { - print $Lang::tr{'advproxy on'}; - if ( `cat /var/ipfire/proxy/advanced/settings | grep ^TRANSPARENT_BLUE=on` ) { print " (transparent)"; } - } else { print $Lang::tr{'advproxy off'}; } +print"</table>"; +&Header::closebox(); + +#Check if there are any vpns configured (ipsec and openvpn) +&General::readhasharray("${General::swroot}/vpn/config", %vpnconfig); +foreach my $key (sort { ncmp($vpnconfig{$a}[1],$vpnconfig{$b}[1]) } keys %vpnconfig) { + if ($vpnconfig{$key}[0] eq 'on' && $vpnconfig{$key}[3] ne 'host'){ + $showipsec=1; + $showbox=1; + last; } - if ( $netsettings{'ORANGE_DEV'} ) { print <<END; - <tr><td align='center' bgcolor='$Header::colourorange' width='25%'><a href="/cgi-bin/dmzholes.cgi"><font size='2' color='white'><b>$Lang::tr{'dmz'}</b></font></a><br> - <td width='30%' align='center'>$netsettings{'ORANGE_ADDRESS'} - <td width='45%' align='center'><font color=$Header::colourgreen>Online</font> -END +} +&General::readhasharray("${General::swroot}/ovpn/ovpnconfig", %ovpnconfig); +foreach my $dkey (sort { ncmp($ovpnconfig{$a}[1],$ovpnconfig{$b}[1])} keys %ovpnconfig) { + if (($ovpnconfig{$dkey}[3] eq 'net') && (-e "/var/run/$ovpnconfig{$dkey}[1]n2n.pid")){ + $showbox=1; + $showovpn=1; + last; } - if ( `cat /var/ipfire/vpn/settings | grep ^ENABLED=on` || - `cat /var/ipfire/vpn/settings | grep ^ENABLED_BLUE=on` ) { - my $ipsecip = `cat /var/ipfire/vpn/settings | grep ^VPN_IP= | cut -c 8-`; +} + +if ($showbox){ +# Start of Box wich contains all vpn connections + &Header::openbox('100%', 'center', $Lang::tr{'vpn'}); + + #show ipsec connectiontable + if ( $showipsec ) { + my $ipsecip = $vpnsettings{'VPN_IP'}; my @status = `/usr/local/bin/ipsecctrl I`; my %confighash = (); - &General::readhasharray("${General::swroot}/vpn/config", %confighash); - print <<END; - <tr><td align='center' bgcolor='$Header::colourvpn' width='25%'><a href="/cgi-bin/vpnmain.cgi"><font size='2' color='white'><b>$Lang::tr{'vpn'}</b></font></a><br> - <td width='30%' align='center'>$ipsecip - <td width='45%' align='center'><font color=$Header::colourgreen>Online</font> -END my $id = 0; my $gif; - foreach my $key (sort { uc($confighash{$a}[1]) cmp uc($confighash{$b}[1]) } keys %confighash) { - if ($confighash{$key}[0] eq 'on') { $gif = 'on.gif'; } else { $gif = 'off.gif'; } - - if ($id % 2) { - print "<tr><td align='left' nowrap='nowrap' bgcolor='$color{'color20'}'>$confighash{$key}[1] / " . $Lang::tr{"$confighash{$key}[3]"} . " (" . $Lang::tr{"$confighash{$key}[4]"} . ")</td><td align='center'>$confighash{$key}[11]</td>"; - } else { - print "<tr></td><td align='left' nowrap='nowrap' bgcolor='$color{'color22'}'>$confighash{$key}[1] / " . $Lang::tr{"$confighash{$key}[3]"} . " (" . $Lang::tr{"$confighash{$key}[4]"} . ")</td><td align='center'>$confighash{$key}[11]</td>"; - } - - my $active = "<table cellpadding='2' cellspacing='0' bgcolor='${Header::colourred}' width='100%'><tr><td align='center'><b><font color='#FFFFFF'>$Lang::tr{'capsclosed'}</font></b></td></tr></table>"; - if ($confighash{$key}[0] eq 'off') { - $active = "<table cellpadding='2' cellspacing='0' bgcolor='${Header::colourblue}' width='100%'><tr><td align='center'><b><font color='#FFFFFF'>$Lang::tr{'capsclosed'}</font></b></td></tr></table>"; - } else { - foreach my $line (@status) { - if (($line =~ /"$confighash{$key}[1]".*IPsec SA established/) || - ($line =~/$confighash{$key}[1]{.*INSTALLED/ )) - { - $active = "<table cellpadding='2' cellspacing='0' bgcolor='${Header::colourgreen}' width='100%'><tr><td align='center'><b><font color='#FFFFFF'>$Lang::tr{'capsopen'}</font></b></td></tr></table>"; + my $col=""; + my $count=0; + print <<END; + <table class='tbl' style='width:80%;'> + <tr> + <th style='width:40%;'>$Lang::tr{'ipsec network'}</th> + <th style='width:30%;'>$Lang::tr{'ip address'}</th> + <th style='width:30%;'>$Lang::tr{'status'}</th> + </tr> +END + foreach my $key (sort { uc($vpnconfig{$a}[1]) cmp uc($vpnconfig{$b}[1]) } keys %vpnconfig) { + if ($vpnconfig{$key}[0] eq 'on' && $vpnconfig{$key}[3] ne 'host') { + $count++; + my ($vpnip,$vpnsub) = split("/",$vpnconfig{$key}[11]); + $vpnsub=&General::iporsubtocidr($vpnsub); + $vpnip="$vpnip/$vpnsub"; + if ($count % 2){ + $col = $color{'color22'}; + }else{ + $col = $color{'color20'}; + } + print "<tr>"; + print "<td style='text-align:left; color:white; background-color:$Header::colourvpn;'>$vpnconfig{$key}[1]</td>"; + print "<td style='text-align:center; background-color:$col'>$vpnip</td>"; + + my $activecolor = $Header::colourred; + my $activestatus = $Lang::tr{'capsclosed'}; + if ($vpnconfig{$key}[0] eq 'off') { + $activecolor = $Header::colourblue; + $activestatus = $Lang::tr{'capsclosed'}; + } else { + foreach my $line (@status) { + if (($line =~ /"$vpnconfig{$key}[1]".*IPsec SA established/) || ($line =~/$vpnconfig{$key}[1]{.*INSTALLED/ )){ + $activecolor = $Header::colourgreen; + $activestatus = $Lang::tr{'capsopen'}; + } + } } - } + print "<td style='text-align:center; color:white; background-color:$activecolor;'><b>$activestatus</b></td>"; + print "</tr>"; } - print "<td align='center'>$active</td>"; } + print "</table>"; }
-### -# Check if there is any OpenVPN connection configured. -### - -if ( -s "${General::swroot}/ovpn/ovpnconfig") - { - print <<END; - - <tr> - <td align='center' bgcolor='$Header::colourovpn' width='25%'> - <a href="/cgi-bin/ovpnmain.cgi"><font size='2' color='white'><b>OpenVPN</b></font></a><br> - </td> -END - # Check if the OpenVPN server for Road Warrior Connections is running and display status information. - my %confighash=(); - - &General::readhash("${General::swroot}/ovpn/settings", %confighash); - - if (($confighash{'ENABLED'} eq "on") || - ($confighash{'ENABLED_BLUE'} eq "on") || - ($confighash{'ENABLED_ORANGE'} eq "on")) { - - my $ovpnip = $confighash{'DOVPN_SUBNET'}; + # Check if there is any OpenVPN connection configured. + if ( $showovpn ){ print <<END; - <td width='30%' align='center'>$ovpnip - <td width='45%' align='center'><font color=$Header::colourgreen>Online</font> + <br/> + <table class='tbl' style='width:80%;'> + <tr> + <th style='width:40%;'>$Lang::tr{'openvpn network'}</th> + <th style='width:30%;'>$Lang::tr{'ip address'}</th> + <th style='width:30%;'>$Lang::tr{'status'}</th> END
- } - - # Print the OpenVPN N2N connection status. - if ( -d "${General::swroot}/ovpn/n2nconf") { - my %confighash=(); - - &General::readhasharray("${General::swroot}/ovpn/ovpnconfig", %confighash); - foreach my $dkey (keys %confighash) { - if (($confighash{$dkey}[3] eq 'net') && (-e "/var/run/$confighash{$dkey}[1]n2n.pid")) { - my $tport = $confighash{$dkey}[22]; - next if ($tport eq ''); - - my $tnet = new Net::Telnet ( Timeout=>5, Errmode=>'return', Port=>$tport); - $tnet->open('127.0.0.1'); - my @output = $tnet->cmd(String => 'state', Prompt => '/(END.*\n|ERROR:.*\n)/'); - my @tustate = split(/,/, $output[1]); - - my $display; - my $display_colour = $Header::colourred; - if ( $tustate[1] eq 'CONNECTED') { - $display_colour = $Header::colourgreen; - $display = $Lang::tr{'capsopen'}; - } else { - $display = $tustate[1]; - } - - print <<END; - <tr> - <td align='left' nowrap='nowrap' bgcolor='$color{'color22'}'> - $confighash{$dkey}[1] - </td> - <td align='center'> - $confighash{$dkey}[11] - </td> - <td align='center' bgcolor='$display_colour'> - <b> - <font color='#FFFFFF'> - $display - </font> - </b> - </td> - </tr> + # Check if the OpenVPN server for Road Warrior Connections is running and display status information. + my $active; + my $count=0; + # Print the OpenVPN N2N connection status. + if ( -d "${General::swroot}/ovpn/n2nconf") { + my $col=""; + foreach my $dkey (sort { ncmp ($ovpnconfig{$a}[1],$ovpnconfig{$b}[1])} keys %ovpnconfig) { + if (($ovpnconfig{$dkey}[3] eq 'net') && (-e "/var/run/$ovpnconfig{$dkey}[1]n2n.pid")){ + $count++; + my $tport = $ovpnconfig{$dkey}[22]; + next if ($tport eq ''); + my $tnet = new Net::Telnet ( Timeout=>5, Errmode=>'return', Port=>$tport); + $tnet->open('127.0.0.1'); + my @output = $tnet->cmd(String => 'state', Prompt => '/(END.*\n|ERROR:.*\n)/'); + my @tustate = split(/,/, $output[1]); + my $display; + my $display_colour = $Header::colourred; + if ( $tustate[1] eq 'CONNECTED' || ($tustate[1] eq 'WAIT')) { + $display_colour = $Header::colourgreen; + $display = $Lang::tr{'capsopen'}; + } else { + $display = $tustate[1]; + } + if ($count %2){ + $col = $color{'color22'}; + }else{ + $col = $color{'color20'}; + } + $active='off'; + #make cidr from ip + my ($vpnip,$vpnsub) = split("/",$ovpnconfig{$dkey}[11]); + my $vpnsub=&General::iporsubtocidr($vpnsub); + my $vpnip="$vpnip/$vpnsub"; + print <<END; + <tr> + <td style='text-align:left; color:white; background-color:$Header::colourovpn;'>$ovpnconfig{$dkey}[1]</td> + <td style='text-align:center; background-color:$col'>$vpnip</td> + <td style='text-align:center; color:white; background-color:$display_colour' ><b>$display</b></td> + </tr> END + } } } + if ($active ne 'off'){ + print "<tr><td colspan='3' style='text-align:center;'>$Lang::tr{'ovpn no connections'}</td></tr>"; + } + print"</table>"; } +&Header::closebox(); }
# Fireinfo @@ -473,7 +516,7 @@ $free[2] =~ m/(\d+)/; my $used = $1; my $pct = int 100 * ($mem - $used) / $mem; if ($used / $mem > 90) { - $warnmessage .= "<li> $Lang::tr{'high memory usage'}: $pct% !</li>\n"; + $warnmessage .= "<li>$Lang::tr{'high memory usage'}: $pct% !</li>"; }
# Diskspace usage warning @@ -488,7 +531,7 @@ foreach my $line (@df) { if ($1<5) { # available:plain value in MB, and not %used as 10% is too much to waste on small disk # and root size should not vary during time - $warnmessage .= "<li> $Lang::tr{'filesystem full'}: $temp[0] <b>$Lang::tr{'free'}=$1M</b> !</li>\n"; + $warnmessage .= "<li>$Lang::tr{'filesystem full'}: $temp[0] <b>$Lang::tr{'free'}=$1M</b> !</li>"; } } else { @@ -497,7 +540,7 @@ foreach my $line (@df) { if ($1>90) { @temp = split(/ /,$line); $temp2=int(100-$1); - $warnmessage .= "<li> $Lang::tr{'filesystem full'}: $temp[0] <b>$Lang::tr{'free'}=$temp2%</b> !</li>\n"; + $warnmessage .= "<li>$Lang::tr{'filesystem full'}: $temp[0] <b>$Lang::tr{'free'}=$temp2%</b> !</li>"; } } } @@ -509,7 +552,7 @@ foreach my $file (@files) { my $disk=`echo $file | cut -d"-" -f2`; chomp ($disk); if (`/bin/grep "SAVE ALL DATA" $file`) { - $warnmessage .= "<li> $Lang::tr{'smartwarn1'} /dev/$disk $Lang::tr{'smartwarn2'} !</li>\n\n"; + $warnmessage .= "<li>$Lang::tr{'smartwarn1'} /dev/$disk $Lang::tr{'smartwarn2'} !</li>"; } }
@@ -517,77 +560,25 @@ foreach my $file (@files) { my @files = `mount | grep " reiser4 (" 2>/dev/null`; foreach my $disk (@files) { chomp ($disk); - $warnmessage .= "<li>$disk - $Lang::tr{'deprecated fs warn'}</li>\n\n"; + $warnmessage .= "<li>$disk - $Lang::tr{'deprecated fs warn'}</li>"; }
- if ($warnmessage) { - print "<tr><td align='center' bgcolor=$Header::colourred colspan='3'><font color='white'>$warnmessage</font></table>"; + &Header::openbox('100%','center', ); + print "<table class='tbl' style='width:80%;'>"; + print "<tr><th>$Lang::tr{'fwhost hint'}</th></tr>"; + print "<tr><td style='color:white; background-color:$Header::colourred;'>$warnmessage</td></tr>"; + print "</table>"; + &Header::closebox(); } -print <<END; -</table> -END -; + &Pakfire::dblist("upgrade", "notice"); -print <<END; -END if ( -e "/var/run/need_reboot" ) { - print "<br /><br /><font color='red'>$Lang::tr{'needreboot'}!</font>"; -} -} else { - my $message=''; - if ($death) { - $message = $Lang::tr{'ipfire has now shutdown'}; - } else { - $message = $Lang::tr{'ipfire has now rebooted'}; - } - print <<END -<div align='center'> -<table width='100%' bgcolor='#ffffff'> -<tr><td align='center'> -<br /><br /><img src='/images/IPFire.png' /><br /><br /><br /> -</td></tr> -</table> -<br /> -<font size='6'>$message</font> -</div> -END -; - -} - -&Header::closebox(); -} - -else { -&Header::openbox('100%', 'left', $Lang::tr{'gpl license agreement'}); -print <<END; - $Lang::tr{'gpl please read carefully the general public license and accept it below'}. - <br /><br /> -END -; -if ( -e "/usr/share/doc/licenses/GPLv3" ) { - print '<textarea rows='25' cols='75' readonly='true'>'; - print `cat /usr/share/doc/licenses/GPLv3`; - print '</textarea>'; -} -else { - print '<br /><a href='http://www.gnu.org/licenses/gpl-3.0.txt%5C' target='_blank'>GNU GENERAL PUBLIC LICENSE</a><br />'; -} -print <<END; - <p> - <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <input type='checkbox' name='gpl_accepted' value='1'/> $Lang::tr{'gpl i accept these terms and conditions'}. - <br/ > - <input type='submit' name='ACTION' value=$Lang::tr{'yes'} /> - </form> - </p> - <a href='http://www.gnu.org/licenses/translations.html' target='_blank'>$Lang::tr{'gpl unofficial translation of the general public license v3'}</a> - -END - -&Header::closebox(); + print "<div style='text-align:center; color:red;'>"; + print "<br/><br/>$Lang::tr{'needreboot'}!"; + print "</div>"; }
&Header::closebigbox(); &Header::closepage(); + diff --git a/html/cgi-bin/iptables.cgi b/html/cgi-bin/iptables.cgi index 886330d..d456375 100644 --- a/html/cgi-bin/iptables.cgi +++ b/html/cgi-bin/iptables.cgi @@ -80,7 +80,7 @@ if ( $cgiparams{'selectedchain'} ne "" ){
print <<END
-<DIV align='left'> +<div align='left'> END ;
@@ -182,7 +182,7 @@ END } print "</td>\n</tr>\n"; } -print "</table></DIV><br />"; +print "</table></div><br />"; &Header::closebox();
## MANGLE @@ -202,7 +202,7 @@ if ( $cgiparams{'selectedchain'} ne "" ){
print <<END
-<DIV align='left'> +<div align='left'> END ;
@@ -309,7 +309,7 @@ END } print "</td>\n</tr>\n"; } -print "</table></DIV><br />"; +print "</table></div><br />"; &Header::closebox();
## NAT @@ -329,7 +329,7 @@ if ( $cgiparams{'selectedchain'} ne "" ){
print <<END
-<DIV align='left'> +<div align='left'> END ;
@@ -429,11 +429,11 @@ END } print "</td>\n</tr>\n"; } -print "</table></DIV><br />"; +print "</table></div><br />"; &Header::closebox(); &Header::closebigbox(); &Header::closepage();
system(rm -f "/srv/web/ipfire/html/iptables.txt"); system(rm -f "/srv/web/ipfire/html/iptablesmangle.txt"); -system(rm -f "/srv/web/ipfire/html/iptablesnat.txt"); \ No newline at end of file +system(rm -f "/srv/web/ipfire/html/iptablesnat.txt"); diff --git a/html/cgi-bin/logs.cgi/firewalllog.dat b/html/cgi-bin/logs.cgi/firewalllog.dat index 466a3ce..8bb4900 100644 --- a/html/cgi-bin/logs.cgi/firewalllog.dat +++ b/html/cgi-bin/logs.cgi/firewalllog.dat @@ -233,7 +233,7 @@ if ($errormessage) { &Header::closebox(); }
-&Header::openbox('100%', 'left', "$Lang::tr{'settings'}:"); +&Header::openbox('100%', 'left', "$Lang::tr{'settings'}");
print <<END <form method='post' action='$ENV{'SCRIPT_NAME'}'> @@ -285,7 +285,8 @@ END &Header::openbox('100%', 'left', $Lang::tr{'log'}); print "<p><b>$Lang::tr{'firewall hits'} $date: $lines</b></p>";
-$start = $lines - ${Header::viewsize} if ($start >= $lines - ${Header::viewsize}); +my $lastPageIndex = $lines - ${Header::viewsize}; +$start = $lastPageIndex if ($start >= $lastPageIndex); $start = 0 if ($start < 0);
my $prev; @@ -297,7 +298,7 @@ my $prev; }
my $next; - if ($start == $lines - ${Header::viewsize}) { + if ($start == $lastPageIndex) { $next = -1; } else { $next = $start + ${Header::viewsize}; @@ -308,16 +309,16 @@ if ($logsettings{'LOGVIEW_REVERSE'} eq 'on') { @log = reverse @log; } if ($lines != 0) { &oldernewer(); }
print <<END -<table width='100%'> +<table width='100%' class='tbl'> <tr> - <td align='center' class='boldbase'><b>$Lang::tr{'time'}</b></td> - <td align='center' class='boldbase'><b>$Lang::tr{'chain'}</b></td> - <td align='center' class='boldbase'><b>$Lang::tr{'iface'}</b></td> - <td align='center' class='boldbase'><b>$Lang::tr{'proto'}</b></td> - <td align='center' class='boldbase'><b>$Lang::tr{'source'}<br/>$Lang::tr{'destination'}</b></td> - <td align='center' class='boldbase'><b>$Lang::tr{'src port'}<br />$Lang::tr{'dst port'}</b></td> - <td align='center' class='boldbase'><b>Flag</b></td> - <td align='center' class='boldbase'><b>$Lang::tr{'mac address'}</b></td> + <th align='center' class='boldbase'><b>$Lang::tr{'time'}</b></th> + <th align='center' class='boldbase'><b>$Lang::tr{'chain'}</b></th> + <th align='center' class='boldbase'><b>$Lang::tr{'iface'}</b></th> + <th align='center' class='boldbase'><b>$Lang::tr{'proto'}</b></th> + <th align='center' class='boldbase'><b>$Lang::tr{'source'}<br/>$Lang::tr{'destination'}</b></th> + <th align='center' class='boldbase'><b>$Lang::tr{'src port'}<br />$Lang::tr{'dst port'}</b></th> + <th align='center' class='boldbase'><b>$Lang::tr{'country'}</b></th> + <th align='center' class='boldbase'><b>$Lang::tr{'mac address'}</b></th> </tr> END ; @@ -353,26 +354,29 @@ foreach $_ (@log) $dstport = "$dstport($servi)";} my @mactemp = split(/:/,$macaddr); $macaddr = "$mactemp[6]:$mactemp[7]:$mactemp[8]:$mactemp[9]:$mactemp[10]:$mactemp[11]"; + my $col=""; if ($lines % 2) { - print "<tr bgcolor='$color{'color20'}'>\n"; } + print "<tr>"; + $col="bgcolor='$color{'color20'}'"; } else { - print "<tr bgcolor='$color{'color22'}'>\n"; } + print "<tr>"; + $col="bgcolor='$color{'color22'}'"; } print <<END
- <td align='center'>$time</td> - <td align='center'>$comment</td> - <td align='center'>$iface</td> - <td align='center'>$proto</td> - <td align='center'><a href='/cgi-bin/ipinfo.cgi?ip=$srcaddr'>$srcaddr</a><br /><a href='/cgi-bin/ipinfo.cgi?ip=$dstaddr'>$dstaddr</a></td> - <td align='center'>$srcport<br/>$dstport</td> + <td align='center' $col>$time</td> + <td align='center' $col>$comment</td> + <td align='center' $col>$iface</td> + <td align='center' $col>$proto</td> + <td align='center' $col><a href='/cgi-bin/ipinfo.cgi?ip=$srcaddr'>$srcaddr</a><br /><a href='/cgi-bin/ipinfo.cgi?ip=$dstaddr'>$dstaddr</a></td> + <td align='center' $col>$srcport<br/>$dstport</td> END ; if ( $fcode ne "" ){ - print "<td align='center'><a href='../country.cgi#$fcode'><img src='/images/flags/$fcode.png' border='0' align='absmiddle' alt='$ccode'></a></td>";} + print "<td align='center' $col><a href='../country.cgi#$fcode'><img src='/images/flags/$fcode.png' border='0' align='absmiddle' alt='$ccode'></a></td>";} else { - print "<td align='center'></td>";} + print "<td align='center' $col></td>";} print <<END - <td align='center'>$macaddr</td> + <td align='center' $col>$macaddr</td> </tr> END ; @@ -399,16 +403,18 @@ END
print "<td align='center' width='50%'>"; if ($prev != -1) { + print "<a href='/cgi-bin/logs.cgi/firewalllog.dat?0,$cgiparams{'MONTH'},$cgiparams{'DAY'}'>$Lang::tr{'first'}</a> "; print "<a href='/cgi-bin/logs.cgi/firewalllog.dat?$prev,$cgiparams{'MONTH'},$cgiparams{'DAY'}'>$Lang::tr{'older'}</a>"; } else { - print "$Lang::tr{'older'}"; } + print "$Lang::tr{'first'} $Lang::tr{'older'}"; } print "</td>\n";
print "<td align='center' width='50%'>"; if ($next >= 0) { - print "<a href='/cgi-bin/logs.cgi/firewalllog.dat?$next,$cgiparams{'MONTH'},$cgiparams{'DAY'}'>$Lang::tr{'newer'}</a>"; } + print "<a href='/cgi-bin/logs.cgi/firewalllog.dat?$next,$cgiparams{'MONTH'},$cgiparams{'DAY'}'>$Lang::tr{'newer'}</a> "; + print "<a href='/cgi-bin/logs.cgi/firewalllog.dat?$lastPageIndex,$cgiparams{'MONTH'},$cgiparams{'DAY'}'>$Lang::tr{'last'}</a>"; } else { - print "$Lang::tr{'newer'}"; } + print "$Lang::tr{'newer'} $Lang::tr{'last'} "; } print "</td>\n";
print <<END diff --git a/html/cgi-bin/logs.cgi/firewalllogip.dat b/html/cgi-bin/logs.cgi/firewalllogip.dat index 3ec3f6d..07bcc77 100644 --- a/html/cgi-bin/logs.cgi/firewalllogip.dat +++ b/html/cgi-bin/logs.cgi/firewalllogip.dat @@ -221,7 +221,7 @@ if ($errormessage) { &Header::closebox(); }
-&Header::openbox('100%', 'left', "$Lang::tr{'settings'}:"); +&Header::openbox('100%', 'left', "$Lang::tr{'settings'}");
print <<END <form method='post' action='$ENV{'SCRIPT_NAME'}'> @@ -266,15 +266,15 @@ print <<END </td> <td width='5%' align='center'><input type='submit' name='ACTION' title='$Lang::tr{'day before'}' value='<<' /></td> <td width='5%' align='center'><input type='submit' name='ACTION' title='$Lang::tr{'day after'}' value='>>' /></td> -<td width='20%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'update'}' /></td> +<td width='20%' align='right'><input type='submit' name='ACTION' value='$Lang::tr{'update'}' /></td> +</tr> +<tr> + <td colspan='3' align='left' valign="left">$Lang::tr{'Number of IPs for the pie chart'}:</td> + <td colspan='3' align='left' valign="center"><input type='text' name='pienumber' value='$pienumber' size='4'></td> + <td align='right'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td> </tr> </table> -<table width='100%'> -<tr><td width='20%' align='right' valign="center">$Lang::tr{'Number of IPs for the pie chart'}:</td> - <td width='10%' align='left' valign="center"><input type='text' name='pienumber' value='$pienumber' size='4'></td> - <td width='20%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td></tr> - </table> - </form> +</form> END ;
@@ -397,20 +397,20 @@ if ($showpie != 2 && $pienumber <= 50 && $pienumber != 0) { print FILE $myimage->png; close(FILE); ##################################################### - print "<table align='center'><tr><td>"; + print "<div style='text-align:center'>"; print "<img src='/graphs/fwlog-ip$imagerandom.png'>"; - print "</td></tr></table>"; + print "</div>"; }
print <<END -<TABLE WIDTH='100%'> -<TR> -<TD WIDTH='10%' ALIGN='CENTER' CLASS='boldbase'></TD> -<TD WIDTH='30%' ALIGN='CENTER' CLASS='boldbase'><B>IP</B></TD> -<TD WIDTH='10%' ALIGN='CENTER' CLASS='boldbase'><B>Flag</B></TD> -<TD WIDTH='10%' ALIGN='CENTER' CLASS='boldbase'><B>Count</B></TD> -<TD WIDTH='30%' ALIGN='CENTER' CLASS='boldbase'><B>Percent</B></TD> -</TR> +<table width='100%' class='tbl'> +<tr> +<th width='10%' align='center' class='boldbase'></th> +<th width='30%' align='center' class='boldbase'><b>$Lang::tr{'ip address'}</b></th> +<th width='10%' align='center' class='boldbase'><b>$Lang::tr{'country'}</b></th> +<th width='10%' align='center' class='boldbase'><b>$Lang::tr{'count'}</b></th> +<th width='30%' align='center' class='boldbase'><b>$Lang::tr{'percentage'}</b></th> +</tr> END ;
@@ -419,6 +419,7 @@ my $show=0;
my $s; my $percent; +my $col="";
for($s=0;$s<$lines;$s++) { @@ -426,45 +427,37 @@ for($s=0;$s<$lines;$s++) $percent = $value[$s] * 100 / $linesjc; $percent = sprintf("%.f", $percent); $total = $total + $value[$s]; - if ( ($color % 10) == 1 ){print "<TR BGCOLOR='$color{'color1'}'>\n";} - if ( ($color % 10) == 2 ){print "<TR BGCOLOR='$color{'color2'}'>\n";} - if ( ($color % 10) == 3 ){print "<TR BGCOLOR='$color{'color3'}'>\n";} - if ( ($color % 10) == 4 ){print "<TR BGCOLOR='$color{'color4'}'>\n";} - if ( ($color % 10) == 5 ){print "<TR BGCOLOR='$color{'color5'}'>\n";} - if ( ($color % 10) == 6 ){print "<TR BGCOLOR='$color{'color6'}'>\n";} - if ( ($color % 10) == 7 ){print "<TR BGCOLOR='$color{'color7'}'>\n";} - if ( ($color % 10) == 8 ){print "<TR BGCOLOR='$color{'color8'}'>\n";} - if ( ($color % 10) == 9 ){print "<TR BGCOLOR='$color{'color9'}'>\n";} - if ( ($color % 10) == 0 ){print "<TR BGCOLOR='$color{'color10'}'>\n";} + my $colorIndex = $color % 10; + if($colorIndex == 0) { + $colorIndex = 10; + } + $col="bgcolor='$color{"color$colorIndex"}'"; + print "<tr>";
my $gi = Geo::IP::PurePerl->new(); my $ccode = $gi->country_code_by_name($key[$s]); my $fcode = lc($ccode);
$color++; - print "<TD ALIGN='CENTER'><form method='post' action='showrequestfromip.dat'><input type='hidden' name='MONTH' value='$cgiparams{'MONTH'}'> <input type='hidden' name='DAY' value='$cgiparams{'DAY'}'> <input type='hidden' name='ip' value='$key[$s]'> <input type='submit' value='details'></form></TD>"; - print "<TD ALIGN='CENTER'><a href='/cgi-bin/ipinfo.cgi?ip=$key[$s]'>$key[$s]</a></TD>"; + print "<td align='center' $col><form method='post' action='showrequestfromip.dat'><input type='hidden' name='MONTH' value='$cgiparams{'MONTH'}'> <input type='hidden' name='DAY' value='$cgiparams{'DAY'}'> <input type='hidden' name='ip' value='$key[$s]'> <input type='submit' value='$Lang::tr{'details'}'></form></td>"; + print "<td align='center' $col><a href='/cgi-bin/ipinfo.cgi?ip=$key[$s]'>$key[$s]</a></td>"; if ( $fcode ne "" ){ - print "<TD ALIGN='CENTER'><a href='/cgi-bin/country.cgi#$fcode'><img src='/images/flags/$fcode.png' border='0' align='absmiddle' alt='$ccode'></a></TD>";} + print "<td align='center' $col><a href='/cgi-bin/country.cgi#$fcode'><img src='/images/flags/$fcode.png' border='0' align='absmiddle' alt='$ccode' title='$ccode'></a></td>";} else { - print "<TD ALIGN='CENTER'></TD>";} - print "<TD ALIGN='CENTER'>$value[$s]</TD>"; - print "<TD ALIGN='CENTER'>$percent</TD>"; - print "</TR>"; -} + print "<td align='center' $col></td>";} + print "<td align='center' $col>$value[$s]</td>"; + print "<td align='center' $col>$percent</td>"; + print "</tr>"; + }
if($cgiparams{'otherspie'} == 2 ){} else{ -if ( ($color % 10) == 1 ){print "<TR BGCOLOR='$color{'color1'}'>\n";} -if ( ($color % 10) == 2 ){print "<TR BGCOLOR='$color{'color2'}'>\n";} -if ( ($color % 10) == 3 ){print "<TR BGCOLOR='$color{'color3'}'>\n";} -if ( ($color % 10) == 4 ){print "<TR BGCOLOR='$color{'color4'}'>\n";} -if ( ($color % 10) == 5 ){print "<TR BGCOLOR='$color{'color5'}'>\n";} -if ( ($color % 10) == 6 ){print "<TR BGCOLOR='$color{'color6'}'>\n";} -if ( ($color % 10) == 7 ){print "<TR BGCOLOR='$color{'color7'}'>\n";} -if ( ($color % 10) == 8 ){print "<TR BGCOLOR='$color{'color8'}'>\n";} -if ( ($color % 10) == 9 ){print "<TR BGCOLOR='$color{'color9'}'>\n";} -if ( ($color % 10) == 0 ){print "<TR BGCOLOR='$color{'color10'}'>\n";} + my $colorIndex = $color % 10; + if($colorIndex == 0) { + $colorIndex = 10; + } + $col="bgcolor='$color{"color$colorIndex"}'"; + print "<tr>";
if ( $linesjc ne "0") { @@ -473,18 +466,18 @@ $dif = $linesjc - $total; $percent = $dif * 100 / $linesjc; $percent = sprintf("%.f", $percent); print <<END -<TD ALIGN='CENTER'></TD> -<TD ALIGN='CENTER'>$Lang::tr{'otherip'}</TD> -<TD ALIGN='CENTER'></TD> -<TD ALIGN='CENTER'>$dif</TD> -<TD ALIGN='CENTER'>$percent</TD> -</TR> +<td align='center' $col></td> +<td align='center' $col>$Lang::tr{'otherip'}</td> +<td align='center' $col></td> +<td align='center' $col>$dif</td> +<td align='center' $col>$percent</td> +</tr> END ; } } print <<END -</TABLE> +</table> END ;
@@ -503,7 +496,10 @@ sub findkey { last; } } -}sub checkversion { - #Automatic Updates is disabled - return "0","0"; - } +} + +sub checkversion { + #Automatic Updates is disabled + return "0","0"; +} + diff --git a/html/cgi-bin/logs.cgi/firewalllogport.dat b/html/cgi-bin/logs.cgi/firewalllogport.dat index af9b852..5b0db62 100644 --- a/html/cgi-bin/logs.cgi/firewalllogport.dat +++ b/html/cgi-bin/logs.cgi/firewalllogport.dat @@ -222,7 +222,7 @@ if ($errormessage) { &Header::closebox(); }
-&Header::openbox('100%', 'left', "$Lang::tr{'settings'}:"); +&Header::openbox('100%', 'left', "$Lang::tr{'settings'}");
print <<END <form method='post' action='$ENV{'SCRIPT_NAME'}'> @@ -267,15 +267,15 @@ print <<END </td> <td width='5%' align='center'><input type='submit' name='ACTION' title='$Lang::tr{'day before'}' value='<<' /></td> <td width='5%' align='center'><input type='submit' name='ACTION' title='$Lang::tr{'day after'}' value='>>' /></td> -<td width='20%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'update'}' /></td> +<td width='20%' align='right'><input type='submit' name='ACTION' value='$Lang::tr{'update'}' /></td> +</tr> +<tr> + <td colspan='3' align='left' valign="center">$Lang::tr{'Number of Ports for the pie chart'}:</td> + <td colspan='3' align='left' valign="center"><input type='text' name='pienumber' value='$pienumber' size='4'></td> + <td align='right'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td> </tr> </table> -<table width='100%'> -<tr><td width='20%' align='right' valign="center">$Lang::tr{'Number of Ports for the pie chart'}:</td> - <td width='10%' align='left' valign="center"><input type='text' name='pienumber' value='$pienumber' size='4'></td> - <td width='20%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td></tr> - </table> - </form> +</form> END ;
@@ -400,19 +400,19 @@ if ($showpie != 2 && $pienumber <= 50 && $pienumber != 0) { print FILE $myimage->png; close(FILE); ##################################################### - print "<table align='center'><tr><td>"; + print "<div style='text-align:center'>"; print "<img src='/graphs/fwlog-port$imagerandom.png'>"; - print "</td></tr></table>"; + print "</div>"; }
print <<END -<TABLE WIDTH='100%'> -<TR> -<TD WIDTH='10%' ALIGN='CENTER' CLASS='boldbase'></TD> -<TD WIDTH='33%' ALIGN='CENTER' CLASS='boldbase'><B>Port</B></TD> -<TD WIDTH='33%' ALIGN='CENTER' CLASS='boldbase'><B>Count</B></TD> -<TD WIDTH='33%' ALIGN='CENTER' CLASS='boldbase'><B>Percent</B></TD> -</TR> +<table width='100%' class='tbl'> +<tr> +<th width='10%' align='center' class='boldbase'></th> +<th width='33%' align='center' class='boldbase'><b>$Lang::tr{'port'}</b></th> +<th width='33%' align='center' class='boldbase'><b>$Lang::tr{'count'}</b></th> +<th width='33%' align='center' class='boldbase'><b>$Lang::tr{'percentage'}</b></th> +</tr> END ;
@@ -421,43 +421,37 @@ my $show=0;
my $s; my $percent; +my $col=""; + for($s=0;$s<$lines;$s++) { $show++; $percent = $value[$s] * 100 / $linesjc; $percent = sprintf("%.f", $percent); $total = $total + $value[$s]; - if ( ($color % 10) == 1 ){print "<TR BGCOLOR='$color{'color1'}'>\n";} - if ( ($color % 10) == 2 ){print "<TR BGCOLOR='$color{'color2'}'>\n";} - if ( ($color % 10) == 3 ){print "<TR BGCOLOR='$color{'color3'}'>\n";} - if ( ($color % 10) == 4 ){print "<TR BGCOLOR='$color{'color4'}'>\n";} - if ( ($color % 10) == 5 ){print "<TR BGCOLOR='$color{'color5'}'>\n";} - if ( ($color % 10) == 6 ){print "<TR BGCOLOR='$color{'color6'}'>\n";} - if ( ($color % 10) == 7 ){print "<TR BGCOLOR='$color{'color7'}'>\n";} - if ( ($color % 10) == 8 ){print "<TR BGCOLOR='$color{'color8'}'>\n";} - if ( ($color % 10) == 9 ){print "<TR BGCOLOR='$color{'color9'}'>\n";} - if ( ($color % 10) == 0 ){print "<TR BGCOLOR='$color{'color10'}'>\n";} + my $colorIndex = $color % 10; + if($colorIndex == 0) { + $colorIndex = 10; + } + $col="bgcolor='$color{"color$colorIndex"}'"; + print "<tr>";
$color++; - print "<TD ALIGN='CENTER'><form method='post' action='showrequestfromport.dat'><input type='hidden' name='MONTH' value='$cgiparams{'MONTH'}'> <input type='hidden' name='DAY' value='$cgiparams{'DAY'}'> <input type='hidden' name='port' value='$key[$s]'> <input type='submit' value='details'></form></TD>"; - print "<TD ALIGN='CENTER'>$key[$s]</TD>"; - print "<TD ALIGN='CENTER'>$value[$s]</TD>"; - print "<TD ALIGN='CENTER'>$percent</TD>"; - print "</TR>"; + print "<td align='center' $col><form method='post' action='showrequestfromport.dat'><input type='hidden' name='MONTH' value='$cgiparams{'MONTH'}'> <input type='hidden' name='DAY' value='$cgiparams{'DAY'}'> <input type='hidden' name='port' value='$key[$s]'> <input type='submit' value='$Lang::tr{'details'}'></form></td>"; + print "<td align='center' $col>$key[$s]</td>"; + print "<td align='center' $col>$value[$s]</td>"; + print "<td align='center' $col>$percent</td>"; + print "</tr>"; }
if($cgiparams{'otherspie'} == 2 ){} else{ -if ( ($color % 10) == 1 ){print "<TR BGCOLOR='$color{'color1'}'>\n";} -if ( ($color % 10) == 2 ){print "<TR BGCOLOR='$color{'color2'}'>\n";} -if ( ($color % 10) == 3 ){print "<TR BGCOLOR='$color{'color3'}'>\n";} -if ( ($color % 10) == 4 ){print "<TR BGCOLOR='$color{'color4'}'>\n";} -if ( ($color % 10) == 5 ){print "<TR BGCOLOR='$color{'color5'}'>\n";} -if ( ($color % 10) == 6 ){print "<TR BGCOLOR='$color{'color6'}'>\n";} -if ( ($color % 10) == 7 ){print "<TR BGCOLOR='$color{'color7'}'>\n";} -if ( ($color % 10) == 8 ){print "<TR BGCOLOR='$color{'color8'}'>\n";} -if ( ($color % 10) == 9 ){print "<TR BGCOLOR='$color{'color9'}'>\n";} -if ( ($color % 10) == 0 ){print "<TR BGCOLOR='$color{'color10'}'>\n";} + my $colorIndex = $color % 10; + if($colorIndex == 0) { + $colorIndex = 10; + } + $col="bgcolor='$color{"color$colorIndex"}'"; + print "<tr>";
if ( $linesjc ne "0") { @@ -466,17 +460,17 @@ $dif = $linesjc - $total; $percent = $dif * 100 / $linesjc; $percent = sprintf("%.f", $percent); print <<END -<TD ALIGN='CENTER'></TD> -<TD ALIGN='CENTER'>$Lang::tr{'otherport'}</TD> -<TD ALIGN='CENTER'>$dif</TD> -<TD ALIGN='CENTER'>$percent</TD> -</TR> +<td align='center' $col></td> +<td align='center' $col>$Lang::tr{'otherport'}</td> +<td align='center' $col>$dif</td> +<td align='center' $col>$percent</td> +</tr> END ; } } print <<END -</TABLE> +</table> END ;
@@ -485,6 +479,7 @@ END &Header::closepage();
sub findkey { + my $v; foreach $v (@keytabjc) { if ($tabjc{$v} eq $_[0]) { delete $tabjc{$v}; @@ -495,7 +490,9 @@ sub findkey { } } } + sub checkversion { - #Automatic Updates is disabled - return "0","0"; - } + #Automatic Updates is disabled + return "0","0"; +} + diff --git a/html/cgi-bin/logs.cgi/log.dat b/html/cgi-bin/logs.cgi/log.dat index e2d0244..dacd518 100644 --- a/html/cgi-bin/logs.cgi/log.dat +++ b/html/cgi-bin/logs.cgi/log.dat @@ -354,11 +354,11 @@ if ($logsettings{'LOGVIEW_REVERSE'} eq 'on') { @log = reverse @log; } if ($lines != 0) { &oldernewer(); }
print <<END -<table width='100%'> +<table width='100%' class='tbl'> <tr> - <td width='10%' align='center' class='boldbase'><b>$Lang::tr{'time'}</b></td> - <td width='10%' align='center' class='boldbase'><b>$Lang::tr{'section'}</b></td> - <td width='80%'> </td> + <th width='10%' align='center' class='boldbase'><b>$Lang::tr{'time'}</b></th> + <th width='10%' align='center' class='boldbase'><b>$Lang::tr{'section'}</b></th> + <th width='80%'> </th> </tr> END ; @@ -383,13 +383,15 @@ foreach $_ (@log) $data = substr ($data,80); #permit correct display in table cell $d .= ' ' . substr ($data,0,80); } - + my $col="";
if ($lines % 2) { - print "<tr bgcolor='$color{'color20'}'>"; } + print "<tr>"; + $col="bgcolor='$color{'color20'}'"; } else { - print "<tr bgcolor='$color{'color22'}'>"; } - print "<td>$time<td>$sec<td>" .&Header::cleanhtml ("$d", 'y') . "</td></tr>\n"; + print "<tr>"; + $col="bgcolor='$color{'color22'}'"; } + print "<td $col>$time<td $col>$sec<td $col>" .&Header::cleanhtml ("$d", 'y') . "</td></tr>\n"; $lines++; } #print '</tt>'; diff --git a/html/cgi-bin/logs.cgi/proxylog.dat b/html/cgi-bin/logs.cgi/proxylog.dat index da86f89..1d1844e 100644 --- a/html/cgi-bin/logs.cgi/proxylog.dat +++ b/html/cgi-bin/logs.cgi/proxylog.dat @@ -182,7 +182,7 @@ my $thiscode = '$temp =~ /$filter/;'; eval($thiscode); if ($@ ne '') { - $errormessage = "$Lang::tr{'bad ignore filter'}.$@<P>"; + $errormessage = "$Lang::tr{'bad ignore filter'}.$@<p>"; $filter = ''; } else { my $loop = 1; @@ -437,22 +437,25 @@ if ($logsettings{'LOGVIEW_REVERSE'} eq 'on') { @log = reverse @log; } print "<p><b>$Lang::tr{'web hits'} $daystr: $lines</b></p>"; if ($lines != 0) { &oldernewer(); } print <<END -<table width='100%'> +<table width='100%' class='tbl'> <tr> -<td width='10%' align='center' class='boldbase'><b>$Lang::tr{'time'}</b></td> -<td width='15%' align='center' class='boldbase'><b>$Lang::tr{'source ip'}</b></td> -<td width='12%' align='center' class='boldbase'><b>$Lang::tr{'advproxy NCSA username'}</b></td> -<td width='63%' align='center' class='boldbase'><b>$Lang::tr{'website'}</b></td> +<th width='10%' align='center' class='boldbase'><b>$Lang::tr{'time'}</b></th> +<th width='15%' align='center' class='boldbase'><b>$Lang::tr{'source ip'}</b></th> +<th width='12%' align='center' class='boldbase'><b>$Lang::tr{'advproxy NCSA username'}</b></th> +<th width='63%' align='center' class='boldbase'><b>$Lang::tr{'website'}</b></th> </tr> END ; my $ll = 0; +my $col=''; foreach $_ (@log) { if ($ll % 2) { - print "<tr bgcolor='$color{'color20'}'>\n"; } + print "<tr>"; + $col="bgcolor='$color{'color20'}'"; } else { - print "<tr bgcolor='$color{'color20'}'>\n"; } + print "<tr>"; + $col="bgcolor='$color{'color22'}'"; } my ($datetime,$ip,$so,$url) = split; my ($SECdt, $MINdt, $HOURdt, $DAYdt, $MONTHdt, $YEARdt) = localtime($datetime); $SECdt = sprintf ("%.02d",$SECdt); @@ -470,10 +473,10 @@ foreach $_ (@log) $DAYdt=''; } print <<END - <td align='center'>$DAYdt$HOURdt:$MINdt:$SECdt</td> - <td align='center'>$ip</td> - <td align='center'>$so</td> - <td align='left'><a href='$url' title='$url' target='_new'>$part</a></td> + <td align='center' $col>$DAYdt$HOURdt:$MINdt:$SECdt</td> + <td align='center' $col>$ip</td> + <td align='center' $col>$so</td> + <td align='left' $col><a href='$url' title='$url' target='_new'>$part</a></td> </tr> END ; diff --git a/html/cgi-bin/logs.cgi/showrequestfromip.dat b/html/cgi-bin/logs.cgi/showrequestfromip.dat index 7aa5c05..09a60b5 100644 --- a/html/cgi-bin/logs.cgi/showrequestfromip.dat +++ b/html/cgi-bin/logs.cgi/showrequestfromip.dat @@ -271,17 +271,17 @@ if ($start == 0) { $prev = -1; } if ($lines != 0) { &oldernewer(); }
print <<END -<TABLE WIDTH='100%'> -<TR> -<TD WIDTH='10%' ALIGN='CENTER' CLASS='boldbase'><B>$Lang::tr{'time'}</B></TD> -<TD WIDTH='13%' ALIGN='CENTER' CLASS='boldbase'><B>$Lang::tr{'chain'}</B></TD> -<TD WIDTH='5%' ALIGN='CENTER' CLASS='boldbase'><B>$Lang::tr{'iface'}</B></TD> -<TD WIDTH='5%' ALIGN='CENTER' CLASS='boldbase'><B>$Lang::tr{'proto'}</B></TD> -<TD WIDTH='16%' ALIGN='CENTER' CLASS='boldbase'><B>$Lang::tr{'source'}</B></TD> -<TD WIDTH='10%' ALIGN='CENTER' CLASS='boldbase'><B>$Lang::tr{'src port'}</B></TD> -<TD WIDTH='16%' ALIGN='CENTER' CLASS='boldbase'><B>$Lang::tr{'destination'}</B></TD> -<TD WIDTH='16%' ALIGN='CENTER' CLASS='boldbase'><B>$Lang::tr{'dst port'}</B></TD> -</TR> +<table width='100%'> +<tr> +<td width='10%' align='center' class='boldbase'><b>$Lang::tr{'time'}</b></td> +<td width='13%' align='center' class='boldbase'><b>$Lang::tr{'chain'}</b></td> +<td width='5%' align='center' class='boldbase'><b>$Lang::tr{'iface'}</b></td> +<td width='5%' align='center' class='boldbase'><b>$Lang::tr{'proto'}</b></td> +<td width='16%' align='center' class='boldbase'><b>$Lang::tr{'source'}</b></td> +<td width='10%' align='center' class='boldbase'><b>$Lang::tr{'src port'}</b></td> +<td width='16%' align='center' class='boldbase'><b>$Lang::tr{'destination'}</b></td> +<td width='16%' align='center' class='boldbase'><b>$Lang::tr{'dst port'}</b></td> +</tr> END ;
@@ -320,23 +320,23 @@ foreach $_ (@slice) else { print "<tr bgcolor='${Header::table2colour}'>\n"; } print <<END - <TD ALIGN='CENTER'>$time</TD> - <TD ALIGN='CENTER'>$chain</TD> - <TD ALIGN='CENTER'>$iface</TD> - <TD ALIGN='CENTER'>$protostr</TD> + <td align='center'>$time</td> + <td align='center'>$chain</td> + <td align='center'>$iface</td> + <td align='center'>$protostr</td> <td align='center'> <table width='100%' cellpadding='0' cellspacing='0'><tr> <td align='center'><a href='/cgi-bin/ipinfo.cgi?ip=$srcaddr'>$srcaddr</a></td> </tr></table> </td> - <TD ALIGN='CENTER'>$srcport</TD> + <td align='center'>$srcport</td> <td align='center'> <table width='100%' cellpadding='0' cellspacing='0'><tr> <td align='center'><a href='/cgi-bin/ipinfo.cgi?ip=$dstaddr'>$dstaddr</a></td> </tr></table> </td> - <TD ALIGN='CENTER'>$dstport</TD> -</TR> + <td align='center'>$dstport</td> +</tr> END ; $lines++; @@ -345,7 +345,7 @@ END }
print <<END -</TABLE> +</table> END ;
diff --git a/html/cgi-bin/logs.cgi/showrequestfromport.dat b/html/cgi-bin/logs.cgi/showrequestfromport.dat index ee1d2eb..ad9823c 100644 --- a/html/cgi-bin/logs.cgi/showrequestfromport.dat +++ b/html/cgi-bin/logs.cgi/showrequestfromport.dat @@ -278,17 +278,17 @@ if ($start == 0) { $prev = -1; } if ($lines != 0) { &oldernewer(); }
print <<END -<TABLE WIDTH='100%'> -<TR> -<TD WIDTH='10%' ALIGN='CENTER' CLASS='boldbase'><B>$Lang::tr{'time'}</B></TD> -<TD WIDTH='5%' ALIGN='CENTER' CLASS='boldbase'><B>$Lang::tr{'chain'}</B></TD> -<TD WIDTH='5%' ALIGN='CENTER' CLASS='boldbase'><B>$Lang::tr{'iface'}</B></TD> -<TD WIDTH='5%' ALIGN='CENTER' CLASS='boldbase'><B>$Lang::tr{'proto'}</B></TD> -<TD WIDTH='20%' ALIGN='CENTER' CLASS='boldbase'><B>$Lang::tr{'source'}</B></TD> -<TD WIDTH='10%' ALIGN='CENTER' CLASS='boldbase'><B>$Lang::tr{'src port'}</B></TD> -<TD WIDTH='20%' ALIGN='CENTER' CLASS='boldbase'><B>$Lang::tr{'destination'}</B></TD> -<TD WIDTH='10%' ALIGN='CENTER' CLASS='boldbase'><B>$Lang::tr{'dst port'}</B></TD> -</TR> +<table width='100%'> +<tr> +<td width='10%' align='center' class='boldbase'><b>$Lang::tr{'time'}</b></td> +<td width='5%' align='center' class='boldbase'><b>$Lang::tr{'chain'}</b></td> +<td width='5%' align='center' class='boldbase'><b>$Lang::tr{'iface'}</b></td> +<td width='5%' align='center' class='boldbase'><b>$Lang::tr{'proto'}</b></td> +<td width='20%' align='center' class='boldbase'><b>$Lang::tr{'source'}</b></td> +<td width='10%' align='center' class='boldbase'><b>$Lang::tr{'src port'}</b></td> +<td width='20%' align='center' class='boldbase'><b>$Lang::tr{'destination'}</b></td> +<td width='10%' align='center' class='boldbase'><b>$Lang::tr{'dst port'}</b></td> +</rt> END ; my @slice = splice(@log, $start, ${Header::viewsize}); @@ -326,23 +326,23 @@ foreach $_ (@slice) else { print "<tr bgcolor='${Header::table2colour}'>\n"; } print <<END - <TD ALIGN='CENTER'>$time</TD> - <TD ALIGN='CENTER'>$chain</TD> - <TD ALIGN='CENTER'>$iface</TD> - <TD ALIGN='CENTER'>$protostr</TD> + <td align='center'>$time</td> + <td align='center'>$chain</td> + <td align='center'>$iface</td> + <td align='center'>$protostr</td> <td align='center'> <table width='100%' cellpadding='0' cellspacing='0'><tr> <td align='center'><a href='/cgi-bin/ipinfo.cgi?ip=$srcaddr'>$srcaddr</a></td> </tr></table> </td> - <TD ALIGN='CENTER'>$srcport</TD> + <td align='center'>$srcport</td> <td align='center'> <table width='100%' cellpadding='0' cellspacing='0'><tr> <td align='center'><a href='/cgi-bin/ipinfo.cgi?ip=$dstaddr'>$dstaddr</a></td> </tr></table> </td> - <TD ALIGN='CENTER'>$dstport</TD> -</TR> + <td align='center'>$dstport</td> +</tr> END ; $lines++; @@ -351,7 +351,7 @@ END }
print <<END -</TABLE> +</table> END ;
diff --git a/html/cgi-bin/logs.cgi/urlfilter.dat b/html/cgi-bin/logs.cgi/urlfilter.dat index 7fb2ff9..ce642e1 100644 --- a/html/cgi-bin/logs.cgi/urlfilter.dat +++ b/html/cgi-bin/logs.cgi/urlfilter.dat @@ -309,18 +309,19 @@ if ($lines)
$lines = 0;
- print "<table width='100%'>\n"; + print "<table width='100%' class='tbl'>"; unless ($cgiparams{'LOGTYPE'} eq 'squidGuard') { print "<tr>\n"; - print "<td align='center'><b>$Lang::tr{'urlfilter time'}</b></td>\n"; - print "<td align='center'><b>$Lang::tr{'urlfilter category'}</b></td>\n"; - print "<td align='center'><b>$Lang::tr{'urlfilter client'}</b></td>\n"; - if ($filtersettings{'ENABLE_USERNAME_LOG'} eq 'on') { print "<td align='center'><b>$Lang::tr{'urlfilter username'}</b></td>\n"; } - print "<td align='center'><b>$Lang::tr{'urlfilter dst'}</b></td>\n"; + print "<th align='center'><b>$Lang::tr{'urlfilter time'}</b></th>\n"; + print "<th align='center'><b>$Lang::tr{'urlfilter category'}</b></th>\n"; + print "<th align='center'><b>$Lang::tr{'urlfilter client'}</b></th>\n"; + if ($filtersettings{'ENABLE_USERNAME_LOG'} eq 'on') { print "<th align='center'><b>$Lang::tr{'urlfilter username'}</b></th>\n"; } + print "<th align='center'><b>$Lang::tr{'urlfilter dst'}</b></th>\n"; print "</tr>\n"; }
+ my $col=""; foreach (@slice) { undef $attr1; undef $attr2; @@ -336,17 +337,23 @@ if ($lines) if (@loginfo[2] =~ /emergency/) { $attr1 .= "<b><font color='$Header::colourerr'>"; $attr2 .= "</font></b>"; } print "<tr>\n"; } else { - if ($lines % 2) { print "<tr bgcolor='$color{'color20'}'>\n"; } else { print "<tr bgcolor='$color{'color22'}'>\n"; } + if ($lines % 2) { + print "<tr>"; + $col="bgcolor='$color{'color22'}'"; + }else { + print "<tr>"; + $col="bgcolor='$color{'color20'}'"; + } } if ($cgiparams{'LOGTYPE'} eq 'squidGuard') { - print "<td nowrap>$time $pid $attr1@loginfo$attr2</td>\n"; + print "<td nowrap $col>$time $pid $attr1@loginfo$attr2</td>\n"; } else { - print "<td width='10%' align='center' nowrap>$time</td>\n"; - print "<td width='11%' align='center' nowrap>$category[1]</td>\n"; - print "<td width='15%' align='center' nowrap>$ip[0]</td>\n"; + print "<td width='10%' align='center' nowrap $col>$time</td>\n"; + print "<td width='11%' align='center' nowrap $col>$category[1]</td>\n"; + print "<td width='15%' align='center' nowrap $col>$ip[0]</td>\n"; if ($filtersettings{'ENABLE_USERNAME_LOG'} eq 'on') { - print "<td width='12%' align='center' nowrap>$loginfo[3]</td>\n"; + print "<td width='12%' align='center' nowrap $col>$loginfo[3]</td>\n"; $site = substr($dsturl,0,55); if (length($dsturl) > 55) { $site .= "..."; } } else { @@ -354,7 +361,7 @@ if ($lines) if (length($dsturl) > 69) { $site .= "..."; } } #print "<td>$site</td>\n"; - print "<td><a href='$dsturl' title='$dsturl' target='_blank'>$site</a></td>\n"; + print "<td $col><a href='$dsturl' title='$dsturl' target='_blank'>$site</a></td>\n"; } print "</tr>\n"; } diff --git a/html/cgi-bin/mac.cgi b/html/cgi-bin/mac.cgi index f95c0d8..1d34363 100644 --- a/html/cgi-bin/mac.cgi +++ b/html/cgi-bin/mac.cgi @@ -192,10 +192,11 @@ END print <<END </tr> <tr> - <td colspan="2"><hr /></td> + <td colspan="2"><br><hr /></td> </tr> <tr> - <td colspan="2"><div align="center"> + <td align='left'><img src='/blob.gif' alt='*' /> $Lang::tr{'this field may be blank'}</td><div align="right"></td> + <td align='right'> END ; if ($macsettings{'ACTION'} eq $Lang::tr{'delete'} ) { @@ -232,11 +233,6 @@ END print <<END </div></td> </tr> - <tr> - <td colspan="2"align='left'> - <img src='/blob.gif' alt='*' /> $Lang::tr{'this field may be blank'}</td> - </tr> - </table>
END diff --git a/html/cgi-bin/mdstat.cgi b/html/cgi-bin/mdstat.cgi index 35c7deb..e22856f 100644 --- a/html/cgi-bin/mdstat.cgi +++ b/html/cgi-bin/mdstat.cgi @@ -41,7 +41,7 @@ my %mainsettings = ();
&Header::openbox('100%', 'left',"MD Raid State");
-print '<textarea rows="25" cols="80" readonly="true">'; +print '<textarea rows="25" cols="80" readonly="readonly">'; print `cat "/proc/mdstat"`; print '</textarea>';
diff --git a/html/cgi-bin/media.cgi b/html/cgi-bin/media.cgi index 52d9337..9dea789 100644 --- a/html/cgi-bin/media.cgi +++ b/html/cgi-bin/media.cgi @@ -152,7 +152,7 @@ END
for(my $i = 1; $i <= $#iostat1; $i++){ if ( $i eq '1' ){ - print "<tr><td align='center' class='boldbase'><b>Device</b></td><td align='center' class='boldbase'><b>MB read</b></td><td align='center' class='boldbase'><b>MB writen</b></td></tr>"; + print "<tr><td align='center' class='boldbase'><b>$Lang::tr{'device'}</b></td><td align='center' class='boldbase'><b>$Lang::tr{'MB read'}</b></td><td align='center' class='boldbase'><b>$Lang::{'MB writen'}</b></td></tr>"; }else{ print "<tr><td align='center'>$iostat1[$i]</td><td align='center'>$iostat2[$i]</td><td align='center'>$iostat3[$i]</td></tr>"; } @@ -206,9 +206,9 @@ sub diskbox {
if ( $status[1]=~/standby/){ my $ftime = localtime((stat("/var/run/hddshutdown-$disk"))[9]); - print"<B>Disk $disk status:<font color=#FF0000>".$status[1]."</font></B> (since $ftime)"; + print"<b>Disk $disk status:<span style='color:#FF0000'>".$status[1]."</b> ($Lang::tr{'since'} $ftime)"; }else{ - print"<B>Disk $disk status:<font color=#00FF00>".$status[1]."</font></B>"; + print"<b>Disk $disk status:<span style='color:#00FF00'>".$status[1]."</b>"; } }
@@ -217,7 +217,7 @@ sub diskbox { print <<END <br /><input type="button" onClick="swapVisibility('smart_$disk')" value="$Lang::tr{'smart information'}" /> <div id='smart_$disk' style='display: none'> - <hr /><table border=0><tr><td align=left><pre>$smart</pre></table> + <hr /><table border='0'><tr><td align='left'><pre>$smart</pre></table> </div> END ; diff --git a/html/cgi-bin/netexternal.cgi b/html/cgi-bin/netexternal.cgi index cd29d5d..156ef24 100644 --- a/html/cgi-bin/netexternal.cgi +++ b/html/cgi-bin/netexternal.cgi @@ -83,8 +83,8 @@ if ( $querry[0] ne~ ""){
&General::readhash("${General::swroot}/dhcpc/dhcpcd-$netsettings{'RED_DEV'}.info", %dhcpinfo);
- my $DNS1=`echo $dhcpinfo{'domain_name_servers'} | cut -f 1 -d ,`; - my $DNS2=`echo $dhcpinfo{'domain_name_servers'} | cut -f 2 -d ,`; + my $DNS1=`echo $dhcpinfo{'domain_name_servers'} | cut -f 1 -d " "`; + my $DNS2=`echo $dhcpinfo{'domain_name_servers'} | cut -f 2 -d " "`;
my $lsetme=0; my $leasetime=""; diff --git a/html/cgi-bin/optionsfw.cgi b/html/cgi-bin/optionsfw.cgi index 1893957..00fa1b4 100644 --- a/html/cgi-bin/optionsfw.cgi +++ b/html/cgi-bin/optionsfw.cgi @@ -11,7 +11,6 @@ # $Id: optionsfw.cgi,v 1.1.2.10 2005/10/03 00:34:10 gespinasse Exp $ # # - # enable only the following on debugging purpose #use warnings; #use CGI::Carp 'fatalsToBrowser'; @@ -22,38 +21,49 @@ require "${General::swroot}/header.pl";
my %checked =(); # Checkbox manipulations - -# File used -my $filename = "${General::swroot}/optionsfw/settings"; - our %settings=(); -$settings{'DISABLEPING'} = 'NO'; -$settings{'DROPNEWNOTSYN'} = 'on'; -$settings{'DROPINPUT'} = 'on'; -$settings{'DROPOUTPUT'} = 'on'; -$settings{'DROPPORTSCAN'} = 'on'; -$settings{'DROPWIRELESSINPUT'} = 'on'; -$settings{'DROPWIRELESSFORWARD'} = 'on'; +my %fwdfwsettings=(); +my %configfwdfw=(); +my %configoutgoingfw=();
+my $configfwdfw = "${General::swroot}/firewall/config"; +my $configoutgoing = "${General::swroot}/firewall/outgoing"; my $errormessage = ''; my $warnmessage = ''; +my $filename = "${General::swroot}/optionsfw/settings";
+&General::readhash("${General::swroot}/firewall/settings", %fwdfwsettings); &Header::showhttpheaders();
#Get GUI values &Header::getcgihash(%settings); - if ($settings{'ACTION'} eq $Lang::tr{'save'}) { - $errormessage = $Lang::tr{'new optionsfw later'}; - delete $settings{'__CGI__'};delete $settings{'x'};delete $settings{'y'}; - &General::writehash($filename, %settings); # Save good settings - } else { - &General::readhash($filename, %settings); # Get saved settings and reset to good if needed - } + if ($settings{'defpol'} ne '1'){ + $errormessage .= $Lang::tr{'new optionsfw later'}; + &General::writehash($filename, %settings); # Save good settings + system("/usr/local/bin/firewallctrl"); + }else{ + if ($settings{'POLICY'} ne ''){ + $fwdfwsettings{'POLICY'} = $settings{'POLICY'}; + } + if ($settings{'POLICY1'} ne ''){ + $fwdfwsettings{'POLICY1'} = $settings{'POLICY1'}; + } + my $MODE = $fwdfwsettings{'POLICY'}; + my $MODE1 = $fwdfwsettings{'POLICY1'}; + %fwdfwsettings = (); + $fwdfwsettings{'POLICY'} = "$MODE"; + $fwdfwsettings{'POLICY1'} = "$MODE1"; + &General::writehash("${General::swroot}/firewall/settings", %fwdfwsettings); + &General::readhash("${General::swroot}/firewall/settings", %fwdfwsettings); + system("/usr/local/bin/firewallctrl"); + } + &General::readhash($filename, %settings); # Load good settings +}
&Header::openpage($Lang::tr{'options fw'}, 1, ''); &Header::openbigbox('100%', 'left', '', $errormessage); - +&General::readhash($filename, %settings); if ($errormessage) { &Header::openbox('100%', 'left', $Lang::tr{'warning messages'}); print "<font color='red'>$errormessage </font>"; @@ -66,9 +76,12 @@ $checked{'DROPNEWNOTSYN'}{$settings{'DROPNEWNOTSYN'}} = "checked='checked'"; $checked{'DROPINPUT'}{'off'} = ''; $checked{'DROPINPUT'}{'on'} = ''; $checked{'DROPINPUT'}{$settings{'DROPINPUT'}} = "checked='checked'"; -$checked{'DROPOUTPUT'}{'off'} = ''; -$checked{'DROPOUTPUT'}{'on'} = ''; -$checked{'DROPOUTPUT'}{$settings{'DROPOUTPUT'}} = "checked='checked'"; +$checked{'DROPFORWARD'}{'off'} = ''; +$checked{'DROPFORWARD'}{'on'} = ''; +$checked{'DROPFORWARD'}{$settings{'DROPFORWARD'}} = "checked='checked'"; +$checked{'DROPOUTGOING'}{'off'} = ''; +$checked{'DROPOUTGOING'}{'on'} = ''; +$checked{'DROPOUTGOING'}{$settings{'DROPOUTGOING'}} = "checked='checked'"; $checked{'DROPPORTSCAN'}{'off'} = ''; $checked{'DROPPORTSCAN'}{'on'} = ''; $checked{'DROPPORTSCAN'}{$settings{'DROPPORTSCAN'}} = "checked='checked'"; @@ -84,8 +97,23 @@ $checked{'DROPPROXY'}{$settings{'DROPPROXY'}} = "checked='checked'"; $checked{'DROPSAMBA'}{'off'} = ''; $checked{'DROPSAMBA'}{'on'} = ''; $checked{'DROPSAMBA'}{$settings{'DROPSAMBA'}} = "checked='checked'"; +$checked{'SHOWCOLORS'}{'off'} = ''; +$checked{'SHOWCOLORS'}{'on'} = ''; +$checked{'SHOWCOLORS'}{$settings{'SHOWCOLORS'}} = "checked='checked'"; +$checked{'SHOWREMARK'}{'off'} = ''; +$checked{'SHOWREMARK'}{'on'} = ''; +$checked{'SHOWREMARK'}{$settings{'SHOWREMARK'}} = "checked='checked'"; +$checked{'SHOWTABLES'}{'off'} = ''; +$checked{'SHOWTABLES'}{'on'} = ''; +$checked{'SHOWTABLES'}{$settings{'SHOWTABLES'}} = "checked='checked'"; +$checked{'SHOWDROPDOWN'}{'off'} = ''; +$checked{'SHOWDROPDOWN'}{'on'} = ''; +$checked{'SHOWDROPDOWN'}{$settings{'SHOWDROPDOWN'}} = "checked='checked'"; +$selected{'FWPOLICY'}{$settings{'FWPOLICY'}}= 'selected'; +$selected{'FWPOLICY1'}{$settings{'FWPOLICY1'}}= 'selected'; +$selected{'FWPOLICY2'}{$settings{'FWPOLICY2'}}= 'selected';
-&Header::openbox('100%', 'center', $Lang::tr{'options fw'}); +&Header::openbox('100%', 'center',); print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>";
print <<END @@ -96,8 +124,10 @@ print <<END <input type='radio' name='DROPNEWNOTSYN' value='off' $checked{'DROPNEWNOTSYN'}{'off'} /> off</td></tr> <tr><td align='left' width='60%'>$Lang::tr{'drop input'}</td><td align='left'>on <input type='radio' name='DROPINPUT' value='on' $checked{'DROPINPUT'}{'on'} />/ <input type='radio' name='DROPINPUT' value='off' $checked{'DROPINPUT'}{'off'} /> off</td></tr> -<tr><td align='left' width='60%'>$Lang::tr{'drop output'}</td><td align='left'>on <input type='radio' name='DROPOUTPUT' value='on' $checked{'DROPOUTPUT'}{'on'} />/ - <input type='radio' name='DROPOUTPUT' value='off' $checked{'DROPOUTPUT'}{'off'} /> off</td></tr> +<tr><td align='left' width='60%'>$Lang::tr{'drop forward'}</td><td align='left'>on <input type='radio' name='DROPFORWARD' value='on' $checked{'DROPFORWARD'}{'on'} />/ + <input type='radio' name='DROPFORWARD' value='off' $checked{'DROPFORWARD'}{'off'} /> off</td></tr> +<tr><td align='left' width='60%'>$Lang::tr{'drop outgoing'}</td><td align='left'>on <input type='radio' name='DROPOUTGOING' value='on' $checked{'DROPOUTGOING'}{'on'} />/ + <input type='radio' name='DROPOUTGOING' value='off' $checked{'DROPOUTGOING'}{'off'} /> off</td></tr> <tr><td align='left' width='60%'>$Lang::tr{'drop portscan'}</td><td align='left'>on <input type='radio' name='DROPPORTSCAN' value='on' $checked{'DROPPORTSCAN'}{'on'} />/ <input type='radio' name='DROPPORTSCAN' value='off' $checked{'DROPPORTSCAN'}{'off'} /> off</td></tr> <tr><td align='left' width='60%'>$Lang::tr{'drop wirelessinput'}</td><td align='left'>on <input type='radio' name='DROPWIRELESSINPUT' value='on' $checked{'DROPWIRELESSINPUT'}{'on'} />/ @@ -105,7 +135,8 @@ print <<END <tr><td align='left' width='60%'>$Lang::tr{'drop wirelessforward'}</td><td align='left'>on <input type='radio' name='DROPWIRELESSFORWARD' value='on' $checked{'DROPWIRELESSFORWARD'}{'on'} />/ <input type='radio' name='DROPWIRELESSFORWARD' value='off' $checked{'DROPWIRELESSFORWARD'}{'off'} /> off</td></tr> </table> -<br /> +<br/> + <table width='95%' cellspacing='0'> <tr bgcolor='$color{'color20'}'><td colspan='2' align='left'><b>$Lang::tr{'fw blue'}</b></td></tr> <tr><td align='left' width='60%'>$Lang::tr{'drop proxy'}</td><td align='left'>on <input type='radio' name='DROPPROXY' value='on' $checked{'DROPPROXY'}{'on'} />/ @@ -113,15 +144,77 @@ print <<END <tr><td align='left' width='60%'>$Lang::tr{'drop samba'}</td><td align='left'>on <input type='radio' name='DROPSAMBA' value='on' $checked{'DROPSAMBA'}{'on'} />/ <input type='radio' name='DROPSAMBA' value='off' $checked{'DROPSAMBA'}{'off'} /> off</td></tr> </table> +<br> +<table width='95%' cellspacing='0'> +<tr bgcolor='$color{'color20'}'><td colspan='2' align='left'><b>$Lang::tr{'fw settings'}</b></td></tr> +<tr><td align='left' width='60%'>$Lang::tr{'fw settings color'}</td><td align='left'>on <input type='radio' name='SHOWCOLORS' value='on' $checked{'SHOWCOLORS'}{'on'} />/ + <input type='radio' name='SHOWCOLORS' value='off' $checked{'SHOWCOLORS'}{'off'} /> off</td></tr> +<tr><td align='left' width='60%'>$Lang::tr{'fw settings remark'}</td><td align='left'>on <input type='radio' name='SHOWREMARK' value='on' $checked{'SHOWREMARK'}{'on'} />/ + <input type='radio' name='SHOWREMARK' value='off' $checked{'SHOWREMARK'}{'off'} /> off</td></tr> +<tr><td align='left' width='60%'>$Lang::tr{'fw settings ruletable'}</td><td align='left'>on <input type='radio' name='SHOWTABLES' value='on' $checked{'SHOWTABLES'}{'on'} />/ + <input type='radio' name='SHOWTABLES' value='off' $checked{'SHOWTABLES'}{'off'} /> off</td></tr> +<tr><td align='left' width='60%'>$Lang::tr{'fw settings dropdown'}</td><td align='left'>on <input type='radio' name='SHOWDROPDOWN' value='on' $checked{'SHOWDROPDOWN'}{'on'} />/ + <input type='radio' name='SHOWDROPDOWN' value='off' $checked{'SHOWDROPDOWN'}{'off'} /> off</td></tr> +</table> +<br /> +<table width='95%' cellspacing='0'> +<tr bgcolor='$color{'color20'}'><td colspan='2' align='left'><b>$Lang::tr{'fw default drop'}</b></td></tr> +<tr><td align='left' width='60%'>$Lang::tr{'drop action'}</td><td><select name='FWPOLICY'> +<option value='DROP' $selected{'FWPOLICY'}{'DROP'}>DROP</option> +<option value='REJECT' $selected{'FWPOLICY'}{'REJECT'}>REJECT</option></select> +</td></tr> +<tr><td align='left' width='60%'>$Lang::tr{'drop action1'}</td><td><select name='FWPOLICY1'> +<option value='DROP' $selected{'FWPOLICY1'}{'DROP'}>DROP</option> +<option value='REJECT' $selected{'FWPOLICY1'}{'REJECT'}>REJECT</option></select> +</td></tr> +<tr><td align='left' width='60%'>$Lang::tr{'drop action2'}</td><td><select name='FWPOLICY2'> +<option value='DROP' $selected{'FWPOLICY2'}{'DROP'}>DROP</option> +<option value='REJECT' $selected{'FWPOLICY2'}{'REJECT'}>REJECT</option></select> +</td></tr> +</table> + <br /> -<table width='10%' cellspacing='0'> -<tr><td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}'> - <input type='hidden' name='ACTION' value=$Lang::tr{'save'} /> - <input type='image' alt='$Lang::tr{'save'}' title='$Lang::tr{'save'}' src='/images/media-floppy.png' /></form></td></tr> +<table width='100%' cellspacing='0'> +<tr><td align='right'><form method='post' action='$ENV{'SCRIPT_NAME'}'> +<input type='submit' name='ACTION' value=$Lang::tr{'save'} /> +</form></td></tr> </table> </form> END ; &Header::closebox(); + +&Header::openbox('100%', 'center', $Lang::tr{'fwdfw pol title'}); + if ($fwdfwsettings{'POLICY'} eq 'MODE1'){ $selected{'POLICY'}{'MODE1'} = 'selected'; } else { $selected{'POLICY'}{'MODE1'} = ''; } + if ($fwdfwsettings{'POLICY'} eq 'MODE2'){ $selected{'POLICY'}{'MODE2'} = 'selected'; } else { $selected{'POLICY'}{'MODE2'} = ''; } + if ($fwdfwsettings{'POLICY1'} eq 'MODE1'){ $selected{'POLICY1'}{'MODE1'} = 'selected'; } else { $selected{'POLICY1'}{'MODE1'} = ''; } + if ($fwdfwsettings{'POLICY1'} eq 'MODE2'){ $selected{'POLICY1'}{'MODE2'} = 'selected'; } else { $selected{'POLICY1'}{'MODE2'} = ''; } +print <<END; + <form method='post' action='$ENV{'SCRIPT_NAME'}'> + <table width='100%' border='0'> + <tr><td colspan='3' style='font-weight:bold;color:red;' align='left'>FORWARD </td></tr> + <tr><td colspan='3' align='left'>$Lang::tr{'fwdfw pol text'}</td></tr> + <tr><td colspan='3'><hr /></td></tr> + <tr><td width='15%' align='left'> <select name='POLICY' style="width: 100px"> + <option value='MODE1' $selected{'POLICY'}{'MODE1'}>$Lang::tr{'fwdfw pol block'}</option> + <option value='MODE2' $selected{'POLICY'}{'MODE2'}>$Lang::tr{'fwdfw pol allow'}</option></select> + <input type='submit' name='ACTION' value=$Lang::tr{'save'} /><input type='hidden' name='defpol' value='1'></td> +END + print "</tr></table></form>"; + print"<br><br>"; + print <<END; + <form method='post' action='$ENV{'SCRIPT_NAME'}'> + <table width='100%' border='0'> + <tr><td colspan='3' style='font-weight:bold;color:red;' align='left'>OUTGOING </td></tr> + <tr><td colspan='3' align='left'>$Lang::tr{'fwdfw pol text1'}</td></tr> + <tr><td colspan='3'><hr /></td></tr> + <tr><td width='15%' align='left'> <select name='POLICY1' style="width: 100px"> + <option value='MODE1' $selected{'POLICY1'}{'MODE1'}>$Lang::tr{'fwdfw pol block'}</option> + <option value='MODE2' $selected{'POLICY1'}{'MODE2'}>$Lang::tr{'fwdfw pol allow'}</option></select> + <input type='submit' name='ACTION' value='$Lang::tr{'save'}' /><input type='hidden' name='defpol' value='1'></td> +END + print "</tr></table></form>"; + &Header::closebox(); + &Header::closebigbox(); &Header::closepage(); diff --git a/html/cgi-bin/outgoingfw.cgi b/html/cgi-bin/outgoingfw.cgi deleted file mode 100644 index b417817..0000000 --- a/html/cgi-bin/outgoingfw.cgi +++ /dev/null @@ -1,849 +0,0 @@ -#!/usr/bin/perl -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2005-2010 IPFire Team # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -use strict; -# enable only the following on debugging purpose -#use warnings; -#use CGI::Carp 'fatalsToBrowser'; - -require '/var/ipfire/general-functions.pl'; -require "${General::swroot}/lang.pl"; -require "${General::swroot}/header.pl"; - -my %outfwsettings = (); -my %checked = (); -my %selected= () ; -my %netsettings = (); -my $errormessage = ""; -my $configentry = ""; -my @configs = (); -my @configline = (); -my $p2pentry = ""; -my @p2ps = (); -my @p2pline = (); - -my $configfile = "/var/ipfire/outgoing/rules"; -my $configpath = "/var/ipfire/outgoing/groups/"; -my $p2pfile = "/var/ipfire/outgoing/p2protocols"; -my $servicefile = "/var/ipfire/outgoing/defaultservices"; - -my %color = (); -my %mainsettings = (); -&General::readhash("${General::swroot}/main/settings", %mainsettings); -&General::readhash("/srv/web/ipfire/html/themes/".$mainsettings{'THEME'}."/include/colors.txt", %color); - -&General::readhash("${General::swroot}/ethernet/settings", %netsettings); - -&Header::showhttpheaders(); - -### Values that have to be initialized -$outfwsettings{'ACTION'} = ''; -$outfwsettings{'VALID'} = 'yes'; -$outfwsettings{'EDIT'} = 'no'; -$outfwsettings{'NAME'} = ''; -$outfwsettings{'SNET'} = ''; -$outfwsettings{'SIP'} = ''; -$outfwsettings{'SPORT'} = ''; -$outfwsettings{'SMAC'} = ''; -$outfwsettings{'DIP'} = ''; -$outfwsettings{'DPORT'} = ''; -$outfwsettings{'PROT'} = ''; -$outfwsettings{'STATE'} = ''; -$outfwsettings{'DISPLAY_DIP'} = ''; -$outfwsettings{'DISPLAY_DPORT'} = ''; -$outfwsettings{'DISPLAY_SMAC'} = ''; -$outfwsettings{'DISPLAY_SIP'} = ''; -$outfwsettings{'POLICY'} = 'MODE0'; -$outfwsettings{'MODE1LOG'} = 'off'; - -$outfwsettings{'TIME_FROM'} = '00:00'; -$outfwsettings{'TIME_TO'} = '00:00'; - -&General::readhash("${General::swroot}/outgoing/settings", %outfwsettings); -&Header::getcgihash(%outfwsettings); - -############### -# DEBUG DEBUG -#&Header::openbox('100%', 'left', 'DEBUG'); -#my $debugCount = 0; -#foreach my $line (sort keys %outfwsettings) { -#print "$line = $outfwsettings{$line}<br />\n"; -# $debugCount++; -#} -#print " Count: $debugCount\n"; -#&Header::closebox(); -# DEBUG DEBUG -############### - -$selected{'TIME_FROM'}{$outfwsettings{'TIME_FROM'}} = "selected='selected'"; -$selected{'TIME_TO'}{$outfwsettings{'TIME_TO'}} = "selected='selected'"; - -$checked{'MODE1LOG'}{'off'} = ''; -$checked{'MODE1LOG'}{'on'} = ''; -$checked{'MODE1LOG'}{$outfwsettings{'MODE1LOG'}} = "checked='checked'"; -$checked{'TIME_MON'}{'off'} = ''; -$checked{'TIME_MON'}{'on'} = ''; -$checked{'TIME_MON'}{$outfwsettings{'TIME_MON'}} = "checked='checked'"; -$checked{'TIME_TUE'}{'off'} = ''; -$checked{'TIME_TUE'}{'on'} = ''; -$checked{'TIME_TUE'}{$outfwsettings{'TIME_TUE'}} = "checked='checked'"; -$checked{'TIME_WED'}{'off'} = ''; -$checked{'TIME_WED'}{'on'} = ''; -$checked{'TIME_WED'}{$outfwsettings{'TIME_WED'}} = "checked='checked'"; -$checked{'TIME_THU'}{'off'} = ''; -$checked{'TIME_THU'}{'on'} = ''; -$checked{'TIME_THU'}{$outfwsettings{'TIME_THU'}} = "checked='checked'"; -$checked{'TIME_FRI'}{'off'} = ''; -$checked{'TIME_FRI'}{'on'} = ''; -$checked{'TIME_FRI'}{$outfwsettings{'TIME_FRI'}} = "checked='checked'"; -$checked{'TIME_SAT'}{'off'} = ''; -$checked{'TIME_SAT'}{'on'} = ''; -$checked{'TIME_SAT'}{$outfwsettings{'TIME_SAT'}} = "checked='checked'"; -$checked{'TIME_SUN'}{'off'} = ''; -$checked{'TIME_SUN'}{'on'} = ''; -$checked{'TIME_SUN'}{$outfwsettings{'TIME_SUN'}} = "checked='checked'"; - -if ($outfwsettings{'POLICY'} eq 'MODE0'){ $selected{'POLICY'}{'MODE0'} = 'selected'; } else { $selected{'POLICY'}{'MODE0'} = ''; } -if ($outfwsettings{'POLICY'} eq 'MODE1'){ $selected{'POLICY'}{'MODE1'} = 'selected'; } else { $selected{'POLICY'}{'MODE1'} = ''; } -if ($outfwsettings{'POLICY'} eq 'MODE2'){ $selected{'POLICY'}{'MODE2'} = 'selected'; } else { $selected{'POLICY'}{'MODE2'} = ''; } - -# This is a little hack if poeple donŽt mark any date then all will be selected, because they might have forgotten to select -# a valid day. A Rule without any matching day will never work, because the timeranges are new feature people might not notice -# that they have to select a day for the rule. - -if ( $outfwsettings{'TIME_MON'} eq "" && - $outfwsettings{'TIME_TUE'} eq "" && - $outfwsettings{'TIME_WED'} eq "" && - $outfwsettings{'TIME_THU'} eq "" && - $outfwsettings{'TIME_FRI'} eq "" && - $outfwsettings{'TIME_SAT'} eq "" && - $outfwsettings{'TIME_SUN'} eq "" ) - { - $outfwsettings{'TIME_MON'} = "on"; - $outfwsettings{'TIME_TUE'} = "on"; - $outfwsettings{'TIME_WED'} = "on"; - $outfwsettings{'TIME_THU'} = "on"; - $outfwsettings{'TIME_FRI'} = "on"; - $outfwsettings{'TIME_SAT'} = "on"; - $outfwsettings{'TIME_SUN'} = "on"; - } - -&Header::openpage($Lang::tr{'outgoing firewall'}, 1, ''); -&Header::openbigbox('100%', 'left', '', $errormessage); - -############################################################################################################################ -############################################################################################################################ - -if ($outfwsettings{'ACTION'} eq $Lang::tr{'reset'}) -{ - $outfwsettings{'POLICY'}='MODE0'; - unlink $configfile; - system("/usr/bin/touch $configfile"); - my $MODE = $outfwsettings{'POLICY'}; - %outfwsettings = (); - $outfwsettings{'POLICY'} = "$MODE"; - &General::writehash("${General::swroot}/outgoing/settings", %outfwsettings); -} -if ($outfwsettings{'ACTION'} eq $Lang::tr{'save'}) -{ - my $MODE = $outfwsettings{'POLICY'}; - my $MODE1LOG = $outfwsettings{'MODE1LOG'}; - %outfwsettings = (); - $outfwsettings{'POLICY'} = "$MODE"; - $outfwsettings{'MODE1LOG'} = "$MODE1LOG"; - &General::writehash("${General::swroot}/outgoing/settings", %outfwsettings); - system("/usr/local/bin/outgoingfwctrl"); -} -if ($outfwsettings{'ACTION'} eq 'enable') -{ - open( FILE, "< $p2pfile" ) or die "Unable to read $p2pfile"; - @p2ps = <FILE>; - close FILE; - open( FILE, "> $p2pfile" ) or die "Unable to write $p2pfile"; - foreach $p2pentry (sort @p2ps) - { - @p2pline = split( /;/, $p2pentry ); - if ($p2pline[1] eq $outfwsettings{'P2PROT'}) { - print FILE "$p2pline[0];$p2pline[1];on;\n"; - } else { - print FILE "$p2pline[0];$p2pline[1];$p2pline[2];\n"; - } - } - close FILE; - system("/usr/local/bin/outgoingfwctrl"); -} -if ($outfwsettings{'ACTION'} eq 'disable') -{ - open( FILE, "< $p2pfile" ) or die "Unable to read $p2pfile"; - @p2ps = <FILE>; - close FILE; - open( FILE, "> $p2pfile" ) or die "Unable to write $p2pfile"; - foreach $p2pentry (sort @p2ps) - { - @p2pline = split( /;/, $p2pentry ); - if ($p2pline[1] eq $outfwsettings{'P2PROT'}) { - print FILE "$p2pline[0];$p2pline[1];off;\n"; - } else { - print FILE "$p2pline[0];$p2pline[1];$p2pline[2];\n"; - } - } - close FILE; - system("/usr/local/bin/outgoingfwctrl"); -} -if ($outfwsettings{'ACTION'} eq $Lang::tr{'edit'}) -{ - open( FILE, "< $configfile" ) or die "Unable to read $configfile"; - @configs = <FILE>; - close FILE; - open( FILE, "> $configfile" ) or die "Unable to write $configfile"; - foreach $configentry (sort @configs) - { - @configline = split( /;/, $configentry ); - - $configline[10] = "on" if not exists $configline[11]; - $configline[11] = "on" if not exists $configline[11]; - $configline[12] = "on" if not exists $configline[12]; - $configline[13] = "on" if not exists $configline[13]; - $configline[14] = "on" if not exists $configline[14]; - $configline[15] = "on" if not exists $configline[15]; - $configline[16] = "on" if not exists $configline[16]; - $configline[17] = "00:00" if not exists $configline[17]; - $configline[18] = "00:00" if not exists $configline[18]; - - unless (($configline[0] eq $outfwsettings{'STATE'}) && - ($configline[1] eq $outfwsettings{'ENABLED'}) && - ($configline[2] eq $outfwsettings{'SNET'}) && - ($configline[3] eq $outfwsettings{'PROT'}) && - ($configline[4] eq $outfwsettings{'NAME'}) && - ($configline[5] eq $outfwsettings{'SIP'}) && - ($configline[6] eq $outfwsettings{'SMAC'}) && - ($configline[7] eq $outfwsettings{'DIP'}) && - ($configline[9] eq $outfwsettings{'LOG'}) && - ($configline[8] eq $outfwsettings{'DPORT'}) && - ($configline[10] eq $outfwsettings{'TIME_MON'}) && - ($configline[11] eq $outfwsettings{'TIME_TUE'}) && - ($configline[12] eq $outfwsettings{'TIME_WED'}) && - ($configline[13] eq $outfwsettings{'TIME_THU'}) && - ($configline[14] eq $outfwsettings{'TIME_FRI'}) && - ($configline[15] eq $outfwsettings{'TIME_SAT'}) && - ($configline[16] eq $outfwsettings{'TIME_SUN'}) && - ($configline[17] eq $outfwsettings{'TIME_FROM'}) && - ($configline[18] eq $outfwsettings{'TIME_TO'})) - { - print FILE $configentry; - } - } - close FILE; - $selected{'SNET'}{"$outfwsettings{'SNET'}"} = 'selected'; - $selected{'PROT'}{"$outfwsettings{'PROT'}"} = 'selected'; - $selected{'LOG'}{"$outfwsettings{'LOG'}"} = 'selected'; - &addrule(); - &Header::closebigbox(); - &Header::closepage(); - exit - system("/usr/local/bin/outgoingfwctrl"); -} -if ($outfwsettings{'ACTION'} eq $Lang::tr{'delete'}) -{ - open( FILE, "< $configfile" ) or die "Unable to read $configfile"; - @configs = <FILE>; - close FILE; - open( FILE, "> $configfile" ) or die "Unable to write $configfile"; - foreach $configentry (sort @configs) - { - @configline = split( /;/, $configentry ); - - $configline[10] = "on" if not exists $configline[11]; - $configline[11] = "on" if not exists $configline[11]; - $configline[12] = "on" if not exists $configline[12]; - $configline[13] = "on" if not exists $configline[13]; - $configline[14] = "on" if not exists $configline[14]; - $configline[15] = "on" if not exists $configline[15]; - $configline[16] = "on" if not exists $configline[16]; - $configline[17] = "00:00" if not exists $configline[17]; - $configline[18] = "00:00" if not exists $configline[18]; - - unless (($configline[0] eq $outfwsettings{'STATE'}) && - ($configline[1] eq $outfwsettings{'ENABLED'}) && - ($configline[2] eq $outfwsettings{'SNET'}) && - ($configline[3] eq $outfwsettings{'PROT'}) && - ($configline[4] eq $outfwsettings{'NAME'}) && - ($configline[5] eq $outfwsettings{'SIP'}) && - ($configline[6] eq $outfwsettings{'SMAC'}) && - ($configline[7] eq $outfwsettings{'DIP'}) && - ($configline[9] eq $outfwsettings{'LOG'}) && - ($configline[8] eq $outfwsettings{'DPORT'}) && - ($configline[10] eq $outfwsettings{'TIME_MON'}) && - ($configline[11] eq $outfwsettings{'TIME_TUE'}) && - ($configline[12] eq $outfwsettings{'TIME_WED'}) && - ($configline[13] eq $outfwsettings{'TIME_THU'}) && - ($configline[14] eq $outfwsettings{'TIME_FRI'}) && - ($configline[15] eq $outfwsettings{'TIME_SAT'}) && - ($configline[16] eq $outfwsettings{'TIME_SUN'}) && - ($configline[17] eq $outfwsettings{'TIME_FROM'}) && - ($configline[18] eq $outfwsettings{'TIME_TO'})) - { - print FILE $configentry; - } - } - close FILE; - system("/usr/local/bin/outgoingfwctrl"); -} -if ($outfwsettings{'ACTION'} eq $Lang::tr{'add'}) -{ - if ( $outfwsettings{'VALID'} eq 'yes' ) { - - if ( $outfwsettings{'SNET'} eq "all" ) { - $outfwsettings{'SIP'} =""; - $outfwsettings{'SMAC'}=""; - } - open( FILE, ">> $configfile" ) or die "Unable to write $configfile"; - print FILE <<END -$outfwsettings{'STATE'};$outfwsettings{'ENABLED'};$outfwsettings{'SNET'};$outfwsettings{'PROT'};$outfwsettings{'NAME'};$outfwsettings{'SIP'};$outfwsettings{'SMAC'};$outfwsettings{'DIP'};$outfwsettings{'DPORT'};$outfwsettings{'LOG'};$outfwsettings{'TIME_MON'};$outfwsettings{'TIME_TUE'};$outfwsettings{'TIME_WED'};$outfwsettings{'TIME_THU'};$outfwsettings{'TIME_FRI'};$outfwsettings{'TIME_SAT'};$outfwsettings{'TIME_SUN'};$outfwsettings{'TIME_FROM'};$outfwsettings{'TIME_TO'}; -END -; - close FILE; - system("/usr/local/bin/outgoingfwctrl"); - } else { - $outfwsettings{'ACTION'} = 'Add rule'; - } -} -if ($outfwsettings{'ACTION'} eq $Lang::tr{'Add Rule'}) -{ - &addrule(); - exit -} - -&General::readhash("${General::swroot}/outgoing/settings", %outfwsettings); - -if ($errormessage) { - &Header::openbox('100%', 'left', $Lang::tr{'error messages'}); - print "<class name='base'>$errormessage\n"; - print " </class>\n"; - &Header::closebox(); -} - -############################################################################################################################ -############################################################################################################################ - -if ($outfwsettings{'POLICY'} ne 'MODE0'){ - &Header::openbox('100%', 'center', 'Rules'); - print <<END - <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <input type='submit' name='ACTION' value='$Lang::tr{'Add Rule'}' /> - </form> -END -; - open( FILE, "< $configfile" ) or die "Unable to read $configfile"; - @configs = <FILE>; - close FILE; - if (@configs) { - print <<END - <hr /> - <table border='0' width='100%' cellspacing='0'> - <tr bgcolor='$color{'color22'}'> - <td width='14%' align='center'><b>$Lang::tr{'protocol'}</b></td> - <td width='14%' align='center'><b>$Lang::tr{'network'}</b></td> - <td width='14%' align='center'><b>$Lang::tr{'destination'}</b></td> - <td width='14%' align='center'><b>$Lang::tr{'description'}</b></td> - <td width='14%' align='center'><b>$Lang::tr{'policy'}</b></td> - <td width='16%' align='center'><b>$Lang::tr{'logging'}</b></td> - <td width='14%' align='center'><b>$Lang::tr{'action'}</b></td> -END -; - foreach $configentry (sort @configs) - { - @configline = split( /;/, $configentry ); - $outfwsettings{'STATE'} = $configline[0]; - $outfwsettings{'ENABLED'} = $configline[1]; - $outfwsettings{'SNET'} = $configline[2]; - $outfwsettings{'PROT'} = $configline[3]; - $outfwsettings{'NAME'} = $configline[4]; - $outfwsettings{'SIP'} = $configline[5]; - $outfwsettings{'SMAC'} = $configline[6]; - $outfwsettings{'DIP'} = $configline[7]; - $outfwsettings{'DPORT'} = $configline[8]; - $outfwsettings{'LOG'} = $configline[9]; - - $configline[10] = "on" if not exists $configline[11]; - $configline[11] = "on" if not exists $configline[11]; - $configline[12] = "on" if not exists $configline[12]; - $configline[13] = "on" if not exists $configline[13]; - $configline[14] = "on" if not exists $configline[14]; - $configline[15] = "on" if not exists $configline[15]; - $configline[16] = "on" if not exists $configline[16]; - $configline[17] = "00:00" if not exists $configline[17]; - $configline[18] = "00:00" if not exists $configline[18]; - - $outfwsettings{'TIME_MON'} = $configline[10]; - $outfwsettings{'TIME_TUE'} = $configline[11]; - $outfwsettings{'TIME_WED'} = $configline[12]; - $outfwsettings{'TIME_THU'} = $configline[13]; - $outfwsettings{'TIME_FRI'} = $configline[14]; - $outfwsettings{'TIME_SAT'} = $configline[15]; - $outfwsettings{'TIME_SUN'} = $configline[16]; - $outfwsettings{'TIME_FROM'} = $configline[17]; - $outfwsettings{'TIME_TO'} = $configline[18]; - - if ($outfwsettings{'DIP'} eq ''){ $outfwsettings{'DISPLAY_DIP'} = 'ALL'; } else { $outfwsettings{'DISPLAY_DIP'} = $outfwsettings{'DIP'}; } - if ($outfwsettings{'DPORT'} eq ''){ $outfwsettings{'DISPLAY_DPORT'} = 'ALL'; } else { $outfwsettings{'DISPLAY_DPORT'} = $outfwsettings{'DPORT'}; } - if ($outfwsettings{'STATE'} eq 'DENY'){ $outfwsettings{'DISPLAY_STATE'} = "<img src='/images/stock_stop.png' alt='DENY' />"; } - if ($outfwsettings{'STATE'} eq 'ALLOW'){ $outfwsettings{'DISPLAY_STATE'} = "<img src='/images/stock_ok.png' alt='ALLOW' />"; } - if ((($outfwsettings{'POLICY'} eq 'MODE1') && ($outfwsettings{'STATE'} eq 'ALLOW')) || (($outfwsettings{'POLICY'} eq 'MODE2') && ($outfwsettings{'STATE'} eq 'DENY'))){ - if ( $outfwsettings{'ENABLED'} eq "on" ){ - print "<tr bgcolor='$color{'color20'}'>"; - } else { - print "<tr bgcolor='$color{'color18'}'>"; - } - print <<END - <td align='center'>$outfwsettings{'PROT'} - <td align='center'>$outfwsettings{'SNET'} - <td align='center'>$outfwsettings{'DISPLAY_DIP'}:$outfwsettings{'DISPLAY_DPORT'} - <td align='center'>$outfwsettings{'NAME'} - <td align='center'>$outfwsettings{'DISPLAY_STATE'} - <td align='center'>$outfwsettings{'LOG'} - <td align='center'> - <table border='0' cellpadding='0' cellspacing='0'><tr> - <td><form method='post' action='$ENV{'SCRIPT_NAME'}'> - <input type='hidden' name='PROT' value='$outfwsettings{'PROT'}' /> - <input type='hidden' name='STATE' value='$outfwsettings{'STATE'}' /> - <input type='hidden' name='SNET' value='$outfwsettings{'SNET'}' /> - <input type='hidden' name='DPORT' value='$outfwsettings{'DPORT'}' /> - <input type='hidden' name='DIP' value='$outfwsettings{'DIP'}' /> - <input type='hidden' name='SIP' value='$outfwsettings{'SIP'}' /> - <input type='hidden' name='NAME' value='$outfwsettings{'NAME'}' /> - <input type='hidden' name='SMAC' value='$outfwsettings{'SMAC'}' /> - <input type='hidden' name='ENABLED' value='$outfwsettings{'ENABLED'}' /> - <input type='hidden' name='LOG' value='$outfwsettings{'LOG'}' /> - <input type='hidden' name='TIME_MON' value='$outfwsettings{'TIME_MON'}' /> - <input type='hidden' name='TIME_TUE' value='$outfwsettings{'TIME_TUE'}' /> - <input type='hidden' name='TIME_WED' value='$outfwsettings{'TIME_WED'}' /> - <input type='hidden' name='TIME_THU' value='$outfwsettings{'TIME_THU'}' /> - <input type='hidden' name='TIME_FRI' value='$outfwsettings{'TIME_FRI'}' /> - <input type='hidden' name='TIME_SAT' value='$outfwsettings{'TIME_SAT'}' /> - <input type='hidden' name='TIME_SUN' value='$outfwsettings{'TIME_SUN'}' /> - <input type='hidden' name='TIME_FROM' value='$outfwsettings{'TIME_FROM'}' /> - <input type='hidden' name='TIME_TO' value='$outfwsettings{'TIME_TO'}' /> - <input type='hidden' name='ACTION' value=$Lang::tr{'edit'} /> - <input type='image' src='/images/edit.gif' width="20" height="20" alt=$Lang::tr{'edit'} /> - </form> - <td><form method='post' action='$ENV{'SCRIPT_NAME'}'> - <input type='hidden' name='PROT' value='$outfwsettings{'PROT'}' /> - <input type='hidden' name='STATE' value='$outfwsettings{'STATE'}' /> - <input type='hidden' name='SNET' value='$outfwsettings{'SNET'}' /> - <input type='hidden' name='DPORT' value='$outfwsettings{'DPORT'}' /> - <input type='hidden' name='DIP' value='$outfwsettings{'DIP'}' /> - <input type='hidden' name='SIP' value='$outfwsettings{'SIP'}' /> - <input type='hidden' name='NAME' value='$outfwsettings{'NAME'}' /> - <input type='hidden' name='SMAC' value='$outfwsettings{'SMAC'}' /> - <input type='hidden' name='ENABLED' value='$outfwsettings{'ENABLED'}' /> - <input type='hidden' name='LOG' value='$outfwsettings{'LOG'}' /> - <input type='hidden' name='TIME_MON' value='$outfwsettings{'TIME_MON'}' /> - <input type='hidden' name='TIME_TUE' value='$outfwsettings{'TIME_TUE'}' /> - <input type='hidden' name='TIME_WED' value='$outfwsettings{'TIME_WED'}' /> - <input type='hidden' name='TIME_THU' value='$outfwsettings{'TIME_THU'}' /> - <input type='hidden' name='TIME_FRI' value='$outfwsettings{'TIME_FRI'}' /> - <input type='hidden' name='TIME_SAT' value='$outfwsettings{'TIME_SAT'}' /> - <input type='hidden' name='TIME_SUN' value='$outfwsettings{'TIME_SUN'}' /> - <input type='hidden' name='TIME_FROM' value='$outfwsettings{'TIME_FROM'}' /> - <input type='hidden' name='TIME_TO' value='$outfwsettings{'TIME_TO'}' /> - <input type='hidden' name='ACTION' value=$Lang::tr{'delete'} /> - <input type='image' src='/images/delete.gif' width="20" height="20" alt=$Lang::tr{'delete'} /> - </form></table> -END -; - if (($outfwsettings{'SIP'}) || ($outfwsettings{'SMAC'})) { - - unless ($outfwsettings{'SIP'}) { - $outfwsettings{'DISPLAY_SIP'} = 'ALL'; - } else { - $outfwsettings{'DISPLAY_SIP'} = $outfwsettings{'SIP'}; - } - - unless ($outfwsettings{'SMAC'}) { - $outfwsettings{'DISPLAY_SMAC'} = 'ALL'; - print "<tr><td /><td align='left'>$Lang::tr{'source ip or net'}: </td>"; - print "<td align='left' colspan='2'>$outfwsettings{'DISPLAY_SIP'}</td>"; - } else { - $outfwsettings{'DISPLAY_SMAC'} = $outfwsettings{'SMAC'}; - print "<tr><td /><td align='left'>$Lang::tr{'source'} $Lang::tr{'mac address'}: </td>"; - print "<td align='left' colspan='2'>$outfwsettings{'DISPLAY_SMAC'}</td>"; - } - } - print <<END - <tr><td width='14%' align='right'>$Lang::tr{'time'} - </td> - <td width='14%' align='left'> -END -; - if ($outfwsettings{'TIME_MON'} eq 'on') { print "<font color='$Header::colourgreen'>";} - else { print "<font color='$Header::colourred'>";} - print "$Lang::tr{'advproxy monday'}</font>,"; - if ($outfwsettings{'TIME_TUE'} eq 'on') { print "<font color='$Header::colourgreen'>";} - else { print "<font color='$Header::colourred'>";} - print "$Lang::tr{'advproxy tuesday'}</font>,"; - if ($outfwsettings{'TIME_WED'} eq 'on') { print "<font color='$Header::colourgreen'>";} - else { print "<font color='$Header::colourred'>";} - print "$Lang::tr{'advproxy wednesday'}</font>,"; - if ($outfwsettings{'TIME_THU'} eq 'on') { print "<font color='$Header::colourgreen'>";} - else { print "<font color='$Header::colourred'>";} - print "$Lang::tr{'advproxy thursday'}</font>,"; - if ($outfwsettings{'TIME_FRI'} eq 'on') { print "<font color='$Header::colourgreen'>";} - else { print "<font color='$Header::colourred'>";} - print "$Lang::tr{'advproxy friday'}</font>,"; - if ($outfwsettings{'TIME_SAT'} eq 'on') { print "<font color='$Header::colourgreen'>";} - else { print "<font color='$Header::colourred'>";} - print "$Lang::tr{'advproxy saturday'}</font>,"; - if ($outfwsettings{'TIME_SUN'} eq 'on') { print "<font color='$Header::colourgreen'>";} - else { print "<font color='$Header::colourred'>";} - print "$Lang::tr{'advproxy sunday'}</font>"; - print <<END - </td> - <td width='22%' align='center'>$Lang::tr{'advproxy from'} $outfwsettings{'TIME_FROM'}</td> - <td width='22%' align='center'>$Lang::tr{'advproxy to'} $outfwsettings{'TIME_TO'}</td> - </form> -END -; - } - } -if ($outfwsettings{'POLICY'} eq 'MODE1'){ -print <<END - <tr bgcolor='$color{'color20'}'><form method='post' action='$ENV{'SCRIPT_NAME'}'> - <td align='center'>all - <td align='center'>all - <td align='center'>ALL - <td align='center'>drop - <td align='center'><img src='/images/stock_stop.png' alt='DENY' /> - <td align='center'>on <input type='radio' name='MODE1LOG' value='on' $checked{'MODE1LOG'}{'on'} /><input type='radio' name='MODE1LOG' value='off' $checked{'MODE1LOG'}{'off'} /> off - <td align='center'><input type='hidden' name='ACTION' value=$Lang::tr{'save'} /><input type='image' src='/images/media-floppy.png' width="18" height="18" alt=$Lang::tr{'save'} /></form></tr> - <table border='0' cellpadding='0' cellspacing='0'><tr> - <td> - <td></table> -END -; -} - print <<END - </table> -END -; - - } - &Header::closebox(); -} - -if ($outfwsettings{'POLICY'} ne 'MODE0'){ - open( FILE, "< $p2pfile" ) or die "Unable to read $p2pfile"; - @p2ps = <FILE>; - close FILE; - &Header::openbox('100%', 'center', 'P2P-Block'); - print <<END - <table width='40%'> - <tr bgcolor='$color{'color22'}'><td width='66%' align=center><b>$Lang::tr{'protocol'}</b> - <td width='33%' align=center><b>$Lang::tr{'status'}</b> -END -; - my $id = 1; - foreach $p2pentry (sort @p2ps) - { - @p2pline = split( /;/, $p2pentry ); - print <<END - <form method='post' action='$ENV{'SCRIPT_NAME'}'> -END -; - print "\t\t\t<tr bgcolor='$color{'color20'}'>\n"; - print <<END - <td width='66%' align='center'>$p2pline[0]: - <td width='33%' align='center'><input type='hidden' name='P2PROT' value='$p2pline[1]' /> -END -; - if ($p2pline[2] eq 'on') { - print <<END - <input type='hidden' name='ACTION' value='disable' /> - <input type='image' name='submit' src='/images/stock_ok.png' alt='$Lang::tr{'outgoing firewall p2p allow'}' title='$Lang::tr{'outgoing firewall p2p allow'}'/> -END -; - } else { - print <<END - <input type='hidden' name='ACTION' value='enable' /> - <input type='image' name='submit' src='/images/stock_stop.png' alt='$Lang::tr{'outgoing firewall p2p deny'}' title='$Lang::tr{'outgoing firewall p2p deny'}' /> -END -; - } - print <<END - </form> -END -; - } - print <<END - </table> - <br />$Lang::tr{'outgoing firewall p2p description 1'} <img src='/images/stock_ok.png' align='absmiddle' alt='$Lang::tr{'outgoing firewall p2p deny'}'> $Lang::tr{'outgoing firewall p2p description 2'} <img src='/images/stock_stop.png' align='absmiddle' alt='$Lang::tr{'outgoing firewall p2p deny'}'> $Lang::tr{'outgoing firewall p2p description 3'} -END -; - &Header::closebox(); -} - -&Header::openbox('100%', 'center', 'Policy'); -print <<END - <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <table width='100%'> - <tr><td width='10%' align='left'><b>$Lang::tr{'mode'} 0:</b><td width='90%' align='left' colspan='2'>$Lang::tr{'outgoing firewall mode0'}</td></tr> - <tr><td width='10%' align='left'><b>$Lang::tr{'mode'} 1:</b><td width='90%' align='left' colspan='2'>$Lang::tr{'outgoing firewall mode1'}</td></tr> - <tr><td width='10%' align='left'><b>$Lang::tr{'mode'} 2:</b><td width='90%' align='left' colspan='2'>$Lang::tr{'outgoing firewall mode2'}</td></tr> - <tr><td colspan='3'><hr /></td></tr> - <tr><td width='10%' align='left'> <select name='POLICY' style="width: 85px"><option value='MODE0' $selected{'POLICY'}{'MODE0'}>$Lang::tr{'mode'} 0</option><option value='MODE1' $selected{'POLICY'}{'MODE1'}>$Lang::tr{'mode'} 1</option><option value='MODE2' $selected{'POLICY'}{'MODE2'}>$Lang::tr{'mode'} 2</option></select> - <td width='45%' align='left'><input type='submit' name='ACTION' value=$Lang::tr{'save'} /> - <td width='45%' align='left'> -END -; - if ($outfwsettings{'POLICY'} ne 'MODE0') { - print <<END - $Lang::tr{'outgoing firewall reset'}: <input type='submit' name='ACTION' value=$Lang::tr{'reset'} /> -END -; - } -print <<END - </table> - </form> -END -; -&Header::closebox(); - -############################################################################################################################ -############################################################################################################################ - -sub addrule -{ - &Header::openbox('100%', 'center', $Lang::tr{'Add Rule'}); - if ($outfwsettings{'ENABLED'} eq 'on') { $selected{'ENABLED'} = 'checked'; } - $selected{'TIME_FROM'}{$outfwsettings{'TIME_FROM'}} = "selected='selected'"; - $selected{'TIME_TO'}{$outfwsettings{'TIME_TO'}} = "selected='selected'"; -print <<END - <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <table width='80%'> - <tr> - <td width='20%' align='right'>$Lang::tr{'description'}: <img src='/blob.gif' /></td> - <td width='30%' align='left'><input type='text' name='NAME' maxlength='30' value='$outfwsettings{'NAME'}' /></td> - <td width='20%' align='right' colspan='2'>$Lang::tr{'active'}:</td> - <td width='30%' align='left' colspan='2'><input type='checkbox' name='ENABLED' $selected{'ENABLED'} /></td> - </tr> - <tr> - <td width='20%' align='right'>$Lang::tr{'protocol'}</td> - <td width='30%' align='left'> - <select name='PROT'> - <option value='all' $selected{'PROT'}{'all'}>All</option> - <option value='tcp' $selected{'PROT'}{'tcp'}>TCP</option> - <option value='udp' $selected{'PROT'}{'udp'}>UDP</option> - <option value='gre' $selected{'PROT'}{'gre'}>GRE</option> - <option value='esp' $selected{'PROT'}{'esp'}>ESP</option> - </select> - </td> - <td width='20%' align='right' colspan='2'>$Lang::tr{'policy'}:</td> - <td width='30%' align='left' colspan='2'> -END -; - if ($outfwsettings{'POLICY'} eq 'MODE1'){ - print "\t\t\t\tALLOW<input type='hidden' name='STATE' value='ALLOW' />\n"; - } elsif ($outfwsettings{'POLICY'} eq 'MODE2'){ - print "\t\t\t\tDENY<input type='hidden' name='STATE' value='DENY' />\n"; - } - print <<END - </td> - </tr> - <tr> - <td width='20%' align='right'>$Lang::tr{'source'}:</td> - <td width='30%' align='left'> - <select name='SNET'> - <optgroup label='---'> - <option value='all' $selected{'SNET'}{'ALL'}>$Lang::tr{'all'}</option> - <optgroup label='$Lang::tr{'mac address'}'> - <option value='mac' $selected{'SNET'}{'mac'}>$Lang::tr{'source'} $Lang::tr{'mac address'}</option> - </optgroup> - <optgroup label='$Lang::tr{'ip address'}'> - <option value='ip' $selected{'SNET'}{'ip'}>$Lang::tr{'source ip or net'}</option> - <option value='red' $selected{'SNET'}{'red'}>$Lang::tr{'red'} IP</option> - </optgroup> - <optgroup label='$Lang::tr{'alt vpn'}'> - <option value='ovpn' $selected{'SNET'}{'ovpn'}>OpenVPN $Lang::tr{'interface'}</option> - </optgroup> - <optgroup label='$Lang::tr{'network'}'> - <option value='green' $selected{'SNET'}{'green'}>$Lang::tr{'green'}</option> -END -; - if (&Header::blue_used()){ - print "\t\t\t\t\t<option value='blue' $selected{'SNET'}{'blue'}>$Lang::tr{'wireless'}</option>\n"; - } - if (&Header::orange_used()){ - print "\t\t\t\t\t<option value='orange' $selected{'SNET'}{'orange'}>$Lang::tr{'dmz'}</option>\n"; - } - print <<END - </optgroup> - <optgroup label='IP $Lang::tr{'advproxy NCSA group'}'> -END -; - my @ipgroups = qx(ls $configpath/ipgroups/); - foreach (sort @ipgroups){ - chomp($_); - print "\t\t\t\t\t<option value='$_' $selected{'SNET'}{$_}>$_</option>\n"; - } - print <<END - </optgroup> - <optgroup label='MAC $Lang::tr{'advproxy NCSA group'}'> -END -; - my @macgroups = qx(ls $configpath/macgroups/); - foreach (sort @macgroups){ - chomp($_); - print "\t\t\t\t\t<option value='$_' $selected{'SNET'}{$_}>$_</option>\n"; - } - print <<END - </optgroup> - </select> - </td> - <td align='right' colspan='4'><font color='red'>$Lang::tr{'outgoing firewall warning'}</font></td> - </tr> - <tr> - <td align='right' colspan='4' >$Lang::tr{'source ip or net'}<img src='/blob.gif' /></td> - <td align='left' colspan='4' ><input type='text' name='SIP' value='$outfwsettings{'SIP'}' /></td> - </tr> - <tr> - <td align='right' colspan='4' >$Lang::tr{'source'} $Lang::tr{'mac address'}: <img src='/blob.gif' /> - <td align='left' colspan='4' ><input type='text' name='SMAC' maxlength='23' value='$outfwsettings{'SMAC'}' /> - </tr> - <tr> - <td width='20%' align='right'>$Lang::tr{'logging'}:</td> - <td width='30%' align='left'> - <select name='LOG'> - <option value='$Lang::tr{'active'}' $selected{'LOG'}{$Lang::tr{'active'}}>$Lang::tr{'active'}</option> - <option value='$Lang::tr{'inactive'}' $selected{'LOG'}{$Lang::tr{'inactive'}}>$Lang::tr{'inactive'}</option> - </select> - </td> - <td width='20%' align='right' colspan='2' /> - <td width='30%' align='left' colspan='2' /> - <tr> - <td width='20%' align='right'>$Lang::tr{'destination ip or net'}: <img src='/blob.gif' /></td> - <td width='30%' align='left'><input type='text' name='DIP' value='$outfwsettings{'DIP'}' /></td> - <td width='20%' align='right' colspan='2'>$Lang::tr{'destination port'}(s) <img src='/blob.gif' /></td> - <td width='30%' align='left' colspan='2'><input type='text' name='DPORT' value='$outfwsettings{'DPORT'}' /></td> - </tr> - <tr> - <td width='20%' align='right'>$Lang::tr{'time'}:</td> - <td width='30%' align='left'>$Lang::tr{'advproxy monday'} $Lang::tr{'advproxy tuesday'} $Lang::tr{'advproxy wednesday'} $Lang::tr{'advproxy thursday'} $Lang::tr{'advproxy friday'} $Lang::tr{'advproxy saturday'} $Lang::tr{'advproxy sunday'}</td> - <td width='20%' align='right' colspan='2' /> - <td width='15%' align='left'>$Lang::tr{'advproxy from'}</td> - <td width='15%' align='left'>$Lang::tr{'advproxy to'}</td> - </tr> - <tr> - <td width='20%' align='right'></td> - <td width='30%' align='left'> - <input type='checkbox' name='TIME_MON' $checked{'TIME_MON'}{'on'} /> - <input type='checkbox' name='TIME_TUE' $checked{'TIME_TUE'}{'on'} /> - <input type='checkbox' name='TIME_WED' $checked{'TIME_WED'}{'on'} /> - <input type='checkbox' name='TIME_THU' $checked{'TIME_THU'}{'on'} /> - <input type='checkbox' name='TIME_FRI' $checked{'TIME_FRI'}{'on'} /> - <input type='checkbox' name='TIME_SAT' $checked{'TIME_SAT'}{'on'} /> - <input type='checkbox' name='TIME_SUN' $checked{'TIME_SUN'}{'on'} /> - </td> - <td width='20%' align='right' colspan='2' /> - <td width='15%' align='left'> - <select name='TIME_FROM'> -END -; -for (my $i=0;$i<=23;$i++) { - $i = sprintf("%02s",$i); - for (my $j=0;$j<=45;$j+=15) { - $j = sprintf("%02s",$j); - my $time = $i.":".$j; - print "\t\t\t\t\t<option $selected{'TIME_FROM'}{$time}>$i:$j</option>\n"; - } -} -print <<END - </select> - </td> - <td width='15%' align='left'><select name='TIME_TO'> -END -; -for (my $i=0;$i<=23;$i++) { - $i = sprintf("%02s",$i); - for (my $j=0;$j<=45;$j+=15) { - $j = sprintf("%02s",$j); - my $time = $i.":".$j; - print "\t\t\t\t\t<option $selected{'TIME_TO'}{$time}>$i:$j</option>\n"; - } -} -print <<END - </select> - </td> - </tr> - <tr> - <td colspan='6' /> - <tr> - <tr> - <td width='40%' align='right' colspan='2'><img src='/blob.gif' />$Lang::tr{'this field may be blank'}</td> - <td width='60%' align='left' colspan='4'><input type='submit' name='ACTION' value=$Lang::tr{'add'} /></td> - </table></form> -END -; - &Header::closebox(); - -if ($outfwsettings{'POLICY'} eq 'MODE1' || $outfwsettings{'POLICY'} eq 'MODE2') -{ -&Header::openbox('100%', 'center', 'Quick Add'); - - open( FILE, "< /var/ipfire/outgoing/defaultservices" ) or die "Unable to read default services"; - my @defservices = <FILE>; - close FILE; - -print "<table width='100%'><tr bgcolor='$color{'color20'}'><td><b>$Lang::tr{'service'}</b></td><td><b>$Lang::tr{'description'}</b></td><td><b>$Lang::tr{'port'}</b></td><td><b>$Lang::tr{'protocol'}</b></td><td><b>$Lang::tr{'source net'}</b></td><td><b>$Lang::tr{'logging'}</b></td><td><b>$Lang::tr{'action'}</b></td></tr>"; -foreach my $serviceline(@defservices) - { - my @service = split(/,/,$serviceline); - print <<END - <tr><form method='post' action='$ENV{'SCRIPT_NAME'}'> - <td>$service[0]<input type='hidden' name='NAME' value='@service[0]' /></td> - <td>$service[3]</td> - <td><a href='http://isc.sans.org/port_details.php?port=$service[1]' target='top'>$service[1]</a><input type='hidden' name='DPORT' value='@service[1]' /></td> - <td>$service[2]<input type='hidden' name='PROT' value='@service[2]' /></td> - <td><select name='SNET'><option value='all' $selected{'SNET'}{'ALL'}>$Lang::tr{'all'}</option><option value='green' $selected{'SNET'}{'green'}>$Lang::tr{'green'}</option> -END -; - if (&Header::blue_used()){ - print "<option value='blue' $selected{'SNET'}{'blue'}>$Lang::tr{'wireless'}</option>"; - } - if (&Header::orange_used()){ - print "<option value='orange' $selected{'SNET'}{'orange'}>$Lang::tr{'dmz'}</option>"; - } - print <<END - </select></td> - <td><select name='LOG'><option value='$Lang::tr{'active'}'>$Lang::tr{'active'}</option><option value='$Lang::tr{'inactive'}' 'selected'>$Lang::tr{'inactive'}</option></select></td><td> - <input type='hidden' name='ACTION' value=$Lang::tr{'add'} /> - <input type='image' alt='$Lang::tr{'add'}' src='/images/add.gif' /> - <input type='hidden' name='ENABLED' value='on' /> -END -; - if ($outfwsettings{'POLICY'} eq 'MODE1'){ print "<input type='hidden' name='STATE' value='ALLOW' /></form></td></tr>";} - elsif ($outfwsettings{'POLICY'} eq 'MODE2'){print "<input type='hidden' name='STATE' value='DENY' /></form></td></tr>";} - } - print "</table>"; - &Header::closebox(); - } -} - -&Header::closebigbox(); -&Header::closepage(); diff --git a/html/cgi-bin/outgoinggrp.cgi b/html/cgi-bin/outgoinggrp.cgi deleted file mode 100644 index 1c3d695..0000000 --- a/html/cgi-bin/outgoinggrp.cgi +++ /dev/null @@ -1,466 +0,0 @@ -#!/usr/bin/perl -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2005-2010 IPFire Team # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -use strict; -# enable only the following on debugging purpose -#use warnings; -#use CGI::Carp 'fatalsToBrowser'; - -require '/var/ipfire/general-functions.pl'; -require "${General::swroot}/lang.pl"; -require "${General::swroot}/header.pl"; - -my %outgrpsettings = (); -my %netsettings = (); -my %selected= () ; -my $errormessage = ""; - -my $configpath = "/var/ipfire/outgoing/groups/"; -my $servicefile = "/var/ipfire/outgoing/defaultservices"; - -my %color = (); -my %mainsettings = (); -&General::readhash("${General::swroot}/main/settings", %mainsettings); -&General::readhash("/srv/web/ipfire/html/themes/".$mainsettings{'THEME'}."/include/colors.txt", %color); - -&General::readhash("${General::swroot}/ethernet/settings", %netsettings); - -&Header::showhttpheaders(); - -### Values that have to be initialized -$outgrpsettings{'ACTION'} = ''; -$outgrpsettings{'ipgroup'} = 'none'; -$outgrpsettings{'macgroup'} = 'none'; - -&Header::getcgihash(%outgrpsettings); -delete $outgrpsettings{'__CGI__'};delete $outgrpsettings{'x'};delete $outgrpsettings{'y'}; - -$selected{'ipgroup'}{$outgrpsettings{'ipgroup'}} = "selected='selected'"; -$selected{'macgroup'}{$outgrpsettings{'macgroup'}} = "selected='selected'"; - -&Header::openpage($Lang::tr{'outgoing firewall groups'}, 1, ''); -&Header::openbigbox('100%', 'left', '', $errormessage); - -############### -# DEBUG DEBUG -# &Header::openbox('100%', 'left', 'DEBUG'); -# my $debugCount = 0; -# foreach my $line (sort keys %outgrpsettings) { -# print "$line = $outgrpsettings{$line}<br />\n"; -# $debugCount++; -# } -# print "Count: $debugCount\n"; -# &Header::closebox(); -# DEBUG DEBUG -############### - -############################################################################################################################ -############################################################################################################################ - -if ($outgrpsettings{'ACTION'} eq 'newipgroup') -{ - &newipgroup(); -}elsif ($outgrpsettings{'ACTION'} eq 'editipgroup') -{ - &editipgroup(); -} elsif ($outgrpsettings{'ACTION'} eq 'deleteipgroup' ) { - unlink("$configpath/ipgroups/$outgrpsettings{'ipgroup'}"); -} elsif ($outgrpsettings{'ACTION'} eq 'addipgroup') { - - if ( -e "$configpath/macgroups/$outgrpsettings{'ipgroup'}" ){ - $errormessage = "$Lang::tr{'outgoing firewall group error'}"; - } elsif ( $outgrpsettings{'ipgroup'} =~ /\W/ ){ - $errormessage = $Lang::tr{'name must only contain characters'}." - ".$outgrpsettings{'ipgroup'}; - } elsif ( $outgrpsettings{'ipgroup'} eq "all" || $outgrpsettings{'ipgroup'} eq "red" || $outgrpsettings{'ipgroup'} eq "blue" || - $outgrpsettings{'ipgroup'} eq "green" || $outgrpsettings{'ipgroup'} eq "orange" || $outgrpsettings{'ipgroup'} eq "ip" || - $outgrpsettings{'ipgroup'} eq "mac" || $outgrpsettings{'ipgroup'} eq "ovpn" || $outgrpsettings{'ipgroup'} eq "ipsec" ) { - $errormessage = "$Lang::tr{'outgoing firewall reserved groupname'}"; - } else { - open (FILE, ">$configpath/ipgroups/$outgrpsettings{'ipgroup'}") or die "Can't save $outgrpsettings{'ipgroup'} settings $!"; - $outgrpsettings{'ipgroupcontent'} =~ s/\s*$//; - flock (FILE, 2); - print FILE $outgrpsettings{'ipgroupcontent'}."\n"; - close FILE; - } -} - -if ($outgrpsettings{'ACTION'} eq 'newmacgroup') -{ - &newmacgroup(); -}elsif ($outgrpsettings{'ACTION'} eq 'editmacgroup') -{ - &editmacgroup(); -}elsif ($outgrpsettings{'ACTION'} eq 'deletemacgroup' ) { - unlink("$configpath/macgroups/$outgrpsettings{'macgroup'}"); -} elsif ($outgrpsettings{'ACTION'} eq 'addmacgroup') { - - if ( -e "$configpath/ipgroups/$outgrpsettings{'macgroup'}" ){ - $errormessage = "$Lang::tr{'outgoing firewall group error'}"; - } elsif ( $outgrpsettings{'macgroup'} =~ /\W/ ){ - $errormessage = $Lang::tr{'name must only contain characters'}." - ".$outgrpsettings{'macgroup'}; - } elsif ( $outgrpsettings{'macgroup'} eq "all" || $outgrpsettings{'macgroup'} eq "red" || $outgrpsettings{'macgroup'} eq "blue" || - $outgrpsettings{'macgroup'} eq "green" || $outgrpsettings{'macgroup'} eq "orange" || $outgrpsettings{'macgroup'} eq "ip" || - $outgrpsettings{'macgroup'} eq "mac" || $outgrpsettings{'macgroup'} eq "ovpn" || $outgrpsettings{'macgroup'} eq "ipsec" ) { - $errormessage = "$Lang::tr{'outgoing firewall reserved groupname'}"; - } else { - open (FILE, ">$configpath/macgroups/$outgrpsettings{'macgroup'}") or die "Can't save $outgrpsettings{'macgroup'} settings $!"; - $outgrpsettings{'macgroupcontent'} =~ s/\s*$//; - flock (FILE, 2); - print FILE $outgrpsettings{'macgroupcontent'}."\n"; - close FILE; - } -} - -if ($errormessage) -{ - &Header::openbox('100%', 'left', $Lang::tr{'error messages'}); - print "<class name='base'><font color=red>$errormessage\n</font>"; - print " </class>\n"; - &Header::closebox(); -} - -############################################################################################################################ -############################################################################################################################ - -my @ipgroups = qx(ls $configpath/ipgroups/); -if ($outgrpsettings{'ipgroup'} eq "none" and $#ipgroups >= 0 ){ $outgrpsettings{'ipgroup'} = $ipgroups[0];} - -my $ipgroupcontent = `cat $configpath/ipgroups/$outgrpsettings{'ipgroup'} 2>/dev/null`; -$ipgroupcontent =~ s/\n/<br />/g; - -&Header::openbox('100%', 'center', $Lang::tr{'outgoing firewall ip groups'}); - -print <<END -<a name="outgoing showipgroup"></a> -<br /> -<form method='post' action='$ENV{'SCRIPT_NAME'}#outgoing showipgroup'> -<table width='95%' cellspacing='0'> - <tr> - <td bgcolor='$color{'color20'}' colspan='3' align='left'><b>$Lang::tr{'outgoing firewall ip groups'}</b></td> - </tr> - <tr> - <td colspan='3' align='left'><br /></td> - </tr> - <tr> - <td align='left' colspan='2'><select name='ipgroup' style="width: 200px"> -END -; -foreach my $member (@ipgroups) {chomp $member;print" <option value='$member' $selected{'ipgroup'}{$member}>$member</option>\n";} -print <<END - </select></td> - <td align='left'> - <input type='hidden' name='ACTION' value='showipgroup' /> - <input type='image' alt='$Lang::tr{'outgoing firewall view group'}' title='$Lang::tr{'outgoing firewall view group'}' src='/images/format-justify-fill.png' /> - </td> - </tr> - <tr> - <td colspan='3' align='left'><br /></td> - </tr> - <tr> - <td colspan='3' align='left'><font size=1>$ipgroupcontent</font></td> - </tr> - <tr> - <td colspan='3' align='left'><br /></td> - </tr> - <tr> - <td colspan='3' align='center'><font size=1>$Lang::tr{'outgoing firewall ip groups'} - $outgrpsettings{'ipgroup'}</font></td> - </tr> -</table> -</form> -<table width='10%' cellspacing='0'> -<tr> - <td align='center'> - <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <input type='hidden' name='ACTION' value='editipgroup' /> - <input type='hidden' name='ipgroup' value='$outgrpsettings{'ipgroup'}' /> - <input type='image' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' src='/images/edit.gif' /> - </form> - </td> - <td align='center'> - <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <input type='hidden' name='ACTION' value='newipgroup' /> - <input type='image' alt='$Lang::tr{'new'}' title='$Lang::tr{'new'}' src='/images/list-add.png' /> - </form> - </td> - <td align='center'> - <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <input type='hidden' name='ACTION' value='saveipgroup' /> - <input type='hidden' name='ipgroup' value='$outgrpsettings{'ipgroup'}' /> - <input type='image' alt='$Lang::tr{'save'}' title='$Lang::tr{'save'}' src='/images/media-floppy.png' /> - </form> - </td> - <td align='center'> - <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <input type='hidden' name='ACTION' value='deleteipgroup' /> - <input type='hidden' name='ipgroup' value='$outgrpsettings{'ipgroup'}' /> - <input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/user-trash.png' /> - </form> - </td> -</tr> -</table> - -END -; -&Header::closebox(); - -############################################################################################################################ -############################################################################################################################ - -my @macgroups = qx(ls $configpath/macgroups/); -if ($outgrpsettings{'macgroup'} eq "none" and $#macgroups >= 0 ){ $outgrpsettings{'macgroup'} = $macgroups[0];} - -my $macgroupcontent = `cat $configpath/macgroups/$outgrpsettings{'macgroup'} 2>/dev/null`; -$macgroupcontent =~ s/\n/<br />/g; - -&Header::openbox('100%', 'center', $Lang::tr{'outgoing firewall mac groups'}); - -print <<END -<a name="outgoing showmacgroup"></a> -<br /> -<form method='post' action='$ENV{'SCRIPT_NAME'}#outgoing showmacgroup'> -<table width='95%' cellspacing='0'> - <tr> - <td bgcolor='$color{'color20'}' colspan='3' align='left'><b>$Lang::tr{'outgoing firewall mac groups'}</b></td> - </tr> - <tr> - <td colspan='3' align='left'><br /></td> - </tr> - <tr> - <td align='left' colspan='2'><select name='macgroup' style="width: 200px"> -END -; -foreach my $member (@macgroups) {chomp $member;print" <option value='$member' $selected{'macgroup'}{$member}>$member</option>\n";} -print <<END - </select></td> - <td align='left'> - <input type='hidden' name='ACTION' value='showmacgroup' /> - <input type='image' alt='$Lang::tr{'outgoing firewall view group'}' title='$Lang::tr{'outgoing firewall view group'}' src='/images/format-justify-fill.png' /> - </td> - </tr> - <tr> - <td colspan='3' align='left'><br /></td> - </tr> - <tr> - <td colspan='3' align='left'><font size=1>$macgroupcontent</font></td> - </tr> - <tr> - <td colspan='3' align='left'><br /></td> - </tr> - <tr> - <td colspan='3' align='center'><font size=1>$Lang::tr{'outgoing firewall mac groups'} - $outgrpsettings{'macgroup'}</font></td> - </tr> -</table> -</form> -<table width='10%' cellspacing='0'> -<tr> - <td align='center'> - <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <input type='hidden' name='ACTION' value='editmacgroup' /> - <input type='hidden' name='macgroup' value='$outgrpsettings{'macgroup'}' /> - <input type='image' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' src='/images/edit.gif' /> - </form> - </td> - <td align='center'> - <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <input type='hidden' name='ACTION' value='newmacgroup' /> - <input type='image' alt='$Lang::tr{'new'}' title='$Lang::tr{'new'}' src='/images/list-add.png' /> - </form> - </td> - <td align='center'> - <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <input type='hidden' name='ACTION' value='savemacgroup' /> - <input type='hidden' name='macgroup' value='$outgrpsettings{'macgroup'}' /> - <input type='image' alt='$Lang::tr{'save'}' title='$Lang::tr{'save'}' src='/images/media-floppy.png' /> - </form> - </td> - <td align='center'> - <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <input type='hidden' name='ACTION' value='deletemacgroup' /> - <input type='hidden' name='macgroup' value='$outgrpsettings{'macgroup'}' /> - <input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/user-trash.png' /> - </form> - </td> -</tr> -</table> - -END -; -&Header::closebox(); - -&Header::closebigbox(); -&Header::closepage(); - - -############################################################################################################################ -############################################################################################################################ - - -sub newipgroup -{ - &Header::openbox('100%', 'center', $Lang::tr{'outgoing firewall add ip group'}); - -print <<END - <form method='post' action='$ENV{'SCRIPT_NAME'}#outgoing showipgroup'> - <table width='95%' cellspacing='0'> - <tr> - <td bgcolor='$color{'color20'}' colspan='3' align='left'><b>$Lang::tr{'outgoing firewall add ip group'}</b></td> - </tr> - <tr> - <td colspan='3' align='left'><br /></td> - </tr> - <tr> - <td align='left' colspan='2'> - <input type='text' name='ipgroup' value='newipgroup' size="30" /> - </td> - <td align='left'> - <input type='hidden' name='ACTION' value='addipgroup' /> - <input type='image' alt='$Lang::tr{'save'}' title='$Lang::tr{'save'}' src='/images/media-floppy.png' /> - </td> - </tr> - <tr> - <td align='left' colspan='3'> - <textarea name="ipgroupcontent" cols="40" rows="5" Wrap="off">192.168.1.0/24\n192.168.3.0/255.255.255.0\n192.168.0.1\n192.168.0.2\n</textarea> - </td> - </tr> - </table> - </form> -END -; - &Header::closebox(); - &Header::closebigbox(); - &Header::closepage(); - exit 0; -} - -sub editipgroup -{ -my $ipgroupcontent = `cat $configpath/ipgroups/$outgrpsettings{'ipgroup'} 2>/dev/null`; - - &Header::openbox('100%', 'center', $Lang::tr{'outgoing firewall edit ip group'}); - -print <<END - <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <table width='95%' cellspacing='0'> - <tr> - <td bgcolor='$color{'color20'}' colspan='3' align='left'><b>$Lang::tr{'outgoing firewall edit ip group'}</b></td> - </tr> - <tr> - <td colspan='3' align='left'><br /></td> - </tr> - <tr> - <td align='left' colspan='2'> - <input type='text' name='ipgroup' value='$outgrpsettings{'ipgroup'}' size='30' readonly style='color:$color{'color20'}'/> - </td> - <td align='left'> - <input type='hidden' name='ACTION' value='addipgroup' /> - <input type='image' alt='$Lang::tr{'save'}' title='$Lang::tr{'save'}' src='/images/media-floppy.png' /> - </td> - </tr> - <tr> - <td align='left' colspan='3'> - <textarea name="ipgroupcontent" cols="40" rows="5" Wrap="off">$ipgroupcontent</textarea> - </td> - </tr> - </table> - </form> -END -; - &Header::closebox(); - &Header::closebigbox(); - &Header::closepage(); - exit 0; -} - -sub newmacgroup -{ - &Header::openbox('100%', 'center', $Lang::tr{'outgoing firewall add mac group'}); - -print <<END - <form method='post' action='$ENV{'SCRIPT_NAME'}#outgoing showmacgroup'> - <table width='95%' cellspacing='0'> - <tr> - <td bgcolor='$color{'color20'}' colspan='3' align='left'><b>$Lang::tr{'outgoing firewall add mac group'}</b></td> - </tr> - <tr> - <td colspan='3' align='left'><br /></td> - </tr> - <tr> - <td align='left' colspan='2'> - <input type='text' name='macgroup' value='newmacgroup' size="30" /> - </td> - <td align='left'> - <input type='hidden' name='ACTION' value='addmacgroup' /> - <input type='image' alt='$Lang::tr{'save'}' title='$Lang::tr{'save'}' src='/images/media-floppy.png' /> - </td> - </tr> - <tr> - <td align='left' colspan='3'> - <textarea name="macgroupcontent" cols="20" rows="5" Wrap="off">00:24:F6:04:5F:2b\n14:26:36:5A:5F:2B\n</textarea> - </td> - </tr> - </table> - </form> -END -; - &Header::closebox(); - &Header::closebigbox(); - &Header::closepage(); - exit 0; -} - -sub editmacgroup -{ -my $macgroupcontent = `cat $configpath/macgroups/$outgrpsettings{'macgroup'} 2>/dev/null`; - - &Header::openbox('100%', 'center', $Lang::tr{'outgoing firewall edit mac group'}); - -print <<END - <form method='post' action='$ENV{'SCRIPT_NAME'}#outgoing editmacgroup'> - <table width='95%' cellspacing='0'> - <tr> - <td bgcolor='$color{'color20'}' colspan='3' align='left'><b>$Lang::tr{'outgoing firewall edit mac group'}</b></td> - </tr> - <tr> - <td colspan='3' align='left'><br /></td> - </tr> - <tr> - <td align='left' colspan='2'> - <input type='text' name='macgroup' value='$outgrpsettings{'macgroup'}' size='30' readonly style='color:$color{'color20'}'/> - </td> - <td align='left'> - <input type='hidden' name='ACTION' value='addmacgroup' /> - <input type='image' alt='$Lang::tr{'save'}' title='$Lang::tr{'save'}' src='/images/media-floppy.png' /> - </td> - </tr> - <tr> - <td align='left' colspan='3'> - <textarea name="macgroupcontent" cols="20" rows="5" Wrap="off">$macgroupcontent</textarea> - </td> - </tr> - </table> - </form> -END -; - &Header::closebox(); - &Header::closebigbox(); - &Header::closepage(); - exit 0; -} diff --git a/html/cgi-bin/ovpnmain.cgi b/html/cgi-bin/ovpnmain.cgi index a7973a5..877e09c 100644 --- a/html/cgi-bin/ovpnmain.cgi +++ b/html/cgi-bin/ovpnmain.cgi @@ -30,6 +30,7 @@ use File::Copy; use File::Temp qw/ tempfile tempdir /; use strict; use Archive::Zip qw(:ERROR_CODES :CONSTANTS); +use Sort::Naturally; require '/var/ipfire/general-functions.pl'; require "${General::swroot}/lang.pl"; require "${General::swroot}/header.pl"; @@ -68,6 +69,7 @@ my $confighost="${General::swroot}/fwhosts/customhosts"; my $configgrp="${General::swroot}/fwhosts/customgroups"; my $customnet="${General::swroot}/fwhosts/customnetworks"; my $name; +my $col=""; &General::readhash("${General::swroot}/ethernet/settings", %netsettings); $cgiparams{'ENABLED'} = 'off'; $cgiparams{'ENABLED_BLUE'} = 'off'; @@ -165,49 +167,29 @@ sub deletebackupcert unlink ("${General::swroot}/ovpn/certs/$hexvalue.pem"); } } - sub checkportfw { - my $KEY2 = $_[0]; # key2 - my $SRC_PORT = $_[1]; # src_port - my $PROTOCOL = $_[2]; # protocol - my $SRC_IP = $_[3]; # sourceip - - my $pfwfilename = "${General::swroot}/portfw/config"; - open(FILE, $pfwfilename) or die 'Unable to open config file.'; - my @pfwcurrent = <FILE>; - close(FILE); - my $pfwkey1 = 0; # used for finding last sequence number used - foreach my $pfwline (@pfwcurrent) - { - my @pfwtemp = split(/,/,$pfwline); - - chomp ($pfwtemp[8]); - if ($KEY2 eq "0"){ # if key2 is 0 then it is a portfw addition - if ( $SRC_PORT eq $pfwtemp[3] && - $PROTOCOL eq $pfwtemp[2] && - $SRC_IP eq $pfwtemp[7]) - { - $errormessage = "$Lang::tr{'source port in use'} $SRC_PORT"; - } - # Check if key2 = 0, if it is then it is a port forward entry and we want the sequence number - if ( $pfwtemp[1] eq "0") { - $pfwkey1=$pfwtemp[0]; - } - # Darren Critchley - Duplicate or overlapping Port range check - if ($pfwtemp[1] eq "0" && - $PROTOCOL eq $pfwtemp[2] && - $SRC_IP eq $pfwtemp[7] && - $errormessage eq '') - { - &portchecks($SRC_PORT, $pfwtemp[5]); -# &portchecks($pfwtemp[3], $pfwtemp[5]); -# &portchecks($pfwtemp[3], $SRC_IP); + my $DPORT = shift; + my $DPROT = shift; + my %natconfig =(); + my $confignat = "${General::swroot}/firewall/config"; + $DPROT= uc ($DPROT); + &General::readhasharray($confignat, %natconfig); + foreach my $key (sort keys %natconfig){ + my @portarray = split (/|/,$natconfig{$key}[30]); + foreach my $value (@portarray){ + if ($value =~ /:/i){ + my ($a,$b) = split (":",$value); + if ($DPROT eq $natconfig{$key}[12] && $DPORT gt $a && $DPORT lt $b){ + $errormessage= "$Lang::tr{'source port in use'} $DPORT"; + } + }else{ + if ($DPROT eq $natconfig{$key}[12] && $DPORT eq $value){ + $errormessage= "$Lang::tr{'source port in use'} $DPORT"; + } + } } } - } -# $errormessage="$KEY2 $SRC_PORT $PROTOCOL $SRC_IP"; - - return; + return; }
sub checkportoverlap @@ -239,76 +221,6 @@ sub checkportinc return 0; } } -# Darren Critchley - Duplicate or overlapping Port range check -sub portchecks -{ - my $p1 = $_[0]; # New port range - my $p2 = $_[1]; # existing port range -# $_ = $_[0]; - our ($prtrange1, $prtrange2); - $prtrange1 = 0; -# if (m/:/ && $prtrange1 == 1) { # comparing two port ranges -# unless (&checkportoverlap($p1,$p2)) { -# $errormessage = "$Lang::tr{'source port overlaps'} $p1"; -# } -# } - if (m/:/ && $prtrange1 == 0 && $errormessage eq '') { # compare one port to a range - unless (&checkportinc($p2,$p1)) { - $errormessage = "$Lang::tr{'srcprt within existing'} $p1"; - } - } - $prtrange1 = 1; - if (! m/:/ && $prtrange1 == 1 && $errormessage eq '') { # compare one port to a range - unless (&checkportinc($p1,$p2)) { - $errormessage = "$Lang::tr{'srcprt range overlaps'} $p2"; - } - } - return; -} - -# Darren Critchley - certain ports are reserved for IPFire -# TCP 67,68,81,222,445 -# UDP 67,68 -# Params passed in -> port, rangeyn, protocol -sub disallowreserved -{ - # port 67 and 68 same for tcp and udp, don't bother putting in an array - my $msg = ""; - my @tcp_reserved = (81,222,445); - my $prt = $_[0]; # the port or range - my $ryn = $_[1]; # tells us whether or not it is a port range - my $prot = $_[2]; # protocol - my $srcdst = $_[3]; # source or destination - if ($ryn) { # disect port range - if ($srcdst eq "src") { - $msg = "$Lang::tr{'rsvd src port overlap'}"; - } else { - $msg = "$Lang::tr{'rsvd dst port overlap'}"; - } - my @tmprng = split(/:/,$prt); - unless (67 < $tmprng[0] || 67 > $tmprng[1]) { $errormessage="$msg 67"; return; } - unless (68 < $tmprng[0] || 68 > $tmprng[1]) { $errormessage="$msg 68"; return; } - if ($prot eq "tcp") { - foreach my $prange (@tcp_reserved) { - unless ($prange < $tmprng[0] || $prange > $tmprng[1]) { $errormessage="$msg $prange"; return; } - } - } - } else { - if ($srcdst eq "src") { - $msg = "$Lang::tr{'reserved src port'}"; - } else { - $msg = "$Lang::tr{'reserved dst port'}"; - } - if ($prt == 67) { $errormessage="$msg 67"; return; } - if ($prt == 68) { $errormessage="$msg 68"; return; } - if ($prot eq "tcp") { - foreach my $prange (@tcp_reserved) { - if ($prange == $prt) { $errormessage="$msg $prange"; return; } - } - } - } - return; -}
sub writeserverconf { my %sovpnsettings = (); @@ -597,7 +509,7 @@ sub getccdadresses my @iprange=(); my %ccdhash=(); &General::readhasharray("${General::swroot}/ovpn/ovpnconfig", %ccdhash); - $iprange[0]=$ip1.".".$ip2.".".$ip3.".".2; + $iprange[0]=$ip1.".".$ip2.".".$ip3.".".($ip4+2); for (my $i=1;$i<=$count;$i++) { my $tmpip=$iprange[$i-1]; my $stepper=$i*4; @@ -1137,16 +1049,11 @@ if ($cgiparams{'ACTION'} eq $Lang::tr{'save'} && $cgiparams{'TYPE'} eq '' && $cg goto SETTINGS_ERROR; } } - if ($cgiparams{'ENABLED'} eq 'on'){ - &disallowreserved($cgiparams{'DDEST_PORT'},0,$cgiparams{'DPROTOCOL'},"dest"); - } if ($errormessage) { goto SETTINGS_ERROR; } - - + if ($cgiparams{'ENABLED'} eq 'on'){ - &checkportfw(0,$cgiparams{'DDEST_PORT'},$cgiparams{'DPROTOCOL'},'0.0.0.0'); + &checkportfw($cgiparams{'DDEST_PORT'},$cgiparams{'DPROTOCOL'}); } - if ($errormessage) { goto SETTINGS_ERROR; }
if (! &General::validipandmask($cgiparams{'DOVPN_SUBNET'})) { @@ -1207,6 +1114,12 @@ if ($cgiparams{'ACTION'} eq $Lang::tr{'save'} && $cgiparams{'TYPE'} eq '' && $cg $errormessage = $Lang::tr{'invalid port'}; goto SETTINGS_ERROR; } + + if ($cgiparams{'DDEST_PORT'} <= 1023) { + $errormessage = $Lang::tr{'ovpn port in root range'}; + goto SETTINGS_ERROR; + } + $vpnsettings{'ENABLED_BLUE'} = $cgiparams{'ENABLED_BLUE'}; $vpnsettings{'ENABLED_ORANGE'} =$cgiparams{'ENABLED_ORANGE'}; $vpnsettings{'ENABLED'} = $cgiparams{'ENABLED'}; @@ -2246,7 +2159,7 @@ if ($confighash{$cgiparams{'KEY'}}[3] eq 'net') { } else { $errormessage = $Lang::tr{'invalid key'}; } - + &General::firewall_reload();
### ### Download PKCS12 file @@ -2369,7 +2282,7 @@ ADV_ERROR: &Header::openbox('100%', 'LEFT', $Lang::tr{'advanced server'}); print <<END <form method='post' enctype='multipart/form-data'> - <table width='100%' border=0> + <table width='100%' border='0'> <tr> <td colspan='4'><b>$Lang::tr{'dhcp-options'}</b></td> </tr> @@ -2437,12 +2350,12 @@ print <<END; <tr> <td class='base'>fragment <br></td> <td><input type='TEXT' name='FRAGMENT' value='$cgiparams{'FRAGMENT'}' size='10' /></td> - <td>Default: <span class="base">1300</span></td> + <td>$Lang::tr{'openvpn default'}: <span class="base">1300</span></td> </tr> <tr> <td class='base'>mssfix</td> <td><input type='checkbox' name='MSSFIX' $checked{'MSSFIX'}{'on'} /></td> - <td>Default: on</td> + <td>$Lang::tr{'openvpn default'}: on</td> </tr>
<tr> @@ -2572,10 +2485,10 @@ if ($cgiparams{'ACTION'} eq "edit"){ &Header::openbox('100%', 'LEFT', $Lang::tr{'ccd modify'});
print <<END - <table width='100%' border=0> + <table width='100%' border='0'> <tr><form method='post'> <td width='10%' nowrap='nowrap'>$Lang::tr{'ccd name'}:</td><td><input type='TEXT' name='ccdname' value='$cgiparams{'ccdname'}' /></td> - <td width='8%'>$Lang::tr{'ccd subnet'}:</td><td><input type='TEXT' name='ccdsubnet' value='$cgiparams{'ccdsubnet'}' readonly /></td></tr> + <td width='8%'>$Lang::tr{'ccd subnet'}:</td><td><input type='TEXT' name='ccdsubnet' value='$cgiparams{'ccdsubnet'}' readonly='readonly' /></td></tr> <tr><td colspan='4' align='right'><hr><input type='submit' value='$Lang::tr{'save'}' /><input type='hidden' name='ACTION' value='editsave'/> <input type='hidden' name='ccdname' value='$cgiparams{'ccdname'}'/><input type='submit' value='$Lang::tr{'cancel'}' /> </td></tr> @@ -2616,7 +2529,7 @@ END } print <<END - <table width='100%' border='0' cellpadding='0' cellspacing='1'> + <table width='100%' cellpadding='0' cellspacing='1'> <tr> <td class='boldbase' align='center' nowrap='nowrap' width='20%'><b>$Lang::tr{'ccd name'}</td><td class='boldbase' align='center' width='8%'><b>$Lang::tr{'network'}</td><td class='boldbase' width='8%' align='center' nowrap='nowrap'><b>$Lang::tr{'ccd used'}</td><td width='1%' align='center'></td><td width='1%' align='center'></td></tr> END @@ -2635,7 +2548,7 @@ END print"<td>$ccdconf[0]</td><td align='center'>$ccdconf[1]</td><td align='center'>$ccdhosts/".(&ccdmaxclients($ccdconf[1])+1)."</td><td>"; print <<END <form method='post' /> - <input type='image' src='/images/edit.gif' align='middle' alt=$Lang::tr{'edit'} title=$Lang::tr{'edit'} /> + <input type='image' src='/images/edit.gif' align='middle' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' /> <input type='hidden' name='ACTION' value='edit'/> <input type='hidden' name='ccdname' value='$ccdconf[0]' /> <input type='hidden' name='ccdsubnet' value='$ccdconf[1]' /> @@ -2644,7 +2557,7 @@ print <<END <td><input type='hidden' name='ACTION' value='kill'/> <input type='hidden' name='number' value='$count' /> <input type='hidden' name='net' value='$ccdconf[0]' /> - <input type='image' src='/images/delete.gif' align='middle' alt=$Lang::tr{'remove'} title=$Lang::tr{'remove'} /></form></td></tr> + <input type='image' src='/images/delete.gif' align='middle' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' /></form></td></tr> END ; } @@ -2670,15 +2583,15 @@ END # <td><b>$Lang::tr{'protocol'}</b></td> # protocol temp removed print <<END - <table width='100%' border='0' cellpadding='2' cellspacing='0'> + <table width='100%' cellpadding='2' cellspacing='0' class='tbl'> <tr> - <td><b>$Lang::tr{'common name'}</b></td> - <td><b>$Lang::tr{'real address'}</b></td> - <td><b>$Lang::tr{'virtual address'}</b></td> - <td><b>$Lang::tr{'loged in at'}</b></td> - <td><b>$Lang::tr{'bytes sent'}</b></td> - <td><b>$Lang::tr{'bytes received'}</b></td> - <td><b>$Lang::tr{'last activity'}</b></td> + <th><b>$Lang::tr{'common name'}</b></th> + <th><b>$Lang::tr{'real address'}</b></th> + <th><b>$Lang::tr{'virtual address'}</b></th> + <th><b>$Lang::tr{'loged in at'}</b></th> + <th><b>$Lang::tr{'bytes sent'}</b></th> + <th><b>$Lang::tr{'bytes received'}</b></th> + <th><b>$Lang::tr{'last activity'}</b></th> </tr> END ; @@ -2729,22 +2642,23 @@ END } my $user2 = @users; if ($user2 >= 1){ - for (my $idx = 1; $idx <= $user2; $idx++){ + for (my $idx = 1; $idx <= $user2; $idx++){ if ($idx % 2) { - print "<tr bgcolor='$color{'color20'}'>\n"; - } else { - print "<tr bgcolor='$color{'color22'}'>\n"; + print "<tr>"; + $col="bgcolor='$color{'color22'}'"; + } else { + print "<tr>"; + $col="bgcolor='$color{'color20'}'"; } - print "<td align='left'>$users[$idx-1]{'CommonName'}</td>"; - print "<td align='left'>$users[$idx-1]{'RealAddress'}</td>"; - print "<td align='left'>$users[$idx-1]{'VirtualAddress'}</td>"; - print "<td align='left'>$users[$idx-1]{'Since'}</td>"; - print "<td align='left'>$users[$idx-1]{'BytesSent'}</td>"; - print "<td align='left'>$users[$idx-1]{'BytesReceived'}</td>"; - print "<td align='left'>$users[$idx-1]{'LastRef'}</td>"; -# print "<td align='left'>$users[$idx-1]{'Proto'}</td>"; - } - } + print "<td align='left' $col>$users[$idx-1]{'CommonName'}</td>"; + print "<td align='left' $col>$users[$idx-1]{'RealAddress'}</td>"; + print "<td align='left' $col>$users[$idx-1]{'VirtualAddress'}</td>"; + print "<td align='left' $col>$users[$idx-1]{'Since'}</td>"; + print "<td align='left' $col>$users[$idx-1]{'BytesSent'}</td>"; + print "<td align='left' $col>$users[$idx-1]{'BytesReceived'}</td>"; + print "<td align='left' $col>$users[$idx-1]{'LastRef'}</td>"; + } + } print "</table>"; print <<END @@ -2873,7 +2787,7 @@ if ( -s "${General::swroot}/ovpn/settings") { <td class='base'>$Lang::tr{'net to net vpn'} (Upload Client Package)</td></tr> <tr><td> </td><td class='base'><input type='file' name='FH' size='30'></td></tr> <tr><td> </td><td>Import Connection Name <img src='/blob.gif' /></td></tr> - <tr><td> </td><td class='base'><input type='text' name='n2nname' size='30'>Default : Client Packagename</td></tr> + <tr><td> </td><td class='base'><input type='text' name='n2nname' size='30'>$Lang::tr{'openvpn default'}: Client Packagename</td></tr> <tr><td colspan='3'><hr /></td></tr> <tr><td align='right' colspan='3'><input type='submit' name='ACTION' value='$Lang::tr{'add'}' /></td></tr> <tr><td class='base' colspan='3' align='left'><img src='/blob.gif' alt='*' /> $Lang::tr{'this field may be blank'}</td></tr> @@ -3577,12 +3491,31 @@ if ($cgiparams{'TYPE'} eq 'net') { unlink ("${General::swroot}/ovpn/n2nconf/$cgiparams{'NAME'}/$cgiparams{'NAME'}.conf") or die "Removing Configfile fail: $!"; rmdir ("${General::swroot}/ovpn/n2nconf/$cgiparams{'NAME'}") || die "Removing Directory fail: $!"; goto VPNCONF_ERROR; - } + } + + if ($cgiparams{'DEST_PORT'} <= 1023) { + $errormessage = $Lang::tr{'ovpn port in root range'}; + unlink ("${General::swroot}/ovpn/n2nconf/$cgiparams{'NAME'}/$cgiparams{'NAME'}.conf") or die "Removing Configfile fail: $!"; + rmdir ("${General::swroot}/ovpn/n2nconf/$cgiparams{'NAME'}") || die "Removing Directory fail: $!"; + goto VPNCONF_ERROR; + }
- if ($cgiparams{'OVPN_MGMT'} eq '') { - $cgiparams{'OVPN_MGMT'} = $cgiparams{'DEST_PORT'}; + if ($cgiparams{'OVPN_MGMT'} eq '') { + $cgiparams{'OVPN_MGMT'} = $cgiparams{'DEST_PORT'}; } - + + if ($cgiparams{'OVPN_MGMT'} <= 1023) { + $errormessage = $Lang::tr{'ovpn mgmt in root range'}; + unlink ("${General::swroot}/ovpn/n2nconf/$cgiparams{'NAME'}/$cgiparams{'NAME'}.conf") or die "Removing Configfile fail: $!"; + rmdir ("${General::swroot}/ovpn/n2nconf/$cgiparams{'NAME'}") || die "Removing Directory fail: $!"; + goto VPNCONF_ERROR; + } + #Check if remote subnet is used elsewhere + my ($n2nip,$n2nsub)=split("/",$cgiparams{'REMOTE_SUBNET'}); + $warnmessage=&General::checksubnets('',$n2nip,'ovpn'); + if ($warnmessage){ + $warnmessage=$Lang::tr{'remote subnet'}." ($cgiparams{'REMOTE_SUBNET'}) <br>".$warnmessage; + } }
# if (($cgiparams{'TYPE'} eq 'net') && ($cgiparams{'SIDE'} !~ /^(left|right)$/)) { @@ -4394,7 +4327,7 @@ if ($cgiparams{'TYPE'} eq 'host') { <tr><td> </td> <td class='base'>$Lang::tr{'pkcs12 file password'}:</td> <td class='base' nowrap='nowrap'><input type='password' name='CERT_PASS1' value='$cgiparams{'CERT_PASS1'}' size='32' $cakeydisabled /></td></tr> - <tr><td> </td><td class='base'>$Lang::tr{'pkcs12 file password'}:<BR>($Lang::tr{'confirmation'})</td> + <tr><td> </td><td class='base'>$Lang::tr{'pkcs12 file password'}:<br>($Lang::tr{'confirmation'})</td> <td class='base' nowrap='nowrap'><input type='password' name='CERT_PASS2' value='$cgiparams{'CERT_PASS2'}' size='32' $cakeydisabled /></td></tr> <tr><td colspan='3'> </td></tr> <tr><td colspan='3'><hr /></td></tr> @@ -4578,7 +4511,7 @@ END
#default setzen if ($cgiparams{'DCIPHER'} eq '') { - $cgiparams{'DCIPHER'} = 'BF-CBC'; + $cgiparams{'DCIPHER'} = 'AES-256-CBC'; } if ($cgiparams{'DDEST_PORT'} eq '') { $cgiparams{'DDEST_PORT'} = '1194'; @@ -4618,6 +4551,9 @@ END $selected{'DCIPHER'}{'AES-128-CBC'} = ''; $selected{'DCIPHER'}{'AES-192-CBC'} = ''; $selected{'DCIPHER'}{'AES-256-CBC'} = ''; + $selected{'DCIPHER'}{'CAMELLIA-128-CBC'} = ''; + $selected{'DCIPHER'}{'CAMELLIA-192-CBC'} = ''; + $selected{'DCIPHER'}{'CAMELLIA-256-CBC'} = ''; $selected{'DCIPHER'}{$cgiparams{'DCIPHER'}} = 'SELECTED'; $checked{'DCOMPLZO'}{'off'} = ''; $checked{'DCOMPLZO'}{'on'} = ''; @@ -4638,6 +4574,16 @@ END &Header::closebox(); }
+ if ($warnmessage) { + &Header::openbox('100%', 'LEFT', $Lang::tr{'warning messages'}); + print "$warnmessage<br>"; + print "$Lang::tr{'fwdfw warn1'}<br>"; + &Header::closebox(); + print"<center><form method='post'><input type='submit' name='ACTION' value='$Lang::tr{'ok'}' style='width: 5em;'></form>"; + &Header::closepage(); + exit 0; + } + my $sactive = "<table cellpadding='2' cellspacing='0' bgcolor='${Header::colourred}' width='50%'><tr><td align='center'><b><font color='#FFFFFF'>$Lang::tr{'stopped'}</font></b></td></tr></table>"; my $srunning = "no"; my $activeonrun = ""; @@ -4650,7 +4596,7 @@ END } &Header::openbox('100%', 'LEFT', $Lang::tr{'global settings'}); print <<END - <table width='100%' border=0> + <table width='100%' border='0'> <form method='post'> <td width='25%'> </td> <td width='25%'> </td> @@ -4682,23 +4628,28 @@ END <td class='boldbase'>$Lang::tr{'destination port'}:</td> <td><input type='TEXT' name='DDEST_PORT' value='$cgiparams{'DDEST_PORT'}' size='5' /></td></tr> <tr><td class='boldbase' nowrap='nowrap'>$Lang::tr{'MTU'} </td> - <td> <input type='TEXT' name='DMTU' VALUE='$cgiparams{'DMTU'}'size='5' /></TD> + <td> <input type='TEXT' name='DMTU' VALUE='$cgiparams{'DMTU'}'size='5' /></td> <tr><td class='boldbase' nowrap='nowrap'>$Lang::tr{'comp-lzo'}</td> <td><input type='checkbox' name='DCOMPLZO' $checked{'DCOMPLZO'}{'on'} /></td> <td class='boldbase' nowrap='nowrap'>$Lang::tr{'cipher'}</td> - <td><select name='DCIPHER'><option value='DES-CBC' $selected{'DCIPHER'}{'DES-CBC'}>DES-CBC</option> - <option value='DES-EDE-CBC' $selected{'DCIPHER'}{'DES-EDE-CBC'}>DES-EDE-CBC</option> - <option value='DES-EDE3-CBC' $selected{'DCIPHER'}{'DES-EDE3-CBC'}>DES-EDE3-CBC</option> - <option value='DESX-CBC' $selected{'DCIPHER'}{'DESX-CBC'}>DESX-CBC</option> - <option value='RC2-CBC' $selected{'DCIPHER'}{'RC2-CBC'}>RC2-CBC</option> - <option value='RC2-40-CBC' $selected{'DCIPHER'}{'RC2-40-CBC'}>RC2-40-CBC</option> - <option value='RC2-64-CBC' $selected{'DCIPHER'}{'RC2-64-CBC'}>RC2-64-CBC</option> - <option value='BF-CBC' $selected{'DCIPHER'}{'BF-CBC'}>BF-CBC</option> - <option value='CAST5-CBC' $selected{'DCIPHER'}{'CAST5-CBC'}>CAST5-CBC</option> - <option value='AES-128-CBC' $selected{'DCIPHER'}{'AES-128-CBC'}>AES-128-CBC</option> - <option value='AES-192-CBC' $selected{'DCIPHER'}{'AES-192-CBC'}>AES-192-CBC</option> - <option value='AES-256-CBC' $selected{'DCIPHER'}{'AES-256-CBC'}>AES-256-CBC</option></select></td></tr> - <tr><td colspan='4'><hr /></td></tr> + <td><select name='DCIPHER'> + <option value='CAMELLIA-256-CBC' $selected{'DCIPHER'}{'CAMELLIA-256-CBC'}>CAMELLIA-256-CBC</option> + <option value='CAMELLIA-192-CBC' $selected{'DCIPHER'}{'CAMELLIA-192-CBC'}>CAMELLIA-192-CBC</option> + <option value='CAMELLIA-128-CBC' $selected{'DCIPHER'}{'CAMELLIA-128-CBC'}>CAMELLIA-128-CBC</option> + <option value='AES-256-CBC' $selected{'DCIPHER'}{'AES-256-CBC'}>AES-256-CBC</option> + <option value='AES-192-CBC' $selected{'DCIPHER'}{'AES-192-CBC'}>AES-192-CBC</option> + <option value='AES-128-CBC' $selected{'DCIPHER'}{'AES-128-CBC'}>AES-128-CBC</option> + <option value='CAST5-CBC' $selected{'DCIPHER'}{'CAST5-CBC'}>CAST5-CBC</option> + <option value='RC2-64-CBC' $selected{'DCIPHER'}{'RC2-64-CBC'}>RC2-64-CBC</option> + <option value='RC2-40-CBC' $selected{'DCIPHER'}{'RC2-40-CBC'}>RC2-40-CBC</option> + <option value='RC2-CBC' $selected{'DCIPHER'}{'RC2-CBC'}>RC2-CBC</option> + <option value='BF-CBC' $selected{'DCIPHER'}{'BF-CBC'}>BF-CBC</option> + <option value='DES-CBC' $selected{'DCIPHER'}{'DES-CBC'}>DES-CBC</option> + <option value='DES-EDE-CBC' $selected{'DCIPHER'}{'DES-EDE-CBC'}>DES-EDE-CBC</option> + <option value='DES-EDE3-CBC' $selected{'DCIPHER'}{'DES-EDE3-CBC'}>DES-EDE3-CBC</option> + <option value='DESX-CBC' $selected{'DCIPHER'}{'DESX-CBC'}>DESX-CBC</option> + </select></td></tr> + <tr><td colspan='4'><br><br></td></tr> END ;
@@ -4725,45 +4676,46 @@ END } print "</form></table>"; &Header::closebox(); - &Header::openbox('100%', 'LEFT', "$Lang::tr{'certificate authorities'}:"); + &Header::openbox('100%', 'LEFT', "$Lang::tr{'certificate authorities'}"); print <<EOF#' - <table width='100%' border='0' cellspacing='1' cellpadding='0'> + <table width='100%' cellspacing='1' cellpadding='0' class='tbl'> <tr> - <td width='25%' class='boldbase' align='center'><b>$Lang::tr{'name'}</b></td> - <td width='65%' class='boldbase' align='center'><b>$Lang::tr{'subject'}</b></td> - <td width='10%' class='boldbase' colspan='3' align='center'><b>$Lang::tr{'action'}</b></td> + <th width='25%' class='boldbase' align='center'><b>$Lang::tr{'name'}</b></th> + <th width='65%' class='boldbase' align='center'><b>$Lang::tr{'subject'}</b></th> + <th width='10%' class='boldbase' colspan='3' align='center'><b>$Lang::tr{'action'}</b></th> </tr> EOF ; + my $col1="bgcolor='$color{'color22'}'"; + my $col2="bgcolor='$color{'color20'}'"; if (-f "${General::swroot}/ovpn/ca/cacert.pem") { my $casubject = `/usr/bin/openssl x509 -text -in ${General::swroot}/ovpn/ca/cacert.pem`; $casubject =~ /Subject: (.*)[\n]/; $casubject = $1; $casubject =~ s+/Email+, E+; $casubject =~ s/ ST=/ S=/; - print <<END - <tr bgcolor='$color{'color22'}'> - <td class='base'>$Lang::tr{'root certificate'}</td> - <td class='base'>$casubject</td> - <form method='post' name='frmrootcrta'><td width='3%' align='center'> + <tr> + <td class='base' $col1>$Lang::tr{'root certificate'}</td> + <td class='base' $col1>$casubject</td> + <form method='post' name='frmrootcrta'><td width='3%' align='center' $col1> <input type='hidden' name='ACTION' value='$Lang::tr{'show root certificate'}' /> <input type='image' name='$Lang::tr{'edit'}' src='/images/info.gif' alt='$Lang::tr{'show root certificate'}' title='$Lang::tr{'show root certificate'}' width='20' height='20' border='0' /> </td></form> - <form method='post' name='frmrootcrtb'><td width='3%' align='center'> + <form method='post' name='frmrootcrtb'><td width='3%' align='center' $col1> <input type='image' name='$Lang::tr{'download root certificate'}' src='/images/media-floppy.png' alt='$Lang::tr{'download root certificate'}' title='$Lang::tr{'download root certificate'}' border='0' /> <input type='hidden' name='ACTION' value='$Lang::tr{'download root certificate'}' /> </td></form> - <td width='4%'> </td></tr> + <td width='4%' $col1> </td></tr> END ; } else { # display rootcert generation buttons print <<END - <tr bgcolor='$color{'color22'}'> - <td class='base'>$Lang::tr{'root certificate'}:</td> - <td class='base'>$Lang::tr{'not present'}</td> - <td colspan='3'> </td></tr> + <tr> + <td class='base' $col1>$Lang::tr{'root certificate'}:</td> + <td class='base' $col1>$Lang::tr{'not present'}</td> + <td colspan='3' $col1> </td></tr> END ; } @@ -4776,27 +4728,27 @@ END $hostsubject =~ s/ ST=/ S=/;
print <<END - <tr bgcolor='$color{'color20'}'> - <td class='base'>$Lang::tr{'host certificate'}</td> - <td class='base'>$hostsubject</td> - <form method='post' name='frmhostcrta'><td width='3%' align='center'> + <tr> + <td class='base' $col2>$Lang::tr{'host certificate'}</td> + <td class='base' $col2>$hostsubject</td> + <form method='post' name='frmhostcrta'><td width='3%' align='center' $col2> <input type='hidden' name='ACTION' value='$Lang::tr{'show host certificate'}' /> <input type='image' name='$Lang::tr{'show host certificate'}' src='/images/info.gif' alt='$Lang::tr{'show host certificate'}' title='$Lang::tr{'show host certificate'}' width='20' height='20' border='0' /> </td></form> - <form method='post' name='frmhostcrtb'><td width='3%' align='center'> - <input type='image' name='$Lang::tr{'download host certificate'}' src='/images/media-floppy.png' alt='$Lang::tr{'download host certificate'}' title='$Lang::tr{'download host certificate'}' border='0' /> - <input type='hidden' name='ACTION' value='$Lang::tr{'download host certificate'}' /> + <form method='post' name='frmhostcrtb'><td width='3%' align='center' $col2> + <input type='image' name="$Lang::tr{'download host certificate'}" src='/images/media-floppy.png' alt="$Lang::tr{'download host certificate'}" title="$Lang::tr{'download host certificate'}" border='0' /> + <input type='hidden' name='ACTION' value="$Lang::tr{'download host certificate'}" /> </td></form> - <td width='4%'> </td></tr> + <td width='4%' $col2> </td></tr> END ; } else { # Nothing print <<END - <tr bgcolor='$color{'color20'}'> - <td width='25%' class='base'>$Lang::tr{'host certificate'}:</td> - <td class='base'>$Lang::tr{'not present'}</td> - </td><td colspan='3'> </td></tr> + <tr> + <td width='25%' class='base' $col2>$Lang::tr{'host certificate'}:</td> + <td class='base' $col2>$Lang::tr{'not present'}</td> + </td><td colspan='3' $col2> </td></tr> END ; } @@ -4859,7 +4811,7 @@ print <<END <form method='post' enctype='multipart/form-data'> <table width='100%' border='0'> <tr><td class='base' nowrap='nowrap'>$Lang::tr{'ca name'}:</td><td nowrap='nowrap' width='8%'><input type='text' name='CA_NAME' value='$cgiparams{'CA_NAME'}' size='15' align='left'/></td><td nowrap='nowrap' align='right'><input type='file' name='FH' size='25' /><input type='submit' name='ACTION' value='$Lang::tr{'upload ca certificate'}' /></td></tr> -<tr><td colspan='4'><hr /></td></tr> +<tr><td colspan='4'><br></td></tr> <tr align='right'><td colspan='4' align='right' width='80%'><input type='submit' name='ACTION' value='$Lang::tr{'show crl'}' /></td></tr> </table> END @@ -4883,29 +4835,31 @@ END print <<END
- <table width='100%' border='0' cellspacing='1' cellpadding='0'> + <table width='100%' cellspacing='1' cellpadding='0' class='tbl'> <tr> - <td width='10%' class='boldbase' align='center'><b>$Lang::tr{'name'}</b></td> - <td width='15%' class='boldbase' align='center'><b>$Lang::tr{'type'}</b></td> - <td width='22%' class='boldbase' align='center'><b>$Lang::tr{'network'}</b></td> - <td width='20%' class='boldbase' align='center'><b>$Lang::tr{'remark'}</b></td> - <td width='10%' class='boldbase' align='center'><b>$Lang::tr{'status'}</b></td> - <td width='5%' class='boldbase' colspan='6' align='center'><b>$Lang::tr{'action'}</b></td> + <th width='10%' class='boldbase' align='center'><b>$Lang::tr{'name'}</b></th> + <th width='15%' class='boldbase' align='center'><b>$Lang::tr{'type'}</b></th> + <th width='22%' class='boldbase' align='center'><b>$Lang::tr{'network'}</b></th> + <th width='20%' class='boldbase' align='center'><b>$Lang::tr{'remark'}</b></th> + <th width='10%' class='boldbase' align='center'><b>$Lang::tr{'status'}</b></th> + <th width='5%' class='boldbase' colspan='6' align='center'><b>$Lang::tr{'action'}</b></th> </tr> END ; - my $id = 0; - my $gif; - foreach my $key (sort { uc($confighash{$a}[1]) cmp uc($confighash{$b}[1]) } keys %confighash) { - if ($confighash{$key}[0] eq 'on') { $gif = 'on.gif'; } else { $gif = 'off.gif'; } - + my $id = 0; + my $gif; + my $col1=""; + foreach my $key (sort { ncmp ($confighash{$a}[1],$confighash{$b}[1]) } keys %confighash) { + if ($confighash{$key}[0] eq 'on') { $gif = 'on.gif'; } else { $gif = 'off.gif'; } if ($id % 2) { - print "<tr bgcolor='$color{'color20'}'>\n"; + print "<tr>"; + $col="bgcolor='$color{'color20'}'"; } else { - print "<tr bgcolor='$color{'color22'}'>\n"; + print "<tr>"; + $col="bgcolor='$color{'color22'}'"; } - print "<td align='center' nowrap='nowrap'>$confighash{$key}[1]</td>"; - print "<td align='center' nowrap='nowrap'>" . $Lang::tr{"$confighash{$key}[3]"} . " (" . $Lang::tr{"$confighash{$key}[4]"} . ")</td>"; + print "<td align='center' nowrap='nowrap' $col>$confighash{$key}[1]</td>"; + print "<td align='center' nowrap='nowrap' $col>" . $Lang::tr{"$confighash{$key}[3]"} . " (" . $Lang::tr{"$confighash{$key}[4]"} . ")</td>"; #if ($confighash{$key}[4] eq 'cert') { #print "<td align='left' nowrap='nowrap'>$confighash{$key}[2]</td>"; #} else { @@ -4916,19 +4870,20 @@ END $cavalid = $1; if ($confighash{$key}[32] eq "" && $confighash{$key}[3] eq 'net' ){$confighash{$key}[32]="net-2-net";} if ($confighash{$key}[32] eq "" && $confighash{$key}[3] eq 'host' ){$confighash{$key}[32]="dynamic";} - print "<td align='center'>$confighash{$key}[32]</td>"; - print "<td align='center'>$confighash{$key}[25]</td>"; - - my $active = "<table cellpadding='2' cellspacing='0' bgcolor='${Header::colourred}' width='100%'><tr><td align='center'><b><font color='#FFFFFF'>$Lang::tr{'capsclosed'}</font></b></td></tr></table>"; + print "<td align='center' $col>$confighash{$key}[32]</td>"; + print "<td align='center' $col>$confighash{$key}[25]</td>"; + $col1="bgcolor='${Header::colourred}'"; + my $active = "<b><font color='#FFFFFF'>$Lang::tr{'capsclosed'}</font></b>";
if ($confighash{$key}[0] eq 'off') { - $active = "<table cellpadding='2' cellspacing='0' bgcolor='${Header::colourblue}' width='100%'><tr><td align='center'><b><font color='#FFFFFF'>$Lang::tr{'capsclosed'}</font></b></td></tr></table>"; + $col1="bgcolor='${Header::colourblue}'"; + $active = "<b><font color='#FFFFFF'>$Lang::tr{'capsclosed'}</font></b>"; } else {
### # m.a.d net2net -### - +### + if ($confighash{$key}[3] eq 'net') {
if (-e "/var/run/$confighash{$key}[1]n2n.pid") { @@ -4952,39 +4907,41 @@ END #EXITING -- A graceful exit is in progress. ####
- if ( $tustate[1] eq 'CONNECTED') { - $active = "<table cellpadding='2' cellspacing='0' bgcolor='${Header::colourgreen}' width='100%'><tr><td align='center'><b><font color='#FFFFFF'>$Lang::tr{'capsopen'}</font></b></tr></td></table>"; - } else { - $active = "<table cellpadding='2' cellspacing='0' bgcolor='${Header::colourred}' width='100%'><tr><td align='center'><b><font color='#FFFFFF'>$tustate[1]</font></b></td></tr></table>"; + if (($tustate[1] eq 'CONNECTED') || ($tustate[1] eq 'WAIT')) { + $col1="bgcolor='${Header::colourgreen}'"; + $active = "<b><font color='#FFFFFF'>$Lang::tr{'capsopen'}</font></b>"; + }else { + $col1="bgcolor='${Header::colourred}'"; + $active = "<b><font color='#FFFFFF'>$tustate[1]</font></b>"; + } } - } } - } else { - - my $cn; - my @match = (); - foreach my $line (@status) { - chomp($line); - if ( $line =~ /^(.+),(\d+.\d+.\d+.\d+:\d+),(\d+),(\d+),(.+)/) { - @match = split(m/^(.+),(\d+.\d+.\d+.\d+:\d+),(\d+),(\d+),(.+)/, $line); - if ($match[1] ne "Common Name") { - $cn = $match[1]; - } - $cn =~ s/[_]/ /g; - if ($cn eq "$confighash{$key}[2]") { - $active = "<table cellpadding='2' cellspacing='0' bgcolor='${Header::colourgreen}' width='100%'><tr><td align='center'><b><font color='#FFFFFF'>$Lang::tr{'capsopen'}</font></b></td></tr></table>"; - } - } - + }else { + + my $cn; + my @match = (); + foreach my $line (@status) { + chomp($line); + if ( $line =~ /^(.+),(\d+.\d+.\d+.\d+:\d+),(\d+),(\d+),(.+)/) { + @match = split(m/^(.+),(\d+.\d+.\d+.\d+:\d+),(\d+),(\d+),(.+)/, $line); + if ($match[1] ne "Common Name") { + $cn = $match[1]; + } + $cn =~ s/[_]/ /g; + if ($cn eq "$confighash{$key}[2]") { + $col1="bgcolor='${Header::colourgreen}'"; + $active = "<b><font color='#FFFFFF'>$Lang::tr{'capsopen'}</font></b>"; + } + } + } } } -}
print <<END - <td align='center'>$active</td> + <td align='center' $col1>$active</td> - <form method='post' name='frm${key}a'><td align='center'> + <form method='post' name='frm${key}a'><td align='center' $col> <input type='image' name='$Lang::tr{'dl client arch'}' src='/images/openvpn.png' alt='$Lang::tr{'dl client arch'}' title='$Lang::tr{'dl client arch'}' border='0' /> <input type='hidden' name='ACTION' value='$Lang::tr{'dl client arch'}' /> <input type='hidden' name='KEY' value='$key' /> @@ -4993,7 +4950,7 @@ END ; if ($confighash{$key}[4] eq 'cert') { print <<END - <form method='post' name='frm${key}b'><td align='center'> + <form method='post' name='frm${key}b'><td align='center' $col> <input type='image' name='$Lang::tr{'show certificate'}' src='/images/info.gif' alt='$Lang::tr{'show certificate'}' title='$Lang::tr{'show certificate'}' border='0' /> <input type='hidden' name='ACTION' value='$Lang::tr{'show certificate'}' /> <input type='hidden' name='KEY' value='$key' /> @@ -5004,7 +4961,7 @@ END } if ($confighash{$key}[4] eq 'cert' && -f "${General::swroot}/ovpn/certs/$confighash{$key}[1].p12") { print <<END - <form method='post' name='frm${key}c'><td align='center'> + <form method='post' name='frm${key}c'><td align='center' $col> <input type='image' name='$Lang::tr{'download pkcs12 file'}' src='/images/media-floppy.png' alt='$Lang::tr{'download pkcs12 file'}' title='$Lang::tr{'download pkcs12 file'}' border='0' /> <input type='hidden' name='ACTION' value='$Lang::tr{'download pkcs12 file'}' /> <input type='hidden' name='KEY' value='$key' /> @@ -5012,7 +4969,7 @@ END END ; } elsif ($confighash{$key}[4] eq 'cert') { print <<END - <form method='post' name='frm${key}c'><td align='center'> + <form method='post' name='frm${key}c'><td align='center' $col> <input type='image' name='$Lang::tr{'download certificate'}' src='/images/media-floppy.png' alt='$Lang::tr{'download certificate'}' title='$Lang::tr{'download certificate'}' border='0' /> <input type='hidden' name='ACTION' value='$Lang::tr{'download certificate'}' /> <input type='hidden' name='KEY' value='$key' /> @@ -5022,18 +4979,18 @@ END print "<td> </td>"; } print <<END - <form method='post' name='frm${key}d'><td align='center'> + <form method='post' name='frm${key}d'><td align='center' $col> <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' alt='$Lang::tr{'toggle enable disable'}' title='$Lang::tr{'toggle enable disable'}' border='0' /> <input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' /> <input type='hidden' name='KEY' value='$key' /> </td></form>
- <form method='post' name='frm${key}e'><td align='center'> + <form method='post' name='frm${key}e'><td align='center' $col> <input type='hidden' name='ACTION' value='$Lang::tr{'edit'}' /> <input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' width='20' height='20' border='0'/> <input type='hidden' name='KEY' value='$key' /> </td></form> - <form method='post' name='frm${key}f'><td align='center'> + <form method='post' name='frm${key}f'><td align='center' $col> <input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' /> <input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' width='20' height='20' border='0' /> <input type='hidden' name='KEY' value='$key' /> @@ -5069,7 +5026,7 @@ END <td> <img src='/images/openvpn.png' alt='?RELOAD'/></td> <td class='base'>$Lang::tr{'dl client arch'}</td> </tr> - </table><hr> + </table><br> END ; } diff --git a/html/cgi-bin/p2p-block.cgi b/html/cgi-bin/p2p-block.cgi new file mode 100644 index 0000000..04f1331 --- /dev/null +++ b/html/cgi-bin/p2p-block.cgi @@ -0,0 +1,154 @@ +#!/usr/bin/perl +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2013 # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### +# Author: Alexander Marx (Amarx@ipfire.org) # +############################################################################### + +use strict; +no warnings 'uninitialized'; +# enable only the following on debugging purpose +#use warnings; +#use CGI::Carp 'fatalsToBrowser'; + +require '/var/ipfire/general-functions.pl'; +require "${General::swroot}/lang.pl"; +require "${General::swroot}/header.pl"; + +my $errormessage = ''; +my $notice; +my $p2pfile = "${General::swroot}/firewall/p2protocols"; + +my @p2ps = (); +my %fwdfwsettings = (); +my %color = (); +my %mainsettings = (); + +&General::readhash("${General::swroot}/main/settings", %mainsettings); +&General::readhash("/srv/web/ipfire/html/themes/".$mainsettings{'THEME'}."/include/colors.txt", %color); + +&Header::showhttpheaders(); +&Header::getcgihash(%fwdfwsettings); + +if ($fwdfwsettings{'ACTION'} eq 'togglep2p') { + open( FILE, "<$p2pfile") or die "Unable to read $p2pfile"; + @p2ps = <FILE>; + close FILE; + open( FILE, ">$p2pfile") or die "Unable to write $p2pfile"; + foreach my $p2pentry (sort @p2ps) { + my @p2pline = split( /;/, $p2pentry); + if ($p2pline[1] eq $fwdfwsettings{'P2PROT'}) { + if ($p2pline[2] eq 'on') { + $p2pline[2] = 'off'; + } else { + $p2pline[2] = 'on'; + } + } + print FILE "$p2pline[0];$p2pline[1];$p2pline[2];\n"; + } + close FILE; + + &General::firewall_config_changed(); + + $notice = $Lang::tr{'p2p block save notice'}; +} + +&Header::openpage($Lang::tr{'p2p block'}, 1, ''); +&Header::openbigbox('100%', 'center', $errormessage); + +if ($notice) { + &Header::openbox('100%', 'left', $Lang::tr{'notice'}); + print "<font class='base'>$notice</font>"; + &Header::closebox(); +} + +my $gif; + +open(FILE, "<$p2pfile") or die "Unable to read $p2pfile"; +@p2ps = <FILE>; +close FILE; + +&Header::openbox('100%', 'center',); +print <<END; + <table width='35%' class='tbl'> + <tr> + <th align='center' colspan='2' bgcolor='$color{'color22'}' > + <b>$Lang::tr{'protocol'}</b> + </th> + <th align='center' bgcolor='$color{'color22'}' > + <b>$Lang::tr{'status'}</b> + </th> + </tr> +END +my $lines=0; +my $col=""; +foreach my $p2pentry (sort @p2ps) { + my @p2pline = split( /;/, $p2pentry); + if ($p2pline[2] eq 'on') { + $gif = "/images/on.gif" + } else { + $gif = "/images/off.gif" + } + if ($lines % 2) { + print "<tr>"; + $col="bgcolor='$color{'color20'}'"; } + else { + print "<tr>"; + $col="bgcolor='$color{'color22'}'"; } + print <<END; + <td align='center' colspan='2' $col> + $p2pline[0]: + </td> + <td align='center' $col> + <form method='post' action='$ENV{'SCRIPT_NAME'}'> + <input type='hidden' name='P2PROT' value='$p2pline[1]'> + <input type='image' img src='$gif' alt='$Lang::tr{'click to disable'}' title='$Lang::tr{'fwdfw toggle'}' style='padding-top: 0px; padding-left: 0px; padding-bottom: 0px ;padding-right: 0px ;display: block;'> + <input type='hidden' name='ACTION' value='togglep2p'> + </form> + </td> + </tr> +END +$lines++; +} + +print <<END; +</table><table> + <tr> + <td> + <img src='/images/on.gif'> + </td> + <td> + $Lang::tr{'outgoing firewall p2p allow'} + </td> + </tr> + <tr> + <td> + <img src='/images/off.gif'> + </td> + <td> + $Lang::tr{'outgoing firewall p2p deny'} + </td> + </tr> + </table> +END + +&Header::closebox(); + +&Header::closebigbox(); +&Header::closepage(); diff --git a/html/cgi-bin/pakfire.cgi b/html/cgi-bin/pakfire.cgi index 5903d85..2a7ca84 100644 --- a/html/cgi-bin/pakfire.cgi +++ b/html/cgi-bin/pakfire.cgi @@ -81,12 +81,12 @@ END <input type='hidden' name='INSPAKS' value='$pakfiresettings{'INSPAKS'}' /> <input type='hidden' name='FORCE' value='on' /> <input type='hidden' name='ACTION' value='install' /> - <input type='image' alt='$Lang::tr{'install'}' src='/images/go-next.png' /> + <input type='image' alt='$Lang::tr{'install'}' title='$Lang::tr{'install'}' src='/images/go-next.png' /> </form> <td align='left'> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='' /> - <input type='image' alt='$Lang::tr{'abort'}' src='/images/dialog-error.png' /> + <input type='image' alt='$Lang::tr{'abort'}' title='$Lang::tr{'abort'}' src='/images/dialog-error.png' /> </form> </table> END @@ -121,12 +121,12 @@ END <input type='hidden' name='DELPAKS' value='$pakfiresettings{'DELPAKS'}' /> <input type='hidden' name='FORCE' value='on' /> <input type='hidden' name='ACTION' value='remove' /> - <input type='image' alt='$Lang::tr{'uninstall'}' src='/images/go-next.png' /> + <input type='image' alt='$Lang::tr{'uninstall'}' title='$Lang::tr{'uninstall'}' src='/images/go-next.png' /> </form> <td align='left'> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='' /> - <input type='image' alt='$Lang::tr{'abort'}' src='/images/dialog-error.png' /> + <input type='image' alt='$Lang::tr{'abort'}' title='$Lang::tr{'abort'}' src='/images/dialog-error.png' /> </form> </table> END @@ -184,12 +184,12 @@ if ($return) { print <<END; <table> <tr><td> - <img src='/images/indicator.gif' alt='$Lang::tr{'aktiv'}' /> + <img src='/images/indicator.gif' alt='$Lang::tr{'aktiv'}' title='$Lang::tr{'aktiv'}' /> <td> $Lang::tr{'pakfire working'} <tr><td colspan='2' align='center'> <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <input type='image' alt='$Lang::tr{'reload'}' src='/images/view-refresh.png' /> + <input type='image' alt='$Lang::tr{'reload'}' title='$Lang::tr{'reload'}' src='/images/view-refresh.png' /> </form> <tr><td colspan='2' align='left'><pre> END @@ -245,7 +245,7 @@ END </select> <br /> <input type='hidden' name='ACTION' value='upgrade' /> - <input type='image' alt='$Lang::tr{'upgrade'}' src='/images/document-save.png' /> + <input type='image' alt='$Lang::tr{'upgrade'}' title='$Lang::tr{'upgrade'}' src='/images/document-save.png' /> </form>
<tr><td colspan="2"><!-- Just an empty line --> @@ -262,7 +262,7 @@ print <<END; </select> <br /> <input type='hidden' name='ACTION' value='install' /> - <input type='image' alt='$Lang::tr{'install'}' src='/images/list-add.png' /> + <input type='image' alt='$Lang::tr{'install'}' title='$Lang::tr{'install'}' src='/images/list-add.png' /> </form>
<td align="center"> @@ -277,7 +277,7 @@ print <<END; </select> <br /> <input type='hidden' name='ACTION' value='remove' /> - <input type='image' alt='$Lang::tr{'remove'}' src='/images/list-remove.png' /> + <input type='image' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' src='/images/list-remove.png' /> </form> </table> END diff --git a/html/cgi-bin/portfw.cgi b/html/cgi-bin/portfw.cgi deleted file mode 100644 index 199682f..0000000 --- a/html/cgi-bin/portfw.cgi +++ /dev/null @@ -1,1177 +0,0 @@ -#!/usr/bin/perl -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -use strict; - -# enable only the following on debugging purpose -#use warnings; -#use CGI::Carp 'fatalsToBrowser'; - -require '/var/ipfire/general-functions.pl'; -require "${General::swroot}/lang.pl"; -require "${General::swroot}/header.pl"; - -#workaround to suppress a warning when a variable is used only once -my @dummy = ( ${Header::colouryellow} ); -undef (@dummy); - -my %color = (); -my %mainsettings = (); -&General::readhash("${General::swroot}/main/settings", %mainsettings); -&General::readhash("/srv/web/ipfire/html/themes/".$mainsettings{'THEME'}."/include/colors.txt", %color); - -my %cgiparams=(); -my %selected=(); -my %checked=(); -my $prtrange1=0; -my $prtrange2=0; -my $errormessage = ''; -my $filename = "${General::swroot}/portfw/config"; -my $aliasfile = "${General::swroot}/ethernet/aliases"; - -&Header::showhttpheaders(); - -$cgiparams{'ENABLED'} = 'off'; -$cgiparams{'KEY1'} = '0'; -$cgiparams{'KEY2'} = '0'; -$cgiparams{'PROTOCOL'} = ''; -$cgiparams{'SRC_PORT'} = ''; -$cgiparams{'DEST_IP'} = ''; -$cgiparams{'DEST_PORT'} = ''; -$cgiparams{'SRC_IP'} = ''; -$cgiparams{'ORIG_IP'} = ''; -$cgiparams{'REMARK'} = ''; -$cgiparams{'OVERRIDE'} = 'off'; -$cgiparams{'ACTION'} = ''; - -&Header::getcgihash(%cgiparams); - -my $disable_all = "0"; -my $enable_all = "0"; - -if ($cgiparams{'ACTION'} eq $Lang::tr{'add'}) -{ - &valaddupdate(); - - # Darren Critchley - if there is an error, don't waste any more time processing - if ($errormessage) { goto ERROR; } - - open(FILE, $filename) or die 'Unable to open config file.'; - my @current = <FILE>; - close(FILE); - my $key1 = 0; # used for finding last sequence number used - foreach my $line (@current) - { - my @temp = split(/,/,$line); - - chomp ($temp[8]); - if ($cgiparams{'KEY2'} eq "0"){ # if key2 is 0 then it is a portfw addition - if ( $cgiparams{'SRC_PORT'} eq $temp[3] && - $cgiparams{'PROTOCOL'} eq $temp[2] && - $cgiparams{'SRC_IP'} eq $temp[7]) - { - $errormessage = - "$Lang::tr{'source port in use'} $cgiparams{'SRC_PORT'}"; - } - # Check if key2 = 0, if it is then it is a port forward entry and we want the sequence number - if ( $temp[1] eq "0") { - $key1=$temp[0]; - } - # Darren Critchley - Duplicate or overlapping Port range check - if ($temp[1] eq "0" && - $cgiparams{'PROTOCOL'} eq $temp[2] && - $cgiparams{'SRC_IP'} eq $temp[7] && - $errormessage eq '') - { - &portchecks($temp[3], $temp[5]); - } - } else { - if ( $cgiparams{'KEY1'} eq $temp[0] && - $cgiparams{'ORIG_IP'} eq $temp[8]) - { - $errormessage = - "$Lang::tr{'source ip in use'} $cgiparams{'ORIG_IP'}"; - } - } - } - -ERROR: - unless ($errormessage) - { - # Darren Critchley - we only want to store ranges with Colons - $cgiparams{'SRC_PORT'} =~ tr/-/:/; - $cgiparams{'DEST_PORT'} =~ tr/-/:/; - - if ($cgiparams{'KEY1'} eq "0") { # 0 in KEY1 indicates it is a portfw add - $key1++; # Add one to last sequence number - open(FILE,">>$filename") or die 'Unable to open config file.'; - flock FILE, 2; - if ($cgiparams{'ORIG_IP'} eq '0.0.0.0/0') { - # if the default/all is taken, then write it to the rule - print FILE "$key1,0,$cgiparams{'PROTOCOL'},$cgiparams{'SRC_PORT'},$cgiparams{'DEST_IP'},$cgiparams{'DEST_PORT'},$cgiparams{'ENABLED'},$cgiparams{'SRC_IP'},$cgiparams{'ORIG_IP'},$cgiparams{'REMARK'}\n"; - } else { # else create an extra record so it shows up - print FILE "$key1,0,$cgiparams{'PROTOCOL'},$cgiparams{'SRC_PORT'},$cgiparams{'DEST_IP'},$cgiparams{'DEST_PORT'},$cgiparams{'ENABLED'},$cgiparams{'SRC_IP'},0,$cgiparams{'REMARK'}\n"; - print FILE "$key1,1,$cgiparams{'PROTOCOL'},0,$cgiparams{'DEST_IP'},$cgiparams{'DEST_PORT'},$cgiparams{'ENABLED'},0,$cgiparams{'ORIG_IP'},$cgiparams{'REMARK'}\n"; - } - close(FILE); - undef %cgiparams; - &General::log($Lang::tr{'forwarding rule added'}); - system('/usr/local/bin/setportfw'); - } else { # else key1 eq 0 - my $insertpoint = ($cgiparams{'KEY2'} - 1); - open(FILE, ">$filename") or die 'Unable to open config file.'; - flock FILE, 2; - foreach my $line (@current) { - chomp($line); - my @temp = split(/,/,$line); - if ($cgiparams{'KEY1'} eq $temp[0] && $insertpoint eq $temp[1]) { - if ($temp[1] eq "0") { # this is the first xtaccess rule, therefore modify the portfw rule - $temp[8] = '0'; - } - print FILE "$temp[0],$temp[1],$temp[2],$temp[3],$temp[4],$temp[5],$temp[6],$temp[7],$temp[8],$temp[9]\n"; - print FILE "$cgiparams{'KEY1'},$cgiparams{'KEY2'},$cgiparams{'PROTOCOL'},0,$cgiparams{'DEST_IP'},$cgiparams{'DEST_PORT'},$cgiparams{'ENABLED'},0,$cgiparams{'ORIG_IP'},$cgiparams{'REMARK'}\n"; - } else { - print FILE "$line\n"; - } - } - close(FILE); - undef %cgiparams; - &General::log($Lang::tr{'external access rule added'}); - system('/usr/local/bin/setportfw'); - } # end if if KEY1 eq 0 - } # end unless($errormessage) -} - -if ($cgiparams{'ACTION'} eq $Lang::tr{'update'}) -{ - &valaddupdate(); - - # Darren Critchley - If there is an error don't waste any more processing time - if ($errormessage) { $cgiparams{'ACTION'} = $Lang::tr{'edit'}; goto UPD_ERROR; } - - open(FILE, $filename) or die 'Unable to open config file.'; - my @current = <FILE>; - close(FILE); - my $disabledpfw = '0'; - my $lastpfw = ''; - my $xtaccessdel = '0'; - - foreach my $line (@current) - { - my @temp = split(/,/,$line); - if ( $temp[1] eq "0" ) { # keep track of the last portfw and if it is enabled - $disabledpfw = $temp[6]; - $lastpfw = $temp[0]; - } - chomp ($temp[8]); - if ( $cgiparams{'SRC_PORT'} eq $temp[3] && - $cgiparams{'PROTOCOL'} eq $temp[2] && - $cgiparams{'SRC_IP'} eq $temp[7]) - { - if ($cgiparams{'KEY1'} ne $temp[0] && $cgiparams{'KEY2'} eq "0") - { - $errormessage = - "$Lang::tr{'source port in use'} $cgiparams{'SRC_PORT'}"; - } - } - if ($cgiparams{'ORIG_IP'} eq $temp[8]) - { - if ($cgiparams{'KEY1'} eq $temp[0] && $cgiparams{'KEY2'} ne $temp[1]) - # If we have the same source ip within a portfw group, then we have a problem! - { - $errormessage = "$Lang::tr{'source ip in use'} $cgiparams{'ORIG_IP'}"; - $cgiparams{'ACTION'} = $Lang::tr{'edit'}; - } - } - - # Darren Critchley - Flag when a user disables an xtaccess - if ($cgiparams{'KEY1'} eq $temp[0] && - $cgiparams{'KEY2'} eq $temp[1] && - $cgiparams{'KEY2'} ne "0" && # if KEY2 is 0 then it is a portfw - $cgiparams{'ENABLED'} eq "off" && - $temp[6] eq "on") { # we have determined that someone has turned an xtaccess off - $xtaccessdel = "1"; - } - - # Darren Critchley - Portfw enabled, then enable xtaccess for all associated xtaccess records - if ($cgiparams{'ENABLED'} eq "on" && $cgiparams{'KEY2'} eq "0" && $cgiparams{'ENABLED'} ne $temp[6]) - { - $enable_all = "1"; - } else { - $enable_all = "0"; - } - # Darren Critchley - Portfw disabled, then disable xtaccess for all associated xtaccess records - if ($cgiparams{'ENABLED'} eq "off" && $cgiparams{'KEY2'} eq "0") - { - $disable_all = "1"; - } else { - $disable_all = "0"; - } - - # Darren Critchley - if we are enabling an xtaccess, only allow if the associated Portfw is enabled - if ($cgiparams{'KEY1'} eq $lastpfw && $cgiparams{'KEY2'} ne "0") { # identifies an xtaccess record in the group - if ($cgiparams{'ENABLED'} eq "on" && $cgiparams{'ENABLED'} ne $temp[6] ){ # a change has been made - if ($disabledpfw eq "off") - { - $errormessage = "$Lang::tr{'cant enable xtaccess'}"; - $cgiparams{'ACTION'} = $Lang::tr{'edit'}; - } - } - } - - # Darren Critchley - rule to stop someone from entering ALL into a external access rule, - # the portfw is the only place that ALL can be specified - if ($cgiparams{'KEY2'} ne "0" && $cgiparams{'ORIG_IP'} eq "0.0.0.0/0") { - $errormessage = "$Lang::tr{'xtaccess all error'}"; - $cgiparams{'ACTION'} = $Lang::tr{'edit'}; - } - - # Darren Critchley - Duplicate or overlapping Port range check - if ($temp[1] eq "0" && - $cgiparams{'KEY1'} ne $temp[0] && - $cgiparams{'PROTOCOL'} eq $temp[2] && - $cgiparams{'SRC_IP'} eq $temp[7] && - $errormessage eq '') - { - &portchecks($temp[3], $temp[5]); - } # end port testing - - } - - # Darren Critchley - if an xtaccess was disabled, now we need to check to see if it was the only xtaccess - if($xtaccessdel eq "1") { - my $xctr = 0; - foreach my $line (@current) - { - my @temp = split(/,/,$line); - if($temp[0] eq $cgiparams{'KEY1'} && - $temp[6] eq "on") { # we only want to count the enabled xtaccess's - $xctr++; - } - } - if ($xctr == 2){ - $disable_all = "1"; - } - } - -UPD_ERROR: - unless ($errormessage) - { - # Darren Critchley - we only want to store ranges with Colons - $cgiparams{'SRC_PORT'} =~ tr/-/:/; - $cgiparams{'DEST_PORT'} =~ tr/-/:/; - - open(FILE, ">$filename") or die 'Unable to open config file.'; - flock FILE, 2; - foreach my $line (@current) { - chomp($line); - my @temp = split(/,/,$line); - if ($cgiparams{'KEY1'} eq $temp[0] && $cgiparams{'KEY2'} eq $temp[1]) { - print FILE "$cgiparams{'KEY1'},$cgiparams{'KEY2'},$cgiparams{'PROTOCOL'},$cgiparams{'SRC_PORT'},$cgiparams{'DEST_IP'},$cgiparams{'DEST_PORT'},$cgiparams{'ENABLED'},$cgiparams{'SRC_IP'},$cgiparams{'ORIG_IP'},$cgiparams{'REMARK'}\n"; - } else { - # Darren Critchley - If it is a port forward record, then chances are good that a change was made to - # Destination Ip or Port, and we need to update all the associated external access records - if ($cgiparams{'KEY2'} eq "0" && $cgiparams{'KEY1'} eq $temp[0]) { - $temp[4] = $cgiparams{'DEST_IP'}; - $temp[5] = $cgiparams{'DEST_PORT'}; - $temp[2] = $cgiparams{'PROTOCOL'}; - } - - # Darren Critchley - If a Portfw has been disabled, then set all associated xtaccess as disabled - if ( $disable_all eq "1" && $cgiparams{'KEY1'} eq $temp[0] ) { - $temp[6] = 'off'; - } - if ( $enable_all eq "1" && $cgiparams{'KEY1'} eq $temp[0] ) { - $temp[6] = 'on'; - } - # Darren Critchley - Deal with the override to allow ALL - if ( $cgiparams{'OVERRIDE'} eq "on" && $temp[1] ne "0" && $cgiparams{'KEY1'} eq $temp[0] ) { - $temp[6] = 'off'; - } - print FILE "$temp[0],$temp[1],$temp[2],$temp[3],$temp[4],$temp[5],$temp[6],$temp[7],$temp[8],$temp[9]\n"; - } - } - close(FILE); - undef %cgiparams; - &General::log($Lang::tr{'forwarding rule updated'}); - system('/usr/local/bin/setportfw'); - } - if ($errormessage) { - $cgiparams{'ACTION'} = $Lang::tr{'edit'}; - } -} - -# Darren Critchley - Allows rules to be enabled and disabled -if ($cgiparams{'ACTION'} eq $Lang::tr{'toggle enable disable'}) -{ - open(FILE, $filename) or die 'Unable to open config file.'; - my @current = <FILE>; - close(FILE); - my $disabledpfw = '0'; - my $lastpfw = ''; - my $xtaccessdel = '0'; - - foreach my $line (@current) - { - my @temp = split(/,/,$line); - if ( $temp[1] eq "0" ) { # keep track of the last portfw and if it is enabled - $disabledpfw = $temp[6]; - $lastpfw = $temp[0]; - } - # Darren Critchley - Flag when a user disables an xtaccess - if ($cgiparams{'KEY1'} eq $temp[0] && - $cgiparams{'KEY2'} eq $temp[1] && - $cgiparams{'KEY2'} ne "0" && # if KEY2 is 0 then it is a portfw - $cgiparams{'ENABLED'} eq "off" && - $temp[6] eq "on") { # we have determined that someone has turned an xtaccess off - $xtaccessdel = "1"; - } - - # Darren Critchley - Portfw enabled, then enable xtaccess for all associated xtaccess records - if ($cgiparams{'ENABLED'} eq "on" && $cgiparams{'KEY2'} eq "0" && $cgiparams{'ENABLED'} ne $temp[6]) - { - $enable_all = "1"; - } else { - $enable_all = "0"; - } - # Darren Critchley - Portfw disabled, then disable xtaccess for all associated xtaccess records - if ($cgiparams{'ENABLED'} eq "off" && $cgiparams{'KEY2'} eq "0") - { - $disable_all = "1"; - } else { - $disable_all = "0"; - } - - # Darren Critchley - if we are enabling an xtaccess, only allow if the associated Portfw is enabled - if ($cgiparams{'KEY1'} eq $lastpfw && $cgiparams{'KEY2'} ne "0") { # identifies an xtaccess record in the group - if ($cgiparams{'ENABLED'} eq "on" && $cgiparams{'ENABLED'} ne $temp[6] ){ # a change has been made - if ($disabledpfw eq "off") - { - $errormessage = "$Lang::tr{'cant enable xtaccess'}"; - goto TOGGLEEXIT; - } - } - } - } - - # Darren Critchley - if an xtaccess was disabled, now we need to check to see if it was the only xtaccess - if($xtaccessdel eq "1") { - my $xctr = 0; - foreach my $line (@current) - { - my @temp = split(/,/,$line); - if($temp[0] eq $cgiparams{'KEY1'} && - $temp[6] eq "on") { # we only want to count the enabled xtaccess's - $xctr++; - } - } - if ($xctr == 2){ - $disable_all = "1"; - } - } - - open(FILE, ">$filename") or die 'Unable to open config file.'; - flock FILE, 2; - foreach my $line (@current) { - chomp($line); - my @temp = split(/,/,$line); - if ($cgiparams{'KEY1'} eq $temp[0] && $cgiparams{'KEY2'} eq $temp[1]) { - print FILE "$cgiparams{'KEY1'},$cgiparams{'KEY2'},$temp[2],$temp[3],$temp[4],$temp[5],$cgiparams{'ENABLED'},$temp[7],$temp[8],$temp[9]\n"; - } else { - # Darren Critchley - If a Portfw has been disabled, then set all associated xtaccess as disabled - if ( $disable_all eq "1" && $cgiparams{'KEY1'} eq $temp[0] ) { - $temp[6] = 'off'; - } - if ( $enable_all eq "1" && $cgiparams{'KEY1'} eq $temp[0] ) { - $temp[6] = 'on'; - } - print FILE "$temp[0],$temp[1],$temp[2],$temp[3],$temp[4],$temp[5],$temp[6],$temp[7],$temp[8],$temp[9]\n"; - } - } - close(FILE); - &General::log($Lang::tr{'forwarding rule updated'}); - system('/usr/local/bin/setportfw'); -TOGGLEEXIT: - undef %cgiparams; -} - - -# Darren Critchley - broke out Edit routine from the delete routine - Edit routine now just puts values in fields -if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'}) -{ - open(FILE, "$filename") or die 'Unable to open config file.'; - my @current = <FILE>; - close(FILE); - - unless ($errormessage) - { - foreach my $line (@current) - { - chomp($line); - my @temp = split(/,/,$line); - if ($cgiparams{'KEY1'} eq $temp[0] && $cgiparams{'KEY2'} eq $temp[1] ) { - $cgiparams{'PROTOCOL'} = $temp[2]; - $cgiparams{'SRC_PORT'} = $temp[3]; - $cgiparams{'DEST_IP'} = $temp[4]; - $cgiparams{'DEST_PORT'} = $temp[5]; - $cgiparams{'ENABLED'} = $temp[6]; - $cgiparams{'SRC_IP'} = $temp[7]; - $cgiparams{'ORIG_IP'} = $temp[8]; - $cgiparams{'REMARK'} = $temp[9]; - } - - } - } -} - -# Darren Critchley - broke out Remove routine as the logic is getting too complex to be combined with the Edit -if ($cgiparams{'ACTION'} eq $Lang::tr{'remove'}) -{ - open(FILE, "$filename") or die 'Unable to open config file.'; - my @current = <FILE>; - close(FILE); - - # If the record being deleted is an xtaccess record, and it is the only one for a portfw record - # then we need to adjust the portfw record to be open to ALL ip addressess or an error will occur - # in setportfw.c - my $fixportfw = '0'; - if ($cgiparams{'KEY2'} ne "0") { - my $counter = 0; - foreach my $line (@current) - { - chomp($line); - my @temp = split(/,/,$line); - if ($temp[0] eq $cgiparams{'KEY1'}) { - $counter++; - } - } - if ($counter eq 2) { - $fixportfw = '1'; - } - } - - unless ($errormessage) - { - open(FILE, ">$filename") or die 'Unable to open config file.'; - flock FILE, 2; - my $linedeleted = 0; - foreach my $line (@current) - { - chomp($line); - my @temp = split(/,/,$line); - - if ($cgiparams{'KEY1'} eq $temp[0] && $cgiparams{'KEY2'} eq $temp[1] || - $cgiparams{'KEY1'} eq $temp[0] && $cgiparams{'KEY2'} eq "0" ) - { - $linedeleted = 1; - } else { - if ($temp[0] eq $cgiparams{'KEY1'} && $temp[1] eq "0" && $fixportfw eq "1") { - $temp[8] = '0.0.0.0/0'; - } - print FILE "$temp[0],$temp[1],$temp[2],$temp[3],$temp[4],$temp[5],$temp[6],$temp[7],$temp[8],$temp[9]\n"; -# print FILE "$line\n"; - } - } - close(FILE); - if ($linedeleted == 1) { - &General::log($Lang::tr{'forwarding rule removed'}); - undef %cgiparams; - } - system('/usr/local/bin/setportfw'); - } -} - -# Darren Critchley - Added routine to allow external access rules to be added -if ($cgiparams{'ACTION'} eq $Lang::tr{'add xtaccess'}) -{ - open(FILE, $filename) or die 'Unable to open config file.'; - my @current = <FILE>; - close(FILE); - my $key = 0; # used for finding last sequence number used - foreach my $line (@current) - { - my @temp = split(/,/,$line); - if ($temp[0] eq $cgiparams{'KEY1'}) { - $key = $temp[1] - } - if ($cgiparams{'KEY1'} eq $temp[0] && $cgiparams{'KEY2'} eq $temp[1] ) { - $cgiparams{'PROTOCOL'} = $temp[2]; - $cgiparams{'SRC_PORT'} = $temp[3]; - $cgiparams{'DEST_IP'} = $temp[4]; - $cgiparams{'DEST_PORT'} = $temp[5]; - $cgiparams{'ENABLED'} = $temp[6]; - $cgiparams{'SRC_IP'} = $temp[7]; - $cgiparams{'ORIG_IP'} = ''; - $cgiparams{'REMARK'} = $temp[9]; - } - } - $key++; - $cgiparams{'KEY2'} = $key; - # Until the ADD button is hit, there needs to be no change to portfw rules -} - -if ($cgiparams{'ACTION'} eq $Lang::tr{'reset'}) -{ - undef %cgiparams; -} - -if ($cgiparams{'ACTION'} eq '') -{ - $cgiparams{'PROTOCOL'} = 'tcp'; - $cgiparams{'ENABLED'} = 'on'; - $cgiparams{'SRC_IP'} = '0.0.0.0'; -} - -$selected{'PROTOCOL'}{'udp'} = ''; -$selected{'PROTOCOL'}{'tcp'} = ''; -$selected{'PROTOCOL'}{'gre'} = ''; -$selected{'PROTOCOL'}{$cgiparams{'PROTOCOL'}} = "selected='selected'"; - -$selected{'SRC_IP'}{$cgiparams{'SRC_IP'}} = "selected='selected'"; - -$checked{'ENABLED'}{'off'} = ''; -$checked{'ENABLED'}{'on'} = ''; -$checked{'ENABLED'}{$cgiparams{'ENABLED'}} = "checked='checked'"; - -&Header::openpage($Lang::tr{'port forwarding configuration'}, 1, ''); - -&Header::openbigbox('100%', 'left', '', $errormessage); - -if ($errormessage) { - &Header::openbox('100%', 'left', $Lang::tr{'error messages'}); - print "<class name='base'><font color='${Header::colourred}'>$errormessage\n</font>"; - print " </class>\n"; - &Header::closebox(); -} - -print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>\n"; - -if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'}){ - &Header::openbox('100%', 'left', $Lang::tr{'edit a rule'}); -} else { - &Header::openbox('100%', 'left', $Lang::tr{'add a new rule'}); -} - -if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'} && $cgiparams{'KEY2'} ne "0" || $cgiparams{'ACTION'} eq $Lang::tr{'add xtaccess'}){ -# if it is not a port forward record, don't validate as the fields are disabled - my $PROT = "\U$cgiparams{'PROTOCOL'}\E"; - # Darren Critchley - Format the source and destination ports - my $dstprt = $cgiparams{'DEST_PORT'}; - $dstprt =~ s/-/ - /; - $dstprt =~ s/:/ - /; - -print <<END -<table> - <tr> - <td class='base'>$Lang::tr{'protocol'}: <b>$PROT</b></td> - <td width='20'> </td> - <td class='base' align='right'>$Lang::tr{'destination ip'}: </td> - <td><b>$cgiparams{'DEST_IP'}</b></td> - <td width='20'> </td> - <td class='base' align='right'>$Lang::tr{'destination port'}: </td> - <td><b>$dstprt</b></td> - </tr> -</table> - -<input type='hidden' name='PROTOCOL' value='$cgiparams{'PROTOCOL'}' /> -<input type='hidden' name='SRC_IP' value='$cgiparams{'SRC_IP'}' /> -<input type='hidden' name='SRC_PORT' value='$cgiparams{'SRC_PORT'}' /> -<input type='hidden' name='DEST_IP' value='$cgiparams{'DEST_IP'}' /> -<input type='hidden' name='DEST_PORT' value='$cgiparams{'DEST_PORT'}' /> -END -; -} else { -print <<END -<table width='100%'> - <tr> - <td width='10%'>$Lang::tr{'protocol'}: </td> - <td width='15%'> - <select name='PROTOCOL'> - <option value='tcp' $selected{'PROTOCOL'}{'tcp'}>TCP</option> - <option value='udp' $selected{'PROTOCOL'}{'udp'}>UDP</option> - <option value='gre' $selected{'PROTOCOL'}{'gre'}>GRE</option> - </select> - </td> - <td class='base' width='20%'><font color='${Header::colourred}'>$Lang::tr{'alias ip'}:</font></td> - <td> - <select name='SRC_IP'> - <option value='0.0.0.0' $selected{'SRC_IP'}{'0.0.0.0'}>DEFAULT IP</option> -END -; -open(ALIASES, "$aliasfile") or die 'Unable to open aliases file.'; -while (<ALIASES>) -{ - chomp($_); - my @temp = split(/,/,$_); - if ($temp[1] eq 'on') { - print "<option value='$temp[0]' $selected{'SRC_IP'}{$temp[0]}>$temp[0]"; - if (defined $temp[2] and ($temp[2] ne '')) { print " ($temp[2])"; } - print "</option>\n"; - } -} -close(ALIASES); -print <<END - </select> - </td> - <td class='base' width='20%'><font color='${Header::colourred}'>$Lang::tr{'source port'}:</font></td> - <td width='10%'><input type='text' name='SRC_PORT' value='$cgiparams{'SRC_PORT'}' size='8' /></td> - </tr> - <tr> - <td class='base'> </td> - <td> </td> - <td class='base'>$Lang::tr{'destination ip'}:</td> - <td><input type='text' name='DEST_IP' value='$cgiparams{'DEST_IP'}' size='15' /></td> - <td class='base'>$Lang::tr{'destination port'}:</td> - <td><input type='text' name='DEST_PORT' value='$cgiparams{'DEST_PORT'}' size='8' /></td> - </tr> -</table> -END -; -} - -print <<END -<table> - <tr> - <td class='base'>$Lang::tr{'remark title'} <img src='/blob.gif' alt='*' /> </td> - <td><input type='text' name='REMARK' value='$cgiparams{'REMARK'}' size='55' maxlength='50' /></td> -END -; -unless ($cgiparams{'ACTION'} eq $Lang::tr{'add xtaccess'} && $cgiparams{'ENABLED'} eq "off") { - print "<td width='20'> </td>"; - print "<td>$Lang::tr{'enabled'} </td><td><input type='checkbox' name='ENABLED' $checked{'ENABLED'}{'on'} /></td>\n"; -} -print <<END - </tr> -</table> -END -; - -if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'} && $cgiparams{'KEY2'} eq "0" && ($cgiparams{'ORIG_IP'} eq "0" || $cgiparams{'ORIG_IP'} eq "0.0.0.0/0")){ -# if it is a port forward rule with a 0 in the orig_port field, this means there are xtaccess records, and we -# don't want to allow a person to change the orig_ip field as it will mess other logic up - print "<input type='hidden' name='ORIG_IP' value='$cgiparams{'ORIG_IP'}' />\n"; -} else { -print <<END -<table> - <tr> - <td class='base'><font class='boldbase' color='${Header::colourred}'>$Lang::tr{'source network'}</font> <img src='/blob.gif' alt='*' /> </td> - <td><input type='text' name='ORIG_IP' value='$cgiparams{'ORIG_IP'}' size='15' /></td> - </tr> -</table> -END -; -} - -print <<END -<table width='100%'> - <hr /> - <tr> - <td class='base' width='25%'><img src='/blob.gif' alt ='*' align='top' /> <font class='base'>$Lang::tr{'this field may be blank'}</font></td> -END -; - - -if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'}){ - if($cgiparams{'KEY2'} eq "0"){ - print "<td width='35%' align='right'>$Lang::tr{'open to all'}: </td><td width='5%'><input type='checkbox' name='OVERRIDE' $checked{'OVERRIDE'}{'on'} /></td>\n"; - } else { - print "<td width='40%'> </td>\n"; - } - print "<td align='center' width='15%'><input type='submit' name='ACTION' value='$Lang::tr{'update'}' />"; - print "<input type='hidden' name='KEY1' value='$cgiparams{'KEY1'}' />"; - print "<input type='hidden' name='KEY2' value='$cgiparams{'KEY2'}' /></TD>"; - print "<td align='center' width='15%'><input type='submit' name='ACTION' value='$Lang::tr{'reset'}' /></td>"; - # on an edit and an xtaccess add, for some reason the "Reset" button stops working, so I make it a submit button -} else { - print "<td width='30%'> </td>\n"; - print "<td align='center' width='15%'><input type='submit' name='ACTION' value='$Lang::tr{'add'}' /></td>"; - if ($cgiparams{'ACTION'} eq $Lang::tr{'add xtaccess'}) { - print "<td align='center' width='15%'><input type='hidden' name='KEY1' value='$cgiparams{'KEY1'}' />"; - print "<input type='hidden' name='KEY2' value='$cgiparams{'KEY2'}' />"; - print "<input type='submit' name='ACTION' value='$Lang::tr{'reset'}' /></td>"; - } elsif ($errormessage ne '') { - print "<td align='center' width='15%'><input type='submit' name='ACTION' value='$Lang::tr{'reset'}' /></td>"; - } else { - print "<td align='center' width='15%'><input type='reset' name='ACTION' value='$Lang::tr{'reset'}' /></td>"; - } -} -print <<END - <td width='5%' align='right'> </td> - </tr> -</table> -END -; -&Header::closebox(); - -print "</form>\n"; - -&Header::openbox('100%', 'left', $Lang::tr{'current rules'}); -print <<END -<table width='100%'> -<tr> -<td width='7%' class='boldbase' align='center'><b>$Lang::tr{'proto'}</b></td> -<td width='31%' class='boldbase' align='center'><b>$Lang::tr{'source'}</b></td> -<td width='2%' class='boldbase' align='center'> </td> -<td width='31%' class='boldbase' align='center'><b>$Lang::tr{'destination'}</b></td> -<td width='24%' class='boldbase' align='center'><b>$Lang::tr{'remark'}</b></td> -<td width='4%' class='boldbase' colspan='4' align='center'><b>$Lang::tr{'action'}</b></td> -</tr> -END -; - -my $id = 0; -my $xtaccesscolor = '#F6F4F4'; -open(RULES, "$filename") or die 'Unable to open config file.'; -while (<RULES>) -{ - my $protocol = ''; - my $gif = ''; - my $gdesc = ''; - my $toggle = ''; - chomp($_); - my @temp = split(/,/,$_); - $temp[9] ='' unless defined $temp[9];# Glles ESpinasse : suppress warning on page init - if ($temp[2] eq 'udp') { - $protocol = 'UDP'; } - elsif ($temp[2] eq 'gre') { - $protocol = 'GRE' } - else { - $protocol = 'TCP' } - # Change bgcolor when a new portfw rule is added - if ($temp[1] eq "0"){ - $id++; - } - # Darren Critchley highlight the row we are editing - if ( $cgiparams{'ACTION'} eq $Lang::tr{'edit'} && $cgiparams{'KEY1'} eq $temp[0] && $cgiparams{'KEY2'} eq $temp[1] ) { - print "<tr bgcolor='${Header::colouryellow}'>\n"; - } else { - if ($id % 2) { - print "<tr bgcolor='$color{'color22'}'>\n"; - } - else { - print "<tr bgcolor='$color{'color20'}'>\n"; - } - } - - if ($temp[6] eq 'on') { $gif = 'on.gif'; $toggle='off'; $gdesc=$Lang::tr{'click to disable'};} - else { $gif = 'off.gif'; $toggle='on'; $gdesc=$Lang::tr{'click to enable'}; } - - # Darren Critchley - this code no longer works - should we remove? - # catch for 'old-style' rules file - assume default ip if - # none exists - if (!&General::validip($temp[7]) || $temp[7] eq '0.0.0.0') { - $temp[7] = 'DEFAULT IP'; } - if ($temp[1] eq '0') { # Port forwarding entry - - # Darren Critchley - Format the source and destintation ports - my $srcprt = $temp[3]; - $srcprt =~ s/-/ - /; - $srcprt =~ s/:/ - /; - my $dstprt = $temp[5]; - $dstprt =~ s/-/ - /; - $dstprt =~ s/:/ - /; - - # Darren Critchley - Get Port Service Name if we can - code borrowed from firewalllog.dat - $_=$temp[3]; - if (/^\d+$/) { - my $servi = uc(getservbyport($temp[3], lc($temp[2]))); - if ($servi ne '' && $temp[3] < 1024) { - $srcprt = "$srcprt($servi)"; } - } - $_=$temp[5]; - if (/^\d+$/) { - my $servi = uc(getservbyport($temp[5], lc($temp[2]))); - if ($servi ne '' && $temp[5] < 1024) { - $dstprt = "$dstprt($servi)"; } - } - - # Darren Critchley - If the line is too long, wrap the port numbers - my $srcaddr = "$temp[7] : $srcprt"; - if (length($srcaddr) > 22) { - $srcaddr = "$temp[7] :<br /> $srcprt"; - } - my $dstaddr = "$temp[4] : $dstprt"; - if (length($dstaddr) > 26) { - $dstaddr = "$temp[4] :<br /> $dstprt"; - } -print <<END -<td align='center'>$protocol</td> -<td align='center'>$srcaddr</td> -<td align='center'><img src='/images/forward.gif' alt='=>' /></td> -<td align='center'>$dstaddr</td> -<td align='left'> $temp[9]</td> -<td align='center'> - <form method='post' name='frm$temp[0]c' action='$ENV{'SCRIPT_NAME'}'> - <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' alt='$gdesc' title='$gdesc' /> - <input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' /> - <input type='hidden' name='KEY1' value='$temp[0]' /> - <input type='hidden' name='KEY2' value='$temp[1]' /> - <input type='hidden' name='ENABLED' value='$toggle' /> - </form> -</td> - -<td align='center'> - <form method='post' name='frm$temp[0]' action='$ENV{'SCRIPT_NAME'}'> - <input type='hidden' name='ACTION' value='$Lang::tr{'add xtaccess'}' /> - <input type='image' name='$Lang::tr{'add xtaccess'}' src='/images/add.gif' alt='$Lang::tr{'add xtaccess'}' title='$Lang::tr{'add xtaccess'}' /> - <input type='hidden' name='KEY1' value='$temp[0]' /> - <input type='hidden' name='KEY2' value='$temp[1]' /> - </form> -</td> - -<td align='center'> - <form method='post' name='frm$temp[0]' action='$ENV{'SCRIPT_NAME'}'> - <input type='hidden' name='ACTION' value='$Lang::tr{'edit'}' /> - <input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' /> - <input type='hidden' name='KEY1' value='$temp[0]' /> - <input type='hidden' name='KEY2' value='$temp[1]' /> - </form> -</td> - -<td align='center'> - <form method='post' name='frm$temp[0]b' action='$ENV{'SCRIPT_NAME'}'> - <input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' /> - <input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' /> - <input type='hidden' name='KEY1' value='$temp[0]' /> - <input type='hidden' name='KEY2' value='$temp[1]' /> - </form> -</td> - -</tr> -END - ; - } else { # external access entry -print <<END -<td align='center'> </td> - -<td align='left' colspan='4'> <font color='${Header::colourred}'>$Lang::tr{'access allowed'}</font> $temp[8] ($temp[9])</td> - -<td align='center'> - <form method='post' name='frm$temp[0]$temp[1]t' action='$ENV{'SCRIPT_NAME'}'> - <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' alt='$Lang::tr{'toggle enable disable'}' title='$Lang::tr{'toggle enable disable'}' /> - <input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' /> - <input type='hidden' name='KEY1' value='$temp[0]' /> - <input type='hidden' name='KEY2' value='$temp[1]' /> - <input type='hidden' name='ENABLED' value='$toggle' /> - </form> -</td> - -<td align='center'> </td> - -<td align='center'> - <form method='post' name='frm$temp[0]$temp[1]' action='$ENV{'SCRIPT_NAME'}'> - <input type='hidden' name='ACTION' value='$Lang::tr{'edit'}' /> - <input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' /> - <input type='hidden' name='KEY1' value='$temp[0]' /> - <input type='hidden' name='KEY2' value='$temp[1]' /> - </form> -</td> - -<td align='center'> - <form method='post' name='frm$temp[0]b$temp[1]b' action='$ENV{'SCRIPT_NAME'}'> - <input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' /> - <input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' /> - <input type='hidden' name='KEY1' value='$temp[0]' /> - <input type='hidden' name='KEY2' value='$temp[1]' /> - </form> -</td> - -</tr> -END - ; - } -} - -close(RULES); - -print "</table>"; - -# If the fixed lease file contains entries, print Key to action icons -if ( ! -z "$filename") { -print <<END -<table> -<tr> - <td class='boldbase'> <b>$Lang::tr{'legend'}: </b></td> - <td><img src='/images/on.gif' alt='$Lang::tr{'click to disable'}' /></td> - <td class='base'>$Lang::tr{'click to disable'}</td> - <td> </td> - <td><img src='/images/off.gif' alt='$Lang::tr{'click to enable'}' /></td> - <td class='base'>$Lang::tr{'click to enable'}</td> - <td> </td> - <td><img src='/images/add.gif' alt='$Lang::tr{'add xtaccess'}' /></td> - <td class='base'>$Lang::tr{'add xtaccess'}</td> - <td> </td> - <td><img src='/images/edit.gif' alt='$Lang::tr{'edit'}' /></td> - <td class='base'>$Lang::tr{'edit'}</td> - <td> </td> - <td><img src='/images/delete.gif' alt='$Lang::tr{'remove'}' /></td> - <td class='base'>$Lang::tr{'remove'}</td> -</tr> -</table> -END -; -} - -&Header::closebox(); - -&Header::closebigbox(); - -&Header::closepage(); - -# Validate Field Entries -sub validateparams -{ - # Darren Critchley - Get rid of dashes in port ranges - $cgiparams{'DEST_PORT'}=~ tr/-/:/; - $cgiparams{'SRC_PORT'}=~ tr/-/:/; - - # Darren Critchley - code to substitue wildcards - if ($cgiparams{'SRC_PORT'} eq "*") { - $cgiparams{'SRC_PORT'} = "1:65535"; - } - if ($cgiparams{'SRC_PORT'} =~ /^(\D):(\d+)$/) { - $cgiparams{'SRC_PORT'} = "1:$2"; - } - if ($cgiparams{'SRC_PORT'} =~ /^(\d+):(\D)$/) { - $cgiparams{'SRC_PORT'} = "$1:65535"; - } - if ($cgiparams{'DEST_PORT'} eq "*") { - $cgiparams{'DEST_PORT'} = "1:65535"; - } - if ($cgiparams{'DEST_PORT'} =~ /^(\D):(\d+)$/) { - $cgiparams{'DEST_PORT'} = "1:$2"; - } - if ($cgiparams{'DEST_PORT'} =~ /^(\d+):(\D)$/) { - $cgiparams{'DEST_PORT'} = "$1:65535"; - } - - # Darren Critchley - Add code for GRE protocol - we want to ignore ports, but we need a place holder - if ($cgiparams{'PROTOCOL'} eq 'gre') { - $cgiparams{'SRC_PORT'} = "GRE"; - $cgiparams{'DEST_PORT'} = "GRE"; - } - - unless($cgiparams{'PROTOCOL'} =~ /^(tcp|udp|gre)$/) { $errormessage = $Lang::tr{'invalid input'}; } - # Darren Critchley - Changed how the error routine works a bit - for the validportrange check, we need to - # pass in src or dest to determine which side we are working with. - # the routine returns the complete error or '' - if ($cgiparams{'PROTOCOL'} ne 'gre') { - $errormessage = &General::validportrange($cgiparams{'SRC_PORT'}, 'src'); - } - if( ($cgiparams{'ORIG_IP'} ne "0" && $cgiparams{'KEY2'} ne "0") || $cgiparams{'ACTION'} eq $Lang::tr{'add'}) { - # if it is a port forward record with 0 in orig_ip then ignore checking this field - unless(&General::validipormask($cgiparams{'ORIG_IP'})) - { - if ($cgiparams{'ORIG_IP'} ne '') { - $errormessage = $Lang::tr{'source ip bad'}; } - else { - $cgiparams{'ORIG_IP'} = '0.0.0.0/0'; } - } - } - # Darren Critchey - New rule that sets destination same as source if dest_port is blank. - if ($cgiparams{'DEST_PORT'} eq ''){ - $cgiparams{'DEST_PORT'} = $cgiparams{'SRC_PORT'}; - } - # Darren Critchey - Just in case error message is already set, this routine would wipe it out if - # we don't do a test here - if ($cgiparams{'PROTOCOL'} ne 'gre') { - unless($errormessage) {$errormessage = &General::validportrange($cgiparams{'DEST_PORT'}, 'dest');} - } - unless(&General::validip($cgiparams{'DEST_IP'})) { $errormessage = $Lang::tr{'destination ip bad'}; } - return; -} - -# Darren Critchley - we want to make sure that a port range does not overlap another port range -sub checkportoverlap -{ - my $portrange1 = $_[0]; # New port range - my $portrange2 = $_[1]; # existing port range - my @tempr1 = split(/:/,$portrange1); - my @tempr2 = split(/:/,$portrange2); - - unless (&checkportinc($tempr1[0], $portrange2)){ return 0;} - unless (&checkportinc($tempr1[1], $portrange2)){ return 0;} - - unless (&checkportinc($tempr2[0], $portrange1)){ return 0;} - unless (&checkportinc($tempr2[1], $portrange1)){ return 0;} - - return 1; # Everything checks out! -} - -# Darren Critchley - we want to make sure that a port entry is not within an already existing range -sub checkportinc -{ - my $port1 = $_[0]; # Port - my $portrange2 = $_[1]; # Port range - my @tempr1 = split(/:/,$portrange2); - - if ($port1 < $tempr1[0] || $port1 > $tempr1[1]) { - return 1; - } else { - return 0; - } -} - -# Darren Critchley - certain ports are reserved for Ipcop -# TCP 67,68,81,222,445 -# UDP 67,68 -# Params passed in -> port, rangeyn, protocol -sub disallowreserved -{ - # port 67 and 68 same for tcp and udp, don't bother putting in an array - my $msg = ""; - my @tcp_reserved = (); - my $prt = $_[0]; # the port or range - my $ryn = $_[1]; # tells us whether or not it is a port range - my $prot = $_[2]; # protocol - my $srcdst = $_[3]; # source or destination - - if ($ryn) { # disect port range - if ($srcdst eq "src") { - $msg = "$Lang::tr{'rsvd src port overlap'}"; - } else { - $msg = "$Lang::tr{'rsvd dst port overlap'}"; - } - my @tmprng = split(/:/,$prt); - unless (67 < $tmprng[0] || 67 > $tmprng[1]) { $errormessage="$msg 67"; return; } - unless (68 < $tmprng[0] || 68 > $tmprng[1]) { $errormessage="$msg 68"; return; } - if ($prot eq "tcp") { - foreach my $prange (@tcp_reserved) { - unless ($prange < $tmprng[0] || $prange > $tmprng[1]) { $errormessage="$msg $prange"; return; } - } - } - } else { - if ($srcdst eq "src") { - $msg = "$Lang::tr{'reserved src port'}"; - } else { - $msg = "$Lang::tr{'reserved dst port'}"; - } - if ($prt == 67) { $errormessage="$msg 67"; return; } - if ($prt == 68) { $errormessage="$msg 68"; return; } - if ($prot eq "tcp") { - foreach my $prange (@tcp_reserved) { - if ($prange == $prt) { $errormessage="$msg $prange"; return; } - } - } - } - return; -} - -# Darren Critchley - Attempt to combine Add/Update validation as they are almost the same -sub valaddupdate -{ - if ($cgiparams{'KEY2'} eq "0"){ # if it is a port forward rule, then validate properly - &validateparams(); - } else { # it is an xtaccess rule, just check for a valid ip - unless(&General::validipormask($cgiparams{'ORIG_IP'})) - { - if ($cgiparams{'ORIG_IP'} ne '') { - $errormessage = $Lang::tr{'source ip bad'}; } - else { # this rule stops someone from adding an ALL xtaccess record - $errormessage = $Lang::tr{'xtaccess all error'}; - $cgiparams{'ACTION'} = $Lang::tr{'add xtaccess'}; - } - } - # Darren Critchley - check for 0.0.0.0/0 - not allowed for xtaccess - if ($cgiparams{'ORIG_IP'} eq "0.0.0.0/0" || $cgiparams{'ORIG_IP'} eq "0.0.0.0") { - $errormessage = $Lang::tr{'xtaccess all error'}; - $cgiparams{'ACTION'} = $Lang::tr{'add xtaccess'}; - } - } - # Darren Critchley - Remove commas from remarks - $cgiparams{'REMARK'} = &Header::cleanhtml($cgiparams{'REMARK'}); - - # Darren Critchley - Check to see if we are working with port ranges - our ($prtrange1, $prtrange2); - $_ = $cgiparams{'SRC_PORT'}; - if ($cgiparams{'KEY2'} eq "0" && m/:/){ - $prtrange1 = 1; - } - if ($cgiparams{'SRC_IP'} eq '0.0.0.0') { # Dave Roberts - only check if using DEFAULT IP - if ($prtrange1 == 1){ # check for source ports reserved for Ipcop - &disallowreserved($cgiparams{'SRC_PORT'},1,$cgiparams{'PROTOCOL'},"src"); - if ($errormessage) { goto EXITSUB; } - } else { # check for source port reserved for Ipcop - &disallowreserved($cgiparams{'SRC_PORT'},0,$cgiparams{'PROTOCOL'},"src"); - if ($errormessage) { goto EXITSUB; } - } - } - - $_ = $cgiparams{'DEST_PORT'}; - if ($cgiparams{'KEY2'} eq "0" && m/:/){ - $prtrange2 = 1; - } - if ($cgiparams{'SRC_IP'} eq '0.0.0.0') { # Dave Roberts - only check if using DEFAULT IP - if ($prtrange2 == 1){ # check for destination ports reserved for IPFire - &disallowreserved($cgiparams{'DEST_PORT'},1,$cgiparams{'PROTOCOL'},"dst"); - if ($errormessage) { goto EXITSUB; } - } else { # check for destination port reserved for IPFire - &disallowreserved($cgiparams{'DEST_PORT'},0,$cgiparams{'PROTOCOL'},"dst"); - if ($errormessage) { goto EXITSUB; } - } - } - - -EXITSUB: - return; -} - -# Darren Critchley - Duplicate or overlapping Port range check -sub portchecks -{ - $_ = $_[0]; - our ($prtrange1, $prtrange2); - if (m/:/ && $prtrange1 == 1) { # comparing two port ranges - unless (&checkportoverlap($cgiparams{'SRC_PORT'},$_[0])) { - $errormessage = "$Lang::tr{'source port overlaps'} $_[0]"; - } - } - if (m/:/ && $prtrange1 == 0 && $errormessage eq '') { # compare one port to a range - unless (&checkportinc($cgiparams{'SRC_PORT'}, $_[0])) { - $errormessage = "$Lang::tr{'srcprt within existing'} $_[0]"; - } - } - if (! m/:/ && $prtrange1 == 1 && $errormessage eq '') { # compare one port to a range - unless (&checkportinc($_[0], $cgiparams{'SRC_PORT'})) { - $errormessage = "$Lang::tr{'srcprt range overlaps'} $_[0]"; - } - } - - if ($errormessage eq ''){ - $_ = $_[1]; - if (m/:/ && $prtrange2 == 1) { # if true then there is a port range - unless (&checkportoverlap($cgiparams{'DEST_PORT'},$_[1])) { - $errormessage = "$Lang::tr{'destination port overlaps'} $_[1]"; - } - } - if (m/:/ && $prtrange2 == 0 && $errormessage eq '') { # compare one port to a range - unless (&checkportinc($cgiparams{'DEST_PORT'}, $_[1])) { - $errormessage = "$Lang::tr{'dstprt within existing'} $_[1]"; - } - } - if (! m/:/ && $prtrange2 == 1 && $errormessage eq '') { # compare one port to a range - unless (&checkportinc($_[1], $cgiparams{'DEST_PORT'})) { - $errormessage = "$Lang::tr{'dstprt range overlaps'} $_[1]"; - } - } - } - return; -} diff --git a/html/cgi-bin/pppsetup.cgi b/html/cgi-bin/pppsetup.cgi index ca6892b..edec826 100644 --- a/html/cgi-bin/pppsetup.cgi +++ b/html/cgi-bin/pppsetup.cgi @@ -432,8 +432,8 @@ if ($pppsettings{'IPTV_VLAN'} eq '') { $pppsettings{'IPTV_VLAN'}='8'; } if ($netsettings{'RED_TYPE'} ne 'PPPOE') { $errormessage = $Lang::tr{'dialup red not ppp'}; &Header::openbox('100%', 'center', $Lang::tr{'error messages'}); - print "<CLASS name='base'>$errormessage\n"; - print " </CLASS>\n"; + print "<class name='base'>$errormessage\n"; + print " </class>\n"; &Header::closebox(); &Header::closebigbox();
@@ -443,8 +443,8 @@ if ($netsettings{'RED_TYPE'} ne 'PPPOE') {
if ($errormessage) { &Header::openbox('100%', 'center', $Lang::tr{'error messages'}); - print "<CLASS name='base'>$errormessage\n"; - print " </CLASS>\n"; + print "<class name='base'>$errormessage\n"; + print " </class>\n"; &Header::closebox(); }
@@ -530,7 +530,7 @@ END ; if ($pppsettings{'TYPE'} =~ /^(modem)$/) { print <<END - <td colspan='1' width='25%'><A HREF=modem.cgi>$Lang::tr{'modem configuration'}</A></td> + <td colspan='1' width='25%'><a href='modem.cgi'>$Lang::tr{'modem configuration'}</a></td> END ; } diff --git a/html/cgi-bin/proxy.cgi b/html/cgi-bin/proxy.cgi index acb4f97..c4cff47 100644 --- a/html/cgi-bin/proxy.cgi +++ b/html/cgi-bin/proxy.cgi @@ -1206,7 +1206,7 @@ print <<END <td colspan='4'><b>$Lang::tr{'advproxy destination ports'}</b></td> </tr> <tr> - <td width='25%' align=center></td> <td width='20%' align=center></td><td width='25%' align=center></td><td width='30%' align=center></td> + <td width='25%' align='center'></td> <td width='20%' align='center'></td><td width='25%' align='center'></td><td width='30%' align='center'></td> </tr> <tr> <td colspan='2' class='base'>$Lang::tr{'advproxy standard ports'}:</td> @@ -1678,8 +1678,8 @@ print <<END <td class='base'>$Lang::tr{'advproxy fake referer'}: <img src='/blob.gif' alt='*' /></td> </tr> <tr> - <td><input type='text' name='FAKE_USERAGENT' value='$proxysettings{'FAKE_USERAGENT'}' size='56' /></td> - <td><input type='text' name='FAKE_REFERER' value='$proxysettings{'FAKE_REFERER'}' size='56' /></td> + <td><input type='text' name='FAKE_USERAGENT' value='$proxysettings{'FAKE_USERAGENT'}' size='40%' /></td> + <td><input type='text' name='FAKE_REFERER' value='$proxysettings{'FAKE_REFERER'}' size='40%' /></td> </tr> </table> <hr size='1'> @@ -2236,7 +2236,7 @@ print <<END <td width='25%'><input type='text' name='NCSA_USERNAME' value='$proxysettings{'NCSA_USERNAME'}' size='12' END ; - if ($proxysettings{'ACTION'} eq $Lang::tr{'edit'}) { print " readonly "; } + if ($proxysettings{'ACTION'} eq $Lang::tr{'edit'}) { print " readonly='readonly' "; } print <<END /></td> <td width='25%' class='base'>$Lang::tr{'advproxy NCSA group'}:</td> diff --git a/html/cgi-bin/qos.cgi b/html/cgi-bin/qos.cgi index de73284..5542f65 100644 --- a/html/cgi-bin/qos.cgi +++ b/html/cgi-bin/qos.cgi @@ -251,13 +251,13 @@ END if ($qossettings{'DOLEVEL7'} eq $Lang::tr{'save'}) { if ( $qossettings{'QIP'} ne '' ) { - unless ( &General::validip($qossettings{'QIP'}) ) { + if ((!&General::validipandmask($qossettings{'QIP'})) && (!&General::validip($qossettings{'QIP'}))) { $qossettings{'VALID'} = 'no'; $message = $Lang::tr{'The source IP address is invalid.'}; } } if ( $qossettings{'DIP'} ne '' ) { - unless ( &General::validip($qossettings{'DIP'}) ) { + if ((!&General::validipandmask($qossettings{'DIP'})) && (!&General::validip($qossettings{'DIP'}))) { $qossettings{'VALID'} = 'no'; $message = $Lang::tr{'The destination IP address is invalid.'}; } @@ -326,15 +326,15 @@ END if ($qossettings{'DOPORT'} eq $Lang::tr{'save'}) { if ( $qossettings{'QIP'} ne '' ) { - unless ( &General::validip($qossettings{'QIP'}) ) { + if ((!&General::validipandmask($qossettings{'QIP'})) && (!&General::validip($qossettings{'QIP'}))) { $qossettings{'VALID'} = 'no'; - $message = "$Lang::tr{'The source IP address is invalid.'}"; + $message = $Lang::tr{'The source IP address is invalid.'}; } } if ( $qossettings{'DIP'} ne '' ) { - unless ( &General::validip($qossettings{'DIP'}) ) { + if ((!&General::validipandmask($qossettings{'DIP'})) && (!&General::validip($qossettings{'DIP'}))) { $qossettings{'VALID'} = 'no'; - $message = "$Lang::tr{'The destination IP address is invalid.'}"; + $message = $Lang::tr{'The destination IP address is invalid.'}; } } if ($qossettings{'CLASS'} >= 100 && $qossettings{'CLASS'} < 121) { @@ -699,7 +699,7 @@ if ($errormessage) { ############################################################################################################################ ############################################################################################################################
-&Header::openbox('100%', 'center', 'Quality of Service'); +&Header::openbox('100%', 'center', );
print <<END <form method='post' action='$ENV{'SCRIPT_NAME'}'> @@ -707,15 +707,18 @@ print <<END END ; if ( $message ne "" ) { - print "<tr><td colspan='2' align='center'><font color='red'>$message</font>"; + print "<tr><td colspan='2' align='center'><font color='red'>$message</font></tr>"; } print <<END - <tr><td width='50%' align='left'><b>Quality of Service:</b> - <td width='50%' align='center' bgcolor='$statuscolor'><font color='white'>$status</font> - <tr><td width='100%' align='center' colspan='2'> - <input type='submit' name='ACTION' value="$Lang::tr{'start'}" /> - <input type='submit' name='ACTION' value="$Lang::tr{'stop'}" /> - <input type='submit' name='ACTION' value="$Lang::tr{'restart'}" /></table></form> + <tr><td width='50%' align='left'><b>Quality of Service:</b></td> + <td width='50%' align='center' bgcolor='$statuscolor'><font color='white'>$status</font></td></tr> + <tr> + <td colspan='2'><br></td> + </tr> + <tr><td width='100%' align='right' colspan='2'> + <input type='submit' name='ACTION' value="$Lang::tr{'start'}"> + <input type='submit' name='ACTION' value="$Lang::tr{'stop'}"> + <input type='submit' name='ACTION' value="$Lang::tr{'restart'}" ></td></tr></table></form> END ; if (($qossettings{'OUT_SPD'} ne '') && ($qossettings{'INC_SPD'} ne '')) { @@ -769,10 +772,10 @@ if ( ($qossettings{'DEFCLASS_INC'} eq '') || ($qossettings{'DEFCLASS_OUT'} eq '' exit }
- &Header::openbox('100%', 'center', "$qossettings{'RED_DEV'} $Lang::tr{'graph'}"); + &Header::openbox('100%', 'center', "$qossettings{'RED_DEV'} $Lang::tr{'graph'}, $Lang::tr{'uplink'}"); &Graphs::makegraphbox("qos.cgi",$qossettings{'RED_DEV'},"hour","325"); &Header::closebox(); - &Header::openbox('100%', 'center', "$qossettings{'IMQ_DEV'} $Lang::tr{'graph'}"); + &Header::openbox('100%', 'center', "$qossettings{'IMQ_DEV'} $Lang::tr{'graph'}, $Lang::tr{'downlink'}"); &Graphs::makegraphbox("qos.cgi",$qossettings{'IMQ_DEV'},"hour","325"); &Header::closebox();
@@ -793,7 +796,7 @@ sub changedefclasses { <form method='post' action='$ENV{'SCRIPT_NAME'}'> <table width='66%'> <tr><td width='100%' colspan='3'>$Lang::tr{'no filter pass'} - <tr><td width='33%' align='right'>Download:<td width='33%' align='left'><select name='DEFCLASS_INC'> + <tr><td width='33%' align='right'>$Lang::tr{'download'}:<td width='33%' align='left'><select name='DEFCLASS_INC'> END ; for ( $c = 200 ; $c <= 220 ; $c++ ) @@ -804,7 +807,7 @@ END } print <<END </select><td width='33%' align='center'> - <tr><td width='33%' align='right'>Upload:<td width='33%' align='left'><select name='DEFCLASS_OUT'> + <tr><td width='33%' align='right'>$Lang::tr{'upload'}:<td width='33%' align='left'><select name='DEFCLASS_OUT'> END ; for ( $c = 100 ; $c <= 120 ; $c++ ) @@ -1076,10 +1079,10 @@ END print <<END </select><td width='33%' align='center'> <tr><td width='33%' align='right'>$Lang::tr{'source ip'}: - <td width='33%' align='left'><input type='text' name='QIP' maxlength='15' value='$qossettings{'QIP'}' /> + <td width='33%' align='left'><input type='text' name='QIP' maxlength='31' value='$qossettings{'QIP'}' /> <td width='33%' align='center'> <tr><td width='33%' align='right'>$Lang::tr{'destination ip'}: - <td width='33%' align='left'><input type='text' name='DIP' maxlength='15' value='$qossettings{'DIP'}' /> + <td width='33%' align='left'><input type='text' name='DIP' maxlength='31' value='$qossettings{'DIP'}' /> <td width='33%' align='center'><input type='hidden' name='CLASS' value='$qossettings{'CLASS'}' /><input type='submit' name='DOLEVEL7' value='$Lang::tr{'save'}' /> <tr><td colspan="3" align='center'><font color="red"><em>$Lang::tr{'qos warning'}</em></font> </table></form> @@ -1120,10 +1123,10 @@ END <td width='33%' align='left'><input type='text' name='DPORT' maxlength='11' value='$qossettings{'DPORT'}' /> <td width='33%' align='center'> <tr><td width='33%' align='right'>$Lang::tr{'source ip'}: - <td width='33%' align='left'><input type='text' name='QIP' maxlength='15' value='$qossettings{'QIP'}' /> + <td width='33%' align='left'><input type='text' name='QIP' maxlength='31' value='$qossettings{'QIP'}' /> <td width='33%' align='center'> <tr><td width='33%' align='right'>$Lang::tr{'destination ip'}: - <td width='33%' align='left'><input type='text' name='DIP' maxlength='15' value='$qossettings{'DIP'}' /> + <td width='33%' align='left'><input type='text' name='DIP' maxlength='31' value='$qossettings{'DIP'}' /> <td width='33%' align='center'><input type='hidden' name='CLASS' value='$qossettings{'CLASS'}' /><input type='submit' name='DOPORT' value='$Lang::tr{'save'}' /> </table></form> END @@ -1181,7 +1184,7 @@ sub showclasses { @classline = split( /;/, $classentry ); if ( $classline[0] eq $qossettings{'DEV'} ) { - &Header::openbox('100%', 'center', "$Lang::tr{'Class'}: $classline[1]"); + &Header::openbox('100%', 'center', "$Lang::tr{'Class'}: $classline[1] $classline[8]"); print <<END <table border='0' width='100%' cellspacing='0'> <tr><td bgcolor='$color{'color20'}' width='10%' align='center'><b>$Lang::tr{'interface'}</b> @@ -1206,22 +1209,22 @@ sub showclasses { <td><form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='CLASS' value='$classline[1]' /> <input type='hidden' name='ACTION' value='$Lang::tr{'qos add subclass'}' /> - <input type='image' alt='$Lang::tr{'add subclass'}' src='/images/addblue.gif' /> + <input type='image' alt='$Lang::tr{'add subclass'}' title='$Lang::tr{'add subclass'}' src='/images/addblue.gif' /> </form> <td><form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='CLASS' value='$classline[1]' /> <input type='hidden' name='ACTION' value='$Lang::tr{'Add Rule'}' /> - <input type='image' alt='$Lang::tr{'Add Rule'}' src='/images/addgreen.gif' /> + <input type='image' alt='$Lang::tr{'Add Rule'}' title='$Lang::tr{'Add Rule'}' src='/images/addgreen.gif' /> </form> <td><form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='CLASS' value='$classline[1]' /> <input type='hidden' name='DOCLASS' value='$Lang::tr{'edit'}' /> - <input type='image' alt='$Lang::tr{'edit'}' src='/images/edit.gif' /> + <input type='image' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' src='/images/edit.gif' /> </form> <td><form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='CLASS' value='$classline[1]' /> <input type='hidden' name='DOCLASS' value='$Lang::tr{'delete'}' /> - <input type='image' alt='$Lang::tr{'delete'}' src='/images/delete.gif' /> + <input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/delete.gif' /> </form> </table> </td> @@ -1246,13 +1249,13 @@ END <input type='hidden' name='CLASS' value='$l7ruleline[0]' /> <input type='hidden' name='L7PROT' value='$l7ruleline[2]' /> <input type='hidden' name='DOLEVEL7' value='$Lang::tr{'edit'}' /> - <input type='image' alt='$Lang::tr{'edit'}' src='/images/edit.gif' /> + <input type='image' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' src='/images/edit.gif' /> </form> <td><form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='CLASS' value='$l7ruleline[0]' /> <input type='hidden' name='L7PROT' value='$l7ruleline[2]' /> <input type='hidden' name='DOLEVEL7' value='$Lang::tr{'delete'}' /> - <input type='image' alt='$Lang::tr{'delete'}' src='/images/delete.gif' /> + <input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/delete.gif' /> </form> </table> END @@ -1311,7 +1314,7 @@ END <input type='hidden' name='DIP' value='$portruleline[5]' /> <input type='hidden' name='DPORT' value='$portruleline[6]' /> <input type='hidden' name='DOPORT' value='$Lang::tr{'edit'}' /> - <input type='image' alt='$Lang::tr{'edit'}' src='/images/edit.gif' /> + <input type='image' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' src='/images/edit.gif' /> </form> <td><form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='CLASS' value='$portruleline[0]' /> @@ -1321,7 +1324,7 @@ END <input type='hidden' name='DIP' value='$portruleline[5]' /> <input type='hidden' name='DPORT' value='$portruleline[6]' /> <input type='hidden' name='DOPORT' value='$Lang::tr{'delete'}' /> - <input type='image' alt='$Lang::tr{'delete'}' src='/images/delete.gif' /> + <input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/delete.gif' /> </form> </table> END @@ -1369,14 +1372,14 @@ END <input type='hidden' name='DEV' value='$tosruleline[1]' /> <input type='hidden' name='TOS' value='$tosruleline[2]' /> <input type='hidden' name='DOTOS' value='$Lang::tr{'edit'}' /> - <input type='image' alt='$Lang::tr{'edit'}' src='/images/edit.gif' /> + <input type='image' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' src='/images/edit.gif' /> </form> <td><form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='CLASS' value='$tosruleline[0]' /> <input type='hidden' name='DEV' value='$tosruleline[1]' /> <input type='hidden' name='TOS' value='$tosruleline[2]' /> <input type='hidden' name='DOTOS' value='$Lang::tr{'delete'}' /> - <input type='image' alt='$Lang::tr{'delete'}' src='/images/delete.gif' /> + <input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/delete.gif' /> </form> </table> END @@ -1404,17 +1407,17 @@ END <td><form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='CLASS' value='$subclassline[2]' /> <input type='hidden' name='ACTION' value='$Lang::tr{'Add Rule'}' /> - <input type='image' alt='$Lang::tr{'Add Rule'}' src='/images/addgreen.gif' /> + <input type='image' alt='$Lang::tr{'Add Rule'}' title='$Lang::tr{'Add Rule'}' src='/images/addgreen.gif' /> </form> <td><form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='CLASS' value='$subclassline[2]' /> <input type='hidden' name='DOSCLASS' value='$Lang::tr{'edit'}' /> - <input type='image' alt='$Lang::tr{'edit'}' src='/images/edit.gif' /> + <input type='image' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' src='/images/edit.gif' /> </form> <td><form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='CLASS' value='$subclassline[2]' /> <input type='hidden' name='DOSCLASS' value='$Lang::tr{'delete'}' /> - <input type='image' alt='$Lang::tr{'delete'}' src='/images/delete.gif' /> + <input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/delete.gif' /> </form> </table> END diff --git a/html/cgi-bin/remote.cgi b/html/cgi-bin/remote.cgi index ed8a94d..10a3e87 100644 --- a/html/cgi-bin/remote.cgi +++ b/html/cgi-bin/remote.cgi @@ -2,7 +2,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2014 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -120,13 +120,13 @@ $checked{'SSH_PORT'}{$remotesettings{'SSH_PORT'}} = "checked='checked'";
if ($errormessage) { &Header::openbox('100%', 'left', $Lang::tr{'error messages'}); - print "<FONT CLASS='base'>$errormessage </FONT>\n"; + print "<font class='base'>$errormessage </font>\n"; &Header::closebox(); }
print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>\n";
-&Header::openbox('100%', 'left', 'SSH:'); +&Header::openbox('100%', 'left', $Lang::tr{'ssh'}); print <<END <table width='100%'> <tr> @@ -154,7 +154,7 @@ print <<END <td width='100%' class='base'>$Lang::tr{'ssh port'}</td> </tr> <tr> - <td align='center' colspan='3'><hr /> + <td align='right' colspan='3'> <input type='submit' name='ACTION' value='$Lang::tr{'ssh tempstart15'}' /> <input type='submit' name='ACTION' value='$Lang::tr{'ssh tempstart30'}' /> <input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td> @@ -181,6 +181,7 @@ END &viewkey("/etc/ssh/ssh_host_rsa_key.pub","RSA2"); &viewkey("/etc/ssh/ssh_host_dsa_key.pub","DSA"); &viewkey("/etc/ssh/ssh_host_ecdsa_key.pub","ECDSA"); +&viewkey("/etc/ssh/ssh_host_ed25519_key.pub","ED25519");
print "</table>\n";
diff --git a/html/cgi-bin/routing.cgi b/html/cgi-bin/routing.cgi index 488705f..5798fb8 100644 --- a/html/cgi-bin/routing.cgi +++ b/html/cgi-bin/routing.cgi @@ -244,10 +244,10 @@ print <<END <td><input type='text' name='REMARK' value='$settings{'REMARK'}' size='25'/></td> </tr> </table> -<hr /> +<br> <table width='100%'> <tr> - <td width='50%' align='center'><input type='hidden' name='ACTION' value='$Lang::tr{'add'}' /><input type='submit' name='SUBMIT' value='$buttontext' /></td> + <td width='50%' align='right'><input type='hidden' name='ACTION' value='$Lang::tr{'add'}' /><input type='submit' name='SUBMIT' value='$buttontext' /></td> </tr> </table> </form> @@ -257,13 +257,13 @@ END
&Header::openbox('100%', 'left', $Lang::tr{'routing table'}); print <<END -<hr /> -<table width='100%'> + +<table width='100%' class='tbl'> <tr> - <td width='30%' align='center'><a href='$ENV{'SCRIPT_NAME'}?IP'><b>$Lang::tr{'host ip'} / $Lang::tr{'network'}</b></a></td> - <td width='30%' align='center'><a href='$ENV{'SCRIPT_NAME'}?GATEWAY'><b>$Lang::tr{'gateway'}</b></a></td> - <td width='30%' align='center'><a href='$ENV{'SCRIPT_NAME'}?REMARK'><b>$Lang::tr{'remark'}</b></a></td> - <td width='10%' colspan='3' class='boldbase' align='center'><b>$Lang::tr{'action'}</b></td> + <th width='30%' align='center'><a href='$ENV{'SCRIPT_NAME'}?IP'><b>$Lang::tr{'host ip'} / $Lang::tr{'network'}</b></a></th> + <th width='30%' align='center'><a href='$ENV{'SCRIPT_NAME'}?GATEWAY'><b>$Lang::tr{'gateway'}</b></a></th> + <th width='30%' align='center'><a href='$ENV{'SCRIPT_NAME'}?REMARK'><b>$Lang::tr{'remark'}</b></a></th> + <th width='10%' colspan='3' class='boldbase' align='center'><b>$Lang::tr{'action'}</b></th> </tr> END ; @@ -273,6 +273,7 @@ END #
my $key = 0; +my $col=""; foreach my $line (@current) { chomp($line); # remove newline my @temp=split(/,/,$line); @@ -294,15 +295,17 @@ foreach my $line (@current) { if ($settings{'KEY1'} eq $key) { print "<tr bgcolor='${Header::colouryellow}'>"; } elsif ($key % 2) { - print "<tr bgcolor='$color{'color22'}'>"; + print "<tr>"; + $col="bgcolor='$color{'color20'}'"; } else { - print "<tr bgcolor='$color{'color20'}'>"; + print "<tr>"; + $col="bgcolor='$color{'color22'}'"; } print <<END -<td align='center'>$temp[1]</td> -<td align='center'>$temp[2]</td> -<td align='center'>$temp[3]</td> -<td align='center'> +<td align='center' $col>$temp[1]</td> +<td align='center' $col>$temp[2]</td> +<td align='center' $col>$temp[3]</td> +<td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' /> <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' alt='$gdesc' title='$gdesc' /> @@ -310,7 +313,7 @@ foreach my $line (@current) { </form> </td>
-<td align='center'> +<td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'edit'}' /> <input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' /> @@ -318,7 +321,7 @@ foreach my $line (@current) { </form> </td>
-<td align='center'> +<td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' /> <input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' /> diff --git a/html/cgi-bin/samba.cgi b/html/cgi-bin/samba.cgi index 74f10bd..bfa0b89 100644 --- a/html/cgi-bin/samba.cgi +++ b/html/cgi-bin/samba.cgi @@ -816,10 +816,10 @@ END <form method='post' action='$ENV{'SCRIPT_NAME'}#$Lang::tr{'accounting'}'> <table width='95%' cellspacing='0'> <tr bgcolor='$color{'color20'}'><td colspan='2' align='left'><b>$Lang::tr{'change passwords'}</b></td></tr> - <tr><td align='left'>$Lang::tr{'username'}</td><td><input type='text' name='USERNAME' value='$username' size='30' readonly /></td></tr> + <tr><td align='left'>$Lang::tr{'username'}</td><td><input type='text' name='USERNAME' value='$username' size='30' readonly='readonly' /></td></tr> <tr><td align='left'>$Lang::tr{'password'}</td><td><input type='password' name='PASSWORD' value='$password' size='30' /></td></tr> <tr><td colspan='2' align='center'><input type='hidden' name='ACTION' value='smbchangepw' /> - <input type='image' alt=$Lang::tr{'save'} title=$Lang::tr{'save'} src='/images/media-floppy.png' /></td></tr> + <input type='image' alt='$Lang::tr{'save'}' title='$Lang::tr{'save'}' src='/images/media-floppy.png' /></td></tr> </table> </form> END @@ -844,7 +844,7 @@ END <tr><td align='left'>$Lang::tr{'unix group'}</td><td><input type='text' name='GROUP' value='sambauser' size='30' /></td></tr> <tr><td align='left'>$Lang::tr{'unix shell'}</td><td><input type='text' name='SHELL' value='/bin/false' size='30' /></td></tr> <tr><td colspan='2' align='center'><input type='hidden' name='ACTION' value='smbuseradd' /> - <input type='image' alt=$Lang::tr{'save'} title=$Lang::tr{'save'} src='/images/media-floppy.png' /></td></tr> + <input type='image' alt='$Lang::tr{'save'}' title='$Lang::tr{'save'}' src='/images/media-floppy.png' /></td></tr> </table> </form> END @@ -865,7 +865,7 @@ END <tr><td align='left'>$Lang::tr{'unix group'}</td><td><input type='text' name='GROUP' value='sambawks' size='30' /></td></tr> <tr><td align='left'>$Lang::tr{'unix shell'}</td><td><input type='text' name='SHELL' value='/bin/false' size='30' /></td></tr> <tr><td colspan='2' align='center'><input type='hidden' name='ACTION' value='smbpcadd' /> - <input type='image' title=$Lang::tr{'save'} alt=$Lang::tr{'save'} src='/images/media-floppy.png' /></td></tr> + <input type='image' alt='$Lang::tr{'save'}' title='$Lang::tr{'save'}' src='/images/media-floppy.png' /></td></tr> </table> </form> END @@ -886,27 +886,33 @@ my %shares = config("${General::swroot}/samba/shares"); print <<END <a name="$Lang::tr{'manage shares'}"></a> <br /> -<table width='95%' cellspacing='0'> -<tr><td bgcolor='$color{'color20'}' colspan='3' align='left'><b>$Lang::tr{'manage shares'}</b> -<tr><td align='left'><u>$Lang::tr{'sharename'}</u></td><td colspan='2' width="5%" align='center'><u>$Lang::tr{'options'}</u></td></tr> +<table width='95%' cellspacing='0' class='tbl'> +<tr><th bgcolor='$color{'color20'}' colspan='3' align='left'><b>$Lang::tr{'manage shares'}</b></th></tr> +<tr><th align='left'><u>$Lang::tr{'sharename'}</u></th><th colspan='2' width="5%" align='center'><u>$Lang::tr{'options'}</u></th></tr> END ;
my @Shares = keys(%shares); my $lines = 0; - +my $col=""; foreach my $shareentry (sort @Shares) { chomp $shareentry; - if ($lines % 2) {print "<tr bgcolor='$color{'color20'}'>";} else {print "<tr bgcolor='$color{'color22'}'>";} + if ($lines % 2) { + print "<tr>"; + $col="bgcolor='$color{'color20'}'"; + } else { + print "<tr>"; + $col="bgcolor='$color{'color22'}'"; + } print <<END - <td align='left'>$shareentry</td> - <td><form method='post' action='$ENV{'SCRIPT_NAME'}#$Lang::tr{'manage shares'}'> + <td align='left' $col>$shareentry</td> + <td $col><form method='post' action='$ENV{'SCRIPT_NAME'}#$Lang::tr{'manage shares'}'> <input type='hidden' name='NAME' value='$shareentry' /> <input type='hidden' name='ACTION' value='sharechange' /> <input type='image' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' src='/images/edit.gif' /> </form></td> - <td><form method='post' action='$ENV{'SCRIPT_NAME'}#$Lang::tr{'manage shares'}'> + <td $col><form method='post' action='$ENV{'SCRIPT_NAME'}#$Lang::tr{'manage shares'}'> <input type='hidden' name='NAME' value='$shareentry' /> <input type='hidden' name='ACTION' value='smbsharedel' /> <input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/user-trash.png' /> diff --git a/html/cgi-bin/services.cgi b/html/cgi-bin/services.cgi index 131cad8..6bfa5bb 100644 --- a/html/cgi-bin/services.cgi +++ b/html/cgi-bin/services.cgi @@ -116,25 +116,33 @@ if ( $querry[0] =~ "processescpu"){ &Header::openbox('100%', 'left', $Lang::tr{'services'}); print <<END <div align='center'> -<table width='80%' cellspacing='1' border='0'> -<tr bgcolor='$color{'color20'}'><td align='left'><b>$Lang::tr{'services'}</b></td><td align='center' ><b>$Lang::tr{'status'}</b></td><td align='center'><b>PID</b></td><td align='center'><b>$Lang::tr{'memory'}</b></td></tr> +<table width='80%' cellspacing='1' class='tbl'> +<tr> + <th align='left'><b>$Lang::tr{'services'}</b></th> + <th align='center' ><b>$Lang::tr{'status'}</b></th> + <th align='center'><b>PID</b></th> + <th align='center'><b>$Lang::tr{'memory'}</b></th> +</tr> END ; my $key = ''; + my $col=""; foreach $key (sort keys %servicenames){ $lines++; if ($lines % 2){ - print "<tr bgcolor='$color{'color22'}'>\n<td align='left'>"; + $col="bgcolor='$color{'color22'}'"; + print "<tr><td align='left' $col>"; print $link{$key}; - print "</td>\n"; + print "</td>"; }else{ - print "<tr bgcolor='$color{'color20'}'>\n<td align='left'>"; + $col="bgcolor='$color{'color20'}'"; + print "<tr><td align='left' $col>"; print $link{$key}; - print "</td>\n"; + print "</td>"; }
my $shortname = $servicenames{$key}; - my $status = &isrunning($shortname); + my $status = &isrunning($shortname,$col);
print "$status\n"; print "</tr>\n"; @@ -152,14 +160,14 @@ END
print <<END <div align='center'> -<table width='80%' cellspacing='1' border='0'> -<tr bgcolor='$color{'color20'}'> -<td align='center'><b>Addon</b></td> -<td align='center'><b>Boot</b></td> -<td align='center' colspan=2><b>$Lang::tr{'action'}</b></td> -<td align='center'><b>$Lang::tr{'status'}</b></td> -<td align='center'><b>PID</b></td> -<td align='center'><b>$Lang::tr{'memory'}</b></td> +<table width='80%' cellspacing='1' class='tbl'> +<tr> + <th align='center'><b>Addon</b></th> + <th align='center'><b>Boot</b></th> + <th align='center' colspan=2><b>$Lang::tr{'action'}</b></th> + <th align='center'><b>$Lang::tr{'status'}</b></th> + <th align='center'><b>PID</b></th> + <th align='center'><b>$Lang::tr{'memory'}</b></th> </tr> END ; @@ -183,16 +191,18 @@ END if ( ($_ ne "alsa") && ($_ ne "mdadm") ) { $lines++; if ($lines % 2){ - print "<tr bgcolor='$color{'color22'}'>"; + print "<tr>"; + $col="bgcolor='$color{'color22'}'"; }else{ - print "<tr bgcolor='$color{'color20'}'>"; + print "<tr>"; + $col="bgcolor='$color{'color20'}'"; } - print "<td align='left'>$_</td> "; - my $status = isautorun($_); + print "<td align='left' $col width='31%'>$_</td> "; + my $status = isautorun($_,$col); print "$status "; - print "<td align='center'><A HREF=services.cgi?$_!start><img alt='$Lang::tr{'start'}' title='$Lang::tr{'start'}' src='/images/go-up.png' border='0' /></A></td>"; - print "<td align='center'><A HREF=services.cgi?$_!stop><img alt='$Lang::tr{'stop'}' title='$Lang::tr{'stop'}' src='/images/go-down.png' border='0' /></A></td> "; - my $status = &isrunningaddon($_); + print "<td align='center' $col width='8%'><a href='services.cgi?$_!start'><img alt='$Lang::tr{'start'}' title='$Lang::tr{'start'}' src='/images/go-up.png' border='0' /></a></td>"; + print "<td align='center' $col width='8%'><a href='services.cgi?$_!stop'><img alt='$Lang::tr{'stop'}' title='$Lang::tr{'stop'}' src='/images/go-down.png' border='0' /></a></td> "; + my $status = &isrunningaddon($_,$col); $status =~ s/\[[0-1];[0-9]+m//g;
chomp($status); @@ -219,16 +229,17 @@ END
sub isautorun{ my $cmd = $_[0]; - my $status = "<td align='center'></td>"; + my $col = $_[1]; + my $status = "<td align='center' $col></td>"; my $init = `find /etc/rc.d/rc3.d/S??${cmd} 2>/dev/null`; chomp ($init); if ($init ne ''){ - $status = "<td align='center'><A HREF=services.cgi?$_!disable><img alt='$Lang::tr{'deactivate'}' title='$Lang::tr{'deactivate'}' src='/images/on.gif' border='0' width='16' height='16' /></A></td>"; + $status = "<td align='center' $col><a href='services.cgi?$_!disable'><img alt='$Lang::tr{'deactivate'}' title='$Lang::tr{'deactivate'}' src='/images/on.gif' border='0' width='16' height='16' /></a></td>"; } $init = `find /etc/rc.d/rc3.d/off/S??${cmd} 2>/dev/null`; chomp ($init); if ($init ne ''){ - $status = "<td align='center'><A HREF=services.cgi?$_!enable><img alt='$Lang::tr{'activate'}' title='$Lang::tr{'activate'}' src='/images/off.gif' border='0' width='16' height='16' /></A></td>"; + $status = "<td align='center' $col><a href='services.cgi?$_!enable'><img alt='$Lang::tr{'activate'}' title='$Lang::tr{'activate'}' src='/images/off.gif' border='0' width='16' height='16' /></a></td>"; }
return $status; @@ -236,7 +247,8 @@ sub isautorun{
sub isrunning{ my $cmd = $_[0]; - my $status = "<td align='center' bgcolor='${Header::colourred}'><font color='white'><b>$Lang::tr{'stopped'}</b></font></td><td colspan='2'></td>"; + my $col = $_[1]; + my $status = "<td align='center' bgcolor='${Header::colourred}'><font color='white'><b>$Lang::tr{'stopped'}</b></font></td><td colspan='2' $col></td>"; my $pid = ''; my $testcmd = ''; my $exename; @@ -267,7 +279,7 @@ sub isrunning{ close(FILE); } if ($testcmd =~ /$exename/){ - $status = "<td align='center' bgcolor='${Header::colourgreen}'><font color='white'><b>$Lang::tr{'running'}</b></font></td><td align='center'>$pid</td><td align='center'>$memory</td>"; + $status = "<td align='center' bgcolor='${Header::colourgreen}'><font color='white'><b>$Lang::tr{'running'}</b></font></td><td align='center' $col>$pid</td><td align='center' $col>$memory</td>"; } } return $status; @@ -275,7 +287,8 @@ sub isrunning{
sub isrunningaddon{ my $cmd = $_[0]; - my $status = "<td align='center' bgcolor='${Header::colourred}'><font color='white'><b>$Lang::tr{'stopped'}</b></font></td><td colspan='2'></td>"; + my $col = $_[1]; + my $status = "<td align='center' bgcolor='${Header::colourred}'><font color='white'><b>$Lang::tr{'stopped'}</b></font></td><td colspan='2' $col></td>"; my $pid = ''; my $testcmd = ''; my $exename; @@ -293,7 +306,7 @@ sub isrunningaddon{ $testcmd =~ s///gi;
my @pid = split(/\s/,$testcmd); - $status .="<td align='center'>$pid[0]</td>"; + $status .="<td align='center' $col>$pid[0]</td>";
my $memory = 0;
@@ -305,9 +318,9 @@ sub isrunningaddon{ } $memory+=$memory[0]; } - $status .="<td align='center'>$memory KB</td>"; + $status .="<td align='center' $col>$memory KB</td>"; }else{ - $status = "<td align='center' bgcolor='${Header::colourred}'><font color='white'><b>$Lang::tr{'stopped'}</b></font></td><td colspan='2'></td>"; + $status = "<td align='center' bgcolor='${Header::colourred}'><font color='white'><b>$Lang::tr{'stopped'}</b></font></td><td colspan='2' $col></td>"; } return $status; } diff --git a/html/cgi-bin/shutdown.cgi b/html/cgi-bin/shutdown.cgi new file mode 100644 index 0000000..998f9f8 --- /dev/null +++ b/html/cgi-bin/shutdown.cgi @@ -0,0 +1,88 @@ +#!/usr/bin/perl +# +# SmoothWall CGIs +# +# This code is distributed under the terms of the GPL +# +# (c) The SmoothWall Team +# + +use strict; + +# enable only the following on debugging purpose +#use warnings; +#use CGI::Carp 'fatalsToBrowser'; + +require '/var/ipfire/general-functions.pl'; +require "${General::swroot}/lang.pl"; +require "${General::swroot}/header.pl"; + +my %cgiparams=(); +my $death = 0; +my $rebirth = 0; + +&Header::showhttpheaders(); + +$cgiparams{'ACTION'} = ''; +&Header::getcgihash(%cgiparams); + +if ($cgiparams{'ACTION'} eq $Lang::tr{'shutdown'}) { + $death = 1; + &General::log($Lang::tr{'shutting down ipfire'}); + system '/usr/local/bin/ipfirereboot down'; +} elsif ($cgiparams{'ACTION'} eq $Lang::tr{'reboot'}) { + $rebirth = 1; + &General::log($Lang::tr{'rebooting ipfire'}); + system '/usr/local/bin/ipfirereboot boot'; +} +if ($death == 0 && $rebirth == 0) { + + &Header::openpage($Lang::tr{'shutdown control'}, 1, ''); + + &Header::openbigbox('100%', 'left'); + + print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>\n"; + + &Header::openbox('100%', 'left', ); + print <<END +<table width='100%'> +<tr> + <td width='50%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'reboot'}' /></td> + <td width='50%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'shutdown'}' /></td> +</tr> +</table> +END + ; + &Header::closebox(); + +} else { + my $message=''; + my $title=''; + my $refresh = "<meta http-equiv='refresh' content='5; URL=/cgi-bin/index.cgi' />"; + if ($death) { + $title = $Lang::tr{'shutting down'}; + $message = $Lang::tr{'ipfire has now shutdown'}; + } else { + $title = $Lang::tr{'rebooting'}; + $message = $Lang::tr{'ipfire has now rebooted'}; + } + &Header::openpage($title, 0, $refresh); + + &Header::openbigbox('100%', 'center'); + print <<END +<div align='center'> +<table width='100%' bgcolor='#ffffff'> +<tr><td align='center'> +<br /><br /><img src='/images/IPFire.png' /><br /><br /><br /> +</td></tr> +</table> +<br /> +<font size='6'>$message</font> +</div> +END + ; +} + +&Header::closebigbox(); +&Header::closepage(); + diff --git a/html/cgi-bin/speed.cgi b/html/cgi-bin/speed.cgi index b714d67..4468abd 100644 --- a/html/cgi-bin/speed.cgi +++ b/html/cgi-bin/speed.cgi @@ -36,9 +36,8 @@ foreach $field (@fields) { } }
- -my $interface = `cat /var/ipfire/red/iface`; -my @data_now = `ip -s link show $interface`; +my $interface = `cat /var/ipfire/red/iface 2>/dev/null`; +my @data_now = `ip -s link show $interface 2>/dev/null`;
my $lastline; my $rxb_now = 0; diff --git a/html/cgi-bin/time.cgi b/html/cgi-bin/time.cgi index caa1718..39d71f8 100644 --- a/html/cgi-bin/time.cgi +++ b/html/cgi-bin/time.cgi @@ -233,14 +233,10 @@ if ($errormessage) {
print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>\n";
-&Header::openbox('100%', 'left', $Lang::tr{'network time'}); +&Header::openbox('100%', 'left', $Lang::tr{'ntp common settings'}); print <<END <table width='100%'> <tr> - <td colspan='2'><strong>$Lang::tr{'ntp common settings'}</strong></td> -</tr> - -<tr> <td><input type='checkbox' name='ENABLENTP' $checked{'ENABLENTP'}{'on'} /></td> <td width='100%' colspan='4' class='base'>$Lang::tr{'network time from'}</td> </tr> @@ -281,11 +277,13 @@ print <<END <td class='base' colspan='4'><input type='checkbox' name='ENABLESETONBOOT' $checked{'ENABLESETONBOOT'}{'on'} /> $Lang::tr{'Set time on boot'}</td> </tr> </table> +END +; +&Header::closebox(); +&Header::openbox('100%',1,$Lang::tr{'ntp sync'}); +print <<END <table width='100%'> <tr> - <td colspan='4'><hr /><strong>$Lang::tr{'ntp sync'}</strong></td> -</tr> -<tr> <td class='base'><input type='radio' name='UPDATE_METHOD' value='periodically' $checked{'UPDATE_METHOD'}{'periodically'} /></td> <td width='10%'>$Lang::tr{'every'}</td> <td width='45%'><input type='text' name='UPDATE_VALUE' size='3' maxlength='3' value='$timesettings{'UPDATE_VALUE'}' /> @@ -302,7 +300,7 @@ print <<END <td colspan='2'>$Lang::tr{'manually'}</td> </tr> <tr> - <td colspan='4'><hr /><strong>$Lang::tr{'update time'}</strong></td> + <td colspan='4'><br><br><strong>$Lang::tr{'update time'}</strong></td> </tr> <tr> <td> </td> @@ -322,9 +320,8 @@ print <<END <table width='100%'> <tr> <td width='30%'><img src='/blob.gif' alt='*' /> $Lang::tr{'this field may be blank'}</td> - <td width='40%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'set time now'}' /></td> - <td width='25%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td> - <td width='5%' align='right'> </td> + <td width='65%' align='right'><input type='submit' name='ACTION' value='$Lang::tr{'set time now'}' /></td> + <td width='5%' align='right'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td> </tr> </table> END diff --git a/html/cgi-bin/tor.cgi b/html/cgi-bin/tor.cgi old mode 100755 new mode 100644 index befd508..228b5d4 --- a/html/cgi-bin/tor.cgi +++ b/html/cgi-bin/tor.cgi @@ -235,8 +235,8 @@ sub showMainBox() {
if ( ($memory != 0) && (@pid[0] ne "///") ){ - print "<table width='95%' cellspacing='0'>"; - print "<tr><td bgcolor='$color{'color20'}' colspan='3' align='left'><strong>$Lang::tr{'tor service'}</strong></td></tr>"; + print "<table width='95%' cellspacing='0' class='tbl'>"; + print "<tr><th bgcolor='$color{'color20'}' colspan='3' align='left'><strong>$Lang::tr{'tor service'}</strong></th></tr>"; print "<tr><td class='base'>$Lang::tr{'tor daemon'}</td>"; print "<td align='center' colspan='2' width='75%' bgcolor='${Header::colourgreen}'><font color='white'><strong>$Lang::tr{'running'}</strong></font></td></tr>"; print "<tr><td class='base'></td>"; @@ -247,8 +247,8 @@ if ( ($memory != 0) && (@pid[0] ne "///") ){ print "<td bgcolor='$color{'color22'}' align='center'>$memory KB</td></tr>"; print "</table>"; } else { - print "<table width='95%' cellspacing='0'>"; - print "<tr><td bgcolor='$color{'color20'}' colspan='3' align='left'><strong>$Lang::tr{'tor service'}</strong></td></tr>"; + print "<table width='95%' cellspacing='0' class='tbl'>"; + print "<tr><th bgcolor='$color{'color20'}' colspan='3' align='left'><strong>$Lang::tr{'tor service'}</strong></th></tr>"; print "<tr><td class='base'>$Lang::tr{'tor daemon'}</td>"; print "<td align='center' width='75%' bgcolor='${Header::colourred}'><font color='white'><strong>$Lang::tr{'stopped'}</strong></font></td></tr>"; print "</table>"; diff --git a/html/cgi-bin/tripwire.cgi b/html/cgi-bin/tripwire.cgi index 696a52e..fb48a27 100644 --- a/html/cgi-bin/tripwire.cgi +++ b/html/cgi-bin/tripwire.cgi @@ -167,7 +167,7 @@ if ($tripwiresettings{'ACTION'} eq 'generatepolicypw') <tr><td align='left' width='40%'><form method='post' action='$ENV{'SCRIPT_NAME'}'>$Lang::tr{'sitekey'}</td><td align='left'><input type='password' name='SITEKEY' value='$tripwiresettings{'SITEKEY'}' size="30" /></td></tr> <tr><td align='left' width='40%'><form method='post' action='$ENV{'SCRIPT_NAME'}'>$Lang::tr{'localkey'}</td><td align='left'><input type='password' name='LOCALKEY' value='$tripwiresettings{'LOCALKEY'}' size="30" /><br /><br /></td></tr> <tr><td align='right' width='50%'> - $Lang::tr{'ok'} <input type='image' alt='$Lang::tr{'ok'}' tilte='$Lang::tr{'ok'}' src='/images/edit-redo.png' /> + $Lang::tr{'ok'} <input type='image' alt='$Lang::tr{'ok'}' title='$Lang::tr{'ok'}' src='/images/edit-redo.png' /> <input type='hidden' name='ACTION' value='generatepolicyyes' /></form></td> <td align='left' width='50%'><form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='image' alt='$Lang::tr{'cancel'}' title='$Lang::tr{'cancel'}' src='/images/dialog-error.png' /> $Lang::tr{'cancel'} @@ -487,7 +487,7 @@ print <<END <tr><td><br /></td></tr> <tr><td><pre>$Log</pre></td></tr> <tr><td><br /></td></tr> -<tr><td align=center>$tripwiresettings{'LOG'}</td></tr> +<tr><td align='center'>$tripwiresettings{'LOG'}</td></tr> </table> END ; @@ -506,17 +506,17 @@ END #<tr><td colspan='3' align='left'><br /></td></tr> #END #; -#foreach my $cronjob (@cronjobs) {chomp $cronjob;my $time=$cronjob; $time=~s//etc/fcron.daily/tripwire//g;print"<form method='post' action='$ENV{'SCRIPT_NAME'}'><tr><td align='left' colspan='2'>$cronjob at $time daily</td><td><input type='hidden' name='ACTION' value='deletecron' /><input type='hidden' name='CRON' value='$time' /><input type='image' alt='delete cron' src='/images/user-trash.png' /></td></tr></form>";} +#foreach my $cronjob (@cronjobs) {chomp $cronjob;my $time=$cronjob; $time=~s//etc/fcron.daily/tripwire//g;print"<form method='post' action='$ENV{'SCRIPT_NAME'}'><tr><td align='left' colspan='2'>$cronjob at $time daily</td><td><input type='hidden' name='ACTION' value='deletecron' /><input type='hidden' name='CRON' value='$time' /><input type='image' alt='delete cron' title='delete cron' src='/images/user-trash.png' /></td></tr></form>";} #print <<END #</table> #<br /> #<table width='10%' cellspacing='0'> #<tr><td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}'> # <input type='hidden' name='ACTION' value='addcron'/> -# <input type='image' alt='$Lang::tr{'add cron'}' src='/images/appointment-new.png' /></form></td> +# <input type='image' alt='$Lang::tr{'add cron'}' title='$Lang::tr{'add cron'}' src='/images/appointment-new.png' /></form></td> #<td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}'> # <input type='hidden' name='ACTION' value='croncaption' /> -# <input type='image' alt='$Lang::tr{'caption'}' src='/images/help-browser.png' /></form></td></tr> +# <input type='image' alt='$Lang::tr{'caption'}' title='$Lang::tr{'caption'}' src='/images/help-browser.png' /></form></td></tr> #</table> #END #; diff --git a/html/cgi-bin/updatexlrator.cgi b/html/cgi-bin/updatexlrator.cgi index df77a86..6cd9668 100644 --- a/html/cgi-bin/updatexlrator.cgi +++ b/html/cgi-bin/updatexlrator.cgi @@ -517,7 +517,7 @@ END $id = 0; foreach $updatefile (@downloadfiles) { - $updatefile =~ s/.*://; + $updatefile =~ s/.*:download/download/; my $size_updatefile = 0; my $mtime = 0; if(-e "$repository/$updatefile") { @@ -971,7 +971,8 @@ foreach (@sources) { next if(/.info$/); $updatefile = substr($_,rindex($_,"/")+1); - $updatefile .= ":download/$vendorid/$updatefile"; + $_ = $updatefile; tr/[A-Z]/[a-z]/; + $updatefile = "$_:separator:download/$vendorid/$updatefile"; $updatefile = " ".$updatefile; push(@repositoryfiles,$updatefile); } @@ -1002,7 +1003,7 @@ foreach (@sources) chomp($sourceurl); $updatefile = substr($sourceurl,rindex($sourceurl,'/')+1,length($sourceurl)); $_ = $updatefile; tr/[A-Z]/[a-z]/; - $updatefile = "$_:$vendorid/$uuid/$updatefile"; + $updatefile = "$_:separator:$vendorid/$uuid/$updatefile"; push(@repositoryfiles,$updatefile); } } @@ -1145,7 +1146,7 @@ END $id = 0; foreach $updatefile (@files) { - $updatefile =~ s/.*://; + $updatefile =~ s/.*:separator://; my $size_updatefile = 0; my $mtime = 0; if(-e "$repository/$updatefile") { diff --git a/html/cgi-bin/upnp.cgi b/html/cgi-bin/upnp.cgi index 8d2666e..07dfa26 100644 --- a/html/cgi-bin/upnp.cgi +++ b/html/cgi-bin/upnp.cgi @@ -82,7 +82,7 @@ if ($upnpsettings{'ACTION'} eq $Lang::tr{'save'}) debug_mode = $upnpsettings{'DEBUGMODE'} insert_forward_rules = $upnpsettings{'FORWARDRULES'} forward_chain_name = FORWARD -prerouting_chain_name = PORTFW +prerouting_chain_name = UPNPFW upstream_bitrate = $upnpsettings{'DOWNSTREAM'} downstream_bitrate = $upnpsettings{'UPSTREAM'} description_document_name = $upnpsettings{'DESCRIPTION'} @@ -133,7 +133,7 @@ print <<END <table width='95%' cellspacing='0'> END ; -if ( $message ne "" ) {print "<tr><td colspan='3' align='center'><font color='red'>$message</font>";} +if ( $message ne "" ) {print "<tr><td colspan='3' style='text-align:center; color:red;'>$message</td></tr>";}
my $lines = 0; my $key = ''; @@ -164,7 +164,7 @@ print <<END <tr><td align='left'>Upstream in KB:</td><td><input type='text' name='UPSTREAM' value='$upnpsettings{'UPSTREAM'}' size="30" /></td></tr> <tr><td align='left' colspan='2'><br /></td></tr> <tr><td colspan='2' align='center'> <input type='hidden' name='ACTION' value=$Lang::tr{'save'} /> - <input type='image' alt=$Lang::tr{'save'} src='/images/floppy.gif' /></td></tr> +<input type='image' alt='$Lang::tr{'save'}' title='$Lang::tr{'save'}' src='/images/floppy.gif' /></td></tr> </table></form> END ; @@ -199,9 +199,9 @@ print "</table>"; ############################################################################################################################
sub isrunning - { +{ my $cmd = $_[0]; - my $status = "<td bgcolor='${Header::colourred}' align='center'><font color='white'><b>$Lang::tr{'stopped'}</b></font></td>"; + my $status = "<td bgcolor='${Header::colourred}' style='text-align:center; color:white;'><b>$Lang::tr{'stopped'}</b></td>"; my $pid = ''; my $testcmd = ''; my $exename; @@ -219,9 +219,10 @@ sub isrunning {if (/^Name:\W+(.*)/) {$testcmd = $1; }} close FILE; if ($testcmd =~ /$exename/) - {$status = "<td bgcolor='${Header::colourgreen}'><font color='white'><b>$Lang::tr{'running'}</b></font></td>";} + {$status = "<td style='color:white; background-color:${Header::colourgreen};'><b>$Lang::tr{'running'}</b></td>";} } }
return $status; - } +} + diff --git a/html/cgi-bin/urlfilter.cgi b/html/cgi-bin/urlfilter.cgi index 1b40a3c..9f7e6ff 100644 --- a/html/cgi-bin/urlfilter.cgi +++ b/html/cgi-bin/urlfilter.cgi @@ -1170,7 +1170,7 @@ if (!($filtersettings{'ACTION'} eq $Lang::tr{'urlfilter manage repository'})) {
print "<form method='post' action='$ENV{'SCRIPT_NAME'}' enctype='multipart/form-data'>\n";
-&Header::openbox('100%', 'left', "$Lang::tr{'urlfilter filter settings'}:"); +&Header::openbox('100%', 'left', "$Lang::tr{'urlfilter filter settings'}"); print <<END <table width='100%'> <tr> @@ -1524,7 +1524,7 @@ print "</form>\n";
print "<form method='post' action='$ENV{'SCRIPT_NAME'}' enctype='multipart/form-data'>\n";
-&Header::openbox('100%', 'left', "$Lang::tr{'urlfilter maintenance'}:"); +&Header::openbox('100%', 'left', "$Lang::tr{'urlfilter maintenance'}");
print <<END <table width='100%'> diff --git a/html/cgi-bin/vpnmain.cgi b/html/cgi-bin/vpnmain.cgi index a40894e..f5ec500 100644 --- a/html/cgi-bin/vpnmain.cgi +++ b/html/cgi-bin/vpnmain.cgi @@ -23,7 +23,7 @@ use Net::DNS; use File::Copy; use File::Temp qw/ tempfile tempdir /; use strict; - +use Sort::Naturally; # enable only the following on debugging purpose #use warnings; #use CGI::Carp 'fatalsToBrowser'; @@ -69,6 +69,8 @@ if (&Header::orange_used() && $netsettings{'ORANGE_DEV'}) { $orange_cidr = &General::ipcidr("$netsettings{'ORANGE_NETADDRESS'}/$netsettings{'ORANGE_NETMASK'}"); }
+my $col=""; + $cgiparams{'ENABLED'} = 'off'; $cgiparams{'EDIT_ADVANCED'} = 'off'; $cgiparams{'ACTION'} = ''; @@ -104,7 +106,8 @@ $cgiparams{'ROOTCERT_OU'} = ''; $cgiparams{'ROOTCERT_CITY'} = ''; $cgiparams{'ROOTCERT_STATE'} = ''; $cgiparams{'RW_NET'} = ''; - +$cgiparams{'DPD_DELAY'} = '30'; +$cgiparams{'DPD_TIMEOUT'} = '120'; &Header::getcgihash(%cgiparams, {'wantfile' => 1, 'filevar' => 'FH'});
### @@ -384,9 +387,27 @@ sub writeipsecfiles { print CONF "\tcompress=yes\n" if ($lconfighash{$key}[13] eq 'on');
# Dead Peer Detection - print CONF "\tdpddelay=30\n"; - print CONF "\tdpdtimeout=120\n"; - print CONF "\tdpdaction=$lconfighash{$key}[27]\n"; + my $dpdaction = $lconfighash{$key}[27]; + print CONF "\tdpdaction=$dpdaction\n"; + + # If the dead peer detection is disabled and IKEv2 is used, + # dpddelay must be set to zero, too. + if ($dpdaction eq "none") { + if ($lconfighash{$key}[29] eq "ikev2") { + print CONF "\tdpddelay=0\n"; + } + } else { + my $dpddelay = $lconfighash{$key}[30]; + if (!$dpddelay) { + $dpddelay = 30; + } + print CONF "\tdpddelay=$dpddelay\n"; + my $dpdtimeout = $lconfighash{$key}[31]; + if (!$dpdtimeout) { + $dpdtimeout = 120; + } + print CONF "\tdpdtimeout=$dpdtimeout\n"; + }
# Build Authentication details: LEFTid RIGHTid : PSK psk my $psk_line; @@ -490,7 +511,7 @@ if ($cgiparams{'ACTION'} eq $Lang::tr{'save'} && $cgiparams{'TYPE'} eq '' && $cg ### } elsif ($cgiparams{'ACTION'} eq $Lang::tr{'remove x509'}) { &Header::showhttpheaders(); - &Header::openpage($Lang::tr{'vpn configuration main'}, 1, ''); + &Header::openpage($Lang::tr{'ipsec'}, 1, ''); &Header::openbigbox('100%', 'left', '', ''); &Header::openbox('100%', 'left', $Lang::tr{'are you sure'}); print <<END @@ -586,7 +607,7 @@ END
if ( -f "${General::swroot}/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem") { &Header::showhttpheaders(); - &Header::openpage($Lang::tr{'vpn configuration main'}, 1, ''); + &Header::openpage($Lang::tr{'ipsec'}, 1, ''); &Header::openbigbox('100%', 'left', '', ''); &Header::openbox('100%', 'left', "$Lang::tr{'ca certificate'}:"); my $output = `/usr/bin/openssl x509 -text -in ${General::swroot}/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem`; @@ -662,7 +683,7 @@ END } if ($assignedcerts) { &Header::showhttpheaders(); - &Header::openpage($Lang::tr{'vpn configuration main'}, 1, ''); + &Header::openpage($Lang::tr{'ipsec'}, 1, ''); &Header::openbigbox('100%', 'left', '', ''); &Header::openbox('100%', 'left', $Lang::tr{'are you sure'}); print <<END @@ -707,7 +728,7 @@ END $cgiparams{'ACTION'} eq $Lang::tr{'show host certificate'}) { my $output; &Header::showhttpheaders(); - &Header::openpage($Lang::tr{'vpn configuration main'}, 1, ''); + &Header::openpage($Lang::tr{'ipsec'}, 1, ''); &Header::openbigbox('100%', 'left', '', ''); if ($cgiparams{'ACTION'} eq $Lang::tr{'show root certificate'}) { &Header::openbox('100%', 'left', "$Lang::tr{'root certificate'}:"); @@ -1033,7 +1054,7 @@ END
ROOTCERT_ERROR: &Header::showhttpheaders(); - &Header::openpage($Lang::tr{'vpn configuration main'}, 1, ''); + &Header::openpage($Lang::tr{'ipsec'}, 1, ''); &Header::openbigbox('100%', 'left', '', $errormessage); if ($errormessage) { &Header::openbox('100%', 'left', $Lang::tr{'error messages'}); @@ -1078,7 +1099,7 @@ END <b><font color='${Header::colourred}'>$Lang::tr{'capswarning'}</font></b>: $Lang::tr{'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient'} </td></tr> - <tr><td colspan='2'><hr /></td></tr> + <tr><td colspan='2'><hr></td></tr> <tr><td class='base' nowrap='nowrap'>$Lang::tr{'upload p12 file'}:</td> <td nowrap='nowrap'><input type='file' name='FH' size='32' /></td></tr> <tr><td class='base'>$Lang::tr{'pkcs12 file password'}: <img src='/blob.gif' alt='*' /></td> @@ -1120,7 +1141,7 @@ END
if ( -f "${General::swroot}/certs/$confighash{$cgiparams{'KEY'}}[1]cert.pem") { &Header::showhttpheaders(); - &Header::openpage($Lang::tr{'vpn configuration main'}, 1, ''); + &Header::openpage($Lang::tr{'ipsec'}, 1, ''); &Header::openbigbox('100%', 'left', '', ''); &Header::openbox('100%', 'left', "$Lang::tr{'cert'}:"); my $output = `/usr/bin/openssl x509 -text -in ${General::swroot}/certs/$confighash{$cgiparams{'KEY'}}[1]cert.pem`; @@ -1204,13 +1225,13 @@ END } else { $errormessage = $Lang::tr{'invalid key'}; } - + &General::firewall_reload(); ### ### Choose between adding a host-net or net-net connection ### } elsif ($cgiparams{'ACTION'} eq $Lang::tr{'add'} && $cgiparams{'TYPE'} eq '') { &Header::showhttpheaders(); - &Header::openpage($Lang::tr{'vpn configuration main'}, 1, ''); + &Header::openpage($Lang::tr{'ipsec'}, 1, ''); &Header::openbigbox('100%', 'left', '', ''); &Header::openbox('100%', 'left', $Lang::tr{'connection type'}); print <<END @@ -1274,6 +1295,16 @@ END $cgiparams{'ONLY_PROPOSED'} = $confighash{$cgiparams{'KEY'}}[24]; $cgiparams{'PFS'} = $confighash{$cgiparams{'KEY'}}[28]; $cgiparams{'VHOST'} = $confighash{$cgiparams{'KEY'}}[14]; + $cgiparams{'DPD_TIMEOUT'} = $confighash{$cgiparams{'KEY'}}[30]; + $cgiparams{'DPD_DELAY'} = $confighash{$cgiparams{'KEY'}}[31]; + + if (!$cgiparams{'DPD_DELAY'}) { + $cgiparams{'DPD_DELAY'} = 30; + } + + if (!$cgiparams{'DPD_TIMEOUT'}) { + $cgiparams{'DPD_TIMEOUT'} = 120; + }
} elsif ($cgiparams{'ACTION'} eq $Lang::tr{'save'}) { $cgiparams{'REMARK'} = &Header::cleanhtml($cgiparams{'REMARK'}); @@ -1376,14 +1407,13 @@ END goto VPNCONF_ERROR; }
-#temporary disabled (BUG 10294) -# if ($cgiparams{'TYPE'} eq 'net'){ -# $errormessage=&General::checksubnets($cgiparams{'NAME'},$cgiparams{'REMOTE_SUBNET'}); -# if ($errormessage ne ''){ -# goto VPNCONF_ERROR; -# } -# -# } + if ($cgiparams{'TYPE'} eq 'net'){ + $warnmessage=&General::checksubnets('',$cgiparams{'REMOTE_SUBNET'},'ipsec'); + if ($warnmessage ne ''){ + $warnmessage=$Lang::tr{'remote subnet'}." ($cgiparams{'REMOTE_SUBNET'}) <br>".$warnmessage; + } + } + if ($cgiparams{'AUTH'} eq 'psk') { if (! length($cgiparams{'PSK'}) ) { $errormessage = $Lang::tr{'pre-shared key is too short'}; @@ -1748,7 +1778,7 @@ END my $key = $cgiparams{'KEY'}; if (! $key) { $key = &General::findhasharraykey (%confighash); - foreach my $i (0 .. 28) { $confighash{$key}[$i] = "";} + foreach my $i (0 .. 31) { $confighash{$key}[$i] = "";} } $confighash{$key}[0] = $cgiparams{'ENABLED'}; $confighash{$key}[1] = $cgiparams{'NAME'}; @@ -1788,6 +1818,8 @@ END $confighash{$key}[24] = $cgiparams{'ONLY_PROPOSED'}; $confighash{$key}[28] = $cgiparams{'PFS'}; $confighash{$key}[14] = $cgiparams{'VHOST'}; + $confighash{$key}[30] = $cgiparams{'DPD_TIMEOUT'}; + $confighash{$key}[31] = $cgiparams{'DPD_DELAY'};
#free unused fields! $confighash{$key}[6] = 'off'; @@ -1823,9 +1855,17 @@ END
# choose appropriate dpd action if ($cgiparams{'TYPE'} eq 'host') { - $cgiparams{'DPD_ACTION'} = 'clear'; + $cgiparams{'DPD_ACTION'} = 'clear'; } else { - $cgiparams{'DPD_ACTION'} = 'restart'; + $cgiparams{'DPD_ACTION'} = 'restart'; + } + + if (!$cgiparams{'DPD_DELAY'}) { + $cgiparams{'DPD_DELAY'} = 30; + } + + if (!$cgiparams{'DPD_TIMEOUT'}) { + $cgiparams{'DPD_TIMEOUT'} = 120; }
# Default IKE Version to v2 @@ -1869,17 +1909,8 @@ END $checked{'AUTH'}{'auth-dn'} = ''; $checked{'AUTH'}{$cgiparams{'AUTH'}} = "checked='checked'";
- $selected{'DPD_ACTION'}{'clear'} = ''; - $selected{'DPD_ACTION'}{'hold'} = ''; - $selected{'DPD_ACTION'}{'restart'} = ''; - $selected{'DPD_ACTION'}{$cgiparams{'DPD_ACTION'}} = "selected='selected'"; - - $selected{'IKE_VERSION'}{'ikev1'} = ''; - $selected{'IKE_VERSION'}{'ikev2'} = ''; - $selected{'IKE_VERSION'}{$cgiparams{'IKE_VERSION'}} = "selected='selected'"; - &Header::showhttpheaders(); - &Header::openpage($Lang::tr{'vpn configuration main'}, 1, ''); + &Header::openpage($Lang::tr{'ipsec'}, 1, ''); &Header::openbigbox('100%', 'left', '', $errormessage); if ($errormessage) { &Header::openbox('100%', 'left', $Lang::tr{'error messages'}); @@ -1898,6 +1929,7 @@ END print "<form method='post' enctype='multipart/form-data' action='$ENV{'SCRIPT_NAME'}'>"; print<<END <input type='hidden' name='TYPE' value='$cgiparams{'TYPE'}' /> + <input type='hidden' name='IKE_VERSION' value='$cgiparams{'IKE_VERSION'}' /> <input type='hidden' name='IKE_ENCRYPTION' value='$cgiparams{'IKE_ENCRYPTION'}' /> <input type='hidden' name='IKE_INTEGRITY' value='$cgiparams{'IKE_INTEGRITY'}' /> <input type='hidden' name='IKE_GROUPTYPE' value='$cgiparams{'IKE_GROUPTYPE'}' /> @@ -1910,23 +1942,30 @@ END <input type='hidden' name='ONLY_PROPOSED' value='$cgiparams{'ONLY_PROPOSED'}' /> <input type='hidden' name='PFS' value='$cgiparams{'PFS'}' /> <input type='hidden' name='VHOST' value='$cgiparams{'VHOST'}' /> + <input type='hidden' name='DPD_ACTION' value='$cgiparams{'DPD_ACTION'}' /> + <input type='hidden' name='DPD_DELAY' value='$cgiparams{'DPD_DELAY'}' /> + <input type='hidden' name='DPD_TIMEOUT' value='$cgiparams{'DPD_TIMEOUT'}' /> END ; if ($cgiparams{'KEY'}) { print "<input type='hidden' name='KEY' value='$cgiparams{'KEY'}' />"; + print "<input type='hidden' name='NAME' value='$cgiparams{'NAME'}' />"; print "<input type='hidden' name='AUTH' value='$cgiparams{'AUTH'}' />"; }
- &Header::openbox('100%', 'left', "$Lang::tr{'connection'}:"); + &Header::openbox('100%', 'left', "$Lang::tr{'connection'}: $cgiparams{'NAME'}"); print "<table width='100%'>"; - print "<tr><td width='25%' class='boldbase'>$Lang::tr{'name'}:</td>"; - if ($cgiparams{'KEY'}) { - print "<td width='25%' class='base'><input type='hidden' name='NAME' value='$cgiparams{'NAME'}' /><b>$cgiparams{'NAME'}</b></td>"; - } else { - print "<td width='25%'><input type='text' name='NAME' value='$cgiparams{'NAME'}' size='30' /></td>"; + if (!$cgiparams{'KEY'}) { + print <<EOF; + <tr> + <td width='20%'>$Lang::tr{'name'}:</td> + <td width='30%'> + <input type='text' name='NAME' value='$cgiparams{'NAME'}' size='25' /> + </td> + <td colspan="2"></td> + </tr> +EOF } - print "<td>$Lang::tr{'enabled'}</td><td><input type='checkbox' name='ENABLED' $checked{'ENABLED'}{'on'} /></td></tr>"; - print '</tr><td><br /></td><tr>';
my $disabled; my $blob; @@ -1937,44 +1976,41 @@ END
print <<END <tr> - <td class='boldbase'>$Lang::tr{'remote host/ip'}: $blob</td> - <td> - <input type='text' name='REMOTE' value='$cgiparams{'REMOTE'}' size='30' /> - </td> - <td class='boldbase' nowrap='nowrap'>$Lang::tr{'remote subnet'}</td> - <td> - <input $disabled type='text' name='REMOTE_SUBNET' value='$cgiparams{'REMOTE_SUBNET'}' size='30' /> + <td width='20%'>$Lang::tr{'enabled'}</td> + <td width='30%'> + <input type='checkbox' name='ENABLED' $checked{'ENABLED'}{'on'} /> + </td> + <td class='boldbase' nowrap='nowrap' width='20%'>$Lang::tr{'local subnet'}</td> + <td width='30%'> + <input type='text' name='LOCAL_SUBNET' value='$cgiparams{'LOCAL_SUBNET'}' size="25" /> </td> </tr> <tr> - <td class='boldbase' nowrap='nowrap'>$Lang::tr{'local subnet'}</td> - <td colspan='3'> - <input type='text' name='LOCAL_SUBNET' value='$cgiparams{'LOCAL_SUBNET'}' size='30' /> + <td class='boldbase' width='20%'>$Lang::tr{'remote host/ip'}: $blob</td> + <td width='30%'> + <input type='text' name='REMOTE' value='$cgiparams{'REMOTE'}' size="25" /> + </td> + <td class='boldbase' nowrap='nowrap' width='20%'>$Lang::tr{'remote subnet'}</td> + <td width='30%'> + <input $disabled type='text' name='REMOTE_SUBNET' value='$cgiparams{'REMOTE_SUBNET'}' size="25" /> </td> </tr> <tr> - <td class='boldbase'>$Lang::tr{'vpn local id'}:<br />($Lang::tr{'eg'} <tt>@xy.example.com</tt>)</td> - <td><input type='text' name='LOCAL_ID' value='$cgiparams{'LOCAL_ID'}' /></td> - <td class='boldbase'>$Lang::tr{'vpn remote id'}:</td> - <td><input type='text' name='REMOTE_ID' value='$cgiparams{'REMOTE_ID'}' /></td> - </tr><tr> - </tr><td><br /></td><tr> - <td>$Lang::tr{'vpn keyexchange'}:</td> - <td><select name='IKE_VERSION'> - <option value='ikev2' $selected{'IKE_VERSION'}{'ikev2'}>IKEv2</option> - <option value='ikev1' $selected{'IKE_VERSION'}{'ikev1'}>IKEv1</option> - </select> + <td class='boldbase' width='20%'>$Lang::tr{'vpn local id'}:</td> + <td width='30%'> + <input type='text' name='LOCAL_ID' value='$cgiparams{'LOCAL_ID'}' size="25" /> </td> - <td>$Lang::tr{'dpd action'}:</td> - <td><select name='DPD_ACTION'> - <option value='clear' $selected{'DPD_ACTION'}{'clear'}>clear</option> - <option value='hold' $selected{'DPD_ACTION'}{'hold'}>hold</option> - <option value='restart' $selected{'DPD_ACTION'}{'restart'}>restart</option> - </select> + <td class='boldbase' width='20%'>$Lang::tr{'vpn remote id'}:</td> + <td width='30%'> + <input type='text' name='REMOTE_ID' value='$cgiparams{'REMOTE_ID'}' size="25" /> + </td> + </tr> + <tr><td colspan="4"><br /></td></tr> + <tr> + <td class='boldbase' width='20%'>$Lang::tr{'remark title'} <img src='/blob.gif' alt='*' /></td> + <td colspan='3'> + <input type='text' name='REMARK' value='$cgiparams{'REMARK'}' maxlength='50' size="73" /> </td> - </tr><tr> - <td class='boldbase'>$Lang::tr{'remark title'} <img src='/blob.gif' alt='*' /></td> - <td colspan='3'><input type='text' name='REMARK' value='$cgiparams{'REMARK'}' size='55' maxlength='50' /></td> </tr> END ; @@ -2101,7 +2137,7 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || goto ADVANCED_ERROR; } foreach my $val (@temp) { - if ($val !~ /^(aes256|aes192|aes128|3des)$/) { + if ($val !~ /^(aes256|aes192|aes128|3des|camellia256|camellia192|camellia128)$/) { $errormessage = $Lang::tr{'invalid input'}; goto ADVANCED_ERROR; } @@ -2123,7 +2159,7 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || goto ADVANCED_ERROR; } foreach my $val (@temp) { - if ($val !~ /^(e521|e384|e256|e224|e192|1024|1536|2048|3072|4096|6144|8192)$/) { + if ($val !~ /^(e521|e384|e256|e224|e192|e512bp|e384bp|e256bp|e224bp|1024|1536|2048|2048s256|2048s224|2048s160|3072|4096|6144|8192)$/) { $errormessage = $Lang::tr{'invalid input'}; goto ADVANCED_ERROR; } @@ -2142,7 +2178,7 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || goto ADVANCED_ERROR; } foreach my $val (@temp) { - if ($val !~ /^(aes256|aes192|aes128|3des)$/) { + if ($val !~ /^(aes256|aes192|aes128|3des|camellia256|camellia192|camellia128)$/) { $errormessage = $Lang::tr{'invalid input'}; goto ADVANCED_ERROR; } @@ -2159,8 +2195,8 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || } } if ($cgiparams{'ESP_GROUPTYPE'} ne '' && - $cgiparams{'ESP_GROUPTYPE'} !~ /^ecp(192|224|256|384|512)$/ && - $cgiparams{'ESP_GROUPTYPE'} !~ /^modp(1024|1536|2048|3072|4096|6144|8192)$/) { + $cgiparams{'ESP_GROUPTYPE'} !~ /^ecp(192|224|256|384|512)(bp)?$/ && + $cgiparams{'ESP_GROUPTYPE'} !~ /^modp(1024|1536|2048|2048s(256|224|160)|3072|4096|6144|8192)$/) { $errormessage = $Lang::tr{'invalid input'}; goto ADVANCED_ERROR; } @@ -2184,6 +2220,17 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || goto ADVANCED_ERROR; }
+ if ($cgiparams{'DPD_DELAY'} !~ /^\d+$/) { + $errormessage = $Lang::tr{'invalid input for dpd delay'}; + goto ADVANCED_ERROR; + } + + if ($cgiparams{'DPD_TIMEOUT'} !~ /^\d+$/) { + $errormessage = $Lang::tr{'invalid input for dpd timeout'}; + goto ADVANCED_ERROR; + } + + $confighash{$cgiparams{'KEY'}}[29] = $cgiparams{'IKE_VERSION'}; $confighash{$cgiparams{'KEY'}}[18] = $cgiparams{'IKE_ENCRYPTION'}; $confighash{$cgiparams{'KEY'}}[19] = $cgiparams{'IKE_INTEGRITY'}; $confighash{$cgiparams{'KEY'}}[20] = $cgiparams{'IKE_GROUPTYPE'}; @@ -2197,6 +2244,9 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || $confighash{$cgiparams{'KEY'}}[24] = $cgiparams{'ONLY_PROPOSED'}; $confighash{$cgiparams{'KEY'}}[28] = $cgiparams{'PFS'}; $confighash{$cgiparams{'KEY'}}[14] = $cgiparams{'VHOST'}; + $confighash{$cgiparams{'KEY'}}[27] = $cgiparams{'DPD_ACTION'}; + $confighash{$cgiparams{'KEY'}}[30] = $cgiparams{'DPD_TIMEOUT'}; + $confighash{$cgiparams{'KEY'}}[31] = $cgiparams{'DPD_DELAY'}; &General::writehasharray("${General::swroot}/vpn/config", %confighash); &writeipsecfiles(); if (&vpnenabled) { @@ -2205,6 +2255,7 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || } goto ADVANCED_END; } else { + $cgiparams{'IKE_VERSION'} = $confighash{$cgiparams{'KEY'}}[29]; $cgiparams{'IKE_ENCRYPTION'} = $confighash{$cgiparams{'KEY'}}[18]; $cgiparams{'IKE_INTEGRITY'} = $confighash{$cgiparams{'KEY'}}[19]; $cgiparams{'IKE_GROUPTYPE'} = $confighash{$cgiparams{'KEY'}}[20]; @@ -2217,6 +2268,17 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || $cgiparams{'ONLY_PROPOSED'} = $confighash{$cgiparams{'KEY'}}[24]; $cgiparams{'PFS'} = $confighash{$cgiparams{'KEY'}}[28]; $cgiparams{'VHOST'} = $confighash{$cgiparams{'KEY'}}[14]; + $cgiparams{'DPD_ACTION'} = $confighash{$cgiparams{'KEY'}}[27]; + $cgiparams{'DPD_TIMEOUT'} = $confighash{$cgiparams{'KEY'}}[30]; + $cgiparams{'DPD_DELAY'} = $confighash{$cgiparams{'KEY'}}[31]; + + if (!$cgiparams{'DPD_DELAY'}) { + $cgiparams{'DPD_DELAY'} = 30; + } + + if (!$cgiparams{'DPD_TIMEOUT'}) { + $cgiparams{'DPD_TIMEOUT'} = 120; + }
if ($confighash{$cgiparams{'KEY'}}[3] eq 'net' || $confighash{$cgiparams{'KEY'}}[10]) { $cgiparams{'VHOST'} = 'off'; @@ -2228,6 +2290,9 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || $checked{'IKE_ENCRYPTION'}{'aes192'} = ''; $checked{'IKE_ENCRYPTION'}{'aes128'} = ''; $checked{'IKE_ENCRYPTION'}{'3des'} = ''; + $checked{'IKE_ENCRYPTION'}{'camellia256'} = ''; + $checked{'IKE_ENCRYPTION'}{'camellia192'} = ''; + $checked{'IKE_ENCRYPTION'}{'camellia128'} = ''; my @temp = split('|', $cgiparams{'IKE_ENCRYPTION'}); foreach my $key (@temp) {$checked{'IKE_ENCRYPTION'}{$key} = "selected='selected'"; } $checked{'IKE_INTEGRITY'}{'sha2_512'} = ''; @@ -2256,6 +2321,9 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || $checked{'ESP_ENCRYPTION'}{'aes192'} = ''; $checked{'ESP_ENCRYPTION'}{'aes128'} = ''; $checked{'ESP_ENCRYPTION'}{'3des'} = ''; + $checked{'ESP_ENCRYPTION'}{'camellia256'} = ''; + $checked{'ESP_ENCRYPTION'}{'camellia192'} = ''; + $checked{'ESP_ENCRYPTION'}{'camellia128'} = ''; @temp = split('|', $cgiparams{'ESP_ENCRYPTION'}); foreach my $key (@temp) {$checked{'ESP_ENCRYPTION'}{$key} = "selected='selected'"; } $checked{'ESP_INTEGRITY'}{'sha2_512'} = ''; @@ -2273,8 +2341,18 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || $checked{'PFS'} = $cgiparams{'PFS'} eq 'on' ? "checked='checked'" : '' ; $checked{'VHOST'} = $cgiparams{'VHOST'} eq 'on' ? "checked='checked'" : '' ;
+ $selected{'IKE_VERSION'}{'ikev1'} = ''; + $selected{'IKE_VERSION'}{'ikev2'} = ''; + $selected{'IKE_VERSION'}{$cgiparams{'IKE_VERSION'}} = "selected='selected'"; + + $selected{'DPD_ACTION'}{'clear'} = ''; + $selected{'DPD_ACTION'}{'hold'} = ''; + $selected{'DPD_ACTION'}{'restart'} = ''; + $selected{'DPD_ACTION'}{'none'} = ''; + $selected{'DPD_ACTION'}{$cgiparams{'DPD_ACTION'}} = "selected='selected'"; + &Header::showhttpheaders(); - &Header::openpage($Lang::tr{'vpn configuration main'}, 1, ''); + &Header::openpage($Lang::tr{'ipsec'}, 1, ''); &Header::openbigbox('100%', 'left', '', $errormessage);
if ($errormessage) { @@ -2298,96 +2376,191 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || <input type='hidden' name='KEY' value='$cgiparams{'KEY'}' />
<table width='100%'> - <tr><td class='boldbase' align='right' valign='top'>$Lang::tr{'ike encryption'}</td><td class='boldbase' valign='top'> - <select name='IKE_ENCRYPTION' multiple='multiple' size='4'> - <option value='aes256' $checked{'IKE_ENCRYPTION'}{'aes256'}>AES (256 bit)</option> - <option value='aes192' $checked{'IKE_ENCRYPTION'}{'aes192'}>AES (192 bit)</option> - <option value='aes128' $checked{'IKE_ENCRYPTION'}{'aes128'}>AES (128 bit)</option> - <option value='3des' $checked{'IKE_ENCRYPTION'}{'3des'}>3DES</option> - </select></td> - - <td class='boldbase' align='right' valign='top'>$Lang::tr{'ike integrity'}</td><td class='boldbase' valign='top'> - <select name='IKE_INTEGRITY' multiple='multiple' size='4'> - <option value='sha2_512' $checked{'IKE_INTEGRITY'}{'sha2_512'}>SHA2 512 bit</option> - <option value='sha2_384' $checked{'IKE_INTEGRITY'}{'sha2_384'}>SHA2 384 bit</option> - <option value='sha2_256' $checked{'IKE_INTEGRITY'}{'sha2_256'}>SHA2 256 bit</option> - <option value='sha' $checked{'IKE_INTEGRITY'}{'sha'}>SHA1</option> - <option value='md5' $checked{'IKE_INTEGRITY'}{'md5'}>MD5</option> - <option value='aesxcbc' $checked{'IKE_INTEGRITY'}{'aesxcbc'}>AES XCBC</option> - </select></td> - - <td class='boldbase' align='right' valign='top'>$Lang::tr{'ike grouptype'}</td><td class='boldbase' valign='top'> - <select name='IKE_GROUPTYPE' multiple='multiple' size='4'> - <option value='e521' $checked{'IKE_GROUPTYPE'}{'e521'}>ECP-521</option> - <option value='e384' $checked{'IKE_GROUPTYPE'}{'e384'}>ECP-384</option> - <option value='e256' $checked{'IKE_GROUPTYPE'}{'e256'}>ECP-256</option> - <option value='e224' $checked{'IKE_GROUPTYPE'}{'e224'}>ECP-224</option> - <option value='e192' $checked{'IKE_GROUPTYPE'}{'e192'}>ECP-192</option> - <option value='8192' $checked{'IKE_GROUPTYPE'}{'8192'}>MODP-8192</option> - <option value='6144' $checked{'IKE_GROUPTYPE'}{'6144'}>MODP-6144</option> - <option value='4096' $checked{'IKE_GROUPTYPE'}{'4096'}>MODP-4096</option> - <option value='3072' $checked{'IKE_GROUPTYPE'}{'3072'}>MODP-3072</option> - <option value='2048' $checked{'IKE_GROUPTYPE'}{'2048'}>MODP-2048</option> - <option value='1536' $checked{'IKE_GROUPTYPE'}{'1536'}>MODP-1536</option> - <option value='1024' $checked{'IKE_GROUPTYPE'}{'1024'}>MODP-1024</option> - </select></td> - </tr><tr> - <td class='boldbase' align='right' valign='top'>$Lang::tr{'ike lifetime'}</td><td class='boldbase' valign='top'> - <input type='text' name='IKE_LIFETIME' value='$cgiparams{'IKE_LIFETIME'}' size='5' /> $Lang::tr{'hours'}</td> - - </tr><tr> - <td colspan='1'><hr /></td> - </tr><tr> - <td class='boldbase' align='right' valign='top'>$Lang::tr{'esp encryption'}</td><td class='boldbase' valign='top'> - <select name='ESP_ENCRYPTION' multiple='multiple' size='4'> - <option value='aes256' $checked{'ESP_ENCRYPTION'}{'aes256'}>AES (256 bit)</option> - <option value='aes192' $checked{'ESP_ENCRYPTION'}{'aes192'}>AES (192 bit)</option> - <option value='aes128' $checked{'ESP_ENCRYPTION'}{'aes128'}>AES (128 bit)</option> - <option value='3des' $checked{'ESP_ENCRYPTION'}{'3des'}>3DES</option> - - <td class='boldbase' align='right' valign='top'>$Lang::tr{'esp integrity'}</td><td class='boldbase' valign='top'> - <select name='ESP_INTEGRITY' multiple='multiple' size='4'> - <option value='sha2_512' $checked{'ESP_INTEGRITY'}{'sha2_512'}>SHA2 512 bit</option> - <option value='sha2_384' $checked{'ESP_INTEGRITY'}{'sha2_384'}>SHA2 384 bit</option> - <option value='sha2_256' $checked{'ESP_INTEGRITY'}{'sha2_256'}>SHA2 256 bit</option> - <option value='sha1' $checked{'ESP_INTEGRITY'}{'sha1'}>SHA1</option> - <option value='md5' $checked{'ESP_INTEGRITY'}{'md5'}>MD5</option> - <option value='aesxcbc' $checked{'ESP_INTEGRITY'}{'aesxcbc'}>AES XCBC</option> - </select></td> - - <td class='boldbase' align='right' valign='top'>$Lang::tr{'esp grouptype'}</td><td class='boldbase' valign='top'> - <select name='ESP_GROUPTYPE'> - <option value=''>$Lang::tr{'phase1 group'}</option></select></td> - </tr><tr> - <td class='boldbase' align='right' valign='top'>$Lang::tr{'esp keylife'}</td><td class='boldbase' valign='top'> - <input type='text' name='ESP_KEYLIFE' value='$cgiparams{'ESP_KEYLIFE'}' size='5' /> $Lang::tr{'hours'}</td> - </tr><tr> - <td colspan='1'><hr /></td> - </tr><tr> - <td colspan='5'><input type='checkbox' name='ONLY_PROPOSED' $checked{'ONLY_PROPOSED'} /> - IKE+ESP: $Lang::tr{'use only proposed settings'}</td> - </tr><tr> - <td colspan='5'><input type='checkbox' name='PFS' $checked{'PFS'} /> - $Lang::tr{'pfs yes no'}</td> - <td align='right'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td> - </tr><tr> - <td colspan='5'><input type='checkbox' name='COMPRESSION' $checked{'COMPRESSION'} /> - $Lang::tr{'vpn payload compression'}</td> - <td align='right'><input type='submit' name='ACTION' value='$Lang::tr{'cancel'}' /></td> + <thead> + <tr> + <th width="15%"></th> + <th>IKE</th> + <th>ESP</th> + </tr> + </thead> + <tbody> + <tr> + <td>$Lang::tr{'vpn keyexchange'}:</td> + <td> + <select name='IKE_VERSION'> + <option value='ikev2' $selected{'IKE_VERSION'}{'ikev2'}>IKEv2</option> + <option value='ikev1' $selected{'IKE_VERSION'}{'ikev1'}>IKEv1</option> + </select> + </td> + <td></td> + </tr> + <tr> + <td class='boldbase' width="15%">$Lang::tr{'encryption'}</td> + <td class='boldbase'> + <select name='IKE_ENCRYPTION' multiple='multiple' size='6' style='width: 100%'> + <option value='aes256' $checked{'IKE_ENCRYPTION'}{'aes256'}>AES (256 bit)</option> + <option value='aes192' $checked{'IKE_ENCRYPTION'}{'aes192'}>AES (192 bit)</option> + <option value='aes128' $checked{'IKE_ENCRYPTION'}{'aes128'}>AES (128 bit)</option> + <option value='3des' $checked{'IKE_ENCRYPTION'}{'3des'}>3DES</option> + <option value='camellia256' $checked{'IKE_ENCRYPTION'}{'camellia256'}>Camellia (256 bit)</option> + <option value='camellia192' $checked{'IKE_ENCRYPTION'}{'camellia192'}>Camellia (192 bit)</option> + <option value='camellia128' $checked{'IKE_ENCRYPTION'}{'camellia128'}>Camellia (128 bit)</option> + </select> + </td> + <td class='boldbase'> + <select name='ESP_ENCRYPTION' multiple='multiple' size='6' style='width: 100%'> + <option value='aes256' $checked{'ESP_ENCRYPTION'}{'aes256'}>AES (256 bit)</option> + <option value='aes192' $checked{'ESP_ENCRYPTION'}{'aes192'}>AES (192 bit)</option> + <option value='aes128' $checked{'ESP_ENCRYPTION'}{'aes128'}>AES (128 bit)</option> + <option value='3des' $checked{'ESP_ENCRYPTION'}{'3des'}>3DES</option> + <option value='camellia256' $checked{'ESP_ENCRYPTION'}{'camellia256'}>Camellia (256 bit)</option> + <option value='camellia192' $checked{'ESP_ENCRYPTION'}{'camellia192'}>Camellia (192 bit)</option> + <option value='camellia128' $checked{'ESP_ENCRYPTION'}{'camellia128'}>Camellia (128 bit)</option> + </select> + </td> + </tr> + + <tr> + <td class='boldbase' width="15%">$Lang::tr{'integrity'}</td> + <td class='boldbase'> + <select name='IKE_INTEGRITY' multiple='multiple' size='6' style='width: 100%'> + <option value='sha2_512' $checked{'IKE_INTEGRITY'}{'sha2_512'}>SHA2 512 bit</option> + <option value='sha2_384' $checked{'IKE_INTEGRITY'}{'sha2_384'}>SHA2 384 bit</option> + <option value='sha2_256' $checked{'IKE_INTEGRITY'}{'sha2_256'}>SHA2 256 bit</option> + <option value='sha' $checked{'IKE_INTEGRITY'}{'sha'}>SHA1</option> + <option value='md5' $checked{'IKE_INTEGRITY'}{'md5'}>MD5</option> + <option value='aesxcbc' $checked{'IKE_INTEGRITY'}{'aesxcbc'}>AES XCBC</option> + </select> + </td> + <td class='boldbase'> + <select name='ESP_INTEGRITY' multiple='multiple' size='6' style='width: 100%'> + <option value='sha2_512' $checked{'ESP_INTEGRITY'}{'sha2_512'}>SHA2 512 bit</option> + <option value='sha2_384' $checked{'ESP_INTEGRITY'}{'sha2_384'}>SHA2 384 bit</option> + <option value='sha2_256' $checked{'ESP_INTEGRITY'}{'sha2_256'}>SHA2 256 bit</option> + <option value='sha1' $checked{'ESP_INTEGRITY'}{'sha1'}>SHA1</option> + <option value='md5' $checked{'ESP_INTEGRITY'}{'md5'}>MD5</option> + <option value='aesxcbc' $checked{'ESP_INTEGRITY'}{'aesxcbc'}>AES XCBC</option> + </select> + </td> + </tr> + <tr> + <td class='boldbase' width="15%">$Lang::tr{'lifetime'}</td> + <td class='boldbase'> + <input type='text' name='IKE_LIFETIME' value='$cgiparams{'IKE_LIFETIME'}' size='5' /> $Lang::tr{'hours'} + </td> + <td class='boldbase'> + <input type='text' name='ESP_KEYLIFE' value='$cgiparams{'ESP_KEYLIFE'}' size='5' /> $Lang::tr{'hours'} + </td> + </tr> + <tr> + <td class='boldbase' width="15%">$Lang::tr{'grouptype'}</td> + <td class='boldbase'> + <select name='IKE_GROUPTYPE' multiple='multiple' size='6' style='width: 100%'> + <option value='e521' $checked{'IKE_GROUPTYPE'}{'e521'}>ECP-521 (NIST)</option> + <option value='e384' $checked{'IKE_GROUPTYPE'}{'e384'}>ECP-384 (NIST)</option> + <option value='e256' $checked{'IKE_GROUPTYPE'}{'e256'}>ECP-256 (NIST)</option> + <option value='e224' $checked{'IKE_GROUPTYPE'}{'e224'}>ECP-224 (NIST)</option> + <option value='e192' $checked{'IKE_GROUPTYPE'}{'e192'}>ECP-192 (NIST)</option> + <option value='e512bp' $checked{'IKE_GROUPTYPE'}{'e512bp'}>ECP-512 (Brainpool)</option> + <option value='e384bp' $checked{'IKE_GROUPTYPE'}{'e384bp'}>ECP-384 (Brainpool)</option> + <option value='e256bp' $checked{'IKE_GROUPTYPE'}{'e256bp'}>ECP-256 (Brainpool)</option> + <option value='e224bp' $checked{'IKE_GROUPTYPE'}{'e224bp'}>ECP-224 (Brainpool)</option> + <option value='8192' $checked{'IKE_GROUPTYPE'}{'8192'}>MODP-8192</option> + <option value='6144' $checked{'IKE_GROUPTYPE'}{'6144'}>MODP-6144</option> + <option value='4096' $checked{'IKE_GROUPTYPE'}{'4096'}>MODP-4096</option> + <option value='3072' $checked{'IKE_GROUPTYPE'}{'3072'}>MODP-3072</option> + <option value='2048s256' $checked{'IKE_GROUPTYPE'}{'2048s256'}>MODP-2048/256</option> + <option value='2048s224' $checked{'IKE_GROUPTYPE'}{'2048s224'}>MODP-2048/224</option> + <option value='2048s160' $checked{'IKE_GROUPTYPE'}{'2048s160'}>MODP-2048/160</option> + <option value='2048' $checked{'IKE_GROUPTYPE'}{'2048'}>MODP-2048</option> + <option value='1536' $checked{'IKE_GROUPTYPE'}{'1536'}>MODP-1536</option> + <option value='1024' $checked{'IKE_GROUPTYPE'}{'1024'}>MODP-1024</option> + </select> + </td> + <td></td> + </tr> + </tbody> + </table> + + <br><br> + + <h2>$Lang::tr{'dead peer detection'}</h2> + + <table width="100%"> + <tr> + <td width="15%">$Lang::tr{'dpd action'}:</td> + <td> + <select name='DPD_ACTION'> + <option value='none' $selected{'DPD_ACTION'}{'none'}>- $Lang::tr{'disabled'} -</option> + <option value='clear' $selected{'DPD_ACTION'}{'clear'}>clear</option> + <option value='hold' $selected{'DPD_ACTION'}{'hold'}>hold</option> + <option value='restart' $selected{'DPD_ACTION'}{'restart'}>restart</option> + </select> + </td> + </tr> + <tr> + <td width="15%">$Lang::tr{'dpd timeout'}:</td> + <td> + <input type='text' name='DPD_TIMEOUT' size='5' value='$cgiparams{'DPD_TIMEOUT'}' /> + </td> + </tr> + <tr> + <td width="15%">$Lang::tr{'dpd delay'}:</td> + <td> + <input type='text' name='DPD_DELAY' size='5' value='$cgiparams{'DPD_DELAY'}' /> + </td> + </tr> + </table> + + <hr> + + <table width="100%"> + <tr> + <td> + <label> + <input type='checkbox' name='ONLY_PROPOSED' $checked{'ONLY_PROPOSED'} /> + IKE+ESP: $Lang::tr{'use only proposed settings'} + </label> + </td> + </tr> + <tr> + <td> + <label> + <input type='checkbox' name='PFS' $checked{'PFS'} /> + $Lang::tr{'pfs yes no'} + </label> + </td> + </tr> + <tr> + <td> + <label> + <input type='checkbox' name='COMPRESSION' $checked{'COMPRESSION'} /> + $Lang::tr{'vpn payload compression'} + </label> + </td> </tr> EOF ; if ($confighash{$cgiparams{'KEY'}}[3] eq 'net') { print "<tr><td><input type='hidden' name='VHOST' value='off' /></td></tr>"; } elsif ($confighash{$cgiparams{'KEY'}}[10]) { - print "<tr><td colspan='5'><input type='checkbox' name='VHOST' $checked{'VHOST'} disabled='disabled' />"; - print " $Lang::tr{'vpn vhost'}</td></tr>"; + print "<tr><td><label><input type='checkbox' name='VHOST' $checked{'VHOST'} disabled='disabled' />"; + print " $Lang::tr{'vpn vhost'}</label></td></tr>"; } else { - print "<tr><td colspan='5'><input type='checkbox' name='VHOST' $checked{'VHOST'} />"; - print " $Lang::tr{'vpn vhost'}</td></tr>"; + print "<tr><td><label><input type='checkbox' name='VHOST' $checked{'VHOST'} />"; + print " $Lang::tr{'vpn vhost'}</label></td></tr>"; }
- print "</table></form>"; + print <<EOF; + <tr> + <td align='right' colspan='2'> + <input type='submit' name='ACTION' value='$Lang::tr{'save'}' /> + <input type='submit' name='ACTION' value='$Lang::tr{'cancel'}' /> + </td> + </tr> + </table></form> +EOF + &Header::closebox(); &Header::closebigbox(); &Header::closepage(); @@ -2428,7 +2601,7 @@ EOF $checked{'ENABLED'} = $cgiparams{'ENABLED'} eq 'on' ? "checked='checked'" : '';
&Header::showhttpheaders(); - &Header::openpage($Lang::tr{'vpn configuration main'}, 1, ''); + &Header::openpage($Lang::tr{'ipsec'}, 1, ''); &Header::openbigbox('100%', 'left', '', $errormessage);
if ($errormessage) { @@ -2438,6 +2611,16 @@ EOF &Header::closebox(); }
+ if ($warnmessage) { + &Header::openbox('100%', 'left', $Lang::tr{'warning messages'}); + print "$warnmessage<br>"; + print "$Lang::tr{'fwdfw warn1'}<br>"; + &Header::closebox(); + print"<center><form method='post'><input type='submit' name='ACTION' value='$Lang::tr{'ok'}' style='width: 5em;'></form>"; + &Header::closepage(); + exit 0; + } + &Header::openbox('100%', 'left', $Lang::tr{'global settings'}); print <<END <form method='post' action='$ENV{'SCRIPT_NAME'}'> @@ -2458,17 +2641,18 @@ print <<END <td class='base' nowrap='nowrap'>$Lang::tr{'host to net vpn'}: <img src='/blob.gif' alt='*' /></td> <td ><input type='text' name='RW_NET' value='$cgiparams{'RW_NET'}' /></td> </tr> - </table> +</table> +<br> <hr /> <table width='100%'> <tr> <td class='base' valign='top'><img src='/blob.gif' alt='*' /></td> - <td width='70%' class='base' valign='top'>$Lang::tr{'this field may be blank'}</td> + <td width='70%' class='base' valign='top'>$Lang::tr{'this field may be blank'}</td><td width='30%' align='right' class='base'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td> </tr> <tr> <td class='base' valign='top' nowrap='nowrap'><img src='/blob.gif' alt='*' /><img src='/blob.gif' alt='*' /> </td> <td class='base'> <font class='base'>$Lang::tr{'vpn delayed start help'}</font></td> - <td width='30%' align='center' class='base'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td> + <td></td> </tr> </table> END @@ -2478,53 +2662,58 @@ END
&Header::openbox('100%', 'left', $Lang::tr{'connection status and controlc'}); print <<END - <table width='100%' border='0' cellspacing='1' cellpadding='0'> + <table width='100%' cellspacing='1' cellpadding='0' class='tbl'> <tr> - <td width='10%' class='boldbase' align='center'><b>$Lang::tr{'name'}</b></td> - <td width='22%' class='boldbase' align='center'><b>$Lang::tr{'type'}</b></td> - <td width='23%' class='boldbase' align='center'><b>$Lang::tr{'common name'}</b></td> - <td width='30%' class='boldbase' align='center'><b>$Lang::tr{'remark'}</b></td> - <td width='10%' class='boldbase' align='center'><b>$Lang::tr{'status'}</b></td> - <td class='boldbase' align='center' colspan='6'><b>$Lang::tr{'action'}</b></td> + <th width='10%' class='boldbase' align='center'><b>$Lang::tr{'name'}</b></th> + <th width='22%' class='boldbase' align='center'><b>$Lang::tr{'type'}</b></th> + <th width='23%' class='boldbase' align='center'><b>$Lang::tr{'common name'}</b></th> + <th width='30%' class='boldbase' align='center'><b>$Lang::tr{'remark'}</b></th> + <th width='10%' class='boldbase' align='center'><b>$Lang::tr{'status'}</b></th> + <th class='boldbase' align='center' colspan='6'><b>$Lang::tr{'action'}</b></th> </tr> END ; my $id = 0; my $gif; - foreach my $key (keys %confighash) { + foreach my $key (sort { ncmp ($confighash{$a}[1],$confighash{$b}[1]) } keys %confighash) { if ($confighash{$key}[0] eq 'on') { $gif = 'on.gif'; } else { $gif = 'off.gif'; }
if ($id % 2) { - print "<tr bgcolor='$color{'color20'}'>\n"; + print "<tr>"; + $col="bgcolor='$color{'color20'}'"; } else { - print "<tr bgcolor='$color{'color22'}'>\n"; + print "<tr>"; + $col="bgcolor='$color{'color22'}'"; } - print "<td align='center' nowrap='nowrap'>$confighash{$key}[1]</td>"; - print "<td align='center' nowrap='nowrap'>" . $Lang::tr{"$confighash{$key}[3]"} . " (" . $Lang::tr{"$confighash{$key}[4]"} . ") $confighash{$key}[29]</td>"; + print "<td align='center' nowrap='nowrap' $col>$confighash{$key}[1]</td>"; + print "<td align='center' nowrap='nowrap' $col>" . $Lang::tr{"$confighash{$key}[3]"} . " (" . $Lang::tr{"$confighash{$key}[4]"} . ") $confighash{$key}[29]</td>"; if ($confighash{$key}[2] eq '%auth-dn') { - print "<td align='left' nowrap='nowrap'>$confighash{$key}[9]</td>"; + print "<td align='left' nowrap='nowrap' $col>$confighash{$key}[9]</td>"; } elsif ($confighash{$key}[4] eq 'cert') { - print "<td align='left' nowrap='nowrap'>$confighash{$key}[2]</td>"; + print "<td align='left' nowrap='nowrap' $col>$confighash{$key}[2]</td>"; } else { - print "<td align='left'> </td>"; + print "<td align='left' $col> </td>"; } - print "<td align='center'>$confighash{$key}[25]</td>"; + print "<td align='center' $col>$confighash{$key}[25]</td>"; + my $col1="bgcolor='${Header::colourred}'"; # get real state - my $active = "<table cellpadding='2' cellspacing='0' bgcolor='${Header::colourred}' width='100%'><tr><td align='center'><b><font color='#FFFFFF'>$Lang::tr{'capsclosed'}</font></b></td></tr></table>"; + my $active = "<b><font color='#FFFFFF'>$Lang::tr{'capsclosed'}</font></b>"; foreach my $line (@status) { if (($line =~ /"$confighash{$key}[1]".*IPsec SA established/) || ($line =~ /$confighash{$key}[1]{.*INSTALLED/)) { - $active = "<table cellpadding='2' cellspacing='0' bgcolor='${Header::colourgreen}' width='100%'><tr><td align='center'><b><font color='#FFFFFF'>$Lang::tr{'capsopen'}</font></b></td></tr></table>"; + $col1="bgcolor='${Header::colourgreen}'"; + $active = "<b><font color='#FFFFFF'>$Lang::tr{'capsopen'}</font></b>"; } } # move to blueif really down - if ($confighash{$key}[0] eq 'off' && $active =~ /${Header::colourred}/ ) { - $active = "<table cellpadding='2' cellspacing='0' bgcolor='${Header::colourblue}' width='100%'><tr><td align='center'><b><font color='#FFFFFF'>$Lang::tr{'capsclosed'}</font></b></td></tr></table>"; + if ($confighash{$key}[0] eq 'off' && $col1 =~ /${Header::colourred}/ ) { + $col1="bgcolor='${Header::colourblue}'"; + $active = "<b><font color='#FFFFFF'>$Lang::tr{'capsclosed'}</font></b>"; } print <<END - <td align='center'>$active</td> - <td align='center'> + <td align='center' $col1>$active</td> + <td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='image' name='$Lang::tr{'restart'}' src='/images/reload.gif' alt='$Lang::tr{'restart'}' title='$Lang::tr{'restart'}' /> <input type='hidden' name='ACTION' value='$Lang::tr{'restart'}' /> @@ -2535,7 +2724,7 @@ END ; if (($confighash{$key}[4] eq 'cert') && ($confighash{$key}[2] ne '%auth-dn')) { print <<END - <td align='center'> + <td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='image' name='$Lang::tr{'show certificate'}' src='/images/info.gif' alt='$Lang::tr{'show certificate'}' title='$Lang::tr{'show certificate'}' /> <input type='hidden' name='ACTION' value='$Lang::tr{'show certificate'}' /> @@ -2544,11 +2733,11 @@ END </td> END ; } else { - print "<td width='2%'> </td>"; + print "<td width='2%' $col> </td>"; } if ($confighash{$key}[4] eq 'cert' && -f "${General::swroot}/certs/$confighash{$key}[1].p12") { print <<END - <td align='center'> + <td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='image' name='$Lang::tr{'download pkcs12 file'}' src='/images/floppy.gif' alt='$Lang::tr{'download pkcs12 file'}' title='$Lang::tr{'download pkcs12 file'}' /> <input type='hidden' name='ACTION' value='$Lang::tr{'download pkcs12 file'}' /> @@ -2558,7 +2747,7 @@ END END ; } elsif (($confighash{$key}[4] eq 'cert') && ($confighash{$key}[2] ne '%auth-dn')) { print <<END - <td align='center'> + <td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='image' name='$Lang::tr{'download certificate'}' src='/images/floppy.gif' alt='$Lang::tr{'download certificate'}' title='$Lang::tr{'download certificate'}' /> <input type='hidden' name='ACTION' value='$Lang::tr{'download certificate'}' /> @@ -2567,10 +2756,10 @@ END </td> END ; } else { - print "<td width='2%'> </td>"; + print "<td width='2%' $col> </td>"; } print <<END - <td align='center'> + <td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' alt='$Lang::tr{'toggle enable disable'}' title='$Lang::tr{'toggle enable disable'}' /> <input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' /> @@ -2578,14 +2767,14 @@ END </form> </td>
- <td align='center'> + <td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'edit'}' /> <input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' /> <input type='hidden' name='KEY' value='$key' /> </form> </td> - <td align='center' > + <td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' /> <input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' /> @@ -2630,7 +2819,7 @@ END
print <<END <table width='100%'> - <tr><td align='center' colspan='9'> + <tr><td align='right' colspan='9'> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='submit' name='ACTION' value='$Lang::tr{'add'}' /> </form> @@ -2640,45 +2829,46 @@ END ; &Header::closebox();
- &Header::openbox('100%', 'left', "$Lang::tr{'certificate authorities'}:"); + &Header::openbox('100%', 'left', "$Lang::tr{'certificate authorities'}"); print <<EOF - <table width='100%' border='0' cellspacing='1' cellpadding='0'> + <table width='100%' cellspacing='1' cellpadding='0' class='tbl'> <tr> - <td width='25%' class='boldbase' align='center'><b>$Lang::tr{'name'}</b></td> - <td width='65%' class='boldbase' align='center'><b>$Lang::tr{'subject'}</b></td> - <td width='10%' class='boldbase' colspan='3' align='center'><b>$Lang::tr{'action'}</b></td> + <th width='25%' class='boldbase' align='center'><b>$Lang::tr{'name'}</b></th> + <th width='65%' class='boldbase' align='center'><b>$Lang::tr{'subject'}</b></th> + <th width='10%' class='boldbase' colspan='3' align='center'><b>$Lang::tr{'action'}</b></th> </tr> EOF ; + my $col1="bgcolor='$color{'color22'}'"; + my $col2="bgcolor='$color{'color20'}'"; if (-f "${General::swroot}/ca/cacert.pem") { my $casubject = &Header::cleanhtml(getsubjectfromcert ("${General::swroot}/ca/cacert.pem")); - print <<END - <tr bgcolor='$color{'color22'}'> - <td class='base'>$Lang::tr{'root certificate'}</td> - <td class='base'>$casubject</td> - <td width='3%' align='center'> + <tr> + <td class='base' $col1>$Lang::tr{'root certificate'}</td> + <td class='base' $col1>$casubject</td> + <td width='3%' align='center' $col1> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'show root certificate'}' /> <input type='image' name='$Lang::tr{'edit'}' src='/images/info.gif' alt='$Lang::tr{'show root certificate'}' title='$Lang::tr{'show root certificate'}' /> </form> </td> - <td width='3%' align='center'> + <td width='3%' align='center' $col1> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='image' name='$Lang::tr{'download root certificate'}' src='/images/floppy.gif' alt='$Lang::tr{'download root certificate'}' title='$Lang::tr{'download root certificate'}' /> <input type='hidden' name='ACTION' value='$Lang::tr{'download root certificate'}' /> </form> </td> - <td width='4%'> </td></tr> + <td width='4%' $col1> </td></tr> END ; } else { # display rootcert generation buttons print <<END - <tr bgcolor='$color{'color22'}'> - <td class='base'>$Lang::tr{'root certificate'}:</td> - <td class='base'>$Lang::tr{'not present'}</td> - <td colspan='3'> </td></tr> + <tr> + <td class='base' $col1>$Lang::tr{'root certificate'}:</td> + <td class='base' $col1>$Lang::tr{'not present'}</td> + <td colspan='3' $col1> </td></tr> END ; } @@ -2687,61 +2877,63 @@ END my $hostsubject = &Header::cleanhtml(getsubjectfromcert ("${General::swroot}/certs/hostcert.pem"));
print <<END - <tr bgcolor='$color{'color20'}'> - <td class='base'>$Lang::tr{'host certificate'}</td> - <td class='base'>$hostsubject</td> - <td width='3%' align='center'> + <tr> + <td class='base' $col2>$Lang::tr{'host certificate'}</td> + <td class='base' $col2>$hostsubject</td> + <td width='3%' align='center' $col2> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'show host certificate'}' /> <input type='image' name='$Lang::tr{'show host certificate'}' src='/images/info.gif' alt='$Lang::tr{'show host certificate'}' title='$Lang::tr{'show host certificate'}' /> </form> </td> - <td width='3%' align='center'> + <td width='3%' align='center' $col2> <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <input type='image' name='$Lang::tr{'download host certificate'}' src='/images/floppy.gif' alt='$Lang::tr{'download host certificate'}' title='$Lang::tr{'download host certificate'}' /> - <input type='hidden' name='ACTION' value='$Lang::tr{'download host certificate'}' /> + <input type='image' name="$Lang::tr{'download host certificate'}" src='/images/floppy.gif' alt="$Lang::tr{'download host certificate'}" title="$Lang::tr{'download host certificate'}" /> + <input type='hidden' name='ACTION' value="$Lang::tr{'download host certificate'}" /> </form> </td> - <td width='4%'> </td></tr> + <td width='4%' $col2> </td></tr> END ; } else { # Nothing print <<END - <tr bgcolor='$color{'color20'}'> - <td width='25%' class='base'>$Lang::tr{'host certificate'}:</td> - <td class='base'>$Lang::tr{'not present'}</td> - <td colspan='3'> </td></tr> + <tr> + <td width='25%' class='base' $col2>$Lang::tr{'host certificate'}:</td> + <td class='base' $col2>$Lang::tr{'not present'}</td> + <td colspan='3' $col2> </td></tr> END ; }
- my $rowcolor = 0; - if (keys %cahash > 0) { - foreach my $key (keys %cahash) { - if ($rowcolor++ % 2) { - print "<tr bgcolor='$color{'color20'}'>\n"; - } else { - print "<tr bgcolor='$color{'color22'}'>\n"; - } - print "<td class='base'>$cahash{$key}[0]</td>\n"; - print "<td class='base'>$cahash{$key}[1]</td>\n"; + my $rowcolor = 0; + if (keys %cahash > 0) { + foreach my $key (keys %cahash) { + if ($rowcolor++ % 2) { + print "<tr>"; + $col="bgcolor='$color{'color20'}'"; + } else { + print "<tr>"; + $col="bgcolor='$color{'color22'}'"; + } + print "<td class='base' $col>$cahash{$key}[0]</td>\n"; + print "<td class='base' $col>$cahash{$key}[1]</td>\n"; print <<END - <td align='center'> + <td align='center' $col> <form method='post' name='cafrm${key}a' action='$ENV{'SCRIPT_NAME'}'> <input type='image' name='$Lang::tr{'show ca certificate'}' src='/images/info.gif' alt='$Lang::tr{'show ca certificate'}' title='$Lang::tr{'show ca certificate'}' /> <input type='hidden' name='ACTION' value='$Lang::tr{'show ca certificate'}' /> <input type='hidden' name='KEY' value='$key' /> </form> </td> - <td align='center'> + <td align='center' $col> <form method='post' name='cafrm${key}b' action='$ENV{'SCRIPT_NAME'}'> <input type='image' name='$Lang::tr{'download ca certificate'}' src='/images/floppy.gif' alt='$Lang::tr{'download ca certificate'}' title='$Lang::tr{'download ca certificate'}' /> <input type='hidden' name='ACTION' value='$Lang::tr{'download ca certificate'}' /> <input type='hidden' name='KEY' value='$key' /> </form> </td> - <td align='center'> + <td align='center' $col> <form method='post' name='cafrm${key}c' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'remove ca certificate'}' /> <input type='image' name='$Lang::tr{'remove ca certificate'}' src='/images/delete.gif' alt='$Lang::tr{'remove ca certificate'}' title='$Lang::tr{'remove ca certificate'}' /> @@ -2770,6 +2962,7 @@ END } my $createCA = -f "${General::swroot}/ca/cacert.pem" ? '' : "<tr><td colspan='3'></td><td><input type='submit' name='ACTION' value='$Lang::tr{'generate root/host certificates'}' /></td></tr>"; print <<END + <br> <hr /> <form method='post' enctype='multipart/form-data' action='$ENV{'SCRIPT_NAME'}'> <table width='100%' border='0' cellspacing='1' cellpadding='0'> @@ -2782,7 +2975,7 @@ END </tr> <tr> <td colspan='3'>$Lang::tr{'resetting the vpn configuration will remove the root ca, the host certificate and all certificate based connections'}:</td> - <td><input type='submit' name='ACTION' value='$Lang::tr{'remove x509'}' /></td> + <td align='right'><input type='submit' name='ACTION' value='$Lang::tr{'remove x509'}' /></td> </tr> </table> </form> diff --git a/html/cgi-bin/wakeonlan.cgi b/html/cgi-bin/wakeonlan.cgi index 8ea4ae0..4a7fc84 100644 --- a/html/cgi-bin/wakeonlan.cgi +++ b/html/cgi-bin/wakeonlan.cgi @@ -260,12 +260,12 @@ print <<END <td colspan='4' align='left'><input type='text' name='CLIENT_COMMENT' value='$cgiparams{'CLIENT_COMMENT'}' size='40' /></td> </tr> </table> +<br> <hr /> <table width='100%'> <tr> - <td class='base' valign='top'><img src='/blob.gif' alt='*' /></td> - <td width='55%' class='base'>$Lang::tr{'this field may be blank'}</td> - <td width='40%' align='center'> + <td class='base' valign='top'><img src='/blob.gif' alt='*' />$Lang::tr{'this field may be blank'}</td> + <td width='40%' align='right'> END ;
@@ -292,16 +292,17 @@ print "</form>\n"; &Header::openbox('100%', 'left', "$Lang::tr{'current devices'}");
print <<END -<table width='100%'> +<table width='100%' class='tbl'> <tr> -<td align='center' width='20%'><b>$Lang::tr{'mac address'}</b></td> -<td align='center' width='10%'><b>$Lang::tr{'interface'}</b></td> -<td align='center' width='60%'><b>$Lang::tr{'remark'}</b></td> -<td align='center' colspan='2'><b>$Lang::tr{'action'}</b></td> +<th align='center' width='20%'><b>$Lang::tr{'mac address'}</b></th> +<th align='center' width='10%'><b>$Lang::tr{'interface'}</b></th> +<th align='center' width='60%'><b>$Lang::tr{'remark'}</b></th> +<th align='center' colspan='2'><b>$Lang::tr{'action'}</b></th> +<th></th> </tr> END ; - +my $col=""; for $i ( 0 .. $#wol_devices ) { my $wol_mac = $wol_devices[$i]{'MAC'}; @@ -310,22 +311,25 @@ for $i ( 0 .. $#wol_devices )
if ( (($cgiparams{'ACTION'} eq 'edit') || ($cgiparams{'ACTION'} eq 'update')) && ($i == $cgiparams{'ID'}) ) { - print "<tr bgcolor='${Header::colouryellow}'>"; + print "<tr>"; + $col="bgcolor='${Header::colouryellow}'"; } elsif ( $i % 2) { - print "<tr bgcolor='$color{'color22'}'>"; + print "<tr>"; + $col="bgcolor='$color{'color20'}'"; } - else + else { - print "<tr bgcolor='$color{'color20'}'>"; + print "<tr>"; + $col="bgcolor='$color{'color22'}'"; }
print <<END -<td align='center'>$wol_mac</td> -<td align='center'>$Lang::tr{"$wol_iface"}</td> -<td align='left'>$wol_txt</td> -<td align='center'> +<td align='center' $col>$wol_mac</td> +<td align='center' $col>$Lang::tr{"$wol_iface"}</td> +<td align='left' $col>$wol_txt</td> +<td align='center' $col> END ; if ( (($wol_iface eq 'blue') && ! &haveBlueNet()) @@ -347,14 +351,14 @@ END } print <<END </td> -<td align='center'> +<td align='center' $col> <form method='post' name='frmb$i' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='edit' /> <input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' /> <input type='hidden' name='ID' value='$i' /> </form> </td> -<td align='center'> +<td align='center' $col> <form method='post' name='frmc$i' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='remove' /> <input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' /> diff --git a/html/cgi-bin/wireless.cgi b/html/cgi-bin/wireless.cgi index ecff179..358f318 100644 --- a/html/cgi-bin/wireless.cgi +++ b/html/cgi-bin/wireless.cgi @@ -225,16 +225,15 @@ print <<END <td colspan='3'><input type='text' name='REMARK' value='$cgiparams{'REMARK'}' size='40' /></td> </tr> </table> -<hr /> +<br> +<hr> <table width='100%'> <tr> - <td class='base' valign='top'><img src='/blob.gif' alt='*' /></td> - <td width='55%' class='base'>$Lang::tr{'this field may be blank'}</td> - <td width='40%' align='center'> + <td class='base' valign='top'><img src='/blob.gif' alt='*' /> $Lang::tr{'this field may be blank'}</td> + <td width='40%' align='right'> <input type='hidden' name='ACTION' value='add' /> <input type='submit' name='SUBMIT' value='$buttontext' /> </td> - <td width='5%' align='right'> </td> </tr> </table> END @@ -260,13 +259,13 @@ my @current = <FILE>; close (FILE);
print <<END -<table width='100%'> +<table width='100%' class='tbl'> <tr> -<td align='center' width='20%'><b>$Lang::tr{'hostname'}</b></td> -<td align='center' width='20%'><b>$Lang::tr{'source ip'}</b></td> -<td align='center' width='20%'><b>$Lang::tr{'mac address'}</b></td> -<td align='center' width='35%'><b>$Lang::tr{'remark'}</b></td> -<td align='center' colspan='3'><b>$Lang::tr{'action'}</b></td> +<th align='center' width='20%'><b>$Lang::tr{'hostname'}</b></th> +<th align='center' width='20%'><b>$Lang::tr{'source ip'}</b></th> +<th align='center' width='20%'><b>$Lang::tr{'mac address'}</b></t> +<th align='center' width='35%'><b>$Lang::tr{'remark'}</b></th> +<th align='center' colspan='3'><b>$Lang::tr{'action'}</b></th> </tr> END ; @@ -333,20 +332,24 @@ foreach my $line (@current) else { $gif = 'off.gif'; $toggle='on'; $gdesc=$Lang::tr{'click to enable'};}
my $remark = &Header::cleanhtml($temp[4]); + my $col="";
if ($cgiparams{'ACTION'} eq 'edit' && $cgiparams{'ID'} eq $id) { - print "<tr bgcolor='${Header::colouryellow}'>\n"; + print "<tr>"; + $col="bgcolor='${Header::colouryellow}'"; } elsif ($id % 2) { - print "<tr bgcolor='${Header::table1colour}'>\n"; + print "<tr>"; + $col="bgcolor='${Header::table1colour}'"; } else { - print "<tr bgcolor='${Header::table2colour}'>\n"; + print "<tr>"; + $col="bgcolor='${Header::table2colour}'"; } - print "<td align='center'>$hname</td>\n"; - print "<td align='center'>$sourceip</td>\n"; - print "<td align='center'>$sourcemac</td>\n"; - print "<td align='center'>$remark</td>\n"; + print "<td align='center' $col>$hname</td>\n"; + print "<td align='center' $col>$sourceip</td>\n"; + print "<td align='center' $col>$sourcemac</td>\n"; + print "<td align='center' $col>$remark</td>\n"; print<<END -<td align='center'> +<td align='center' $col> <form method='post' name='frma$id' action='$ENV{'SCRIPT_NAME'}'> <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' alt='$gdesc' title='$gdesc' /> <input type='hidden' name='ACTION' value='toggle'}' /> @@ -355,7 +358,7 @@ print<<END </form> </td>
-<td align='center'> +<td align='center' $col> <form method='post' name='frmb$id' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='edit' /> <input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' /> @@ -363,7 +366,7 @@ print<<END </form> </td>
-<td align='center'> +<td align='center' $col> <form method='post' name='frmc$id' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='remove' /> <input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' /> @@ -405,12 +408,13 @@ sub printblueleases
&Header::openbox('100%', 'left', "$Lang::tr{'current dhcp leases on blue'}"); print <<END -<table width='100%'> +<table width='100%' class='tbl'> <tr> -<td width='25%' align='center'><b>$Lang::tr{'ip address'}</b></td> -<td width='25%' align='center'><b>$Lang::tr{'mac address'}</b></td> -<td width='20%' align='center'><b>$Lang::tr{'hostname'}</b></td> -<td width='30%' align='center'><b>$Lang::tr{'lease expires'} (local time d/m/y)</b></td> +<th width='25%' align='center'><b>$Lang::tr{'ip address'}</b></th> +<th width='25%' align='center'><b>$Lang::tr{'mac address'}</b></th> +<th width='20%' align='center'><b>$Lang::tr{'hostname'}</b></th> +<th width='30%' align='center'><b>$Lang::tr{'lease expires'} (local time d/m/y)</b></th> +<th></th> </tr> END ; @@ -459,18 +463,21 @@ END foreach my $key (sort blueleasesort keys %entries) {
my $hostname = &Header::cleanhtml($entries{$key}->{HOSTNAME},"y"); + my $col="";
if ($id % 2) { - print "<tr bgcolor='$Header::table2colour'>"; + print "<tr>"; + $col="bgcolor='$Header::table2colour'"; } else { - print "<tr bgcolor='$Header::table1colour'>"; + print "<tr>"; + $col="bgcolor='$Header::table1colour'"; }
print <<END -<td align='center'>$entries{$key}->{IPADDR}</td> -<td align='center'>$entries{$key}->{ETHER}</td> -<td align='center'> $hostname </td> -<td align='center'> +<td align='center' $col>$entries{$key}->{IPADDR}</td> +<td align='center' $col>$entries{$key}->{ETHER}</td> +<td align='center' $col> $hostname </td> +<td align='center' $col> END ;
@@ -493,7 +500,7 @@ END }
print <<END -<td align='center'> +<td align='center' $col> <form method='post' name='frmd$id' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='add' /> <input type='hidden' name='SOURCE_IP' value='' /> diff --git a/html/cgi-bin/wirelessclient.cgi b/html/cgi-bin/wirelessclient.cgi index 3c52803..a2d0273 100644 --- a/html/cgi-bin/wirelessclient.cgi +++ b/html/cgi-bin/wirelessclient.cgi @@ -258,11 +258,14 @@ sub showMainBox() {
<br><hr><br>
- <table width="100%"> + <table width="100%" class='tbl'> <tr> <th align='center'>$Lang::tr{'wlan client ssid'}</th> <th align='center'>$Lang::tr{'wlan client encryption'}</th> <th align='center'>$Lang::tr{'priority'}</th> + <th></th> + <th></th> + <th></th> </tr> END
@@ -271,6 +274,7 @@ END #
my $key = 0; + my $col=""; foreach my $line (@configs) { # Skip commented lines. my $firstchar = substr($line, 0, 1); @@ -292,9 +296,11 @@ END
# Colorize each line if ($key % 2) { - print "<tr bgcolor='$color{'color22'}'>"; + print "<tr>"; + $col="bgcolor='$color{'color20'}'"; } else { - print "<tr bgcolor='$color{'color20'}'>"; + print "<tr>"; + $col="bgcolor='$color{'color22'}'"; }
my $encryption_mode = $Lang::tr{'unknown'}; @@ -332,24 +338,24 @@ END }
print <<END; - <td align='center'>$config[5]</td> - <td align='center'>$encryption_mode</td> - <td align='center'>$config[7]</td> - <td align='center' width='5%'> + <td align='center' $col>$config[5]</td> + <td align='center' $col>$encryption_mode</td> + <td align='center' $col>$config[7]</td> + <td align='center' width='5%' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' /> <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' alt='$gdesc' title='$gdesc' /> <input type='hidden' name='ID' value='$config[0]' /> </form> </td> - <td align='center' width='5%'> + <td align='center' width='5%' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'edit'}' /> <input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' /> <input type='hidden' name='ID' value='$config[0]' /> </form> </td> - <td align='center' width='5%'> + <td align='center' width='5%' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' /> <input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' /> diff --git a/html/cgi-bin/wlanap.cgi b/html/cgi-bin/wlanap.cgi index 58c6376..50806ac 100644 --- a/html/cgi-bin/wlanap.cgi +++ b/html/cgi-bin/wlanap.cgi @@ -2,7 +2,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2005-2013 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2014 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -35,9 +35,10 @@ require '/var/ipfire/header.pl'; my $debug = 0; my $status = ''; my $errormessage = ''; -my $status_started = "<td align='center' width='75%' bgcolor='${Header::colourgreen}'><font color='white'><strong>$Lang::tr{'running'}</strong></font></td></tr>"; -my $status_stopped = "<td align='center' width='75%' bgcolor='${Header::colourred}'><font color='white'><strong>$Lang::tr{'stopped'}</strong></font></td></tr>"; - +my $status_started = "<td align='center' bgcolor='${Header::colourgreen}'><font color='white'><strong>$Lang::tr{'running'}</strong></font></td>"; +my $status_stopped = "<td align='center' bgcolor='${Header::colourred}'><font color='white'><strong>$Lang::tr{'stopped'}</strong></font></td>"; +my $count=0; +my $col=''; # get rid of used only once warnings my @onlyonce = ( $Header::colourgreen, $Header::colourred ); undef @onlyonce; @@ -151,12 +152,9 @@ if ( $wlanapsettings{'ACTION'} eq "$Lang::tr{'save'}" ){ }elsif ( $wlanapsettings{'ACTION'} eq "$Lang::tr{'stop'}" ){ system("/usr/local/bin/wlanapctrl stop >/dev/null 2>&1"); $memory=0; -}elsif ( $wlanapsettings{'ACTION'} eq "$Lang::tr{'restart'}" ){ - system("/usr/local/bin/wlanapctrl restart >/dev/null 2>&1"); - pid(); }
-&Header::openpage('Wireless LAN', 1, '', ''); +&Header::openpage('', 1, '', ''); &Header::openbigbox('100%', 'left', '', $errormessage);
if ( $errormessage ){ @@ -260,7 +258,25 @@ if ( -d '/sys/class/net/mon.'.$wlanapsettings{'INTERFACE'} ) { $monwlaninterface = 'mon.'.$wlanapsettings{'INTERFACE'}; }
-my @channellist_cmd = `iwlist $monwlaninterface channel 2>/dev/null`; +my @channellist_cmd; +my @channellist; + +if ( $wlanapsettings{'DRIVER'} eq 'NL80211' ){ +my $wiphy = `iw dev $wlanapsettings{'INTERFACE'} info | grep wiphy | cut -d" " -f2`; +chomp $wiphy; + +@channellist_cmd = `iw phy phy$wiphy info | grep " MHz \[" | grep -v "(disabled)" | grep -v "no IBSS" | grep -v "passive scanning" 2>/dev/null`; +# get available channels + +my @temp; +foreach (@channellist_cmd){ +$_ =~ /(.*) [(\d+)(.*)]/; +$channel = $2;chomp $channel; +if ( $channel =~ /\d+/ ){push(@temp,$channel);} +} +@channellist = @temp; +} else { +@channellist_cmd = `iwlist $monwlaninterface channel|tail -n +2 2>/dev/null`; # get available channels
my @temp; @@ -269,7 +285,8 @@ $_ =~ /(.*)Channel (\d+)(.*):/; $channel = $2;chomp $channel; if ( $channel =~ /\d+/ ){push(@temp,$channel);} } -my @channellist = @temp; +@channellist = @temp; +}
my @countrylist_cmd = `regdbdump /usr/lib/crda/regulatory.bin 2>/dev/null`; # get available country codes @@ -306,64 +323,48 @@ $selected{'DEBUG'}{$wlanapsettings{'DEBUG'}} = "selected='selected'"; # &Header::openbox('100%', 'center', "WLAN AP"); print <<END -<table width='95%' cellspacing='0'> +<table width='80%' cellspacing='1' class='tbl'> END ;
if ( $wlan_card_status ne '' ){ - print "<tr><td bgcolor='$color{'color20'}' colspan='3' align='left'><strong>$Lang::tr{'wlanap wlan services'}</strong></td></tr>"; - print "<tr><td colspan='1' class='base'>$Lang::tr{'wlanap wlan card'} ($wlanapsettings{'DRIVER'})</td>"; + print "<tr><th align='left' width='50%'><strong>$Lang::tr{'service'}</strong></th><th width='22%'>Status</th><th width='10%'>PID</th><th width='15%'>$Lang::tr{'memory'}</th><th colspan='2'width='5%'>$Lang::tr{'action'}</th></tr>"; + print "<tr><td class='base'>$Lang::tr{'wlanap wlan card'} ($wlanapsettings{'DRIVER'})</td>"; print $wlan_card_status eq 'up' ? $status_started : $status_stopped; - print "<tr><td colspan='1' class='base'>$Lang::tr{'wlanap access point'}</td>"; + print"<td colspan='4'></td></tr>"; + print "<tr><td class='base' bgcolor='$color{'color22'}'>$Lang::tr{'wlanap access point'}</td>"; print $wlan_ap_status eq 'up' ? $status_started : $status_stopped; + if ( ($memory != 0) && (@pid[0] ne "///") ){ + print "<td bgcolor='$color{'color22'}' align='center'>@pid[0]</td>"; + print "<td bgcolor='$color{'color22'}' align='center'>$memory KB</td>"; + print "<td bgcolor='$color{'color22'}'><form method='post' action='$ENV{'SCRIPT_NAME'}'><input type='hidden' name='ACTION' value='$Lang::tr{'start'}' /><input type='image' alt='$Lang::tr{'start'}' title='$Lang::tr{'start'}' src='/images/go-up.png' /></form></td>"; + print "<td bgcolor='$color{'color22'}'><form method='post' action='$ENV{'SCRIPT_NAME'}'><input type='hidden' name='ACTION' value='$Lang::tr{'stop'}' /><input type='image' alt='$Lang::tr{'stop'}' title='$Lang::tr{'stop'}' src='/images/go-down.png' /></form></td>"; + }else{ + print"<td colspan='2' bgcolor='$color{'color22'}'></td>"; + print "<td bgcolor='$color{'color22'}'><form method='post' action='$ENV{'SCRIPT_NAME'}'><input type='hidden' name='ACTION' value='$Lang::tr{'start'}' /><input type='image' alt='$Lang::tr{'start'}' title='$Lang::tr{'start'}' src='/images/go-up.png' /></form></td>"; + print "<td bgcolor='$color{'color22'}'><form method='post' action='$ENV{'SCRIPT_NAME'}'><input type='hidden' name='ACTION' value='$Lang::tr{'stop'}' /><input type='image' alt='$Lang::tr{'stop'}' title='$Lang::tr{'stop'}' src='/images/go-down.png' /></form></td>"; + }
}else{ - print "<tr><td colspan='2' class='base'>$message"; + print "<tr><td class='base'>$message"; } print "</table>";
-if ( ($memory != 0) && (@pid[0] ne "///") && ($wlan_card_status ne '') ){ - print "<table width='95%' cellspacing='0' border='0'>"; - print "<tr>"; - print "<td align='center'></td>"; - print "<td bgcolor='$color{'color20'}' align='center'><strong>PID</strong></td>"; - print "<td bgcolor='$color{'color20'}' align='center'><strong>$Lang::tr{'memory'}</strong></td>"; +if ( $wlan_card_status eq '' ){ + print "<br />"; + print "<table width='80%' cellspacing='0' border='0'>"; + print "<tr align='center'>"; + print "<td colspan='4'></td>"; print "</tr>"; - print "<tr>"; - print "<td width='35%' align='right'><strong>hostapd</strong> </td>"; - print "<td bgcolor='$color{'color22'}' align='center'>@pid[0]</td>"; - print "<td bgcolor='$color{'color22'}' align='center'>$memory KB</td>"; + print "<tr align='center'>"; + print "<td width='40%'> </td>"; + print "<td width='20%'><form method='post' action='/cgi-bin/wlanap.cgi'><input type='submit' name='ACTION' value='$Lang::tr{'wlanap del interface'}' /></form></td>"; + print "<td width='20%'></td>"; + print "<td width='20%'></td>"; print "</tr>"; print "</table>"; }
-if ( $wlan_card_status ne '' ){ -print "<br />"; -print "<table width='95%' cellspacing='0' border='0'>"; -print "<tr align='center'>"; -print "</tr>"; -print "<tr align='center'>"; -print "<td width='40%'> </td>"; -print "<td width='20%'><form method='post' action='$ENV{'SCRIPT_NAME'}'><input type='hidden' name='ACTION' value='$Lang::tr{'start'}' /><input type='image' alt='$Lang::tr{'start'}' title='$Lang::tr{'start'}' src='/images/go-up.png' /></form></td>"; -print "<td width='20%'><form method='post' action='$ENV{'SCRIPT_NAME'}'><input type='hidden' name='ACTION' value='$Lang::tr{'stop'}' /><input type='image' alt='$Lang::tr{'stop'}' title='$Lang::tr{'stop'}' src='/images/go-down.png' /></form></td>"; -print "<td width='20%'><form method='post' action='$ENV{'SCRIPT_NAME'}'><input type='hidden' name='ACTION' value='$Lang::tr{'restart'}' /><input type='image' alt='$Lang::tr{'restart'}' title='$Lang::tr{'restart'}' src='/images/view-refresh.png' /></form></td>"; -print "</tr>"; -print "</table>"; -}else{ -print "<br />"; -print "<table width='95%' cellspacing='0' border='0'>"; -print "<tr align='center'>"; -print "<td colspan='4'><hr size='1'></td>"; -print "</tr>"; -print "<tr align='center'>"; -print "<td width='40%'> </td>"; -print "<td width='20%'><form method='post' action='/cgi-bin/wlanap.cgi'><input type='submit' name='ACTION' value='$Lang::tr{'wlanap del interface'}' /></form></td>"; -print "<td width='20%'></td>"; -print "<td width='20%'></td>"; -print "</tr>"; -print "</table>"; -} - if ( $wlan_card_status eq '' ){ &Header::closebox(); &Header::closebigbox(); @@ -371,13 +372,25 @@ if ( $wlan_card_status eq '' ){ exit 0; } print <<END -<br /> +<br><br> <form method='post' action='$ENV{'SCRIPT_NAME'}'> -<table width='95%' cellspacing='0'> -<tr><td bgcolor='$color{'color20'}' colspan='4' align='left'><strong>$Lang::tr{'wlanap wlan settings'}</strong> -<tr><td width='25%' class='base'>SSID: </td><td class='base' colspan='3'><input type='text' name='SSID' size='40' value='$wlanapsettings{'SSID'}' /></td></tr> +<table width='80%' cellspacing='0' class='tbl' border='0'> +<tr><th bgcolor='$color{'color20'}' colspan='4' align='left'><strong>$Lang::tr{'wlanap wlan settings'}</strong></th></tr> +<tr><td colspan='4'><br></td></tr> +<tr><td width='25%' class='base'>SSID: </td><td class='base' colspan='3'><input type='text' name='SSID' size='30' value='$wlanapsettings{'SSID'}' /></td></tr> <!--SSID Broadcast: on => HIDESSID: off --> <tr><td width='25%' class='base'>SSID Broadcast: </td><td class='base' colspan='3'>on <input type='radio' name='HIDESSID' value='off' $checked{'HIDESSID'}{'off'} /> | <input type='radio' name='HIDESSID' value='on' $checked{'HIDESSID'}{'on'} /> off</td></tr> + + +<tr><td width='25%' class='base'>$Lang::tr{'wlanap country'}: </td><td class='base' colspan='3'> + <select name='COUNTRY'> +END +; +foreach $country (@countrylist){ + print "<option $selected{'COUNTRY'}{$country}>$country</option>"; +} +print<<END +</select></td></tr> <tr><td width='25%' class='base'>HW Mode: </td><td class='base' colspan='3'> <select name='HW_MODE'> <option value='a' $selected{'HW_MODE'}{'a'}>802.11a</option> @@ -387,15 +400,6 @@ print <<END <option value='gn' $selected{'HW_MODE'}{'gn'}>802.11gn</option> </select> </td></tr> - -<tr><td width='25%' class='base'>$Lang::tr{'wlanap encryption'}: </td><td class='base' colspan='3'> - <select name='ENC'> - <option value='none' $selected{'ENC'}{'none'}>$Lang::tr{'wlanap none'}</option> - <option value='wpa1' $selected{'ENC'}{'wpa1'}>WPA1</option> - <option value='wpa2' $selected{'ENC'}{'wpa2'}>WPA2</option> - <option value='wpa1+2' $selected{'ENC'}{'wpa1+2'}>WPA1+2</option> - </select> -</td></tr> END ;
@@ -417,18 +421,22 @@ END END ; } - -print <<END -<tr><td width='25%' class='base'>$Lang::tr{'wlanap country'}: </td><td class='base' colspan='3'> - <select name='COUNTRY'> +print<<END +<tr><td colspan='4'><br></td></tr> +<tr><td width='25%' class='base'>$Lang::tr{'wlanap encryption'}: </td><td class='base' colspan='3'> + <select name='ENC'> + <option value='none' $selected{'ENC'}{'none'}>$Lang::tr{'wlanap none'}</option> + <option value='wpa1' $selected{'ENC'}{'wpa1'}>WPA1</option> + <option value='wpa2' $selected{'ENC'}{'wpa2'}>WPA2</option> + <option value='wpa1+2' $selected{'ENC'}{'wpa1+2'}>WPA1+2</option> + </select> +</td></tr> +<tr><td width='25%' class='base'>Passphrase: </td><td class='base' colspan='3'><input type='text' name='PWD' size='30' value='$wlanapsettings{'PWD'}' /></td></tr> +<tr><td colspan='4'><br></td></tr> END ; -foreach $country (@countrylist){ - print "<option $selected{'COUNTRY'}{$country}>$country</option>"; -} - print <<END -</select></td></tr> +<tr><td width='25%' class='base'>HT Caps: </td><td class='base' colspan='3'><input type='text' name='HTCAPS' size='30' value='$wlanapsettings{'HTCAPS'}' /></td></tr> <tr><td width='25%' class='base'>Tx Power: </td><td class='base' colspan='3'> END ; @@ -443,8 +451,6 @@ if ( $wlanapsettings{'DRIVER'} eq 'MADWIFI' ){ print "<input type='text' name='TXPOWER' size='10' value='$wlanapsettings{'TXPOWER'}' /></td></tr>" } print <<END -<tr><td width='25%' class='base'>Passphrase: </td><td class='base' colspan='3'><input type='text' name='PWD' size='63' value='$wlanapsettings{'PWD'}' /></td></tr> -<tr><td width='25%' class='base'>HT Caps: </td><td class='base' colspan='3'><input type='text' name='HTCAPS' size='63' value='$wlanapsettings{'HTCAPS'}' /></td></tr> <tr><td width='25%' class='base'>Loglevel (hostapd): </td><td class='base' width='25%'> <select name='SYSLOGLEVEL'> <option value='0' $selected{'SYSLOGLEVEL'}{'0'}>0 ($Lang::tr{'wlanap verbose'})</option> @@ -463,13 +469,17 @@ print <<END <option value='4' $selected{'DEBUG'}{'4'}>4 ($Lang::tr{'wlanap warnings'})</option> </select> </td></tr> +<tr><td colspan='4'><br></td></tr> </table> END ; if ( $wlanapsettings{'INTERFACE'} =~ /green0/ ){ print <<END <br /> -<table width='95%' cellspacing='0'> +<table width='80%' cellspacing='0' class='tbl' border='1'> +<tr> + <th colspan='3' align='left'>$Lang::tr{'mac filter'}</th> +</tr> <td width='25%' class='base'>Mac Filter: </td><td class='base' width='25%'> <select name='MACMODE'> <option value='0' $selected{'MACMODE'}{'0'}>0 (off)</option> @@ -488,7 +498,7 @@ END } print <<END <br /> -<table width='95%' cellspacing='0'> +<table width='80%' cellspacing='0'> <tr><td align='center'> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value=$Lang::tr{'save'} /> @@ -497,25 +507,60 @@ print <<END </table> END ; - +my @status; if ( $wlanapsettings{'DRIVER'} eq 'MADWIFI' ){ - $status = `wlanconfig $wlanapsettings{'INTERFACE'} list`; + @status = `wlanconfig $wlanapsettings{'INTERFACE'} list`; } if ( $wlanapsettings{'DRIVER'} eq 'NL80211' ){ - $status = `iw dev $wlanapsettings{'INTERFACE'} station dump`; + @status = `iw dev $wlanapsettings{'INTERFACE'} info && iw dev $wlanapsettings{'INTERFACE'} station dump && echo ""`; } print <<END <br /> -<table width='95%' cellspacing='0'> -<tr><td bgcolor='$color{'color20'}' colspan='2' align='left'><strong>$Lang::tr{'wlanap wlan status'}</strong></td></tr> -<tr><td><pre>@channellist_cmd</pre></td><td><pre>@txpower_cmd</pre></td></tr> -<tr><td colspan='2'><pre>$status</pre></td></tr> -</table> +<table width='80%' cellspacing='0' class='tbl'> +<tr><th colspan='3' bgcolor='$color{'color20'}' align='left'><strong>$Lang::tr{'wlanap wlan status'}</strong></th></tr> +END +; + +for (my $i=0;$i<$#status;$i++){ + +if (@status[$i]=~"^Station ") { $count++; } +if ($count % 2){ + $col="bgcolor='$color{'color20'}'"; + }else{ + $col="bgcolor='$color{'color22'}'"; + } + print"<tr><td colspan='3' $col><pre>@status[$i]</pre></td></tr>"; + if (! @status[$i]=~"^/t" ) { $count++; } +} + $count++; + +foreach my $nr (@channellist_cmd){ + if ($count % 2){ + $col="bgcolor='$color{'color20'}'"; + }else{ + $col="bgcolor='$color{'color22'}'"; + } + print"<tr><td colspan='3' $col>$nr</td></tr>"; + $count++; +} + +for (my $i=0;$i<$#txpower_cmd;$i=$i+2){ + if ($count % 2){ + $col="bgcolor='$color{'color20'}'"; + }else{ + $col="bgcolor='$color{'color22'}'"; + } + print "<tr><td $col>@txpower_cmd[$i]</td></tr>"; + $count++; +} +print "</table><br>"; +print <<END <br /> -<table width='95%' cellspacing='0'> -<tr><td bgcolor='$color{'color20'}' align='left'><strong>WLan Clients</strong></td></tr> +<table width='80%' cellspacing='0' class='tbl' border='0'> +<tr><td bgcolor='$color{'color20'}' align='left'><strong>$Lang::tr{'wlan clients'}</strong></td></tr> <tr><td> <a href="/cgi-bin/wireless.cgi">$Lang::tr{'wlanap link wireless'}</a></td></tr> <tr><td> <a href="/cgi-bin/dhcp.cgi">$Lang::tr{'wlanap link dhcp'}</a></td></tr> +<tr><td><br></td></tr> </table> END ; @@ -535,6 +580,7 @@ driver=$wlanapsettings{'DRIVER_HOSTAPD'} interface=$wlanapsettings{'INTERFACE'} country_code=$wlanapsettings{'COUNTRY'} ieee80211d=1 +ieee80211h=1 channel=$wlanapsettings{'CHANNEL'} END ; diff --git a/html/cgi-bin/xtaccess.cgi b/html/cgi-bin/xtaccess.cgi deleted file mode 100644 index 3fc2190..0000000 --- a/html/cgi-bin/xtaccess.cgi +++ /dev/null @@ -1,377 +0,0 @@ -#!/usr/bin/perl -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -use strict; - -# enable only the following on debugging purpose -#use warnings; -#use CGI::Carp 'fatalsToBrowser'; - -require '/var/ipfire/general-functions.pl'; -require "${General::swroot}/lang.pl"; -require "${General::swroot}/header.pl"; - -#workaround to suppress a warning when a variable is used only once -my @dummy = ( ${Header::colouryellow} ); -undef (@dummy); - -my %cgiparams=(); -my %checked=(); -my %selected=(); -my $errormessage = ''; -my $filename = "${General::swroot}/xtaccess/config"; -my $aliasfile = "${General::swroot}/ethernet/aliases"; -my $changed = 'no'; - -my %color = (); -my %mainsettings = (); -&General::readhash("${General::swroot}/main/settings", %mainsettings); -&General::readhash("/srv/web/ipfire/html/themes/".$mainsettings{'THEME'}."/include/colors.txt", %color); - -&Header::showhttpheaders(); - -$cgiparams{'ENABLED'} = 'off'; -$cgiparams{'ACTION'} = ''; -$cgiparams{'SRC'} = ''; -$cgiparams{'DEST_PORT'} = ''; -$cgiparams{'REMARK'} =''; -&Header::getcgihash(%cgiparams); -open(FILE, $filename) or die 'Unable to open config file.'; -my @current = <FILE>; -close(FILE); - -if ($cgiparams{'ACTION'} eq $Lang::tr{'add'}) -{ - unless($cgiparams{'PROTOCOL'} =~ /^(tcp|udp)$/) { $errormessage = $Lang::tr{'invalid input'}; } - unless(&General::validipormask($cgiparams{'SRC'})) - { - if ($cgiparams{'SRC'} ne '') { - $errormessage = $Lang::tr{'source ip bad'}; } - else { - $cgiparams{'SRC'} = '0.0.0.0/0'; } - } - unless($errormessage){ $errormessage = &General::validportrange($cgiparams{'DEST_PORT'},'dst'); } - if ( ! $errormessage) - { - $cgiparams{'REMARK'} = &Header::cleanhtml($cgiparams{'REMARK'}); - - if($cgiparams{'EDITING'} eq 'no') { - open(FILE,">>$filename") or die 'Unable to open config file.'; - flock FILE, 2; - print FILE "$cgiparams{'PROTOCOL'},$cgiparams{'SRC'},$cgiparams{'DEST_PORT'},$cgiparams{'ENABLED'},$cgiparams{'DEST'},$cgiparams{'REMARK'}\n"; - } else { - open(FILE, ">$filename") or die 'Unable to open config file.'; - flock FILE, 2; - my $id = 0; - foreach my $line (@current) - { - $id++; - if ($cgiparams{'EDITING'} eq $id) { - print FILE "$cgiparams{'PROTOCOL'},$cgiparams{'SRC'},$cgiparams{'DEST_PORT'},$cgiparams{'ENABLED'},$cgiparams{'DEST'},$cgiparams{'REMARK'}\n"; - } else { print FILE "$line"; } - } - } - close(FILE); - undef %cgiparams; - $changed = 'yes'; - &General::log($Lang::tr{'external access rule added'}); - system('/usr/local/bin/setxtaccess'); - } else { - # stay on edit mode if an error occur - if ($cgiparams{'EDITING'} ne 'no') - { - $cgiparams{'ACTION'} = $Lang::tr{'edit'}; - $cgiparams{'ID'} = $cgiparams{'EDITING'}; - } - } -} -if ($cgiparams{'ACTION'} eq $Lang::tr{'remove'}) -{ - my $id = 0; - open(FILE, ">$filename") or die 'Unable to open config file.'; - flock FILE, 2; - foreach my $line (@current) - { - $id++; - unless ($cgiparams{'ID'} eq $id) { print FILE "$line"; } - } - close(FILE); - system('/usr/local/bin/setxtaccess'); - &General::log($Lang::tr{'external access rule removed'}); -} -if ($cgiparams{'ACTION'} eq $Lang::tr{'toggle enable disable'}) -{ - open(FILE, ">$filename") or die 'Unable to open config file.'; - flock FILE, 2; - my $id = 0; - foreach my $line (@current) - { - $id++; - unless ($cgiparams{'ID'} eq $id) { print FILE "$line"; } - else - { - chomp($line); - my @temp = split(/,/,$line); - print FILE "$temp[0],$temp[1],$temp[2],$cgiparams{'ENABLE'},$temp[4],$temp[5]\n"; - } - } - close(FILE); - system('/usr/local/bin/setxtaccess'); -} -if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'}) -{ - my $id = 0; - foreach my $line (@current) - { - $id++; - if ($cgiparams{'ID'} eq $id) - { - chomp($line); - my @temp = split(/,/,$line); - $cgiparams{'PROTOCOL'} = $temp[0]; - $cgiparams{'SRC'} = $temp[1]; - $cgiparams{'DEST_PORT'} = $temp[2]; - $cgiparams{'ENABLED'} = $temp[3]; - $cgiparams{'DEST'} = $temp[4]; - $cgiparams{'REMARK'} = $temp[5]; - } - } -} - -if ($cgiparams{'ACTION'} eq '') -{ - $cgiparams{'PROTOCOL'} = 'tcp'; - $cgiparams{'DEST'} = '0.0.0.0'; - $cgiparams{'ENABLED'} = 'on'; -} - -$selected{'PROTOCOL'}{'udp'} = ''; -$selected{'PROTOCOL'}{'tcp'} = ''; -$selected{'PROTOCOL'}{$cgiparams{'PROTOCOL'}} = "selected='selected'"; - -$selected{'DEST'}{$cgiparams{'DEST'}} = "selected='selected'"; - -$checked{'ENABLED'}{'off'} = ''; -$checked{'ENABLED'}{'on'} = ''; -$checked{'ENABLED'}{$cgiparams{'ENABLED'}} = "checked='checked'"; - -&Header::openpage($Lang::tr{'external access configuration'}, 1, ''); - -&Header::openbigbox('100%', 'left', '', $errormessage); - -if ($errormessage) { - &Header::openbox('100%', 'left', $Lang::tr{'error messages'}); - print "<class name='base'>$errormessage\n"; - print " </class>\n"; - &Header::closebox(); -} - -print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>\n"; - -my $buttontext = $Lang::tr{'add'}; -if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'}) { - &Header::openbox('100%', 'left', $Lang::tr{'edit a rule'}); - $buttontext = $Lang::tr{'update'}; -} else { - &Header::openbox('100%', 'left', $Lang::tr{'add a new rule'}); -} -print <<END -<table width='100%'> -<tr> -<td width='10%'> -<select name='PROTOCOL'> -<option value='udp' $selected{'PROTOCOL'}{'udp'}>UDP</option> -<option value='tcp' $selected{'PROTOCOL'}{'tcp'}>TCP</option> -</select> -</td> -<td class='base'><font color='${Header::colourred}'>$Lang::tr{'source network'}</font></td> -<td><input type='text' name='SRC' value='$cgiparams{'SRC'}' size='32' /></td> -<td class='base'><font color='${Header::colourred}'>$Lang::tr{'destination port'}:</font></td> -<td><input type='text' name='DEST_PORT' value='$cgiparams{'DEST_PORT'}' size='5' /></td> -</tr> -</table> -<table width='100%'> -<tr> -<td width='10%' class='base'>$Lang::tr{'enabled'}<input type='checkbox' name='ENABLED' $checked{'ENABLED'}{'on'} /></td> -<td class='base'><font color='${Header::colourred}'>$Lang::tr{'destination ip'}: </font> -<select name='DEST'> -<option value='0.0.0.0' $selected{'DEST'}{'0.0.0.0'}>DEFAULT IP</option> -END -; - -open(ALIASES, "$aliasfile") or die 'Unable to open aliases file.'; -while (<ALIASES>) -{ - chomp($_); - my @temp = split(/,/,$_); - if ($temp[1] eq 'on') { - print "<option value='$temp[0]' $selected{'DEST'}{$temp[0]}>$temp[0]"; - if (defined $temp[2] and ($temp[2] ne '')) { print " ($temp[2])"; } - print "</option>\n"; - } -} -close(ALIASES); -print <<END -</select> -</td> -</tr> -</table> -<table width='100%'> -<tr> -<td width ='10%' class='base'> -<font class='boldbase'>$Lang::tr{'remark'}:</font> <img src='/blob.gif' alt='*' /> -</td> -<td width='65%'> -<input type='text' name='REMARK' value='$cgiparams{'REMARK'}' size='55' maxlength='50' /> -</td> -<td width='25%' align='center'> -<input type='hidden' name='ACTION' value='$Lang::tr{'add'}' /> -<input type='submit' name='SUBMIT' value='$buttontext' /> -</td> -</tr> -</table> -<table width='100%'> -<tr> -<td class='base' width='30%'><img src='/blob.gif' alt ='*' align='top' /> <font class='base'>$Lang::tr{'this field may be blank'}</font> -</td> -</tr> -</table> -END -; -if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'}) { - print "<input type='hidden' name='EDITING' value='$cgiparams{'ID'}' />\n"; -} else { - print "<input type='hidden' name='EDITING' value='no' />\n"; -} - -&Header::closebox(); -print "</form>\n"; - -&Header::openbox('100%', 'left', $Lang::tr{'current rules'}); -print <<END -<table width='100%'> -<tr> -<td width='10%' class='boldbase' align='center'><b>$Lang::tr{'proto'}</b></td> -<td width='20%' class='boldbase' align='center'><b>$Lang::tr{'source ip'}</b></td> -<td width='20%' class='boldbase' align='center'><b>$Lang::tr{'destination ip'}</b></td> -<td width='15%' class='boldbase' align='center'><b>$Lang::tr{'destination port'}</b></td> -<td width='30%' class='boldbase' align='center'><b>$Lang::tr{'remark'}</b></td> -<td width='5%' class='boldbase' colspan='3' align='center'><b>$Lang::tr{'action'}</b></td> -</tr> -END -; - -# If something has happened re-read config -if($cgiparams{'ACTION'} ne '' or $changed ne 'no') -{ - open(FILE, $filename) or die 'Unable to open config file.'; - @current = <FILE>; - close(FILE); -} -my $id = 0; -foreach my $line (@current) -{ - $id++; - chomp($line); - my @temp = split(/,/,$line); - my $protocol = ''; - my $gif = ''; - my $gdesc = ''; - my $toggle = ''; - if ($temp[0] eq 'udp') { - $protocol = 'UDP'; } - else { - $protocol = 'TCP' } - if($cgiparams{'ACTION'} eq $Lang::tr{'edit'} && $cgiparams{'ID'} eq $id) { - print "<tr bgcolor='${Header::colouryellow}'>\n"; } - elsif ($id % 2) { - print "<tr bgcolor='$color{'color22'}'>\n"; } - else { - print "<tr bgcolor='$color{'color20'}'>\n"; } - if ($temp[3] eq 'on') { $gif='on.gif'; $toggle='off'; $gdesc=$Lang::tr{'click to disable'};} - else { $gif='off.gif'; $toggle='on'; $gdesc=$Lang::tr{'click to enable'}; } - if ($temp[1] eq '0.0.0.0/0') { - $temp[1] = $Lang::tr{'caps all'}; } - # catch for 'old-style' rules file - assume default ip if - # none exists - if (!&General::validip($temp[4]) || $temp[4] eq '0.0.0.0') { - $temp[4] = 'DEFAULT IP'; } - $temp[5] = '' unless defined $temp[5]; -print <<END -<td align='center'>$protocol</td> -<td align='center'>$temp[1]</td> -<td align='center'>$temp[4]</td> -<td align='center'>$temp[2]</td> -<td align='left'> $temp[5]</td> -<td align='center'> -<form method='post' name='frma$id' action='$ENV{'SCRIPT_NAME'}'> -<input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' title='$gdesc' alt='$gdesc' /> -<input type='hidden' name='ID' value='$id' /> -<input type='hidden' name='ENABLE' value='$toggle' /> -<input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' /> -</form> -</td> -<td align='center'> -<form method='post' name='frmb$id' action='$ENV{'SCRIPT_NAME'}'> -<input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' title='$Lang::tr{'edit'}' alt='$Lang::tr{'edit'}' /> -<input type='hidden' name='ID' value='$id' /> -<input type='hidden' name='ACTION' value='$Lang::tr{'edit'}' /> -</form> -</td> -<td align='center'> -<form method='post' name='frmc$id' action='$ENV{'SCRIPT_NAME'}'> -<input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' title='$Lang::tr{'remove'}' alt='$Lang::tr{'remove'}' /> -<input type='hidden' name='ID' value='$id' /> -<input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' /> -</form> -</td> - -</tr> -END - ; -} -print "</table>\n"; - -# If the xt access file contains entries, print Key to action icons -if ( ! -z "$filename") { -print <<END -<table> -<tr> - <td class='boldbase'> <b>$Lang::tr{'legend'}:</b></td> - <td> <img src='/images/on.gif' alt='$Lang::tr{'click to disable'}' /></td> - <td class='base'>$Lang::tr{'click to disable'}</td> - <td> <img src='/images/off.gif' alt='$Lang::tr{'click to enable'}' /></td> - <td class='base'>$Lang::tr{'click to enable'}</td> - <td> <img src='/images/edit.gif' alt='$Lang::tr{'edit'}' /></td> - <td class='base'>$Lang::tr{'edit'}</td> - <td> <img src='/images/delete.gif' alt='$Lang::tr{'remove'}' /></td> - <td class='base'>$Lang::tr{'remove'}</td> -</tr> -</table> -END -; -} - -&Header::closebox(); - -&Header::closebigbox(); - -&Header::closepage(); diff --git a/html/html/include/jquery-1.9.1.min.js b/html/html/include/jquery-1.9.1.min.js deleted file mode 100644 index 006e953..0000000 --- a/html/html/include/jquery-1.9.1.min.js +++ /dev/null @@ -1,5 +0,0 @@ -/*! jQuery v1.9.1 | (c) 2005, 2012 jQuery Foundation, Inc. | jquery.org/license -//@ sourceMappingURL=jquery.min.map -*/(function(e,t){var n,r,i=typeof t,o=e.document,a=e.location,s=e.jQuery,u=e.$,l={},c=[],p="1.9.1",f=c.concat,d=c.push,h=c.slice,g=c.indexOf,m=l.toString,y=l.hasOwnProperty,v=p.trim,b=function(e,t){return new b.fn.init(e,t,r)},x=/[+-]?(?:\d*.|)\d+(?:[eE][+-]?\d+|)/.source,w=/\S+/g,T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=/^<(\w+)\s*/?>(?:</\1>|)$/,k=/^[],:{}\s]*$/,E=/(?:^|:|,)(?:\s*[)+/g,S=/\(?:["\/bfnrt]|u[\da-fA-F]{4})/g,A=/"[^"\\r\n]*"|true|false|null|-?(?:\d+.|)\d+(?:[eE][+-]?\d+|)/g,j=/^-ms-/,D=/-([\da-z])/gi,L=function(e,t){return t.toUpperCase()},H=function(e){(o.addEventListener||"load"===e.type||"complete"===o.readyState)&&(q(),b.ready())},q=function(){o.addEventListener?(o.removeEventListener("DOMContentLoaded",H,!1),e.removeEventListener("load",H,!1)):(o.detachEvent("onreadystatechange",H),e.detachEvent("onload",H))};b.fn=b.prototype={jquery:p,constructor:b,init:function(e,n,r){var i,a;if(!e)return this;if("string"==typeof e) {if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof b?n[0]:n,b.merge(this,b.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:o,!0)),C.test(i[1])&&b.isPlainObject(n))for(i in n)b.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(a=o.getElementById(i[2]),a&&a.parentNode){if(a.id!==i[2])return r.find(e);this.length=1,this[0]=a}return this.context=o,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):b.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),b.makeArray(e,this))},selector:"",length:0,size:function(){return this.length},toArray:function(){return h.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=b.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:funct ion(e,t){return b.each(this,e,t)},ready:function(e){return b.ready.promise().done(e),this},slice:function(){return this.pushStack(h.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(b.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:d,sort:[].sort,splice:[].splice},b.fn.init.prototype=b.fn,b.extend=b.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},u=1,l=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},u=2),"object"==typeof s||b.isFunction(s)||(s={}),l===u&&(s=this,--u);l>u;u++)if(null!=(o=arguments[u]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(b.isPlainObject(r)||(n=b.isArray(r)))?(n?(n=!1,a=e&&b.isArray(e)?e:[]):a=e&&b.isPlainObject(e)?e:{},s[i]=b.extend(c,a,r)):r!==t&&(s[i]=r));return s},b.extend({noConflict:fun ction(t){return e.$===b&&(e.$=u),t&&e.jQuery===b&&(e.jQuery=s),b},isReady:!1,readyWait:1,holdReady:function(e){e?b.readyWait++:b.ready(!0)},ready:function(e){if(e===!0?!--b.readyWait:!b.isReady){if(!o.body)return setTimeout(b.ready);b.isReady=!0,e!==!0&&--b.readyWait>0||(n.resolveWith(o,[b]),b.fn.trigger&&b(o).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===b.type(e)},isArray:Array.isArray||function(e){return"array"===b.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[m.call(e)]||"object":typeof e},isPlainObject:function(e){if(!e||"object"!==b.type(e)||e.nodeType||b.isWindow(e))return!1;try{if(e.constructor&&!y.call(e,"constructor")&&!y.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||y.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;r eturn!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||o;var r=C.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=b.buildFragment([e],t,i),i&&b(i).remove(),b.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=b.trim(n),n&&k.test(n.replace(S,"@").replace(A,"]").replace(E,"")))?Function("return "+n)():(b.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||b.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&b.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(j,"ms-").replace(D,L)},node Name:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:v&&!v.call("\ufeff\u00a0")?function(e){return null==e?"":v.call(e)}:function(e){return null==e?"":(e+"").replace(T,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?b.merge(n,"string"==typeof e?[e]:e):d.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(g)return g.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r &&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return f.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),b.isFunction(e)?(r=h.call(arguments,2),i=function(){return e.apply(n||this,r.concat(h.call(arguments)))},i.guid=e.guid=e.guid||b.guid++,i):t},access:function(e,n,r,i,o,a,s){var u=0,l=e.length,c=null==r;if("object"===b.type(r)){o=!0;for(u in r)b.access(e,n,u,r[u],!0,a,s)}else if(i!==t&&(o=!0,b.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(b(e),n)})),n))for(;l>u;u++)n(e[u],r,s?i:i.call(e[u],u,n(e[u],r)));return o?e:c?n.call(e):l?n(e[0],r):a},now:function(){return(new Date).getTime()}}),b.ready.promise=function(t){if(!n)if(n=b.Deferred(),"complete"===o.readyState)setTimeout(b.ready);else if(o.addEventListener)o.addEventListener("DOMContentLoaded",H,!1),e.addEv entListener("load",H,!1);else{o.attachEvent("onreadystatechange",H),e.attachEvent("onload",H);var r=!1;try{r=null==e.frameElement&&o.documentElement}catch(i){}r&&r.doScroll&&function a(){if(!b.isReady){try{r.doScroll("left")}catch(e){return setTimeout(a,50)}q(),b.ready()}}()}return n.promise(t)},b.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=b.type(e);return b.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=b(o);var _={};function F(e){var t=_[e]={};return b.each(e.match(w)||[],function(e,n){t[n]=!0}),t}b.Callbacks=function(e){e="string"==typeof e?_[e]||F(e):b.extend({},e);var n,r,i,o,a,s,u=[],l=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=u.length,n=!0;u&&o>a;a++)if(u[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,u&&(l?l.length&&c(l.shift()):r?u=[]:p.disable())},p={add:function( ){if(u){var t=u.length;(function i(t){b.each(t,function(t,n){var r=b.type(n);"function"===r?e.unique&&p.has(n)||u.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=u.length:r&&(s=t,c(r))}return this},remove:function(){return u&&b.each(arguments,function(e,t){var r;while((r=b.inArray(t,u,r))>-1)u.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?b.inArray(e,u)>-1:!(!u||!u.length)},empty:function(){return u=[],this},disable:function(){return u=l=r=t,this},disabled:function(){return!u},lock:function(){return l=t,r||p.disable(),this},locked:function(){return!l},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],!u||i&&!l||(n?l.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},b.extend({Deferred:function(e){var t=[["resolve","done",b.Callbacks("once memory"),"resolved"],["reject","fail",b.Callbacks("once memory"),"rejected"],["notify","progress",b.Callbacks("memory")]],n="pending",r ={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return b.Deferred(function(n){b.each(t,function(t,o){var a=o[0],s=b.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&b.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?b.extend(e,r):r}},i={};return r.pipe=r.then,b.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=h.call(arguments),r=n.length,i=1!==r||e&&b.isFunction(e.promise)?r:0,o=1===i?e:b.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?h.call(arguments):r,n===s?o.notifyWith(t,n):-- i||o.resolveWith(t,n)}},s,u,l;if(r>1)for(s=Array(r),u=Array(r),l=Array(r);r>t;t++)n[t]&&b.isFunction(n[t].promise)?n[t].promise().done(a(t,l,n)).fail(o.reject).progress(a(t,u,s)):--i;return i||o.resolveWith(l,n),o.promise()}}),b.support=function(){var t,n,r,a,s,u,l,c,p,f,d=o.createElement("div");if(d.setAttribute("className","t"),d.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=d.getElementsByTagName("*"),r=d.getElementsByTagName("a")[0],!n||!r||!n.length)return{};s=o.createElement("select"),l=s.appendChild(o.createElement("option")),a=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={getSetAttribute:"t"!==d.className,leadingWhitespace:3===d.firstChild.nodeType,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:"/a"===r.getAttribute("href"),opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,check On:!!a.value,optSelected:l.selected,enctype:!!o.createElement("form").enctype,html5Clone:"<:nav></:nav>"!==o.createElement("nav").cloneNode(!0).outerHTML,boxModel:"CSS1Compat"===o.compatMode,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},a.checked=!0,t.noCloneChecked=a.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!l.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}a=o.createElement("input"),a.setAttribute("value",""),t.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),t.radioValue="t"===a.value,a.setAttribute("checked","t"),a.setAttribute("name","t"),u=o.createDocumentFragment(),u.appendChild(a),t.appendChecked=a.checked,t.checkClone=u.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bub bles"]=c in e||d.attributes[c].expando===!1;return d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip,b(function(){var n,r,a,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",u=o.getElementsByTagName("body")[0];u&&(n=o.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",u.appendChild(n).appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",a=d.getElementsByTagName("td"),a[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===a[0].offsetHeight,a[0].style.display="",a[1].style.display="none",t.reliableHiddenOffsets=p&&0===a[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1 %;",t.boxSizing=4===d.offsetWidth,t.doesNotIncludeMarginInBodyOffset=1!==u.offsetTop,e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(o.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="<div></div>",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(u.style.zoom=1)),u.removeChild(n),n=d=a=r=null)}),n=s=u=l=r=a=null,t}();var O=/(?:{[\s\S]*}|[[\s\S]*])$/,B=/([A-Z])/g;function P(e,n,r,i){if(b.acceptData(e)){var o,a,s=b.expando,u="string"==typeof n,l=e.nodeType,p=l?b.cache:e,f=l?e[s]:e[s]&&s; if(f&&p[f]&&(i||p[f].data)||!u||r!==t)return f||(l?e[s]=f=c.pop()||b.guid++:f=s),p[f]||(p[f]={},l||(p[f].toJSON=b.noop)),("object"==typeof n||"function"==typeof n)&&(i?p[f]=b.extend(p[f],n):p[f].data=b.extend(p[f].data,n)),o=p[f],i||(o.data||(o.data={}),o=o.data),r!==t&&(o[b.camelCase(n)]=r),u?(a=o[n],null==a&&(a=o[b.camelCase(n)])):a=o,a}}function R(e,t,n){if(b.acceptData(e)){var r,i,o,a=e.nodeType,s=a?b.cache:e,u=a?e[b.expando]:b.expando;if(s[u]){if(t&&(o=n?s[u]:s[u].data)){b.isArray(t)?t=t.concat(b.map(t,b.camelCase)):t in o?t=[t]:(t=b.camelCase(t),t=t in o?[t]:t.split(" "));for(r=0,i=t.length;i>r;r++)delete o[t[r]];if(!(n?$:b.isEmptyObject)(o))return}(n||(delete s[u].data,$(s[u])))&&(a?b.cleanData([e],!0):b.support.deleteExpando||s!=s.window?delete s[u]:s[u]=null)}}}b.extend({cache:{},expando:"jQuery"+(p+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?b.cache[e[b.expando]]:e[ b.expando],!!e&&!$(e)},data:function(e,t,n){return P(e,t,n)},removeData:function(e,t){return R(e,t)},_data:function(e,t,n){return P(e,t,n,!0)},_removeData:function(e,t){return R(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&b.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),b.fn.extend({data:function(e,n){var r,i,o=this[0],a=0,s=null;if(e===t){if(this.length&&(s=b.data(o),1===o.nodeType&&!b._data(o,"parsedAttrs"))){for(r=o.attributes;r.length>a;a++)i=r[a].name,i.indexOf("data-")||(i=b.camelCase(i.slice(5)),W(o,i,s[i]));b._data(o,"parsedAttrs",!0)}return s}return"object"==typeof e?this.each(function(){b.data(this,e)}):b.access(this,function(n){return n===t?o?W(o,e,b.data(o,e)):null:(this.each(function(){b.data(this,e,n)}),t)},null,n,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){b.removeData(this,e)})}});function W(e,n,r){if(r===t&&1===e.nodeType){var i="data -"+n.replace(B,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:O.test(r)?b.parseJSON(r):r}catch(o){}b.data(e,n,r)}else r=t}return r}function $(e){var t;for(t in e)if(("data"!==t||!b.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}b.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=b._data(e,n),r&&(!i||b.isArray(r)?i=b._data(e,n,b.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=b.queue(e,t),r=n.length,i=n.shift(),o=b._queueHooks(e,t),a=function(){b.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),o.cur=i,i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return b._data(e,n)||b._data(e,n,{empty:b.Callbacks("once memory").add(function(){b._removeData(e,t+"queue"),b._removeData(e,n)})})}}),b.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>a rguments.length?b.queue(this[0],e):n===t?this:this.each(function(){var t=b.queue(this,e,n);b._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&b.dequeue(this,e)})},dequeue:function(e){return this.each(function(){b.dequeue(this,e)})},delay:function(e,t){return e=b.fx?b.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=b.Deferred(),a=this,s=this.length,u=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=b._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(u));return u(),o.promise(n)}});var I,z,X=/[\t\r\n]/g,U=/\r/g,V=/^(?:input|select|textarea|button|object)$/i,Y=/^(?:a|area)$/i,J=/^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i,G=/^(?:checked|selected)$/i,Q=b.support.getSetAttribute,K=b.support.input;b.fn.extend( {attr:function(e,t){return b.access(this,b.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){b.removeAttr(this,e)})},prop:function(e,t){return b.access(this,b.prop,e,t,arguments.length>1)},removeProp:function(e){return e=b.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,u="string"==typeof e&&e;if(b.isFunction(e))return this.each(function(t){b(this).addClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(X," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=b.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,u=0===arguments.length||"string"==typeof e&&e;if(b.isFunction(e))return this.each(function(t){b(this).removeClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&& (n.className?(" "+n.className+" ").replace(X," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?b.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e,r="boolean"==typeof t;return b.isFunction(e)?this.each(function(n){b(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var o,a=0,s=b(this),u=t,l=e.match(w)||[];while(o=l[a++])u=r?u:!s.hasClass(o),s[u?"addClass":"removeClass"](o)}else(n===i||"boolean"===n)&&(this.className&&b._data(this,"__className__",this.className),this.className=this.className||e===!1?"":b._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(X," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=b.isFunction(e),this.each(function(n){var o,a=b(this);1===this.nodeType&&(o=i?e.call(this,n,a.val()):e,null== o?o="":"number"==typeof o?o+="":b.isArray(o)&&(o=b.map(o,function(e){return null==e?"":e+""})),r=b.valHooks[this.type]||b.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=b.valHooks[o.type]||b.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(U,""):null==n?"":n)}}}),b.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,u=0>i?s:o?i:0;for(;s>u;u++)if(n=r[u],!(!n.selected&&u!==i||(b.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&b.nodeName(n.parentNode,"optgroup"))){if(t=b(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n=b.makeArray(t);return b(e).find("option").each(function(){this.selected=b.inArray(b(this).val(),n)>=0}),n.length| |(e.selectedIndex=-1),n}}},attr:function(e,n,r){var o,a,s,u=e.nodeType;if(e&&3!==u&&8!==u&&2!==u)return typeof e.getAttribute===i?b.prop(e,n,r):(a=1!==u||!b.isXMLDoc(e),a&&(n=n.toLowerCase(),o=b.attrHooks[n]||(J.test(n)?z:I)),r===t?o&&a&&"get"in o&&null!==(s=o.get(e,n))?s:(typeof e.getAttribute!==i&&(s=e.getAttribute(n)),null==s?t:s):null!==r?o&&a&&"set"in o&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r):(b.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(w);if(o&&1===e.nodeType)while(n=o[i++])r=b.propFix[n]||n,J.test(n)?!Q&&G.test(n)?e[b.camelCase("default-"+n)]=e[r]=!1:e[r]=!1:b.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!b.support.radioValue&&"radio"===t&&b.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",col span:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!b.isXMLDoc(e),a&&(n=b.propFix[n]||n,o=b.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):V.test(e.nodeName)||Y.test(e.nodeName)&&e.href?0:t}}}}),z={get:function(e,n){var r=b.prop(e,n),i="boolean"==typeof r&&e.getAttribute(n),o="boolean"==typeof r?K&&Q?null!=i:G.test(n)?e[b.camelCase("default-"+n)]:!!i:e.getAttributeNode(n);return o&&o.value!==!1?n.toLowerCase():t},set:function(e,t,n){return t===!1?b.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&b.propFix[n]||n,n):e[b.camelCase("default-"+n)]=e[n]=!0,n}},K&&Q||(b.attrHooks.value={get:function(e,n){var r=e.getAttributeNode(n);return b.nodeName(e,"input")?e.defaultValue:r&&r.specif ied?r.value:t},set:function(e,n,r){return b.nodeName(e,"input")?(e.defaultValue=n,t):I&&I.set(e,n,r)}}),Q||(I=b.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&("id"===n||"name"===n||"coords"===n?""!==r.value:r.specified)?r.value:t},set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},b.attrHooks.contenteditable={get:I.get,set:function(e,t,n){I.set(e,""===t?!1:t,n)}},b.each(["width","height"],function(e,n){b.attrHooks[n]=b.extend(b.attrHooks[n],{set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}})})),b.support.hrefNormalized||(b.each(["href","src","width","height"],function(e,n){b.attrHooks[n]=b.extend(b.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return null==r?t:r}})}),b.each(["href","src"],function(e,t){b.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}})),b.support.style||(b.attrHooks.style={get:function(e ){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),b.support.optSelected||(b.propHooks.selected=b.extend(b.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),b.support.enctype||(b.propFix.enctype="encoding"),b.support.checkOn||b.each(["radio","checkbox"],function(){b.valHooks[this]={get:function(e){return null===e.getAttribute("value")?"on":e.value}}}),b.each(["radio","checkbox"],function(){b.valHooks[this]=b.extend(b.valHooks[this],{set:function(e,n){return b.isArray(n)?e.checked=b.inArray(b(e).val(),n)>=0:t}})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:.(.+)|)$/;function it(){return!0}function ot(){return!1}b.event={global:{},add:function(e,n,r,o,a){var s,u,l,c,p,f,d,h,g,m,y,v=b._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=b.guid++),(u=v.events)||(u=v.eve nts={}),(f=v.handle)||(f=v.handle=function(e){return typeof b===i||e&&b.event.triggered===e.type?t:b.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(w)||[""],l=n.length;while(l--)s=rt.exec(n[l])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),p=b.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=b.event.special[g]||{},d=b.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&b.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=u[g])||(h=u[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),b.event.global[g]=!0;e=null}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,p,f,d,h,g,m=b.hasData(e)&&b._data(e);if(m&&(c=m.events)){t=(t||"").match(w)||[""],l=t.length;while(l--)if(s=rt.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort (),d){p=b.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\.)"+h.join("\.(?:.*\.|)")+"(\.|$)"),u=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));u&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||b.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)b.event.remove(e,d+t[l],n,r,!0);b.isEmptyObject(c)&&(delete m.handle,b._removeData(e,"events"))}},trigger:function(n,r,i,a){var s,u,l,c,p,f,d,h=[i||o],g=y.call(n,"type")?n.type:n,m=y.call(n,"namespace")?n.namespace.split("."):[];if(l=f=i=i||o,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+b.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),u=0>g.indexOf(":")&&"on"+g,n=n[b.expando]?n:new b.Event(g,"object"==typeof n&&n),n.isTrigger=!0,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\.) "+m.join("\.(?:.*\.|)")+"(\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:b.makeArray(r,[n]),p=b.event.special[g]||{},a||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!a&&!p.noBubble&&!b.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(l=l.parentNode);l;l=l.parentNode)h.push(l),f=l;f===(i.ownerDocument||o)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((l=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(b._data(l,"events")||{})[n.type]&&b._data(l,"handle"),s&&s.apply(l,r),s=u&&l[u],s&&b.acceptData(l)&&s.apply&&s.apply(l,r)===!1&&n.preventDefault();if(n.type=g,!(a||n.isDefaultPrevented()||p._default&&p._default.apply(i.ownerDocument,r)!==!1||"click"===g&&b.nodeName(i,"a")||!b.acceptData(i)||!u||!i[g]||b.isWindow(i))){f=i[u],f&&(i[u]=null),b.event.triggered=g;try{i[g]()}catch(v){}b.event.triggered=t,f&&(i[u]=f)}return n.result}},dispatch:function(e){e=b.event.fix(e);var n,r,i,o,a,s=[],u=h.call(arguments),l=(b._data(this,"events")||{})[e.type]||[],c =b.event.special[e.type]||{};if(u[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=b.event.handlers.call(this,e,l),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((b.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,u),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],u=n.delegateCount,l=e.target;if(u&&l.nodeType&&(!e.button||"click"!==e.type))for(;l!=this;l=l.parentNode||this)if(1===l.nodeType&&(l.disabled!==!0||"click"!==e.type)){for(o=[],a=0;u>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?b(r,this).index(l)>=0:b.find(r,this,null,[l]).length),o[r]&&o.push(i);o.length&&s.push({elem:l,handlers:o})}return n.length>u&&s.push({elem:this,han dlers:n.slice(u)}),s},fix:function(e){if(e[b.expando])return e;var t,n,r,i=e.type,a=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new b.Event(a),t=r.length;while(t--)n=r[t],e[n]=a[n];return e.target||(e.target=a.srcElement||o),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,a):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,a,s=n.button,u=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||o,a=i.documen tElement,r=i.body,e.pageX=n.clientX+(a&&a.scrollLeft||r&&r.scrollLeft||0)-(a&&a.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(a&&a.scrollTop||r&&r.scrollTop||0)-(a&&a.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&u&&(e.relatedTarget=u===e.target?n.toElement:u),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},click:{trigger:function(){return b.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t}},focus:{trigger:function(){if(this!==o.activeElement&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===o.activeElement&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=b.extend(new b.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?b.event.trigger(i,null,t):b.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},b.r emoveEvent=o.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},b.Event=function(e,n){return this instanceof b.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&b.extend(this,n),this.timeStamp=e&&e.timeStamp||b.now(),this[b.expando]=!0,t):new b.Event(e,n)},b.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagati on()}},b.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){b.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj; -return(!i||i!==r&&!b.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),b.support.submitBubbles||(b.event.special.submit={setup:function(){return b.nodeName(this,"form")?!1:(b.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=b.nodeName(n,"input")||b.nodeName(n,"button")?n.form:t;r&&!b._data(r,"submitBubbles")&&(b.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),b._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&b.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return b.nodeName(this,"form")?!1:(b.event.remove(this,"._submit"),t)}}),b.support.changeBubbles||(b.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(b.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),b.event.add (this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),b.event.simulate("change",this,e,!0)})),!1):(b.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!b._data(t,"changeBubbles")&&(b.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||b.event.simulate("change",this.parentNode,e,!0)}),b._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return b.event.remove(this,"._change"),!Z.test(this.nodeName)}}),b.support.focusinBubbles||b.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){b.event.simulate(t,e.target,b.event.fix(e),!0)};b.event.special[t]={setup:function(){0===n++&&o.addEventListener(e,r,!0)},teardown:function(){0===--n&&o.removeEventListener(e,r,!0)}}}),b.fn.extend({on:function(e,n,r ,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return b().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=b.guid++)),this.each(function(){b.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,b(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){b.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1=== arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},trigger:function(e,t){return this.each(function(){b.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?b.event.trigger(e,n,r,!0):t}}),function(e,t){var n,r,i,o,a,s,u,l,c,p,f,d,h,g,m,y,v,x="sizzle"+-new Date,w=e.document,T={},N=0,C=0,k=it(),E=it(),S=it(),A=typeof t,j=1<<31,D=[],L=D.pop,H=D.push,q=D.slice,M=D.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},_="[\x20\t\r\n\f]",F="(?:\\.|[\w-]|[^\x00-\xa0])+",O=F.replace("w","w#"),B="([*^$|!~]?=)",P="\["+_+"*("+F+")"+_+"*(?:"+B+_+"*(?:(['"])((?:\\.|[^\\])*?)\3|("+O+")|)|)"+_+"*\]",R=":("+F+")(?:\(((['"])((?:\\.|[^\\])*?)\3|((?:\\.|[^\\()[\]]|"+P.replace(3,8)+")*)|.*)\)|)",W=RegExp("^"+_+"+|((?:^|[^\\])(?:\\.)*)"+_+"+$","g"),$=RegExp("^"+_+"*,"+_+"*"),I=RegExp("^"+_+"*([\x20\t\r\n\f>+~])"+_+"*"),z=RegExp(R),X=RegExp("^"+O+"$"),U={ID:RegExp("^#("+F+")"),CLASS:RegExp("^\.("+F +")"),NAME:RegExp("^\[name=['"]?("+F+")['"]?\]"),TAG:RegExp("^("+F.replace("w","w*")+")"),ATTR:RegExp("^"+P),PSEUDO:RegExp("^"+R),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\("+_+"*(even|odd|(([+-]|)(\d*)n|)"+_+"*(?:([+-]|)"+_+"*(\d+)|))"+_+"*\)|)","i"),needsContext:RegExp("^"+_+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\("+_+"*((?:-\d)?\d*)"+_+"*\)|)(?=[^-]|$)","i")},V=/[\x20\t\r\n\f]*[+~]/,Y=/^[^{]+{\s*[native code/,J=/^(?:#([\w-]+)|(\w+)|.([\w-]+))$/,G=/^(?:input|select|textarea|button)$/i,Q=/^h\d$/i,K=/'|\/g,Z=/=[\x20\t\r\n\f]*([^'"]]*)[\x20\t\r\n\f]*]/g,et=/\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,tt=function(e,t){var n="0x"+t-65536;return n!==n?t:0>n?String.fromCharCode(n+65536):String.fromCharCode(55296|n>>10,56320|1023&n)};try{q.call(w.documentElement.childNodes,0)[0].nodeType}catch(nt){q=function(e){var t,n=[];while(t=this[e++])n.push(t);return n}}function rt(e){return Y.test(e+"")}function it(){var e,t=[];return e=function(n,r){re turn t.push(n+=" ")>i.cacheLength&&delete e[t.shift()],e[n]=r}}function ot(e){return e[x]=!0,e}function at(e){var t=p.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}}function st(e,t,n,r){var i,o,a,s,u,l,f,g,m,v;if((t?t.ownerDocument||t:w)!==p&&c(t),t=t||p,n=n||[],!e||"string"!=typeof e)return n;if(1!==(s=t.nodeType)&&9!==s)return[];if(!d&&!r){if(i=J.exec(e))if(a=i[1]){if(9===s){if(o=t.getElementById(a),!o||!o.parentNode)return n;if(o.id===a)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(a))&&y(t,o)&&o.id===a)return n.push(o),n}else{if(i[2])return H.apply(n,q.call(t.getElementsByTagName(e),0)),n;if((a=i[3])&&T.getByClassName&&t.getElementsByClassName)return H.apply(n,q.call(t.getElementsByClassName(a),0)),n}if(T.qsa&&!h.test(e)){if(f=!0,g=x,m=t,v=9===s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){l=ft(e),(f=t.getAttribute("id"))?g=f.replace(K,"\$&"):t.setAttribute("id",g),g="[id='"+g+"'] ",u=l.length;while(u--)l[u]=g+dt(l[u]);m =V.test(e)&&t.parentNode||t,v=l.join(",")}if(v)try{return H.apply(n,q.call(m.querySelectorAll(v),0)),n}catch(b){}finally{f||t.removeAttribute("id")}}}return wt(e.replace(W,"$1"),t,n,r)}a=st.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},c=st.setDocument=function(e){var n=e?e.ownerDocument||e:w;return n!==p&&9===n.nodeType&&n.documentElement?(p=n,f=n.documentElement,d=a(n),T.tagNameNoComments=at(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),T.attributes=at(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return"boolean"!==t&&"string"!==t}),T.getByClassName=at(function(e){return e.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",e.getElementsByClassName&&e.getElementsByClassName("e").length?(e.lastChild.className="e",2===e.getElementsByClassName("e").length):!1}),T.getByName=at(function(e){e.id=x+0,e.innerHTML="<a name='"+x+"'>< /a><div name='"+x+"'></div>",f.insertBefore(e,f.firstChild);var t=n.getElementsByName&&n.getElementsByName(x).length===2+n.getElementsByName(x+0).length;return T.getIdNotName=!n.getElementById(x),f.removeChild(e),t}),i.attrHandle=at(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==A&&"#"===e.firstChild.getAttribute("href")})?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},T.getIdNotName?(i.find.ID=function(e,t){if(typeof t.getElementById!==A&&!d){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},i.filter.ID=function(e){var t=e.replace(et,tt);return function(e){return e.getAttribute("id")===t}}):(i.find.ID=function(e,n){if(typeof n.getElementById!==A&&!d){var r=n.getElementById(e);return r?r.id===e||typeof r.getAttributeNode!==A&&r.getAttributeNode("id").value===e?[r]:t:[]}},i.filter.ID=function(e){var t=e.replace(et,tt);return function(e){var n=typeof e.getAttributeNode!= =A&&e.getAttributeNode("id");return n&&n.value===t}}),i.find.TAG=T.tagNameNoComments?function(e,n){return typeof n.getElementsByTagName!==A?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},i.find.NAME=T.getByName&&function(e,n){return typeof n.getElementsByName!==A?n.getElementsByName(name):t},i.find.CLASS=T.getByClassName&&function(e,n){return typeof n.getElementsByClassName===A||d?t:n.getElementsByClassName(e)},g=[],h=[":focus"],(T.qsa=rt(n.querySelectorAll))&&(at(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||h.push("\["+_+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||h.push(":checked")}),at(function(e){e.innerHTML="<input type='hidden' i=''/>",e.querySelectorAll("[i^='']").length&&h.push("[*^$]="+_+"*(?:""|'')"),e.querySelectorAll(":enabled").leng th||h.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),h.push(",.*:")})),(T.matchesSelector=rt(m=f.matchesSelector||f.mozMatchesSelector||f.webkitMatchesSelector||f.oMatchesSelector||f.msMatchesSelector))&&at(function(e){T.disconnectedMatch=m.call(e,"div"),m.call(e,"[s!='']:x"),g.push("!=",R)}),h=RegExp(h.join("|")),g=RegExp(g.join("|")),y=rt(f.contains)||f.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},v=f.compareDocumentPosition?function(e,t){var r;return e===t?(u=!0,0):(r=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t))?1&r||e.parentNode&&11===e.parentNode.nodeType?e===n||y(w,e)?-1:t===n||y(w,t)?1:0:4&r?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l =[t];if(e===t)return u=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:0;if(o===a)return ut(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?ut(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},u=!1,[0,0].sort(v),T.detectDuplicates=u,p):p},st.matches=function(e,t){return st(e,null,null,t)},st.matchesSelector=function(e,t){if((e.ownerDocument||e)!==p&&c(e),t=t.replace(Z,"='$1']"),!(!T.matchesSelector||d||g&&g.test(t)||h.test(t)))try{var n=m.call(e,t);if(n||T.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(r){}return st(t,p,null,[e]).length>0},st.contains=function(e,t){return(e.ownerDocument||e)!==p&&c(e),y(e,t)},st.attr=function(e,t){var n;return(e.ownerDocument||e)!==p&&c(e),d||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):d||T.attributes?e.getAttribute(t):((n=e.getAttributeNode(t))||e.getAttribute(t))&&e[t]===!0?t:n&&n.specified?n.value:null},st.error=function(e){throw Error("Syntax error, unrecognized expressi on: "+e)},st.uniqueSort=function(e){var t,n=[],r=1,i=0;if(u=!T.detectDuplicates,e.sort(v),u){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));while(i--)e.splice(n[i],1)}return e};function ut(e,t){var n=t&&e,r=n&&(~t.sourceIndex||j)-(~e.sourceIndex||j);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function lt(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function ct(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function pt(e){return ot(function(t){return t=+t,ot(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}o=st.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=o(t);return n},i=st.selectors={cacheLength:50,createPseudo:ot,match:U,find:{ },relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(et,tt),e[3]=(e[4]||e[5]||"").replace(et,tt),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||st.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&st.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return U.CHILD.test(e[0])?null:(e[4]?e[2]=e[4]:n&&z.test(n)&&(t=ft(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){return"*"===e?function(){return!0}:(e=e.replace(et,tt).toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[e+" "];return t||(t=RegExp("(^|"+_+")"+e+"("+_+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttr ibute!==A&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=st.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!u&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[x]||(m[x]={}),l=c[e]||[],d=l[0]===N&&l[1],f=l[0]===N&&l[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[N,d,f];break}}else if(v&&(l=(t[x]||(t[x] ={}))[e])&&l[0]===N)f=l[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[x]||(p[x]={}))[e]=[N,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||st.error("unsupported pseudo: "+e);return r[x]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?ot(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=M.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:ot(function(e){var t=[],n=[],r=s(e.replace(W,"$1"));return r[x]?ot(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:ot(function(e){return function(t){return st(e,t).length>0}}),contains:ot(function(e){return function(t){return(t.textContent||t.innerText||o(t)).indexOf(e)>-1}}),lang:ot(function(e){return X.test(e||"")||st.error("unsupported lang: "+ e),e=e.replace(et,tt).toLowerCase(),function(t){var n;do if(n=d?t.getAttribute("xml:lang")||t.getAttribute("lang"):t.lang)return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===f},focus:function(e){return e===p.activeElement&&(!p.hasFocus||p.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!i.pseudos.empty(e)},header:function(e){return Q.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},bu tton:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:pt(function(){return[0]}),last:pt(function(e,t){return[t-1]}),eq:pt(function(e,t,n){return[0>n?n+t:n]}),even:pt(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:pt(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:pt(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:pt(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}};for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})i.pseudos[n]=lt(n);for(n in{submit:!0,reset:!0})i.pseudos[n]=ct(n);function ft(e,t){var n,r,o,a,s,u,l,c=E[e+" "];if(c)return t?0:c.slice(0);s=e,u=[],l=i.preFilter;while(s){(!n||(r=$.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),u.push(o=[])),n=!1,(r=I.exec(s))&&(n=r.shift(),o.push({value:n,type:r[0].replace(W," ")}),s=s.slice(n.length));for(a in i.filter)!(r=U[a].exec(s))||l[a]&&!(r=l[a](r))||(n=r.shift(),o.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?st.error(e):E(e,u).slice(0)}function dt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function ht(e,t,n){var i=t.dir,o=n&&"parentNode"===i,a=C++;return t.first?function(t,n,r){while(t=t[i])if(1===t.nodeType||o)return e(t,n,r)}:function(t,n,s){var u,l,c,p=N+" "+a;if(s){while(t=t[i])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[i])if(1===t.nodeType||o)if(c=t[x]||(t[x]={}),(l=c[i])&&l[0]===p){if((u=l[1])===!0||u===r)return u===!0}else if(l=c[i]=[p],l[1]=e(t,n,s)||r,l[1]===!0)return!0}}function gt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function mt(e,t,n,r,i){var o,a=[],s=0,u=e.length,l=null!=t;for(;u>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),l&&t.push(s));return a}function yt(e,t,n,r,i,o){return r&&!r[x]&&(r=yt(r)) ,i&&!i[x]&&(i=yt(i,o)),ot(function(o,a,s,u){var l,c,p,f=[],d=[],h=a.length,g=o||xt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:mt(g,f,e,s,u),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,u),r){l=mt(y,d),r(l,[],s,u),c=l.length;while(c--)(p=l[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){l=[],c=y.length;while(c--)(p=y[c])&&l.push(m[c]=p);i(null,y=[],l,u)}c=y.length;while(c--)(p=y[c])&&(l=i?M.call(o,p):f[c])>-1&&(o[l]=!(a[l]=p))}}else y=mt(y===a?y.splice(h,y.length):y),i?i(null,a,y,u):H.apply(a,y)})}function vt(e){var t,n,r,o=e.length,a=i.relative[e[0].type],s=a||i.relative[" "],u=a?1:0,c=ht(function(e){return e===t},s,!0),p=ht(function(e){return M.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;o>u;u++)if(n=i.relative[e[u].type])f=[ht(gt(f),n)];else{if(n=i.filter[e[u].type].apply(null,e[u].matches),n[x]){for(r=++u;o>r;r++)if(i.relative[e[r].type])break;return yt(u>1&>(f),u>1&&dt(e.slice(0,u-1)).replace(W,"$1"),n,r>u&&vt(e.slice(u,r)), o>r&&vt(e=e.slice(r)),o>r&&dt(e))}f.push(n)}return gt(f)}function bt(e,t){var n=0,o=t.length>0,a=e.length>0,s=function(s,u,c,f,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,T=l,C=s||a&&i.find.TAG("*",d&&u.parentNode||u),k=N+=null==T?1:Math.random()||.1;for(w&&(l=u!==p&&u,r=n);null!=(h=C[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,u,c)){f.push(h);break}w&&(N=k,r=++n)}o&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,o&&b!==v){g=0;while(m=t[g++])m(x,y,u,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=L.call(f));y=mt(y)}H.apply(f,y),w&&!s&&y.length>0&&v+t.length>1&&st.uniqueSort(f)}return w&&(N=k,l=T),x};return o?ot(s):s}s=st.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=ft(e)),n=t.length;while(n--)o=vt(t[n]),o[x]?r.push(o):i.push(o);o=S(e,bt(i,r))}return o};function xt(e,t,n){var r=0,i=t.length;for(;i>r;r++)st(e,t[r],n);return n}function wt(e,t,n,r){var o,a,u,l,c,p=ft(e);if(!r&&1===p.length){if(a=p[0]=p[0].slice(0),a.length>2&&"ID"===(u=a[0]).type&&9===t.nodeType&&!d&&i.relative[a[ 1].type]){if(t=i.find.ID(u.matches[0].replace(et,tt),t)[0],!t)return n;e=e.slice(a.shift().value.length)}o=U.needsContext.test(e)?0:a.length;while(o--){if(u=a[o],i.relative[l=u.type])break;if((c=i.find[l])&&(r=c(u.matches[0].replace(et,tt),V.test(a[0].type)&&t.parentNode||t))){if(a.splice(o,1),e=r.length&&dt(a),!e)return H.apply(n,q.call(r,0)),n;break}}}return s(e,p)(r,t,d,n,V.test(e)),n}i.pseudos.nth=i.pseudos.eq;function Tt(){}i.filters=Tt.prototype=i.pseudos,i.setFilters=new Tt,c(),st.attr=b.attr,b.find=st,b.expr=st.selectors,b.expr[":"]=b.expr.pseudos,b.unique=st.uniqueSort,b.text=st.getText,b.isXMLDoc=st.isXML,b.contains=st.contains}(e);var at=/Until$/,st=/^(?:parents|prev(?:Until|All))/,ut=/^.[^:#[.,]*$/,lt=b.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};b.fn.extend({find:function(e){var t,n,r,i=this.length;if("string"!=typeof e)return r=this,this.pushStack(b(e).filter(function(){for(t=0;i>t;t++)if(b.contains(r[t],this))return!0}));for(n=[],t=0;i>t;t++ )b.find(e,this[t],n);return n=this.pushStack(i>1?b.unique(n):n),n.selector=(this.selector?this.selector+" ":"")+e,n},has:function(e){var t,n=b(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(b.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e,!1))},filter:function(e){return this.pushStack(ft(this,e,!0))},is:function(e){return!!e&&("string"==typeof e?lt.test(e)?b(e,this.context).index(this[0])>=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,o=[],a=lt.test(e)||"string"!=typeof e?b(e,t||this.context):0;for(;i>r;r++){n=this[r];while(n&&n.ownerDocument&&n!==t&&11!==n.nodeType){if(a?a.index(n)>-1:b.find.matchesSelector(n,e)){o.push(n);break}n=n.parentNode}}return this.pushStack(o.length>1?b.unique(o):o)},index:function(e){return e?"string"==typeof e?b.inArray(this[0],b(e)):b.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?b(e,t):b.makeArray(e&&e.nodeType?[e]:e),r=b.merge(this.get(),n);return this.pushStack(b.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),b.fn.andSelf=b.fn.addBack;function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}b.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(e,t,n){return b.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(e,t,n){return b.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return b.dir(e,"previousSibling",n)},siblings:function(e){return b.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentD ocument||e.contentWindow.document:b.merge([],e.childNodes)}},function(e,t){b.fn[e]=function(n,r){var i=b.map(this,t,n);return at.test(e)||(r=n),r&&"string"==typeof r&&(i=b.filter(r,i)),i=this.length>1&&!ct[e]?b.unique(i):i,this.length>1&&st.test(e)&&(i=i.reverse()),this.pushStack(i)}}),b.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),1===t.length?b.find.matchesSelector(t[0],e)?[t[0]]:[]:b.find.matches(e,t)},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!b(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(t=t||0,b.isFunction(t))return b.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return b.grep(e,function(e){return e===t===n});if("string"==typeof t){var r=b.grep(e,function(e){return 1===e.nodeType});if(ut.test(t))return b.filter(t,r,!n);t=b.filter(t,r)}return b.grep(e,function(e){retur n b.inArray(e,t)>=0===n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)/>/gi,bt=/<([\w:]+)/,xt=/<tbody/i,wt=/<|&#?\w+;/,Tt=/<(?:script|style|link)/i,Nt=/^(?:checkbox|radio)$/i,Ct=/checked\s*(?:[^=]|=\s*.checked.)/i,kt=/^$|/(?:java|ecma)script/i,Et=/^true/(.*)/,St=/^\s*<!(?:[CDATA[|--)|(?:]]|--)>\s*$/g,At={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></tab le>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:b.support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},jt=dt(o),Dt=jt.appendChild(o.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,b.fn.extend({text:function(e){return b.access(this,function(e){return e===t?b.text(this):this.empty().append((this[0]&&this[0].ownerDocument||o).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(b.isFunction(e))return this.each(function(t){b(this).wrapAll(e.call(this,t))});if(this[0]){var t=b(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return b.isFunction(e)?this.each(function(t){b(this).wrapInner(e.call(this,t))}):this.each(function(){var t=b(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=b .isFunction(e);return this.each(function(n){b(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){b.nodeName(this,"body")||b(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.insertBefore(e,this.firstChild)})},before:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=0;for(;null!=(n=this[r]);r++)(!e||b.filter(e,[n]).length>0)&&(t||1!==n.nodeType||b.cleanData(Ot(n)),n.parentNode&&(t&&b.contains(n.ownerDocument,n)&&Mt(Ot(n,"script")),n.parentNode.removeChild(n )));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&b.cleanData(Ot(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&b.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return b.clone(this,e,t)})},html:function(e){return b.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!b.support.htmlSerialize&&mt.test(e)||!b.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(b.cleanData(Ot(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){var t=b.isFunction(e);return t||"string"==typeof e||(e=b(e).not(this).detach()),this.domManip([e],!0,function(e){var t=this.nextSibling,n=this.parentNode; n&&(b(this).remove(),n.insertBefore(e,t))})},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=f.apply([],e);var i,o,a,s,u,l,c=0,p=this.length,d=this,h=p-1,g=e[0],m=b.isFunction(g);if(m||!(1>=p||"string"!=typeof g||b.support.checkClone)&&Ct.test(g))return this.each(function(i){var o=d.eq(i);m&&(e[0]=g.call(this,i,n?o.html():t)),o.domManip(e,n,r)});if(p&&(l=b.buildFragment(e,this[0].ownerDocument,!1,this),i=l.firstChild,1===l.childNodes.length&&(l=i),i)){for(n=n&&b.nodeName(i,"tr"),s=b.map(Ot(l,"script"),Ht),a=s.length;p>c;c++)o=l,c!==h&&(o=b.clone(o,!0,!0),a&&b.merge(s,Ot(o,"script"))),r.call(n&&b.nodeName(this[c],"table")?Lt(this[c],"tbody"):this[c],o,c);if(a)for(u=s[s.length-1].ownerDocument,b.map(s,qt),c=0;a>c;c++)o=s[c],kt.test(o.type||"")&&!b._data(o,"globalEval")&&b.contains(u,o)&&(o.src?b.ajax({url:o.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):b.globalEval((o.text||o.textContent||o.innerHTML||"").replace(St,"")));l=i=null}return thi s}});function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function Ht(e){var t=e.getAttributeNode("type");return e.type=(t&&t.specified)+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function Mt(e,t){var n,r=0;for(;null!=(n=e[r]);r++)b._data(n,"globalEval",!t||b._data(t[r],"globalEval"))}function _t(e,t){if(1===t.nodeType&&b.hasData(e)){var n,r,i,o=b._data(e),a=b._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)b.event.add(t,n,s[n][r])}a.data&&(a.data=b.extend({},a.data))}}function Ft(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!b.support.noCloneEvent&&t[b.expando]){i=b._data(t);for(r in i.events)b.removeEvent(t,r,i.handle);t.removeAttribute(b.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),b.support.html5Clone&&e.innerHTML&&!b.trim(t.innerHTML)& &(t.innerHTML=e.innerHTML)):"input"===n&&Nt.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}b.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){b.fn[e]=function(e){var n,r=0,i=[],o=b(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),b(o[r])[t](n),d.apply(i,n.get());return this.pushStack(i)}});function Ot(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||b.nodeName(o,n)?s.push(o):b.merge(s,Ot(o,n));return n===t||n&&b.nodeName(e,n)?b.merge([e],s):s}function Bt(e){Nt.test(e.type)&&(e.defaultChecked=e.checked)}b.extend({clone:function(e,t,n){var r,i,o,a,s,u=b.contains(e.ownerDocument,e);if(b.supp ort.html5Clone||b.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(b.support.noCloneEvent&&b.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||b.isXMLDoc(e)))for(r=Ot(o),s=Ot(e),a=0;null!=(i=s[a]);++a)r[a]&&Ft(i,r[a]);if(t)if(n)for(s=s||Ot(e),r=r||Ot(o),a=0;null!=(i=s[a]);a++)_t(i,r[a]);else _t(e,o);return r=Ot(o,"script"),r.length>0&&Mt(r,!u&&Ot(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,u,l,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===b.type(o))b.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),u=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[u]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1></$2>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!b.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!b.support.tbody){o="table"!==u||xt.test(o)?"<table>"!==c[1]||xt.test(o)?0:s:s.firstChild,i =o&&o.childNodes.length;while(i--)b.nodeName(l=o.childNodes[i],"tbody")&&!l.childNodes.length&&o.removeChild(l) -}b.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),b.support.appendChecked||b.grep(Ot(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===b.inArray(o,r))&&(a=b.contains(o.ownerDocument,o),s=Ot(f.appendChild(o),"script"),a&&Mt(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,u=b.expando,l=b.cache,p=b.support.deleteExpando,f=b.event.special;for(;null!=(n=e[s]);s++)if((t||b.acceptData(n))&&(o=n[u],a=o&&l[o])){if(a.events)for(r in a.events)f[r]?b.event.remove(n,r):b.removeEvent(n,r,a.handle);l[o]&&(delete l[o],p?delete n[u]:typeof n.removeAttribute!==i?n.removeAttribute(u):n[u]=null,c.push(o))}}});var Pt,Rt,Wt,$t=/alpha([^)]*)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+x+")(.*)$","i"),Yt=RegExp("^("+x+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+x+ ")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===b.css(e,"display")||!b.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=b._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=b._data(r,"olddisplay",un(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&b._data(r,"olddisplay",i?n:b.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}b.fn.extend({css:function(e,n){return b.access(this,function(e,n,r){var i,o,a={},s=0;if(b.isArray(n)){for(o=Rt(e),i=n. length;i>s;s++)a[n[s]]=b.css(e,n[s],!1,o);return a}return r!==t?b.style(e,n,r):b.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){var t="boolean"==typeof e;return this.each(function(){(t?e:nn(this))?b(this).show():b(this).hide()})}}),b.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":b.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,u=b.camelCase(n),l=e.style;if(n=b.cssProps[u]||(b.cssProps[u]=tn(l,u)),s=b.cssHooks[n]||b.cssHooks[u],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:l[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(b.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||b.cssNumber[u]||(r+="px" ),b.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(l[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{l[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,u=b.camelCase(n);return n=b.cssProps[u]||(b.cssProps[u]=tn(e.style,u)),s=b.cssHooks[n]||b.cssHooks[u],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||b.isNumeric(o)?o||0:a):a},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),u=s?s.getPropertyValue(n)||s[n]:t,l=e.style;return s&&(""!==u||b.contains(e.ownerDocument,e)||(u=b.style(e,n)),Yt.test(u)&&Ut.test(n)&&(i=l.width,o=l.minWidth,a=l.maxWidth,l.minWidth=l.maxWidth=l.width=u,u=s.width,l.width=i,l.minWidth=o,l.maxWidth=a)),u}):o.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle },Wt=function(e,n,r){var i,o,a,s=r||Rt(e),u=s?s[n]:t,l=e.style;return null==u&&l&&l[n]&&(u=l[n]),Yt.test(u)&&!zt.test(n)&&(i=l.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),l.left="fontSize"===n?"1em":u,u=l.pixelLeft+"px",l.left=i,a&&(o.left=a)),""===u?"auto":u});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=b.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=b.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=b.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=b.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=b.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=b.support.boxSizing&&"border-box"===b.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(b.support.boxSizingReliable||i===e.style[t]),i=parse Float(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function un(e){var t=o,n=Gt[e];return n||(n=ln(e,t),"none"!==n&&n||(Pt=(Pt||b("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(Pt[0].contentWindow||Pt[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=ln(e,t),Pt.detach()),Gt[e]=n),n}function ln(e,t){var n=b(t.createElement(e)).appendTo(t.body),r=b.css(n[0],"display");return n.remove(),r}b.each(["height","width"],function(e,n){b.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&&Xt.test(b.css(e,"display"))?b.swap(e,Qt,function(){return sn(e,n,i)}):sn(e,n,i):t},set:function(e,t,r){var i=r&&Rt(e);return on(e,t,r?an(e,n,r,b.support.boxSizing&&"border-box"===b.css(e,"boxSizing",!1,i),i):0)}}}),b.support.opacity||(b.cssHooks.opacity={get:function(e,t){return It.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":" "},set:function(e,t){var n=e.style,r=e.currentStyle,i=b.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===b.trim(o.replace($t,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=$t.test(o)?o.replace($t,i):o+" "+i)}}),b(function(){b.support.reliableMarginRight||(b.cssHooks.marginRight={get:function(e,n){return n?b.swap(e,{display:"inline-block"},Wt,[e,"marginRight"]):t}}),!b.support.pixelPosition&&b.fn.position&&b.each(["top","left"],function(e,n){b.cssHooks[n]={get:function(e,r){return r?(r=Wt(e,n),Yt.test(r)?b(e).position()[n]+"px":r):t}}})}),b.expr&&b.expr.filters&&(b.expr.filters.hidden=function(e){return 0>=e.offsetWidth&&0>=e.offsetHeight||!b.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||b.css(e,"display"))},b.expr.filters.visible=function(e){return!b.expr.filters.hidden(e)}),b.each({margin:"",padding:"",border:"Width"},function(e,t){b.cssHooks[e+t]={expand:function(n){var r=0,i={},o="string"==typeof n?n.split(" "):[n];for(;4>r;r++)i[e+Zt[r]+t]=o[r]||o[r-2]||o[0];return i}},Ut.test(e)||(b.cssHooks[e+t].set=on)});var cn=/%20/g,pn=/[]$/,fn=/\r?\n/g,dn=/^(?:submit|button|image|reset|file)$/i,hn=/^(?:input|select|textarea|keygen)/i;b.fn.extend({serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=b.prop(this,"elements");return e?b.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!b(this).is(":disabled")&&hn.test(this.nodeName)&&!dn.test(e)&&(this.checked||!Nt.test(e))}).map(function(e,t){var n=b(this).val();return null==n?null:b.isArray(n)?b.map(n,function(e){return{name:t.name,value:e.replace(fn,"\r\n")}}):{name:t.name,value:n.replace(fn,"\r\n")}}).get()}}),b.param=function(e,n){var r,i=[],o=function(e,t){t=b.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=b.ajaxSettings&&b.ajaxSettings.traditional),b.isArra y(e)||e.jquery&&!b.isPlainObject(e))b.each(e,function(){o(this.name,this.value)});else for(r in e)gn(r,e[r],n,o);return i.join("&").replace(cn,"+")};function gn(e,t,n,r){var i;if(b.isArray(t))b.each(t,function(t,i){n||pn.test(e)?r(e,i):gn(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==b.type(t))r(e,t);else for(i in t)gn(e+"["+i+"]",t[i],n,r)}b.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){b.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),b.fn.hover=function(e,t){return this.mouseenter(e).mouseleave(t||e)};var mn,yn,vn=b.now(),bn=/?/,xn=/#.*$/,wn=/([?&])_=[^&]*/,Tn=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Nn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Cn=/^(?:GET|HEAD)$/,kn=/^///,En=/^([\w.+-]+:)(?://([^/?#:]*)(?::(\d+)|)|)/,Sn=b.fn .load,An={},jn={},Dn="*/".concat("*");try{yn=a.href}catch(Ln){yn=o.createElement("a"),yn.href="",yn=yn.href}mn=En.exec(yn.toLowerCase())||[];function Hn(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(w)||[];if(b.isFunction(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function qn(e,n,r,i){var o={},a=e===jn;function s(u){var l;return o[u]=!0,b.each(e[u]||[],function(e,u){var c=u(n,r,i);return"string"!=typeof c||a||o[c]?a?!(l=c):t:(n.dataTypes.unshift(c),s(c),!1)}),l}return s(n.dataTypes[0])||!o["*"]&&s("*")}function Mn(e,n){var r,i,o=b.ajaxSettings.flatOptions||{};for(i in n)n[i]!==t&&((o[i]?e:r||(r={}))[i]=n[i]);return r&&b.extend(!0,e,r),e}b.fn.load=function(e,n,r){if("string"!=typeof e&&Sn)return Sn.apply(this,arguments);var i,o,a,s=this,u=e.indexOf(" ");return u>=0&&(i=e.slice(u,e.length),e=e.slice(0,u)),b.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(a="POST"),s.length>0&&b.ajax({ url:e,type:a,dataType:"html",data:n}).done(function(e){o=arguments,s.html(i?b("<div>").append(b.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,o||[e.responseText,t,e])}),this},b.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){b.fn[t]=function(e){return this.on(t,e)}}),b.each(["get","post"],function(e,n){b[n]=function(e,r,i,o){return b.isFunction(r)&&(o=o||i,i=r,r=t),b.ajax({url:e,type:n,dataType:o,data:r,success:i})}}),b.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:"GET",isLocal:Nn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":b.parseJSON,"text xml":b.parseXML} ,flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Mn(Mn(e,b.ajaxSettings),t):Mn(b.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),ajax:function(e,n){"object"==typeof e&&(n=e,e=t),n=n||{};var r,i,o,a,s,u,l,c,p=b.ajaxSetup({},n),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?b(f):b.event,h=b.Deferred(),g=b.Callbacks("once memory"),m=p.statusCode||{},y={},v={},x=0,T="canceled",N={readyState:0,getResponseHeader:function(e){var t;if(2===x){if(!c){c={};while(t=Tn.exec(a))c[t[1].toLowerCase()]=t[2]}t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===x?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return x||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return x||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>x)for(t in e)m[t]=[m[t],e[t]];else N.always(e[N.status]);return this},abort:function(e){var t=e||T;return l&&l.abort(t),k(0,t),this}};if(h.promise(N).complete=g.add,N.success=N.d one,N.error=N.fail,p.url=((e||p.url||yn)+"").replace(xn,"").replace(kn,mn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=b.trim(p.dataType||"*").toLowerCase().match(w)||[""],null==p.crossDomain&&(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&&r[2]===mn[2]&&(r[3]||("http:"===r[1]?80:443))==(mn[3]||("http:"===mn[1]?80:443)))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=b.param(p.data,p.traditional)),qn(An,p,n,N),2===x)return N;u=p.global,u&&0===b.active++&&b.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Cn.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(bn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=wn.test(o)?o.replace(wn,"$1_="+vn++):o+(bn.test(o)?"&":"?")+"_="+vn++)),p.ifModified&&(b.lastModified[o]&&N.setRequestHeader("If-Modified-Since",b.lastModified[o]),b.etag[o]&&N.setRequestHeader("If-None-Match",b.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&N.setRequestHeader( "Content-Type",p.contentType),N.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Dn+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)N.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,N,p)===!1||2===x))return N.abort();T="abort";for(i in{success:1,error:1,complete:1})N[i](p[i]);if(l=qn(jn,p,n,N)){N.readyState=1,u&&d.trigger("ajaxSend",[N,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){N.abort("timeout")},p.timeout));try{x=1,l.send(y,k)}catch(C){if(!(2>x))throw C;k(-1,C)}}else k(-1,"No Transport");function k(e,n,r,i){var c,y,v,w,T,C=n;2!==x&&(x=2,s&&clearTimeout(s),l=t,a=i||"",N.readyState=e>0?4:0,r&&(w=_n(p,N,r)),e>=200&&300>e||304===e?(p.ifModified&&(T=N.getResponseHeader("Last-Modified"),T&&(b.lastModified[o]=T),T=N.getResponseHeader("etag"),T&&(b.etag[o]=T)),204===e?(c=!0,C="nocontent"):304===e?(c=!0,C="notmodified"):(c=Fn(p,w),C=c.state,y=c.data,v=c.error,c=!v)):(v=C,(e||!C)&&(C="er ror",0>e&&(e=0))),N.status=e,N.statusText=(n||C)+"",c?h.resolveWith(f,[y,C,N]):h.rejectWith(f,[N,C,v]),N.statusCode(m),m=t,u&&d.trigger(c?"ajaxSuccess":"ajaxError",[N,p,c?y:v]),g.fireWith(f,[N,C]),u&&(d.trigger("ajaxComplete",[N,p]),--b.active||b.event.trigger("ajaxStop")))}return N},getScript:function(e,n){return b.get(e,t,n,"script")},getJSON:function(e,t,n){return b.get(e,t,n,"json")}});function _n(e,n,r){var i,o,a,s,u=e.contents,l=e.dataTypes,c=e.responseFields;for(s in c)s in r&&(n[c[s]]=r[s]);while("*"===l[0])l.shift(),o===t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(s in u)if(u[s]&&u[s].test(o)){l.unshift(s);break}if(l[0]in r)a=l[0];else{for(s in r){if(!l[0]||e.converters[s+" "+l[0]]){a=s;break}i||(i=s)}a=a||i}return a?(a!==l[0]&&l.unshift(a),r[a]):t}function Fn(e,t){var n,r,i,o,a={},s=0,u=e.dataTypes.slice(),l=u[0];if(e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u[1])for(i in e.converters)a[i.toLowerCase()]=e.converters[i];for(;r=u[++s];)if("*"!==r){if("*" !==l&&l!==r){if(i=a[l+" "+r]||a["* "+r],!i)for(n in a)if(o=n.split(" "),o[1]===r&&(i=a[l+" "+o[0]]||a["* "+o[0]])){i===!0?i=a[n]:a[n]!==!0&&(r=o[0],u.splice(s--,0,r));break}if(i!==!0)if(i&&e["throws"])t=i(t);else try{t=i(t)}catch(c){return{state:"parsererror",error:i?c:"No conversion from "+l+" to "+r}}}l=r}return{state:"success",data:t}}b.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return b.globalEval(e),e}}}),b.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),b.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=o.head||b("head")[0]||o.documentElement;return{send:function(t,i){n=o.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readySta te))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var On=[],Bn=/(=)?(?=&|$)|??/;b.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=On.pop()||b.expando+"_"+vn++;return this[e]=!0,e}}),b.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,u=n.jsonp!==!1&&(Bn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Bn.test(n.data)&&"data");return u||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=b.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,u?n[u]=n[u].replace(Bn,"$1"+o):n.jsonp!==!1&&(n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||b.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,On.push(o)),s&&b.isFunction(a)&&a(s[0 ]),s=a=t}),"script"):t});var Pn,Rn,Wn=0,$n=e.ActiveXObject&&function(){var e;for(e in Pn)Pn[e](t,!0)};function In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}b.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&In()||zn()}:In,Rn=b.ajaxSettings.xhr(),b.support.cors=!!Rn&&"withCredentials"in Rn,Rn=b.support.ajax=!!Rn,Rn&&b.ajaxTransport(function(n){if(!n.crossDomain||b.support.cors){var r;return{send:function(i,o){var a,s,u=n.xhr();if(n.username?u.open(n.type,n.url,n.async,n.username,n.password):u.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)u[s]=n.xhrFields[s];n.mimeType&&u.overrideMimeType&&u.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)u.setRequestHeader(s,i[s])}catch(l){}u.send(n.hasContent&&n.data||null),r=function(e,i){var s,l,c,p;try{if(r&&(i||4===u.readyState))if(r=t,a&&(u.onreadystatechange=b.n oop,$n&&delete Pn[a]),i)4!==u.readyState&&u.abort();else{p={},s=u.status,l=u.getAllResponseHeaders(),"string"==typeof u.responseText&&(p.text=u.responseText);try{c=u.statusText}catch(f){c=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,c,p,l)},n.async?4===u.readyState?setTimeout(r):(a=++Wn,$n&&(Pn||(Pn={},b(e).unload($n)),Pn[a]=r),u.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp("^(?:([+-])=|)("+x+")([a-z%]*)$","i"),Jn=/queueHooks$/,Gn=[nr],Qn={"*":[function(e,t){var n,r,i=this.createTween(e,t),o=Yn.exec(t),a=i.cur(),s=+a||0,u=1,l=20;if(o){if(n=+o[2],r=o[3]||(b.cssNumber[e]?"":"px"),"px"!==r&&s){s=b.css(i.elem,e,!0)||n||1;do u=u||".5",s/=u,b.style(i.elem,e,s+r);while(u!==(u=i.cur()/a)&&1!==u&&--l)}i.unit=r,i.start=s,i.end=o[1]?s+(o[1]+1)*n:n}return i}]};function Kn(){return setTimeout(function(){Xn=t}),Xn=b.now()}function Zn(e,t){b.each(t,function(t,n){var r=(Qn[t]||[]).concat (Qn["*"]),i=0,o=r.length;for(;o>i;i++)if(r[i].call(e,t,n))return})}function er(e,t,n){var r,i,o=0,a=Gn.length,s=b.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;var t=Xn||Kn(),n=Math.max(0,l.startTime+l.duration-t),r=n/l.duration||0,o=1-r,a=0,u=l.tweens.length;for(;u>a;a++)l.tweens[a].run(o);return s.notifyWith(e,[l,o,n]),1>o&&u?n:(s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:b.extend({},t),opts:b.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var r=b.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)l.tweens[n].run(1);return t?s.resolveWith(e,[l,t]):s.rejectWith(e,[l,t]),this}}),c=l.props;for(tr(c,l.opts.specialEasing);a>o;o++)if(r=Gn[o].call(l,e,c,l.opts))return r;return Zn(l,c),b.isFunction(l.opts.start)&&l.opts.start.call(e,l),b.fx.tim er(b.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always)}function tr(e,t){var n,r,i,o,a;for(i in e)if(r=b.camelCase(i),o=t[r],n=e[i],b.isArray(n)&&(o=n[1],n=e[i]=n[0]),i!==r&&(e[r]=n,delete e[i]),a=b.cssHooks[r],a&&"expand"in a){n=a.expand(n),delete e[r];for(i in n)i in e||(e[i]=n[i],t[i]=o)}else t[r]=o}b.Animation=b.extend(er,{tweener:function(e,t){b.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;i>r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}});function nr(e,t,n){var r,i,o,a,s,u,l,c,p,f=this,d=e.style,h={},g=[],m=e.nodeType&&nn(e);n.queue||(c=b._queueHooks(e,"fx"),null==c.unqueued&&(c.unqueued=0,p=c.empty.fire,c.empty.fire=function(){c.unqueued||p()}),c.unqueued++,f.always(function(){f.always(function(){c.unqueued--,b.queue(e,"fx").length||c.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overfl ow=[d.overflow,d.overflowX,d.overflowY],"inline"===b.css(e,"display")&&"none"===b.css(e,"float")&&(b.support.inlineBlockNeedsLayout&&"inline"!==un(e.nodeName)?d.zoom=1:d.display="inline-block")),n.overflow&&(d.overflow="hidden",b.support.shrinkWrapBlocks||f.always(function(){d.overflow=n.overflow[0],d.overflowX=n.overflow[1],d.overflowY=n.overflow[2]}));for(i in t)if(a=t[i],Vn.exec(a)){if(delete t[i],u=u||"toggle"===a,a===(m?"hide":"show"))continue;g.push(i)}if(o=g.length){s=b._data(e,"fxshow")||b._data(e,"fxshow",{}),"hidden"in s&&(m=s.hidden),u&&(s.hidden=!m),m?b(e).show():f.done(function(){b(e).hide()}),f.done(function(){var t;b._removeData(e,"fxshow");for(t in h)b.style(e,t,h[t])});for(i=0;o>i;i++)r=g[i],l=f.createTween(r,m?s[r]:0),h[r]=s[r]||b.style(e,r),r in s||(s[r]=l.start,m&&(l.end=l.start,l.start="width"===r||"height"===r?1:0))}}function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}b.Tween=rr,rr.prototype={constructor:rr,init:function(e,t,n,r,i,o){this.elem=e,this .prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(b.cssNumber[n]?"":"px")},cur:function(){var e=rr.propHooks[this.prop];return e&&e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var t,n=rr.propHooks[this.prop];return this.pos=t=this.options.duration?b.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.prototype,rr.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=b.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){b.fx.step[e.prop]?b.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[b.cssProps[e.prop]]||b.cssHooks[e.prop])?b.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},rr.propHooks.scroll Top=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},b.each(["toggle","show","hide"],function(e,t){var n=b.fn[t];b.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),b.fn.extend({fadeTo:function(e,t,n,r){return this.filter(nn).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=b.isEmptyObject(e),o=b.speed(t,n,r),a=function(){var t=er(this,b.extend({},e),o);a.finish=function(){t.stop(!0)},(i||b._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=b.timers,a=b._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Jn.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].ele m!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&b.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=b._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=b.timers,a=r?r.length:0;for(n.finish=!0,b.queue(this,e,[]),i&&i.cur&&i.cur.finish&&i.cur.finish.call(this),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}});function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}b.each({slideDown:ir("show"),slideUp:ir("hide"),slideToggle:ir("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){b.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),b.speed=function(e,t,n){var r=e&&"object"==typeof e?b.extend({},e):{complete:n||!n&&t||b.isFunction(e)&&e,duration:e,easing:n&&t||t&&!b.i sFunction(t)&&t};return r.duration=b.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in b.fx.speeds?b.fx.speeds[r.duration]:b.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){b.isFunction(r.old)&&r.old.call(this),r.queue&&b.dequeue(this,r.queue)},r},b.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},b.timers=[],b.fx=rr.prototype.init,b.fx.tick=function(){var e,n=b.timers,r=0;for(Xn=b.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||b.fx.stop(),Xn=t},b.fx.timer=function(e){e()&&b.timers.push(e)&&b.fx.start()},b.fx.interval=13,b.fx.start=function(){Un||(Un=setInterval(b.fx.tick,b.fx.interval))},b.fx.stop=function(){clearInterval(Un),Un=null},b.fx.speeds={slow:600,fast:200,_default:400},b.fx.step={},b.expr&&b.expr.filters&&(b.expr.filters.animated=function(e){return b.grep(b.timers,function(t){return e===t.elem}).length}),b.fn.offset=function(e){if(arguments.leng th)return e===t?this:this.each(function(t){b.offset.setOffset(this,e,t)});var n,r,o={top:0,left:0},a=this[0],s=a&&a.ownerDocument;if(s)return n=s.documentElement,b.contains(n,a)?(typeof a.getBoundingClientRect!==i&&(o=a.getBoundingClientRect()),r=or(s),{top:o.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:o.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):o},b.offset={setOffset:function(e,t,n){var r=b.css(e,"position");"static"===r&&(e.style.position="relative");var i=b(e),o=i.offset(),a=b.css(e,"top"),s=b.css(e,"left"),u=("absolute"===r||"fixed"===r)&&b.inArray("auto",[a,s])>-1,l={},c={},p,f;u?(c=i.position(),p=c.top,f=c.left):(p=parseFloat(a)||0,f=parseFloat(s)||0),b.isFunction(t)&&(t=t.call(e,n,o)),null!=t.top&&(l.top=t.top-o.top+p),null!=t.left&&(l.left=t.left-o.left+f),"using"in t?t.using.call(e,l):i.css(l)}},b.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===b.css(r,"position")?t=r.getBoundingClientRect():(e=this.offse tParent(),t=this.offset(),b.nodeName(e[0],"html")||(n=e.offset()),n.top+=b.css(e[0],"borderTopWidth",!0),n.left+=b.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-b.css(r,"marginTop",!0),left:t.left-n.left-b.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||o.documentElement;while(e&&!b.nodeName(e,"html")&&"static"===b.css(e,"position"))e=e.offsetParent;return e||o.documentElement})}}),b.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);b.fn[e]=function(i){return b.access(this,function(e,i,o){var a=or(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?b(a).scrollLeft():o,r?o:b(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}});function or(e){return b.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}b.each({Height:"height",Width:"width"},function(e,n){b.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){b.fn[i]=function(i,o){var a=argu ments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return b.access(this,function(n,r,i){var o;return b.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?b.css(n,r,s):b.style(n,r,i,s)},n,a?i:t,a,null)}})}),e.jQuery=e.$=b,"function"==typeof define&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return b})})(window); \ No newline at end of file diff --git a/html/html/index.cgi b/html/html/index.cgi index 81ae7dc..f33f701 100644 --- a/html/html/index.cgi +++ b/html/html/index.cgi @@ -2,7 +2,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2014 IPFire Team <info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -19,5 +19,11 @@ # # ###############################################################################
-print "Status: 302 Moved\n"; +if (! -e "/var/ipfire/main/gpl_accepted" ) { + print "Status: 302 Moved Temporarily\n"; + print "Location: /cgi-bin/gpl.cgi\n\n"; + exit (0); +} + +print "Status: 302 Moved Temporarily\n"; print "Location: /cgi-bin/index.cgi\n\n"; diff --git a/html/html/themes/darkdos/images/IPFire.png b/html/html/themes/darkdos/images/IPFire.png new file mode 100644 index 0000000..ec56b7a Binary files /dev/null and b/html/html/themes/darkdos/images/IPFire.png differ diff --git a/html/html/themes/darkdos/images/b1.gif b/html/html/themes/darkdos/images/b1.gif new file mode 100644 index 0000000..123ff91 Binary files /dev/null and b/html/html/themes/darkdos/images/b1.gif differ diff --git a/html/html/themes/darkdos/images/b2.gif b/html/html/themes/darkdos/images/b2.gif new file mode 100644 index 0000000..0172874 Binary files /dev/null and b/html/html/themes/darkdos/images/b2.gif differ diff --git a/html/html/themes/darkdos/images/b3.gif b/html/html/themes/darkdos/images/b3.gif new file mode 100644 index 0000000..8c8fba3 Binary files /dev/null and b/html/html/themes/darkdos/images/b3.gif differ diff --git a/html/html/themes/darkdos/images/b4.gif b/html/html/themes/darkdos/images/b4.gif new file mode 100644 index 0000000..5964fa7 Binary files /dev/null and b/html/html/themes/darkdos/images/b4.gif differ diff --git a/html/html/themes/darkdos/images/b5.gif b/html/html/themes/darkdos/images/b5.gif new file mode 100644 index 0000000..a032242 Binary files /dev/null and b/html/html/themes/darkdos/images/b5.gif differ diff --git a/html/html/themes/darkdos/images/b6.gif b/html/html/themes/darkdos/images/b6.gif new file mode 100644 index 0000000..ed1781c Binary files /dev/null and b/html/html/themes/darkdos/images/b6.gif differ diff --git a/html/html/themes/darkdos/images/spacer.gif b/html/html/themes/darkdos/images/spacer.gif new file mode 100644 index 0000000..5bfd67a Binary files /dev/null and b/html/html/themes/darkdos/images/spacer.gif differ diff --git a/html/html/themes/darkdos/include/colors.txt b/html/html/themes/darkdos/include/colors.txt new file mode 100644 index 0000000..6efefc5 --- /dev/null +++ b/html/html/themes/darkdos/include/colors.txt @@ -0,0 +1,25 @@ +color1=#CD0000 +color2=#FF0000 +color3=#CD0000 +color4=#FA1818 +color5=#CD0000 +color6=#FF0000 +color7=#FF2424 +color8=#FF5050 +color9=#EE0F0F +color10=#EE0000 +color11=#0000FF +color12=#00FF00 +color13=#FF0000 +color14=#F32020 +color15=#CCCCCC +color16=#40E0D0 +color17=#90EE90 +color18=#F4A460 +color19=#EAE9EE +color20=#1C1C1C +color21=#CD6600 +color22=#4F4F4F +color23=#FF00FF +color24=#6464FF +color25=#FF6464 diff --git a/html/html/themes/darkdos/include/functions.pl b/html/html/themes/darkdos/include/functions.pl new file mode 100644 index 0000000..737e051 --- /dev/null +++ b/html/html/themes/darkdos/include/functions.pl @@ -0,0 +1,404 @@ +#!/usr/bin/perl +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +sub showmenu() { + print <<EOF + <div id="menu"> + <ul> +EOF +; + foreach my $k1 ( sort keys %$menu ) { + if (! $menu->{$k1}{'enabled'}) { + next; + } + my $link = getlink($menu->{$k1}); + if ($link eq '') { + next; + } + if (! is_menu_visible($link)) { + next; + } + if ($menu->{$k1}->{'selected'}) { + print "<li><a href="$link" class="active">$menu->{$k1}{'caption'}</a></li>"; + } else { + print "<li><a href="$link">$menu->{$k1}{'caption'}</a></li>"; + } + } + print <<EOF + </ul> + </div> +EOF +; +} + +sub getselected($) { + my $root = shift; + if (!$root) { + return 0; + } + + foreach my $item (%$root) { + if ($root->{$item}{'selected'}) { + return $root->{$item}; + } + } +} + +sub showsubsection($$) { + my $root = shift; + + if (! $root) { + return; + } + my $selected = getselected($root); + if (! $selected) { + return; + } + my $submenus = $selected->{'subMenu'}; + if (! $submenus) { + return; + } + + print <<EOF + <h4><span>Side</span>menu</h4> + <ul class="links"> +EOF +; + foreach my $item (sort keys %$submenus) { + my $hash = $submenus->{$item}; + if (! $hash->{'enabled'}) { + next; + } + my $link = getlink($hash); + if ($link eq '') { + next; + } + if (! is_menu_visible($link)) { + next; + } + if ($hash->{'selected'}) { + print '<li class="selected">'; + } else { + print '<li>'; + } + + print "<a href="$link">$hash->{'caption'}</a></li>"; + } + + print <<EOF + </ul> +EOF +; +} + + +sub showsubsubsection($) { + my $root = shift; + if (!$root) { + return; + } + my $selected = getselected($root); + if (! $selected) { + return + } + if (! $selected->{'subMenu'}) { + return + } + + showsubsection($selected->{'subMenu'}, 'menu-subtop'); +} + +sub openpage { + my $title = shift; + my $boh = shift; + my $extrahead = shift; + + @URI=split ('?', $ENV{'REQUEST_URI'} ); + &General::readhash("${swroot}/main/settings", %settings); + &genmenu(); + + my $h2 = gettitle($menu); + + $title = "-= IPFire - $title =-"; + if ($settings{'WINDOWWITHHOSTNAME'} eq 'on') { + $title = "$settings{'HOSTNAME'}.$settings{'DOMAINNAME'} - $title"; + } + + print <<END +<?xml version='1.0' encoding='UTF-8'?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html xmlns='http://www.w3.org/1999/xhtml'> +<head> + <title>$title</title> + $extrahead + <link rel="shortcut icon" href="/favicon.ico" /> + <link rel="stylesheet" type="text/css" href="/themes/darkdos/include/style.css" /> + <script language="javascript" type="text/javascript"> + + function swapVisibility(id) { + el = document.getElementById(id); + if(el.style.display != 'block') { + el.style.display = 'block' + } + else { + el.style.display = 'none' + } + } + </script> +END +; +if ($settings{'SPEED'} ne 'off') { +print <<END + <script type="text/javascript" src="/include/jquery.js"></script> + <script type="text/javascript"> + var t_current; + var t_last; + var rxb_current; + var rxb_last; + var txb_current; + var txb_last; + function refreshInetInfo() { + $.ajax({ + url: '/cgi-bin/speed.cgi', + success: function(xml){ + t_current = new Date(); + var t_diff = t_current - t_last; + t_last = t_current; + + rxb_current = $("rxb",xml).text(); + var rxb_diff = rxb_current - rxb_last; + rxb_last = rxb_current; + + var rx_kbs = rxb_diff/t_diff; + rx_kbs = Math.round(rx_kbs*10)/10; + + txb_current = $("txb",xml).text(); + var txb_diff = txb_current - txb_last; + txb_last = txb_current; + + var tx_kbs = txb_diff/t_diff; + tx_kbs = Math.round(tx_kbs*10)/10; + + $("#rx_kbs").text(rx_kbs + ' kb/s'); + $("#tx_kbs").text(tx_kbs + ' kb/s'); + } + }); + window.setTimeout("refreshInetInfo()", 3000); + } + $(document).ready(function(){ + refreshInetInfo(); + }); + </script> + </head> + <body> +END +; +} +else { +print "</head>\n<body>";} +print <<END +<!-- IPFIRE HEADER --> + +<div id="header"> + + <div id="header_inner" class="fixed"> + + <div id="logo"> +END +; + if ($settings{'WINDOWWITHHOSTNAME'} eq 'on') { + print "<h1><span>$settings{'HOSTNAME'}.$settings{'DOMAINNAME'}</span></h1><br />"; + } else { + print "<h1><span>-= IPFire =-</span></h1><br />"; + } + print <<END + <h2>+ $h2 +</h2> + </div> + +END +; + &showmenu(); + +print <<END + </div> +</div> + +<div id="main"> + <div id="main_inner" class="fixed"> + <div id="primaryContent_2columns"> + <div id="columnA_2columns"> +END +; +} + +sub openpagewithoutmenu { + my $title = shift; + my $boh = shift; + my $extrahead = shift; + + @URI=split ('?', $ENV{'REQUEST_URI'} ); + &General::readhash("${swroot}/main/settings", %settings); + &genmenu(); + + my $h2 = gettitle($menu); + + $title = "-= IPFire - $title =-"; + if ($settings{'WINDOWWITHHOSTNAME'} eq 'on') { + $title = "$settings{'HOSTNAME'}.$settings{'DOMAINNAME'} - $title"; + } + + print <<END +<?xml version='1.0' encoding='UTF-8'?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html xmlns='http://www.w3.org/1999/xhtml'> +<head> + <title>$title</title> + $extrahead +END +; + if ($settings{'FX'} ne 'off') { + print <<END + <meta http-equiv="Page-Enter" content="blendTrans(Duration=0.5,Transition=12)" /> + <meta http-equiv="Page-Exit" content="blendTrans(Duration=0.5,Transition=12)" /> +END +; + } + print <<END + <link rel="shortcut icon" href="/favicon.ico" /> + <link rel="stylesheet" type="text/css" href="/include/style.css" /> + <script language="javascript" type="text/javascript"> + + function swapVisibility(id) { + el = document.getElementById(id); + if(el.style.display != 'block') { + el.style.display = 'block' + } + else { + el.style.display = 'none' + } + } + </script> + + </head> + <body> +<!-- IPFIRE HEADER --> + +<div id="header"> + + <div id="header_inner" class="fixed"> + + <div id="logo"> + <h1><span>-= IPFire =-</span></h1> + <h2>+ $h2 +</h2> + </div> + </div> +</div> + +<div id="main"> + <div id="main_inner" class="fixed"> + <div id="primaryContent_2columns"> + <div id="columnA_2columns"> +END +; +} + +sub closepage () { + my $status = &connectionstatus(); + my $uptime = `/usr/bin/uptime|cut -d " " -f 4-`; + $uptime =~ s/year(s|)/$Lang::tr{'year'}/; + $uptime =~ s/month(s|)/$Lang::tr{'month'}/; + $uptime =~ s/day(s|)/$Lang::tr{'day'}/; + $uptime =~ s/user(s|)/$Lang::tr{'user'}/; + $uptime =~ s/load average/$Lang::tr{'uptime load average'}/; + + print <<END + </div> + </div> + + <div id="secondaryContent_2columns"> + + <div id="columnC_2columns"> +END +; + &showsubsection($menu); + &showsubsubsection($menu); + + print <<END + </div> + </div> + <br class="clear" /> + <div id="footer" class="fixed"> + <b>Status:</b> $status <b>Uptime:</b> $uptime +END +; +if ($settings{'SPEED'} ne 'off') { +print <<END + <br /> + <b>$Lang::tr{'bandwidth usage'}:</b> + $Lang::tr{'incoming'}: <span id="rx_kbs"></span> $Lang::tr{'outgoing'}: <span id="tx_kbs"></span> + +END +; +} +print <<END + </div> + </div> +</div> +</body> +</html> +END +; +} + +sub openbigbox +{ +} + +sub closebigbox +{ +} + +sub openbox +{ + $width = $_[0]; + $align = $_[1]; + $caption = $_[2]; + + print <<END +<!-- openbox --> + <div class="post" align="$align"> +END +; + + if ($caption) { print "<h3>$caption</h3>\n"; } else { print " "; } +} + +sub closebox +{ + print <<END + </div> + <br class="clear" /> + <!-- closebox --> +END +; +} + +1; diff --git a/html/html/themes/darkdos/include/style.css b/html/html/themes/darkdos/include/style.css new file mode 100644 index 0000000..e7140cd --- /dev/null +++ b/html/html/themes/darkdos/include/style.css @@ -0,0 +1,464 @@ +/*darkdos theme by d4rkd0s*/ + +/* This controls the width of the fluid width layouts */ + +div.fluid +{ +width: 90% !important; +} + +/* This controls the width of the fixed width layouts */ + +div.fixed +{ +width: 950px !important; +} + +/* Basic Stuff */ + +* +{ +margin: 0em; +padding: 0em; +} + +body +{ +background-color: #000000; +color: rgb(255,128,0); +font-size: 10pt; +font-family: "trebuchet ms", helvetica, sans-serif; +} + +h1,h2,h3,h4,h5,h6 +{ +background-color: #000000; +font-weight: normal; +letter-spacing: -1px; +text-transform: lowercase; +text-align: left; +} + +h3,h4,h5,h6 +{ +background-color: #000000; +color: silver; +} + +h1 span +{ +font-weight: bold; +color: rgb(255,58,58); +} + +h3 span +{ +background-color: #000000; +font-weight: bold; +} + +h4 span +{ +background-color: #000000; +font-weight: bold; +} + +br.clear +{ +background-color: #000000; +clear: both; +} + +img +{ +} + +img.floatTL +{ +float: left; +margin-right: 1.5em; +margin-bottom: 1.5em; +margin-top: 0.5em; +} + +a +{ +text-decoration: underline; +color: white; +} + +a:hover +{ +text-decoration: none; +} + +ul.links +{ +list-style: none; +} + +ul.links li +{ +line-height: 2em; +} + +ul.links li.first +{ +} + +p +{ +line-height: 1.8em; +} + +/* Header */ + +#header +{ +width:100%; +height:100px; +background: #000000 url('/themes/darkdos/images/b1.gif') repeat-x; +} + +#header_inner +{ +position: relative; +width: 700px; +height:110px; +margin: 0 auto; +} + +/* Logo */ + +#logo +{ +position: absolute; +bottom: 0.6em; +} + +#logo h1 +{ +display: inline; +color: #fff; +font-size: 2.6em; +} + +#logo h2 +{ +display: inline; +padding-left: 0.5em; +color: white; +font-size: 1.0em; +} + +/* Menu */ + +#menu +{ +position: absolute; +right: 0em; +bottom: 0em; +} + +#menu ul +{ +list-style: none; +} + +#menu li +{ +float: left; +} + +#menu li a +{ +margin-left: 0.5em; +display: block; +padding: 1.1em 1.4em 1.0em 1.4em; +background: url('/themes/darkdos/images/b4.gif') repeat-x; +border: solid 1px #fff; +color: #616161; +font-weight: bold; +font-size: 1.0em; +text-transform: lowercase; +text-decoration: none; +} + +#menu li a.active +{ +background: url('/themes/darkdos/images/b3.gif') repeat-x; +color: #fff; +border: solid 1px silver; +} + +/* Main */ + +#main +{ +background: #000000 url('/themes/darkdos/images/b2.gif') 0px 1px repeat-x; +} + +#main_inner p +{ +text-align: justify; +margin-bottom: 2.0em; +} + +#main_inner ul +{ +margin-bottom: 2.0em; +} + +#main_inner +{ +position: relative; +width: 950px; +margin: 0 auto; +padding-top: 3.5em; +} + +#main_inner h3,h4 +{ +border-bottom: dotted 1px #E1E1E1; +position: relative; +padding-bottom: 0.4em; +} + +#main_inner h3 +{ +font-size: 2.1em; +padding-bottom: 0.1em; +} + +#main_inner h4 +{ +font-size: 1.2em; +padding-bottom: 0.175em; +margin-bottom: 1.4em; +margin-top: 0.95em; +} + +#main_inner .post +{ +position: relative; +} + +#main_inner .post h3 +{ +position: relative; +font-size: 1.7em; +padding-bottom: 0.4em; +} + +#main_inner .post ul.post_info +{ +list-style: none; +position: absolute; +top: 3em; +font-size: 0.8em; +} + +#main_inner .post ul.post_info li +{ +background-position: 0em 0.2em; +background-repeat: no-repeat; +display: inline; +padding-left: 18px; +} + +#main_inner .post ul.post_info li.date +{ +background-image: url('/themes/darkdos/images/b5.gif'); +} + +#main_inner .post ul.post_info li.comments +{ +background-image: url('/themes/darkdos/images/b6.gif'); +margin-left: 1.1em; +} + +/* Footer */ + +#footer +{ +width: 950px; +margin: 0 auto; +text-align: center; +clear: both; +border-top: dotted 1px #E1E1E1; +margin-top: 1.0em; +margin-bottom: 1.0em; +padding-top: 1.0em; +text-transform: lowercase; +} + +/* Search */ + +select +{ +margin: 0.2em; +background-color: rgb(255,58,58); color:black; border:1px solid silver; +} + +textarea +{ +margin: 0.2em; +background-color: rgb(255,58,58); color:black; border:1px solid silver; +} + +checkbox +{ +margin: 0.2em; +background-color: rgb(255,58,58); color:black; border:1px solid silver; +} + +radio +{ +margin: 0.2em; +background-color: rgb(255,58,58); color:black; border:1px solid silver; +} + +input +{ +margin: 0.2em; +background-color: rgb(255,58,58); color:black; border:1px solid silver; +} + +input.button +{ +background: #CA2F2F url('/themes/darkdos/images/b3.gif') repeat-x; +color: #fff; +border: solid 1px #2941BC; +font-weight: bold; +text-transform: lowercase; +font-size: 0.8em; +height: 2.0em; +} + +input.text +{ +border: solid 1px #F1F1F1; +font-size: 1.0em; +padding: 0.25em 0.25em 0.25em 0.25em; +} + +#search +{ +position: relative; +width: 100%; +margin-bottom: 2.0em; +} + +#search input.text +{ +position: absolute; +top: 0em; +left: 0em; +width: 9.5em; +} + +#search input.button +{ +position: absolute; +top: 0em; +right: 0em; +min-width: 2.0em; +max-width: 2.5em; +} + +/* LAYOUT - 3 COLUMNS */ + + /* Primary content */ + + #primaryContent_3columns + { + position: relative; + margin-right: 34em; + } + + #columnA_3columns + { + position: relative; + float: left; + width: 100%; + margin-right: -34em; + padding-right: 2em; + } + + /* Secondary Content */ + + #secondaryContent_3columns + { + float: right; + } + + #columnB_3columns + { + width: 13.0em; + float: left; + padding: 0em 2em 0.5em 2em; + border-left: dotted 1px #E1E1E1; + } + + #columnC_3columns + { + width: 13.0em; + float: left; + padding: 0em 0em 0.5em 2em; + border-left: dotted 1px #E1E1E1; + } + +/* LAYOUT - 2 COLUMNS */ + + /* Primary content */ + + #primaryContent_2columns + { + position: relative; + margin-right: 17em; + } + + #columnA_2columns + { + position: relative; + float: left; + width: 100%; + margin-right: -17em; + padding-right: 2em; + } + + /* Secondary Content */ + + #secondaryContent_2columns + { + float: right; + } + + #columnC_2columns + { + width: 13.0em; + float: left; + padding: 0em 0em 0.5em 2em; + border-left: dotted 1px #E1E1E1; + } + +/* LAYOUT - COLUMNLESS */ + + /* Primary content */ + + #primaryContent_columnless + { + position: relative; + } + + #columnA_columnless + { + position: relative; + width: 100%; + } + +/* FOOTER COLORIZE BANDWIDTH */ + +#rx_kbs { color: green; } + +#tx_kbs { color: red; } diff --git a/html/html/themes/ipfire-legacy/images/n1.gif b/html/html/themes/ipfire-legacy/images/n1.gif new file mode 100644 index 0000000..6eb5161 Binary files /dev/null and b/html/html/themes/ipfire-legacy/images/n1.gif differ diff --git a/html/html/themes/ipfire-legacy/images/n2.gif b/html/html/themes/ipfire-legacy/images/n2.gif new file mode 100644 index 0000000..b92a19d Binary files /dev/null and b/html/html/themes/ipfire-legacy/images/n2.gif differ diff --git a/html/html/themes/ipfire-legacy/images/n3.gif b/html/html/themes/ipfire-legacy/images/n3.gif new file mode 100644 index 0000000..6627c91 Binary files /dev/null and b/html/html/themes/ipfire-legacy/images/n3.gif differ diff --git a/html/html/themes/ipfire-legacy/images/n4.gif b/html/html/themes/ipfire-legacy/images/n4.gif new file mode 100644 index 0000000..8698525 Binary files /dev/null and b/html/html/themes/ipfire-legacy/images/n4.gif differ diff --git a/html/html/themes/ipfire-legacy/images/n5.gif b/html/html/themes/ipfire-legacy/images/n5.gif new file mode 100644 index 0000000..a032242 Binary files /dev/null and b/html/html/themes/ipfire-legacy/images/n5.gif differ diff --git a/html/html/themes/ipfire-legacy/images/n6.gif b/html/html/themes/ipfire-legacy/images/n6.gif new file mode 100644 index 0000000..ed1781c Binary files /dev/null and b/html/html/themes/ipfire-legacy/images/n6.gif differ diff --git a/html/html/themes/ipfire-legacy/images/spacer.gif b/html/html/themes/ipfire-legacy/images/spacer.gif new file mode 100644 index 0000000..5bfd67a Binary files /dev/null and b/html/html/themes/ipfire-legacy/images/spacer.gif differ diff --git a/html/html/themes/ipfire-legacy/include/colors.txt b/html/html/themes/ipfire-legacy/include/colors.txt new file mode 100644 index 0000000..6d7dd1c --- /dev/null +++ b/html/html/themes/ipfire-legacy/include/colors.txt @@ -0,0 +1,25 @@ +color1=#CD5B45 +color2=#EE6A50 +color3=#FF7256 +color4=#EE9572 +color5=#FFA07A +color6=#CDAF95 +color7=#EECBAD +color8=#FFDAB9 +color9=#FFE4C4 +color10=#FFCCCC +color11=#0000FF +color12=#00FF00 +color13=#FF0000 +color14=#FFD700 +color15=#CCCCCC +color16=#40E0D0 +color17=#90EE90 +color18=#F4A460 +color19=#EAE9EE +color20=#D6D6D6 +color21=#FFFFFF +color22=#F0F0F0 +color23=#FF00FF +color24=#6464FF +color25=#FF6464 diff --git a/html/html/themes/ipfire-legacy/include/functions.pl b/html/html/themes/ipfire-legacy/include/functions.pl new file mode 100644 index 0000000..1401030 --- /dev/null +++ b/html/html/themes/ipfire-legacy/include/functions.pl @@ -0,0 +1,404 @@ +#!/usr/bin/perl +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +sub showmenu() { + print <<EOF + <div id="menu"> + <ul> +EOF +; + foreach my $k1 ( sort keys %$menu ) { + if (! $menu->{$k1}{'enabled'}) { + next; + } + my $link = getlink($menu->{$k1}); + if ($link eq '') { + next; + } + if (! is_menu_visible($link)) { + next; + } + if ($menu->{$k1}->{'selected'}) { + print "<li><a href="$link" class="active">$menu->{$k1}{'caption'}</a></li>"; + } else { + print "<li><a href="$link">$menu->{$k1}{'caption'}</a></li>"; + } + } + print <<EOF + </ul> + </div> +EOF +; +} + +sub getselected($) { + my $root = shift; + if (!$root) { + return 0; + } + + foreach my $item (%$root) { + if ($root->{$item}{'selected'}) { + return $root->{$item}; + } + } +} + +sub showsubsection($$) { + my $root = shift; + + if (! $root) { + return; + } + my $selected = getselected($root); + if (! $selected) { + return; + } + my $submenus = $selected->{'subMenu'}; + if (! $submenus) { + return; + } + + print <<EOF + <h4><span>Side</span>menu</h4> + <ul class="links"> +EOF +; + foreach my $item (sort keys %$submenus) { + my $hash = $submenus->{$item}; + if (! $hash->{'enabled'}) { + next; + } + my $link = getlink($hash); + if ($link eq '') { + next; + } + if (! is_menu_visible($link)) { + next; + } + if ($hash->{'selected'}) { + print '<li class="selected">'; + } else { + print '<li>'; + } + + print "<a href="$link">$hash->{'caption'}</a></li>"; + } + + print <<EOF + </ul> +EOF +; +} + + +sub showsubsubsection($) { + my $root = shift; + if (!$root) { + return; + } + my $selected = getselected($root); + if (! $selected) { + return + } + if (! $selected->{'subMenu'}) { + return + } + + showsubsection($selected->{'subMenu'}, 'menu-subtop'); +} + +sub openpage { + my $title = shift; + my $boh = shift; + my $extrahead = shift; + + @URI=split ('?', $ENV{'REQUEST_URI'} ); + &General::readhash("${swroot}/main/settings", %settings); + &genmenu(); + + my $h2 = gettitle($menu); + + $title = "IPFire - $title"; + if ($settings{'WINDOWWITHHOSTNAME'} eq 'on') { + $title = "$settings{'HOSTNAME'}.$settings{'DOMAINNAME'} - $title"; + } + + print <<END +<?xml version='1.0' encoding='UTF-8'?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html xmlns='http://www.w3.org/1999/xhtml'> +<head> + <title>$title</title> + $extrahead + <link rel="shortcut icon" href="/favicon.ico" /> + <link rel="stylesheet" type="text/css" href="/themes/ipfire-legacy/include/style.css" /> + <script language="javascript" type="text/javascript"> + + function swapVisibility(id) { + el = document.getElementById(id); + if(el.style.display != 'block') { + el.style.display = 'block' + } + else { + el.style.display = 'none' + } + } + </script> +END +; +if ($settings{'SPEED'} ne 'off') { +print <<END + <script type="text/javascript" src="/include/jquery.js"></script> + <script type="text/javascript"> + var t_current; + var t_last; + var rxb_current; + var rxb_last; + var txb_current; + var txb_last; + function refreshInetInfo() { + $.ajax({ + url: '/cgi-bin/speed.cgi', + success: function(xml){ + t_current = new Date(); + var t_diff = t_current - t_last; + t_last = t_current; + + rxb_current = $("rxb",xml).text(); + var rxb_diff = rxb_current - rxb_last; + rxb_last = rxb_current; + + var rx_kbs = rxb_diff/t_diff; + rx_kbs = Math.round(rx_kbs*10)/10; + + txb_current = $("txb",xml).text(); + var txb_diff = txb_current - txb_last; + txb_last = txb_current; + + var tx_kbs = txb_diff/t_diff; + tx_kbs = Math.round(tx_kbs*10)/10; + + $("#rx_kbs").text(rx_kbs + ' kb/s'); + $("#tx_kbs").text(tx_kbs + ' kb/s'); + } + }); + window.setTimeout("refreshInetInfo()", 3000); + } + $(document).ready(function(){ + refreshInetInfo(); + }); + </script> + </head> + <body> +END +; +} +else { +print "</head><body>";} +print <<END +<!-- IPFIRE HEADER --> + +<div id="header"> + + <div id="header_inner" class="fixed"> + + <div id="logo"> +END +; + if ($settings{'WINDOWWITHHOSTNAME'} eq 'on') { + print "<h1><span>$settings{'HOSTNAME'}.$settings{'DOMAINNAME'}</span></h1><br />"; + } else { + print "<h1><span>IPFire</span></h1><br />"; + } + print <<END + <h2>$h2</h2> + </div> + +END +; + &showmenu(); + +print <<END + </div> +</div> + +<div id="main"> + <div id="main_inner" class="fixed"> + <div id="primaryContent_2columns"> + <div id="columnA_2columns"> +END +; +} + +sub openpagewithoutmenu { + my $title = shift; + my $boh = shift; + my $extrahead = shift; + + @URI=split ('?', $ENV{'REQUEST_URI'} ); + &General::readhash("${swroot}/main/settings", %settings); + &genmenu(); + + my $h2 = gettitle($menu); + + $title = "IPFire - $title"; + if ($settings{'WINDOWWITHHOSTNAME'} eq 'on') { + $title = "$settings{'HOSTNAME'}.$settings{'DOMAINNAME'} - $title"; + } + + print <<END +<?xml version='1.0' encoding='UTF-8'?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html xmlns='http://www.w3.org/1999/xhtml'> +<head> + <title>$title</title> + $extrahead +END +; + if ($settings{'FX'} ne 'off') { + print <<END + <meta http-equiv="Page-Enter" content="blendTrans(Duration=0.5,Transition=12)" /> + <meta http-equiv="Page-Exit" content="blendTrans(Duration=0.5,Transition=12)" /> +END +; + } + print <<END + <link rel="shortcut icon" href="/favicon.ico" /> + <link rel="stylesheet" type="text/css" href="/include/style.css" /> + <script language="javascript" type="text/javascript"> + + function swapVisibility(id) { + el = document.getElementById(id); + if(el.style.display != 'block') { + el.style.display = 'block' + } + else { + el.style.display = 'none' + } + } + </script> + + </head> + <body> +<!-- IPFIRE HEADER --> + +<div id="header"> + + <div id="header_inner" class="fixed"> + + <div id="logo"> + <h1><span>IPFire</span></h1> + <h2>$h2</h2> + </div> + </div> +</div> + +<div id="main"> + <div id="main_inner" class="fixed"> + <div id="primaryContent_2columns"> + <div id="columnA_2columns"> +END +; +} + +sub closepage () { + my $status = &connectionstatus(); + my $uptime = `/usr/bin/uptime|cut -d " " -f 4-`; + $uptime =~ s/year(s|)/$Lang::tr{'year'}/; + $uptime =~ s/month(s|)/$Lang::tr{'month'}/; + $uptime =~ s/day(s|)/$Lang::tr{'day'}/; + $uptime =~ s/user(s|)/$Lang::tr{'user'}/; + $uptime =~ s/load average/$Lang::tr{'uptime load average'}/; + + print <<END + </div> + </div> + + <div id="secondaryContent_2columns"> + + <div id="columnC_2columns"> +END +; + &showsubsection($menu); + &showsubsubsection($menu); + + print <<END + </div> + </div> + <br class="clear" /> + <div id="footer" class="fixed"> + <b>Status:</b> $status <b>Uptime:</b> $uptime +END +; +if ($settings{'SPEED'} ne 'off') { +print <<END + <br /> + <b>$Lang::tr{'bandwidth usage'}:</b> + $Lang::tr{'incoming'}: <span id="rx_kbs"></span> $Lang::tr{'outgoing'}: <span id="tx_kbs"></span> + +END +; +} +print <<END + </div> + </div> +</div> +</body> +</html> +END +; +} + +sub openbigbox +{ +} + +sub closebigbox +{ +} + +sub openbox +{ + $width = $_[0]; + $align = $_[1]; + $caption = $_[2]; + + print <<END +<!-- openbox --> + <div class="post" align="$align"> +END +; + + if ($caption) { print "<h3>$caption</h3>\n"; } else { print " "; } +} + +sub closebox +{ + print <<END + </div> + <br class="clear" /> + <!-- closebox --> +END +; +} + +1; diff --git a/html/html/themes/ipfire-legacy/include/style.css b/html/html/themes/ipfire-legacy/include/style.css new file mode 100644 index 0000000..d2c458e --- /dev/null +++ b/html/html/themes/ipfire-legacy/include/style.css @@ -0,0 +1,441 @@ +/* + + Nonzero1.0 by nodethirtythree design + http://www.nodethirtythree.com + missing in a maze + +*/ + +/* This controls the width of the fluid width layouts */ + +div.fluid +{ +width: 90% !important; +} + +/* This controls the width of the fixed width layouts */ + +div.fixed +{ +width: 950px !important; +} + +/* Basic Stuff */ + +* +{ +margin: 0em; +padding: 0em; +} + +body +{ +background-color: #fff; +color: #585858; +font-size: 9pt; +font-family: "trebuchet ms", helvetica, sans-serif; +} + +h1,h2,h3,h4,h5,h6 +{ +font-weight: normal; +letter-spacing: -1px; +text-transform: lowercase; +text-align: left; +} + +h3,h4,h5,h6 +{ +color: #66000F; +} + +h1 span +{ +font-weight: bold; +} + +h3 span +{ +font-weight: bold; +} + +h4 span +{ +font-weight: bold; +} + +br.clear +{ +clear: both; +} + +img +{ +padding: 3px; +#border: solid 1px #e1e1e1; +} + +img.floatTL +{ +float: left; +margin-right: 1.5em; +margin-bottom: 1.5em; +margin-top: 0.5em; +} + +a +{ +text-decoration: underline; +color: #D90000; +} + +a:hover +{ +text-decoration: none; +} + +ul.links +{ +list-style: none; +} + +ul.links li +{ +line-height: 2em; +} + +ul.links li.first +{ +} + +p +{ +line-height: 1.8em; +} + +/* Header */ + +#header +{ +width:100%; +height:122px; +background: #440000 url('../images/n1.gif') repeat-x; +} + +#header_inner +{ +position: relative; +width: 950px; +height:122px; +margin: 0 auto; +} + +/* Logo */ + +#logo +{ +position: absolute; +bottom: 0.6em; +} + +#logo h1 +{ +display: inline; +color: #fff; +font-size: 2.6em; +} + +#logo h2 +{ +display: inline; +padding-left: 0.5em; +color: #E5CCD0; +font-size: 1.0em; +} + +/* Menu */ + +#menu +{ +position: absolute; +right: 0em; +bottom: 0em; +} + +#menu ul +{ +list-style: none; +} + +#menu li +{ +float: left; +} + +#menu li a +{ +margin-left: 0.5em; +display: block; +padding: 1.1em 1.4em 1.0em 1.4em; +background: #fff url('../images/n4.gif') repeat-x; +border: solid 1px #fff; +color: #616161; +font-weight: bold; +font-size: 1.0em; +text-transform: lowercase; +text-decoration: none; +} + +#menu li a.active +{ +background: #CA2F2F url('../images/n3.gif') repeat-x; +color: #fff; +border: solid 1px #A94B4B; +} + +/* Main */ + +#main +{ +background: #fff url('../images/n2.gif') 0px 1px repeat-x; +} + +#main_inner p +{ +text-align: justify; +margin-bottom: 2.0em; +} + +#main_inner ul +{ +margin-bottom: 2.0em; +} + +#main_inner +{ +position: relative; +width: 950px; +margin: 0 auto; +padding-top: 3.5em; +} + +#main_inner h3,h4 +{ +border-bottom: dotted 1px #E1E1E1; +position: relative; +} + +#main_inner h3 +{ +font-size: 2.1em; +padding-bottom: 0.1em; +margin-bottom: 0.8em; +} + +#main_inner h4 +{ +font-size: 1.2em; +padding-bottom: 0.175em; +margin-bottom: 1.4em; +margin-top: 0.95em; +} + +#main_inner .post +{ +position: relative; +} + +#main_inner .post h3 +{ +position: relative; +font-size: 1.7em; +padding-bottom: 0.4em; +} + +#main_inner .post ul.post_info +{ +list-style: none; +position: absolute; +top: 3em; +font-size: 0.8em; +} + +#main_inner .post ul.post_info li +{ +background-position: 0em 0.2em; +background-repeat: no-repeat; +display: inline; +padding-left: 18px; +} + +#main_inner .post ul.post_info li.date +{ +background-image: url('../images/n5.gif'); +} + +#main_inner .post ul.post_info li.comments +{ +background-image: url('../images/n6.gif'); +margin-left: 1.1em; +} + +/* Footer */ + +#footer +{ +width: 950px; +margin: 0 auto; +text-align: center; +clear: both; +border-top: dotted 1px #E1E1E1; +margin-top: 1.0em; +margin-bottom: 1.0em; +padding-top: 1.0em; +text-transform: lowercase; +} + +/* Search */ + +input +{ +margin: 0.2em; +} + +input.button +{ +background: #CA2F2F url('../images/n3.gif') repeat-x; +color: #fff; +border: solid 1px #A94B4B; +font-weight: bold; +text-transform: lowercase; +font-size: 0.8em; +height: 2.0em; +} + +input.text +{ +border: solid 1px #F1F1F1; +font-size: 1.0em; +padding: 0.25em 0.25em 0.25em 0.25em; +} + +#search +{ +position: relative; +width: 100%; +margin-bottom: 2.0em; +} + +#search input.text +{ +position: absolute; +top: 0em; +left: 0em; +width: 9.5em; +} + +#search input.button +{ +position: absolute; +top: 0em; +right: 0em; +min-width: 2.0em; +max-width: 2.5em; +} + +/* LAYOUT - 3 COLUMNS */ + + /* Primary content */ + + #primaryContent_3columns + { + position: relative; + margin-right: 34em; + } + + #columnA_3columns + { + position: relative; + float: left; + width: 100%; + margin-right: -34em; + padding-right: 2em; + } + + /* Secondary Content */ + + #secondaryContent_3columns + { + float: right; + } + + #columnB_3columns + { + width: 13.0em; + float: left; + padding: 0em 2em 0.5em 2em; + border-left: dotted 1px #E1E1E1; + } + + #columnC_3columns + { + width: 13.0em; + float: left; + padding: 0em 0em 0.5em 2em; + border-left: dotted 1px #E1E1E1; + } + +/* LAYOUT - 2 COLUMNS */ + + /* Primary content */ + + #primaryContent_2columns + { + position: relative; + margin-right: 17em; + } + + #columnA_2columns + { + position: relative; + float: left; + width: 100%; + margin-right: -17em; + padding-right: 2em; + } + + /* Secondary Content */ + + #secondaryContent_2columns + { + float: right; + } + + #columnC_2columns + { + width: 13.0em; + float: left; + padding: 0em 0em 0.5em 2em; + border-left: dotted 1px #E1E1E1; + } + +/* LAYOUT - COLUMNLESS */ + + /* Primary content */ + + #primaryContent_columnless + { + position: relative; + } + + #columnA_columnless + { + position: relative; + width: 100%; + } + +/* FOOTER COLORIZE BANDWIDTH */ + +#rx_kbs { color: green; } + +#tx_kbs { color: red; } diff --git a/html/html/themes/ipfire/images/n1.gif b/html/html/themes/ipfire/images/n1.gif deleted file mode 100644 index 6eb5161..0000000 Binary files a/html/html/themes/ipfire/images/n1.gif and /dev/null differ diff --git a/html/html/themes/ipfire/images/n4.gif b/html/html/themes/ipfire/images/n4.gif deleted file mode 100644 index 8698525..0000000 Binary files a/html/html/themes/ipfire/images/n4.gif and /dev/null differ diff --git a/html/html/themes/ipfire/images/spacer.gif b/html/html/themes/ipfire/images/spacer.gif deleted file mode 100644 index 5bfd67a..0000000 Binary files a/html/html/themes/ipfire/images/spacer.gif and /dev/null differ diff --git a/html/html/themes/ipfire/images/tux2.png b/html/html/themes/ipfire/images/tux2.png new file mode 100644 index 0000000..cd84ad5 Binary files /dev/null and b/html/html/themes/ipfire/images/tux2.png differ diff --git a/html/html/themes/ipfire/include/css/style-rounded.css b/html/html/themes/ipfire/include/css/style-rounded.css new file mode 100644 index 0000000..886d61f --- /dev/null +++ b/html/html/themes/ipfire/include/css/style-rounded.css @@ -0,0 +1,82 @@ + +.bigbox { + margin-top: 1em; + border-radius: 8px 8px 8px 8px; + -webkit-border-radius: 8px 8px 8px 8px; +} + +#main_inner .post { + border-radius: 8px 8px 8px 8px; + -webkit-border-radius: 8px 8px 8px 8px; +} + +#cssmenu a { + border-radius: 8px 8px 8px 8px; + -webkit-border-radius: 8px 8px 8px 8px; +} + +#cssmenu .has-sub ul li a { + border-radius: 7px 7px 7px 7px; +} + +#cssmenu .has-sub ul li:hover a { + box-shadow: inset 0 5px 1px rgba(0, 0, 0, 0.15); + -webkit-box-shadow: inset 0 5px 1px rgba(0, 0, 0, 0.15); +} + +/* Table */ +/* when using class='bordered' after tabletag */ + +.tbl th:first-child { + -moz-border-radius: 6px 0 0 0; + -webkit-border-radius: 6px 0 0 0; + border-radius: 6px 0 0 0; +} + +.tbl th:last-child { + -moz-border-radius: 0 6px 0 0; + -webkit-border-radius: 0 6px 0 0; + border-radius: 0 6px 0 0; +} + +.tbl th:only-child { + -moz-border-radius: 6px 6px 0 0; + -webkit-border-radius: 6px 6px 0 0; + border-radius: 6px 6px 0 0; +} + +.tbl tr:first-child td:first-child { + -moz-border-radius: 6px 0 0 0; + -webkit-border-radius: 6px 0 0 0; + border-radius: 6px 0 0 0; +} + +.tbl tr:first-child td:last-child { + -moz-border-radius: 0 6px 0 0; + -webkit-border-radius: 0 6px 0 0; + border-radius: 0 6px 0 0; +} + +.tbl tr:first-child td:only-child { + -moz-border-radius: 6px 6px 0 0; + -webkit-border-radius: 6px 6px 0 0; + border-radius: 6px 6px 0 0; +} + +.tbl tr:last-child td:first-child { + -moz-border-radius: 0 0 0 6px; + -webkit-border-radius: 0 0 0 6px; + border-radius: 0 0 0 6px; +} + +.tbl tr:last-child td:last-child { + -moz-border-radius: 0 0 6px 0; + -webkit-border-radius: 0 0 6px 0; + border-radius: 0 0 6px 0; +} + +.tbl tr:last-child td:only-child { + -moz-border-radius: 0 0 6px 6px; + -webkit-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; +} diff --git a/html/html/themes/ipfire/include/css/style.css b/html/html/themes/ipfire/include/css/style.css new file mode 100644 index 0000000..0e990d6 --- /dev/null +++ b/html/html/themes/ipfire/include/css/style.css @@ -0,0 +1,326 @@ + +/* This controls the width of the fixed width layouts */ + +.fixed { + width: 960px !important; +} + +/* Basic Stuff */ + +* { + margin: 0; + padding: 0; +} + +html { + height: 100%; +} + +body { + /* SVG as background image (IE9/Chrome/Safari/Opera) */ + background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCAxIDEiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPgo8bGluZWFyR3JhZGllbnQgaWQ9Imc2ODQiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMTAwJSIgeTE9IjEwMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPgo8c3RvcCBzdG9wLWNvbG9yPSIjMDAwMDAwIiBvZmZzZXQ9IjAiLz48c3RvcCBzdG9wLWNvbG9yPSIjODgwNDAwIiBvZmZzZXQ9IjU3JSIvPgo8L2xpbmVhckdyYWRpZW50Pgo8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSJ1cmwoI2c2ODQpIiAvPgo8L3N2Zz4=); + + background-image: linear-gradient( + bottom, + #000000 0%, + #880400 57% + ); + background-image: -o-linear-gradient( + bottom, + #000000 0%, + #880400 57% + ); + background-image: -moz-linear-gradient( + bottom, + #000000 0%, + #880400 57% + ); + background-image: -webkit-linear-gradient( + bottom, + #000000 0%, + #880400 57 + ); + background-image: -ms-linear-gradient( + bottom, + #000000 0%, + #880400 57% + ); + background-image: -webkit-gradient( + linear, + left bottom, + left top, + color-stop(0, #000000), + color-stop(0.57, #880400) + ); + background-attachment: fixed; + + font-size: 9pt; + font-family: "DejaVu Sans", Helvetica, sans-serif; +} + + +h1, h2, h3, h4, h5, h6 { + font-size: 20px; + font-weight: normal; + letter-spacing: -1px; + text-align: left; +} + +h1 { + color: #66000F; +} + +br.clear { + clear: both; +} + +img { + padding: 3px; +} + +a { + text-decoration: underline; + color: #d90000; +} + +a:hover { + text-decoration: none; +} + +p { + line-height: 1.8em; +} + +hr { + margin: 0.3em 0 0.3em 0; +} + +iframe { + border: 0; +} + +.pull-right { + float: right !important; +} + +/* Header */ + +#header { + height: 70px; + margin: 0 auto; +} + +/* Logo */ + +#logo { + height: 65px; + margin-top: 1em; + background: url('../../images/tux2.png') no-repeat; +} + +#logo h1 { + color: #fff; + font-size: 3.6em; + font-weight: bold; + padding-top: 0.2em; + padding-left: 1.7em; +} + +/* Main */ + +.bigbox { + margin: 0 auto; + margin-top: 0.5em; + padding: 1.5em 2em 0 2em; + background: #fff url('../../images/n2.gif') 0px 0px repeat-x; + border: 1px solid black; + + border-radius: 3px 3px 3px 3px; + -webkit-border-radius: 3px 3px 3px 3px; +} + +#main_inner { + padding-bottom: 1.5em; +} + +#main_inner p { + text-align: justify; + margin-bottom: 2em; +} + +#main_inner ul { + margin-bottom: 2em; +} + +#main_inner h1 { + font-size: 1.8em; + margin-bottom: 1em; +} + +#main_inner .post { + border: 1px solid silver; + padding: 1em 2em 1em 2em; + margin-bottom: 1em; + clear: both; +} + +#main_inner .post h2 { + border-bottom: dotted 1px #e1e1e1; + font-size: 1.6em; + margin-bottom: 1em; +} + +#footer { + height: 2.5em; + margin-bottom: 1em; +} + +#footer a { + color: inherit; + text-decoration: none; +} + +#footer a:hover { + text-decoration: underline; +} + +input { + margin: 0.2em; +} + +input.button { + background: #ca2f2f url('../../images/n3.gif') repeat-x; + color: #fff; + border: solid 1px #a94b4b; + font-weight: bold; + font-size: 0.8em; + height: 2.0em; +} + +input.text { + border: solid 1px #f1f1f1; + padding: 0.25em; +} + +#traffic { + float: right; + min-width: 20em; + line-height: 32px; +} + +/* Menu */ +#cssmenu { + margin: 0 auto; + margin-top: 0; + padding-top: 0; + font-weight: 600; + height: 32px; + border: 1px solid black; +} + +#cssmenu a { + color: #111111; + display: inline-block; + line-height: 32px; + padding: 0 1em; + text-decoration: none; +} + +#cssmenu ul { + list-style: none; +} + +#cssmenu > ul > li { + display: inline-block; +} + +#cssmenu > ul > li.active a, #cssmenu > ul > li:hover > a { + color: white; + background: #aaaaaa; +} + +#cssmenu .has-sub:hover > ul { + display: block; +} + +#cssmenu .has-sub ul { + display: none; + position: absolute; +} + +#cssmenu .has-sub ul li a { + min-width: 12em; + background: #ffffff; + color: grey; + display: block; + line-height: 40%; + padding: 12px 5px; + border: 1px solid black; +} + +#cssmenu .has-sub ul li:hover a { + background: #dddddd; +} + +/* This decorates all tables with class="tbl" */ + +table { + *border-collapse: collapse; /* IE7 and lower */ + border-spacing: 0; +} + +.tbl th { + color: #000000; + border-top: 1px solid lightgrey; + border-bottom: 1px solid lightgrey; + background: #cccccc; + padding-left: 0.5em; + padding-right: 0.5em; +} + +.tbl th:first-child { + border-left: 1px solid lightgrey; + border-top: 1px solid lightgrey; + border-bottom: 1px solid lightgrey; +} + +.tbl th:last-child { + border-right: 1px solid lightgrey; + border-top: 1px solid lightgrey; + border-bottom: 1px solid lightgrey; +} + +.tbl th:only-child { + border: 1px solid lightgrey; +} +.tbl td{ + padding-left: 0.5em; + padding-right: 0.5em; +} +.tbl tr td:first-child { + border-left: 1px solid lightgrey; +} + +.tbl tr td:last-child { + border-right: 1px solid lightgrey; +} + +.tbl tr:first-child td { + border-top: 1px solid lightgrey; +} + +.tbl tr:last-child td:only-child { + border-bottom: 1px solid lightgrey; +} + +.tbl tr:last-child td:first-child { + border-bottom: 1px solid lightgrey; +} + +.tbl tr:last-child td:last-child { + border-bottom: 1px solid lightgrey; +} + +.tbl tr:last-child td { + border-bottom: 1px solid lightgrey; +} diff --git a/html/html/themes/ipfire/include/functions.pl b/html/html/themes/ipfire/include/functions.pl index c557e8b..0c47cd4 100644 --- a/html/html/themes/ipfire/include/functions.pl +++ b/html/html/themes/ipfire/include/functions.pl @@ -18,397 +18,243 @@ # along with this program. If not, see http://www.gnu.org/licenses/. # # # ############################################################################### +# # +# Theme file for IPfire (based on ipfire theme) # +# Author kay-michael köhler kmk michael@koehler.tk # +# # +# Version 1.0 March, 6th 2013 # +############################################################################### +# # +# Modyfied theme by a.marx@ipfire.org January 2014 # +# # +# Cleanup code, deleted unused code and rewrote the rest to get a new working # +# IPFire default theme. # +###############################################################################
-sub showmenu() { - print <<EOF - <div id="menu"> - <ul> -EOF -; - foreach my $k1 ( sort keys %$menu ) { - if (! $menu->{$k1}{'enabled'}) { - next; - } - my $link = getlink($menu->{$k1}); - if ($link eq '') { - next; - } - if (! is_menu_visible($link)) { - next; - } - if ($menu->{$k1}->{'selected'}) { - print "<li><a href="$link" class="active">$menu->{$k1}{'caption'}</a></li>"; - } else { - print "<li><a href="$link">$menu->{$k1}{'caption'}</a></li>"; - } - } - print <<EOF - </ul> - </div> -EOF -; -} +require "${General::swroot}/lang.pl";
-sub getselected($) { - my $root = shift; - if (!$root) { - return 0; - } - - foreach my $item (%$root) { - if ($root->{$item}{'selected'}) { - return $root->{$item}; - } - } +############################################################################### +# +# print menu html elements for submenu entries +# @param submenu entries +sub showsubmenu() { + my $submenus = shift; + + print "<ul>"; + foreach my $item (sort keys %$submenus) { + $link = getlink($submenus->{$item}); + next if (!is_menu_visible($link) or $link eq ''); + + my $subsubmenus = $submenus->{$item}->{'subMenu'}; + + if ($subsubmenus) { + print '<li class="has-sub ">'; + } else { + print '<li>'; + } + print '<a href="'.$link.'">'.$submenus->{$item}->{'caption'}.'</a>'; + + &showsubmenu($subsubmenus) if ($subsubmenus); + print '</li>'; + } + print "</ul>" }
-sub showsubsection($$) { - my $root = shift; - - if (! $root) { - return; - } - my $selected = getselected($root); - if (! $selected) { - return; - } - my $submenus = $selected->{'subMenu'}; - if (! $submenus) { - return; - } - - print <<EOF - <h4><span>Side</span>menu</h4> - <ul class="links"> -EOF -; - foreach my $item (sort keys %$submenus) { - my $hash = $submenus->{$item}; - if (! $hash->{'enabled'}) { - next; - } - my $link = getlink($hash); - if ($link eq '') { - next; - } - if (! is_menu_visible($link)) { - next; - } - if ($hash->{'selected'}) { - print '<li class="selected">'; - } else { - print '<li>'; - } - - print "<a href="$link">$hash->{'caption'}</a></li>"; - } - - print <<EOF - </ul> +############################################################################### +# +# print menu html elements +sub showmenu() { + print '<div id="cssmenu" class="bigbox fixed">'; + + if ($settings{'SPEED'} ne 'off') { + print <<EOF; + <div id='traffic'> + <strong>Traffic:</strong> + In <span id='rx_kbs'>--.-- Bit/s</span> + Out <span id='tx_kbs'>--.-- Bit/s</span> + </div> EOF -; -} + }
+ print "<ul>"; + foreach my $k1 ( sort keys %$menu ) { + $link = getlink($menu->{$k1}); + next if (!is_menu_visible($link) or $link eq ''); + print '<li class="has-sub "><a href="#"><span>'.$menu->{$k1}->{'caption'}.'</span></a>'; + my $submenus = $menu->{$k1}->{'subMenu'}; + &showsubmenu($submenus) if ($submenus); + print "</li>"; + }
-sub showsubsubsection($) { - my $root = shift; - if (!$root) { - return; - } - my $selected = getselected($root); - if (! $selected) { - return - } - if (! $selected->{'subMenu'}) { - return - } - - showsubsection($selected->{'subMenu'}, 'menu-subtop'); + print "</ul></div>"; }
+############################################################################### +# +# print page opening html layout +# @param page title +# @param boh +# @param extra html code for html head section +# @param suppress menu option, can be numeric 1 or nothing. +# menu will be suppressed if param is 1 sub openpage { - my $title = shift; - my $boh = shift; - my $extrahead = shift; - - @URI=split ('?', $ENV{'REQUEST_URI'} ); - &General::readhash("${swroot}/main/settings", %settings); - &genmenu(); - - my $h2 = gettitle($menu); - - $title = "IPFire - $title"; - if ($settings{'WINDOWWITHHOSTNAME'} eq 'on') { - $title = "$settings{'HOSTNAME'}.$settings{'DOMAINNAME'} - $title"; - } - - print <<END -<?xml version='1.0' encoding='UTF-8'?> -<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> -<html xmlns='http://www.w3.org/1999/xhtml'> -<head> - <title>$title</title> - $extrahead -END -; - if ($settings{'FX'} ne 'off') { - print <<END - <meta http-equiv="Page-Enter" content="blendTrans(Duration=0.5,Transition=12)" /> - <meta http-equiv="Page-Exit" content="blendTrans(Duration=0.5,Transition=12)" /> -END -; - } - print <<END - <link rel="shortcut icon" href="/favicon.ico" /> - <link rel="stylesheet" type="text/css" href="/themes/ipfire/include/style.css" /> - <script language="javascript" type="text/javascript"> - - function swapVisibility(id) { - el = document.getElementById(id); - if(el.style.display != 'block') { - el.style.display = 'block' - } - else { - el.style.display = 'none' - } - } - </script> + my $title = shift; + my $boh = shift; + my $extrahead = shift; + my $suppressMenu = shift; + my @tmp = split(/./, basename($0)); + my $scriptName = @tmp[0]; + + @URI=split ('?', $ENV{'REQUEST_URI'} ); + &General::readhash("${swroot}/main/settings", %settings); + &genmenu(); + + my $headline = "IPFire"; + if (($settings{'WINDOWWITHHOSTNAME'} eq 'on') || ($settings{'WINDOWWITHHOSTNAME'} eq '')) { + $headline = "$settings{'HOSTNAME'}.$settings{'DOMAINNAME'}"; + } + + my @stylesheets = ("style.css"); + if ($THEME_NAME eq "ipfire-rounded") { + push(@stylesheets, "style-rounded.css"); + } + +print <<END; +<!DOCTYPE html> +<html> + <head> + <title>$headline - $title</title> + $extrahead + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> + <link rel="shortcut icon" href="/favicon.ico" /> + <script type="text/javascript" src="/include/jquery.js"></script> + + <script type="text/javascript"> + function swapVisibility(id) { + $('#' + id).toggle(); + } + </script> END -; + + foreach my $stylesheet (@stylesheets) { + print "<link href="/themes/ipfire/include/css/$stylesheet" rel="stylesheet" type="text/css" />\n"; + } + if ($settings{'SPEED'} ne 'off') { print <<END - <script type="text/javascript" src="/include/jquery-1.9.1.min.js"></script> - <script type="text/javascript"> - var t_current; - var t_last; - var rxb_current; - var rxb_last; - var txb_current; - var txb_last; - function refreshInetInfo() { - $.ajax({ - url: '/cgi-bin/speed.cgi', - success: function(xml){ - t_current = new Date(); - var t_diff = t_current - t_last; - t_last = t_current; - - rxb_current = $("rxb",xml).text(); - var rxb_diff = rxb_current - rxb_last; - rxb_last = rxb_current; - - var rx_kbs = rxb_diff/t_diff; - rx_kbs = Math.round(rx_kbs*10)/10; - - txb_current = $("txb",xml).text(); - var txb_diff = txb_current - txb_last; - txb_last = txb_current; - - var tx_kbs = txb_diff/t_diff; - tx_kbs = Math.round(tx_kbs*10)/10; - - $("#rx_kbs").text(rx_kbs + ' kb/s'); - $("#tx_kbs").text(tx_kbs + ' kb/s'); - } - }); - window.setTimeout("refreshInetInfo()", 3000); - } - $(document).ready(function(){ - refreshInetInfo(); - }); - </script> - </head> - <body> + <script type="text/javascript" src="/themes/ipfire/include/js/refreshInetInfo.js"></script> END ; } -else { -print "</head><body>";} -print <<END -<!-- IPFIRE HEADER --> - -<div id="header">
- <div id="header_inner" class="fixed"> - - <div id="logo"> +print <<END + </head> + <body> + <div id="header" class="fixed"> + <div id="logo"> END ; - if ($settings{'WINDOWWITHHOSTNAME'} eq 'on') { - print "<h1><span>$settings{'HOSTNAME'}.$settings{'DOMAINNAME'}</span></h1><br />"; - } else { - print "<h1><span>IPFire</span></h1><br />"; - } - print <<END - <h2>$h2</h2> - </div> + if ($settings{'WINDOWWITHHOSTNAME'} ne 'off') { + print "<h1>$settings{'HOSTNAME'}.$settings{'DOMAINNAME'}</h1>"; + } else { + print "<h1>IPFire</h1>"; + }
+print <<END + </div> + </div> END ; - &showmenu();
-print <<END - </div> -</div> +&showmenu() if ($suppressMenu != 1);
-<div id="main"> - <div id="main_inner" class="fixed"> - <div id="primaryContent_2columns"> - <div id="columnA_2columns"> +print <<END + <div class="bigbox fixed"> + <div id="main_inner" class="fixed"> + <h1>$title</h1> END ; }
+############################################################################### +# +# print page opening html layout without menu +# @param page title +# @param boh +# @param extra html code for html head section sub openpagewithoutmenu { - my $title = shift; - my $boh = shift; - my $extrahead = shift; - - @URI=split ('?', $ENV{'REQUEST_URI'} ); - &General::readhash("${swroot}/main/settings", %settings); - &genmenu(); - - my $h2 = gettitle($menu); - - $title = "IPFire - $title"; - if ($settings{'WINDOWWITHHOSTNAME'} eq 'on') { - $title = "$settings{'HOSTNAME'}.$settings{'DOMAINNAME'} - $title"; - } - - print <<END -<?xml version='1.0' encoding='UTF-8'?> -<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> -<html xmlns='http://www.w3.org/1999/xhtml'> -<head> - <title>$title</title> - $extrahead -END -; - if ($settings{'FX'} ne 'off') { - print <<END - <meta http-equiv="Page-Enter" content="blendTrans(Duration=0.5,Transition=12)" /> - <meta http-equiv="Page-Exit" content="blendTrans(Duration=0.5,Transition=12)" /> -END -; - } - print <<END - <link rel="shortcut icon" href="/favicon.ico" /> - <link rel="stylesheet" type="text/css" href="/include/style.css" /> - <script language="javascript" type="text/javascript"> - - function swapVisibility(id) { - el = document.getElementById(id); - if(el.style.display != 'block') { - el.style.display = 'block' - } - else { - el.style.display = 'none' - } - } - </script> - - </head> - <body> -<!-- IPFIRE HEADER --> - -<div id="header"> - - <div id="header_inner" class="fixed"> - - <div id="logo"> - <h1><span>IPFire</span></h1> - <h2>$h2</h2> - </div> - </div> -</div> - -<div id="main"> - <div id="main_inner" class="fixed"> - <div id="primaryContent_2columns"> - <div id="columnA_2columns"> -END -; + openpage(shift,shift,shift,1); + return; }
-sub closepage () { - my $status = &connectionstatus(); - my $uptime = `/usr/bin/uptime|cut -d " " -f 4-`; - $uptime =~ s/year(s|)/$Lang::tr{'year'}/; - $uptime =~ s/month(s|)/$Lang::tr{'month'}/; - $uptime =~ s/day(s|)/$Lang::tr{'day'}/; - $uptime =~ s/user(s|)/$Lang::tr{'user'}/; - $uptime =~ s/load average/$Lang::tr{'uptime load average'}/; - - print <<END - </div> - </div> - - <div id="secondaryContent_2columns"> - - <div id="columnC_2columns"> -END -; - &showsubsection($menu); - &showsubsubsection($menu); - - print <<END - </div> - </div> - <br class="clear" /> - <div id="footer" class="fixed"> - <b>Status:</b> $status <b>Uptime:</b> $uptime -END -; -if ($settings{'SPEED'} ne 'off') { -print <<END - <br /> - <b>$Lang::tr{'bandwidth usage'}:</b> - $Lang::tr{'incoming'}: <span id="rx_kbs"></span> $Lang::tr{'outgoing'}: <span id="tx_kbs"></span> +############################################################################### +# +# print page closing html layout
-END -; -} -print <<END - </div> - </div> -</div> +sub closepage () { + open(FILE, "</etc/system-release"); + my $system_release = <FILE>; + $system_release =~ s/core/Core Update/; + close(FILE); + +print <<END; + </div> + </div> + + <div id="footer" class='bigbox fixed'> + <span class="pull-right"> + <a href="http://www.ipfire.org/" target="_blank"><strong>IPFire.org</strong></a> • + <a href="http://www.ipfire.org/donate" target="_blank">$Lang::tr{'support donation'}</a> + </span> + + <strong>$system_release</strong> + </div> </body> </html> END ; }
-sub openbigbox -{ +############################################################################### +# +# print big box opening html layout +sub openbigbox { }
-sub closebigbox -{ +############################################################################### +# +# print big box closing html layout +sub closebigbox { }
-sub openbox -{ - $width = $_[0]; - $align = $_[1]; - $caption = $_[2]; - - print <<END -<!-- openbox --> - <div class="post" align="$align"> -END -; +############################################################################### +# +# print box opening html layout +# @param page width +# @param page align +# @param page caption +sub openbox { + $width = $_[0]; + $align = $_[1]; + $caption = $_[2]; + + if($align eq 'center') { + print "<div class='post' align='center'>\n" + } + else { + print "<div class='post'>\n"; + }
- if ($caption) { print "<h3>$caption</h3>\n"; } else { print " "; } + if ($caption) { + print "<h2>$caption</h2>\n"; + } }
-sub closebox -{ - print <<END - </div> - <br class="clear" /> - <!-- closebox --> -END -; +############################################################################### +# +# print box closing html layout +sub closebox { + print "</div>"; }
1; diff --git a/html/html/themes/ipfire/include/js/refreshInetInfo.js b/html/html/themes/ipfire/include/js/refreshInetInfo.js new file mode 100644 index 0000000..259f86e --- /dev/null +++ b/html/html/themes/ipfire/include/js/refreshInetInfo.js @@ -0,0 +1,69 @@ +/* refreshInetInfo.js +* functions for retrieving status information via jQuery +* Modified: March 6th, 2013 by michael@koehler.tk +* Authors: IPFire Team (info@ipfire.org) + Kay-Michael Köhler (michael@koehler.tk) +* Visit http://www.ipfire.org/ +*/ + +var t_current; +var t_last = 0; +var rxb_current; +var rxb_last = 0; +var txb_current; +var txb_last = 0; + +$(document).ready(function(){ + refreshInetInfo(); +}); + +function refreshInetInfo() { + $.ajax({ + url: '/cgi-bin/speed.cgi', + success: function(xml) { + t_current = new Date(); + var t_diff = t_current - t_last; + + rxb_current = $("rxb", xml).text(); + var rxb_diff = rxb_current - rxb_last; + rxb_last = rxb_current; + + var rx_bits = rxb_diff * 8192 / t_diff; + var rx_fmt = format_bytes(rx_bits); + + txb_current = $("txb", xml).text(); + var txb_diff = txb_current - txb_last; + txb_last = txb_current; + + var tx_bits = txb_diff * 8192 / t_diff; + var tx_fmt = format_bytes(tx_bits); + + if (t_last != 0) { + $("#rx_kbs").text(rx_fmt); + $("#tx_kbs").text(tx_fmt); + } + + t_last = t_current; + } + }); + + window.setTimeout("refreshInetInfo()", 2000); +} + +function format_bytes(bytes) { + var units = ["Bit/s", "kBit/s", "MBit/s", "GBit/s", "TBit/s"]; + + var unit = units[0]; + for (var i = 1; i < units.length; i++) { + if (bytes < 1024) + break; + + unit = units[i]; + bytes /= 1024; + } + + // Round the output. + bytes = bytes.toFixed(2); + + return bytes + " " + unit; +} diff --git a/html/html/themes/ipfire/include/style.css b/html/html/themes/ipfire/include/style.css deleted file mode 100644 index 2461a14..0000000 --- a/html/html/themes/ipfire/include/style.css +++ /dev/null @@ -1,441 +0,0 @@ -/* - - Nonzero1.0 by nodethirtythree design - http://www.nodethirtythree.com - missing in a maze - -*/ - -/* This controls the width of the fluid width layouts */ - -div.fluid -{ -width: 90% !important; -} - -/* This controls the width of the fixed width layouts */ - -div.fixed -{ -width: 950px !important; -} - -/* Basic Stuff */ - -* -{ -margin: 0em; -padding: 0em; -} - -body -{ -background-color: #fff; -color: #585858; -font-size: 9pt; -font-family: "trebuchet ms", helvetica, sans-serif; -} - -h1,h2,h3,h4,h5,h6 -{ -font-weight: normal; -letter-spacing: -1px; -text-transform: lowercase; -text-align: left; -} - -h3,h4,h5,h6 -{ -color: #66000F; -} - -h1 span -{ -font-weight: bold; -} - -h3 span -{ -font-weight: bold; -} - -h4 span -{ -font-weight: bold; -} - -br.clear -{ -clear: both; -} - -img -{ -padding: 3px; -#border: solid 1px #e1e1e1; -} - -img.floatTL -{ -float: left; -margin-right: 1.5em; -margin-bottom: 1.5em; -margin-top: 0.5em; -} - -a -{ -text-decoration: underline; -color: #D90000; -} - -a:hover -{ -text-decoration: none; -} - -ul.links -{ -list-style: none; -} - -ul.links li -{ -line-height: 2em; -} - -ul.links li.first -{ -} - -p -{ -line-height: 1.8em; -} - -/* Header */ - -#header -{ -width:100%; -height:122px; -background: #440000 url('/themes/ipfire/images/n1.gif') repeat-x; -} - -#header_inner -{ -position: relative; -width: 950px; -height:122px; -margin: 0 auto; -} - -/* Logo */ - -#logo -{ -position: absolute; -bottom: 0.6em; -} - -#logo h1 -{ -display: inline; -color: #fff; -font-size: 2.6em; -} - -#logo h2 -{ -display: inline; -padding-left: 0.5em; -color: #E5CCD0; -font-size: 1.0em; -} - -/* Menu */ - -#menu -{ -position: absolute; -right: 0em; -bottom: 0em; -} - -#menu ul -{ -list-style: none; -} - -#menu li -{ -float: left; -} - -#menu li a -{ -margin-left: 0.5em; -display: block; -padding: 1.1em 1.4em 1.0em 1.4em; -background: #fff url('/themes/ipfire/images/n4.gif') repeat-x; -border: solid 1px #fff; -color: #616161; -font-weight: bold; -font-size: 1.0em; -text-transform: lowercase; -text-decoration: none; -} - -#menu li a.active -{ -background: #CA2F2F url('/themes/ipfire/images/n3.gif') repeat-x; -color: #fff; -border: solid 1px #A94B4B; -} - -/* Main */ - -#main -{ -background: #fff url('/themes/ipfire/images/n2.gif') 0px 1px repeat-x; -} - -#main_inner p -{ -text-align: justify; -margin-bottom: 2.0em; -} - -#main_inner ul -{ -margin-bottom: 2.0em; -} - -#main_inner -{ -position: relative; -width: 950px; -margin: 0 auto; -padding-top: 3.5em; -} - -#main_inner h3,h4 -{ -border-bottom: dotted 1px #E1E1E1; -position: relative; -} - -#main_inner h3 -{ -font-size: 2.1em; -padding-bottom: 0.1em; -margin-bottom: 0.8em; -} - -#main_inner h4 -{ -font-size: 1.2em; -padding-bottom: 0.175em; -margin-bottom: 1.4em; -margin-top: 0.95em; -} - -#main_inner .post -{ -position: relative; -} - -#main_inner .post h3 -{ -position: relative; -font-size: 1.7em; -padding-bottom: 0.4em; -} - -#main_inner .post ul.post_info -{ -list-style: none; -position: absolute; -top: 3em; -font-size: 0.8em; -} - -#main_inner .post ul.post_info li -{ -background-position: 0em 0.2em; -background-repeat: no-repeat; -display: inline; -padding-left: 18px; -} - -#main_inner .post ul.post_info li.date -{ -background-image: url('/themes/ipfire/images/n5.gif'); -} - -#main_inner .post ul.post_info li.comments -{ -background-image: url('/themes/ipfire/images/n6.gif'); -margin-left: 1.1em; -} - -/* Footer */ - -#footer -{ -width: 950px; -margin: 0 auto; -text-align: center; -clear: both; -border-top: dotted 1px #E1E1E1; -margin-top: 1.0em; -margin-bottom: 1.0em; -padding-top: 1.0em; -text-transform: lowercase; -} - -/* Search */ - -input -{ -margin: 0.2em; -} - -input.button -{ -background: #CA2F2F url('/themes/ipfire/images/n3.gif') repeat-x; -color: #fff; -border: solid 1px #A94B4B; -font-weight: bold; -text-transform: lowercase; -font-size: 0.8em; -height: 2.0em; -} - -input.text -{ -border: solid 1px #F1F1F1; -font-size: 1.0em; -padding: 0.25em 0.25em 0.25em 0.25em; -} - -#search -{ -position: relative; -width: 100%; -margin-bottom: 2.0em; -} - -#search input.text -{ -position: absolute; -top: 0em; -left: 0em; -width: 9.5em; -} - -#search input.button -{ -position: absolute; -top: 0em; -right: 0em; -min-width: 2.0em; -max-width: 2.5em; -} - -/* LAYOUT - 3 COLUMNS */ - - /* Primary content */ - - #primaryContent_3columns - { - position: relative; - margin-right: 34em; - } - - #columnA_3columns - { - position: relative; - float: left; - width: 100%; - margin-right: -34em; - padding-right: 2em; - } - - /* Secondary Content */ - - #secondaryContent_3columns - { - float: right; - } - - #columnB_3columns - { - width: 13.0em; - float: left; - padding: 0em 2em 0.5em 2em; - border-left: dotted 1px #E1E1E1; - } - - #columnC_3columns - { - width: 13.0em; - float: left; - padding: 0em 0em 0.5em 2em; - border-left: dotted 1px #E1E1E1; - } - -/* LAYOUT - 2 COLUMNS */ - - /* Primary content */ - - #primaryContent_2columns - { - position: relative; - margin-right: 17em; - } - - #columnA_2columns - { - position: relative; - float: left; - width: 100%; - margin-right: -17em; - padding-right: 2em; - } - - /* Secondary Content */ - - #secondaryContent_2columns - { - float: right; - } - - #columnC_2columns - { - width: 13.0em; - float: left; - padding: 0em 0em 0.5em 2em; - border-left: dotted 1px #E1E1E1; - } - -/* LAYOUT - COLUMNLESS */ - - /* Primary content */ - - #primaryContent_columnless - { - position: relative; - } - - #columnA_columnless - { - position: relative; - width: 100%; - } - -/* FOOTER COLORIZE BANDWIDTH */ - -#rx_kbs { color: green; } - -#tx_kbs { color: red; } diff --git a/html/html/themes/maniac/include/functions.pl b/html/html/themes/maniac/include/functions.pl index 62bbf10..e8514ad 100644 --- a/html/html/themes/maniac/include/functions.pl +++ b/html/html/themes/maniac/include/functions.pl @@ -149,19 +149,9 @@ sub openpage { <head> <title>$title</title> $extrahead -END -; - if ($settings{'FX'} ne 'off') { - print <<END - <meta http-equiv="Page-Enter" content="blendTrans(Duration=0.5,Transition=12)" /> - <meta http-equiv="Page-Exit" content="blendTrans(Duration=0.5,Transition=12)" /> -END -; - } - print <<END <link rel="shortcut icon" href="/favicon.ico" /> <link rel="stylesheet" type="text/css" href="/themes/maniac/include/style.css" /> - <script language="javascript" type="text/javascript"> + <script type="text/javascript">
function swapVisibility(id) { el = document.getElementById(id); @@ -177,7 +167,7 @@ END ; if ($settings{'SPEED'} ne 'off') { print <<END - <script type="text/javascript" src="/include/jquery-1.9.1.min.js"></script> + <script type="text/javascript" src="/include/jquery.js"></script> <script type="text/javascript"> var t_current; var t_last; @@ -294,7 +284,7 @@ END print <<END <link rel="shortcut icon" href="/favicon.ico" /> <link rel="stylesheet" type="text/css" href="/include/style.css" /> - <script language="javascript" type="text/javascript"> + <script type="text/javascript">
function swapVisibility(id) { el = document.getElementById(id); diff --git a/langs/de/cgi-bin/de.pl b/langs/de/cgi-bin/de.pl index d85981f..977dbac 100644 --- a/langs/de/cgi-bin/de.pl +++ b/langs/de/cgi-bin/de.pl @@ -33,6 +33,8 @@ 'Level7 Rule' => 'Level7-Regel', 'Level7 rule' => 'Level7-Regel', 'Local VPN IP' => 'Internes Netzwerk (GREEN)', +'MB read' => 'MB gelesen', +'MB written' => 'MB geschrieben', 'MTU' => 'MTU Size', 'Number of IPs for the pie chart' => 'Anzahl der angezeigten IPs im Diagramm', 'Number of Ports for the pie chart' => 'Anzahl der angezeigten Ports im Diagramm', @@ -71,14 +73,14 @@ 'action' => 'Aktion', 'activate' => 'aktivieren', 'activate user' => 'Benutzer aktivieren', -'active' => 'aktiv', +'active' => 'Aktiv', 'add' => 'HinzufÃŒgen', -'add a host' => 'Host hinzufÃŒgen:', +'add a host' => 'Host hinzufÃŒgen', 'add a new rule' => 'Neue Regel hinzufÃŒgen:', 'add cron' => 'Cronjob hinzufÃŒgen', 'add device' => 'GerÀt hinzufÃŒgen', 'add network' => 'Netzwerk hinzufÃŒgen', -'add new alias' => 'Neue Alias-Adresse hinzufÃŒgen:', +'add new alias' => 'Neue Alias-Adresse hinzufÃŒgen', 'add new lease' => 'Neue Zuordnung definieren', 'add new ovpn' => 'OpenVPN-Einstellungen', 'add printer' => 'Drucker hinzufÃŒgen', @@ -89,6 +91,7 @@ 'add xtaccess' => 'Externen Zugang hinzugefÃŒgt', 'add-route' => 'Additional push route', 'added from dhcp lease list' => 'hinzugefÃŒgt von der DHCP-Zuordnungsliste', +'addon' => 'Addons', 'admin user password has been changed' => 'Passwort fÃŒr Benutzer admin wurde geÀndert.', 'admin users' => 'Liste der Benutzer mit Super User Rechten', 'administrator user password' => 'Passwort fÃŒr Benutzer "admin":', @@ -357,7 +360,7 @@ 'april' => 'April', 'archive not exist' => 'Konfigurationsarchiv existiert nicht', 'are you sure' => 'Sind Sie sicher?', -'arp table entries' => 'EintrÀge der ARP-Tabelle:', +'arp table entries' => 'EintrÀge der ARP-Tabelle', 'artist' => 'KÃŒnstler', 'attemps' => 'Versuche', 'attention' => 'ACHTUNG', @@ -397,6 +400,7 @@ 'basic options' => 'Basisoptionen', 'beep when ppp connects or disconnects' => 'Piepen, wenn IPFire verbindet oder trennt', 'behind a proxy' => 'Hinter einem Proxy:', +'bit' => 'Bit', 'bitrate' => 'Bitrate', 'bleeding rules' => 'Bleeding Edge Snort Rules', 'blue' => 'BLAU', @@ -479,8 +483,10 @@ 'ccd err iroute' => 'Netzadresse fÃŒr Route ungÃŒltig.', 'ccd err irouteexist' => 'Diese Route wird bereits verwendet.', 'ccd err isipsecnet' => 'Diese Subnetzadresse wird bereits fÃŒr ein IPsec-Netzwerk verwendet.', -'ccd err isovpnnet' => 'Subnetzadresse wird fÃŒr bereits fÃŒr den OpenVPN-Server verwendet!', -'ccd err issubnet' => 'Subnetzadresse wird bereits verwendet.', +'ccd err isipsecrw' => 'Diese Subnetzadresse wird bereits fÃŒr das IPsec-RW Netz verwendet.', +'ccd err isovpnn2n' => 'Die Subnetzadresse wird fÃŒr bereits fÃŒr eine OpenVPN Netz-zu-Netz-Verbindung verwendet.', +'ccd err isovpnnet' => 'Die Subnetzadresse wird fÃŒr bereits fÃŒr den OpenVPN-Server verwendet.', +'ccd err issubnet' => 'Die Subnetzadresse wird bereits verwendet.', 'ccd err name' => 'Es muss ein Name angegeben werden.', 'ccd err nameexist' => 'Name existiert bereits.', 'ccd err netadr' => 'Subnetzadresse ist ungÃŒltig oder Bereich zu groÃ.', @@ -541,8 +547,8 @@ 'connection' => 'Verbindung', 'connection closed' => 'Nicht Verbunden...', 'connection debugging' => 'Verbindungs-Debugging', -'connection status and controlc' => 'Verbindungsstatus und -kontrolle:', -'connection tracking' => 'IPTables-Verbindungsverfolgung', +'connection status and controlc' => 'Verbindungsstatus und -kontrolle', +'connection tracking' => 'iptables-Verbindungsverfolgung', 'connection type' => 'Verbindungstyp', 'connection type is invalid' => 'Verbindungstyp ist ungÃŒltig', 'connections' => 'Verbindungen', @@ -562,7 +568,11 @@ 'could not open installed updates file' => 'Datei mit Update-Liste konnte nicht geöffnet werden', 'could not open update information file' => 'Datei mit den Update-Information konnte nicht geöffnet werden. Die Update-Datei ist beschÀdigt.', 'could not retrieve common name from certificate' => 'Der Gemeinsame Name (CN) konnte nicht aus dem Zertifikat gelesen werden.', +'count' => 'Anzahl', +'countries' => 'LÀnder', 'country' => 'Land', +'country codes and flags' => 'LÀnder und LÀnderkennungen', +'countrycode' => 'Kennung', 'cpu frequency per' => 'CPU-Frequenz pro', 'cpu idle usage' => 'Leerlauf CPU-Nutzung', 'cpu interrupt usage' => 'Interrupt CPU-Nutzung', @@ -580,13 +590,13 @@ 'crl' => 'Certificate Revocation List', 'cron server' => 'Cron-Server', 'current' => 'Aktuell', -'current aliases' => 'Aktuelle Alias-Adresse:', +'current aliases' => 'Aktuelle Alias-Adresse', 'current class' => 'Aktuelle Klasse', 'current devices' => 'Schnittstellen', 'current dhcp leases on blue' => 'Aktuelle DHCP-Zuordnungen auf Blau', 'current dynamic leases' => 'Aktuelle dynamische Zuordnungen', 'current fixed leases' => 'Aktuelle feste Zuordnungen', -'current hosts' => 'Aktuelle Hosts:', +'current hosts' => 'Aktuelle Hosts', 'current media' => 'Aktuelles Medium', 'current ovpn' => 'Aktive OVPN-Verbindung', 'current playlist' => 'Aktuelle Playlist', @@ -618,6 +628,7 @@ 'december' => 'Dezember', 'deep scan directories' => 'rekursiv scannen', 'def lease time' => 'Standardzeit fÃŒr Zuordnung', +'default ip' => 'Standard IP-Adresse', 'default lease time' => 'Haltezeit-Voreinstellung in min:', 'default networks' => 'Standard Netzwerke', 'default renewal time' => 'Standard-Aktualisierungszeit', @@ -641,6 +652,7 @@ 'destination port numbers' => 'Zielport muà ein(e) gÃŒltige(r) Portnummer oder Portbereich sein.', 'destination port overlaps' => 'Der Zielportbereich ÃŒberlappt einen bereits bestehenden Portbereich.', 'detail level' => 'Detaillierungsgrad', +'details' => 'Mehr', 'device' => 'GerÀt', 'devices on blue' => 'GerÀte auf Blau', 'dhcp advopt add' => 'DHCP Option hinzufÃŒgen', @@ -697,6 +709,7 @@ 'dmz pinhole rule added' => 'Regel fÃŒr DMZ-Schlupfloch hinzugefÃŒgt; Starte DMZ-Schlupfloch neu', 'dmz pinhole rule removed' => 'Regel fÃŒr DMZ-Schlupfloch entfernt; Starte DMZ-Schlupfloch neu', 'dmzpinholes for same net not necessary' => 'DMZ-Schlupflöcher werden im gleichen Netz nicht benötigt. WÀhlen Sie ein anderes Quell- oder Ziel-Netz.', +'dnat address' => 'Firewall-Interface', 'dns address deleted' => 'Erfolgreich gelöscht! ', 'dns address deleted txt' => 'DNS Server Adressen wurden erfolgreich gelöscht. Ãnderungen werden jedoch erst nach einem Neustart oder einer Wiederverbindung ÃŒbernommen.', 'dns address done' => 'Die DNS-Server Adressen Einstellungen werden ÃŒbernommen.', @@ -714,13 +727,14 @@ 'dns proxy server' => 'DNS-Proxyserver', 'dns saved' => 'Erfolgreich gespeichert!', 'dns saved txt' => 'Die beiden eingegebenen DNS-Server-Adressen wurde erfolgreich gespeichert.<br/>Um die Ãnderung wirksam zu machen, mÃŒssen Sie neustarten oder wiederverbinden!', -'dns server' => 'DNS Server', +'dns server' => 'DNS-Server', +'dns servers' => 'DNS-Server', 'dns title' => 'Domain Name System', 'dnsforward' => 'DNS-Weiterleitung', -'dnsforward add a new entry' => 'Neuen Eintrag hinzufÃŒgen:', +'dnsforward add a new entry' => 'Neuen Eintrag hinzufÃŒgen', 'dnsforward configuration' => 'Einstellungen fÃŒr DNS Weiterleitung', -'dnsforward edit an entry' => 'Existierenden Eintrag bearbeiten:', -'dnsforward entries' => 'Aktuelle EintrÀge:', +'dnsforward edit an entry' => 'Existierenden Eintrag bearbeiten', +'dnsforward entries' => 'Aktuelle EintrÀge', 'dnsforward forward_server' => 'DNS-Server', 'dnsforward zone' => 'Zone', 'do not log this port list' => 'Verwerfe diese Port-Liste kurz bevor sie protokolliert werden (reduziert ProtokollgröÃe)', @@ -738,6 +752,7 @@ 'donation-text' => '<strong>IPFire</strong> wird von Freiwilligen in ihrer Freizeit betrieben und auch betreut. Um dieses Projekt am Laufen zu halten, entstehen uns natÃŒrlich auch Kosten. Wenn Sie uns unterstÃŒtzen wollen, wÃŒrden wir uns ÃŒber eine kleine Spende sehr freuen.', 'dos charset' => 'DOS Charset', 'down and up speed' => 'Geben Sie bitte hier ihre Download- bzw. Upload-Geschwindigkeit ein <br /> und klicken Sie danach auf <i>Speichern</i>.', +'downlink' => 'Downlink', 'downlink speed' => 'Downlink-Geschwindigkeit (kBit/sek)', 'downlink std class' => 'Downloadstandardklasse', 'download' => 'herunterladen', @@ -748,13 +763,19 @@ 'download pkcs12 file' => 'PKCS12-Datei herunterladen', 'download root certificate' => 'Root-Zertifikat herunterladen', 'dpd action' => 'Aktion fÃŒr Dead Peer Detection', +'dpd delay' => 'Verzögerung', +'dpd timeout' => 'ZeitÃŒberschreitung', 'driver' => 'Treiber', -'drop input' => 'Verworfene Input-Pakete loggen', +'drop action' => 'Standardverhalten der (Forward) Firewall in Modus "Blocked"', +'drop action1' => 'Standardverhalten der (Outgoing) Firewall in Modus "Blocked"', +'drop action2' => 'Standardverhalten der (Input) Firewall', +'drop forward' => 'Verworfene (Forward) Firewall-Pakete loggen', +'drop input' => 'Verworfene Input Pakete loggen', 'drop newnotsyn' => 'Verworfene New Not Syn Pakete loggen', -'drop output' => 'Verworfene Output-Pakete loggen', -'drop portscan' => 'Verworfene Portscan-Pakete loggen', -'drop proxy' => 'Alle Pakete verwerfen, die nicht direkt an den Proxy gerichtet sind', -'drop samba' => 'Alle Microsoft-Pakete verwerfen, Ports 135,137,138,139,445,1025', +'drop outgoing' => 'Verworfene (Outgoing) Firewall-Pakete loggen', +'drop portscan' => 'Verworfene Portscan Pakete loggen', +'drop proxy' => 'Alle Pakete verwerfen die nicht direkt an den Proxy gerichtet sind', +'drop samba' => 'Alle Microsoft Pakete verwerfen, Ports 135,137,138,139,445,1025', 'drop wirelessforward' => 'Verworfene Wireless Forward Pakete loggen', 'drop wirelessinput' => 'Verworfene Wireless Input Pakete loggen', 'dst port' => 'Ziel-Port', @@ -796,9 +817,12 @@ 'enabledtitle' => 'Aktiviert', 'encapsulation' => 'Encapsulation', 'encrypted' => 'VerschlÃŒsselt', +'encryption' => 'VerschlÃŒsselung:', 'end address' => 'Endadresse:', 'enter ack class' => 'Legen Sie hier die ACK-Klasse fest <br /> und klicken Sie danach auf <i>Speichern</i>.', 'enter data' => 'Geben Sie die Daten ein <br /> und klicken Sie danach auf <i>Speichern</i>.', +'entropy' => 'Entropie', +'entropy graphs' => 'Entropiegraphen', 'err bk 1' => 'Fehler beim Erzeugen des Archivs', 'err bk 10 password' => 'Fehler beim Datensicherungs-Passwort', 'err bk 2 key' => 'Fehler beim Erzeugen der SchlÃŒsseldatei', @@ -811,7 +835,7 @@ 'err rs 8 untar' => 'Fehler beim un-tar-en des Archivs', 'error config' => 'Kann /var/ipfire/ovpn/config/ZERINA.ovpn nicht öffnen!', 'error external access' => 'Kann /var/ipfire/xtaccess/config nicht öffnen (external acccess could not be granted)!', -'error messages' => 'Fehlermeldungen:', +'error messages' => 'Fehlermeldungen', 'esp encryption' => 'ESP VerschlÃŒsselung:', 'esp grouptype' => 'ESP Gruppentyp:', 'esp integrity' => 'ESP IntegritÀt:', @@ -835,7 +859,7 @@ 'extrahd' => 'ExtraHD', 'extrahd because there is already a device mounted' => ' mounten, weil bereits ein GerÀt gemountet ist', 'extrahd cant umount' => 'Konnte', -'extrahd detected drives' => 'gefundene Laufwerke', +'extrahd detected drives' => 'Gefundene Laufwerke', 'extrahd install or load driver' => 'Wenn Ihre Festplatte nicht angezeigt wird, mÃŒssen Sie zuerst den Treiber laden oder ggf. auch nachinstallieren. Wenn diese jedoch angezeigt wird, aber keine Partitionen zu sehen sind, mÃŒssen diese erst angelegt werden.', 'extrahd maybe the device is in use' => 'nicht mounten. Vielleicht wird das GerÀt bereits verwendet', 'extrahd to' => 'nicht nach', @@ -876,14 +900,18 @@ 'firewall logs' => 'Firewall-Logdateien', 'firewall logs ip' => 'Fw-Logdiagramme (IP)', 'firewall logs port' => 'Fw-Logdiagramme (Port)', +'firewall rules' => 'Firewallregeln', 'firewallhits' => 'Firewalltreffer', 'firmware' => 'Firmware', 'firmware upload' => 'Hochladen der Firmware/Treiber', +'first' => 'Erste', 'fixed ip lease added' => 'Feste IP-Zuordnung hinzugefÃŒgt', 'fixed ip lease modified' => 'Feste IP-Zuordnung geÀndert', 'fixed ip lease removed' => 'Feste IP-Zuordnung gelöscht', +'flag' => 'Flagge', 'force update' => 'Aktualisierung erzwingen', 'force user' => 'Standardbenutzer fÃŒr das UNIX Dateisystem', +'forward firewall' => 'Firewall', 'forwarding rule added' => 'Weiterleitungsregel hinzugefÃŒgt. Starte Weiterleitung neu', 'forwarding rule removed' => 'Weiterleitungsregel entfernt. Starte Weiterleitung neu', 'forwarding rule updated' => 'Weiterleitungsregel aktualisiert; starte Weiterleitung neu', @@ -901,7 +929,181 @@ 'from email user' => 'Von Email Benutzer', 'from warn email bad' => 'Von Email Adresse ist nicht gÃŒltig', 'fw blue' => 'Firewall-Optionen fÃŒr das Blaue Interface', +'fw default drop' => 'Firewall Policy', 'fw logging' => 'Firewall-Logging', +'fw settings' => 'Firewall-Einstellungen', +'fw settings color' => 'Farben in Regeltabelle anzeigen', +'fw settings dropdown' => 'Alle Netzwerke auf Regelerstellungsseite anzeigen', +'fw settings remark' => 'Anmerkungen in Regeltabelle anzeigen', +'fw settings ruletable' => 'Leere Regeltabellen anzeigen', +'fwdfw ACCEPT' => 'Akzeptieren (ACCEPT)', +'fwdfw DROP' => 'Verwerfen (DROP)', +'fwdfw MODE1' => 'Alle Pakete verwerfen', +'fwdfw MODE2' => 'Alle Pakete annehmen', +'fwdfw REJECT' => 'Verweigern (REJECT)', +'fwdfw action' => 'Aktion', +'fwdfw additional' => 'Weitere Einstellungen', +'fwdfw addrule' => 'Regel hinzufÃŒgen/Àndern:', +'fwdfw all icmp' => 'Alle ICMP-Typen', +'fwdfw change' => 'Aktualisieren', +'fwdfw copy' => 'Kopieren', +'fwdfw delete' => 'Löschen', +'fwdfw dnat' => 'Destination-NAT (Port-Weiterleitung)', +'fwdfw dnat error' => 'FÃŒr Destination-NAT muss ein einzelner Host als Ziel ausgewÀhlt werden. Gruppen oder Netzwerke sind nicht erlaubt', +'fwdfw dnat extport' => 'Bei Source-NAT-Regeln darf der externe Port nicht gesetzt sein.', +'fwdfw dnat nochoice' => 'Bitte wÀhlen Sie Source-NAT oder Destination-NAT im NAT-Bereich aus.', +'fwdfw dnat porterr' => 'FÃŒr NAT-Regeln muss ein einzelner Port oder Portbereich angegeben werden.', +'fwdfw dnat porterr2' => 'Externer Port (NAT) darf nur angegeben werden, wenn ein Ziel-Port definiert ist.', +'fwdfw edit' => 'Bearbeiten', +'fwdfw err nosrc' => 'Keine Quelle ausgewÀhlt', +'fwdfw err nosrcip' => 'Bitte Quell-IP-Adresse angeben', +'fwdfw err notgt' => 'Kein Ziel ausgewÀhlt', +'fwdfw err notgtip' => 'Bitte Ziel-IP-Adresse angeben', +'fwdfw err prot_port' => 'Bei dem gewÀhlten Protokoll sind Quell- und Zielport nicht erlaubt', +'fwdfw err prot_port1' => 'Bei Nutzung von Quell- oder Zielport muss als Protokoll TCP oder UDP gewÀhlt werden.', +'fwdfw err remark' => 'Die Bemerkung enthÀlt ungÃŒltige Zeichen', +'fwdfw err ruleexists' => 'Eine identische Regel existiert bereits', +'fwdfw err same' => 'Quelle und Ziel sind identisch', +'fwdfw err samesub' => 'Quell- und Ziel-IP-Adresse befinden sich im selben Subnetz', +'fwdfw err src_addr' => 'Quell-MAC/IP-Adresse ungÃŒltig', +'fwdfw err tgt_addr' => 'UngÃŒltige Ziel-IP-Adresse', +'fwdfw err tgt_grp' => 'Die Ziel-Dienstgruppe ist leer', +'fwdfw err tgt_mac' => 'MAC-Adressen können nicht als Ziel defininert werden', +'fwdfw err tgt_port' => 'UngÃŒltiger Zielport', +'fwdfw err time' => 'Es muss mindestens ein Tag ausgewÀhlt werden', +'fwdfw external port nat' => 'Externer Port (NAT)', +'fwdfw final_rule' => 'Letzte Regel: ', +'fwdfw from' => 'Von:', +'fwdfw hint ip1' => 'Die zuletzt erzeugte Regel mag eventuell niemals zutreffen, da sich Quelle und Ziel ÃŒberlappen.', +'fwdfw hint ip2' => 'Bitte ÃŒberprÃŒfen Sie, ob diese Regel Sinn macht: ', +'fwdfw hint mac' => 'Sie nutzen MAC-Adressen in der Zielgruppe. Diese werden bei der Regelerstellung ÃŒbersprungen.', +'fwdfw iface' => 'Interface', +'fwdfw ipsec network' => 'IPsec-Netzwerke:', +'fwdfw log' => 'Log', +'fwdfw log rule' => 'Logging aktivieren', +'fwdfw man port' => 'Port(s):', +'fwdfw menu' => 'Firewall', +'fwdfw movedown' => 'Herunter', +'fwdfw moveup' => 'Herauf', +'fwdfw natport used' => 'Der eingegebene Port wird bereits von einer anderen DNAT-Regel benutzt.', +'fwdfw newrule' => 'Neue Regel erstellen', +'fwdfw p2p txt' => 'P2P-Netzwerke erlauben/verbieten.', +'fwdfw pol allow' => 'Zugelassen', +'fwdfw pol block' => 'Blockiert', +'fwdfw pol text' => 'Firewall-Standardverhalten fÃŒr Verbindungen aus lokalen Netzwerken: Alle Verbindungen können entweder zugelassen oder geblockt werden, wenn keine Ausnahmeregel zutrifft. "Blockiert" trennt ebenfalls die Kommunikation zwischen den lokalen Netzwerken.', +'fwdfw pol text1' => 'Firewall-Standardverhalten fÃŒr von der Firewall selbst initiierte Verbindungen.', +'fwdfw pol title' => 'Standardverhalten der Firewall', +'fwdfw prot41' => 'IPv6 Encapsulation (Protokoll 41)', +'fwdfw prot41 short' => 'IPv6 Encap', +'fwdfw red' => 'ROT', +'fwdfw reread' => 'Ãnderungen ÃŒbernehmen', +'fwdfw rule action' => 'Regelaktion:', +'fwdfw rule activate' => 'Regel aktivieren', +'fwdfw rulepos' => 'Regelposition', +'fwdfw rules' => 'Regeln', +'fwdfw snat' => 'Source-NAT', +'fwdfw source' => 'Quelle', +'fwdfw sourceip' => 'Quelladresse (IP/MAC-Adresse oder Netzwerk):', +'fwdfw std network' => 'Standard Netzwerke:', +'fwdfw target' => 'Ziel', +'fwdfw targetip' => 'Zieladresse (IP-Adresse oder Netzwerk):', +'fwdfw till' => 'Bis:', +'fwdfw time' => 'Zeitrahmen', +'fwdfw timeframe' => 'Zeitrahmen hinzufÃŒgen', +'fwdfw toggle' => 'Aktivieren oder deaktivieren', +'fwdfw togglelog' => 'Log aktivieren oder deaktivieren', +'fwdfw use nat' => 'Network Address Translation (NAT) benutzen', +'fwdfw use srcport' => 'Quellport:', +'fwdfw use srv' => 'Zielport:', +'fwdfw useless rule' => 'Diese Regel ist nicht sinnvoll.', +'fwdfw warn1' => 'Dies kann dazu fÃŒhren, dass Firewallregeln auf Netze angewendet werden, fÃŒr die sie nicht gedacht sind.', +'fwdfw wd_fri' => 'Fr', +'fwdfw wd_mon' => 'Mo', +'fwdfw wd_sat' => 'Sa', +'fwdfw wd_sun' => 'So', +'fwdfw wd_thu' => 'Do', +'fwdfw wd_tue' => 'Di', +'fwdfw wd_wed' => 'Mi', +'fwdfw xt access' => 'Input', +'fwhost addgrp' => 'Neue Gruppe hinzufÃŒgen', +'fwhost addgrpname' => 'Gruppenname:', +'fwhost addhost' => 'Neuen Host hinzufÃŒgen', +'fwhost addnet' => 'Neues Netzwerk hinzufÃŒgen', +'fwhost addservice' => 'Neuen Dienst hinzufÃŒgen', +'fwhost addservicegrp' => 'Neue Dienstgruppe hinzufÃŒgen', +'fwhost any' => 'Alle', +'fwhost attention' => 'ACHTUNG', +'fwhost back' => 'ZurÃŒck', +'fwhost blue' => 'Blau', +'fwhost ccdhost' => 'OpenVPN-Clients:', +'fwhost ccdnet' => 'OpenVPN-Netzwerke:', +'fwhost change' => 'Ãndern', +'fwhost changeremark' => 'Es wurde nur die Bemerkung angepasst.', +'fwhost cust addr' => 'Hosts', +'fwhost cust grp' => 'Gruppen', +'fwhost cust net' => 'Netzwerke', +'fwhost cust service' => 'Dienste', +'fwhost cust srvgrp' => 'Dienstgruppen', +'fwhost deleted' => 'Gelöscht', +'fwhost empty' => 'Keine Regeln definiert', +'fwhost err addr' => 'IP-Adresse oder Subnetzmaske ungÃŒltig', +'fwhost err addrgrp' => 'Bitte Gruppennamen angeben', +'fwhost err empty' => 'Bitte alle Felder ausfÃŒllen', +'fwhost err emptytable' => 'Keine EintrÀge in Gruppe', +'fwhost err groupempty' => 'Die gewÀhlte Gruppe ist leer', +'fwhost err grpexist' => 'Eine Gruppe mit diesem Namen existiert bereits', +'fwhost err hostexist' => 'Ein Host mit diesem Namen existiert bereits', +'fwhost err hostorip' => 'Name oder IP-Adresse ungÃŒltig', +'fwhost err ip' => 'IP-Adresse ungÃŒltig', +'fwhost err ipcheck' => 'Diese IP-Adresse wird bereits verwendet', +'fwhost err ipmac' => 'UngÃŒltige IP/MAC-Addresse', +'fwhost err ipwithsub' => 'Bitte nur eine IP-Adresse (ohne Subnetzmaske) eingeben', +'fwhost err isccdhost' => 'Dieser Name wird bereits fÃŒr einen OpenVPN-Host verwendet', +'fwhost err isccdiphost' => 'Diese IP-Adresse wird bereits fÃŒr einen OpenVPN-Host verwendet', +'fwhost err isccdipnet' => 'Diese IP-Adresse wird bereits fÃŒr einen OpenVPN-Netzwerk verwendet', +'fwhost err isccdnet' => 'Dieser Name wird bereits fÃŒr einen OpenVPN-Netzwerk verwendet', +'fwhost err isingrp' => 'Dieser Eintrag existiert bereits in der Gruppe', +'fwhost err mac' => 'UngÃŒltige MAC-Adresse', +'fwhost err maxservicetcp' => 'Die maximale Anzahl von 15 TCP-Diensten in einer Gruppe wurde erreicht (Portranges zÀhlen zweifach)', +'fwhost err maxserviceudp' => 'Die maximale Anzahl von 15 UDP-Diensten in einer Gruppe wurde erreicht (Portranges zÀhlen zweifach)', +'fwhost err name' => 'UngÃŒltiger Name. Erlaubte Zeichen: Klein- und GroÃbuchstaben, Leerzeichen und Bindestrich.', +'fwhost err name1' => 'Der Name muss ausgefÃŒllt sein', +'fwhost err net' => 'Netzwerk/IP-Adresse existiert bereits', +'fwhost err netexist' => 'Ein Netz mit diesem Namen existiert bereits', +'fwhost err partofnet' => 'Dieses Netzwerk ist ein Subnetz eines bereits existierenden Netzwerks', +'fwhost err port' => 'Port muss gefÃŒllt sein', +'fwhost err remark' => 'UngÃŒltige Bemerkung. Erlaubte Zeichen: Klein- und GroÃbuchstaben, Bindestrich, Unterstrich, Runde Klammern, Semikolon, Punkt.', +'fwhost err srv exists' => 'Ein Service mit diesem Namen existiert bereits', +'fwhost err srvexist' => 'Dieser Dienst ist bereits in der Gruppe', +'fwhost err sub32' => 'Bitte einen einzelnen Host hinzufÃŒgen, keine Netzwerke', +'fwhost green' => 'GrÃŒn', +'fwhost hint' => 'Hinweis', +'fwhost hosts' => 'Firewall-Hosts', +'fwhost icmptype' => 'ICMP-Typ:', +'fwhost ip_mac' => 'IP/MAC-Adresse', +'fwhost ipadr' => 'IP-Adresse:', +'fwhost ipsec host' => 'IPsec-Clients:', +'fwhost ipsec net' => 'IPsec-Netzwerke:', +'fwhost menu' => 'Firewallgruppen', +'fwhost netaddress' => 'Netzwerkadresse', +'fwhost newgrp' => 'Netzwerk-/Hostgruppen', +'fwhost newhost' => 'Hosts', +'fwhost newnet' => 'Netzwerke', +'fwhost newservice' => 'Dienst', +'fwhost newservicegrp' => 'Dienstgruppen', +'fwhost orange' => 'Orange', +'fwhost ovpn_n2n' => 'OpenVPN Net-to-Net', +'fwhost port' => 'Port(s)', +'fwhost prot' => 'Protokoll', +'fwhost reread' => 'Die Firewallregeln mÃŒssen neu eingelesen werden.', +'fwhost reset' => 'Abbrechen', +'fwhost services' => 'Dienste', +'fwhost srv_name' => 'Dienstname', +'fwhost stdnet' => 'Standard-Netzwerke:', +'fwhost type' => 'Typ', +'fwhost used' => 'Genutzt', +'fwhost welcome' => 'Hier können einzelne Hosts, Netzwerke oder Dienste zu Gruppen zusammengefasst werden, was das erstellen von Firewallregeln einfacher und schneller macht.', +'fwhost wo subnet' => '(Ohne Subnetz)', 'gateway' => 'Gateway', 'gateway ip' => 'Gateway-IP', 'gen static key' => 'Statischen SchlÃŒssel erzeugen', @@ -925,6 +1127,7 @@ 'graph per' => 'pro', 'green' => 'GRÃN', 'green interface' => 'GrÃŒnes Interface', +'grouptype' => 'Gruppentyp:', 'guaranteed bandwith' => 'Garantierte Bandbreite', 'guardian alertfile' => 'Alertfile', 'guardian configuration' => 'Guardian Konfiguration', @@ -938,8 +1141,9 @@ 'hangup' => 'Trennen', 'hangup string' => 'Auflegen:', 'harddisk temperature' => 'Festplattentemperatur', -'harddisk temperature graphs' => 'HDD-Temperatur-Diagramme', +'harddisk temperature graphs' => 'HDD-Diagramme', 'hardware graphs' => 'Hardware-Diagramme', +'hardware support' => 'Hardware-UnterstÃŒtzung', 'hdd temperature in' => 'Festplattentemperatur in', 'help' => 'Hilfe', 'high' => 'Hoch', @@ -1001,6 +1205,7 @@ 'installed' => 'Installiert', 'installed updates' => 'Installierte Updates:', 'instant update' => 'Sofortiges Update', +'integrity' => 'IntegritÀt:', 'interface' => 'Schnittstelle', 'interfaces' => 'Interfaces', 'internet' => 'INTERNET', @@ -1028,6 +1233,8 @@ 'invalid input for dhcp dns' => 'UngÃŒltige Eingabe fÃŒr DHCP DNS', 'invalid input for dhcp domain' => 'UngÃŒltige Eingabe fÃŒr DHCP Domain', 'invalid input for dhcp wins' => 'UngÃŒltige Eingabe fÃŒr DHCP WINS', +'invalid input for dpd delay' => 'UngÃŒltige Eingabe fÃŒr DPD-Verzögerung', +'invalid input for dpd timeout' => 'UngÃŒltige Eingabe fÃŒr DPD-ZeitÃŒberschreitung', 'invalid input for e-mail address' => 'UngÃŒltige Eingabe fÃŒr die E-mail Adresse', 'invalid input for esp keylife' => 'UngÃŒltige Eingabe fÃŒr ESP SchlÃŒssel-Lebensdauer', 'invalid input for hostname' => 'UngÃŒltige Eingabe fÃŒr Hostname', @@ -1084,10 +1291,13 @@ 'ipfire side is invalid' => 'IPFire Seite ist ungÃŒltig.', 'ipfires hostname' => 'IPFire's Hostname', 'ipinfo' => 'IP-Info', +'ipsec' => 'IPsec', +'ipsec network' => 'IPsec-Netzwerke', +'ipsec no connections' => 'Keine aktiven IPsec Verbindungen', 'iptable rules' => 'IPTable-Regeln', 'iptmangles' => 'IPTable Mangles', 'iptnats' => 'IPTable Network Address Translation', -'ipts' => 'IPTables', +'ipts' => 'iptables', 'isdn' => 'ISDN', 'isdn settings' => 'ZusÀtzliche ISDN-Einstellungen:', 'isdn1' => 'Einfaches ISDN', @@ -1106,12 +1316,14 @@ 'lan' => 'LAN', 'lang' => 'de', 'languagepurpose' => 'WÀhlen Sie eine Sprache, in der IPFire angezeigt werden soll:', +'last' => 'Letzte', 'last activity' => 'Letzte AktivitÀt', 'lateprompting' => 'Late prompting', 'lease expires' => 'Zuordnung verfÀllt', 'least preferred' => 'weniger prÀferiert', 'legend' => 'Legende', 'length' => 'LÀnge', +'lifetime' => 'Lebensdauer:', 'line' => 'Leitung', 'linkq' => 'Antwortzeit', 'load printer' => 'Load Printer', @@ -1124,7 +1336,7 @@ 'local vpn hostname/ip' => 'Lokaler VPN Hostname/IP', 'localkey' => 'Localkey', 'localkeyfile' => 'Localkeyfile', -'log' => 'Protokoll:', +'log' => 'Protokoll', 'log enabled' => 'Log aktiviert', 'log level' => 'Log Level', 'log lines per page' => 'Zeilen pro Seite', @@ -1167,8 +1379,9 @@ 'mac address recon' => 'Es wird neu Verbunden!', 'mac address saved' => 'Erfolgreich gespeichert!', 'mac address saved txt' => 'Die MAC-Adresse wurde erfolgreich gespeichert. Ãnderungen werden jedoch erst nach einem Neustart oder einer Wiederverbindung ÃŒbernommen.', -'mac address title' => 'Medium Access Control Adresse', +'mac address title' => 'MAC Adresse zuweisen', 'mac desc' => 'Sie können an dieser Stelle die MAC-Adresse von red0 Àndern. Die Adresse muss in hexadezimal (0-9,a-f) eingegeben werden, eine gÃŒltige Eingaben ist z.B. 00-01-02-0e-b8-d6 oder 00:01:02:0e:b8:d6.', +'mac filter' => 'MAC-Filter', 'mac new' => 'Neue MAC-Adresse:', 'mac1 new' => 'Neue MAC-Adresse 1 (vdsl-inet):', 'mac2 new' => 'Neue MAC-Adresse 2 (vdsl-iptv):', @@ -1195,6 +1408,7 @@ 'max size' => 'Max. ObjektgröÃe (kB):', 'max throughput' => 'Maximaler Durchsatz', 'maximal' => 'Maximal', +'maximum' => 'Maximum', 'maximum retries' => 'Maximale Wiederholversuche:', 'may' => 'Mai', 'mbmon display' => 'Anzeigen', @@ -1220,6 +1434,7 @@ 'min delay' => 'Minimale Verzögerung', 'min size' => 'Min. ObjektgröÃe (kB):', 'minimal' => 'Minimal', +'minimum' => 'Minimum', 'minute' => 'Minute', 'minutes' => 'Minuten', 'misc-options' => 'Sonstige Optionen', @@ -1285,7 +1500,7 @@ 'network red' => 'Netzwerk (extern)', 'network removed' => 'Benutzerdefiniertes Netzwerk entfernt', 'network status information' => 'Netzwerk-Statusinformationen', -'network time' => 'Benutze NTP-Server:', +'network time' => 'Benutze NTP-Server', 'network time from' => 'Uhrzeit von einem Netzwerk Zeitserver ermitteln', 'network traffic graphs' => 'Diagramme zur Netzwerkauslastung', 'network traffic graphs external' => 'Net-Traffic-Diagramme (extern)', @@ -1293,7 +1508,7 @@ 'network traffic graphs others' => 'Netzwerk (sonstige)', 'network updated' => 'Benutzerdefiniertes Netzwerk aktualisiert', 'networks settings' => 'Firewall - Netzwerkeinstellungen', -'new optionsfw later' => 'Ihre Modifikation(en) wird (werden) beim nÀchsten Neustart aktiv werden', +'new optionsfw later' => 'Einige Einstellungen werden erst nach einem Neustart aktiv', 'new optionsfw must boot' => 'Sie mÃŒssen Ihren IPFire neu starten', 'newer' => 'Neuer', 'next' => 'NÀchster', @@ -1304,6 +1519,7 @@ 'no eciadsl synch.bin file' => 'Keine ECI ADSL Datei synch.bin vorhanden. Bitte hochladen.', 'no filter pass' => 'Legen Sie hier die Standardklassen fest durch die nicht-gefilterte Pakete gehen.', 'no fritzdsl driver' => 'Kein Fritz!DSL-Treiber vorhanden. Bitte hochladen.', +'no hardware random number generator' => 'Dieses System hat keine Entropiequelle.', 'no information available' => 'Keine Informationen verfÃŒgbar.', 'no log selected' => 'kein Log ausgewÀhlt', 'no modem selected' => 'Kein Modem ausgewÀhlt', @@ -1317,9 +1533,10 @@ 'not present' => '<B>Nicht</B> vorhanden', 'not running' => 'nicht gestartet', 'not set' => 'nicht gesetzt', +'notice' => 'Hinweis', 'november' => 'November', 'ntp common settings' => 'Allgemeine Einstellungen', -'ntp configuration' => 'NTP-Konfiguration', +'ntp configuration' => 'Zeitserver-Konfiguration', 'ntp must be enabled to have clients' => 'Um Clients annehmen zu können, muà NTP vorher aktiviert sein.', 'ntp server' => 'NTP-Server', 'ntp sync' => 'Synchronisation', @@ -1349,6 +1566,7 @@ 'openvpn fragment allowed with udp' => '"fragment" kann nur in Kombination mit dem UDP-Protokoll genutzt werden.', 'openvpn log' => 'OpenVPN Log', 'openvpn mssfix allowed with udp' => '"mssfix" kann nur in Kombination mit dem UDP-Protokoll genutzt werden.', +'openvpn network' => 'OpenVPN-Netzwerke', 'openvpn prefix local subnet' => 'Die Prefix-Notation wird nicht unterstÃŒtzt. Bitte geben Sie eine Subnetzmaske beim lokalen Subnetz ein wie z.B. 255.255.255.0.', 'openvpn prefix openvpn subnet' => 'Die Prefix-Notation wird nicht unterstÃŒtzt. Bitte geben Sie eine Subnetzmaske beim OpenVPN-Subnetz ein wie z.B. 255.255.255.0.', 'openvpn prefix remote subnet' => 'Die Prefix-Notation wird nicht unterstÃŒtzt. Bitte geben Sie eine Subnetzmaske beim entfernten Subnetz ein wie z.B. 255.255.255.0.', @@ -1357,7 +1575,7 @@ 'optional at cmd' => 'zusÀtzlicher Modembefehl', 'optional data' => '3. Optionale Einstellungen', 'options' => 'Optionen', -'options fw' => 'Firewall Optionen', +'options fw' => 'Firewall-Optionen', 'optionsfw portlist hint' => 'Die Liste der Ports muss durch ein Komma getrennt werden (z.B. 137,138). Sie können maximal bis zu 15 Ports pro Protokoll angeben.', 'optionsfw warning' => 'VerÀndern dieser Optionen bedingt einen Neustart der Firewall', 'or' => 'oder', @@ -1388,8 +1606,8 @@ 'outgoing firewall mode1' => 'In diesem Modus werden nur Verbindungen nach den oben definierten Regeln zugelassen.', 'outgoing firewall mode2' => 'In diesem Modus werden sÀmtliche Verbindungen erlaubt, bis auf die oben definierten Block-Regeln.', 'outgoing firewall outgoing firewall reserved groupname' => 'Bitte einen anderen Gruppennamen verwenden, dieser ist ein reserviertes Wort.', -'outgoing firewall p2p allow' => 'P2P-Protokoll ist erlaubt!', -'outgoing firewall p2p deny' => 'P2P-Protokoll ist gesperrt!', +'outgoing firewall p2p allow' => 'P2P-Protokollnutzung ist erlaubt', +'outgoing firewall p2p deny' => 'P2P-Protokollnutzung ist gesperrt', 'outgoing firewall p2p description 1' => 'Das Symbol', 'outgoing firewall p2p description 2' => 'bedeutet, dass das P2P-Protokoll erlaubt wird oder', 'outgoing firewall p2p description 3' => 'das P2P-Protokoll gesperrt wird.', @@ -1406,6 +1624,7 @@ 'ovpn errmsg green already pushed' => 'Route fÃŒr grÃŒnes Netzwerk wird immer gesetzt', 'ovpn errmsg invalid ip or mask' => 'UngÃŒltige Netzwerk-Adresse oder Subnetzmaske', 'ovpn log' => 'OVPN-Log', +'ovpn mgmt in root range' => 'Ein Port von 1024 oder höher ist erforderlich.', 'ovpn mtu-disc' => 'Path MTU Discovery', 'ovpn mtu-disc and mtu not 1500' => 'Path MTU Discovery benötigt eine MTU von 1500.', 'ovpn mtu-disc maybe' => 'Optional', @@ -1413,9 +1632,11 @@ 'ovpn mtu-disc off' => 'Deaktiviert', 'ovpn mtu-disc with mssfix or fragment' => 'Path MTU Discovery kann nicht gemeinsam mit mssfix oder fragment verwendet werden.', 'ovpn mtu-disc yes' => 'Forciert', +'ovpn no connections' => 'Keine aktiven OpenVPN Verbindungen', 'ovpn on blue' => 'OpenVPN auf BLAU', 'ovpn on orange' => 'OpenVPN auf ORANGE', 'ovpn on red' => 'OpenVPN auf ROT', +'ovpn port in root range' => 'Ein Port von 1024 oder höher ist erforderlich.', 'ovpn routes push' => 'Routen (eine pro Zeile) z.b. 192.168.10.0/255.255.255.0 192.168.20.0/24', 'ovpn routes push options' => 'Route push Optionen', 'ovpn server status' => 'OpenVPN-Server-Status', @@ -1438,6 +1659,8 @@ 'ovpn_processprioVH' => 'Sehr Hoch', 'ovpnstatus log' => 'OVPN-Status-Log', 'ovpnsys log' => 'OVPN-System-Log', +'p2p block' => 'P2P-Netzwerke', +'p2p block save notice' => 'Bitte lesen Sie die Firewallregeln neu ein, damit die Ãnderungen aktiv werden.', 'package failed to install' => 'Programmpaket konnte nicht installiert werden.', 'pagerefresh' => 'Seite wird aktualisiert. Bitte warten.', 'pakfire accept all' => 'Möchten Sie der Installation aller Pakete zustimmen?', @@ -1524,7 +1747,7 @@ 'proxy admin password' => 'Cache Administrator Passwort', 'proxy cachemgr' => 'Cachemanager aktivieren', 'proxy errmsg filedescriptors' => 'UngÃŒltiger Anzahl Filedescriptoren', -'proxy filedescriptors' => 'Anzahl Fildescriptoren', +'proxy filedescriptors' => 'Anzahl Filedescriptoren', 'proxy log viewer' => 'Ansicht Proxy-Log', 'proxy logs' => 'Proxy-Logdateien', 'proxy no proxy extend' => 'oder geben Sie eine Liste von Zielen an, welche nicht ÃŒber den Proxy angesprochen werden sollen', @@ -1557,6 +1780,7 @@ 'reconnect' => 'Neu Verbinden', 'reconnection' => 'Wiederverbindung', 'red' => 'Internet', +'red1' => 'ROT', 'references' => 'Referenzen', 'refresh' => 'Aktualisieren', 'refresh index page while connected' => 'Aktualisere index.cgi Seite wÀhrend der Verbindung', @@ -1603,7 +1827,7 @@ 'root user password' => 'Root Passwort', 'route subnet is invalid' => 'Additional push route subnet is invalid', 'router ip' => 'IP-Adresse des Routers:', -'routing table entries' => 'EintrÀge der Routing-Tabelle:', +'routing table entries' => 'EintrÀge der Routing-Tabelle', 'rsvd dst port overlap' => 'Dieser Zielportbereich ÃŒberlappt mit einem Port, der fÃŒr die ausschlieÃliche Benutzung durch IPFire reserviert ist:', 'rsvd src port overlap' => 'Dieser Quellportbereich ÃŒberlappt mit einem Port, der fÃŒr die ausschlieÃliche Benutzung durch IPFire reserviert ist:', 'rules already up to date' => 'Regeln sind schon aktuell', @@ -1684,6 +1908,7 @@ 'smbstop' => 'Samba Dienste beenden', 'smtphost' => 'Smtp Host', 'smtpport' => 'Smtp Port', +'snat new source ip address' => 'Neue Quell-IP-Adresse', 'snort hits' => 'Gesamtanzahl der aktivierten Intrusion-Regeln fÃŒr', 'snort working' => 'Snort fÃŒhrt gerade eine Aufgabe aus... Bitte warten Sie, bis diese erfolgreich beendet wurde.', 'socket options' => 'Socket Options', @@ -1711,6 +1936,7 @@ 'srcprt range overlaps' => 'Quell-Port-Bereich ÃŒberlappt mit einem bereits definierten Port.', 'srcprt within existing' => 'Quell-Port befindet sich innnerhalb eines bereits definierten Port-Bereichs.', 'ssdmz pinholes' => 'DMZ-Schlupflöcher', +'ssh' => 'SSH', 'ssh access' => 'SSH-Zugriff', 'ssh access tip' => 'IPFire SSH lÀuft auf dem nicht-standard Port 222!', 'ssh fingerprint' => 'Fingerabdruck', @@ -1759,10 +1985,13 @@ 'successfully refreshed updates list' => 'Update-Liste erfolgreich aktualisiert.', 'summaries kept' => 'Zusammenfassungen aufheben fÃŒr', 'sunday' => 'Sonntag', +'support donation' => 'UnterstÃŒtzen Sie das IPFire-Projekt mit Ihrer Spende', 'swap' => 'Swap', 'swap usage per' => 'Nutzung von Auslagerungsspeicher (Swap) pro', 'system' => 'System', 'system graphs' => 'System-Diagramme', +'system has hwrng' => 'Dieses System hat einen Hardware-Zufallszahlengenerator.', +'system has rdrand' => 'Dieses System unterstÃŒtzt Intel(R) RDRAND.', 'system information' => 'Systeminformationen', 'system log viewer' => 'Betrachter der System-Logdateien', 'system logs' => 'System-Logdateien', @@ -1873,7 +2102,7 @@ 'trafficorange' => 'DMZ', 'trafficout' => 'Ausgehend', 'trafficred' => 'Internet', -'traffics' => 'TrafficÃŒbersicht:', +'traffics' => 'TrafficÃŒbersicht', 'trafficsum' => 'Total', 'trafficto' => 'Nach', 'transfer limits' => 'TransferbeschrÀnkungen', @@ -1981,6 +2210,7 @@ 'updxlrtr weekly' => 'wöchentlich', 'updxlrtr year' => 'einem Jahr', 'upgrade' => 'upgrade', +'uplink' => 'Uplink', 'uplink speed' => 'Uplink-Geschwindigkeit (kBit/sek)', 'uplink std class' => 'Uploadstandardklasse', 'upload' => 'Hochladen', @@ -2107,7 +2337,7 @@ 'urlfilter log summary' => 'Gesamtanzahl der URL-Filter-Treffer fÃŒr', 'urlfilter log viewer' => 'Ansicht URL-Filter-Log', 'urlfilter logs' => 'URL-Filter-Logdateien', -'urlfilter maintenance' => 'URL-Filter-Wartung', +'urlfilter maintenance' => 'URL-Filter Wartung', 'urlfilter manage local file repository' => 'Lokale Dateiablage verwalten', 'urlfilter manage repository' => 'Ablage verwalten', 'urlfilter minutes' => 'Minuten', @@ -2236,7 +2466,7 @@ 'vpn aggrmode' => 'IKE Aggressive Mode zugelassen. Wenn möglich, vermeiden (preshared SchlÃŒssel wird im Klartext ÃŒbertragen)!', 'vpn altname syntax' => 'Der Subjekt Alternativ Name ist eine durch Komma getrennte Liste von Email, DNS, URI, RID und IP Objekten. <br />Email: eine Email Adresse. Syntax Email: 'copy' benutzt die Email Adresse aus dem Zertifikatfeld. <br />DNS: ein gÃŒltiger Domain Name.<br />URI: eine gÃŒltige URI.<br />RID: Registriertes Objekt Identifikation.<br />IP: eine IP Adresse.<br />Bitte beachten: der Zeichensatz ist eingeschrÀnkt und die GroÃ-/Kleinschreibung ist entscheidend.<br />Beispiel:<br /><b>email:</b>info@ipfire.org<b>,email:</b>copy<b>,DNS:</b>www.ipfire.org<b>,IP:</b>127.0.0.1<b>,URI:</b>http://url/nach/irgendwo', 'vpn auth-dn' => 'Peer wird identifiziert durch entweder ein IPV4_ADDR, FQDN, USER_FQDN oder DER_ASN1_DN string in Remote ID Feld', -'vpn configuration main' => 'VPN-Konfiguration - Ãbersicht', +'vpn configuration main' => 'VPN-Konfiguration', 'vpn delayed start' => 'Verzögerung bevor VPN gestartet wird (Sekunden)', 'vpn delayed start help' => 'Falls notwendig, kann diese Verzögerung dazu verwendet werden, um Dynamic-DNS-Updates ordnungsgemÀà anzuwenden. 60 ist ein gÀngiger Wert, wenn ROT (RED) eine dynamische IP Adresse ist.', 'vpn incompatible use of defaultroute' => 'Hostname=%defaultroute nicht zulÀssig', @@ -2306,6 +2536,7 @@ 'wlan client wpa mode ccmp ccmp' => 'CCMP-CCMP', 'wlan client wpa mode ccmp tkip' => 'CCMP-TKIP', 'wlan client wpa mode tkip tkip' => 'TKIP-TKIP', +'wlan clients' => 'WLAN-Clients', 'wlanap access point' => 'Access Point', 'wlanap channel' => 'Kanal', 'wlanap country' => 'LÀndercode', @@ -2314,7 +2545,7 @@ 'wlanap encryption' => 'VerschlÃŒsselung', 'wlanap informations' => 'Informationen', 'wlanap interface' => 'Interface ÃŒbernehmen', -'wlanap invalid wpa' => 'UngÃŒltige LÀnge in WPA-Passphrase. Muss zwischen 8 und 63 ASCII-Zeichen lang sein.', +'wlanap invalid wpa' => 'UngÃŒltige LÀnge in WPA-Passphrase. Muss zwischen 8 und 63 Zeichen lang sein.', 'wlanap link dhcp' => 'Wireless Lan DHCP-Einstellungen', 'wlanap link wireless' => 'Wireless Lan Clients freischalten', 'wlanap no interface' => 'AusgewÀhltes Interface ist keine WLAN-Karte!', diff --git a/langs/de/install/lang_de.c b/langs/de/install/lang_de.c index 85db867..8c93586 100644 --- a/langs/de/install/lang_de.c +++ b/langs/de/install/lang_de.c @@ -591,4 +591,10 @@ char *de_tr[] = { "Beim Herunterladen ist ein Fehler aufgetreten!", /* TR_DHCP_FORCE_MTU */ "DHCP MTU setzen:", +/* TR_IDENTIFY */ +"Identifizieren", +/* TR_IDENTIFY_SHOULD_BLINK */ +"Die Leds dieses Netzwerkports sollten jetzt blinken ...", +/* TR_IDENTIFY_NOT_SUPPORTED */ +"Dieser Netzwerkport untestÃŒtzt die Funktion leider nicht.", }; diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl index d6ccfaf..42dea0e 100644 --- a/langs/en/cgi-bin/en.pl +++ b/langs/en/cgi-bin/en.pl @@ -33,6 +33,8 @@ 'Level7 Rule' => 'Level7-Rule', 'Level7 rule' => 'Level7 rule', 'Local VPN IP' => 'Internal Network (GREEN):', +'MB read' => 'MB read', +'MB written' => 'MB written', 'MTU' => 'MTU size:', 'Number of IPs for the pie chart' => 'Number of IPs for the pie chart', 'Number of Ports for the pie chart' => 'Number of ports for the pie chart', @@ -73,12 +75,12 @@ 'activate user' => 'Activate user', 'active' => 'Active', 'add' => 'Add', -'add a host' => 'Add a host:', +'add a host' => 'Add a host', 'add a new rule' => 'Add a new rule:', 'add cron' => 'add cronjob', 'add device' => 'Add device', 'add network' => 'Add network', -'add new alias' => 'Add a new alias:', +'add new alias' => 'Add a new alias', 'add new lease' => 'Add a new fixed lease', 'add new ovpn' => 'OpenVPN Settings:', 'add printer' => 'Add printer', @@ -89,6 +91,7 @@ 'add xtaccess' => 'Add External Access', 'add-route' => 'Additional push route', 'added from dhcp lease list' => 'Added from DHCP lease list', +'addons' => 'Addons', 'admin user password has been changed' => 'Admin user password has been changed.', 'admin users' => 'User with superuser rights', 'administrator user password' => 'Admin user password:', @@ -359,7 +362,7 @@ 'april' => 'April', 'archive not exist' => 'Configuration archive does not exist', 'are you sure' => 'Are you sure?', -'arp table entries' => 'ARP Table Entries:', +'arp table entries' => 'ARP Table Entries', 'artist' => 'Artist', 'attemps' => 'Attempts', 'attention' => 'ATTENTION', @@ -416,6 +419,7 @@ 'behind a proxy' => 'Behind a proxy:', 'bewan adsl pci st' => 'TO BE REMOVED', 'bewan adsl usb' => 'TO BE REMOVED', +'bit' => 'Bit', 'bitrate' => 'Bitrate', 'bleeding rules' => 'Bleeding Edge Snort Rules', 'blue' => 'BLUE', @@ -497,8 +501,10 @@ 'ccd err invalidnet' => 'Invalid IP address. Format: 192.168.0.0/24 or 192.168.0.0/255.255.255.0.', 'ccd err iroute' => 'Network address for route is invalid.', 'ccd err irouteexist' => 'This route is already in use.', -'ccd err isipsecnet' => 'The given subnet address already used by an IPsec network.', -'ccd err isovpnnet' => 'Subnet address already in use for OpenVPN Server.', +'ccd err isipsecnet' => 'The given subnet address is already used by an IPsec network.', +'ccd err isipsecrw' => 'The given subnet address is already used by the IPsec rw network.', +'ccd err isovpnn2n' => 'The subnet address is already in use for an OpenVPN net-to-net connection.', +'ccd err isovpnnet' => 'The subnet address is already in use for the OpenVPN server.', 'ccd err issubnet' => 'Subnet address already in use.', 'ccd err name' => 'Please choose a name.', 'ccd err nameexist' => 'Name already exists.', @@ -561,8 +567,8 @@ 'connection' => 'Connection', 'connection closed' => 'Not connected...', 'connection debugging' => 'Connection debugging', -'connection status and controlc' => 'Connection status and control:', -'connection tracking' => 'IPTables Connection Tracking', +'connection status and controlc' => 'Connection status and control', +'connection tracking' => 'iptables Connection Tracking', 'connection type' => 'Connection Type', 'connection type is invalid' => 'Connection type is invalid.', 'connections' => 'Connections', @@ -583,7 +589,11 @@ 'could not open installed updates file' => 'Could not open installed updates file', 'could not open update information file' => 'Could not open update information file. The update file is corrupt.', 'could not retrieve common name from certificate' => 'Could not retrieve common name from certificate.', +'count' => 'Count', +'countries' => 'Countries', 'country' => 'Country', +'country codes and flags' => 'Country Codes and Flags:', +'countrycode' => 'Code', 'cpu frequency per' => 'CPU frequency per', 'cpu idle usage' => 'Idle CPU Usage', 'cpu interrupt usage' => 'Interrupt CPU Usage', @@ -601,13 +611,13 @@ 'crl' => 'Certificate Revocation List', 'cron server' => 'CRON Server', 'current' => 'Current', -'current aliases' => 'Current aliases:', +'current aliases' => 'Current aliases', 'current class' => 'Current class', 'current devices' => 'Current devices', 'current dhcp leases on blue' => 'Current DHCP leases on BLUE', 'current dynamic leases' => 'Current dynamic leases', 'current fixed leases' => 'Current fixed leases', -'current hosts' => 'Current hosts:', +'current hosts' => 'Current hosts', 'current media' => 'Current media', 'current ovpn' => 'Active OVPN-Connection:', 'current playlist' => 'Current Playlist', @@ -635,10 +645,12 @@ 'ddns noip prefix' => 'To use no-ip in group mode, prefix hostname with <b>%</b>', 'deactivate' => 'deactivate', 'deactivate user' => 'deactivate user', +'dead peer detection' => 'Dead Peer Detection', 'debugme' => 'Not yet implemented', 'december' => 'December', 'deep scan directories' => 'Scan recursive', 'def lease time' => 'Default Lease Time', +'default ip' => 'Default IP address', 'default lease time' => 'Default lease time (mins):', 'default networks' => 'Default networks', 'default renewal time' => 'Default Renewal Time', @@ -662,6 +674,7 @@ 'destination port numbers' => 'Destination port must be a valid port number or port range.', 'destination port overlaps' => 'Destination port range overlaps an existing port range.', 'detail level' => 'Detail level', +'details' => 'Details', 'device' => 'Device', 'devices on blue' => 'Devices on BLUE', 'dhcp advopt add' => 'Add a DHCP option', @@ -720,6 +733,7 @@ 'dmz pinhole rule added' => 'DMZ pinhole rule added; restarting DMZ pinhole', 'dmz pinhole rule removed' => 'DMZ pinhole rule removed; restarting DMZ pinhole', 'dmzpinholes for same net not necessary' => 'DMZ Pinholes are not necessary for same net. Select different source or destination net.', +'dnat address' => 'Firewall Interface', 'dns address deleted' => 'Successfully deleted!', 'dns address deleted txt' => 'The DNS-Server addresses have been successfully deleted.<br />You have to reboot or reconnect that the changes have effect!', 'dns address done' => 'The DNS-Server address settings are going to be saved.', @@ -738,12 +752,13 @@ 'dns saved' => 'Successfully saved!', 'dns saved txt' => 'The two entered DNS server addresses have been saved successfully.<br />You have to reboot or reconnect that the changes have effect!', 'dns server' => 'DNS Server', +'dns servers' => 'DNS Servers', 'dns title' => 'Domain Name System', -'dnsforward' => 'DNS forwarding', -'dnsforward add a new entry' => 'Add a new entry:', +'dnsforward' => 'DNS Forwarding', +'dnsforward add a new entry' => 'Add a new entry', 'dnsforward configuration' => 'DNS forward configuration', -'dnsforward edit an entry' => 'Edit an existing entry:', -'dnsforward entries' => 'Current entries:', +'dnsforward edit an entry' => 'Edit an existing entry', +'dnsforward entries' => 'Current entries', 'dnsforward forward_server' => 'Nameserver', 'dnsforward zone' => 'Zone', 'do not log this port list' => 'Drop this port list just before they are logged (reduces log size)', @@ -762,6 +777,7 @@ 'done' => 'Do it', 'dos charset' => 'DOS Charset', 'down and up speed' => 'Enter your Down- and Uplink-Speed <br /> and then press <i>Save</i>.', +'downlink' => 'Downlink', 'downlink speed' => 'Downlink speed (kbit/sec)', 'downlink std class' => 'downlink standard class', 'download' => 'download', @@ -771,11 +787,17 @@ 'download new ruleset' => 'Download new ruleset', 'download pkcs12 file' => 'Download PKCS12 file', 'download root certificate' => 'Download root certificate', -'dpd action' => 'Dead Peer Detection action', +'dpd action' => 'Action', +'dpd delay' => 'Delay', +'dpd timeout' => 'Timeout', 'driver' => 'Driver', +'drop action' => 'Default behaviour of (forward) firewall in mode "Blocked"', +'drop action1' => 'Default behaviour of (outgoing) firewall in mode "Blocked"', +'drop action2' => 'Default behaviour of (input) firewall', +'drop forward' => 'Log dropped forward packets', 'drop input' => 'Log dropped input packets', 'drop newnotsyn' => 'Log dropped new not syn packets', -'drop output' => 'Log dropped output packets', +'drop outgoing' => 'Log dropped outgoing packets', 'drop portscan' => 'Log dropped portscan packets', 'drop proxy' => 'Drop all packets not addressed to proxy', 'drop samba' => 'Drop all Microsoft ports 135,137,138,139,445,1025', @@ -821,9 +843,12 @@ 'enabledtitle' => 'Enabled', 'encapsulation' => 'Encapsulation', 'encrypted' => 'Encrypted', +'encryption' => 'Encryption:', 'end address' => 'End address:', 'enter ack class' => 'Enter the ACK- Class <br /> and then press <i>Save</i>.', 'enter data' => 'Enter your settings <br /> and then press <i>Save</i>.', +'entropy' => 'Entropy', +'entropy graphs' => 'Entropy Graphs', 'err bk 1' => 'Error creating archive', 'err bk 10 password' => 'Error with backup password', 'err bk 2 key' => 'Error creating key file', @@ -836,7 +861,7 @@ 'err rs 8 untar' => 'Error untarring archive', 'error config' => 'Could not open /var/ipfire/ovpn/config/ZERINA.ovpn !', 'error external access' => 'Could not open /var/ipfire/xtaccess/config (external acccess could not be granted)!', -'error messages' => 'Error messages:', +'error messages' => 'Error messages', 'esp encryption' => 'ESP Encryption:', 'esp grouptype' => 'ESP Grouptype:', 'esp integrity' => 'ESP Integrity:', @@ -901,14 +926,18 @@ 'firewall logs' => 'Firewall Logs', 'firewall logs ip' => 'Fw-Loggraphs (IP)', 'firewall logs port' => 'Fw-Loggraphs (Port)', +'firewall rules' => 'Firewall Rules', 'firewallhits' => 'firewallhits', 'firmware' => 'Firmware', 'firmware upload' => 'Upload Firmware/Drivers', +'first' => 'First', 'fixed ip lease added' => 'Fixed IP lease added', 'fixed ip lease modified' => 'Fixed IP lease modified', 'fixed ip lease removed' => 'Fixed IP lease removed', +'flag' => 'Flag', 'force update' => 'Force update', 'force user' => 'force all new file to user', +'forward firewall' => 'Firewall', 'forwarding rule added' => 'Forwarding rule added; restarting forwarder', 'forwarding rule removed' => 'Forwarding rule removed; restarting forwarder', 'forwarding rule updated' => 'Forwarding rule updated; restarting forwarder', @@ -926,7 +955,181 @@ 'from email user' => 'From e-mail user', 'from warn email bad' => 'From e-mail address is not valid', 'fw blue' => 'Firewall options for BLUE interface', +'fw default drop' => 'Firewall policy', 'fw logging' => 'Firewall logging', +'fw settings' => 'Firewall settings', +'fw settings color' => 'Show colors in ruletable', +'fw settings dropdown' => 'Show all networks on rulecreation site', +'fw settings remark' => 'Show remarks in ruletable', +'fw settings ruletable' => 'Show empty ruletables', +'fwdfw ACCEPT' => 'ACCEPT', +'fwdfw DROP' => 'DROP', +'fwdfw MODE1' => 'Drop all packets', +'fwdfw MODE2' => 'Accept all packets', +'fwdfw REJECT' => 'REJECT', +'fwdfw action' => 'Action', +'fwdfw additional' => 'Additional settings', +'fwdfw addrule' => 'Add/Edit rule:', +'fwdfw all icmp' => 'All ICMP types', +'fwdfw change' => 'Update', +'fwdfw copy' => 'Copy', +'fwdfw delete' => 'Delete', +'fwdfw dnat' => 'Destination NAT (Port forwarding)', +'fwdfw dnat error' => 'You have to select a single host for DNAT. Groups or networks are not allowed.', +'fwdfw dnat extport' => 'The external port has to be empty when using Source NAT rules.', +'fwdfw dnat nochoice' => 'Please pick Source NAT or Destination NAT from the NAT section.', +'fwdfw dnat porterr' => 'You have to select a single port or portrange (tcp/udp) for NAT', +'fwdfw dnat porterr2' => 'Cannot use external port (NAT) when no destination port is defined.', +'fwdfw edit' => 'Edit', +'fwdfw err nosrc' => 'No source selected.', +'fwdfw err nosrcip' => 'Please provide a source IP address.', +'fwdfw err notgt' => 'No destination selected.', +'fwdfw err notgtip' => 'Please provide a destination IP address.', +'fwdfw err prot_port' => 'Source- or targetport are not allowed with selected protocol', +'fwdfw err prot_port1' => 'When using Source- or targetport you have to select TCP or UDP for protocol', +'fwdfw err remark' => 'Invalid characters in remark.', +'fwdfw err ruleexists' => 'This rule already exists.', +'fwdfw err same' => 'Source and destination are identical.', +'fwdfw err samesub' => 'Source and destination IP addresses are from the same subnet.', +'fwdfw err src_addr' => 'Invalid source MAC/IP address.', +'fwdfw err tgt_addr' => 'Invalid destination IP address.', +'fwdfw err tgt_grp' => 'The destination service group is empty', +'fwdfw err tgt_mac' => 'A MAC addresses cannot be used as destination.', +'fwdfw err tgt_port' => 'Invalid destination port.', +'fwdfw err time' => 'You have to select at least one day.', +'fwdfw external port nat' => 'External port (NAT)', +'fwdfw final_rule' => 'Last rule: ', +'fwdfw from' => 'From:', +'fwdfw hint ip1' => 'The last generated rule may never match, because source and destination subnets may overlap.', +'fwdfw hint ip2' => 'Please double-check if this rule makes sense: ', +'fwdfw hint mac' => 'The destination group contains MAC addresses, which will be skipped during rule creation.', +'fwdfw iface' => 'Interface', +'fwdfw ipsec network' => 'IPsec networks:', +'fwdfw log' => 'Log', +'fwdfw log rule' => 'Log rule', +'fwdfw man port' => 'Port(s):', +'fwdfw menu' => 'Firewall', +'fwdfw movedown' => 'Move down', +'fwdfw moveup' => 'Move up', +'fwdfw natport used' => 'The given port for NAPT is already in use by an other DNAT rule.', +'fwdfw newrule' => 'New rule', +'fwdfw p2p txt' => 'Grant/deny access to P2P networks.', +'fwdfw pol allow' => 'Allowed', +'fwdfw pol block' => 'Blocked', +'fwdfw pol text' => 'Sets the default firewall behaviour for connections from local networks. You may either allow all new connections or block them by default. Connections between the local networks are also blocked in the latter mode.', +'fwdfw pol text1' => 'Sets the default firewall behaviour for connections initiated by the firewall itself. Attention! You may lock yourself out.', +'fwdfw pol title' => 'Default firewall behaviour', +'fwdfw prot41' => 'IPv6 Encapsulation (Protocol 41)', +'fwdfw prot41 short' => 'IPv6 Encap', +'fwdfw red' => 'RED', +'fwdfw reread' => 'Apply changes', +'fwdfw rule action' => 'Rule action:', +'fwdfw rule activate' => 'Activate rule', +'fwdfw rulepos' => 'Rule position', +'fwdfw rules' => 'Rules', +'fwdfw snat' => 'Source NAT', +'fwdfw source' => 'Source', +'fwdfw sourceip' => 'Source address (MAC/IP address or network):', +'fwdfw std network' => 'Standard networks:', +'fwdfw target' => 'Destination', +'fwdfw targetip' => 'Destination address (IP address or network):', +'fwdfw till' => 'Until:', +'fwdfw time' => 'Time Constraints', +'fwdfw timeframe' => 'Use time constraints', +'fwdfw toggle' => 'Activate or deactivate', +'fwdfw togglelog' => 'Activate or deactivate logging', +'fwdfw use nat' => 'Use Network Address Translation (NAT)', +'fwdfw use srcport' => 'Source port:', +'fwdfw use srv' => 'Destination port:', +'fwdfw useless rule' => 'This rule is useless.', +'fwdfw warn1' => 'This might lead to firewallrules which are applied to networks for which they are not intended to be.', +'fwdfw wd_fri' => 'Fri', +'fwdfw wd_mon' => 'Mon', +'fwdfw wd_sat' => 'Sat', +'fwdfw wd_sun' => 'Sun', +'fwdfw wd_thu' => 'Thu', +'fwdfw wd_tue' => 'Tue', +'fwdfw wd_wed' => 'Wed', +'fwdfw xt access' => 'Input', +'fwhost addgrp' => 'Add new network/host group', +'fwhost addgrpname' => 'Group name:', +'fwhost addhost' => 'Add new host', +'fwhost addnet' => 'Add new network', +'fwhost addservice' => 'Add service', +'fwhost addservicegrp' => 'Add new service group', +'fwhost any' => 'Any', +'fwhost attention' => 'ATTENTION', +'fwhost back' => 'Back', +'fwhost blue' => 'Blue', +'fwhost ccdhost' => 'OpenVPN clients:', +'fwhost ccdnet' => 'OpenVPN networks:', +'fwhost change' => 'Modify', +'fwhost changeremark' => 'You modified just the remark', +'fwhost cust addr' => 'Hosts', +'fwhost cust grp' => 'Network/Host Groups', +'fwhost cust net' => 'Networks', +'fwhost cust service' => 'Services', +'fwhost cust srvgrp' => 'Service Groups', +'fwhost deleted' => 'Deleted', +'fwhost empty' => 'No rules defined', +'fwhost err addr' => 'Invalid IP address or subnet', +'fwhost err addrgrp' => 'Please provide a group name', +'fwhost err empty' => 'Please fill in all input fields', +'fwhost err emptytable' => 'No entries in this group', +'fwhost err groupempty' => 'The selected group is empty', +'fwhost err grpexist' => 'A group with the same name already exists', +'fwhost err hostexist' => 'A host with the same name already exists', +'fwhost err hostorip' => 'Invalid name or IP address', +'fwhost err ip' => 'IP address invalid', +'fwhost err ipcheck' => 'This IP address is already in use', +'fwhost err ipmac' => 'IP/MAC address invalid', +'fwhost err ipwithsub' => 'Please provide only an IP address (without subnet mask)', +'fwhost err isccdhost' => 'This name is already used by an OpenVPN client connection', +'fwhost err isccdiphost' => 'This IP address is already used by an OpenVPN client connection', +'fwhost err isccdipnet' => 'This IP address is already used by an OpenVPN network connection', +'fwhost err isccdnet' => 'This name is already used by an OpenVPN network', +'fwhost err isingrp' => 'This entry already exists in the group', +'fwhost err mac' => 'Invalid MAC address', +'fwhost err maxservicetcp' => 'The maximal number of 15 TCP services has been reached in this group (port ranges count twice)', +'fwhost err maxserviceudp' => 'The maximal number of 15 UDP services has been reached in this group (port ranges count twice)', +'fwhost err name' => 'Invalid name. Allowed characters: Upper- and lowercase letters, digits, space and dash.', +'fwhost err name1' => 'Empty name.', +'fwhost err net' => 'Network/IP address already exists', +'fwhost err netexist' => 'A network with the same name already exists', +'fwhost err partofnet' => 'The network is a subnet of an already existing network.', +'fwhost err port' => 'Port is empty', +'fwhost err remark' => 'Invalid remark. Allowed characters: Upper- and lowercase letters, digits, space, dash, braces, semicolon, pipe and dot.', +'fwhost err srv exists' => 'A service with the same name already exists', +'fwhost err srvexist' => 'This service already exists in the group', +'fwhost err sub32' => 'Please add a single host, not a network.', +'fwhost green' => 'Green', +'fwhost hint' => 'Note', +'fwhost hosts' => 'Firewall Hosts', +'fwhost icmptype' => 'ICMP type:', +'fwhost ip_mac' => 'IP/MAC address', +'fwhost ipadr' => 'IP address:', +'fwhost ipsec host' => 'IPsec clients:', +'fwhost ipsec net' => 'IPsec networks:', +'fwhost menu' => 'Firewall Groups', +'fwhost netaddress' => 'Network address', +'fwhost newgrp' => 'Network/Host Groups', +'fwhost newhost' => 'Hosts', +'fwhost newnet' => 'Networks', +'fwhost newservice' => 'Services', +'fwhost newservicegrp' => 'Service Groups', +'fwhost orange' => 'Orange', +'fwhost ovpn_n2n' => 'OpenVPN Net-to-Net', +'fwhost port' => 'Port(s)', +'fwhost prot' => 'Protocol', +'fwhost reread' => 'Firewall rules need to be updated.', +'fwhost reset' => 'Cancel', +'fwhost services' => 'Services:', +'fwhost srv_name' => 'Service name', +'fwhost stdnet' => 'Standard networks:', +'fwhost type' => 'Type', +'fwhost used' => 'Used', +'fwhost welcome' => 'Over here, you can group single hosts, networks and services together, which will creating new rules more easy and faster.', +'fwhost wo subnet' => '(without subnet)', 'g.dtm' => 'TO BE REMOVED', 'g.lite' => 'TO BE REMOVED', 'gateway' => 'Gateway', @@ -952,6 +1155,7 @@ 'graph per' => 'per', 'green' => 'GREEN', 'green interface' => 'Green Interface', +'grouptype' => 'Grouptype:', 'guaranteed bandwith' => 'Guaranteed bandwith', 'guardian alertfile' => 'Alertfile', 'guardian configuration' => 'Guardian Configuration', @@ -964,9 +1168,10 @@ 'gz with key' => 'Only an encrypted archive can be restored on this machine.', 'hangup' => 'Disconnect', 'hangup string' => 'Hangup:', -'harddisk temperature' => 'Harddisk temperature', -'harddisk temperature graphs' => 'hdd temperature graphs', +'harddisk temperature' => 'Harddisk Temperature', +'harddisk temperature graphs' => 'HDD Graphs', 'hardware graphs' => 'Hardware Graphs', +'hardware support' => 'Hardware Support', 'hdd temperature in' => 'Harddisk temperature in', 'help' => 'Help', 'high' => 'High', @@ -986,7 +1191,7 @@ 'hostname not set' => 'Hostname not set.', 'hosts config added' => 'Hosts config added', 'hosts config changed' => 'Hosts config changed', -'hour' => 'hour', +'hour' => 'Hour', 'hour-graph' => 'Hour', 'hours' => 'hours', 'hours2' => 'Hours', @@ -1029,6 +1234,7 @@ 'installed' => 'Installed', 'installed updates' => 'Installed updates:', 'instant update' => 'Instant Update', +'integrity' => 'Integrity:', 'interface' => 'Interface', 'interfaces' => 'Interfaces', 'internet' => 'INTERNET', @@ -1056,6 +1262,8 @@ 'invalid input for dhcp dns' => 'Invalid input for DHCP DNS', 'invalid input for dhcp domain' => 'Invalid input for DHCP domain', 'invalid input for dhcp wins' => 'Invalid input for DHCP WINS', +'invalid input for dpd delay' => 'Invalid input for DPD delay', +'invalid input for dpd timeout' => 'Invalid input for DPD timeout', 'invalid input for e-mail address' => 'Invalid input for e-mail address.', 'invalid input for esp keylife' => 'Invalid input for ESP Keylife', 'invalid input for hostname' => 'Invalid input for hostname.', @@ -1112,10 +1320,13 @@ 'ipfire side is invalid' => 'IPFire side is invalid.', 'ipfires hostname' => 'IPFire's Hostname', 'ipinfo' => 'IP info', +'ipsec' => 'IPsec', +'ipsec network' => 'IPsec network', +'ipsec no connections' => 'No active IPsec connections', 'iptable rules' => 'IPTable rules', 'iptmangles' => 'IPTable Mangles', 'iptnats' => 'IPTable Network Address Translation', -'ipts' => 'IPTables', +'ipts' => 'iptables', 'isdn' => 'ISDN', 'isdn settings' => 'Additional ISDN settings:', 'isdn1' => 'Single ISDN', @@ -1134,12 +1345,14 @@ 'lan' => 'LAN', 'lang' => 'en', 'languagepurpose' => 'Select the language you wish IPFire to display in:', +'last' => 'Last', 'last activity' => 'Last Activity', 'lateprompting' => 'Lateprompting', 'lease expires' => 'Lease expires', 'least preferred' => 'least preferred', 'legend' => 'Legend', 'length' => 'Length', +'lifetime' => 'Lifetime:', 'line' => 'Line', 'linkq' => 'Link Quality', 'load printer' => 'Load Printer', @@ -1152,7 +1365,7 @@ 'local vpn hostname/ip' => 'Local VPN Hostname/IP', 'localkey' => 'Localkey', 'localkeyfile' => 'Localkeyfile', -'log' => 'Log:', +'log' => 'Log', 'log enabled' => 'Log Enabled', 'log level' => 'Log Level', 'log lines per page' => 'Lines per page', @@ -1191,12 +1404,13 @@ 'mac address error not valid' => 'MAC addresse not valid!', 'mac address header' => 'MAC address on red0', 'mac address in use' => 'MAC address already in use', -'mac address menu' => 'Assign MAC-address', +'mac address menu' => 'Assign MAC-Address', 'mac address recon' => 'Trying to reconnect!', 'mac address saved' => 'Successfully saved!', 'mac address saved txt' => 'The MAC address has been successfully saved, but changes will only take effect after reboot or reconnection.', -'mac address title' => 'Medium Access Control Address', +'mac address title' => 'Assign MAC Address', 'mac desc' => 'Here you are able to change the MAC address on red0. The address must be entered in hexadecimal (0-9,a-f), a valid entry is <br />e.g. 00-01-02-0e-b8-d6 or 00:01:02:0e:b8:d6.', +'mac filter' => 'MAC filter', 'mac new' => 'new MAC address:', 'mac1 new' => 'new MAC address 1 (vdsl-inet):', 'mac2 new' => 'new MAC address 2 (vdsl-iptv):', @@ -1223,6 +1437,7 @@ 'max size' => 'Max object size (KB):', 'max throughput' => 'Maximum throughput', 'maximal' => 'Maximal', +'maximum' => 'Maximum', 'maximum retries' => 'Maximum retries:', 'may' => 'May', 'mbmon display' => 'Display', @@ -1237,10 +1452,10 @@ 'mbmon volt' => 'Voltage', 'meaning' => 'meaning', 'media' => 'Media', -'media information' => 'media information', +'media information' => 'Media information', 'medium' => 'Medium', 'memory' => 'Memory', -'memory information' => 'memory information', +'memory information' => 'Memory information', 'memory usage per' => 'Memory Usage per', 'messages logging' => 'Logsettings for /var/log/messages', 'method' => 'Method:', @@ -1248,6 +1463,7 @@ 'min delay' => 'Minimum delay', 'min size' => 'Min object size (KB):', 'minimal' => 'Minimal', +'minimum' => 'Minimum', 'minute' => 'Minute', 'minutes' => 'Minutes', 'misc-options' => 'Miscellaneous options', @@ -1313,7 +1529,7 @@ 'network red' => 'Network (external)', 'network removed' => 'Custom network removed', 'network status information' => 'Network Status Information', -'network time' => 'Use a network time server:', +'network time' => 'Use a network time server', 'network time from' => 'Obtain time from a network time server', 'network traffic graphs' => 'Network traffic graphs', 'network traffic graphs external' => 'Net-Traffic graphs (external)', @@ -1321,7 +1537,7 @@ 'network traffic graphs others' => 'Network (others)', 'network updated' => 'Custom Network updated', 'networks settings' => 'Firewall - Network settings', -'new optionsfw later' => 'Your modification(s) will be active on next restart', +'new optionsfw later' => 'Some options need a reboot to take effect', 'new optionsfw must boot' => 'You must reboot your IPFire', 'newer' => 'Newer', 'next' => 'next', @@ -1332,6 +1548,7 @@ 'no eciadsl synch.bin file' => 'No ECI ADSL synch.bin file. Please upload.', 'no filter pass' => 'Enter the standard class for non-filtered packets.', 'no fritzdsl driver' => 'No Fritz!DSL driver. Please upload.', +'no hardware random number generator' => 'This system has no source for entropy.', 'no information available' => 'No information available.', 'no log selected' => 'No log selected', 'no modem selected' => 'No modem selected', @@ -1346,9 +1563,10 @@ 'not running' => 'not running', 'not set' => 'not set', 'notes' => 'Notes', +'notice' => 'Notice', 'november' => 'November', 'ntp common settings' => 'Common settings', -'ntp configuration' => 'NTP configuration', +'ntp configuration' => 'NTP Configuration', 'ntp must be enabled to have clients' => 'NTP must be enabled to have clients.', 'ntp server' => 'NTP Server', 'ntp sync' => 'Synchronization', @@ -1378,6 +1596,7 @@ 'openvpn fragment allowed with udp' => 'Using fragment is only allowed when using the UDP protocol.', 'openvpn log' => 'OpenVPN Log', 'openvpn mssfix allowed with udp' => 'Using "mssfix" is only allowed when using the UDP protocol.', +'openvpn network' => 'OpenVPN networks', 'openvpn prefix local subnet' => 'Using the prefix notation is not supported for the local subnet. Please enter a subnet mask like 255.255.255.0.', 'openvpn prefix openvpn subnet' => 'Using the prefix notation is not supported for the OpenVPN subnet. Please enter a subnet mask like 255.255.255.0.', 'openvpn prefix remote subnet' => 'Using the prefix notation is not supported for the remote subnet. Please enter a subnet mask like 255.255.255.0.', @@ -1417,8 +1636,8 @@ 'outgoing firewall mode1' => 'Using this mode, only connections based on the defined rules are allowed.', 'outgoing firewall mode2' => 'Using this mode, all connections are allowed despited off the defined ones.', 'outgoing firewall outgoing firewall reserved groupname' => 'Please use another group name, this name is reserved.', -'outgoing firewall p2p allow' => 'p2p protocol is allowed', -'outgoing firewall p2p deny' => 'p2p protocol is denied', +'outgoing firewall p2p allow' => 'Using the P2P protocol is allowed', +'outgoing firewall p2p deny' => 'Using the P2P protocol is forbidden', 'outgoing firewall p2p description 1' => 'The button', 'outgoing firewall p2p description 2' => 'means that the p2p protocol is allowed or', 'outgoing firewall p2p description 3' => 'that the p2p protocol is denied.', @@ -1435,6 +1654,7 @@ 'ovpn errmsg green already pushed' => 'Route for green network is always set', 'ovpn errmsg invalid ip or mask' => 'Invalid network-address or subnetmask', 'ovpn log' => 'OVPN-Log', +'ovpn mgmt in root range' => 'A port number of 1024 or higher is required.', 'ovpn mtu-disc' => 'Path MTU Discovery', 'ovpn mtu-disc and mtu not 1500' => 'Path MTU Discovery requires a MTU of 1500.', 'ovpn mtu-disc maybe' => 'Optionally', @@ -1442,9 +1662,11 @@ 'ovpn mtu-disc off' => 'Disabled', 'ovpn mtu-disc with mssfix or fragment' => 'Path MTU Discovery cannot be used with mssfix or fragment.', 'ovpn mtu-disc yes' => 'Forced', +'ovpn no connections' => 'No active OpenVPN connections', 'ovpn on blue' => 'OpenVPN on BLUE', 'ovpn on orange' => 'OpenVPN on ORANGE', 'ovpn on red' => 'OpenVPN on RED', +'ovpn port in root range' => 'A port number of 1024 or higher is required.', 'ovpn routes push' => 'Routes (one per line) e.g. 192.168.10.0/255.255.255.0 192.168.20.0/24', 'ovpn routes push options' => 'Route push options', 'ovpn server status' => 'Current OpenVPN server status:', @@ -1467,6 +1689,8 @@ 'ovpn_processprioVH' => 'Very high', 'ovpnstatus log' => 'OVPN-Status-Log', 'ovpnsys log' => 'OVPN-System-Log', +'p2p block' => 'P2P networks', +'p2p block save notice' => 'Please reload the firewall ruleset in order to apply your changes.', 'package failed to install' => 'Package failed to install.', 'pagerefresh' => 'Page is beeing refreshed, please wait.', 'pakfire accept all' => 'Do you want to install all packages?', @@ -1547,13 +1771,13 @@ 'profile saved' => 'Profile saved: ', 'profiles' => 'Profiles:', 'proto' => 'Proto', -'protocol' => 'Protocol:', +'protocol' => 'Protocol', 'proxy' => 'Proxy', 'proxy access graphs' => 'Proxy access graphs', 'proxy admin password' => 'Cache administrator password', 'proxy cachemgr' => 'Activate cachemanager', 'proxy errmsg filedescriptors' => 'Wrong amount of filedescriptors', -'proxy filedescriptors' => 'Amount of fildescriptors', +'proxy filedescriptors' => 'Amount of filedescriptors', 'proxy log viewer' => 'Proxy log viewer', 'proxy logs' => 'Proxy Logs', 'proxy no proxy extend' => 'or specify a list of not proxied destination', @@ -1588,6 +1812,7 @@ 'reconnect' => 'Reconnect', 'reconnection' => 'Reconnection', 'red' => 'Internet', +'red1' => 'RED', 'references' => 'References', 'refresh' => 'Refresh', 'refresh index page while connected' => 'Refresh index.cgi page while connected', @@ -1634,7 +1859,7 @@ 'root user password' => 'Root password', 'route subnet is invalid' => 'Additional push route subnet is invalid', 'router ip' => 'Router IP address:', -'routing table entries' => 'Routing Table Entries:', +'routing table entries' => 'Routing Table Entries', 'rsvd dst port overlap' => 'Destination Port Range overlaps a port reserved for IPFire:', 'rsvd src port overlap' => 'Source Port Range overlaps a port reserved for IPFire:', 'rules already up to date' => 'Rules already up to date', @@ -1718,6 +1943,7 @@ 'smbstop' => 'Stop samba', 'smtphost' => 'SMTP host', 'smtpport' => 'SMTP port', +'snat new source ip address' => 'New source IP address', 'snort hits' => 'Total of number of Intrusion rules activated for', 'snort working' => 'Snort is working ... Please wait until all operations have completed successfully.', 'socket options' => 'Socket options', @@ -1745,6 +1971,7 @@ 'srcprt range overlaps' => 'Source port range overlaps an already defined port.', 'srcprt within existing' => 'Source port is within an already defined port range.', 'ssdmz pinholes' => 'DMZ Pinholes', +'ssh' => 'SSH', 'ssh access' => 'SSH Access', 'ssh access tip' => 'IPFire SSH is not using default port 222!', 'ssh fingerprint' => 'Fingerprint', @@ -1776,10 +2003,10 @@ 'start ovpn server' => 'Start OpenVPN Server', 'state or province' => 'State or Province', 'static ip' => 'Static IP', -'static routes' => 'Static routes', +'static routes' => 'Static Routes', 'status' => 'Status', 'status information' => 'Status information', -'status ovpn' => '4. OpenVPN Status / Configuration:', +'status ovpn' => 'OpenVPN', 'std classes' => 'Standardclasses', 'stop' => 'Stop', 'stop ovpn server' => 'Stop OpenVPN Server', @@ -1793,11 +2020,14 @@ 'successfully refreshed updates list' => 'Successfully refreshed updates list.', 'summaries kept' => 'Keep summaries for', 'sunday' => 'Sunday', +'support donation' => 'Support the IPFire project with your donation', 'swap' => 'Swap', 'swap usage per' => 'Swap usage per', 'system' => 'System', 'system graphs' => 'System Graphs', -'system information' => 'System information', +'system has hwrng' => 'This system has got a hardware random number generator.', +'system has rdrand' => 'This system has got support for Intel(R) RDRAND.', +'system information' => 'System Information', 'system log viewer' => 'System Log Viewer', 'system logs' => 'System Logs', 'system status information' => 'System Status Information', @@ -1909,7 +2139,7 @@ 'trafficorange' => 'DMZ', 'trafficout' => 'Output', 'trafficred' => 'Internet', -'traffics' => 'Utilization-overview:', +'traffics' => 'Utilization-overview', 'trafficsum' => 'Totals', 'trafficto' => 'To', 'transfer limits' => 'Transfer limits', @@ -2018,6 +2248,7 @@ 'updxlrtr weekly' => 'weekly', 'updxlrtr year' => 'one year', 'upgrade' => 'upgrade', +'uplink' => 'Uplink', 'uplink speed' => 'Uplink speed (kbit/sec)', 'uplink std class' => 'uplink standard class', 'upload' => 'Upload', @@ -2038,7 +2269,7 @@ 'uptime' => 'Uptime', 'uptime and users' => 'Uptime and users:', 'uptime load average' => 'Load average', -'url filter' => 'Content Filter', +'url filter' => 'URL Filter', 'urlfilter access' => 'Access', 'urlfilter activity detection' => 'Activity detection', 'urlfilter add new time constraint rule' => 'Add new time constraint rule', @@ -2274,7 +2505,7 @@ 'vpn aggrmode' => 'IKE aggressive mode allowed. Avoid if possible (preshared key is transmitted in clear text)!', 'vpn altname syntax' => 'SubjectAltName is a comma separated list of e-mail, dns, uri, rid and ip objects.<br />email:an email address. Syntax email:copy takes the email field from the cert to be used.<br />DNS:a valid domain name.<br />URI:any valid uri.<br />RID:registered object identifier.<br />IP:an IP address.<br />Note:charset is limited and case is significant.<br />Example:<br /><b>e-mail:</b>ipfire@foo.org<b>,email:</b>copy<b>,DNS:</b>www.ipfire.org<b>,IP:</b>127.0.0.1<b>,URI:</b>http://url/to/something', 'vpn auth-dn' => 'Peer is identified by either IPV4_ADDR, FQDN, USER_FQDN or DER_ASN1_DN string in remote ID field', -'vpn configuration main' => 'VPN configuration - Main', +'vpn configuration main' => 'VPN Configuration', 'vpn delayed start' => 'Delay before launching VPN (seconds)', 'vpn delayed start help' => 'If required, this delay can be used to allow dynamic DNS updates to propagate properly. 60 is a common value when RED is a dynamic IP.', 'vpn incompatible use of defaultroute' => 'hostname=%defaultroute not allowed', @@ -2344,6 +2575,7 @@ 'wlan client wpa mode ccmp ccmp' => 'CCMP-CCMP', 'wlan client wpa mode ccmp tkip' => 'CCMP-TKIP', 'wlan client wpa mode tkip tkip' => 'TKIP-TKIP', +'wlan clients' => 'Wireless clients', 'wlanap access point' => 'Access Point', 'wlanap channel' => 'Channel', 'wlanap country' => 'Country Code', @@ -2352,7 +2584,7 @@ 'wlanap encryption' => 'Encryption', 'wlanap informations' => 'Informations', 'wlanap interface' => 'Select interface', -'wlanap invalid wpa' => 'Invalid length in WPA Passphrase. Must be between 8 and 63 ascii characters.', +'wlanap invalid wpa' => 'Invalid length in WPA Passphrase. Must be between 8 and 63 characters.', 'wlanap link dhcp' => 'Wireless lan DHCP configuration', 'wlanap link wireless' => 'Activate wireless lan clients', 'wlanap no interface' => 'Selected interface is not a wirless lan card!', diff --git a/langs/en/install/lang_en.c b/langs/en/install/lang_en.c index 87f8d2f..12ac4b5 100644 --- a/langs/en/install/lang_en.c +++ b/langs/en/install/lang_en.c @@ -587,4 +587,10 @@ char *en_tr[] = { "Error while downloading!", /* TR_DHCP_FORCE_MTU */ "Force DHCP mtu:", +/* TR_IDENTIFY */ +"Identify", +/* TR_IDENTIFY_SHOULD_BLINK */ +"Selected port should blink now ...", +/* TR_IDENTIFY_NOT_SUPPORTED */ +"Function is not supported by this port.", }; diff --git a/langs/es/cgi-bin/es.pl b/langs/es/cgi-bin/es.pl index 1c43e33..edb8be0 100644 --- a/langs/es/cgi-bin/es.pl +++ b/langs/es/cgi-bin/es.pl @@ -512,7 +512,7 @@ 'connection closed' => 'No conectadoâŠ', 'connection debugging' => 'Depurado de conexión', 'connection status and controlc' => 'Control y Status de conexión:', -'connection tracking' => 'Rastreo de conexión IPTables', +'connection tracking' => 'Rastreo de conexión iptables', 'connection type' => 'Tipo de conexión', 'connection type is invalid' => 'Tipo de conexión no es válido', 'connections' => 'Conexiones', @@ -1038,8 +1038,8 @@ 'ipinfo' => 'Información IP', 'iptable rules' => 'Reglas de IPTable', 'iptmangles' => 'IPTable Mangles', -'iptnats' => 'IPTables NAT', -'ipts' => 'IPTables', +'iptnats' => 'iptables NAT', +'ipts' => 'iptables', 'isdn' => 'ISDN', 'isdn settings' => 'Configuraciones adicionales ISDN:', 'isdn1' => 'ISDN simple', diff --git a/langs/es/install/lang_es.c b/langs/es/install/lang_es.c index a1808fe..4a08748 100644 --- a/langs/es/install/lang_es.c +++ b/langs/es/install/lang_es.c @@ -583,4 +583,10 @@ char *es_tr[] = { "Error while downloading!", /* TR_DHCP_FORCE_MTU */ "Force DHCP mtu:", +/* TR_IDENTIFY */ +"Identify", +/* TR_IDENTIFY_SHOULD_BLINK */ +"Selected port should blink now ...", +/* TR_IDENTIFY_NOT_SUPPORTED */ +"Function is not supported by this port.", }; diff --git a/langs/fr/cgi-bin/fr.pl b/langs/fr/cgi-bin/fr.pl index e91191d..9f2e785 100644 --- a/langs/fr/cgi-bin/fr.pl +++ b/langs/fr/cgi-bin/fr.pl @@ -514,7 +514,7 @@ 'connection closed' => 'Non connecté...', 'connection debugging' => 'Déboggage de la connexion', 'connection status and controlc' => 'Etat et contrÃŽle de connexion :', -'connection tracking' => 'Surveillance des connexions IPTables', +'connection tracking' => 'Surveillance des connexions iptables', 'connection type' => 'Type de Connexion', 'connection type is invalid' => 'Le type de connexion est non valide.', 'connections' => 'Connexions', @@ -1040,7 +1040,7 @@ 'iptable rules' => 'RÚgles IPTable', 'iptmangles' => 'Mangles IPTable', 'iptnats' => 'Traduction d'adresses réseaux IPTable', -'ipts' => 'IPTables', +'ipts' => 'iptables', 'isdn' => 'ISDN', 'isdn settings' => 'Réglages ISDN supplémentaires :', 'isdn1' => 'ISDN unique', diff --git a/langs/fr/install/lang_fr.c b/langs/fr/install/lang_fr.c index 03fa9be..188e0fd 100644 --- a/langs/fr/install/lang_fr.c +++ b/langs/fr/install/lang_fr.c @@ -583,4 +583,10 @@ char *fr_tr[] = { "Erreur pendant le téléchargement!", /* TR_DHCP_FORCE_MTU */ "Force DHCP mtu:", +/* TR_IDENTIFY */ +"Identify", +/* TR_IDENTIFY_SHOULD_BLINK */ +"Selected port should blink now ...", +/* TR_IDENTIFY_NOT_SUPPORTED */ +"Function is not supported by this port.", }; diff --git a/langs/nl/cgi-bin/nl.pl b/langs/nl/cgi-bin/nl.pl index 427dba6..43d76eb 100644 --- a/langs/nl/cgi-bin/nl.pl +++ b/langs/nl/cgi-bin/nl.pl @@ -553,7 +553,7 @@ 'connection closed' => 'Niet verbonden...', 'connection debugging' => 'Connectie debugging', 'connection status and controlc' => 'Verbindingsstatus en controle:', -'connection tracking' => 'IPTables verbindingen volgen', +'connection tracking' => 'iptables verbindingen volgen', 'connection type' => 'Verbindingstype', 'connection type is invalid' => 'Verbindingstype is ongeldig.', 'connections' => 'Verbindingen', @@ -1099,7 +1099,7 @@ 'iptable rules' => 'IPTable regels', 'iptmangles' => 'IPTable Mangles', 'iptnats' => 'IPTable Network Adrestranslatie', -'ipts' => 'IPTables', +'ipts' => 'iptables', 'isdn' => 'ISDN', 'isdn settings' => 'Extra ISDN instellingen:', 'isdn1' => 'Single ISDN', diff --git a/langs/nl/install/lang_nl.c b/langs/nl/install/lang_nl.c index b9a8ec4..aa0fa2f 100644 --- a/langs/nl/install/lang_nl.c +++ b/langs/nl/install/lang_nl.c @@ -587,4 +587,10 @@ char *nl_tr[] = { "Fout tijdens downloaden!", /* TR_DHCP_FORCE_MTU */ "Forceer DHCP mtu:", +/* TR_IDENTIFY */ +"Identify", +/* TR_IDENTIFY_SHOULD_BLINK */ +"Selected port should blink now ...", +/* TR_IDENTIFY_NOT_SUPPORTED */ +"Function is not supported by this port.", }; diff --git a/langs/pl/cgi-bin/pl.pl b/langs/pl/cgi-bin/pl.pl index 19f68e4..80da6d6 100644 --- a/langs/pl/cgi-bin/pl.pl +++ b/langs/pl/cgi-bin/pl.pl @@ -513,7 +513,7 @@ 'connection closed' => 'Brak poÅÄ czenia...', 'connection debugging' => 'Debugowanie poÅÄ czenia', 'connection status and controlc' => 'Stan i kontrola poÅÄ czenia:', -'connection tracking' => 'Åledzenie poÅÄ czeÅ IPTables', +'connection tracking' => 'Åledzenie poÅÄ czeÅ iptables', 'connection type' => 'Rodzaj poÅÄ czenia', 'connection type is invalid' => 'NieprawidÅowy rodzaj poÅÄ czenia.', 'connections' => 'PoÅÄ czenia', @@ -1048,7 +1048,7 @@ 'iptable rules' => 'ReguÅy IPTable', 'iptmangles' => 'IPTable Mangles', 'iptnats' => 'IPTable Network Address Translation', -'ipts' => 'IPTables', +'ipts' => 'iptables', 'isdn' => 'ISDN', 'isdn settings' => 'Dodatkowe ustawienia ISDN:', 'isdn1' => 'Pojedynczy ISDN', diff --git a/langs/pl/install/lang_pl.c b/langs/pl/install/lang_pl.c index eb428d5..dddf551 100644 --- a/langs/pl/install/lang_pl.c +++ b/langs/pl/install/lang_pl.c @@ -583,4 +583,10 @@ char *pl_tr[] = { "BÅÄ d podczas pobierania!", /* TR_DHCP_FORCE_MTU */ "WymuÅ mtu DHCP:", +/* TR_IDENTIFY */ +"Identify", +/* TR_IDENTIFY_SHOULD_BLINK */ +"Selected port should blink now ...", +/* TR_IDENTIFY_NOT_SUPPORTED */ +"Function is not supported by this port.", }; diff --git a/langs/ru/cgi-bin/ru.pl b/langs/ru/cgi-bin/ru.pl index 69c4599..c1729b8 100644 --- a/langs/ru/cgi-bin/ru.pl +++ b/langs/ru/cgi-bin/ru.pl @@ -511,7 +511,7 @@ 'connection closed' => 'Ðе пПЎклÑÑÑÐœ...', 'connection debugging' => 'Connection debugging', 'connection status and controlc' => 'СÑаÑÑÑ Ðž ÑпÑавлеМОе пПЎклÑÑеМОÑЌО:', -'connection tracking' => 'ÐÑПÑЌПÑÑ ÑПеЎОМеМОй ÑеÑез IPTables', +'connection tracking' => 'ÐÑПÑЌПÑÑ ÑПеЎОМеМОй ÑеÑез iptables', 'connection type' => 'Connection Type', 'connection type is invalid' => 'Connection type is invalid.', 'connections' => 'СПеЎОМеМОÑ', @@ -1041,7 +1041,7 @@ 'iptable rules' => 'IPTable rules', 'iptmangles' => 'IPTable Mangles', 'iptnats' => 'IPTable Network Address Translation', -'ipts' => 'IPTables', +'ipts' => 'iptables', 'isdn' => 'ISDN', 'isdn settings' => 'Additional ISDN settings:', 'isdn1' => 'Single ISDN', diff --git a/langs/ru/install/lang_ru.c b/langs/ru/install/lang_ru.c index 1e96b61..40293a2 100644 --- a/langs/ru/install/lang_ru.c +++ b/langs/ru/install/lang_ru.c @@ -581,4 +581,10 @@ char *ru_tr[] = { "ÐП вÑÐµÐŒÑ Ð·Ð°Ð³ÑÑзкО пÑПОзПÑла ПÑОбка!", /* TR_DHCP_FORCE_MTU */ "ЀПÑÑОÑПваÑÑ DHCP mtu:", +/* TR_IDENTIFY */ +"Identify", +/* TR_IDENTIFY_SHOULD_BLINK */ +"Selected port should blink now ...", +/* TR_IDENTIFY_NOT_SUPPORTED */ +"Function is not supported by this port.", }; diff --git a/langs/tr/cgi-bin/tr.pl b/langs/tr/cgi-bin/tr.pl index 2589668..0ea9593 100644 --- a/langs/tr/cgi-bin/tr.pl +++ b/langs/tr/cgi-bin/tr.pl @@ -89,6 +89,7 @@ 'add xtaccess' => 'Harici EriÅim Ekle', 'add-route' => 'Basma ek yolu', 'added from dhcp lease list' => 'DHCP kira listeden eklendi', +'addons' => 'Eklentiler', 'admin user password has been changed' => 'Yönetici kullanıcı Åifresi deÄiÅtirildi.', 'admin users' => 'Yetkili kullanıcı hakları ile kullanıcı', 'administrator user password' => 'Admin kullanıcı parolası:', @@ -178,7 +179,7 @@ 'advproxy access' => 'EriÅim', 'advproxy admin mail' => 'Ãnbellek yönetici e-postası', 'advproxy advanced proxy' => 'GeliÅmiÅ Vekil Sunucu', -'advproxy advanced web proxy' => 'GeliÅmiÅ Web Vekil Sunucusu', +'advproxy advanced web proxy' => 'GeliÅmiÅ web vekil sunucusu', 'advproxy advanced web proxy configuration' => 'GeliÅmiÅ web vekil sunucu ayarları', 'advproxy allowed subnets' => 'Ä°zin verilen alt aÄlar (her satırda bir tane)', 'advproxy allowed web browsers' => 'Web eriÅimi için izin verilen istemciler', @@ -244,6 +245,7 @@ 'advproxy errmsg password length 1' => 'Parola en az olmalıdır ', 'advproxy errmsg password length 2' => ' karakter', 'advproxy errmsg passwords different' => 'Parolalar eÅleÅmiyor', +'advproxy errmsg proxy ports equal' => 'Vekil sunucu ve Åeffaf baÄlantı noktaları eÅit olamaz.', 'advproxy errmsg radius port' => 'Geçersiz RADIUS baÄlantı noktası numarası', 'advproxy errmsg radius secret' => 'RADIUS paylaÅılan gizli kod gerekli', 'advproxy errmsg radius server' => 'RADIUS Sunucusu için geçersiz IP adresi', @@ -281,6 +283,7 @@ 'advproxy on' => 'Vekil sunucu', 'advproxy privacy' => 'Gizlilik', 'advproxy proxy port' => 'Vekil sunucu baÄlantı noktası', +'advproxy proxy port transparent' => 'Åeffaf baÄlantı noktası', 'advproxy ram cache size' => 'Bellek önbellek boyutu (MB)', 'advproxy redirector children' => 'Filtre iÅlemlerinin sayısı', 'advproxy reset' => 'Yeniden BaÅlat', @@ -314,7 +317,7 @@ 'advproxy update information' => 'YÃŒklenebilir gÃŒncelleÅtirilmiÅ bir sÃŒrÃŒmÃŒ vardır. Daha fazla bilgi için <a href="http://www.advproxy.net" target="_blank">http://www.advproxy.net</a> adresini ziyaret edebilirsiniz.', 'advproxy update notification' => 'GÃŒncelleme bildirimi!', 'advproxy upstream password' => 'Gönderim parolası', -'advproxy upstream proxy' => 'Gönderim Vekili', +'advproxy upstream proxy' => 'Gönderim vekili', 'advproxy upstream proxy host:port' => 'Gönderim vekili (makine adı:baÄlantı noktası)', 'advproxy upstream username' => 'Gönderim kullanıcı adı', 'advproxy url filter' => 'URL filtre', @@ -338,11 +341,11 @@ 'aliases not active' => 'KIRMIZI arabiriminiz STATÄ°K olmadıkça takma adlar aktif olmayacaktır', 'all' => 'TÃŒmÃŒ', 'all interfaces' => 'TÃŒm Arabirimler', -'all services' => 'TÃŒm Hizmetler', +'all services' => 'TÃŒm hizmetler', 'all updates installed' => 'TÃŒm gÃŒncellemeler kuruldu', 'allmsg' => 'tÃŒmÃŒnÃŒ göster', 'alt dialup' => 'Ãevirmeli BaÄlantı', -'alt home' => 'Ana sayfa', +'alt home' => 'Ana Sayfa', 'alt information' => 'Bilgi', 'alt logs' => 'GÃŒnlÃŒkler', 'alt ovpn' => 'OpenVPN', @@ -357,12 +360,12 @@ 'april' => 'Nisan', 'archive not exist' => 'Yapılandırma arÅivi yok', 'are you sure' => 'Emin misiniz?', -'arp table entries' => 'ARP Tablosu Girdileri:', +'arp table entries' => 'ARP tablosu girdileri:', 'artist' => 'Sanatçı', 'attemps' => 'GiriÅim', 'attention' => 'DÄ°KKAT', 'august' => 'AÄustos', -'authentication' => 'Kimlik DoÄrulama:', +'authentication' => 'Kimlik doÄrulama:', 'automatic' => 'Otomatik', 'available updates' => 'Mevcut gÃŒncellemeler:', 'average' => 'Ortalama', @@ -397,7 +400,7 @@ 'backup to floppy' => 'Diskete yedekle', 'backupaddon' => 'Eklenti Yedekleme', 'backupprofile' => 'Yeniden baÄlanma baÅarısız durumda. Profile geçin', -'backups' => 'yedekler', +'backups' => 'Yedekler', 'backupwarning' => 'Eklenti yedeklemesi için lÃŒtfen önce geri yÃŒkleme yedeklemesi oluÅturun. Ä°ndirme zamanı verilen orjinal dosya ile devam edin.', 'bad characters in' => 'YablıŠkarakterler ', 'bad characters in script field' => 'Komut alanındaki yanlıŠkarakterler', @@ -409,11 +412,12 @@ 'bandwidth usage' => 'bant geniÅliÄi kullanımı (harici)', 'bandwitherror' => 'QoS aktifken bant geniÅliÄi ayarları deÄiÅtiremezsiniz. Ä°lk önce QoS devre dıÅı bırakın.<p>', 'bandwithsettings' => 'Bant geniÅliÄi ayarları', -'basic options' => 'Temel Seçenekler', -'beep when ppp connects or disconnects' => 'IPFire baÄlanırken veya kapatılırken beep sesi çıkar.', +'basic options' => 'Temel seçenekler', +'beep when ppp connects or disconnects' => 'IPFire baÄlanırken veya kapatılırken ses çıkar.', 'behind a proxy' => 'Bir vekil sunucu arkasında:', 'bewan adsl pci st' => 'KALDIRILACAK', 'bewan adsl usb' => 'KALDIRILACAK', +'bit' => 'Bit', 'bitrate' => 'Bit hızı', 'bleeding rules' => 'Bleeding Edge Snort Rules', 'blue' => 'MAVÄ°', @@ -436,7 +440,7 @@ 'cached swap' => 'takas alanı önbelleÄi', 'calamaris available reports' => 'Mevcut raporlar', 'calamaris byte unit' => 'Bayt birimi', -'calamaris create report' => 'Rapor oluÅtur', +'calamaris create report' => 'Rapor OluÅtur', 'calamaris enable content report' => 'İçerik raporunu aktifleÅtir', 'calamaris enable distribution histogram' => 'DaÄıtım histogramını aktifleÅtir', 'calamaris enable domain report' => 'Etki alanı raporunu aktifleÅtir', @@ -455,7 +459,7 @@ 'calamaris number of requesting hosts' => 'Talep eden ana bilgisayarların sayısı', 'calamaris performance options' => 'Performans seçenekleri', 'calamaris proxy reports' => 'Vekil Sunucu Raporları', -'calamaris refresh list' => 'Listeyi yenile', +'calamaris refresh list' => 'Listeyi Yenile', 'calamaris report interval (in minutes)' => 'Rapor aralıÄı (dakikada)', 'calamaris report options' => 'Rapor seçenekleri', 'calamaris report period' => 'Rapor sÃŒresi', @@ -513,7 +517,7 @@ 'ccd iroutehint' => 'Dikkat! Bu ayarları deÄiÅtirirseniz, deÄiÅikliklerin etkili olduÄu OpenVPN sunucusunu yeniden baÅlatmanız gerekir!', 'ccd modify' => 'AÄı deÄiÅtir', 'ccd name' => 'Ad', -'ccd net' => 'Statik IP adres havuzu', +'ccd net' => 'Statik ip adres havuzu', 'ccd noaddnet' => 'OpenVPN sunucusu durdurulduÄunda sadece yeni bir statik aÄ ekleyebilirsiniz.', 'ccd none' => 'Yok', 'ccd routes' => 'Yönlendir:', @@ -521,7 +525,7 @@ 'ccd used' => 'Kullanılan adresler', 'cert' => 'Sertifika', 'certificate' => 'Sertifika', -'certificate authorities' => 'Sertifika Yetkilileri', +'certificate authorities' => 'Sertifika yetkilileri', 'certificate does not have a valid ca associated with it' => 'Sertifika ile iliÅkili geçerli bir CA yok.', 'certificate file move failed' => 'Sertifika dosyası taÅıması baÅarısız oldu', 'cfg restart' => 'Bir yeniden baÅlatma, yapılandırma arÅivi geri yÃŒkledikten sonra önerilmektedir.', @@ -560,7 +564,7 @@ 'connection closed' => 'BaÄlı deÄil...', 'connection debugging' => 'Hata ayıklama baÄlantısı', 'connection status and controlc' => 'BaÄlantı durumu ve kontrol:', -'connection tracking' => 'IPTablo BaÄlantı Takibi', +'connection tracking' => 'IPTablo baÄlantı takibi', 'connection type' => 'BaÄlantı TÃŒrÃŒ', 'connection type is invalid' => 'Geçersiz baÄlantı tÃŒrÃŒ.', 'connections' => 'BaÄlantılar', @@ -617,7 +621,7 @@ 'dat without key' => 'Åifreli bir arÅiv anahtarı olmadan geri yÃŒklenemez.', 'date' => 'Tarih', 'date not in logs' => 'Sorgulanan gÃŒn için hiçbir gÃŒnlÃŒk yok', -'day' => 'gÃŒn', +'day' => 'GÃŒn', 'day after' => 'Bir gÃŒn sonra', 'day before' => 'Bir gÃŒn önce', 'day-graph' => 'gÃŒn', @@ -631,12 +635,14 @@ 'ddns hostname removed' => 'Dinamik DNS ana bilgisayar adı kaldırıldı', 'ddns minimize updates' => 'GÃŒncellemeleri azalt: GÃŒncellemelerden önce, sunucu adı '[host.]domain' için dns IP adresini KIRMIZI IP ile karÅılaÅtır.', 'ddns noip prefix' => 'Grup yönteminde ip-yok seçeneÄini kullanmak için ana bilgisayar adı öneki: <b>%</b>', -'deactivate' => 'devre dıÅı', +'deactivate' => 'Devre dıÅı', 'deactivate user' => 'kullanıcı devre dıÅı', +'dead peer detection' => 'SonlanmıŠEÅ Algılama', 'debugme' => 'HenÃŒz uygulanmadı', 'december' => 'Aralık', 'deep scan directories' => 'ArdıÅık tarama', 'def lease time' => 'Varsayılan Kira Zamanı', +'default ip' => 'Varsayılan IP adresi', 'default lease time' => 'Varsayılan kira zamanı (dakika):', 'default networks' => 'Varsayılan aÄlar', 'default renewal time' => 'Varsayılan Yenileme Zamanı', @@ -669,7 +675,7 @@ 'dhcp advopt definition' => 'Açıklama', 'dhcp advopt definition exists' => 'Açıklama seçeneÄi zaten var. Bunu sadece dÃŒzenleyebilir veya kaldırabilirsiniz.', 'dhcp advopt edit' => 'DHCP seçeneÄini dÃŒzenle', -'dhcp advopt help' => 'Liste seçenekleri', +'dhcp advopt help' => 'Liste Seçenekleri', 'dhcp advopt list' => 'Ek DHCP seçenekleri', 'dhcp advopt modified' => 'DHCP seçeneÄi dÃŒzeltildi', 'dhcp advopt name' => 'Seçenek adı', @@ -708,16 +714,17 @@ 'disk access per' => 'eriÅim baÅına disk', 'disk usage' => 'Disk kullanımı', 'display' => 'GörÃŒnÃŒm', -'display charset' => 'Karakterleri Göster', +'display charset' => 'Karakterleri göster', 'display hostname in window title' => 'Pencere baÅlıÄında ana bilgisayar adını göster', 'display traffic at home' => 'BaÅlangıç sayfasının ÃŒzerinde hesaplanan trafiÄi göster', 'display webinterface effects' => 'Efektleri aktifleÅtir', 'dl client arch' => 'Ä°stemci paketlerini indir (zip)', -'dmz' => 'Açık bölge', +'dmz' => 'AÃIK BÃLGE', 'dmz pinhole configuration' => 'Açık bölge yapılandırma', 'dmz pinhole rule added' => 'Açık bölge kuralı eklendi; Açık bölge yeniden baÅlatılıyor', 'dmz pinhole rule removed' => 'Açık bölge kuralı silindi; Açık bölge yeniden baÅlatılıyor', 'dmzpinholes for same net not necessary' => 'Açık bölge aynı aÄ için gerekli deÄildir. Farklı kaynak veya hedef aÄ seçin.', +'dnat address' => 'Harici IP adresi', 'dns address deleted' => 'BaÅarıyla silindi!', 'dns address deleted txt' => 'DNS-Sunucusu adresleri baÅarıyla silindi.<br />DeÄiÅikliklerin aktifleÅtirilmesi için yeniden baÅlatın!', 'dns address done' => 'DNS-Sunucusu adresi ayarları kaydedilecektir.', @@ -736,8 +743,9 @@ 'dns saved' => 'BaÅarıyla kaydedildi!', 'dns saved txt' => 'Girilen iki DNS sunucu adresi baÅarılı bir Åekilde kaydedildi.<br />DeÄiÅikliklerin aktifleÅtirielebilmesi için yeniden baÅlatın!', 'dns server' => 'DNS Sunucusu', +'dns servers' => 'DNS sunucuları', 'dns title' => 'Etki Alanı Ad Sistemi', -'dnsforward' => 'DNS yönlendirmesi', +'dnsforward' => 'DNS Yönlendirmesi', 'dnsforward add a new entry' => 'Yeni bir kayıt ekle:', 'dnsforward configuration' => 'Ä°leri DNS yapılandırması', 'dnsforward edit an entry' => 'Varolan bir kaydı dÃŒzenle:', @@ -745,8 +753,8 @@ 'dnsforward forward_server' => 'Ad sunucusu', 'dnsforward zone' => 'Bölge', 'do not log this port list' => 'Otorumdan hemen önce bu baÄlantı noktaları listesini bırak (gÃŒnlÃŒk boyutunu kÌçÌltÃŒr)', -'dod' => 'Ãevirmeli BaÄlantı Ãzerinden Talep', -'dod for dns' => 'DNS için çevirmeli baÄlantı ÃŒzerinden talep:', +'dod' => 'Ãevirmeli baÄlantı ÃŒzerinden talep et', +'dod for dns' => 'DNS için çevirmeli baÄlantı ÃŒzerinden talep et:', 'dod not compatible with ddns' => 'Talep edilen çevirmeli aÄ dinamik dns hizmetleri ile uyumlu deÄildir', 'dod waiting' => 'Ãevirmeli baÄlantı ÃŒzerindeki talep bekleniyor', 'domain' => 'Etki alanı', @@ -758,19 +766,26 @@ 'donation-link' => 'https://www.paypal.com/en_US/GB/i/btn/btn_donateCC_LG.gif', 'donation-text' => '<strong>IPFire</strong> boÅ zamanlarında gönÃŒllÃŒer tarafından geliÅtirlmektedir. Bu projeyi ayakta tutmak için eÄer bize destek olmak isterseniz kÌçÌk bir baÄıÅtan mutluluk duyarız.', 'done' => 'Yap', -'dos charset' => 'DOS Karakterleri', +'dos charset' => 'DOS karakterleri', 'down and up speed' => 'Gönderme hızı dÃŒÅtÃŒÄÃŒnde <i>Kaydet</i> dÃŒÄmesine basın.', +'downlink' => 'Ä°ndirme baÄlantısı', 'downlink speed' => 'Ä°ndirme baÄlantı hızı (kbit/san)', 'downlink std class' => 'Standart indirme baÄlantısı sınıfı', 'download' => 'Ä°ndir', 'download ca certificate' => 'CA sertifikası indir', 'download certificate' => 'Sertifika indir', 'download host certificate' => 'Ana bilgisayar belgesi indir', -'download new ruleset' => 'Yeni kural kÃŒmesi indir', +'download new ruleset' => 'Yeni Kural KÃŒmesi Ä°ndir', 'download pkcs12 file' => 'PKCS12 dosyasını indir', 'download root certificate' => 'Root sertifikasını indir', 'dpd action' => 'Hareketsiz eÅ algılama eylemi', +'dpd delay' => 'Gecikme', +'dpd timeout' => 'Zaman AÅımı', 'driver' => 'SÃŒrÃŒcÃŒ', +'drop action' => '"EngellenmiÅ" biçimdeki (iletilen) gÃŒvenlik duvarının varsayılan davranıÅı', +'drop action1' => '"EngellenmiÅ" biçimdeki (giden) gÃŒvenlik duvarının varsayılan davranıÅı', +'drop action2' => 'GÃŒvenlik duvarı (giriÅ) varsayılan davranıÅı', +'drop forward' => 'Ä°letilen paket gÃŒnlÃŒklerini reddet', 'drop input' => 'GÃŒnlÃŒk giriÅ paketlerini reddet', 'drop newnotsyn' => 'Sync paketleri olmayan yeni gÃŒnlÃŒkleri reddet', 'drop output' => 'GÃŒnlÃŒk çıkıŠpaketlerini reddet', @@ -819,9 +834,11 @@ 'enabledtitle' => 'Aktif', 'encapsulation' => 'KapsÃŒlleme', 'encrypted' => 'Åifre', +'encryption' => 'Åifreleme:', 'end address' => 'BitiÅ adresi:', 'enter ack class' => 'ACK-Sınıfı girin <br />ve sonra <i>Kaydet</i> dÃŒÄmesine basın.', 'enter data' => 'Ayarları girin <br />ve sonra <i>Kaydet</i> dÃŒÄmesine basın.', +'entropy' => 'Entropy', 'err bk 1' => 'ArÅiv oluÅturma hatası', 'err bk 10 password' => 'Yedek parolası oluÅturma hatası', 'err bk 2 key' => 'Anahtar dosyası oluÅturulama hatası', @@ -849,7 +866,7 @@ 'expires' => 'BitiÅ tarihi', 'export' => 'DıÅarı Aktar', 'exportkey' => 'PSK dıÅarı aktar', -'external access' => 'Harici EriÅim', +'external access' => 'Harici eriÅim', 'external access configuration' => 'Harici eriÅim yapılandırması', 'external access rule added' => 'Harici eriÅim kuralı eklendi. EriÅim denetleyicisi yeniden baÅlatılıyor.', 'external access rule changed' => 'Harici eriÅim kuralı deÄiÅtirildi. EriÅim denetleyicisi yeniden baÅlatılıyor.', @@ -858,7 +875,7 @@ 'extrahd' => 'Yedek Diskler', 'extrahd because there is already a device mounted' => ', çÌnkÃŒ bu aygıt baÄlandı', 'extrahd cant umount' => 'Ayrılamadı', -'extrahd detected drives' => 'algılanan diskler', +'extrahd detected drives' => 'Algılanan diskler', 'extrahd install or load driver' => 'Aygıtınız buradaki listede yoksa sÃŒrÃŒcÃŒsÃŒnÃŒ kurmanız veya yÃŒklemeniz gerekir.<br /> Aygıtınızı görÃŒyor fakat bölÃŒmlerini göremiyorsanız önce bunları oluÅturmak zorundasınız.', 'extrahd maybe the device is in use' => '. Belki aygıt kullanımda', 'extrahd to' => '-', @@ -877,17 +894,17 @@ 'fireinfo is disabled' => 'GÃŒvenlik duvarı bilgisi devre dıÅı', 'fireinfo is enabled' => 'GÃŒvenlik duvarı bilgisi aktif', 'fireinfo is submitted' => 'Profiliniz gÃŒvenlik duvarı bilgi hizmetine gönderildi.', -'fireinfo is submitted button' => 'Hayır artık profilimi göndermek istemiyorum', +'fireinfo is submitted button' => 'Hayır Artık Profilimi Göndermek Ä°stemiyorum', 'fireinfo kernel version' => 'Ãekirdek sÃŒrÃŒmÃŒ', 'fireinfo not submitted' => 'Profiliniz gÃŒvenlik duvarı bilgi hizmetlerine henÃŒz gönderilmemiÅtir.', -'fireinfo not submitted button' => 'Evet profilimi Åimdi gönder', +'fireinfo not submitted button' => 'Evet Profilimi Åimdi Gönder', 'fireinfo pakfire version' => 'Pakfire sÃŒrÃŒmÃŒ', 'fireinfo please enable' => 'LÃŒtfen gÃŒvenlik duvarı bilgi hizmetini aktifleÅtirin.', 'fireinfo settings' => 'GÃŒvenlik duvarı bilgi ayarları', 'fireinfo system version' => 'Sistem sÃŒrÃŒmÃŒ', 'fireinfo why descr1' => 'Bu seçeneÄi aktifleÅtirmek IPFire geliÅimi için çok önemlidir.', 'fireinfo why descr2' => 'Bunun ', -'fireinfo why enable' => 'Neden gÃŒvenlik duvarı bilgi hizmetini aktifleÅtirmeliy im?', +'fireinfo why enable' => 'Neden gÃŒvenlik duvarı bilgi hizmetini aktifleÅtirmeliyim?', 'fireinfo why read more' => 'nedenleri hakkında bilgi için tıklayın.', 'fireinfo your profile id' => 'Profil kimliÄiniz', 'firewall' => 'GÃŒvenlik Duvarı', @@ -899,14 +916,17 @@ 'firewall logs' => 'GÃŒvenlik Duvarı GÃŒnlÃŒkleri', 'firewall logs ip' => 'Gd-GÃŒnlÃŒk Grafikleri (IP)', 'firewall logs port' => 'Gd-GÃŒnlÃŒk Grafikleri (Port)', +'firewall rules' => 'GÃŒvenlik duvarı kuralları', 'firewallhits' => 'gÃŒvenlik duvarı kaydı', 'firmware' => 'Yazılım', 'firmware upload' => 'Yazılım/SÃŒrÃŒcÃŒ YÃŒkle', +'first' => 'Ä°lk', 'fixed ip lease added' => 'Sabit IP kirası eklendi', 'fixed ip lease modified' => 'Sabit IP kirası gÃŒncellendi', 'fixed ip lease removed' => 'Sabit IP kirası kaldırıldı', 'force update' => 'Zorla gÃŒncelleÅtir', 'force user' => 'kullanıcıya tÃŒm yeni dosyaları zorla', +'forward firewall' => 'GÃŒvenlik Duvarı', 'forwarding rule added' => 'Yönlendirme kuralı eklendi. Yeniden baÅlatmayı gönder.', 'forwarding rule removed' => 'Yönlendirme kuralı kaldırıldı. Yeniden baÅlatmayı gönder.', 'forwarding rule updated' => 'Yönlendirme kuralı gÃŒncellendi. Yeniden baÅlatmayı gönder.', @@ -924,16 +944,189 @@ 'from email user' => 'Gönderen e-posta kullanıcısı', 'from warn email bad' => 'Gönderen e-posta adresi geçerli deÄil', 'fw blue' => 'MAVÄ° arabirim için gÃŒvenlik duvarı seçenekleri', +'fw default drop' => 'GÃŒvenlik duvarı yöntemleri', 'fw logging' => 'GÃŒvenlik duvarı gÃŒnlÃŒÄÃŒ', +'fw settings' => 'GÃŒvenlik duvarı ayarları', +'fw settings color' => 'Kural tablosunda renkleri göster', +'fw settings dropdown' => 'Kural oluÅturulan sitedeki tÃŒm aÄları göster', +'fw settings remark' => 'Kural tablosunda açıklamaları göster', +'fw settings ruletable' => 'BoÅ kural tablolarını göster', +'fwdfw ACCEPT' => 'KABUL ET', +'fwdfw DROP' => 'Ä°PTAL ET', +'fwdfw MODE1' => 'TÃŒm paketleri iptal et', +'fwdfw MODE2' => 'TÃŒm paketleri kabul et', +'fwdfw REJECT' => 'REDDET', +'fwdfw action' => 'Eylem', +'fwdfw additional' => 'Ek ayarlar', +'fwdfw addrule' => 'Kural Ekle/DÃŒzenle::', +'fwdfw all icmp' => 'TÃŒm ICMP tÃŒrleri', +'fwdfw change' => 'GÃŒncelle', +'fwdfw copy' => 'Kopyala', +'fwdfw delete' => 'Sil', +'fwdfw dnat' => 'Hedef NAT (BaÄlantı noktası yönlendirme)', +'fwdfw dnat error' => 'DNAT için bir tek ana bilgisayar seçmeniz gerekir. Gruplara veya aÄlara izin verilmez.', +'fwdfw dnat extport' => 'Harici baÄlantı noktası kaynak NAT kurallarını kullanırken boÅ olmak zorundadır.', +'fwdfw dnat nochoice' => 'LÃŒtfen NAT bölÃŒmÃŒnden kaynak NAT veya hedef NAT seçin.', +'fwdfw dnat porterr' => 'NAT için tek bir baÄlantı noktası veya baÄlantı noktası aralıÄı (tcp/udp) seçmek zorundasınız.', +'fwdfw dnat porterr2' => 'Hiçbir hedef baÄlantı noktası tanımlamdan harici bir baÄlantı noktası (NAT) kullanamazsınız.', +'fwdfw edit' => 'DÃŒzenle', +'fwdfw err nosrc' => 'Bir kaynak seçilmedi.', +'fwdfw err nosrcip' => 'LÃŒtfen bir kaynak IP adresi belirtin.', +'fwdfw err notgt' => 'Bir hedef seçilmedi.', +'fwdfw err notgtip' => 'LÃŒtfen bir hedef IP adresi belirtin.', +'fwdfw err prot_port' => 'Seçilen kuuralla kaynak veya hedef baÄlantı noktasına izin verilmez', +'fwdfw err prot_port1' => 'TCP veya UDP kuralı için kaynak veya hedef baÄlantı noktası kullanırken seçmek zorunda', +'fwdfw err remark' => 'Açıklama içinde geçersiz karakterler.', +'fwdfw err ruleexists' => 'Bu kural zaten var.', +'fwdfw err same' => 'Kaynak ve hedef aynı.', +'fwdfw err samesub' => 'Kaynak ve hedef IP adresleri aynı alt aÄdadır.', +'fwdfw err src_addr' => 'Geçersiz kaynak MAC/IP adresi.', +'fwdfw err tgt_addr' => 'Geçersiz hedef IP adresi.', +'fwdfw err tgt_grp' => 'Hedef hizmet grubu boÅ', +'fwdfw err tgt_mac' => 'MAC adresleri hedef olarak kullanılamaz.', +'fwdfw err tgt_port' => 'Geçersiz hedef baÄlantı noktası.', +'fwdfw err time' => 'En az bir gÃŒn seçmeniz gerekir.', +'fwdfw external port nat' => 'Harici baÄlantı noktası (NAT)', +'fwdfw final_rule' => 'Son kural: ', +'fwdfw from' => 'Kimden:', +'fwdfw hint ip1' => 'Son oluÅturulan kurallar hiçbir zaman eÅleÅmemelidir çÌnkÃŒ kaynak ve hedefin alt aÄları çakıÅabilir', +'fwdfw hint ip2' => 'Bu kuralın mantıklı olup olmadıÄını bir kez daha kontrol edin: ', +'fwdfw hint mac' => 'Kod oluÅturma sırasında görmezden gelinecek MAC adresleri.', +'fwdfw iface' => 'ArayÃŒz', +'fwdfw ipsec network' => 'IPsec aÄları:', +'fwdfw log' => 'GÃŒnlÃŒk', +'fwdfw log rule' => 'GÃŒnlÃŒk kuralı', +'fwdfw man port' => 'BaÄlantı noktası:', +'fwdfw menu' => 'GÃŒvenlik Duvarı Kuralları', +'fwdfw movedown' => 'AÅaÄı taÅı', +'fwdfw moveup' => 'Yukarı taÅı', +'fwdfw natport used' => 'NAPT için verilen baÄlantı noktası baÅka bir DNAT kural tarafından zaten kullanılıyor.', +'fwdfw newrule' => 'Yeni Kural', +'fwdfw p2p txt' => 'P2P aÄlarına eriÅim izni Ver/Verme.', +'fwdfw pol allow' => 'Ä°zin Verildi', +'fwdfw pol block' => 'Engellendi', +'fwdfw pol text' => 'Yerel aÄlardan baÄlantılar için varsayılan gÃŒnvenlik duvarı davranıÅını ayarlar. TÃŒm yeni baÄlantılara izin verebilir veya varsayılan olarak engelleyebilirsiniz. Yerel aÄlar arasındaki baÄlantılar ayrıca sonraki biçimde engellenir.', +'fwdfw pol text1' => 'GÃŒvenlik duvarı tarafından baÅlatılan baÄlantıları için varsayılan gÃŒvenlik duvarı davranıÅını ayarlar. Dikkat! Kendinizi engelleyebilirsiniz.', +'fwdfw pol title' => 'Varsayılan gÃŒvenlik duvarı davranıÅı', +'fwdfw prot41' => 'IPv6 KuÅatması (Kural 41)', +'fwdfw prot41 short' => 'IPv6 KuÅatması', +'fwdfw red' => 'KIRMIZI', +'fwdfw reread' => 'DeÄiÅiklikleri Uygula', +'fwdfw rule action' => 'Eylem kuralı:', +'fwdfw rule activate' => 'Kuralı etkinleÅtir', +'fwdfw rulepos' => 'Kural konumu', +'fwdfw rules' => 'Kurallar', +'fwdfw snat' => 'Kaynak NAT', +'fwdfw source' => 'Kaynak', +'fwdfw sourceip' => 'Kaynak adresi (MAC/IP adresi veya aÄı):', +'fwdfw std network' => 'Standart aÄlar:', +'fwdfw target' => 'Hedef', +'fwdfw targetip' => 'Hedef adres (MAC/IP adresi veya aÄı):', +'fwdfw till' => 'Son zaman:', +'fwdfw time' => 'Zaman Kısıtlamaları', +'fwdfw timeframe' => 'Zaman kısıtlamalarını kullan', +'fwdfw toggle' => 'EtkinleÅtirin veya devre dıÅı bırakın', +'fwdfw togglelog' => 'GÃŒnlÃŒÄÃŒ etkinleÅtirin veya devre dıÅı bırakın', +'fwdfw use nat' => 'AÄ adres dönÃŒÅtÃŒrÃŒcÃŒsÃŒnÃŒ kullanın (NAT)', +'fwdfw use srcport' => 'Kaynak baÄlantı noktası:', +'fwdfw use srv' => 'Hedef baÄlantı noktası:', +'fwdfw useless rule' => 'Bu kural geçersiz.', +'fwdfw wd_fri' => 'Cum', +'fwdfw wd_mon' => 'Pzt', +'fwdfw wd_sat' => 'Cmt', +'fwdfw wd_sun' => 'Paz', +'fwdfw wd_thu' => 'Per', +'fwdfw wd_tue' => 'Sal', +'fwdfw wd_wed' => 'Ãar', +'fwdfw xt access' => 'Kayıt', +'fwhost addgrp' => 'Yeni aÄ/ana bilgisayar grubu ekle:', +'fwhost addgrpname' => 'Grup adı:', +'fwhost addhost' => 'Yeni bir ana bilgisayar ekle:', +'fwhost addnet' => 'Yeni bir aÄ ekle:', +'fwhost addservice' => 'Hizmet ekle:', +'fwhost addservicegrp' => 'Yeni bir hizmet grubu ekle:', +'fwhost any' => 'Herhangi', +'fwhost attention' => 'DÄ°KKAT', +'fwhost back' => 'Geri', +'fwhost blue' => 'Mavi', +'fwhost ccdhost' => 'OpenVPN istemcileri:', +'fwhost ccdnet' => 'OpenVPN aÄları:', +'fwhost change' => 'DeÄiÅtir', +'fwhost changeremark' => 'Sadece açıklamalar deÄiÅtirilmiÅ', +'fwhost cust addr' => 'Ana bilgisayarlar:', +'fwhost cust grp' => 'AÄ/Ana Bilgisayar Grupları:', +'fwhost cust net' => 'AÄlar:', +'fwhost cust service' => 'Hizmetler:', +'fwhost cust srvgrp' => 'Hizmet grupları:', +'fwhost deleted' => 'Silindi', +'fwhost empty' => 'Tanımlı kurallar yok', +'fwhost err addr' => 'Geçersiz IP adresi veya alt aÄ', +'fwhost err addrgrp' => 'LÃŒtfen bir grup adı verin', +'fwhost err empty' => 'LÃŒtfen tÃŒm alanları doldurun', +'fwhost err emptytable' => 'Bu grupta hiçbir kayıt yok', +'fwhost err groupempty' => 'Seçilen grup boÅ', +'fwhost err grpexist' => 'Bu grup zaten var', +'fwhost err hostexist' => 'zaten aynı adı taÅıyan bir ana bilgisayar var', +'fwhost err hostorip' => 'Geçersiz adı veya IP adresi', +'fwhost err ip' => 'Geçersiz IP adresi', +'fwhost err ipcheck' => 'Bu IP adresi zaten kullanılıyor', +'fwhost err ipmac' => 'Geçersiz IP/MAC adresi', +'fwhost err ipwithsub' => 'LÃŒtfen sadece bir IP adresi verin (Alt aÄ maskesi olmadan)', +'fwhost err isccdhost' => 'Bu ad zaten OpenVPN istemci baÄlantısı tarafından kullanılıyor', +'fwhost err isccdiphost' => 'Bu IP adresi zaten bir OpenVPN istemci baÄlantısı tarafından kullanılıyor', +'fwhost err isccdipnet' => 'Bu IP adresi zaten bir OpenVPN aÄ baÄlantısı tarafından kullanılıyor', +'fwhost err isccdnet' => 'Bu ad zaten OpenVPN aÄı tarafından kullanılıyor', +'fwhost err isingrp' => 'Bu kayıt grupta zaten var', +'fwhost err mac' => 'Geçersiz MAC adresi', +'fwhost err maxservicetcp' => 'TCP hizmetlerinin en ÃŒst sayısı olan 15 deÄerine bu grupta ulaÅıldı (baÄlantı noktası aralıkları iki kez sayılır)', +'fwhost err maxserviceudp' => 'UDP hizmetlerinin en ÃŒst sayısı olan 15 deÄerine bu grupta ulaÅıldı (baÄlantı noktası aralıkları iki kez sayılır)', +'fwhost err name' => 'Geçersiz ad. Ä°zin verilen karakterler: BÃŒyÃŒk ve kÌçÌk harfler, rakamlar, boÅluk ve tire.', +'fwhost err name1' => 'BoÅ ad.', +'fwhost err net' => 'Bu AÄ/IP adresi zaten var', +'fwhost err netexist' => 'Aynı adı taÅıyan bir aÄ zaten var', +'fwhost err partofnet' => 'AÄ mevcut bir aÄın alt aÄı olmalıdır.', +'fwhost err port' => 'BaÄlantı noktası boÅ', +'fwhost err remark' => 'Geçersiz açıklama. Ä°zin verilen karakterler: BÃŒyÃŒk ve kÌçÌk harfler, rakamlar, boÅluk, tire, parantez, noktalı virgÃŒl, boru ve nokta.', +'fwhost err srv exists' => 'Aynı adı taÅıyan bir hizmet zaten var', +'fwhost err srvexist' => 'Bu hizmet grupta zaten var', +'fwhost err sub32' => 'LÃŒtfen bir ana bilgisayar ekleyiniz bir aÄ deÄil', +'fwhost green' => 'YeÅil', +'fwhost hint' => 'Not', +'fwhost hosts' => 'GÃŒvenlik Duvarı Ana Bilgisayarları', +'fwhost icmptype' => 'ICMP tÃŒrÃŒ:', +'fwhost ip_mac' => 'IP/MAC adresi', +'fwhost ipadr' => 'IP adresi:', +'fwhost ipsec host' => 'IPsec istemcileri:', +'fwhost ipsec net' => 'IPsec aÄları:', +'fwhost menu' => 'GÃŒvenlik Duvarı Gurupları', +'fwhost netaddress' => 'AÄ adresi', +'fwhost newgrp' => 'AÄ/Ana Bilgisayar Grupları', +'fwhost newhost' => 'Ana Bilgisayarlar', +'fwhost newnet' => 'AÄlar', +'fwhost newservice' => 'Hizmetler', +'fwhost newservicegrp' => 'Hizmet Gurupları', +'fwhost orange' => 'Turuncu', +'fwhost ovpn_n2n' => 'AÄdan-AÄa OpenVPN', +'fwhost port' => 'BaÄlantı Noktası', +'fwhost prot' => 'Kural', +'fwhost reread' => 'GÃŒvenlik duvarı kurallarının gÃŒncelleÅtirilmesi gerekiyor.', +'fwhost reset' => 'Ä°ptal', +'fwhost services' => 'Hizmetler:', +'fwhost srv_name' => 'Hizmet adı', +'fwhost stdnet' => 'Standart aÄlar:', +'fwhost type' => 'TÃŒr', +'fwhost used' => 'Kullanılan', +'fwhost welcome' => 'Burada tek ana bilgisayarı gruplandırabilirsiniz aÄlar ve hizmetlerle birlikte daha hızlı ve yeni kurallar oluÅturabilirsiniz.', +'fwhost wo subnet' => '(alt aÄ olmadan)', 'g.dtm' => 'KALDIRILACAK', 'g.lite' => 'KALDIRILACAK', -'gateway' => 'AÄ Geçidi', +'gateway' => 'AÄ geçidi', 'gateway ip' => 'AÄ Geçidi IP Adresi', 'gen static key' => 'Statik bir anahtar oluÅtur', 'generate' => 'Yönetici/Sunucu Sertifikası OluÅtur', 'generate a certificate' => 'Sertifika oluÅtur:', 'generate iso' => 'ISO oluÅtur', -'generate root/host certificates' => 'Yönetici/Sunucu sertifikası oluÅtur', +'generate root/host certificates' => 'Yönetici/Sunucu Sertifikası OluÅtur', 'generate tripwire keys and init' => 'tripwire anahtarları ve init oluÅtur', 'generatekeys' => 'Anahtar OluÅtur', 'generatepolicy' => 'Yeni kural oluÅtur', @@ -946,10 +1139,11 @@ 'gpl license agreement' => 'Lisans SözleÅmesi', 'gpl please read carefully the general public license and accept it below' => 'Dikkatlice Genel Kamu Lisansını okuyup kabul edin', 'gpl unofficial translation of the general public license v3' => 'Resmi olmayan sÃŒrÃŒm-3 Genel Kamu Lisansı çevirisi', -'graph' => 'GrafiÄi', +'graph' => 'grafiÄi', 'graph per' => '-', 'green' => 'YEÅÄ°L', 'green interface' => 'YeÅil Arabirim', +'grouptype' => 'Gurup tÃŒrÃŒ:', 'guaranteed bandwith' => 'Garantili bant geniÅliÄi', 'guardian alertfile' => 'Uyarı dosyası', 'guardian configuration' => 'Koruyucu Yapılandırması', @@ -1000,7 +1194,7 @@ 'ids preprocessor' => 'IDS öniÅlemcisi', 'ids rules license' => 'Sourcefire VRT Sertifikalı Kurallarından yararlanmak için kayıt olmanız gerekmektedir', 'ids rules license1' => '.', -'ids rules license2' => 'Lisans kabulÃŒ için siteyi ziyaret ede veya e-posta ile aktifleÅtirin. Sonra ', +'ids rules license2' => 'Lisans kabulÃŒ için siteyi ziyaret edin veya e-posta ile aktifleÅtirin. Sonra ', 'ids rules license3' => 'adresine gidin. Ãnce "Kod OluÅtur" dÃŒÄmesine basın ve sonra aÅaÄıdaki alana 40 karakterlik Onikcode kodunu kopyalayın.', 'ids rules update' => 'Snort kuralları gÃŒncelleÅtirme', 'iface' => 'Iface', @@ -1027,11 +1221,12 @@ 'installed' => 'YÃŒklenenler', 'installed updates' => 'YÃŒklenen gÃŒncellemeler:', 'instant update' => 'Hızlı GÃŒncelle', +'integrity' => 'BÃŒtÃŒnlÃŒk:', 'interface' => 'Ara birim', 'interfaces' => 'Ara birim', 'internet' => 'Ä°NTERNET', 'intrusion detection' => 'Saldırı Tespiti', -'intrusion detection system' => 'Saldırı Tespit Sistemi', +'intrusion detection system' => 'Saldırı tespit sistemi', 'intrusion detection system log viewer' => 'Saldırı Tespit Sistemi GÃŒnlÃŒk GörÃŒntÃŒleyicisi', 'intrusion detection system rules' => 'saldırı tespit sistemi kuralları', 'intrusion detection system2' => 'Saldırı Tespit Sistemi:', @@ -1054,6 +1249,8 @@ 'invalid input for dhcp dns' => 'DHCP DNS için geçersiz giriÅ.', 'invalid input for dhcp domain' => 'DHCP etki alanı için geçersiz giriÅ.', 'invalid input for dhcp wins' => 'DHCP WINS için geçersiz giriÅ.', +'invalid input for dpd delay' => 'DPD gecikmesi için geçersiz giriÅ.', +'invalid input for dpd timeout' => 'DPD zamanaÅımı için geçersiz giriÅ.', 'invalid input for e-mail address' => 'E-posta adresi için geçersiz giriÅ.', 'invalid input for esp keylife' => 'ESP anahtar ömrÃŒ için geçersiz giriÅ.', 'invalid input for hostname' => 'Ana bilgisayar adı için geçersiz giriÅ.', @@ -1110,9 +1307,12 @@ 'ipfire side is invalid' => 'Geçersiz IPFire yan listesi.', 'ipfires hostname' => 'IPFire ana bilgisayar adı', 'ipinfo' => 'IP bilgi', +'ipsec' => 'IPsec', +'ipsec network' => 'IPsec aÄ', +'ipsec no connections' => 'Aktif hiçbir IPsec baÄlantısı yok', 'iptable rules' => 'IPTablo kuralları', -'iptmangles' => 'IPTablo SıkıÅtırmaları', -'iptnats' => 'IPTablo AÄ Adres Ãevrimi', +'iptmangles' => 'IPTablo sıkıÅtırmaları', +'iptnats' => 'IPTablo aÄ adres çevrimi', 'ipts' => 'IPTablolar', 'isdn' => 'ISDN', 'isdn settings' => 'Ek ISDN ayarları:', @@ -1129,14 +1329,16 @@ 'key stuff' => '2. Anahtarlar ve Sertifikalar', 'keyreset' => 'Anahtarları Sıfırla', 'keys' => 'anahtarlar', -'lan' => 'LAN', +'lan' => 'YEREL AÄ', 'lang' => 'tr', 'languagepurpose' => 'IPFire sistemini görÃŒntÃŒlemek istediÄiniz dili seçin:', 'last activity' => 'Son Etkinlik', 'lateprompting' => 'Geç istenen', 'lease expires' => 'Kiralama sÃŒresi', +'least preferred' => 'az tercih edilen', 'legend' => 'Açıklamalar', -'length' => 'SÃŒresi', +'length' => 'SÃŒre', +'lifetime' => 'YaÅam sÃŒresi:', 'line' => 'Satırı', 'linkq' => 'baÄlantı kalitesi', 'load printer' => 'Yazıcı YÃŒkle', @@ -1146,19 +1348,19 @@ 'local ntp server specified but not enabled' => 'Belirtilen yerel NTP sunucusu etkin deÄil', 'local subnet' => 'Yerel Alt AÄ:', 'local subnet is invalid' => 'Geçersiz yerel alt aÄ.', -'local vpn hostname/ip' => 'Yerel VPN Ana Bilgisayar Adı/IP', +'local vpn hostname/ip' => 'Yerel VPN ana bilgisayar adı/ip', 'localkey' => 'yerel Anahtar', 'localkeyfile' => 'Yerel Anahtar Dosyası', 'log' => 'GÃŒnlÃŒk:', 'log enabled' => 'GÃŒnlÃŒk Aktif', -'log level' => 'GÃŒnlÃŒk Seviyesi', +'log level' => 'GÃŒnlÃŒk seviyesi', 'log lines per page' => 'Sayfa baÅına satır', 'log server address' => 'Syslog sunucusu:', 'log settings' => 'GÃŒnlÃŒk Ayarları', 'log summaries' => 'GÃŒnlÃŒk özetleri', 'log summary' => 'GÃŒnlÃŒk Ãzetleri', 'log var messages' => '/var/log/messages için ayarlar:', -'log view' => 'GÃŒnlÃŒk Kaydı', +'log view' => 'GÃŒnlÃŒk kaydı', 'log viewer' => 'GÃŒnlÃŒk görÃŒntÃŒleyici', 'log viewing options' => 'GÃŒnlÃŒk görÃŒntÃŒleme seçenekleri', 'log-options' => 'GÃŒnlÃŒk dosya seçenekleri', @@ -1166,7 +1368,7 @@ 'logging' => 'GÃŒnlÃŒk', 'logging server' => 'GÃŒnlÃŒk Sunucusu', 'loginlogout' => 'GiriÅ/ÃıkıÅ', -'logs' => 'gÃŒnlÃŒkler', +'logs' => 'GÃŒnlÃŒkler', 'lookup failed' => 'Ters arama baÅarısız', 'loosedirectorychecking' => 'Serbest Dizin Denetimi', 'low' => 'DÃŒÅÃŒk', @@ -1192,8 +1394,9 @@ 'mac address recon' => 'Yeniden baÄlanmaya çalıÅılıyor!', 'mac address saved' => 'BaÅarıyla kaydedildi!', 'mac address saved txt' => 'MAC adresi baÅarıyla kaydedildi. Fakat deÄiÅiklikler sadece yeniden baÅlattıktan sonra veya yeniden baÄlandıktan sonra yÃŒrÃŒrlÃŒÄe girecektir.', -'mac address title' => 'Orta EriÅim KontrolÃŒ Adresi', +'mac address title' => 'MAC adresi atayın', 'mac desc' => 'Burada red0 ÃŒzerindeki MAC adresini deÄiÅtirebilirsiniz. Adres onaltılık (0-9,a-f) bir tanımlama arasında olmalıdır.<br />ÃrneÄin: 00-01-02-0e-b8-d6 veya 00:01:02:0e:b8:d6.', +'mac filter' => 'MAC filtre', 'mac new' => 'Yeni MAC adresi:', 'mac1 new' => 'Yeni MAC adresi 1 (vdsl-inet):', 'mac2 new' => 'Yeni MAC adresi 2 (vdsl-iptv):', @@ -1203,11 +1406,11 @@ 'main page' => 'Ana sayfa', 'manage ovpn' => '5. TÃŒnel Yönetimi:', 'manage printers' => 'yazıcıları yönet', -'manage shares' => 'PaylaÅım Yönetimi', +'manage shares' => 'PaylaÅım yönetimi', 'manual' => 'El ile', 'manual control and status' => 'El ile kontrol ve durum:', 'manually' => 'El ile', -'map to guest' => 'Ziyaretçi Haritası', +'map to guest' => 'Ziyaretçi haritası', 'march' => 'Mart', 'marked' => 'Ä°Åaretli', 'max bandwith' => 'En fazla bant geniÅliÄi', @@ -1220,6 +1423,7 @@ 'max size' => 'En fazla nesne boyutu (KB):', 'max throughput' => 'En fazla hacmi', 'maximal' => 'En fazla', +'maximum' => 'En fazla', 'maximum retries' => 'En fazla yeniden deneme:', 'may' => 'Mayıs', 'mbmon display' => 'GörÃŒntÃŒ', @@ -1234,10 +1438,10 @@ 'mbmon volt' => 'voltaj', 'meaning' => 'anlam', 'media' => 'Medya', -'media information' => 'medya bilgisi', +'media information' => 'Medya bilgisi', 'medium' => 'Orta', 'memory' => 'Bellek', -'memory information' => 'bellek bilgisi', +'memory information' => 'Bellek bilgisi', 'memory usage per' => 'bellek baÅına kullanım - ', 'messages logging' => '/var/log/messages için gÃŒnlÃŒk ayarları', 'method' => 'Yöntem:', @@ -1245,6 +1449,7 @@ 'min delay' => 'En az gecikme', 'min size' => 'En az nesne boyutu (KB):', 'minimal' => 'En az', +'minimum' => 'En az', 'minute' => 'dakika', 'minutes' => 'dakika', 'misc-options' => 'ÃeÅitli seçenekler', @@ -1263,7 +1468,7 @@ 'modify' => 'DÃŒzenle', 'modulation' => 'GeçiÅ', 'monday' => 'Pazartesi', -'month' => 'ay', +'month' => 'Ay', 'month-graph' => 'ay', 'monthly firewallhits' => 'aylık gÃŒvenlik duvarı kaydı', 'monthly start day bad' => 'Aylık baÅlangıç ââgÃŒnÃŒ doÄru deÄil', @@ -1273,6 +1478,7 @@ 'monthly volume start day short' => 'Ä°lk gÃŒn', 'months' => 'ay', 'more' => 'daha', +'most preferred' => 'En çok tercih edilen', 'mount' => 'BaÄla', 'mounted on' => 'BaÄlı', 'mpfire' => 'IPFire için Media Player', @@ -1298,7 +1504,7 @@ 'net to net vpn' => 'AÄdan-AÄa Sanal Ãzel AÄ', 'net traffic newversion' => 'Yeni AÄ-Trafik sÃŒrÃŒmÃŒ var:', 'net-traffic configuration' => 'AÄ-Trafik Yapılandırması', -'netbios name' => 'Netbios Adı', +'netbios name' => 'Netbios adı', 'netmask' => 'AÄ Maskesi', 'network' => 'AÄ', 'network added' => 'Ãzel aÄ eklendi', @@ -1342,6 +1548,7 @@ 'not running' => 'çalıÅmıyor', 'not set' => 'ayarlanmamıÅ', 'notes' => 'Notlar', +'notice' => 'Dikkat', 'november' => 'Kasım', 'ntp common settings' => 'Genel ayarlar', 'ntp configuration' => 'NTP yapılandırması', @@ -1374,6 +1581,7 @@ 'openvpn fragment allowed with udp' => 'UDP kuralı kullanırken sadece parça kullanılmasına izin verilir.', 'openvpn log' => 'OpenVPN GÃŒnlÃŒk', 'openvpn mssfix allowed with udp' => 'UDP kuralı kullanırken sadece "mssfix" ile kullanılmasına izin verilir.', +'openvpn network' => 'OpenVPN aÄları', 'openvpn prefix local subnet' => 'Ãnek gösterimi kullanımı yerel alt aÄ için desteklenmez. LÃŒtfen 255.255.255.0 gibi alt aÄ maskeleri girin.', 'openvpn prefix openvpn subnet' => 'Ãnek gösterimi kullanımı OpenVPN alt aÄ için desteklenmez. LÃŒtfen 255.255.255.0 gibi alt aÄ maskeleri girin', 'openvpn prefix remote subnet' => 'Ãnek gösterimi kullanımı uzak alt aÄ için desteklenmez. LÃŒtfen 255.255.255.0 gibi alt aÄ maskeleri girin', @@ -1388,10 +1596,10 @@ 'or' => 'veya', 'orange' => 'TURUNCU', 'organization cant be empty' => 'KuruluÅ boÅ olamaz.', -'organization name' => 'KuruluÅ Adı', +'organization name' => 'KuruluÅ adı', 'organization too long' => 'KuruluÅ adı çok uzun. KuruluÅ adı 60 karakterden çok olmamalıdır.', 'original' => 'Orijinal', -'os level' => 'OS Seviyesi', +'os level' => 'OS seviyesi', 'other' => 'DiÄer', 'other countries' => 'DiÄer ÃŒlkelers', 'other login script' => 'DiÄer oturum açma komut dosyası', @@ -1431,6 +1639,7 @@ 'ovpn errmsg green already pushed' => 'YeÅil aÄ için her zaman bir yol ayarla', 'ovpn errmsg invalid ip or mask' => 'Geçersiz aÄ adresi veya alt aÄ maskesi', 'ovpn log' => 'OVPN-GÃŒnlÃŒk', +'ovpn mgmt in root range' => 'BaÄlantı noktası numarası 1024 ya da daha yÃŒksek bir numara olmalıdır.', 'ovpn mtu-disc' => 'MTU algılama', 'ovpn mtu-disc and mtu not 1500' => 'MTU algılama 1500 MTU olmasını gerektirir.', 'ovpn mtu-disc maybe' => 'Ä°steÄe BaÄlı', @@ -1438,9 +1647,11 @@ 'ovpn mtu-disc off' => 'Devre dıÅı', 'ovpn mtu-disc with mssfix or fragment' => 'MTU algılama mssfix veya parçası ile kullanılamaz.', 'ovpn mtu-disc yes' => 'Zorunlu', +'ovpn no connections' => 'Hiçbir aktif OpenVPN baÄlantısı yok', 'ovpn on blue' => 'MAVÄ° ÃŒzerindeki OpenVPN', 'ovpn on orange' => 'TURUNCU ÃŒzerindeki OpenVPN', 'ovpn on red' => 'KIRMIZI ÃŒzerindeki OpenVPN', +'ovpn port in root range' => '1024 ya da daha yÃŒksek bir baÄlantı noktası numarası gereklidir..', 'ovpn routes push' => 'Yollar (her satırda bir tane) örneÄin 192.168.10.0/255.255.255.0 192.168.20.0/24', 'ovpn routes push options' => 'Yol baskı seçenekleri', 'ovpn server status' => 'GÃŒncel OpenVPN sunucu durumu:', @@ -1463,25 +1674,27 @@ 'ovpn_processprioVH' => 'Ãok yÃŒksek', 'ovpnstatus log' => 'OVPN-Durum-GÃŒnlÃŒk', 'ovpnsys log' => 'OVPN-Durum-GÃŒnlÃŒk', +'p2p block' => 'P2P AÄları', +'p2p block save notice' => 'YaptıÄınız deÄiÅiklikleri uygulamak için gÃŒvenlik duvarı kural ayarlarını lÃŒtfen yeniden yÃŒkleyin.', 'package failed to install' => 'Paket yÃŒklenemedi.', 'pagerefresh' => 'Sayfa yenileniyor. LÃŒtfen bekleyin.', 'pakfire accept all' => 'TÃŒm paketleri yÃŒklemek istiyor musunuz?', 'pakfire ago' => 'önce yapıldı.', -'pakfire available addons' => 'Mevcut Eklentiler:', -'pakfire configuration' => 'Pakfire Yapılandırması', +'pakfire available addons' => 'Mevcut eklentiler:', +'pakfire configuration' => 'Pakfire yapılandırması', 'pakfire core update auto' => 'Otomatik olarak çekirdek ve eklenti gÃŒncelleÅtirmelerini yÃŒkle:', 'pakfire core update level' => 'Ãekirdek-GÃŒncelleme-Seviyesi', 'pakfire health check' => 'Yansımanın ulaÅılabilir olup olmadıÄını kontrol et (ping):', 'pakfire install description' => 'AÅaÄıdaki listeden bir veya daha fazla öÄeyi seçtikten sonra<br />eklemek için artı simgesine tıklayınız.', 'pakfire install package' => 'AÅaÄıdaki paketleri yÃŒklemek istediniz: ', -'pakfire installed addons' => 'Kurulu Eklentiler:', +'pakfire installed addons' => 'Kurulu eklentiler:', 'pakfire last core list update' => 'Son çekirdek listesi gÃŒncellemesi', 'pakfire last package update' => 'Son paket listesi gÃŒncellemesi', 'pakfire last serverlist update' => 'Son sunucu listesi gÃŒncellemesi', 'pakfire last update' => 'Son gÃŒncelleme', 'pakfire possible dependency' => ' YÃŒklenemesi gereken paketlerin yÃŒklenebilmesi için buradaki paketlere ihtiyaç duyulabilir.', 'pakfire register' => 'Pakfire-sunucusuna kayıt:', -'pakfire system state' => 'Sistem Durumu', +'pakfire system state' => 'Sistem durumu', 'pakfire uninstall description' => 'AÅaÄıdaki listeden bir veya daha fazla öÄeyi seçtikten sonra<br />kaldırmak için eksi simgesine tıklayınız.', 'pakfire uninstall package' => 'AÅaÄıdaki paketleri kaldırmak istiyorum: ', 'pakfire update daily' => 'GÃŒnlÃŒk gÃŒncellemeleri ara:', @@ -1533,7 +1746,7 @@ 'printing' => 'Yazdırılıyor', 'printing options' => 'yazdırma seçenekleri', 'priority' => 'Ãncelik', -'processes' => 'iÅlemler', +'processes' => 'Ä°Ålemler', 'profile' => 'Profil', 'profile deleted' => 'Silinen profiller: ', 'profile has errors' => 'Profil hataları', @@ -1543,7 +1756,7 @@ 'profile saved' => 'Kaydedilen profiller: ', 'profiles' => 'Profiller:', 'proto' => 'Kural', -'protocol' => 'Kural: ', +'protocol' => 'Kural ', 'proxy' => 'Vekil sunucu', 'proxy access graphs' => 'Vekil sunucu eriÅim grafiÄi', 'proxy admin password' => 'Ãnbellek yönetici parolası', @@ -1582,8 +1795,9 @@ 'rebooting' => 'Yeniden BaÅlat', 'rebooting ipfire' => 'IPFire'ı Yeniden BaÅlat', 'reconnect' => 'Yeniden BaÄlan', -'reconnection' => 'Yeniden BaÄlan', +'reconnection' => 'Yeniden baÄlan', 'red' => 'Ä°nternet', +'red1' => 'KIRMIZI', 'references' => 'Referanslar', 'refresh' => 'Yenile', 'refresh index page while connected' => 'Index.cgi sayfası baÄlandıÄında yenile', @@ -1603,7 +1817,7 @@ 'removable device advice' => 'Bir aygıt takıp yenileyin. Aygıtı kullanmadan önce seçip baÄlayın. Ãıkarmadan önce de ayırın.', 'remove' => 'Kaldır', 'remove ca certificate' => 'CA sertifikasını kaldır', -'remove x509' => 'x509 kaldır', +'remove x509' => 'X509 Kaldır', 'repeat' => 'Tekrar', 'reportfile' => 'Dosya raporu', 'reportlevel' => 'Seviye raporu', @@ -1620,7 +1834,7 @@ 'restart' => 'Yeniden BaÅlat', 'restart ovpn server' => 'OpenVPN sunucusunu yeniden baÅlat', 'restore' => 'Geri YÃŒkle', -'restore defaults' => 'Varsayılanı geri yÃŒkle', +'restore defaults' => 'Varsayılanı Geri YÃŒkle', 'restore hardware settings' => 'Donanım ayarlarını geri yÃŒkle', 'restore settings' => 'Ayarları Sıfırla', 'reverse sort' => 'Ters kronolojik sıralama', @@ -1630,20 +1844,20 @@ 'root user password' => 'Root parolası', 'route subnet is invalid' => 'Alt aÄda geçersiz ek basma yolu', 'router ip' => 'Yönlendirici IP adresi:', -'routing table entries' => 'Yönlendirici Tablo Girdileri:', +'routing table entries' => 'Yönlendirici tablo girdileri:', 'rsvd dst port overlap' => 'IPFire için ayrılmıŠbaÄlantı noktası ile örtÃŒÅen hedef baÄlantı noktası aralıÄı:', 'rsvd src port overlap' => 'IPFire için ayrılmıŠbaÄlantı noktası ile örtÃŒÅen kaynak baÄlantı noktası aralıÄı:', 'rules already up to date' => 'Kurallar zaten yÃŒklenmiÅ.', 'running' => 'ÃALIÅIYOR', 'safe removal of umounted device' => 'BaÄlantısı kesilen aygıtı gÃŒvenli bir Åekilde kaldırabilirsiniz', 'samba' => 'Samba', -'samba status' => 'Samba Durumu', +'samba status' => 'Samba durumu', 'saturday' => 'Cumartesi', 'save' => 'Kaydet', 'save config' => 'ayarları kaydet', 'save error' => 'Yapılandırma arÅiv dosyası kaydedilemiyor.', 'save settings' => 'Ayarları kaydet', -'save-adv-options' => 'GeliÅmiÅ seçenekleri kaydet', +'save-adv-options' => 'GeliÅmiÅ Seçenekleri Kaydet', 'script name' => 'Komut adı:', 'secondary dns' => 'Ä°kincil DNS:', 'secondary ntp server' => 'Ä°kincil NTP sunucusu', @@ -1652,7 +1866,7 @@ 'section' => 'BölÃŒm', 'secure shell server' => 'GÃŒvenli Kabuk Sunucusu', 'security' => 'GÃŒvenlik', -'security options' => 'GÃŒvenlik Seçenekleri', +'security options' => 'GÃŒvenlik seçenekleri', 'select' => 'Seç', 'select dest net' => 'Bir aÄ hedefi seçin.', 'select media' => 'Ortamı seç <br />(çıkartılabilir ortam için sadece FAT desteklenir)', @@ -1665,7 +1879,7 @@ 'serial' => 'Dizi', 'server reserved' => 'BaÄlantı adı sunucusu ayrılmıÅtır, izin verilmez.', 'server restart' => 'OpenVPN sunucu çalıÅırken herhangi bir deÄiÅikliÄi kaydetmek mÃŒmkÃŒn deÄildir.', -'server string' => 'Sunucu Dizisi', +'server string' => 'Sunucu dizisi', 'service' => 'Hizmet', 'service added' => 'Ãzel aÄ hizmeti eklendi', 'service name' => 'Hizmet adı:', @@ -1675,8 +1889,8 @@ 'services' => 'Hizmetler', 'services settings' => 'GÃŒvenlik Duvarı - Hizmet Ayarları', 'set' => 'ayar', -'set time now' => 'Zamanı Åimdi ayarla', -'set time now help' => 'Herhangi bir zamanda eÅitleme etkinliÄi sırasında (hatta yinelenen bir program kullanılırken) <i>Åimdi zamanı ayarla</i> dÃŒÄmesine basın. Bir eÅitleme olmadan önce beÅ dakika veya daha fazla beklemek zorunda olduÄunuzu unutmayın.', +'set time now' => 'Zamanı Åimdi Ayarla', +'set time now help' => 'Herhangi bir zamanda eÅitleme etkinliÄi sırasında (hatta yinelenen bir program kullanılırken) <i>Zamanı Åimdi ayarla</i> dÃŒÄmesine basın. Bir eÅitleme olmadan önce beÅ dakika veya daha fazla beklemek zorunda olduÄunuzu unutmayın.', 'settings' => 'Ayarlar', 'shaping add options' => 'Hizmet ekle', 'shaping list options' => 'Trafik Åekillendirme hizmetleri', @@ -1687,7 +1901,7 @@ 'show areas' => 'alanları göster', 'show ca certificate' => 'CA sertifikalarını göster', 'show certificate' => 'Sertifika göster', -'show crl' => 'Sertifika iptal listesini göster', +'show crl' => 'Sertifika Ä°ptal Listesini Göster', 'show host certificate' => 'Ana bilgisayar sertifikalarını göster', 'show last x lines' => 'Son x satırlarını göster', 'show lines' => 'Satırları göster', @@ -1714,6 +1928,7 @@ 'smbstop' => 'Samba'yı durdur', 'smtphost' => 'SMTP ana bilgisayarı', 'smtpport' => 'SMTP baÄlantı noktası numarası', +'snat new source ip address' => 'Yeni kaynak IP adresi', 'snort hits' => 'Saldırı kuralları için toplam aktif sayı', 'snort working' => 'Snort çalıÅıyor ... TÃŒm iÅlemler baÅarıyla tamamlanana kadar bekleyin.', 'socket options' => 'Soket seçenekleri', @@ -1741,10 +1956,11 @@ 'srcprt range overlaps' => 'Kaynak baÄlantı noktası aralıÄı önceden tanımlanmıŠbir baÄlantı noktası ile çakıÅıyor.', 'srcprt within existing' => 'Kaynak baÄlantı noktası önceden tanımlanmıŠbaÄlantı noktası aralıÄı içinde.', 'ssdmz pinholes' => 'Açık Bölge (DMZ)', -'ssh access' => 'SSH EriÅimi', +'ssh' => 'SSH', +'ssh access' => 'SSH eriÅimi', 'ssh access tip' => 'IPFire SSH varsayılan baÄlantı noktası olarak 222 kullanmıyor!', 'ssh fingerprint' => 'Parmak izi', -'ssh host keys' => 'SSH Sunucu Anahtarı', +'ssh host keys' => 'SSH sunucu anahtarları', 'ssh is disabled' => 'SSH devre dıÅı bırakıldı. Durduruluyor.', 'ssh is enabled' => 'SSH aktifleÅtirildi. Yeniden baÅlatılıyor.', 'ssh key' => 'Anahtar', @@ -1775,7 +1991,7 @@ 'static routes' => 'Statik Yollar', 'status' => 'Durum', 'status information' => 'Durum bilgisi', -'status ovpn' => '4. OpenVPN Durumu / Yapılandırma:', +'status ovpn' => 'OpenVPN', 'std classes' => 'Standart sınıflar', 'stop' => 'Dur', 'stop ovpn server' => 'OpenVPN Sunucusunu Durdur', @@ -1789,16 +2005,17 @@ 'successfully refreshed updates list' => 'BaÅarıyla gÃŒncellemeler listesi yenilendi.', 'summaries kept' => 'GÃŒnlÃŒk özetlerini tut:', 'sunday' => 'Pazar', +'support donation' => 'LÃŒtfen baÄıÅta bulunarak IPFire projesine destek olun', 'swap' => 'takas alanı', 'swap usage per' => 'takas alanı kullanımı - ', 'system' => 'Sistem', 'system graphs' => 'Sistem Grafikleri', -'system information' => 'Sistem bilgisi', +'system information' => 'Sistem Bilgisi', 'system log viewer' => 'Sistem GÃŒnlÃŒk GörÃŒntÃŒleyicisi', 'system logs' => 'Sistem GÃŒnlÃŒkleri', 'system status information' => 'Sistem Durum Bilgisi', 'telephone not set' => 'Telefon ayarlanmamıÅ.', -'template' => 'Ãn ayar', +'template' => 'Ãn Ayar', 'template warning' => 'QoS kurmak için iki seçeneÄiniz vardır. Ä°lk olarak kaydet dÃŒÄmesine basıp kendi sınıf ve kurallarınızı oluÅturabilirsiniz. Ä°kinci olarak ise ön ayar dÃŒÄmesine basıp sınıf ve kurallar için bir Åablonun kurulmasını saÄlayın. ', 'test' => 'test', 'test email could not be sent' => 'Test e-posta gönderilemedi', @@ -1841,20 +2058,22 @@ 'tor accounting period daily' => 'gÃŒnlÃŒk', 'tor accounting period monthly' => 'aylık', 'tor accounting period weekly' => 'haftalık', -'tor acls' => 'EriÅim KontrolÃŒ', +'tor acls' => 'EriÅim kontrolÃŒ', 'tor allowed subnets' => 'Ä°zin verilen alt aÄlar (her satırda bir tane)', 'tor bandwidth burst' => 'En bÃŒyÃŒk ayırma', 'tor bandwidth rate' => 'En bÃŒyÃŒk oran', -'tor bandwidth settings' => 'Bant GeniÅliÄi Ayarları', +'tor bandwidth settings' => 'Bant geniÅliÄi ayarları', 'tor bandwidth unlimited' => 'sınırsız', 'tor bridge enabled' => 'Tor köprÃŒsÃŒnÃŒ etkinleÅtir', -'tor common settings' => 'Genel Ayarlar', -'tor configuration' => 'Tor Yapılandırması', +'tor common settings' => 'Genel ayarlar', +'tor configuration' => 'Tor yapılandırması', 'tor connected relays' => 'BaÄlı aktarımlar', -'tor contact info' => 'Ä°letiÅim Bilgileri', +'tor contact info' => 'Ä°letiÅim bilgileri', 'tor daemon' => 'Artalan sÃŒreci', -'tor enabled' => 'Tor Aktif', +'tor directory port' => 'Dizin baÄlantı noktası', +'tor enabled' => 'Tor aktif', 'tor errmsg invalid accounting limit' => 'Geçersiz hesap sınırı', +'tor errmsg invalid directory port' => 'Geçersiz dizin baÄlantı noktası', 'tor errmsg invalid ip or mask' => 'Geçersiz IP alt aÄı', 'tor errmsg invalid node id' => 'Geçersiz dÃŒÄÃŒm kimliÄi (ID)', 'tor errmsg invalid relay address' => 'Geçersiz aktarma adresi', @@ -1863,10 +2082,10 @@ 'tor errmsg invalid socks port' => 'Geçersiz SOCKS baÄlantı noktası', 'tor exit country' => 'Ãlçe çıkıÅı', 'tor exit country any' => 'Herhangi bir ÃŒlke', -'tor exit nodes' => 'ÃıkıŠDÃŒÄÃŒmleri', +'tor exit nodes' => 'ÃıkıŠdÃŒÄÃŒmleri', 'tor relay address' => 'Aktarma adresleri', -'tor relay configuration' => 'Tor Aktarma Yapılandırması', -'tor relay enabled' => 'Tor Aktarma Aktif', +'tor relay configuration' => 'Tor aktarma yapılandırması', +'tor relay enabled' => 'Tor aktarma aktif', 'tor relay external address' => 'Aktarım dıŠadresi', 'tor relay fingerprint' => 'Aktarım parmak izi', 'tor relay mode' => 'Aktarım biçimi', @@ -1876,7 +2095,7 @@ 'tor relay mode relay' => 'Sadece aktarım', 'tor relay nickname' => 'Aktarım takma adı', 'tor relay port' => 'Aktarım baÄlantı noktası', -'tor service' => 'Tor Servisi', +'tor service' => 'Tor servisi', 'tor socks port' => 'SOCKS baÄlantı noktası', 'tor stats' => 'Ä°statistik', 'tor traffic limit hard' => 'Trafik sınırına ulaÅıldı.', @@ -1923,7 +2142,7 @@ 'unable to contact' => 'BaÄlantı Kurulamadı', 'unencrypted' => 'Åifresiz', 'uninstall' => 'Kaldır', -'unix charset' => 'UNIX Karakterleri', +'unix charset' => 'UNIX karakterleri', 'unix group' => ' UNIX kullanıcı grubu', 'unix password sync' => 'Unix Parola EÅitleme', 'unix shell' => 'UNIX KabuÄu', @@ -2002,7 +2221,7 @@ 'updxlrtr total data from cache' => 'Ãnbellekten teslim edilen toplam veri (bayt)', 'updxlrtr total files' => 'Ãnbellekteki toplam dosya', 'updxlrtr unknown' => 'Bilinmeyen', -'updxlrtr update accelerator' => 'GÃŒncelleme Hızlandırıcısı', +'updxlrtr update accelerator' => 'GÃŒncelleme hızlandırıcısı', 'updxlrtr update information' => 'YÃŒklenebilir bir gÃŒncelleÅtirime sÃŒrÃŒmÃŒ var. Daha fazla bilgi için <a href="http://update-accelerator.advproxy.net" target="_blank">http://update-accelerator.advproxy.net</a> adresini ziyaret edin.', 'updxlrtr update notification' => 'GÃŒncelleme bildirimi!', 'updxlrtr used by' => 'Kullanan', @@ -2011,16 +2230,17 @@ 'updxlrtr weekly' => 'haftalık', 'updxlrtr year' => 'Bir yıl', 'upgrade' => 'yÃŒkselt', +'uplink' => 'YÃŒkleme baÄlantısı', 'uplink speed' => 'YÃŒkleme hızı (kbit/san)', 'uplink std class' => 'Standart yÃŒkleme hızı sınıf', 'upload' => 'YÃŒkle', 'upload a certificate' => 'Sertifikası yÃŒkle:', 'upload a certificate request' => 'Sertifika isteÄi yÃŒkle:', -'upload ca certificate' => 'CA sertifikası yÃŒkle', +'upload ca certificate' => 'CA Sertifikası YÃŒkle', 'upload fcdsl.o' => 'KALDIRILACAK', 'upload file' => 'Dosya yÃŒkle', 'upload new ruleset' => 'Yeni kurallar yÃŒkle', -'upload p12 file' => 'PKCS12 dosyası yÃŒkle', +'upload p12 file' => 'PKCS12 Dosyası YÃŒkle', 'upload static key' => 'Statik bir anahtar yÃŒkle', 'upload successful' => 'YÃŒkleme baÅarılı.', 'upload synch.bin' => 'synch.bin yÃŒkle', @@ -2046,17 +2266,17 @@ 'urlfilter assigned users' => 'Atanan kullanıcılar', 'urlfilter automatic blacklist update' => 'Otomatik olarak kara listeyi gÃŒncelleÅtir', 'urlfilter automatic update schedule' => 'Otomatik olarak gÃŒncelleÅtirme zamanı', -'urlfilter back to main page' => 'Ana sayfaya geri dön', +'urlfilter back to main page' => 'Ana Sayfaya Geri Dön', 'urlfilter background image' => 'UrlFilter arka plan resmi', 'urlfilter background text' => 'Engellenen sayfanın altında özel bir arkaplan görÃŒntÃŒsÃŒ kullanmak için .jpg dosyası yÃŒkleme', -'urlfilter backup' => 'Yedek dosyası oluÅtur', +'urlfilter backup' => 'Yedek Dosyası OluÅtur', 'urlfilter backup error' => 'Yedek dosyası oluÅturulamıyor', 'urlfilter backup settings' => 'Yedek URL filtre ayarları', 'urlfilter banned clients' => 'Yasaklanan IP adresleri', 'urlfilter blacklist age 1' => 'Son kara liste baÅarıyla gÃŒncellendi', 'urlfilter blacklist age 2' => 'gÃŒn önce', 'urlfilter blacklist category name' => 'Kara liste kategori adı', -'urlfilter blacklist editor' => 'Kara liste dÃŒzenleyicisi', +'urlfilter blacklist editor' => 'Kara Liste DÃŒzenleyicisi', 'urlfilter blacklist editor info' => 'Kara liste dosyanızı oluturma ve dÃŒzenleme', 'urlfilter blacklist name' => 'Kara liste adı', 'urlfilter blacklist update' => 'Kara listeyi gÃŒncelleÅtir', @@ -2089,7 +2309,7 @@ 'urlfilter custom url' => 'Ãzel kaynak URL adresi', 'urlfilter custom url required' => 'Gerekli özel kaynak URL', 'urlfilter custom whitelist' => 'Ãzel beyaz liste', -'urlfilter daily' => 'gÃŒnlÃŒk', +'urlfilter daily' => 'GÃŒnlÃŒk', 'urlfilter disabled' => 'Kapalı', 'urlfilter domains' => 'Etki alanı (her satırda bir tane)', 'urlfilter dont restart urlfilter' => 'URL filtreyi yeniden baÅlatma', @@ -2112,7 +2332,7 @@ 'urlfilter enabled' => 'Aktif:', 'urlfilter example' => 'ÃrneÄin: www.etkialani.com', 'urlfilter example ads' => 'ÃrneÄin: www.etkialani.com/reklam/', -'urlfilter export blacklist' => 'Kara listeyi dıÅarı aktar', +'urlfilter export blacklist' => 'Kara Listeyi DıÅarı Aktar', 'urlfilter export error' => 'DıÅarı aktarma dosyası dosyası oluÅturulamıyor', 'urlfilter expressions' => 'Ä°fadeler (her satırda bir tane)', 'urlfilter file ext block' => 'Engellenen dosya uzantısı', @@ -2123,16 +2343,16 @@ 'urlfilter friday' => 'Cum', 'urlfilter from' => 'BaÅlangıç', 'urlfilter hourly' => 'Saatlik', -'urlfilter import blacklist' => 'Kara listeyi al', +'urlfilter import blacklist' => 'Kara Listeyi Al', 'urlfilter import text' => 'Ãnceden kaydedilmiÅ *.tar.gz uzantılı kara liste dÃŒzenleyici dosyasını yÃŒklemek için aÅaÄıdan seçin', -'urlfilter install blacklist' => 'Kara listeye yÃŒkle', +'urlfilter install blacklist' => 'Kara Listeye YÃŒkle', 'urlfilter install information' => 'Yeni kara liste otomatik olarak oluÅturulup veritabanları için derlenecektir. Kara liste boyutuna baÄlı olarak gÃŒncelleme iÅlemi birkaç dakika zaman alabilir. URL filtreyi yeniden baÅlatmadan önce bu görevin muhakkak bitirilmesini bekleyin.', 'urlfilter invalid content' => 'Dosya squidGuard uyumlu kara liste deÄil', 'urlfilter invalid import file' => 'Dosya geçerli URL filtre kara liste dÃŒzenleyicisi dosyası deÄil', 'urlfilter invalid ip or mask error' => 'Geçersiz IP adresi veya aÄ maskesi', 'urlfilter invalid restore file' => 'Bu dosya geçerli bir URL filtre yedek dosyası deÄil', 'urlfilter invalid user error' => 'Geçersiz kullanıcı adı', -'urlfilter load blacklist' => 'Kara liste dosyasını yÃŒkle', +'urlfilter load blacklist' => 'Kara Liste Dosyasını YÃŒkle', 'urlfilter local file redirection' => 'Yeniden yerel dosyaya yönlendir', 'urlfilter log' => 'urlfiltre gÃŒnlÃŒkleri', 'urlfilter log summary' => 'URL filtre kaydı için toplam sayı', @@ -2140,13 +2360,13 @@ 'urlfilter logs' => 'URL Filtre GÃŒnlÃŒkleri', 'urlfilter maintenance' => 'URL filtre bakımı', 'urlfilter manage local file repository' => 'Yerel dosya deposunu yönetin', -'urlfilter manage repository' => 'Depoyu yönet', +'urlfilter manage repository' => 'Depoyu Yönet', 'urlfilter minutes' => 'dakika', 'urlfilter mode allow' => 'Ä°zin ver', 'urlfilter mode block' => 'Engelle', 'urlfilter mon' => 'P', 'urlfilter monday' => 'Pzt', -'urlfilter monthly' => 'aylık', +'urlfilter monthly' => 'Aylık', 'urlfilter msg text 1' => '1. mesaj satırı', 'urlfilter msg text 2' => '2. mesaj satırı', 'urlfilter msg text 3' => '3. mesaj satırı', @@ -2156,6 +2376,7 @@ 'urlfilter quota restart message' => 'Not: URL filtrenin yeniden baÅlatılması tÃŒm kullanıcılar için zaman sayaçlarını sıfırlar', 'urlfilter quota time error' => 'Zaman kotası için geçersiz deÄer', 'urlfilter quota user error' => 'En az bir kullanıcı adı gereklidir', +'urlfilter redirect template' => 'Sayfa Åablonuna yönlendir', 'urlfilter redirectpage' => 'Bu URL adresine yönlendir', 'urlfilter remove file' => 'Deposundan dosyayı kaldır', 'urlfilter renewal' => 'Yenile', @@ -2165,7 +2386,7 @@ 'urlfilter restart' => 'URL filtreyi yeniden baÅlat', 'urlfilter restart message' => 'DeÄiÅen URL filtre kurallarının aktifleÅtirilmesi için yeniden baÅlatılmalıdır', 'urlfilter restart notification' => 'DeÄiÅen kuralları aktifleÅtir', -'urlfilter restore' => 'Yedek dosyasını içeri aktar', +'urlfilter restore' => 'Yedek Dosyasını İçeri Aktar', 'urlfilter restore results' => 'Sonuçları geri yÃŒkle', 'urlfilter restore settings' => 'URL filtre ayarlarını geri yÃŒkle', 'urlfilter restore success' => 'URL filtre yapılandırması geri yÃŒklendi. URL filtresi yeni ayarlarını aktifleÅtirmek için yeniden baÅlatılması gerekir.', @@ -2174,12 +2395,12 @@ 'urlfilter sat' => 'C', 'urlfilter saturday' => 'Cmt', 'urlfilter save and restart' => 'Kaydet ve Yeniden BaÅlat', -'urlfilter save schedule' => 'GÃŒncelleme ayarlarını kaydet', +'urlfilter save schedule' => 'GÃŒncelleme Ayarlarını Kaydet', 'urlfilter select blacklist' => 'Mevcut kara listeyi seçin', 'urlfilter select multi' => 'Birden çok kategori seçmek için Ctrl tuÅuna basın', 'urlfilter select source' => 'Ä°ndirmek için kaynaÄı seçin', -'urlfilter set time constraints' => 'Zaman kısıtlamalarını ayarla', -'urlfilter set user quota' => 'Kullanıcı kotasını ayarla', +'urlfilter set time constraints' => 'Zaman Kısıtlamalarını Ayarla', +'urlfilter set user quota' => 'Kullanıcı Kotasını Ayarla', 'urlfilter show category' => 'Engellenen sayfada kategori göster', 'urlfilter show dnserror' => '"DNS Hatası" URL adreslerini engellemek için kullan', 'urlfilter show ip' => 'Engellenen sayfada IP göster', @@ -2203,12 +2424,12 @@ 'urlfilter unfiltered clients' => 'Yasaksız IP adresleri', 'urlfilter update information' => 'YÃŒklenebilir gÃŒncelleÅtirilmiÅ bir sÃŒrÃŒmÃŒ var. Daha fazla bilgi için <a href="http://www.urlfilter.net" target="_blank">http://www.urlfilter.net</a> adresini ziyaret edin.', 'urlfilter update notification' => 'GÃŒncelleme bildirimi!', -'urlfilter update now' => 'Åimdi gÃŒncelle', +'urlfilter update now' => 'Åimdi GÃŒncelle', 'urlfilter update results' => 'Kara liste gÃŒncelleÅtirme sonuçları', 'urlfilter update rule' => 'GÃŒncelle', 'urlfilter upload background' => 'Resim yÃŒkle', -'urlfilter upload blacklist' => 'Kara liste dosyası yÃŒkle', -'urlfilter upload file' => 'Dosya yÃŒkle', +'urlfilter upload blacklist' => 'Kara Liste Dosyası YÃŒkle', +'urlfilter upload file' => 'Dosya YÃŒkle', 'urlfilter upload file information 1' => 'Not', 'urlfilter upload file information 2' => 'URL filtre depo deÄiÅikliklerini aktifleÅtirmek için yeniden baÅlatılması gerekir.', 'urlfilter upload file text' => 'Yerel depoya dosya eklemek için aÅaÄıdan bir dosya yÃŒkleyin', @@ -2225,7 +2446,7 @@ 'urlfilter wed' => 'Ã', 'urlfilter wednesday' => 'Ãar', 'urlfilter weekday error' => 'SeçilmiÅ en az bir gÃŒn olmalıdır', -'urlfilter weekly' => 'haftalık', +'urlfilter weekly' => 'Haftalık', 'urlfilter whitelist always allowed' => 'Yasaklı istemciler için özel beyaz liste izini', 'urlfilter wrong filetype' => 'Uzantısı .tar.gz olan dosya yok', 'usb modem on acm0' => 'ACM0 ÃŒzerindeki USB Modem', @@ -2301,11 +2522,11 @@ 'weeks' => 'hafta', 'wildcards' => 'Joker karakterler', 'wins server' => 'Wins Sunucusu', -'wins support' => 'Wins DesteÄi', +'wins support' => 'Wins desteÄi', 'wireless' => 'KABLOSUZ AÄ', 'wireless config added' => 'Kablosuz aÄ yapılandırma eklendi', 'wireless config changed' => 'Kablosuz aÄ yapılandırma deÄiÅtirildi', -'wireless configuration' => 'Kablosuz AÄ ayarları', +'wireless configuration' => 'Kablosuz aÄ ayarları', 'wlan client' => 'Kablosuz istemci', 'wlan client advanced settings' => 'GeliÅmiÅ ayarlar', 'wlan client and' => 've', @@ -2336,7 +2557,8 @@ 'wlan client wpa mode ccmp ccmp' => 'CCMP-CCMP', 'wlan client wpa mode ccmp tkip' => 'CCMP-TKIP', 'wlan client wpa mode tkip tkip' => 'TKIP-TKIP', -'wlanap access point' => 'EriÅim Noktası', +'wlan clients' => 'Kablosuz istemciler', +'wlanap access point' => 'Access Point', 'wlanap channel' => 'Kanal', 'wlanap country' => 'Ãlke Kodu', 'wlanap debugging' => 'Hata ayıklama', @@ -2358,7 +2580,7 @@ 'wlanap wlan settings' => 'WLan Ayarları', 'wlanap wlan status' => 'WLan Durumu', 'wol wakeup' => 'Kalk', -'workgroup' => 'ÃalıÅma Grubu', +'workgroup' => 'ÃalıÅma grubu', 'written bytes' => 'yazılan bayt', 'xtaccess all error' => 'Bu baÄlantı noktası yönlendirme kaydı yapıldıÄında tÃŒm harici eriÅim ayarlanamaz.', 'xtaccess bad transfert' => 'Bir baÄlantı noktası hedef aralıÄı belirtirseniz, kaynak aralıÄı ile aynı olmalıdır!', diff --git a/langs/tr/install/lang_tr.c b/langs/tr/install/lang_tr.c index 3a959b7..3131dd1 100644 --- a/langs/tr/install/lang_tr.c +++ b/langs/tr/install/lang_tr.c @@ -587,4 +587,10 @@ char *tr_tr[] = { "Ä°ndirirken hata!", /* TR_DHCP_FORCE_MTU */ "DHCP mtu zorla:", +/* TR_IDENTIFY */ +"Identify", +/* TR_IDENTIFY_SHOULD_BLINK */ +"Selected port should blink now ...", +/* TR_IDENTIFY_NOT_SUPPORTED */ +"Function is not supported by this port.", }; diff --git a/lfs/Config b/lfs/Config index b9c0fb6..fb0f2e9 100644 --- a/lfs/Config +++ b/lfs/Config @@ -68,7 +68,7 @@ KGCC = gcc # define FIND_FILES cd $(ROOT)/ && find -mount \ - -not -path './tools*' -not -path './tmp*' -not -path './usr/src*' \ + -not -path './tools*' -not -path './tmp*' -not -path './usr/src*' -not -path './run/*' \ -not -path './dev*' -not -path './proc*' -not -path './install*' | sort endef
diff --git a/lfs/Net_SSLeay b/lfs/Net_SSLeay index 7c12d2c..e807e0d 100644 --- a/lfs/Net_SSLeay +++ b/lfs/Net_SSLeay @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 1.36 +VER = 1.55
THISAPP = Net-SSLeay-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 54061638720dd6a325395331c77f21d8 +$(DL_FILE)_MD5 = 473b8d66ca69d5784bb0e428721f58e0
install : $(TARGET)
@@ -70,9 +70,12 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && sed -i "s%,'y'%,'n'%" Makefile.PL cd $(DIR_APP) && yes 'n' | perl Makefile.PL + cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_APP) && make install + @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/apache2 b/lfs/apache2 index f50332b..697fab6 100644 --- a/lfs/apache2 +++ b/lfs/apache2 @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2014 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -25,7 +25,7 @@
include Config
-VER = 2.2.23 +VER = 2.2.26
THISAPP = httpd-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -47,7 +47,7 @@ objects = $(DL_FILE) \ $(DL_FILE) = $(DL_FROM)/$(DL_FILE) httpd-2.2.2-config-1.patch = $(DL_FROM)/httpd-2.2.2-config-1.patch
-$(DL_FILE)_MD5 = ca133de0e4b4b15316990a97186b9993 +$(DL_FILE)_MD5 = 254eda547f8d624604e4bf403241e617 httpd-2.2.2-config-1.patch_MD5 = e02a3ec5925eb9e111400b9aa229f822
install : $(TARGET) @@ -98,9 +98,10 @@ ifeq "$(PASS)" "C" chmod -R 755 /srv/web/ipfire/cgi-bin chmod -R 644 /srv/web/ipfire/html chmod 755 /srv/web/ipfire/html /srv/web/ipfire/html/{index.cgi,redirect.cgi,dial.cgi,images,include,themes,themes/*,themes/*/*} + ln -svf ipfire /srv/web/ipfire/html/themes/ipfire-rounded
- # Reset permissions of redirect templates directories - find /srv/web/ipfire/html/redirect-templates -type d | xargs chmod -v 755 + # Reset permissions of redirect templates and theme directories + find /srv/web/ipfire/html/{redirect-templates,themes} -type d | xargs chmod -v 755 else @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && patch -Np1 -i $(DIR_DL)/httpd-2.2.2-config-1.patch diff --git a/lfs/as86 b/lfs/as86 deleted file mode 100644 index 0acc340..0000000 --- a/lfs/as86 +++ /dev/null @@ -1,77 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = 0.16.17 - -THISAPP = as86-$(VER) -DL_FILE = $(THISAPP).tar.gz -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) -TARGET = $(DIR_INFO)/$(THISAPP) -SUP_ARCH = i586 - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) - -$(DL_FILE)_MD5 = 69bca69aec7a272362bc9e050d289d12 - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && make $(MAKETUNING) - cd $(DIR_APP) && make install - @rm -rf $(DIR_APP) - @$(POSTBUILD) diff --git a/lfs/avahi b/lfs/avahi index 88263a1..0ffbd32 100644 --- a/lfs/avahi +++ b/lfs/avahi @@ -32,9 +32,9 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = avahi -PAK_VER = 3 +PAK_VER = 4
-DEPS = "libdaemon" +DEPS = "dbus libdaemon"
############################################################################### # Top-level Rules @@ -77,10 +77,20 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr --with-avahi-user=avahi \ - --disable-qt3 --disable-qt4 --disable-gtk --disable-gtk3 \ - --disable-pygtk --disable-python-dbus --disable-mono \ - --disable-monodoc --with-distro=none --sysconfdir=/etc + cd $(DIR_APP) && ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --with-avahi-user=avahi \ + --disable-qt3 \ + --disable-qt4 \ + --disable-gtk \ + --disable-gtk3 \ + --disable-pygtk \ + --disable-python-dbus \ + --disable-mono \ + --disable-monodoc \ + --with-distro=none cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install cp -avf $(DIR_SRC)/config/avahi/avahi /etc/init.d/ diff --git a/lfs/beep b/lfs/beep index dc0d22c..437677b 100644 --- a/lfs/beep +++ b/lfs/beep @@ -24,7 +24,7 @@
include Config
-VER = 1.2.2 +VER = 1.3
THISAPP = beep-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = d541419fd7e5642952d7b48cbb40c712 +$(DL_FILE)_MD5 = 49c340ceb95dbda3f97b2daafac7892a
install : $(TARGET)
diff --git a/lfs/binutils b/lfs/binutils index 791483f..08bc7c9 100644 --- a/lfs/binutils +++ b/lfs/binutils @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -114,6 +114,12 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) $(DIR_SRC)/binutils-build && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/binutils-2.22-pt-pax-flags-20111121.patch + + # texinfo 5 syntax-fix. + cd $(DIR_APP) && sed -i -e "s/@colophon/@@colophon/" \ + -e "s/doc@cygnus/doc@@cygnus/" bfd/doc/bfd.texinfo + @mkdir $(DIR_SRC)/binutils-build
# Prevent installing libiberty to lib64. diff --git a/lfs/bluetooth b/lfs/bluetooth index 33e126c..dc5eec7 100644 --- a/lfs/bluetooth +++ b/lfs/bluetooth @@ -109,6 +109,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_SRC)/bluez-hcidump-1.42 && make $(MAKETUNING) cd $(DIR_SRC)/bluez-hcidump-1.42 && make install mv -f /etc/udev/bluetooth.rules /lib/udev/rules.d/24-bluetooth.rules + # Patch udev rules for new udev version + sed -i -e "s/SYSFS{/ATTRS{/g" /lib/udev/rules.d/24-bluetooth.rules + sed -i -e "s/BUS==/SUBSYSTEMS==/g" /lib/udev/rules.d/24-bluetooth.rules # Change bluetooth peername to Hostname-devicenumber sed -i -e 's|name "BlueZ (%d)";|name "%h-%d";|g' /etc/bluetooth/hcid.conf # Create empty config files diff --git a/lfs/bridge-utils b/lfs/bridge-utils index 7ada05d..c7bc8a8 100644 --- a/lfs/bridge-utils +++ b/lfs/bridge-utils @@ -70,6 +70,8 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/bridge-utils-1.5-compile-fix-1.patch + cd $(DIR_APP) && find . -name Makefile.in | xargs sed -i -e "s/^KERNEL_HEADERS/#&/g" cd $(DIR_APP) && autoreconf -vfi cd $(DIR_APP) && ./configure --prefix=/usr cd $(DIR_APP) && make $(MAKETUNING) diff --git a/lfs/cdrom b/lfs/cdrom index ede343e..5a85002 100644 --- a/lfs/cdrom +++ b/lfs/cdrom @@ -52,6 +52,10 @@ md5 : ###############################################################################
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + # Update /etc/system-release, because the string might have changed + # since stage2 has been executed.. + echo "$(SYSTEM_RELEASE)" > /etc/system-release + rm -rf /install/cdrom /tmp/* mkdir -p /install/cdrom/doc
@@ -113,4 +117,5 @@ else cd /install/cdrom && mkisofs -J -r -V "$(NAME)_$(VERSION)" \ -b boot/isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table \ -c boot/isolinux/boot.catalog . > /install/images/$(SNAME)-$(VERSION).$(MACHINE)-full-core$(CORE).iso + isohybrid /install/images/$(SNAME)-$(VERSION).$(MACHINE)-full-core$(CORE).iso endif diff --git a/lfs/clamav b/lfs/clamav index bae350c..4a9a5a2 100644 --- a/lfs/clamav +++ b/lfs/clamav @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2014 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 0.97.8 +VER = 0.98.1
THISAPP = clamav-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,10 +32,14 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = clamav -PAK_VER = 22 +PAK_VER = 24
DEPS = ""
+ifeq "$(MACHINE_TYPE)" "arm" +CONFIGURE_FLAGS = --disable-fanotify +endif + ############################################################################### # Top-level Rules ############################################################################### @@ -44,7 +48,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = ac52bcbad3ea72eac08fedb9772f648b +$(DL_FILE)_MD5 = b1ec7b19dea8385954515ef1d63576d8
install : $(TARGET)
@@ -77,7 +81,10 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/var/ipfire/clamav + cd $(DIR_APP) && ./configure \ + --prefix=/usr \ + --sysconfdir=/var/ipfire/clamav \ + $(CONFIGURE_FLAGS) cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install mkdir -p /usr/share/clamav/ @@ -86,5 +93,10 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) rm -rfv /usr/share/clamav/*.cvd mkdir -p /var/run/clamav chown clamav:clamav /var/run/clamav + + # Disable PaX mprotect for clamd and freshclam + paxctl -cm /usr/sbin/clamd + paxctl -cm /usr/bin/freshclam + @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/configroot b/lfs/configroot index 1260ceb..3232d38 100644 --- a/lfs/configroot +++ b/lfs/configroot @@ -50,59 +50,64 @@ $(TARGET) : @$(PREBUILD)
# Create all directories - for i in addon-lang auth backup ca certs connscheduler crls ddns dhcp dhcpc dmzholes dns dnsforward \ - ethernet extrahd/bin fwlogs isdn key langs logging mac main menu.d modem net-traffic \ - net-traffic/templates nfs optionsfw outgoing/bin outgoing/groups outgoing/groups/ipgroups \ - outgoing/groups/macgroups ovpn patches pakfire portfw ppp private proxy/advanced/cre \ + for i in addon-lang auth backup ca certs connscheduler crls ddns dhcp dhcpc dns dnsforward \ + ethernet extrahd/bin fwlogs fwhosts firewall isdn key langs logging mac main \ + menu.d modem net-traffic net-traffic/templates nfs optionsfw \ + ovpn patches pakfire portfw ppp private proxy/advanced/cre \ proxy/calamaris/bin qos/bin red remote sensors snort time tripwire/report \ updatexlrator/bin updatexlrator/autocheck urlfilter/autoupdate urlfilter/bin upnp vpn \ - wakeonlan wireless xtaccess ; do \ + wakeonlan wireless ; do \ mkdir -p $(CONFIG_ROOT)/$$i; \ done
# Touch empty files for i in auth/users backup/include.user backup/exclude.user \ certs/index.txt ddns/config ddns/noipsettings ddns/settings ddns/ipcache dhcp/settings \ - dhcp/fixleases dhcp/advoptions dhcp/dhcpd.conf.local dmzholes/config dns/settings dnsforward/config ethernet/aliases ethernet/settings ethernet/known_nics ethernet/scanned_nics \ - ethernet/wireless extrahd/scan extrahd/devices extrahd/partitions extrahd/settings fwlogs/ipsettings fwlogs/portsettings \ - isdn/settings mac/settings main/disable_nf_sip main/hosts main/routing main/settings net-traffic/settings optionsfw/settings outgoing/settings outgoing/rules \ + dhcp/fixleases dhcp/advoptions dhcp/dhcpd.conf.local dns/settings dnsforward/config ethernet/aliases ethernet/settings ethernet/known_nics ethernet/scanned_nics \ + ethernet/wireless extrahd/scan extrahd/devices extrahd/partitions extrahd/settings firewall/settings firewall/config firewall/input firewall/outgoing \ + fwhosts/customnetworks fwhosts/customhosts fwhosts/customgroups fwhosts/customservicegrp fwlogs/ipsettings fwlogs/portsettings \ + isdn/settings mac/settings main/disable_nf_sip main/hosts main/routing main/settings net-traffic/settings optionsfw/settings \ ovpn/ccd.conf ovpn/ccdroute ovpn/ccdroute2 pakfire/settings portfw/config ppp/settings-1 ppp/settings-2 ppp/settings-3 ppp/settings-4 \ ppp/settings-5 ppp/settings proxy/settings proxy/squid.conf proxy/advanced/settings proxy/advanced/cre/enable remote/settings qos/settings qos/classes qos/subclasses qos/level7config qos/portconfig \ qos/tosconfig snort/settings tripwire/settings upnp/settings vpn/config vpn/settings vpn/ipsec.conf \ vpn/ipsec.secrets vpn/caconfig wakeonlan/clients.conf wireless/config wireless/settings; do \ - touch $(CONFIG_ROOT)/$$i; \ + touch $(CONFIG_ROOT)/$$i; \ done
# Copy initial configfiles cp $(DIR_SRC)/config/cfgroot/header.pl $(CONFIG_ROOT)/ cp $(DIR_SRC)/config/cfgroot/general-functions.pl $(CONFIG_ROOT)/ cp $(DIR_SRC)/config/cfgroot/lang.pl $(CONFIG_ROOT)/ - cp $(DIR_SRC)/config/cfgroot/countries.pl $(CONFIG_ROOT)/ + cp $(DIR_SRC)/config/cfgroot/countries.pl $(CONFIG_ROOT)/ cp $(DIR_SRC)/config/cfgroot/graphs.pl $(CONFIG_ROOT)/ cp $(DIR_SRC)/config/cfgroot/advoptions-list $(CONFIG_ROOT)/dhcp/advoptions-list cp $(DIR_SRC)/config/cfgroot/connscheduler-lib.pl $(CONFIG_ROOT)/connscheduler/lib.pl cp $(DIR_SRC)/config/cfgroot/connscheduler.conf $(CONFIG_ROOT)/connscheduler cp $(DIR_SRC)/config/extrahd/* $(CONFIG_ROOT)/extrahd/bin/ cp $(DIR_SRC)/config/cfgroot/sensors-settings $(CONFIG_ROOT)/sensors/settings - cp $(DIR_SRC)/config/menu/* $(CONFIG_ROOT)/menu.d/ + cp $(DIR_SRC)/config/menu/* $(CONFIG_ROOT)/menu.d/ cp $(DIR_SRC)/config/cfgroot/modem-defaults $(CONFIG_ROOT)/modem/defaults cp $(DIR_SRC)/config/cfgroot/modem-settings $(CONFIG_ROOT)/modem/settings cp $(DIR_SRC)/config/cfgroot/net-traffic-lib.pl $(CONFIG_ROOT)/net-traffic/net-traffic-lib.pl - cp $(DIR_SRC)/config/cfgroot/net-traffic-admin.pl $(CONFIG_ROOT)/net-traffic/net-traffic-admin.pl + cp $(DIR_SRC)/config/cfgroot/net-traffic-admin.pl $(CONFIG_ROOT)/net-traffic/net-traffic-admin.pl cp $(DIR_SRC)/config/cfgroot/nfs-server $(CONFIG_ROOT)/nfs/nfs-server - cp $(DIR_SRC)/config/cfgroot/p2protocols $(CONFIG_ROOT)/outgoing/p2protocols - cp $(DIR_SRC)/config/outgoingfw/outgoingfw.pl $(CONFIG_ROOT)/outgoing/bin/ - cp $(DIR_SRC)/config/outgoingfw/defaultservices $(CONFIG_ROOT)/outgoing/ cp $(DIR_SRC)/config/cfgroot/proxy-acl $(CONFIG_ROOT)/proxy/acl-1.4 - cp $(DIR_SRC)/config/qos/* $(CONFIG_ROOT)/qos/bin/ - cp $(DIR_SRC)/config/cfgroot/ssh-settings $(CONFIG_ROOT)/remote/settings - cp $(DIR_SRC)/config/cfgroot/xtaccess-config $(CONFIG_ROOT)/xtaccess/config + cp $(DIR_SRC)/config/qos/* $(CONFIG_ROOT)/qos/bin/ + cp $(DIR_SRC)/config/cfgroot/ssh-settings $(CONFIG_ROOT)/remote/settings cp $(DIR_SRC)/config/cfgroot/time-settings $(CONFIG_ROOT)/time/settings - cp $(DIR_SRC)/config/cfgroot/logging-settings $(CONFIG_ROOT)/logging/settings + cp $(DIR_SRC)/config/cfgroot/logging-settings $(CONFIG_ROOT)/logging/settings cp $(DIR_SRC)/config/cfgroot/useragents $(CONFIG_ROOT)/proxy/advanced cp $(DIR_SRC)/config/cfgroot/ethernet-vlans $(CONFIG_ROOT)/ethernet/vlans - cp $(DIR_SRC)/langs/list $(CONFIG_ROOT)/langs/ - + cp $(DIR_SRC)/langs/list $(CONFIG_ROOT)/langs/ + cp $(DIR_SRC)/config/firewall/convert-xtaccess /usr/sbin/convert-xtaccess + cp $(DIR_SRC)/config/firewall/convert-outgoingfw /usr/sbin/convert-outgoingfw + cp $(DIR_SRC)/config/firewall/convert-dmz /usr/sbin/convert-dmz + cp $(DIR_SRC)/config/firewall/convert-portfw /usr/sbin/convert-portfw + cp $(DIR_SRC)/config/firewall/p2protocols $(CONFIG_ROOT)/firewall/p2protocols + cp $(DIR_SRC)/config/firewall/firewall-policy /usr/sbin/firewall-policy + cp $(DIR_SRC)/config/fwhosts/icmp-types $(CONFIG_ROOT)/fwhosts/icmp-types + cp $(DIR_SRC)/config/fwhosts/customservices $(CONFIG_ROOT)/fwhosts/customservices + cp $(DIR_SRC)/config/fwhosts/customservices $(CONFIG_ROOT)/fwhosts/customservices.default # Oneliner configfiles echo "ENABLED=off" > $(CONFIG_ROOT)/vpn/settings echo "VPN_DELAYED_START=0" >>$(CONFIG_ROOT)/vpn/settings @@ -110,10 +115,25 @@ $(TARGET) : echo "nameserver 1.2.3.4" > $(CONFIG_ROOT)/ppp/fake-resolv.conf echo "DROPNEWNOTSYN=on" >> $(CONFIG_ROOT)/optionsfw/settings echo "DROPINPUT=on" >> $(CONFIG_ROOT)/optionsfw/settings - echo "DROPOUTPUT=on" >> $(CONFIG_ROOT)/optionsfw/settings - echo "DROPINPUT=on" >> $(CONFIG_ROOT)/optionsfw/settings - echo "DROPOUTPUT=on" >> $(CONFIG_ROOT)/optionsfw/settings + echo "DROPFORWARD=on" >> $(CONFIG_ROOT)/optionsfw/settings + echo "FWPOLICY=DROP" >> $(CONFIG_ROOT)/optionsfw/settings + echo "FWPOLICY1=DROP" >> $(CONFIG_ROOT)/optionsfw/settings + echo "FWPOLICY2=DROP" >> $(CONFIG_ROOT)/optionsfw/settings echo "DROPPORTSCAN=on" >> $(CONFIG_ROOT)/optionsfw/settings + echo "DROPOUTGOING=on" >> $(CONFIG_ROOT)/optionsfw/settings + echo "DROPSAMBA=off" >> $(CONFIG_ROOT)/optionsfw/settings + echo "DROPPROXY=off" >> $(CONFIG_ROOT)/optionsfw/settings + echo "SHOWREMARK=on" >> $(CONFIG_ROOT)/optionsfw/settings + echo "SHOWCOLORS=on" >> $(CONFIG_ROOT)/optionsfw/settings + echo "SHOWTABLES=off" >> $(CONFIG_ROOT)/optionsfw/settings + echo "SHOWDROPDOWN=off" >> $(CONFIG_ROOT)/optionsfw/settings + echo "DROPWIRELESSINPUT=on" >> $(CONFIG_ROOT)/optionsfw/settings + echo "DROPWIRELESSFORWARD=on" >> $(CONFIG_ROOT)/optionsfw/settings + echo "POLICY=MODE2" >> $(CONFIG_ROOT)/firewall/settings + echo "POLICY1=MODE2" >> $(CONFIG_ROOT)/firewall/settings + + # set converters executable + chmod 755 /usr/sbin/convert-*
# Modify variables in header.pl sed -i -e "s+CONFIG_ROOT+$(CONFIG_ROOT)+g" \ @@ -131,16 +151,14 @@ $(TARGET) :
# Language files cp $(DIR_SRC)/langs/*/cgi-bin/*.pl $(CONFIG_ROOT)/langs/ - + # Configroot permissions chown -R nobody:nobody $(CONFIG_ROOT) chown root:root $(CONFIG_ROOT) - for i in backup/ header.pl general-functions.pl lang.pl addon-lang/ langs/ red/ ; do \ + for i in backup/ header.pl general-functions.pl graphs.pl lang.pl addon-lang/ langs/ red/ ; do \ chown -R root:root $(CONFIG_ROOT)/$$i; \ done + chown -Rv root:root $(CONFIG_ROOT)/*/bin chown root:nobody $(CONFIG_ROOT)/dhcpc
- # Set outgoingfw.pl executable - chmod 755 $(CONFIG_ROOT)/outgoing/bin/outgoingfw.pl - @$(POSTBUILD) diff --git a/lfs/cpufrequtils b/lfs/cpufrequtils index 6e38b0a..f07e49d 100644 --- a/lfs/cpufrequtils +++ b/lfs/cpufrequtils @@ -37,6 +37,8 @@ PAK_VER = 6
DEPS = ""
+CFLAGS += -fno-PIC + ############################################################################### # Top-level Rules ############################################################################### diff --git a/lfs/cups b/lfs/cups index f182538..60f7e21 100644 --- a/lfs/cups +++ b/lfs/cups @@ -24,7 +24,7 @@
include Config
-VER = 1.4.8 +VER = 1.7.0
THISAPP = cups-$(VER) DL_FILE = $(THISAPP)-source.tar.bz2 @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/cups-$(VER) TARGET = $(DIR_INFO)/$(THISAPP) PROG = cups -PAK_VER = 8 +PAK_VER = 10
DEPS = "ghostscript"
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 0ec52d3f3c69bc2ab5ed70c594edbce6 +$(DL_FILE)_MD5 = 5ab496a2ce27017fcdb3d7ec4818a75a
install : $(TARGET)
@@ -77,12 +77,22 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --disable-nls --sysconfdir=/var/ipfire \ - --enable-libusb=no + cd $(DIR_APP) && \ + ./configure \ + --prefix=/usr \ + --sysconfdir=/var/ipfire \ + --localstatedir=/var \ + --enable-libusb \ + --disable-dbus \ + --disable-avahi + cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_APP) && make install + cd $(DIR_APP) && ln -v -sf /usr/bin/smbspool /usr/lib/cups/backend/smb + install -v -m 754 $(DIR_SRC)/src/initscripts/init.d/cups /etc/rc.d/init.d cp -fv $(DIR_SRC)/config/cups/cupsd.conf /var/ipfire/cups/ + @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/cyrus-sasl b/lfs/cyrus-sasl index 749011f..af2b148 100644 --- a/lfs/cyrus-sasl +++ b/lfs/cyrus-sasl @@ -84,7 +84,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/cyrus-sasl-2.1.22-bad-elif.patch cd $(DIR_APP) && sed -i '/sasl_global/s/^static //' lib/client.c - cd $(DIR_APP) && sed -i 's/cat8/man8/' saslauthd/Makefile.in + cd $(DIR_APP) && sed -i 's/cat8/man8/' saslauthd/Makefile.am + cd $(DIR_APP) && autoconf
ifeq "$(PASS)" "" cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc \ diff --git a/lfs/dracut b/lfs/dracut index 0779a6b..aacf747 100644 --- a/lfs/dracut +++ b/lfs/dracut @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2011 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -73,6 +73,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dracut-006_lzma.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dracut-006_remove_cdrom_wait.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dracut-006_add_run_dir.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dracut-006_remove_scsi_wait.patch
cd $(DIR_APP) && cp -vf $(DIR_SRC)/src/dracut/switch_root.c .
@@ -95,9 +97,10 @@ ifeq "$(MACHINE_TYPE)" "arm" # kirkwood kernel /sbin/dracut --force --verbose --strip /boot/ipfirerd-$(KVER)-kirkwood.img $(KVER)-ipfire-kirkwood cd /boot && mkimage -A arm -T ramdisk -C lzma -d ipfirerd-$(KVER)-kirkwood.img uInit-ipfire-kirkwood - # omap kernel - /sbin/dracut --force --verbose --strip /boot/ipfirerd-$(KVER)-omap.img $(KVER)-ipfire-omap - cd /boot && mkimage -A arm -T ramdisk -C lzma -d ipfirerd-$(KVER)-omap.img uInit-ipfire-omap + # arm7 multi kernel + /sbin/dracut --force --verbose --strip /boot/ipfirerd-$(KVER)-multi.img $(KVER)-ipfire-multi + cd /boot && mkimage -A arm -T ramdisk -C lzma -d ipfirerd-$(KVER)-multi.img uInit-ipfire-multi +# cd /boot && cp -f ipfirerd-$(KVER)-multi.img zInit-ipfire-multi else /sbin/dracut --force --verbose --strip /boot/ipfirerd-$(KVER).img $(KVER)-ipfire endif diff --git a/lfs/e1000e b/lfs/e1000e index 04765a0..58c99c4 100644 --- a/lfs/e1000e +++ b/lfs/e1000e @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2014 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -25,14 +25,9 @@ include Config
VERSUFIX = ipfire$(KCFG) -ifeq "$(KCFG)" "-xen" - KVER = 2.6.32.61 - MODPATH = /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/e1000e -else - MODPATH = /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/ethernet/intel/e1000e -endif +MODPATH = /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/e1000e
-VER = 2.4.14 +VER = 2.5.4
THISAPP = e1000e-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -48,7 +43,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 05bae01409bb699f14297d726df2aa23 +$(DL_FILE)_MD5 = 8a57fc73335bf1ab0e16a02ecccdae76
install : $(TARGET)
diff --git a/lfs/eject b/lfs/eject deleted file mode 100644 index 8683194..0000000 --- a/lfs/eject +++ /dev/null @@ -1,77 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = 2.1.5 - -THISAPP = eject-$(VER) -DL_FILE = $(THISAPP).tar.gz -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/eject -TARGET = $(DIR_INFO)/$(THISAPP) - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) - -$(DL_FILE)_MD5 = b96a6d4263122f1711db12701d79f738 - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr - cd $(DIR_APP) && make $(MAKETUNING) - cd $(DIR_APP) && make install - @rm -rf $(DIR_APP) - @$(POSTBUILD) diff --git a/lfs/fetchmail b/lfs/fetchmail index 33b9f9c..66b9a65 100644 --- a/lfs/fetchmail +++ b/lfs/fetchmail @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,15 +24,15 @@
include Config
-VER = 6.3.16 +VER = 6.3.26
THISAPP = fetchmail-$(VER) -DL_FILE = $(THISAPP).tar.bz2 +DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = fetchmail -PAK_VER = 6 +PAK_VER = 7
DEPS = ""
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 1a40acb371376c7d54fe468c99dfc216 +$(DL_FILE)_MD5 = 61b66faad044afa26e142bb1791aa2b3
install : $(TARGET)
@@ -76,10 +76,15 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr --with-ssl --disable-nls + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar Jxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure \ + --prefix=/usr \ + --with-ssl \ + --disable-nls + cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install + echo "set logfile /var/log/fetchmail.log" > ~/.fetchmailrc echo "set no bouncemail" >> ~/.fetchmailrc echo "set postmaster root" >> ~/.fetchmailrc @@ -87,7 +92,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) echo "#poll SERVERNAME :" >> ~/.fetchmailrc echo "# user <username> pass <password>;" >> ~/.fetchmailrc echo "# mda "/usr/bin/procmail -f %F -d %T";" >> ~/.fetchmailrc + install -v -m 644 $(DIR_SRC)/config/backup/includes/fetchmail \ /var/ipfire/backup/addons/includes/fetchmail + @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/ffmpeg b/lfs/ffmpeg index 0ee9c3e..7494731 100644 --- a/lfs/ffmpeg +++ b/lfs/ffmpeg @@ -31,10 +31,13 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = ffmpeg -PAK_VER = 4 +PAK_VER = 5
DEPS = "ffmpeg-libs sdl lame libvorbis xvid"
+# Don't use PIC for libavcodec +CFLAGS += -fno-PIC -fno-strict-aliasing -Wa,--noexecstack + ############################################################################### # Top-level Rules ############################################################################### diff --git a/lfs/ffmpeg-libs b/lfs/ffmpeg-libs index d12b45b..b29c978 100644 --- a/lfs/ffmpeg-libs +++ b/lfs/ffmpeg-libs @@ -27,7 +27,7 @@ include Config VER = 2008-04-13 THISAPP = ffmpeg-export-$(VER) PROG = ffmpeg-libs -PAK_VER = 4 +PAK_VER = 5
DEPS = ""
diff --git a/lfs/fireinfo b/lfs/fireinfo index 133111c..f1ee58a 100644 --- a/lfs/fireinfo +++ b/lfs/fireinfo @@ -24,7 +24,7 @@
include Config
-VER = 2.1.7 +VER = 2.1.9
THISAPP = fireinfo-v$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 97f6744c1ff61eb104a9278df12451c8 +$(DL_FILE)_MD5 = a4dbb3a4111f263b5059b2f76b14b32c
install : $(TARGET)
@@ -70,11 +70,13 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && python setup.py build - cd $(DIR_APP) && python setup.py install
- # Remove egg-info - rm -rvf /usr/lib/python*/site-packages/fireinfo*.egg-info + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/fireinfo-0001-Exclude-some-more-invalid-patterns.patch + + cd $(DIR_APP) && [ -x "configure" ] || sh ./autogen.sh + cd $(DIR_APP) && ./configure --prefix=/usr + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make install
@rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/flash-images b/lfs/flash-images index 36a343d..f74c7e1 100644 --- a/lfs/flash-images +++ b/lfs/flash-images @@ -49,23 +49,38 @@ IMGinsts := /install/images/$(SNAME)-$(VERSION).1gb-ext4-scon.$(MACHINE)-full-co MNThdd := /install/harddisk IMGpart := /install/images/part_area IMGboot := /install/images/bootfs -# don't change SIZEboot this without checking Image size -SIZEboot := 64 IMGroot := /install/images/rootfs -SIZEroot := 600 + +# All sizes in blocks +ifeq "$(MACHINE_TYPE)" "arm" + S_OFFSET = 8192 + + # FAT32 + PART_TYPE = c +else + S_OFFSET = 32 + + # Logical + PART_TYPE = L +endif + +# /boot: 64MB - OFFSET +# / : 600MB +S_BOOT := $(shell echo $$(( 131072 - $(S_OFFSET) ))) +S_ROOT := 1228800
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) rm -rf $(MNThdd) $(IMGinst) $(IMGpart) $(IMGboot) $(IMGroot) && mkdir -p $(MNThdd)
# Create first 32 sectors of image - dd bs=1k if=/dev/zero of=$(IMGpart) count=16 + dd if=/dev/zero of=$(IMGpart) bs=512 count=$(S_OFFSET)
# Create images for filesystems - dd bs=1K if=/dev/zero of=$(IMGboot) count=65520 # 64MB-16K - dd bs=1M if=/dev/zero of=$(IMGroot) count=$(SIZEroot) + dd if=/dev/zero of=$(IMGboot) bs=512 count=$(S_BOOT) + dd if=/dev/zero of=$(IMGroot) bs=512 count=$(S_ROOT)
# Format them -ifeq "$(MACHINE_TYPE)" "arm" +ifeq "$(PART_TYPE)" "c" mkfs.vfat $(IMGboot) else mkfs.ext2 -F $(IMGboot) @@ -86,7 +101,8 @@ endif # Install MLO and uboot first ifeq "$(MACHINE_TYPE)" "arm" cp -v /boot/MLO $(MNThdd)/boot/ - cp -v /boot/u-boot.bin $(MNThdd)/boot/ + cp -v /boot/u-boot.img $(MNThdd)/boot/ + cp -v /boot/zImage-ipfire-multi $(MNThdd)/boot/ sync umount $(MNThdd)/boot mount -o loop $(IMGboot) $(MNThdd)/boot @@ -104,7 +120,7 @@ endif mount --bind /sys $(MNThdd)/sys chroot $(MNThdd) /usr/bin/perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang" sed -i -e "s|DEVICE1|UUID=$$(blkid -sUUID $(IMGboot) | cut -d'"' -f2)|g" $(MNThdd)/etc/fstab -ifeq "$(MACHINE_TYPE)" "arm" +ifeq "$(PART_TYPE)" "c" # ARM flash images have a VFAT partition for /boot. sed -i -e "s|ext2|vfat|" $(MNThdd)/etc/fstab endif @@ -136,7 +152,7 @@ endif umount $(MNThdd)
# zerofree the ext2 images to get better compression -ifneq "$(MACHINE_TYPE)" "arm" +ifneq "$(PART_TYPE)" "c" zerofree $(IMGboot) -fsck.ext2 -f -y $(IMGboot) fsck.ext2 -f -y $(IMGboot) @@ -149,13 +165,8 @@ endif cat $(IMGpart) $(IMGboot) $(IMGroot) > $(IMGinst)
# Write Partition table -ifneq "$(MACHINE_TYPE)" "arm" - echo -e ",$(SIZEboot),L,*\n,0,0\n,$(SIZEroot),L\n,0,0\n" \ - | sfdisk -D -uM -H 64 -S 32 $(IMGinst) -else - echo -e ",$(SIZEboot),c,*\n,0,0\n,$(SIZEroot),L\n,0,0\n" \ - | sfdisk -D -uM -H 64 -S 32 $(IMGinst) -endif + echo -e "$(S_OFFSET),$(S_BOOT),$(PART_TYPE),*\n,0,0\n$$(( $(S_BOOT) + $(S_OFFSET) )),$(S_ROOT),L\n,0,0\n" \ + | sfdisk -D -uS -H 64 -S 32 $(IMGinst)
ifneq "$(MACHINE_TYPE)" "arm" # Install grub @@ -182,7 +193,7 @@ ifneq "$(MACHINE_TYPE)" "arm" sed -i -e "s| panic=10 | console=ttyS0,115200n8 panic=10 |g" $(MNThdd)/boot/grub/grub.conf else sed -i -e "s| console=tty1 | console=ttyAMA0,115200n8 |g" $(MNThdd)/boot/cmdline.txt - sed -i -e "s| console=tty1 omapfb.mode=dvi:800x600MR-16@60 | console=ttyO2,115200n8 |g" $(MNThdd)/boot/boot.script + sed -i -e "s| console=tty1 | console=ttyO2,115200n8 |g" $(MNThdd)/boot/boot.script cd $(MNThdd)/boot && ./convert_bootscript endif
@@ -198,7 +209,7 @@ endif umount $(MNThdd)
# zerofree the ext3 images to get better compression -ifneq "$(MACHINE_TYPE)" "arm" +ifneq "$(PART_TYPE)" "c" zerofree $(IMGboot) -fsck.ext2 -f -y $(IMGboot) fsck.ext2 -f -y $(IMGboot) @@ -212,13 +223,8 @@ endif rm -vf $(IMGpart) $(IMGboot) $(IMGroot)
# Write Partition table -ifneq "$(MACHINE_TYPE)" "arm" - echo -e ",$(SIZEboot),L,*\n,0,0\n,$(SIZEroot),L\n,0,0\n" \ - | sfdisk -D -uM -H 64 -S 32 $(IMGinsts) -else - echo -e ",$(SIZEboot),c,*\n,0,0\n,$(SIZEroot),L\n,0,0\n" \ - | sfdisk -D -uM -H 64 -S 32 $(IMGinsts) -endif + echo -e "$(S_OFFSET),$(S_BOOT),$(PART_TYPE),*\n,0,0\n$$(( $(S_BOOT) + $(S_OFFSET) )),$(S_ROOT),L\n,0,0\n" \ + | sfdisk -D -uS -H 64 -S 32 $(IMGinsts)
ifneq "$(MACHINE_TYPE)" "arm" # Install grub diff --git a/lfs/foomatic b/lfs/foomatic index 712247f..15abf53 100644 --- a/lfs/foomatic +++ b/lfs/foomatic @@ -24,37 +24,41 @@
include Config
-DATE = 20070813 -VER = 3.0-20070813 +VER = 4.0.9 +VER_DB = 4.0-$(DATE) +VER_FILTERS = 4.0.17 +DATE = 20131023
THISAPP = foomatic-$(VER) -DL_FILE = foomatic-filters-$(VER).tar.gz +DL_FILE = foomatic-filters-$(VER_FILTERS).tar.gz DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/foomatic-filters-$(VER) +DIR_APP = $(DIR_SRC)/foomatic-filters-$(VER_FILTERS) TARGET = $(DIR_INFO)/$(THISAPP) PROG = foomatic -PAK_VER = 1 +PAK_VER = 2
DEPS = "cups ghostscript libtiff hplip"
+export LIB_CUPS=/usr/lib/cups +export CUPS_BACKENDS=/usr/lib/cups/backends +export CUPS_FILTERS=/usr/lib/cups/filters +export CUPS_PPDS=/usr/share/cups/model + ############################################################################### # Top-level Rules ###############################################################################
objects = $(DL_FILE) \ - foomatic-db-$(DATE).tar.gz \ - foomatic-db-engine-$(VER).tar.gz \ - foomatic-db-hpijs-$(DATE).tar.gz + foomatic-db-$(VER_DB).tar.gz \ + foomatic-db-engine-$(VER).tar.gz
$(DL_FILE) = $(DL_FROM)/$(DL_FILE) -foomatic-db-$(DATE).tar.gz = $(DL_FROM)/foomatic-db-$(DATE).tar.gz +foomatic-db-$(VER_DB).tar.gz = $(DL_FROM)/foomatic-db-$(VER_DB).tar.gz foomatic-db-engine-$(VER).tar.gz = $(DL_FROM)/foomatic-db-engine-$(VER).tar.gz -foomatic-db-hpijs-$(DATE).tar.gz = $(DL_FROM)/foomatic-db-hpijs-$(DATE).tar.gz
-$(DL_FILE)_MD5 = 41de0f45866ab4c19c1d5e3e2cdab42f -foomatic-db-$(DATE).tar.gz_MD5 = a3ab04b7cc5d870b040ffce19e664698 -foomatic-db-engine-$(VER).tar.gz_MD5 = ec9639719a9c1d4095248e534c3f2d0d -foomatic-db-hpijs-$(DATE).tar.gz_MD5 = e59fa189336e96a9d43cfcfb6222a9c2 +$(DL_FILE)_MD5 = b05f5dcbfe359f198eef3df5b283d896 +foomatic-db-$(VER_DB).tar.gz_MD5 = ffe38b354cb06a1f3d5e3b01b7e58b0e +foomatic-db-engine-$(VER).tar.gz_MD5 = 5b33c1adb21e7b6f3652e9a18d0e6f4e
install : $(TARGET)
@@ -86,11 +90,10 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_SRC)/foomatic-* /usr/share/foomatic && cd $(DIR_SRC) && \ + @rm -rf $(DIR_SRC)/foomatic-* && cd $(DIR_SRC) && \ tar zxf $(DIR_DL)/$(DL_FILE) && \ - tar zxf $(DIR_DL)/foomatic-db-$(DATE).tar.gz && \ - tar zxf $(DIR_DL)/foomatic-db-engine-$(VER).tar.gz && \ - tar zxf $(DIR_DL)/foomatic-db-hpijs-$(DATE).tar.gz + tar zxf $(DIR_DL)/foomatic-db-$(VER_DB).tar.gz && \ + tar zxf $(DIR_DL)/foomatic-db-engine-$(VER).tar.gz cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install @@ -100,8 +103,20 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_SRC)/foomatic-db-engine-$(VER) && ./configure --prefix=/usr --sysconfdir=/etc cd $(DIR_SRC)/foomatic-db-engine-$(VER) && make $(MAKETUNING) cd $(DIR_SRC)/foomatic-db-engine-$(VER) && make install - cd $(DIR_SRC)/foomatic-db-hpijs-$(DATE) && ./configure --prefix=/usr --sysconfdir=/etc - cd $(DIR_SRC)/foomatic-db-hpijs-$(DATE) && make $(MAKETUNING) - cd $(DIR_SRC)/foomatic-db-hpijs-$(DATE) && make install + + # Remove unwanted files + rm -rfv /usr/lib/ppr \ + /etc/foomatic/filter.conf.sample \ + /usr/share/foomatic/templates + + -mkdir -pv /var/cache/foomatic + + -mkdir -pv /etc/foomatic + echo "cups" > /etc/foomatic/defaultspooler + + -mkdir -pv /usr/lib/cups/filter + ln -svf ../../../bin/foomatic-rip /usr/lib/cups/filter/foomatic-rip + ln -svf ../../../bin/foomatic-ppdfile /usr/lib/cups/filter/foomatic-ppdfile + @rm -rf $(DIR_SRC)/foomatic-* @$(POSTBUILD) diff --git a/lfs/fstrim b/lfs/fstrim deleted file mode 100644 index 451af5a..0000000 --- a/lfs/fstrim +++ /dev/null @@ -1,78 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = 0.2 - -THISAPP = fstrim-$(VER) -DL_FILE = $(THISAPP).tar.bz2 -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/fstrim -TARGET = $(DIR_INFO)/$(THISAPP) - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) - -$(DL_FILE)_MD5 = 1a217ae44b12ae7538f922f495b8da31 - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) - cd $(DIR_APP) && install -m 0755 fstrim /usr/bin - # Install cronjob - install -m 0755 $(DIR_SRC)/config/fstrim/trim /etc/fcron.daily - @rm -rf $(DIR_APP) - @$(POSTBUILD) diff --git a/lfs/gcc b/lfs/gcc index 0bdecda..a9f124b 100644 --- a/lfs/gcc +++ b/lfs/gcc @@ -177,6 +177,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-rh610785.patch cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-unwind-debug-hook.patch
+ # texinfo 5 syntax-fixes + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/gcc-4.4.7-texinfo-5.patch + ifneq "$(ROOT)" "" # Build gmp and mpfr internally in toolchain. cd $(DIR_APP) && tar xfa $(DIR_DL)/gmp-$(GMP_VER).tar.bz2 diff --git a/lfs/git b/lfs/git index 615c5b4..23838e4 100644 --- a/lfs/git +++ b/lfs/git @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2011 IPFire Team info@ipfire.org # +# Copyright (C) 2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 1.8.1 +VER = 1.8.5.2
THISAPP = git-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = git -PAK_VER = 9 +PAK_VER = 10
DEPS = ""
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = a2c6f4404c5e432b47474d246ca83c7e +$(DL_FILE)_MD5 = df8519044f9880f3687d863d99245282
install : $(TARGET)
@@ -77,8 +77,11 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr + cd $(DIR_APP) && ./configure \ + --prefix=/usr + cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install + @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/glibc b/lfs/glibc index ccbdb31..dcbffc2 100644 --- a/lfs/glibc +++ b/lfs/glibc @@ -227,13 +227,47 @@ endif cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh795498.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh797094-1.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh797094-2.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh804630.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh804686.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh804689.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh806404.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh808337.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh808545.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh809602.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh833716.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh837026.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh809726.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh823909.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh826149.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh827362.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh830127.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh832516.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh832694.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh833717.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh837695.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh837918.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh841787.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh843673.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh846342.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh847932.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh848082.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh849203.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh849651.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh852445.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh861167.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh863453.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh864322.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh929388.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh970992.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh989558.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh989558-2.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh886968.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh905575.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh905874.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh916986.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh928318.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh947882.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh952422.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh966775.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh966778.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh970090.patch
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc-resolv-stack_chk_fail.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc-remove-ctors-dtors-output-sections.patch diff --git a/lfs/grub b/lfs/grub index 6850a3a..2b0544b 100644 --- a/lfs/grub +++ b/lfs/grub @@ -95,5 +95,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) # generate default file grub-set-default 0
+ # Disable PaX mprotect for grub + paxctl -m /usr/sbin/grub + @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/guardian b/lfs/guardian index fea50db..a91fbd9 100644 --- a/lfs/guardian +++ b/lfs/guardian @@ -30,7 +30,7 @@ THISAPP = guardian-$(VER) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = guardian -PAK_VER = 8 +PAK_VER = 9
DEPS = ""
diff --git a/lfs/gutenprint b/lfs/gutenprint index a1bc343..1124a3f 100644 --- a/lfs/gutenprint +++ b/lfs/gutenprint @@ -24,7 +24,7 @@
include Config
-VER = 5.2.5 +VER = 5.2.9
THISAPP = gutenprint-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = gutenprint -PAK_VER = 2 +PAK_VER = 3
DEPS = "cups"
@@ -44,7 +44,8 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 10a0a9fac081d8116ec5ed47fbc1591c +$(DL_FILE)_MD5 = aefbec27b96dd404d9ac9811e17d58ce + install : $(TARGET)
check : $(patsubst %,$(DIR_CHK)/%,$(objects)) diff --git a/lfs/hostapd b/lfs/hostapd index ff02a19..5560a42 100644 --- a/lfs/hostapd +++ b/lfs/hostapd @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2014 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 2.0 +VER = 2.1
THISAPP = hostapd-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = hostapd -PAK_VER = 26 +PAK_VER = 29
DEPS = ""
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = ba22e639bc57aa4035d2ea8ffa9bbbee +$(DL_FILE)_MD5 = bb9c50e87c5af6f89f387e63911effac
install : $(TARGET)
@@ -77,10 +77,6 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - #cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/hostapd-usb_hw_did_not_ack.patch - -cp /usr/src/linux/include/linux/genetlink.h /usr/include/linux/ - -cp /usr/src/linux/include/linux/netfilter/nfnetlink.h /usr/include/linux/netfilter/ - -cp /usr/src/linux/include/linux/netfilter/nfnetlink_compat.h /usr/include/linux/netfilter/ cd $(DIR_APP)/hostapd && cp $(DIR_SRC)/config/hostapd/config ./.config cd $(DIR_APP)/hostapd && sed -e "s@/usr/local@/usr@g" -i Makefile cd $(DIR_APP)/hostapd && make $(MAKETUNING) $(EXTRA_MAKE) diff --git a/lfs/igb b/lfs/igb index a7c136a..9303ffb 100644 --- a/lfs/igb +++ b/lfs/igb @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2014 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -25,14 +25,9 @@ include Config
VERSUFIX = ipfire$(KCFG) -ifeq "$(KCFG)" "-xen" - KVER = 2.6.32.61 - MODPATH = /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/igb/ -else - MODPATH = /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/ethernet/intel/igb/ -endif +MODPATH = /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/ethernet/intel/igb/
-VER = 4.3.0 +VER = 5.0.6
THISAPP = igb-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -48,7 +43,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = dcbf7271c016bdb71102eb623b807f83 +$(DL_FILE)_MD5 = 701717fbbba6065af4ff5138bd3a3a9c
install : $(TARGET)
@@ -82,7 +77,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) #Save original igb module -mv $(MODPATH)/igb.ko \ - $(MODPATH)//igb.ko.org + $(MODPATH)/igb.ko.org @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP)/src && make BUILD_KERNEL=$(KVER)-$(VERSUFIX) cd $(DIR_APP)/src && install -m 644 igb.ko $(MODPATH) diff --git a/lfs/imspector b/lfs/imspector index 51654c5..5cea872 100644 --- a/lfs/imspector +++ b/lfs/imspector @@ -29,10 +29,10 @@ VER = 20101008 THISAPP = imspector-$(VER) DL_FILE = $(THISAPP).tar.gz DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) +DIR_APP = $(DIR_SRC)/imspector TARGET = $(DIR_INFO)/$(THISAPP) PROG = imspector -PAK_VER = 2 +PAK_VER = 3
DEPS = ""
@@ -77,13 +77,19 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/imspector-20101008-ssl.patch cd $(DIR_SRC)/imspector && sed -e "s/^SSL_LIBS.*/& -lcrypto/" -i Makefile cd $(DIR_SRC)/imspector && make install + -mv /usr/etc/imspector /etc/imspector -mv /etc/imspector/imspector /etc/imspector + install -v -m 755 $(DIR_CONF)/imspector/imspector.conf /etc/imspector.conf install -v -m 644 $(DIR_SRC)/config/backup/includes/imspector /var/ipfire/backup/addons/includes/imspector + chmod 755 /srv/web/ipfire/cgi-bin/imspector.cgi chown nobody:nobody -R /var/log/imspector + @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/initrd b/lfs/initrd index 56e1967..cc16956 100644 --- a/lfs/initrd +++ b/lfs/initrd @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2010 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2014 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -88,8 +88,6 @@ $(TARGET) :
#Build Module deps for installer. depmod -a -b /install/initrd/ -F /boot/System.map-$(KVER)-ipfire $(KVER)-ipfire - # Remove binary depmod files - rm -rf /install/initrd/lib/modules/$(KVER)-ipfire/modules.*.bin
#Name service from dhcpcd cp -f /etc/nsswitch.conf /install/initrd/etc/ diff --git a/lfs/initscripts b/lfs/initscripts index 6549147..02f9743 100644 --- a/lfs/initscripts +++ b/lfs/initscripts @@ -157,6 +157,7 @@ $(TARGET) : ln -sf ../init.d/leds /etc/rc.d/rc6.d/K79leds ln -sf ../init.d/fireinfo /etc/rc.d/rc3.d/S15fireinfo ln -sf ../init.d/mountkernfs /etc/rc.d/rcsysinit.d/S00mountkernfs + ln -sf ../init.d/sysctl /etc/rc.d/rcsysinit.d/S01sysctl ln -sf ../init.d/modules /etc/rc.d/rcsysinit.d/S05modules ln -sf ../init.d/udev /etc/rc.d/rcsysinit.d/S10udev ln -sf ../init.d/waitdrives /etc/rc.d/rcsysinit.d/S19waitdrives @@ -171,32 +172,22 @@ $(TARGET) : ln -sf ../init.d/console /etc/rc.d/rcsysinit.d/S70console ln -sf ../init.d/firstsetup /etc/rc.d/rcsysinit.d/S75firstsetup ln -sf ../init.d/localnet /etc/rc.d/rcsysinit.d/S80localnet - ln -sf ../init.d/sysctl /etc/rc.d/rcsysinit.d/S90sysctl + ln -sf ../init.d/firewall /etc/rc.d/rcsysinit.d/S85firewall ln -sf ../init.d/network-vlans /etc/rc.d/rcsysinit.d/S91network-vlans + ln -sf ../init.d/rngd /etc/rc.d/rcsysinit.d/S92rngd ln -sf ../init.d/wlanclient /etc/rc.d/rc0.d/K82wlanclient ln -sf ../init.d/wlanclient /etc/rc.d/rc3.d/S19wlanclient ln -sf ../init.d/wlanclient /etc/rc.d/rc6.d/K82wlanclient
ln -sf ../../dnsmasq /etc/rc.d/init.d/networking/red.up/05-RS-dnsmasq ln -sf ../../firewall /etc/rc.d/init.d/networking/red.up/20-RL-firewall - ln -sf ../../../../../usr/local/bin/outgoingfwctrl \ - /etc/rc.d/init.d/networking/red.up/22-outgoingfwctrl ln -sf ../../../../../usr/local/bin/snortctrl \ /etc/rc.d/init.d/networking/red.up/23-RS-snort ln -sf ../../../../../usr/local/bin/qosctrl \ /etc/rc.d/init.d/networking/red.up/24-RS-qos - ln -sf ../../../../../usr/local/bin/setportfw \ - /etc/rc.d/init.d/networking/red.up/25-portfw - ln -sf ../../../../../usr/local/bin/setxtaccess \ - /etc/rc.d/init.d/networking/red.up/26-xtaccess - ln -sf ../../../../../usr/local/bin/dialctrl.pl \ - /etc/rc.d/init.d/networking/red.up/99-U-dialctrl.pl ln -sf ../../squid /etc/rc.d/init.d/networking/red.up/27-RS-squid - ln -sf ../../dnsmasq /etc/rc.d/init.d/networking/red.down/05-RS-dnsmasq ln -sf ../../firewall /etc/rc.d/init.d/networking/red.down/20-RL-firewall - ln -sf ../../../../../usr/local/bin/dialctrl.pl \ - /etc/rc.d/init.d/networking/red.down/99-D-dialctrl.pl
for i in green blue orange; do \ ln -sf any /etc/rc.d/init.d/networking/$$i; \ diff --git a/lfs/iotop b/lfs/iotop new file mode 100644 index 0000000..fd0002b --- /dev/null +++ b/lfs/iotop @@ -0,0 +1,82 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2013 Michael Tremer & Christian Schmidt # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 0.6 + +THISAPP = iotop-$(VER) +DL_FILE = $(THISAPP).tar.gz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) + +PROG = iotop +PAK_VER = 1 +DEPS = "" + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 080fbb494566b5291a2a27cf6c203562 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +dist: + $(PAK) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && python setup.py install + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/iptables b/lfs/iptables index a247ba7..5a1764b 100644 --- a/lfs/iptables +++ b/lfs/iptables @@ -24,7 +24,7 @@
include Config
-VER = 1.4.14 +VER = 1.4.21
THISAPP = iptables-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -38,21 +38,21 @@ TARGET = $(DIR_INFO)/$(THISAPP) objects = $(DL_FILE) \ netfilter-layer7-v2.22.tar.gz \ libnfnetlink-1.0.0.tar.bz2 \ - libnetfilter_queue-0.0.17.tar.bz2 \ + libnetfilter_queue-1.0.1.tar.bz2 \ libnetfilter_conntrack-1.0.2.tar.bz2 \ libnetfilter_cttimeout-1.0.0.tar.bz2
$(DL_FILE) = $(DL_FROM)/$(DL_FILE) netfilter-layer7-v2.22.tar.gz = $(URL_IPFIRE)/netfilter-layer7-v2.22.tar.gz libnfnetlink-1.0.0.tar.bz2 = $(URL_IPFIRE)/libnfnetlink-1.0.0.tar.bz2 -libnetfilter_queue-0.0.17.tar.bz2 = $(URL_IPFIRE)/libnetfilter_queue-0.0.17.tar.bz2 +libnetfilter_queue-1.0.1.tar.bz2 = $(URL_IPFIRE)/libnetfilter_queue-1.0.1.tar.bz2 libnetfilter_conntrack-1.0.2.tar.bz2 = $(URL_IPFIRE)/libnetfilter_conntrack-1.0.2.tar.bz2 libnetfilter_cttimeout-1.0.0.tar.bz2 = $(URL_IPFIRE)/libnetfilter_cttimeout-1.0.0.tar.bz2
-$(DL_FILE)_MD5 = 5ab24ad683f76689cfe7e0c73f44855d +$(DL_FILE)_MD5 = 536d048c8e8eeebcd9757d0863ebb0c0 netfilter-layer7-v2.22.tar.gz_MD5 = 98dff8a3d5a31885b73341633f69501f libnfnetlink-1.0.0.tar.bz2_MD5 = 016fdec8389242615024c529acc1adb8 -libnetfilter_queue-0.0.17.tar.bz2_MD5 = 2cde35e678ead3a8f9eb896bf807a159 +libnetfilter_queue-1.0.1.tar.bz2_MD5 = 08b968cb2d36c24deb7f26a69f5d8602 libnetfilter_conntrack-1.0.2.tar.bz2_MD5 = 447114b5d61bb9a9617ead3217c3d3ff libnetfilter_cttimeout-1.0.0.tar.bz2_MD5 = 7697437fc9ebb6f6b83df56a633db7f9
@@ -86,8 +86,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @rm -rf $(DIR_APP) $(DIR_SRC)/libnfnetlink-1.0.0 $(DIR_SRC)/netfilter-layer7* $(DIR_SRC)/libnetfilter_queue-0.0.17
@cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - -cd /usr/include && patch -Np1 < $(DIR_SRC)/src/patches/iptables-1.4.6-errorno_includes.patch - cp -rf /usr/src/linux/include/linux/netfilter /usr/include/linux +# cp -rf /usr/src/linux/include/linux/netfilter /usr/include/linux
# Layer7 cd $(DIR_SRC) && tar zxf $(DIR_DL)/netfilter-layer7-v2.22.tar.gz @@ -99,7 +98,6 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
# imq cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/iptables-1.4.12-IMQ-test4.diff -# chmod +x $(DIR_APP)/extensions/.IMQ-test*
cd $(DIR_APP) && ./configure --prefix=/usr --with-ksource=/usr/src/linux \ --libdir=/lib --includedir=/usr/include --enable-libipq \ @@ -110,25 +108,25 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_APP) && make install
# Iptables doesn't install all headers - mkdir -p /usr/include/net/netfilter - cp -f $(DIR_APP)/include/net/netfilter/*.h /usr/include/net/netfilter/ - mkdir -p /usr/include/iptables - cp -f $(DIR_APP)/include/iptables/*.h /usr/include/iptables/ - cp -f $(DIR_APP)/include/iptables.h /usr/include/ - mkdir -p /usr/include/libipulog - cp -f $(DIR_APP)/include/libipulog/*.h /usr/include/libipulog/ - mkdir -p /usr/include/libiptc - cp -f $(DIR_APP)/include/libiptc/*.h /usr/include/libiptc/ +# mkdir -p /usr/include/net/netfilter +# cp -f $(DIR_APP)/include/net/netfilter/*.h /usr/include/net/netfilter/ +# mkdir -p /usr/include/iptables +# cp -f $(DIR_APP)/include/iptables/*.h /usr/include/iptables/ +# cp -f $(DIR_APP)/include/iptables.h /usr/include/ +# mkdir -p /usr/include/libipulog +# cp -f $(DIR_APP)/include/libipulog/*.h /usr/include/libipulog/ +# mkdir -p /usr/include/libiptc +# cp -f $(DIR_APP)/include/libiptc/*.h /usr/include/libiptc/
cd $(DIR_SRC) && tar xfj $(DIR_DL)/libnfnetlink-1.0.0.tar.bz2 cd $(DIR_SRC)/libnfnetlink-1.0.0 && ./configure --prefix=/usr cd $(DIR_SRC)/libnfnetlink-1.0.0 && make $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_SRC)/libnfnetlink-1.0.0 && make install
- cd $(DIR_SRC) && tar xfj $(DIR_DL)/libnetfilter_queue-0.0.17.tar.bz2 - cd $(DIR_SRC)/libnetfilter_queue-0.0.17 && ./configure --prefix=/usr - cd $(DIR_SRC)/libnetfilter_queue-0.0.17 && make $(MAKETUNING) $(EXTRA_MAKE) - cd $(DIR_SRC)/libnetfilter_queue-0.0.17 && make install + cd $(DIR_SRC) && tar xfj $(DIR_DL)/libnetfilter_queue-1.0.1.tar.bz2 + cd $(DIR_SRC)/libnetfilter_queue-1.0.1 && ./configure --prefix=/usr + cd $(DIR_SRC)/libnetfilter_queue-1.0.1 && make $(MAKETUNING) $(EXTRA_MAKE) + cd $(DIR_SRC)/libnetfilter_queue-1.0.1 && make install
cd $(DIR_SRC) && tar xfj $(DIR_DL)/libnetfilter_conntrack-1.0.2.tar.bz2 cd $(DIR_SRC)/libnetfilter_conntrack-1.0.2 && ./configure --prefix=/usr diff --git a/lfs/iw b/lfs/iw index 6a6627f..e55bc5c 100644 --- a/lfs/iw +++ b/lfs/iw @@ -24,7 +24,7 @@
include Config
-VER = 3.8 +VER = 3.10
THISAPP = iw-$(VER) DL_FILE = $(THISAPP).tar.xz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 2aae163b7c3b581b7d94f34a5d3e47d8 +$(DL_FILE)_MD5 = 07219ad06535bc270f7a8873aba6d5fa
install : $(TARGET)
@@ -70,7 +70,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && CFLAGS+=-I/usr/src/linux/include make $(MAKETUNING) + cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/jquery b/lfs/jquery new file mode 100644 index 0000000..7856ce0 --- /dev/null +++ b/lfs/jquery @@ -0,0 +1,76 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 1.10.2 + +THISAPP = jquery-$(VER) +DL_FILE = $(THISAPP).min.js +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 628072e7212db1e8cdacb22b21752cda + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + + -mkdir -pv /srv/web/ipfire/html/include + install -v -m 644 $(DIR_DL)/$(DL_FILE) /srv/web/ipfire/html/include/jquery.js + + @$(POSTBUILD) diff --git a/lfs/keepalived b/lfs/keepalived index 1891751..28b7ed8 100644 --- a/lfs/keepalived +++ b/lfs/keepalived @@ -77,7 +77,8 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc + cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc \ + --with-kernel-dir=/usr/include cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install
diff --git a/lfs/kmod b/lfs/kmod new file mode 100644 index 0000000..dc2dc10 --- /dev/null +++ b/lfs/kmod @@ -0,0 +1,94 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 13 + +THISAPP = kmod-$(VER) +DL_FILE = $(THISAPP).tar.xz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = d5aba43b9370cd52f3cb35e82a1aa595 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure \ + --prefix=/usr \ + --bindir=/bin \ + --sysconfdir=/etc \ + --enable-zlib \ + --disable-manpages + +# --libdir=/lib \ + + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make install + + # Create symlinks + ln -svf ../bin/kmod /sbin/modprobe + ln -svf ../bin/kmod /sbin/modinfo + ln -svf ../bin/kmod /sbin/insmod + ln -svf ../bin/kmod /sbin/rmmod + ln -svf ../bin/kmod /sbin/depmod + ln -svf ../bin/kmod /sbin/lsmod + + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/libmad b/lfs/libmad index ea0491e..ed18f25 100644 --- a/lfs/libmad +++ b/lfs/libmad @@ -32,10 +32,12 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = libmad -PAK_VER = 1 +PAK_VER = 2
DEPS = ""
+CFLAGS += -Wa,--noexecstack + ############################################################################### # Top-level Rules ############################################################################### diff --git a/lfs/libnl b/lfs/libnl index ea557d9..a357935 100644 --- a/lfs/libnl +++ b/lfs/libnl @@ -24,7 +24,7 @@
include Config
-VER = 1.1 +VER = 1.1.4
THISAPP = libnl-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = ae970ccd9144e132b68664f98e7ceeb1 +$(DL_FILE)_MD5 = 580cb878be536804daca87fb75ae46cc
install : $(TARGET)
@@ -73,13 +73,6 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/libnl-1.1-ULONG_MAX.patch - cd $(DIR_APP) && ln -s /usr/src/linux/include/linux/if_vlan.h \ - include/linux/if_vlan.h - cd $(DIR_APP) && ln -s /usr/src/linux/include/linux/netfilter/nf_conntrack_common.h \ - include/linux/netfilter/nf_conntrack_common.h - cd $(DIR_APP) && ln -s /usr/src/linux/include/linux/netfilter/nf_conntrack_tcp.h \ - include/linux/netfilter/nf_conntrack_tcp.h cd $(DIR_APP) && ./configure --prefix=/usr cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install diff --git a/lfs/libusbx b/lfs/libusbx new file mode 100644 index 0000000..167b945 --- /dev/null +++ b/lfs/libusbx @@ -0,0 +1,78 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 1.0.11 + +THISAPP = libusbx-$(VER) +DL_FILE = $(THISAPP).tar.bz2 +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 9aaab6aee72f65900cc731ecbffb4cf4 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure --prefix=/usr \ + --enable-examples-build + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make install + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/libxml2 b/lfs/libxml2 index 08ea864..4a25c4c 100644 --- a/lfs/libxml2 +++ b/lfs/libxml2 @@ -24,7 +24,7 @@
include Config
-VER = 2.6.26 +VER = 2.6.32
THISAPP = libxml2-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,6 +32,8 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP)
+CFLAGS += -fno-strict-aliasing + ############################################################################### # Top-level Rules ############################################################################### @@ -40,7 +42,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 2d8d3805041edab967368b497642f981 +$(DL_FILE)_MD5 = 2621d322c16f0257e30f0ff2b13384de
install : $(TARGET)
diff --git a/lfs/linux b/lfs/linux index 094f09e..bfc1580 100644 --- a/lfs/linux +++ b/lfs/linux @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2014 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,9 +24,10 @@
include Config
-VER = 3.2.48 +VER = 3.10.34
-RPI_PATCHES = linux-3.2.27-ada8b44 +RPI_PATCHES = linux-3.10.34-grsec-dea8280 +GRS_PATCHES = grsecurity-2.9.1-3.10.34-ipfire1.patch.xz
THISAPP = linux-$(VER) DL_FILE = linux-$(VER).tar.xz @@ -35,7 +36,7 @@ DIR_APP = $(DIR_SRC)/$(THISAPP) CFLAGS = CXXFLAGS =
-PAK_VER = 30 +PAK_VER = 39 DEPS = ""
VERSUFIX=ipfire$(KCFG) @@ -65,15 +66,17 @@ endif # Top-level Rules ############################################################################### objects =$(DL_FILE) \ - rpi-patches-$(RPI_PATCHES).patch.xz + rpi-patches-$(RPI_PATCHES).patch.xz \ + $(GRS_PATCHES)
$(DL_FILE) = $(URL_IPFIRE)/$(DL_FILE) rpi-patches-$(RPI_PATCHES).patch.xz = $(URL_IPFIRE)/rpi-patches-$(RPI_PATCHES).patch.xz +$(GRS_PATCHES) = $(URL_IPFIRE)/$(GRS_PATCHES)
-$(DL_FILE)_MD5 = f560aa5fcf07e57ea0ca66fdfdb53ef1 -rpi-patches-$(RPI_PATCHES).patch.xz_MD5 = 966687ff27e450e04ff50e0da829dc00 - +$(DL_FILE)_MD5 = 30991b495a3d75196d5608072d2e62e6 +rpi-patches-$(RPI_PATCHES).patch.xz_MD5 = 522683db031f7033b1b5dfe1b1f30e67 +$(GRS_PATCHES)_MD5 = b490f7f3bf48387ab2eb60212fcf0c11
install : $(TARGET)
@@ -109,38 +112,121 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) ln -svf linux-$(VER) $(DIR_SRC)/linux
# Linux Intermediate Queueing Device - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2-imq.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.10.30-imq.patch
# ipp2p 0.8.2-ipfire - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.0-ipp2p-0.8.2-ipfire.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.10-ipp2p-0.8.2-ipfire.patch
# Layer7-patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/netfilter_layer7_2.22_kernel3.0.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/netfilter_layer7_2.22_kernel3.10-no_proc_interface.patch + + # Grsecurity-patches +ifneq "$(KCFG)" "-headers" + cd $(DIR_APP) && xz -c -d $(DIR_DL)/$(GRS_PATCHES) | patch -Np1 + cd $(DIR_APP) && rm localversion-grsec + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.7-disable-compat_vdso.patch +endif + + # Remove ACPI Blacklist message + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6-silence-acpi-blacklist.patch + + # DVB Patches + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.9-dvbsky-wot2.patch + cd $(DIR_APP) && patch -Np2 < $(DIR_SRC)/src/patches/v4l-dvb_fix_tua6034_pll.patch + + # Wlan Patches + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/compat-drivers-3.8.3-ath_ignore_eeprom_regdomain.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.10.34-iwlwifi-noibss_only_on_radar_chan.patch + + # mISDN Patches + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/mISDN_hfc-s_add_id.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/mISDN-hfcusb-reportl1down.patch
# Add LED trigger - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2.33-ledtrig-netdev-1.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.10.9-ledtrig-netdev-1.patch + + # cs5535audio spams syslog if no ac97 was present (geos router) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.10.30_cs5535audio_fix_logspam_on_geos.patch + + # Add PC Engines APU led support + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.10-apu_leds.patch
# Fix uevent PHYSDEVDRIVER cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2.33_ipg-fix-driver-name.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.27_mcs7830-fix-driver-name.patch
+ ifeq "$(KCFG)" "-kirkwood" # Add dreamplug,guruplug and icy 62x0 support on ARM-kirkwood - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2.25-arm_kirkwood_setups.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.10.10-arm_kirkwood_setups.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.10.10-mv_cesa_disable_failing_hmac_sha1.patch endif
-ifeq "$(MACHINE_TYPE)" "arm" - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.45_align_ssb_modtable_32bit_boundary.patch - - # Reverse some asm optimizations that are incompatible with older gcc - cd $(DIR_APP) && patch -p1 -R < $(DIR_SRC)/src/patches/linux-2.6-arm-asm-constraint.patch -endif - -ifeq "$(KCFG)" "-omap" - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2-0001-panda-wlan-fix.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2-0002-panda-i2c.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2-panda-reboot.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.x-smsc95xx-add_mac_addr_param.patch +ifeq "$(KCFG)" "-multi" + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.10.27-fs-exec-atomic64-operand-requires-impossible-reload.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.10-smsc95xx-add_mac_addr_param.patch + + # Patchset for Omap (beagle/panda). + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/omap/0002-omap2-twl-common-Add-default-power-configuration.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/omap/sakoman/0001-OMAP-DSS2-add-bootarg-for-selecting-svideo.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/omap/sakoman/0002-video-add-timings-for-hd720.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/omap/beagle/expansion/0001-Beagle-expansion-add-buddy-param-for-expansionboard-.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/omap/beagle/expansion/0002-Beagle-expansion-add-zippy.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/omap/beagle/expansion/0003-Beagle-expansion-add-zippy2.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/omap/beagle/expansion/0004-Beagle-expansion-add-trainer.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/omap/beagle/expansion/0005-Beagle-expansion-add-CircuitCo-ulcd-Support.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/omap/beagle/expansion/0006-Beagle-expansion-add-wifi.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/omap/beagle/expansion/0007-Beagle-expansion-add-beaglefpga.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/omap/beagle/expansion/0008-Beagle-expansion-add-spidev.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/omap/beagle/expansion/0009-Beagle-expansion-add-Aptina-li5m03-camera.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/omap/beagle/expansion/0010-Beagle-expansion-add-LSR-COM6L-Adapter-Board.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/omap/beagle/expansion/0011-Beagle-expansion-LSR-COM6L-Adapter-Board-also-initia.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/omap/beagle/0001-meego-modedb-add-Toshiba-LTA070B220F-800x480-support.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/omap/beagle/0002-backlight-Add-TLC59108-backlight-control-driver.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/omap/beagle/0003-tlc59108-adjust-for-beagleboard-uLCD7.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/omap/beagle/0004-zeroMAP-Open-your-eyes.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/omap/beagle/0005-ARM-OMAP-Beagle-use-TWL4030-generic-reset-script.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/omap/beagle/0006-DSS2-use-DSI-PLL-for-DPI-with-OMAP3.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/omap/panda/0001-panda-fix-wl12xx-regulator.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/omap/panda/0002-ti-st-st-kim-fixing-firmware-path.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/omap/panda/0003-Panda-expansion-add-spidev.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/omap/panda/0004-HACK-PandaES-disable-cpufreq-so-board-will-boot.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/omap/panda/0006-ARM-hw_breakpoint-Enable-debug-powerdown-only-if-sys.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/omap/panda/0007-Revert-regulator-twl-Remove-TWL6030_FIXED_RESOURCE.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/omap/panda/0008-Revert-regulator-twl-Remove-another-unused-variable-.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/omap/panda/0009-Revert-regulator-twl-Remove-references-to-the-twl403.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/omap/panda/0010-Revert-regulator-twl-Remove-references-to-32kHz-cloc.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/omap/panda/0011-panda-spidev-setup-pinmux.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/omap/sgx/0001-arm-Export-cache-flush-management-symbols-when-MULTI.patch + + # Patchset for Wandboard. + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/dts/0001-imx6qdl-wandboard-dts-backport.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/dts/0002-ARM-dts-imx6qdl-wandboard-add-gpio-lines-to-wandboar.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/dts/0003-ARM-dts-imx6qdl-wandboard-Add-support-for-i2c1.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/dts/0004-ARM-dts-wandboard-add-binding-for-wand-rfkill-driver.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/dts/0005-ARM-dts-imx6qdl-add-pcie-device-node.patch + + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/imx/0001-i2c-imx-retry-on-NAK.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/imx/0002-i.MX6-Wandboard-add-CKO1-clock-output.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/imx/0003-thermal-add-imx-thermal-driver-support.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/imx/0004-ARM-i.MX6-Wandboard-add-wifi-bt-rfkill-driver.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/imx/0005-Add-IMX6Q-AHCI-support.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/imx/0006-imx-Add-IMX53-AHCI-support.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/imx/0007-imx6-enable-sata-clk-if-SATA_AHCI_PLATFORM.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/imx/0008-ARM-imx6q-update-the-sata-bits-definitions-of-gpr13.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/imx/0009-ahci_imx-add-ahci-sata-support-on-imx-platforms.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/imx/0010-ahci_imx-depend-on-CONFIG_MFD_SYSCON.patch + cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/kernel/wandboard/imx/0011-add-pcie-designware.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/imx/0012-pcie-backport-fixes.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/imx/0013-of-pci-Provide-support-for-parsing-PCI-DT-ranges-pro.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/imx/0014-ARM-imx6q-Add-PCIe-bits-to-GPR-syscon-definition.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/imx/0015-PCI-imx6-Add-support-for-i.MX6-PCIe-controller.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/imx/0016-imx6-pci-tweaks.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/imx/0017-ARM-imx-Add-LVDS-general-purpose-clocks-to-i.MX6Q.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/imx/0018-ARM-imx6q-clock-and-Kconfig-update-for-PCIe-support.patch + + # Patchset for Compulab Utilite. + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/utilite/linux-3.10-compulab-utilite-support.patch endif
ifeq "$(KCFG)" "-rpi" @@ -167,21 +253,21 @@ else cd $(DIR_APP) && sed -i -e 's/EXTRAVERSION\ =.*/EXTRAVERSION\ =\ -$(VERSUFIX)/' Makefile
ifeq "$(KCFG)" "-kirkwood" - cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" uImage + cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" uImage modules cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/vmlinuz-$(VER)-$(VERSUFIX) cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/uImage-$(VERSUFIX) else -ifeq "$(KCFG)" "-omap" - cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" uImage - cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/vmlinuz-$(VER)-$(VERSUFIX) - cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/uImage-$(VERSUFIX) +ifeq "$(KCFG)" "-multi" + cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" zImage modules + cd $(DIR_APP) && cp -v arch/arm/boot/zImage /boot/vmlinuz-$(VER)-$(VERSUFIX) + cd $(DIR_APP) && cp -v arch/arm/boot/zImage /boot/zImage-$(VERSUFIX) else ifeq "$(KCFG)" "-rpi" - cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" zImage - cd /boot && cat first32k.bin $(DIR_APP)/arch/arm/boot/Image > kernel.img - cd $(DIR_APP) && cp -v /boot/kernel.img /boot/vmlinuz-$(VER)-$(VERSUFIX) + cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" zImage modules + cd $(DIR_APP) && cp -v arch/arm/boot/zImage /boot/vmlinuz-$(VER)-$(VERSUFIX) + cd $(DIR_APP) && cp -v arch/arm/boot/zImage /boot/kernel.img else - cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" bzImage + cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" bzImage modules cd $(DIR_APP) && cp -v arch/i386/boot/bzImage /boot/vmlinuz-$(VER)-$(VERSUFIX) ln -sf vmlinuz-$(VER)-$(VERSUFIX) /boot/vmlinuz-$(VERSUFIX) endif @@ -190,40 +276,41 @@ endif cd $(DIR_APP) && cp -v System.map /boot/System.map-$(VER)-$(VERSUFIX) cd $(DIR_APP) && cp -v .config /boot/config-$(VER)-$(VERSUFIX) ln -sf System.map-$(VER)-$(VERSUFIX) /boot/System.map-$(VERSUFIX) - cd $(DIR_APP) && make CC="$(KGCC)" $(MAKETUNING) modules cd $(DIR_APP) && make CC="$(KGCC)" $(MAKETUNING) modules_install cd $(DIR_APP) && make CC="$(KGCC)" $(MAKETUNING) firmware_install
+ifeq "$(MACHINE_TYPE)" "arm" + cd $(DIR_APP) && make CC="$(KGCC)" $(MAKETUNING) dtbs + cd $(DIR_APP) && for f in $$(find arch/arm/boot/dts/ -name *.dtb); do \ + mkdir -p /boot/dtb-$(VER)-$(VERSUFIX) ; \ + install -m 644 $$f /boot/dtb-$(VER)-$(VERSUFIX)/ ; \ + done +endif + ifeq "$(LASTKERNEL)" "1" # Only do this once cd $(DIR_APP) && install -m 755 usr/gen_init_cpio /sbin/
# Blacklist matroxfb_base - echo "blacklist matroxfb_base" >> /etc/modprobe.d/framebuffer + echo "blacklist matroxfb_base" >> /etc/modprobe.d/framebuffer.conf # Blacklist old framebuffer modules for f in $$(find /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/video -name *fb.ko); do \ - echo "blacklist $$(basename $$f)" >> /etc/modprobe.d/framebuffer ; \ + echo "blacklist $$(basename $$f)" >> /etc/modprobe.d/framebuffer.conf ; \ done # Blacklist new drm framebuffer modules for f in $$(ls -1 /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/gpu/drm/*/*.ko); do \ - echo "blacklist $$(basename $$f)" >> /etc/modprobe.d/framebuffer ; \ + echo "blacklist $$(basename $$f)" >> /etc/modprobe.d/framebuffer.conf ; \ done - sed -i -e "s|.ko||g" /etc/modprobe.d/framebuffer + sed -i -e "s|.ko||g" /etc/modprobe.d/framebuffer.conf
# Blacklist isdn modules for f in $$(find /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/isdn -name *.ko); do \ - echo "blacklist $$(basename $$f)" >> /etc/modprobe.d/isdn ; \ + echo "blacklist $$(basename $$f)" >> /etc/modprobe.d/isdn.conf ; \ done - sed -i -e "s|.ko||g" /etc/modprobe.d/isdn + sed -i -e "s|.ko||g" /etc/modprobe.d/isdn.conf
# Disable ipv6 at runtime - echo "options ipv6 disable_ipv6=1" > /etc/modprobe.d/ipv6 -endif - -ifneq "$(MACHINE_TYPE)" "arm" - # Disable geode_aes modul - mv /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/crypto/geode-aes.ko \ - /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/crypto/geode-aes.ko.off + echo "options ipv6 disable_ipv6=1" > /etc/modprobe.d/ipv6.conf endif endif
diff --git a/lfs/linux-firmware b/lfs/linux-firmware index 33a5381..1dbfc7e 100644 --- a/lfs/linux-firmware +++ b/lfs/linux-firmware @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2014 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,10 +24,10 @@
include Config
-VER = 236367d +VER = 52d77db
THISAPP = linux-firmware-$(VER) -DL_FILE = $(THISAPP).tar.gz +DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) @@ -40,8 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 35d2ecf9b7d0b4d339fa0d4cc0736f6f - +$(DL_FILE)_MD5 = 3f6f1e78af3ee67a5540355f2ed8ba14 install : $(TARGET)
check : $(patsubst %,$(DIR_CHK)/%,$(objects)) @@ -69,7 +68,7 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) mkdir -p /lib/firmware cd $(DIR_APP) && cp -vr * /lib/firmware @rm -rf $(DIR_APP) diff --git a/lfs/linux-xen b/lfs/linux-xen deleted file mode 100644 index 39f19a8..0000000 --- a/lfs/linux-xen +++ /dev/null @@ -1,32 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = kernel - -include linux2 - -PROG = linux-xen -SUP_ARCH = i586 diff --git a/lfs/linux2 b/lfs/linux2 deleted file mode 100644 index 474e094..0000000 --- a/lfs/linux2 +++ /dev/null @@ -1,252 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -PATCHLEVEL = .61 -VER = 2.6.32.61 - -THISAPP = linux-$(VER) -DL_FILE = $(THISAPP).tar.xz -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) -CFLAGS = -CXXFLAGS = - -PAK_VER = 27 -DEPS = "" - -# Normal build or XEN build. -# - -VERSUFIX=ipfire$(KCFG) - -ifeq "$(HEADERS)" "1" -ifeq "$(TOOLS)" "1" - TARGET = $(DIR_INFO)/linux-libc-headers-$(VER)-$(VERSUFIX)-tools - HEADERS_PREFIX = /tools -else - TARGET = $(DIR_INFO)/linux-libc-headers-$(VER)-$(VERSUFIX) - HEADERS_PREFIX = /usr -endif -else - TARGET = $(DIR_INFO)/linux-xen-$(VER)-$(VERSUFIX) -endif - -ifeq "$(MACHINE_TYPE)" "arm" - HEADERS_ARCH=arm -else - HEADERS_ARCH=x86 -endif - -ifeq "$(KCFG)" "" -LASTKERNEL=1 -endif -ifeq "$(KCFG)" "-kirkwood" -LASTKERNEL=1 -endif - -############################################################################### -# Top-level Rules -############################################################################### -objects =$(DL_FILE) \ - netfilter-layer7-v2.22.tar.gz \ - patch-2.6.16-nath323-1.3.bz2 \ - reiser4-for-2.6.32.patch.bz2 \ - xen-patches-2.6.32-2g.tar.bz2 - -$(DL_FILE) = $(URL_IPFIRE)/$(DL_FILE) -netfilter-layer7-v2.22.tar.gz = $(URL_IPFIRE)/netfilter-layer7-v2.22.tar.gz -patch-2.6.16-nath323-1.3.bz2 = $(URL_IPFIRE)/patch-2.6.16-nath323-1.3.bz2 -reiser4-for-2.6.32.patch.bz2 = $(URL_IPFIRE)/reiser4-for-2.6.32.patch.bz2 -xen-patches-2.6.32-2g.tar.bz2 = $(URL_IPFIRE)/xen-patches-2.6.32-2g.tar.bz2 - -$(DL_FILE)_MD5 = 37e0afeb308b27a81dafa55c367a6105 -netfilter-layer7-v2.22.tar.gz_MD5 = 98dff8a3d5a31885b73341633f69501f -patch-2.6.16-nath323-1.3.bz2_MD5 = f926409ff703a307baf54b57ab75d138 -reiser4-for-2.6.32.patch.bz2_MD5 = 3246397973d9271eb8e6d7c97c5d2d91 -xen-patches-2.6.32-2g.tar.bz2_MD5 = d259a847c9aa73cd6e5c3605d9657d66 - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -dist: - @$(PAK) -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) $(DIR_SRC)/linux $(DIR_SRC)/linux-*-suse_xen_patches $(DIR_SRC)/xen-* && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) - - ln -svf linux-$(VER) $(DIR_SRC)/linux - -ifeq "$(KCFG)" "-xen" - # Apply gentoo Xen patches - mkdir -p $(DIR_SRC)/xen-patches - cd $(DIR_SRC)/xen-patches && tar jxf $(DIR_DL)/xen-patches-2.6.32-2g.tar.bz2 - - for x in `ls -1 $(DIR_SRC)/xen-patches/*.patch1`; do \ - echo "*********** [Patch: $$x]"; \ - cd $(DIR_APP) && pwd && patch -Np1 < $$x || exit 1; \ - done - rm -rf $(DIR_SRC)/xen-patches - - # Linux Intermediate Queueing Device - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.8-xen-imq-test2.patch -else - # Linux Intermediate Queueing Device - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32-imq-test2.patch -endif - - # Reiser4 (don't check if fail (some patches are already in xen patchset) - -cd $(DIR_APP) && bzcat $(DIR_DL)/reiser4-for-2.6.32.patch.bz2 | patch -Np1 - - # ipp2p 0.8.2-pomng - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.8-ipp2p-0.8.2-pomng.patch - - # Layer7-patch - cd $(DIR_SRC) && rm -rf $(DIR_SRC)/netfilter-layer7-v2.22 - cd $(DIR_SRC) && tar xzf $(DIR_DL)/netfilter-layer7-v2.22.tar.gz - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/netfilter-layer7-v2.22/kernel-2.6.25-2.6.28-layer7-2.22.patch - - # Add some more LED triggers - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.11-netdev-1.patch - - # Huawei Android Phones (Vodafone V845, T-Mobile Pulse/mini ...) - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.15-option_add_huawei_android.patch - - # Fix uevent PHYSDEVDRIVER - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.27_ipg-fix-driver-name.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.27_mcs7830-fix-driver-name.patch - - # Fix mv_cesa - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32-crypto-mv_cesa.patch - -ifeq "$(KCFG)" "-kirkwood" - # Add dreamplug,guruplug and icy 62x0 support on ARM-kirkwood - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.57-arm_kirkwood_setups.patch -endif - -ifeq "$(MACHINE_TYPE)" "arm" - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.45_align_ssb_modtable_32bit_boundary.patch -endif - -ifeq "$(HEADERS)" "1" - # Install the header files - cd $(DIR_APP) && make ARCH=$(HEADERS_ARCH) INSTALL_HDR_PATH=dest headers_install - -mkdir -pv $(BUILDROOT)/$(HEADERS_PREFIX)/include - cd $(DIR_APP) && find dest/include ( -name .install -o -name ..install.cmd ) -delete - cd $(DIR_APP) && cp -rv dest/include/* $(BUILDROOT)/$(HEADERS_PREFIX)/include -else - - # Install ipfire logo - cd $(DIR_APP) && cp -vf $(DIR_SRC)/config/kernel/ipfire_logo.ppm \ - drivers/video/logo/logo_linux_clut224.ppm - - # Cleanup kernel source - cp $(DIR_SRC)/config/kernel/kernel.config.$(MACHINE)-$(VERSUFIX) $(DIR_APP)/.config - cd $(DIR_APP) && make CC="$(KGCC)" oldconfig - cd $(DIR_APP) && make CC="$(KGCC)" clean - cd $(DIR_APP) && sed -i -e 's/EXTRAVERSION\ =.*/EXTRAVERSION\ =\ $(PATCHLEVEL)-$(VERSUFIX)/' Makefile - -ifeq "$(KCFG)" "-xen" - cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" vmlinuz - cd $(DIR_APP) && cp -v arch/i386/boot/vmlinuz /boot/vmlinuz-$(VER)-$(VERSUFIX) -else -ifeq "$(KCFG)" "-kirkwood" - cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" uImage - cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/vmlinuz-$(VER)-$(VERSUFIX) - cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/uImage-$(VERSUFIX) -else - cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" bzImage - cd $(DIR_APP) && cp -v arch/i386/boot/bzImage /boot/vmlinuz-$(VER)-$(VERSUFIX) -endif -endif - cd $(DIR_APP) && cp -v System.map /boot/System.map-$(VER)-$(VERSUFIX) - cd $(DIR_APP) && cp -v .config /boot/config-$(VER)-$(VERSUFIX) - ln -sf vmlinuz-$(VER)-$(VERSUFIX) /boot/vmlinuz-$(VERSUFIX) - ln -sf System.map-$(VER)-$(VERSUFIX) /boot/System.map-$(VERSUFIX) - cd $(DIR_APP) && make CC="$(KGCC)" $(MAKETUNING) modules - cd $(DIR_APP) && make CC="$(KGCC)" $(MAKETUNING) modules_install - cd $(DIR_APP) && make CC="$(KGCC)" $(MAKETUNING) firmware_install - -ifeq "$(LASTKERNEL)" "1" - # Only do this once - cd $(DIR_APP) && install -m 755 usr/gen_init_cpio /sbin/ - - # Blacklist matroxfb_base - echo "blacklist matroxfb_base" >> /etc/modprobe.d/framebuffer - # Blacklist old framebuffer modules - for f in $$(find /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/video -name *fb.ko); do \ - echo "blacklist $$(basename $$f)" >> /etc/modprobe.d/framebuffer ; \ - done - # Blacklist new drm framebuffer modules - for f in $$(ls -1 /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/gpu/drm/*/*.ko); do \ - echo "blacklist $$(basename $$f)" >> /etc/modprobe.d/framebuffer ; \ - done - sed -i -e "s|.ko||g" /etc/modprobe.d/framebuffer - - # Blacklist isdn modules - for f in $$(find /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/isdn -name *.ko); do \ - echo "blacklist $$(basename $$f)" >> /etc/modprobe.d/isdn ; \ - done - sed -i -e "s|.ko||g" /etc/modprobe.d/isdn - - # Disable ipv6 at runtime - echo "options ipv6 disable_ipv6=1" > /etc/modprobe.d/ipv6 -endif - - # Remove mISDN modules - rm -rvf /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/isdn/mISDN - rm -rvf /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/isdn/hardware/mISDN - -ifneq "$(MACHINE_TYPE)" "arm" - # Disable geode_aes modul - mv /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/crypto/geode-aes.ko \ - /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/crypto/geode-aes.ko.off -endif -endif - - @rm -rf $(DIR_SRC)/patch-o-matic* $(DIR_SRC)/iptables* $(DIR_SRC)/squashfs* $(DIR_SRC)/netfilter-layer7-* - @$(POSTBUILD) diff --git a/lfs/lm_sensors b/lfs/lm_sensors index b5ebcfb..f343a2f 100644 --- a/lfs/lm_sensors +++ b/lfs/lm_sensors @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 3.3.0 +VER = 3.3.4
THISAPP = lm_sensors-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 5eb18d7531ead4f54f28a1133a606535 +$(DL_FILE)_MD5 = 60cfb98ab7a8915c3ac684af5459de2e
install : $(TARGET)
diff --git a/lfs/lzo b/lfs/lzo index e7f29e8..69bc5cd 100644 --- a/lfs/lzo +++ b/lfs/lzo @@ -24,7 +24,7 @@
include Config
-VER = 2.02 +VER = 2.06
THISAPP = lzo-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 6760e5819f4238328709bf93bf10071c +$(DL_FILE)_MD5 = 95380bd4081f85ef08c5209f4107e9f8
install : $(TARGET)
diff --git a/lfs/mISDN b/lfs/mISDN index e6a7465..5cd4972 100644 --- a/lfs/mISDN +++ b/lfs/mISDN @@ -106,9 +106,9 @@ endif ifneq "$(XEN)" "1" # Blacklist misdn modules for f in $$(find /lib/modules/$(KVER)-$(VERSUFIX)/mISDN -name *.ko); do \ - echo "blacklist $$(basename $$f)" >> /etc/modprobe.d/mISDN ; \ + echo "blacklist $$(basename $$f)" >> /etc/modprobe.d/mISDN.conf ; \ done - sed -i -e "s|.ko||g" /etc/modprobe.d/mISDN + sed -i -e "s|.ko||g" /etc/modprobe.d/mISDN.conf endif
# Remove mISDN modules that was shipped with the kernel diff --git a/lfs/mbr b/lfs/mbr deleted file mode 100644 index c43f2fd..0000000 --- a/lfs/mbr +++ /dev/null @@ -1,78 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = 1.1.11 - -THISAPP = mbr-$(VER) -DL_FILE = $(THISAPP).tar.gz -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) -TARGET = $(DIR_INFO)/$(THISAPP) -SUP_ARCH = i586 - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) - -$(DL_FILE)_MD5 = 4e406ded185f94c2d2bf5fc793ac1842 - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr - cd $(DIR_APP) && make $(MAKETUNING) - cd $(DIR_APP) && make install - @rm -rf $(DIR_APP) - @$(POSTBUILD) diff --git a/lfs/memtest b/lfs/memtest index 4914bae..d98ea87 100644 --- a/lfs/memtest +++ b/lfs/memtest @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 4.20 +VER = 5.01
THISAPP = memtest86+-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -41,7 +41,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = ef62c2f5be616676c8c62066dedc46b3 +$(DL_FILE)_MD5 = 43c5832baa919e1206e251e735cdee2d
install : $(TARGET)
@@ -71,8 +71,10 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && sed -i -e "s| -fno-stack-protector||g" Makefile - cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) + # Enable SMP as default + cd $(DIR_APP) && sed -i -e "s|CONSERVATIVE_SMP 1|CONSERVATIVE_SMP 0|g" config.h + cd $(DIR_APP) && sed -i -e "s|scp |echo |g" Makefile + cd $(DIR_APP) && make $(EXTRA_MAKE) -mkdir -p /usr/lib/memtest86+ cd $(DIR_APP) && cp -f memtest.bin /usr/lib/memtest86+ @rm -rf $(DIR_APP) diff --git a/lfs/miniupnpd b/lfs/miniupnpd index 7129ed5..a314624 100644 --- a/lfs/miniupnpd +++ b/lfs/miniupnpd @@ -24,7 +24,7 @@
include Config
-VER = 1.7 +VER = 1.8
THISAPP = miniupnpd-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -42,7 +42,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 5af9e8332d34a7b490d0d2ed3e674196 +$(DL_FILE)_MD5 = 0d8a8e936d5a0012cb260a3b972acbf3
install : $(TARGET)
@@ -76,7 +76,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && make -f Makefile.linux \ - CFLAGS="$(CFLAGS) -DIPTABLES_143 -I/usr/src/linux/include" + CFLAGS="$(CFLAGS) -DIPTABLES_143" LIBS="-lip4tc -lnfnetlink" cd $(DIR_APP) && install -m 755 miniupnpd /usr/sbin -mkdir -pv /etc/miniupnpd cp -vf $(DIR_SRC)/config/miniupnpd/miniupnpd.conf /etc/miniupnpd/miniupnpd.conf diff --git a/lfs/mpage b/lfs/mpage new file mode 100644 index 0000000..b93fb06 --- /dev/null +++ b/lfs/mpage @@ -0,0 +1,77 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 2.5.6 + +THISAPP = mpage-$(VER) +DL_FILE = $(THISAPP).tgz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 489663c9246e47915cea931348e5175d + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/mpage25-config.patch + cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) + cd $(DIR_APP) && make $(EXTRA_INSTALL) install + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/mysql b/lfs/mysql index 410dad6..edcd651 100644 --- a/lfs/mysql +++ b/lfs/mysql @@ -24,7 +24,7 @@
include Config
-VER = 5.0.24a +VER = 5.0.96
THISAPP = mysql-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,7 +32,9 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = mysql -PAK_VER = 1 +PAK_VER = 3 + +CFLAGS += -fno-strict-aliasing
############################################################################### # Top-level Rules @@ -42,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 6b07546389f75c52611adb7af38c3667 +$(DL_FILE)_MD5 = bf280949049161aa68cf29e600d9ec79
install : $(TARGET)
@@ -75,7 +77,6 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && C_EXTRA_FLAGS=-fno-strict-aliasing cd $(DIR_APP) && ./configure --prefix=/usr \ --sysconfdir=/etc \ --libexecdir=/usr/sbin \ @@ -99,5 +100,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) chgrp -v mysql /srv/mysql{,/test,/mysql} chown mysql.mysql /srv/mysql/ install -v -m755 -o mysql -g mysql -d /var/run/mysql + install -v -m 644 $(DIR_SRC)/config/backup/includes/mysql \ + /var/ipfire/backup/addons/includes/mysql @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/net-tools b/lfs/net-tools index c17c95f..08b4815 100644 --- a/lfs/net-tools +++ b/lfs/net-tools @@ -70,12 +70,14 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/$(THISAPP)-gcc34-3.patch - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/$(THISAPP)-kernel_headers-2.patch + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/$(THISAPP)-kernel_headers-3.patch cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/$(THISAPP)-mii_ioctl-1.patch cd $(DIR_APP) && yes "" | make config cd $(DIR_APP) && sed -i -e 's|HAVE_IP_TOOLS 0|HAVE_IP_TOOLS 1|g' \ + -e 's|HAVE_HWSTRIP 1|HAVE_HWSTRIP 0|g' \ -e 's|HAVE_MII 0|HAVE_MII 1|g' config.h cd $(DIR_APP) && sed -i -e 's|# HAVE_IP_TOOLS=0|HAVE_IP_TOOLS=1|g' \ + -e 's|HAVE_HWSTRIP 1|HAVE_HWSTRIP 0|g' \ -e 's|# HAVE_MII=0|HAVE_MII=1|g' config.make cd $(DIR_APP) && make cd $(DIR_APP) && make update diff --git a/lfs/nginx b/lfs/nginx index 2b7e626..b640dcc 100644 --- a/lfs/nginx +++ b/lfs/nginx @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-14 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 1.3.11 +VER = 1.4.4
THISAPP = nginx-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = nginx -PAK_VER = 1 +PAK_VER = 3
############################################################################### # Top-level Rules @@ -42,11 +42,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 4d299999bca4d2cecfbe48e51684a345 - -objects += nginx_tcp_proxy_module.tar.bz2 -nginx_tcp_proxy_module.tar.bz2 = $(DL_FROM)/nginx_tcp_proxy_module.tar.bz2 -nginx_tcp_proxy_module.tar.bz2_MD5 = f07898b5b783ef65d416019b51cb1de8 +$(DL_FILE)_MD5 = 5dfaba1cbeae9087f3949860a02caa9f
install : $(TARGET)
@@ -79,8 +75,6 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && tar xvf $(DIR_SRC)/cache/nginx_tcp_proxy_module.tar.bz2 -C $(DIR_APP) - cd $(DIR_APP) && patch -p1 < nginx_tcp_proxy_module/tcp.patch cd $(DIR_APP) && ./configure \ --prefix=/usr/share/nginx/ \ --conf-path=/etc/nginx/nginx.conf \ @@ -97,12 +91,10 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) --with-imap --with-imap_ssl_module --with-http_ssl_module \ --with-http_stub_status_module \ --with-http_dav_module \ - --with-http_sub_module \ - --add-module=nginx_tcp_proxy_module/ + --with-http_sub_module cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install mkdir -p /var/log/nginx /var/spool/nginx cp /usr/src/config/nginx/nginx /etc/init.d/ -# chown http:http /var/log/nginx -# @rm -rf $(DIR_APP) + @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/ntp b/lfs/ntp index 1859212..a6f7ff6 100644 --- a/lfs/ntp +++ b/lfs/ntp @@ -24,7 +24,7 @@
include Config
-VER = 4.2.4p7 +VER = 4.2.6p5
THISAPP = ntp-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 8c19ff62ed4f7d64f8e2aa59cb11f364 +$(DL_FILE)_MD5 = 00df80a84ec9528fcfb09498075525bc
install : $(TARGET)
@@ -70,14 +70,21 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr --bindir=/usr/sbin \ - --sysconfdir=/etc --disable-nls \ - -enable-all-clocks --enable-parse-clocks + cd $(DIR_APP) && \ + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --disable-nls \ + --enable-all-clocks \ + --enable-parse-clocks + cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install + -mkdir /etc/ntp chown -R ntp:ntp /etc/ntp - echo "restrict default nomodify noquery" > /etc/ntp.conf + echo "disable monitor" > /etc/ntp.conf + echo "restrict default nomodify noquery" >> /etc/ntp.conf echo "server 127.127.1.0" >> /etc/ntp.conf echo "fudge 127.127.1.0 stratum 10" >> /etc/ntp.conf echo "driftfile /etc/ntp/drift" >> /etc/ntp.conf @@ -86,9 +93,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cp -vf $(DIR_SRC)/config/time/* /var/ipfire/time/ chmod 644 /var/ipfire/time/* chown nobody:nobody /var/ipfire/time/* - ln -s ../init.d/ntp /etc/rc.d/rc0.d/K46ntpd - ln -s ../init.d/ntp /etc/rc.d/rc6.d/K46ntpd - ln -s ../init.d/ntp /etc/rc.d/rc3.d/S26ntpd + ln -svf ../init.d/ntp /etc/rc.d/rc0.d/K46ntpd + ln -svf ../init.d/ntp /etc/rc.d/rc6.d/K46ntpd + ln -svf ../init.d/ntp /etc/rc.d/rc3.d/S26ntpd
@rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/openssh b/lfs/openssh index 17772c1..bc6fa3c 100644 --- a/lfs/openssh +++ b/lfs/openssh @@ -24,7 +24,7 @@
include Config
-VER = 6.4p1 +VER = 6.6p1
THISAPP = openssh-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = a62b88b884df0b09b8a8c5789ac9e51b +$(DL_FILE)_MD5 = 3e9800e6bca1fbac0eea4d41baa7f239
install : $(TARGET)
diff --git a/lfs/openssl b/lfs/openssl index b9d2617..4d4516c 100644 --- a/lfs/openssl +++ b/lfs/openssl @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 0.9.8y +VER = 1.0.1f
THISAPP = openssl-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,6 +32,17 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP)
+ifeq "$(MACHINE)" "i586" + CONFIGURE_ARGS = linux-elf no-asm 386 +endif + +ifeq "$(MACHINE)" "armv5tel" + CONFIGURE_ARGS = linux-generic32 +endif + +CFLAGS += -DPURIFY +export RPM_OPT_FLAGS = $(CFLAGS) + ############################################################################### # Top-level Rules ############################################################################### @@ -40,7 +51,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 47c7fb37f78c970f1d30aa2f9e9e26d8 +$(DL_FILE)_MD5 = f26b09c028a0541cab33da697d522b25
install : $(TARGET)
@@ -70,15 +81,49 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/openssl-0.9.8u-cryptodev.patch - @rm -rf /etc/ssl - cd $(DIR_APP) && sed -i -e 's/mcpu/march/' config - cd $(DIR_APP) && sed -i -e 's/-O3/-O2/' -e 's/-march=i486/-march=i586/' Configure - cd $(DIR_APP) && ./Configure --openssldir=/etc/ssl --prefix=/usr shared linux-elf \ - zlib-dynamic no-asm 386 -DHAVE_CRYPTODEV -DUSE_CRYPTODEV_DIGEST - cd $(DIR_APP) && make MANDIR=/usr/share/man - cd $(DIR_APP) && make MANDIR=/usr/share/man install - rm -rf /etc/ssl/lib + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/openssl-1.0.0-beta5-enginesdir.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/openssl-1.0.1-beta2-build.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/openssl-1.0.1e-cryptodev.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/openssl-1.0.1e-fix_parallel_build-1.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/openssl-1.0.1e-weak-ciphers.patch + + cd $(DIR_APP) && find crypto/ -name Makefile -exec \ + sed 's/^ASFLAGS=/&-Wa,--noexecstack /' -i {} ; + + cd $(DIR_APP) && ./Configure \ + --prefix=/usr \ + --openssldir=/etc/ssl \ + --enginesdir=/usr/lib/openssl/engines \ + shared \ + zlib-dynamic \ + enable-camellia \ + enable-md2 \ + enable-seed \ + enable-tlsext \ + enable-rfc3779 \ + no-idea \ + no-mdc2 \ + no-rc5 \ + no-srp \ + $(CONFIGURE_ARGS) \ + -DSSL_FORBID_ENULL \ + -DHAVE_CRYPTODEV \ + -DUSE_CRYPTODEV_DIGEST + + cd $(DIR_APP) && make depend + cd $(DIR_APP) && make + + # Install everything. + cd $(DIR_APP) && make install install -m 0644 $(DIR_SRC)/config/ssl/openssl.cnf /etc/ssl + + # Remove man pages. + -rm -vfr /etc/ssl/man + + # Move engines to the right place. + -mkdir -pv /usr/lib/openssl + rm -vfr /usr/lib/openssl/engines + mv -v /usr/lib/engines /usr/lib/openssl + @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/openssl-compat b/lfs/openssl-compat new file mode 100644 index 0000000..d2ae6a0 --- /dev/null +++ b/lfs/openssl-compat @@ -0,0 +1,100 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 0.9.8y + +THISAPP = openssl-$(VER) +DL_FILE = $(THISAPP).tar.gz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 47c7fb37f78c970f1d30aa2f9e9e26d8 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/openssl-0.9.8u-cryptodev.patch + + cd $(DIR_APP) && sed -i -e 's/mcpu/march/' config + cd $(DIR_APP) && sed -i -e 's/-O3/-O2/' -e 's/-march=i486/-march=i586/' Configure + + # Support for engines is disabled, because the shared objects from the + # new version of openssl cannot be loaded by the old one. + + cd $(DIR_APP) && ./Configure \ + --prefix=/usr \ + --openssldir=/etc/ssl \ + shared linux-elf \ + zlib-dynamic \ + no-engines \ + no-asm 386 \ + -DSSL_FORBID_ENULL \ + -DHAVE_CRYPTODEV \ + -DUSE_CRYPTODEV_DIGEST + + cd $(DIR_APP) && make depend + cd $(DIR_APP) && make + + cd $(DIR_APP) && install -v -m 755 libcrypto.so.0.9.8 /usr/lib + cd $(DIR_APP) && install -v -m 755 libssl.so.0.9.8 /usr/lib + + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/openvmtools b/lfs/openvmtools index 229ed8f..baae595 100644 --- a/lfs/openvmtools +++ b/lfs/openvmtools @@ -37,6 +37,8 @@ PAK_VER = 1
DEPS = ""
+CFLAGS += -fno-PIC + ############################################################################### # Top-level Rules ############################################################################### diff --git a/lfs/pakfire b/lfs/pakfire index 11608b3..6f90f89 100644 --- a/lfs/pakfire +++ b/lfs/pakfire @@ -54,7 +54,6 @@ md5 :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) -mkdir -p /opt/pakfire/{db/{meta,lists,rootfiles,installed,core},etc,lib,tmp} \ /var/log/pakfire /var/cache/pakfire cp -fRv $(DIR_SRC)/src/pakfire/* $(DIR_APP) diff --git a/lfs/paxctl b/lfs/paxctl new file mode 100644 index 0000000..c55f293 --- /dev/null +++ b/lfs/paxctl @@ -0,0 +1,79 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2013 IPFire Team info@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 0.7 + +THISAPP = paxctl-$(VER) +DL_FILE = $(THISAPP).tar.bz2 +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 25bf9df751976e87be20243e75291263 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +dist: + @$(PAK) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make install + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/perl-DBD-SQLite b/lfs/perl-DBD-SQLite new file mode 100644 index 0000000..aaee284 --- /dev/null +++ b/lfs/perl-DBD-SQLite @@ -0,0 +1,84 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2011 IPFire Team info@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 1.40 + +THISAPP = DBD-SQLite-$(VER) +DL_FILE = $(THISAPP).tar.gz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) +PROG = perl-DBD-SQLite +PAK_VER = 1 + +DEPS = "perl-DBI" + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = b9876882186499583428b14cf5c0e29c + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +dist: + @$(PAK) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && perl Makefile.PL + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make install + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/perl-DBI b/lfs/perl-DBI index 8091374..76e8a25 100644 --- a/lfs/perl-DBI +++ b/lfs/perl-DBI @@ -24,7 +24,7 @@
include Config
-VER = 1.607 +VER = 1.631
THISAPP = DBI-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -42,7 +42,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = bd5785b39675213948a61dea1b400012 +$(DL_FILE)_MD5 = 444d3c305e86597e11092b517794a840
install : $(TARGET)
diff --git a/lfs/perl-File-ReadBackwards b/lfs/perl-File-ReadBackwards new file mode 100644 index 0000000..bafd557 --- /dev/null +++ b/lfs/perl-File-ReadBackwards @@ -0,0 +1,84 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2011 IPFire Team info@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 1.05 + +THISAPP = File-ReadBackwards-$(VER) +DL_FILE = $(THISAPP).tar.gz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) +PROG = perl-File-ReadBackwards +PAK_VER = 1 + +DEPS = "" + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 613d9d02de6c1d86d5fa5b8816a6b214 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +dist: + @$(PAK) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && perl Makefile.PL + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make install + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/rng-tools b/lfs/rng-tools new file mode 100644 index 0000000..8ca95cf --- /dev/null +++ b/lfs/rng-tools @@ -0,0 +1,77 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 4 + +THISAPP = rng-tools-$(VER) +DL_FILE = $(THISAPP).tar.gz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = ae89dbfcf08bdfbea19066cfbf599127 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure --prefix=/usr + cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) + cd $(DIR_APP) && make $(EXTRA_INSTALL) install + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/rpi-firmware b/lfs/rpi-firmware index c02d5cc..a7f8761 100644 --- a/lfs/rpi-firmware +++ b/lfs/rpi-firmware @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2012 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2014 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 855e997 +VER = 18a7921 THISAPP = rpi-firmware-$(VER) DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = c73700a10d792517b2b87fd28a6c9800 +$(DL_FILE)_MD5 = 07a83d2700fb73aad67154c9e74901f3
install : $(TARGET)
diff --git a/lfs/rsync b/lfs/rsync index 2e65268..57c822c 100644 --- a/lfs/rsync +++ b/lfs/rsync @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 3.0.9 +VER = 3.1.0
THISAPP = rsync-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = rsync -PAK_VER = 7 +PAK_VER = 8
DEPS = ""
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 5ee72266fe2c1822333c407e1761b92b +$(DL_FILE)_MD5 = 3be148772a33224771a8d4d2a028b132
install : $(TARGET)
diff --git a/lfs/samba b/lfs/samba index 13110d5..4f5375c 100644 --- a/lfs/samba +++ b/lfs/samba @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2014 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 3.6.22 +VER = 3.6.23
THISAPP = samba-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = samba -PAK_VER = 56 +PAK_VER = 57
DEPS = "cups"
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 59add4bb178ebc188d857bc13a508c0b +$(DL_FILE)_MD5 = 2f7aee1dc5d31aefcb364600915b31dc
install : $(TARGET)
diff --git a/lfs/sslh b/lfs/sslh index e6f2ceb..f4201c3 100644 --- a/lfs/sslh +++ b/lfs/sslh @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = sslh -PAK_VER = 3 +PAK_VER = 4
DEPS = ""
@@ -77,7 +77,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && make install - cp $(DIR_APP)/sslh /usr/local/bin + cd $(DIR_APP) && make CFLAGS="$(CFLAGS)" $(MAKETUNING) + cd $(DIR_APP) && install -v -m 755 sslh /usr/sbin @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/stage2 b/lfs/stage2 index beb0abb..956f589 100644 --- a/lfs/stage2 +++ b/lfs/stage2 @@ -49,7 +49,7 @@ $(TARGET) : @$(PREBUILD)
# Create directories - -mkdir -pv /{bin,boot,etc/opt,etc/modprobe.d,home,lib,mnt,opt} + -mkdir -pv /{bin,boot,etc/opt,etc/modprobe.d,home,lib,mnt,opt,run} -mkdir -pv /{media/{floppy,cdrom,usbkey},sbin,srv,var} -install -dv -m 0750 /root -install -dv -m 1777 /tmp /var/tmp @@ -60,6 +60,9 @@ $(TARGET) : #-for dir in /usr /usr/local; do \ # ln -sv share/{man,doc,info} $$dir; \ #done + + # Symlink /var/run -> /run. + ln -svf ../run /var/run # Symlinks # for this reason, stage2 rebuild will broke the iso:perl, grubbatch @@ -98,18 +101,25 @@ $(TARGET) : # Move script to correct place. mv -vf /usr/local/bin/ovpn-ccd-convert /usr/sbin/
+ # Install firewall scripts. + mkdir -pv /usr/lib/firewall + install -m 755 $(DIR_SRC)/config/firewall/rules.pl \ + /usr/lib/firewall/rules.pl + install -m 644 $(DIR_SRC)/config/firewall/firewall-lib.pl \ + /usr/lib/firewall/firewall-lib.pl + # Nobody user -mkdir -p /home/nobody chown -R nobody:nobody /home/nobody
# Create /var dirs and files - -mkdir -v /var/{lock,log,mail,run,spool,empty} + -mkdir -v /var/{lock,log,mail,spool,empty} -mkdir -pv /var/{opt,cache,lib/{misc,locate},local} -mkdir -pv /var/log/{counter,calamaris} chown nobody.nobody /var/log/calamaris - touch /var/run/utmp /var/log/{btmp,lastlog,wtmp,net-traffic.log} - chgrp -v utmp /var/run/utmp /var/log/lastlog - chmod -v 664 /var/run/utmp /var/log/lastlog + touch /var/log/{btmp,lastlog,wtmp,net-traffic.log} + chgrp -v utmp /var/log/lastlog + chmod -v 664 /var/log/lastlog
# Permissions chmod 0711 /var/empty @@ -121,4 +131,11 @@ $(TARGET) : -mkdir -pv /usr/share/doc/licenses/ cp -vf $(DIR_SRC)/doc/COPYING /usr/share/doc/licenses/GPLv3
+ # System release + echo "$(SYSTEM_RELEASE)" > /etc/system-release + + # Pakfire + -mkdir -pv /opt/pakfire/db/core + echo "$(PAKFIRE_CORE)" > /opt/pakfire/db/core/mine + @$(POSTBUILD) diff --git a/lfs/strongswan b/lfs/strongswan index 495d035..600a16f 100644 --- a/lfs/strongswan +++ b/lfs/strongswan @@ -24,7 +24,7 @@
include Config
-VER = 5.1.1 +VER = 5.1.2
THISAPP = strongswan-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -48,7 +48,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = e3af3d493d22286be3cd794533a8966a +$(DL_FILE)_MD5 = d45a2e89c624bceaf2e53c9b9cdddf83
install : $(TARGET)
@@ -78,15 +78,15 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) - - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/strongswan-4.5.3_ipfire.patch - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/strongswan-5.1.1-delay-dpd.patch + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/strongswan-5.0.2_ipfire.patch
cd $(DIR_APP) && [ -x "configure" ] || ./autogen.sh cd $(DIR_APP) && ./configure \ --prefix="/usr" \ --sysconfdir="/etc" \ --enable-curl \ + --enable-dhcp \ + --enable-farp \ --enable-openssl \ --enable-xauth-eap \ --enable-eap-radius \ diff --git a/lfs/sudo b/lfs/sudo index 15463c5..7c3feab 100644 --- a/lfs/sudo +++ b/lfs/sudo @@ -24,7 +24,7 @@
include Config
-VER = 1.6.8p12 +VER = 1.8.10p1
THISAPP = sudo-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = b29893c06192df6230dd5f340f3badf5 +$(DL_FILE)_MD5 = 1d9c2bc5aaf02608343d17b9a666e8e1
install : $(TARGET)
@@ -70,10 +70,16 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-envvar_fix-1.patch - cd $(DIR_APP) && ./configure --prefix=/usr --libexecdir=/usr/lib \ - --enable-noargs-shell --with-ignore-dot --with-all-insults \ - --enable-shell-sets-home && \ + cd $(DIR_APP) && \ + ./configure \ + --prefix=/usr \ + --libexecdir=/usr/lib \ + --with-logging=syslog \ + --with-logfac=authpriv \ + --with-env-editor \ + --with-ignore-dot \ + --with-tty-tickets \ + --with-passpromt="[sudo] password for %p: " cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install @rm -rf $(DIR_APP) diff --git a/lfs/tor b/lfs/tor index 10eaca4..7956736 100644 --- a/lfs/tor +++ b/lfs/tor @@ -24,7 +24,7 @@
include Config
-VER = 0.2.4.18-rc +VER = 0.2.4.20
THISAPP = tor-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = tor -PAK_VER = 5 +PAK_VER = 6
DEPS = "libevent2"
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 6cc5bc776e9d61a9fb1b000609ed2692 +$(DL_FILE)_MD5 = a8cd8e3b3a3f6a7770f2c22d280f19b8
install : $(TARGET)
diff --git a/lfs/transmission b/lfs/transmission index 3c1368d..51c2fbd 100644 --- a/lfs/transmission +++ b/lfs/transmission @@ -36,6 +36,8 @@ PAK_VER = 9
DEPS = "libevent2"
+CXXFLAGS += -fno-exceptions + ############################################################################### # Top-level Rules ############################################################################### diff --git a/lfs/tzdata b/lfs/tzdata index edf5ff2..c36b7a3 100644 --- a/lfs/tzdata +++ b/lfs/tzdata @@ -24,15 +24,18 @@
include Config
-VER = 2012h -TZDATA_VER = 2012h -TZCODE_VER = 2012h +VER = 2014a +TZDATA_VER = $(VER) +TZCODE_VER = $(VER)
THISAPP = tzdata-$(VER) DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP)
+FILES = africa antarctica asia australasia europe \ + northamerica southamerica pacificnew etcetera backward + ############################################################################### # Top-level Rules ############################################################################### @@ -42,8 +45,8 @@ objects = tzdata$(TZDATA_VER).tar.gz tzcode$(TZCODE_VER).tar.gz tzdata$(TZDATA_VER).tar.gz = $(DL_FROM)/tzdata$(TZDATA_VER).tar.gz tzcode$(TZCODE_VER).tar.gz = $(DL_FROM)/tzcode$(TZCODE_VER).tar.gz
-tzdata$(TZDATA_VER).tar.gz_MD5 = b937335e087fb85b7f8e3ce33e69184b -tzcode$(TZCODE_VER).tar.gz_MD5 = 44b3b6c3e50240ac44f16437040a7ba2 +tzdata$(TZDATA_VER).tar.gz_MD5 = 423a11bcffc10dda578058cf1587d048 +tzcode$(TZCODE_VER).tar.gz_MD5 = 77ccbb720f0f2076f12dff6ded70eb98
install : $(TARGET)
@@ -77,16 +80,21 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) tar axf $(DIR_DL)/tzdata$(TZDATA_VER).tar.gz -C $(DIR_APP) tar axf $(DIR_DL)/tzcode$(TZCODE_VER).tar.gz -C $(DIR_APP)
- cd $(DIR_APP) && make TOPDIR=/usr ETCDIR=/tmp LIBDIR=/tmp MANDIR=/tmp \ - TZDIR=/usr/share/zoneinfo all - cd $(DIR_APP) && make TOPDIR=/usr ETCDIR=/tmp LIBDIR=/tmp MANDIR=/tmp \ - TZDIR=/usr/share/zoneinfo install + cd $(DIR_APP) && mkdir -pv zoneinfo/{,posix,right} + cd $(DIR_APP) && zic -y ./yearistype -d zoneinfo \ + -L /dev/null -p GMT $(FILES) + cd $(DIR_APP) && zic -y ./yearistype -d zoneinfo/posix \ + -L /dev/null $(FILES) + cd $(DIR_APP) && zic -y ./yearistype -d zoneinfo/right \ + -L /dev/null $(FILES)
- -mkdir -pv /usr/share/zoneinfo - mv -v /usr/share/zoneinfo-posix /usr/share/zoneinfo/posix - mv -v /usr/share/zoneinfo-leaps /usr/share/zoneinfo/right - rm -vf /usr/share/zoneinfo/localtime + rm -rf /usr/share/zoneinfo + cd $(DIR_APP) && cp -prd zoneinfo /usr/share + cd $(DIR_APP) && install -p -m 644 zone.tab iso3166.tab \ + /usr/share/zoneinfo
+ rm -vf /usr/share/zoneinfo/localtime cp -vf /usr/share/zoneinfo/GMT /etc/localtime + @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/u-boot b/lfs/u-boot index 551fea5..eafb592 100644 --- a/lfs/u-boot +++ b/lfs/u-boot @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,12 +24,10 @@
include Config
-VER = 2011.12 -# Linare version: git clone git://git.linaro.org/boot/u-boot-linaro-stable.git -# Branch: origin/Linaro-u-boot-2011.12 +VER = 2013.10
-THISAPP = uboot-panda-$(VER) -DL_FILE = $(THISAPP).tar.xz +THISAPP = u-boot-$(VER) +DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) @@ -43,7 +41,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 19975e9bb4b10d8e67db84e51fcaa43b +$(DL_FILE)_MD5 = a076a044b64371edc52f7e562b13f6b2
install : $(TARGET)
@@ -75,13 +73,47 @@ dist:
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar Jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && make tools $(MAKETUNING) - cd $(DIR_APP) && install tools/mkimage /usr/bin/ - cd $(DIR_APP) && make omap4_panda_config - cd $(DIR_APP) && make $(MAKETUNING) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + + # Pandaboard + -mkdir -pv /usr/share/u-boot/pandaboard + cd $(DIR_APP) && make CROSS_COMPILE="" omap4_panda_config + cd $(DIR_APP) && make CROSS_COMPILE="" HOSTCC="gcc $(CFLAGS)" + cd $(DIR_APP) && install -v -m 644 MLO u-boot.img \ + /usr/share/u-boot/pandaboard + # Install pandaboard uboot as default cd $(DIR_APP) && install MLO /boot/ - cd $(DIR_APP) && install u-boot.bin /boot/ + cd $(DIR_APP) && install u-boot.img /boot/ cp -vf $(DIR_SRC)/config/u-boot/* /boot/ + cd $(DIR_APP) && make distclean + + # Wandboard Quad + -mkdir -pv /usr/share/u-boot/wandboard_quad + cd $(DIR_APP) && make CROSS_COMPILE="" wandboard_quad_config + cd $(DIR_APP) && make CROSS_COMPILE="" HOSTCC="gcc $(CFLAGS)" + cd $(DIR_APP) && install -v -m 644 u-boot.imx \ + /usr/share/u-boot/wandboard_quad + cd $(DIR_APP) && make distclean + + # Wandboard Dual + -mkdir -pv /usr/share/u-boot/wandboard_dl + cd $(DIR_APP) && make CROSS_COMPILE="" wandboard_dl_config + cd $(DIR_APP) && make CROSS_COMPILE="" HOSTCC="gcc $(CFLAGS)" + cd $(DIR_APP) && install -v -m 644 u-boot.imx \ + /usr/share/u-boot/wandboard_dl + cd $(DIR_APP) && make distclean + + # Wandboard Solo + -mkdir -pv /usr/share/u-boot/wandboard_solo + cd $(DIR_APP) && make CROSS_COMPILE="" wandboard_solo_config + cd $(DIR_APP) && make CROSS_COMPILE="" HOSTCC="gcc $(CFLAGS)" + cd $(DIR_APP) && install -v -m 644 u-boot.imx \ + /usr/share/u-boot/wandboard_solo + cd $(DIR_APP) && make distclean + + # mkimage + cd $(DIR_APP) && make CROSS_COMPILE="" HOSTCC="gcc $(CFLAGS)" tools + cd $(DIR_APP) && install -v -m 755 tools/mkimage /usr/bin + @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/udev b/lfs/udev index 9ebec2f..fdf8bf2 100644 --- a/lfs/udev +++ b/lfs/udev @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,23 +24,26 @@
include Config
-VER = 141 +VER = 208
THISAPP = udev-$(VER) -DL_FILE = $(THISAPP).tar.bz2 +DL_FILE = systemd-$(VER).tar.xz DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) +DIR_APP = $(DIR_SRC)/systemd-$(VER) TARGET = $(DIR_INFO)/$(THISAPP)
############################################################################### # Top-level Rules ###############################################################################
-objects = $(DL_FILE) +objects = $(DL_FILE) udev-lfs-208-1.tar.bz2 +
$(DL_FILE) = $(DL_FROM)/$(DL_FILE) +udev-lfs-$(VER)-1.tar.bz2 = $(DL_FROM)/udev-lfs-$(VER)-1.tar.bz2
-$(DL_FILE)_MD5 = 1670fe81cabf5161319c52084cf81134 +$(DL_FILE)_MD5 = df64550d92afbffb4f67a434193ee165 +udev-lfs-$(VER)-1.tar.bz2_MD5 = 67a5339e7ef1fa08f5db8315a5ea69e7
install : $(TARGET)
@@ -70,37 +73,45 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/udev-141_no_netif_rename.patch - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/udev-125-ext4_wo_journal.patch + cd $(DIR_APP) && tar axf $(DIR_DL)/udev-lfs-$(VER)-1.tar.bz2 + + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/udev-208_remove_systemd_log.patch +# cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/udev-141_no_netif_rename.patch + + cd $(DIR_APP)/udev-lfs-$(VER)-1 && sed -i "s/HANDLE_AT 1/HANDLE_AT 0/g" cfg.h + rm -rf /lib/udev/devices - install -dv /lib/{firmware,udev/devices/{pts,shm}} - mknod -m0666 /lib/udev/devices/null c 1 3 - ln -sv /proc/self/fd /lib/udev/devices/fd - ln -sv /proc/self/fd/0 /lib/udev/devices/stdin - ln -sv /proc/self/fd/1 /lib/udev/devices/stdout - ln -sv /proc/self/fd/2 /lib/udev/devices/stderr - ln -sv /proc/kcore /lib/udev/devices/core - cd $(DIR_APP) && ./configure --disable-introspection --sbindir=/sbin --sysconfdir=/etc --libexecdir=/lib/udev - cd $(DIR_APP) && make $(MAKETUNING) EXTRAS="extras/ata_id extras/cdrom_id extras/edd_id \ - extras/firmware extras/floppy extras/path_id \ - extras/scsi_id extras/usb_id extras/volume_id" - cd $(DIR_APP) && make DESTDIR=/ EXTRAS="extras/ata_id extras/cdrom_id extras/edd_id \ - extras/firmware extras/floppy extras/path_id \ - extras/scsi_id extras/usb_id extras/volume_id" install + install -dv /lib/firmware + + cd $(DIR_APP) && make -f udev-lfs-$(VER)-1/Makefile.lfs $(MAKETUNING) + cd $(DIR_APP) && make -f udev-lfs-$(VER)-1/Makefile.lfs install + + # Make some compat symlinks + ln -sf /lib/udev/udevd /sbin/udevd + ln -sf /sbin/udevadm /bin/udevadm
# Disable net generator rule. This does not work with the setup. rm -f /lib/udev/rules.d/75-persistent-net-generator.rules + rm -f /lib/udev/rules.d/80-net-name-slot.rules
# Create rule file for the setup touch /etc/udev/rules.d/30-persistent-network.rules
# Blacklist some modules - cp -vf $(DIR_SRC)/config/udev/blacklist /etc/modprobe.d/blacklist + cp -vf $(DIR_SRC)/config/udev/blacklist.conf /etc/modprobe.d/blacklist.conf + + # Install config file + install -v -m 644 $(DIR_SRC)/config/udev/udev.conf \ + /etc/udev/
# Install alsa rules. install -v -m 644 $(DIR_SRC)/config/udev/25-alsa.rules \ /lib/udev/rules.d
+ # Install hwrng rules. + install -v -m 644 $(DIR_SRC)/config/udev/90-hwrng.rules \ + /lib/udev/rules.d + # Install codel rules. install -v -m 644 $(DIR_SRC)/config/udev/99-codel.rules \ /lib/udev/rules.d diff --git a/lfs/usb-stick b/lfs/usb-stick deleted file mode 100644 index 1bfc8a1..0000000 --- a/lfs/usb-stick +++ /dev/null @@ -1,101 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = ipfire - -THISAPP = usb-stick -TARGET = $(DIR_INFO)/$(THISAPP) - -############################################################################### -# Top-level Rules -############################################################################### - -install : $(TARGET) - -check : - -download : - -md5 : - -############################################################################### -# Installation Details -############################################################################### -IMGfdd := /install/images/$(SNAME)-$(VERSION)-install-usb-fdd.$(MACHINE)-full-core$(CORE).img -IMGhdd := /install/images/$(SNAME)-$(VERSION)-install-usb-hdd.$(MACHINE)-full-core$(CORE).img -IMGfs := /install/images/fs - -DISKSIZE=120000 - -define COPY_TO_IMG - mkdosfs -n IPFIRE -F 16 -I $$IMAGE && \ - for i in /0 `seq 0 7`; do \ - [ -e /dev/loop$${i} ] || continue; \ - if (! losetup /dev/loop$${i} >/dev/null 2>&1 ); then \ - LOOPDEV="/dev/loop$${i}"; \ - break; \ - fi; \ - done; \ - losetup $$LOOPDEV $$IMAGE && \ - mount -t vfat $$LOOPDEV /install/mnt && \ - cp -fR /install/cdrom/* /install/mnt && \ - mv /install/mnt/boot/isolinux /install/mnt/boot/syslinux && \ - mv /install/mnt/boot/syslinux/isolinux.cfg \ - /install/mnt/boot/syslinux/syslinux.cfg && \ - umount /install/mnt && \ - losetup -d $$LOOPDEV && \ - syslinux $$IMAGE -endef - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - - # usb-fdd superfloppy (partitionless) - # compute size +32 blocks for bootsector/fat/etc... - dd bs=1024 count=$$((`du -k -s /install/cdrom | awk '{print $$1}'` + 2048 )) \ - if=/dev/zero \ - of=$(IMGfdd) - IMAGE=$(IMGfdd); $(COPY_TO_IMG) - - # Partitionned images : make a file system bigger than iso size - # that fit on 128MB key to let free space available - # on the unique partition. Image will be compressed later - dd bs=1k if=/dev/zero of=$(IMGfs) count=$(DISKSIZE) - IMAGE=$(IMGfs); $(COPY_TO_IMG) - - # usb-hdd (64 heads, 32 sectors geometry, on a partition 1) - # use 64 heads as 256 does not work on Award bios (Asus A7V8X-X Gilles) - # use 32 sectors a minima or device is not recognised as hard disk (Frank) - # add 32 to IMGfs as first partition start at 32 - COUNT=$$((`du -k -s $(IMGfs) | awk '{print $$1}'` + 32 )); \ - dd bs=1k if=/dev/zero of=$(IMGhdd) count=$$COUNT - # write mbr before partitioning save a 'not msdos fs' warning from sfdisk - /usr/sbin/install-mbr -f $(IMGhdd) - echo -e "0,,6,*\n;\n;\n;" | sfdisk -qLD -H 64 -S 32 $(IMGhdd) - # copy the entire partition, make the fs and dd back - dd if=$(IMGfs) of=$(IMGhdd) bs=512 seek=32 - - gzip -f9 $(IMGfdd) $(IMGhdd) - rm -rf $$LFS/tmp/* $(IMGfs) diff --git a/lfs/usb_modeswitch b/lfs/usb_modeswitch index 0f28078..b0cf7d3 100644 --- a/lfs/usb_modeswitch +++ b/lfs/usb_modeswitch @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2014 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 1.2.6 +VER = 2.0.1
THISAPP = usb-modeswitch-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 3cd804ad2dd4cb61fbd77a5cc033496c +$(DL_FILE)_MD5 = e48d4419d0574d342bb183f7465556d0
install : $(TARGET)
diff --git a/lfs/usb_modeswitch_data b/lfs/usb_modeswitch_data index 709434c..95aeac6 100644 --- a/lfs/usb_modeswitch_data +++ b/lfs/usb_modeswitch_data @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2014 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 20130610 +VER = 20131113
THISAPP = usb-modeswitch-data-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 52dff3f54e0c01dad02639d642e089e0 +$(DL_FILE)_MD5 = 7b5ac1226b360ddc366c286e62b3c3a4
install : $(TARGET)
diff --git a/lfs/usbutils b/lfs/usbutils index 3b5c302..51192e7 100644 --- a/lfs/usbutils +++ b/lfs/usbutils @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,10 +24,10 @@
include Config
-VER = 0.72 +VER = 007
THISAPP = usbutils-$(VER) -DL_FILE = $(THISAPP).tar.gz +DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = ee345fe605ffcfce843dae4aed81122b +$(DL_FILE)_MD5 = c9df5107ae9d26b10a1736a261250139
install : $(TARGET)
@@ -69,11 +69,11 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && sed -i 's|DEST=|&/usr/share/hwdata/|' update-usbids.sh - cd $(DIR_APP) && ./configure --prefix=/usr --datadir=/usr/share/hwdata + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure --prefix=/usr \ + --datadir=/usr/share/hwdata \ + --disable-zlib cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install - cd $(DIR_APP) && install -v -m755 update-usbids.sh /usr/sbin/update-usbids @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/util-linux b/lfs/util-linux index a394166..7f69e67 100644 --- a/lfs/util-linux +++ b/lfs/util-linux @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,10 +24,10 @@
include Config
-VER = 2.12r +VER = 2.24
THISAPP = util-linux-$(VER) -DL_FILE = $(THISAPP).tar.bz2 +DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = af9d9e03038481fbf79ea3ac33f116f9 +$(DL_FILE)_MD5 = 4fac6443427f575fc5f3531a4ad2ca01
install : $(TARGET)
@@ -69,15 +69,12 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/util-linux-2.12r-umount-no-special.patch - cd $(DIR_APP) && sed -i 's@etc/adjtime@var/lib/hwclock/adjtime@g' \ - hwclock/hwclock.c - -mkdir -p /var/lib/hwclock - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-cramfs-1.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/util-linux-buildfix.patch + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && ./configure cd $(DIR_APP) && make $(MAKETUNING) HAVE_KILL=yes HAVE_SLN=yes cd $(DIR_APP) && make HAVE_KILL=yes HAVE_SLN=yes install + # Install fstrim cronjob + mkdir -p /etc/fcron.daily + install -m 0755 $(DIR_SRC)/config/fstrim/trim /etc/fcron.daily/trim @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/vdr b/lfs/vdr index b1feb01..52ecdd5 100644 --- a/lfs/vdr +++ b/lfs/vdr @@ -24,8 +24,12 @@
include Config
-VER = 2.0.1 +VER = 2.0.5 + +# VDRPLUGVER must match with APIVERSION in config.h +# after change this update also all vdr plugins VDRPLUGVER = 2.0.0 + THISAPP = vdr-$(VER) DL_FILE = $(THISAPP).tar.bz2
@@ -33,7 +37,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = vdr -PAK_VER = 7 +PAK_VER = 9
DEPS = "vdr_streamdev"
@@ -59,9 +63,9 @@ MAKE_OPTIONS = \
objects = $(DL_FILE)
-$(DL_FILE) = $(DL_FROM)/$(DL_FILE) +$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = e1b7a76c57c96300829dccd39eb20e7d +$(DL_FILE)_MD5 = f58b9836a60440fde84480a2e37ee91d
install : $(TARGET)
diff --git a/lfs/vdr_dvbapi b/lfs/vdr_dvbapi new file mode 100644 index 0000000..2cf34e7 --- /dev/null +++ b/lfs/vdr_dvbapi @@ -0,0 +1,121 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 1.0.6 +THISAPP = vdr-plugin-dvbapi-$(VER) +DL_FILE = $(THISAPP).tar.gz + +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) +PROG = vdr_dvbapi +PAK_VER = 1 + +DEPS = "" + +VDRPLUGVER = 2.0.0 + +EXTRA_FLAGS= -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE +CFLAGS += $(EXTRA_FLAGS) +CXXFLAGS += $(EXTRA_FLAGS) + +CSAFLAGS = -O3 -fexpensive-optimizations -funroll-loops +CSAFLAGS-sse = $(CSAFLAGS) -mmmx -msse -msse2 -msse3 +PARALLEL = PARALLEL_64_LONG +PARALLEL-sse = PARALLEL_128_SSE2 + +define BUILD + cp -a $(DIR_APP) $(DIR_APP)-build$(1) + cd $(DIR_APP)-build$(1) && make $(MAKE_TUNING) LIBDIR=. VDRDIR=/usr/lib/vdr \ + CFLAGS="$(CFLAGS$(1))" CXXFLAGS="$(CXXFLAGS$(1))" \ + CSAFLAGS="$(CSAFLAGS$(1))" PARALLEL="$(PARALLEL$(1))" \ + LOCALEDIR=$$(pwd)/locale all + + -mkdir -pv /etc/vdr/plugins/dvbapi + cd $(DIR_APP)-build$(1) && install -m 755 libvdr-dvbapi.so \ + /usr/lib/vdr/libvdr-dvbapi.so.$(VDRPLUGVER)$(1) +endef + + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 6a8024b2970beba8eadc1acaa86805e7 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download : $(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +dist: + @$(PAK) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP)* && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + +ifeq "$(MACHINE)" "i586" + # Build an SSE enabled version. + $(call BUILD,-sse) +endif + + # Build normal version. + $(call BUILD) + + echo "#" > /etc/sysconfig/vdr-plugins.d/dvbapi.conf + echo "# Command line parameters for vdr-plugin-dvbapi" >> /etc/sysconfig/vdr-plugins.d/dvbapi.conf + echo "#" >> /etc/sysconfig/vdr-plugins.d/dvbapi.conf + echo "# For more details see:" >> /etc/sysconfig/vdr-plugins.d/dvbapi.conf + echo "# - `vdr --help -Pdvbapi`" >> /etc/sysconfig/vdr-plugins.d/dvbapi.conf + echo "PLUGIN_OPTIONS=""" >> /etc/sysconfig/vdr-plugins.d/dvbapi.conf + + @rm -rf $(DIR_APP)* + @$(POSTBUILD) diff --git a/lfs/vdr_eepg b/lfs/vdr_eepg new file mode 100644 index 0000000..fddd075 --- /dev/null +++ b/lfs/vdr_eepg @@ -0,0 +1,99 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +GIT_VER = 69b47ba4bf0195fd6820beb2cf4f7c7ea31f4011 +VER = master +THISAPP = vdr-plugin-eepg-$(VER) +DL_FILE = vdr-plugin-eepg-$(GIT_VER).tar.bz2 + +DL_FROM = http://projects.vdr-developer.org/git/vdr-plugin-eepg.git/snapshot +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) +PROG = vdr_eepg +PAK_VER = 1 + +DEPS = "" + +VDRPLUGVER = 2.0.0 + +EXTRA_FLAGS= -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE +CFLAGS += $(EXTRA_FLAGS) +CXXFLAGS += $(EXTRA_FLAGS) + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 0d8049949263f9a2b8deb2ae9919bc49 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download : $(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +dist: + @$(PAK) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + + cd $(DIR_SRC) && mv vdr-plugin-eepg-$(GIT_VER) $(THISAPP) + + cd $(DIR_APP) && make $(MAKE_TUNING) LIBDIR=. VDRDIR=/usr/lib/vdr \ + CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" \ + LOCALEDIR=$$(pwd)/locale all + + mkdir -pv /etc/vdr/plugins/eepg + cd $(DIR_APP) && install -m 755 libvdr-eepg.so \ + /usr/lib/vdr/libvdr-eepg.so.$(VDRPLUGVER) + + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/vim b/lfs/vim index 3935d33..8928dbd 100644 --- a/lfs/vim +++ b/lfs/vim @@ -24,12 +24,12 @@
include Config
-VER = 7.2 +VER = 7.4
THISAPP = vim-$(VER) DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/vim72 +DIR_APP = $(DIR_SRC)/vim74 TARGET = $(DIR_INFO)/$(THISAPP)
############################################################################### @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = f0901284b338e448bfd79ccca0041254 +$(DL_FILE)_MD5 = 607e135c559be642f210094ad023dc65
install : $(TARGET)
@@ -70,19 +70,18 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/vim-7.2-fixes-4.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/vim-7.2-mandir-1.patch cd $(DIR_APP) && echo '#define SYS_VIMRC_FILE "/etc/vimrc"' >> src/feature.h - cd $(DIR_APP) && ./configure --prefix=/usr --enable-multibyte --disable-nls + cd $(DIR_APP) && ./configure \ + --prefix=/usr \ + --with-features=huge \ + --enable-multibyte \ + --enable-gui=no \ + --disable-nls cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install - ln -sv vim /usr/bin/vi - echo "set nocompatible" > /etc/vimrc - echo "set backspace=2" >> /etc/vimrc - echo "set ruler" >> /etc/vimrc - echo "syntax on" >> /etc/vimrc - echo -e "if (&term == "iterm") || (&term == "putty")" >> /etc/vimrc - echo " set background=dark" >> /etc/vimrc - echo "endif" >> /etc/vimrc + + ln -svf vim /usr/bin/vi + install -m 644 $(DIR_SRC)/config/vim/vimrc /etc/vimrc + @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/w_scan b/lfs/w_scan index a18a08a..c661a80 100644 --- a/lfs/w_scan +++ b/lfs/w_scan @@ -25,7 +25,7 @@ include Config
-VER = 20121111 +VER = 20130331
THISAPP = w_scan-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -33,7 +33,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = w_scan -PAK_VER = 4 +PAK_VER = 5
DEPS = ""
@@ -45,7 +45,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 30da05747fed9988e11ebc7745f5e71f +$(DL_FILE)_MD5 = dfc14a4707321e068a594d6899398df8
install : $(TARGET)
diff --git a/lfs/wget b/lfs/wget index ce55e76..fd4c947 100644 --- a/lfs/wget +++ b/lfs/wget @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,10 +24,10 @@
include Config
-VER = 1.10.2 +VER = 1.14
THISAPP = wget-$(VER) -DL_FILE = $(THISAPP).tar.gz +DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 795fefbb7099f93e2d346b026785c4b8 +$(DL_FILE)_MD5 = 316f6f59292c9098ad81fd54f658c579
install : $(TARGET)
@@ -69,10 +69,19 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr --with-ssl \ - --disable-nls --disable-ipv6 + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar Jxf $(DIR_DL)/$(DL_FILE) + + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/wget-1.14-texi2pod-1.patch + + cd $(DIR_APP) && ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --with-ssl=openssl \ + --disable-nls \ + --disable-ipv6 + cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install + @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/wpa_supplicant b/lfs/wpa_supplicant index 1172e60..754bb01 100644 --- a/lfs/wpa_supplicant +++ b/lfs/wpa_supplicant @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2014 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 2.0 +VER = 2.1
THISAPP = wpa_supplicant-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -41,7 +41,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 3be2ebfdcced52e00eda0afe2889839d +$(DL_FILE)_MD5 = e96b8db5a8171cd17a5b2012d6ad7cc7
install : $(TARGET)
diff --git a/lfs/xen-image b/lfs/xen-image index 1c2624e..d5a747b 100644 --- a/lfs/xen-image +++ b/lfs/xen-image @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -28,8 +28,9 @@ VER = ipfire
THISAPP = xen-image TARGET = $(DIR_INFO)/$(THISAPP) +SUP_ARCH = i586
-KVER2 = `grep "^VER " $(DIR_SRC)/lfs/linux2 | sed "s| ||g" | cut -d"=" -f2` +KERN_PACK = `grep "^PAK_VER " $(DIR_SRC)/lfs/linux | sed "s| ||g" | cut -d"=" -f2`
############################################################################### # Top-level Rules @@ -46,145 +47,21 @@ md5 : ############################################################################### # Installation Details ############################################################################### -IMGinst := /install/images/$(SNAME)-$(VERSION).xen.$(MACHINE)-full-core$(CORE).tar.bz2 -MNThdd := /install/harddisk - -IMGboot := /install/images/$(SNAME)/$(SNAME)-boot.img -IMGswap := /install/images/$(SNAME)/$(SNAME)-swap.img -IMGroot := /install/images/$(SNAME)/$(SNAME)-root.img -IMGvar := /install/images/$(SNAME)/$(SNAME)-var.img - -SIZEboot := 30 -SIZEswap := 512 -SIZEroot := 512 -SIZEvar := 950 +IMGinst := /install/images/$(SNAME)-$(VERSION).xen.$(MACHINE)-downloader-core$(CORE).tar.bz2
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - rm -rf $(MNThdd) $(IMGinst) $(IMGroot) && mkdir -p $(MNThdd) - mkdir -p /install/images/$(SNAME) # /boot - - #Create bootimage - dd bs=1M if=/dev/zero of=$(IMGboot) count=$(SIZEboot) - mkfs.ext2 -F $(IMGboot) - - #Create swapimage - dd bs=1M if=/dev/zero of=$(IMGswap) count=$(SIZEswap) - mkswap $(IMGswap) - - #Create rootimage - dd bs=1M if=/dev/zero of=$(IMGroot) count=$(SIZEroot) - mkfs.ext3 -F $(IMGroot) - - #Create varimage - dd bs=1M if=/dev/zero of=$(IMGvar) count=$(SIZEvar) - mkfs.ext3 -F $(IMGvar) - - # Mount Images - mount -o loop $(IMGroot) $(MNThdd) - mkdir $(MNThdd)/boot - mkdir $(MNThdd)/var - mkdir $(MNThdd)/var/log - mount -o loop $(IMGboot) $(MNThdd)/boot - mount -o loop $(IMGvar) $(MNThdd)/var - - # Install IPFire without kernel modules - tar -C $(MNThdd)/ -xvf /install/cdrom/$(SNAME)-$(VERSION).tlz --lzma \ - --exclude=lib/modules* --exclude=boot* - - #Install legacy Xen Kernel - tar -C $(MNThdd)/opt/pakfire/tmp -xvf /install/packages/linux-xen-$(KVER2)-*.ipfire - chroot $(MNThdd) /opt/pakfire/tmp/install.sh - rm -rf $(MNThdd)/opt/pakfire/tmp/* - - #Install pae Kernel - tar -C $(MNThdd)/opt/pakfire/tmp -xvf /install/packages/linux-pae-$(KVER)-*.ipfire - chroot $(MNThdd) /opt/pakfire/tmp/install.sh - rm -rf $(MNThdd)/opt/pakfire/tmp/* - - #Create grub menuentry for pygrub - mkdir $(MNThdd)/boot/grub - echo "timeout 10" > $(MNThdd)/boot/grub/grub.conf - echo "default 0" >> $(MNThdd)/boot/grub/grub.conf - echo "title IPFire (legacy XEN-Kernel)" >> $(MNThdd)/boot/grub/grub.conf - echo " kernel /vmlinuz-$(KVER2)-ipfire-xen root=/dev/xvda3 rootdelay=10 panic=10 console=xvc0 ro" \ - >> $(MNThdd)/boot/grub/grub.conf - echo " initrd /ipfirerd-$(KVER2)-xen.img" >> $(MNThdd)/boot/grub/grub.conf - echo "# savedefault 0" >> $(MNThdd)/boot/grub/grub.conf - echo "title IPFire (PAE-Kernel)" >> $(MNThdd)/boot/grub/grub.conf - echo " kernel /vmlinuz-$(KVER)-ipfire-pae root=/dev/xvda3 rootdelay=10 panic=10 console=xvc0 ro" \ - >> $(MNThdd)/boot/grub/grub.conf - echo " initrd /ipfirerd-$(KVER)-xen.img" >> $(MNThdd)/boot/grub/grub.conf - echo "# savedefault 1" >> $(MNThdd)/boot/grub/grub.conf - - ln -s grub.conf $(MNThdd)/boot/grub/menu.lst - - #Copy the meta-info of linux-xen package - cp -f /install/packages/meta-linux-xen $(MNThdd)/opt/pakfire/db/installed - cp -f /install/packages/meta-linux-xen $(MNThdd)/opt/pakfire/db/meta - cp -f /install/packages/meta-linux-pae $(MNThdd)/opt/pakfire/db/installed - cp -f /install/packages/meta-linux-pae $(MNThdd)/opt/pakfire/db/meta - - #Set default configuration - echo "LANGUAGE=en" >> $(MNThdd)/var/ipfire/main/settings - echo "HOSTNAME=$(SNAME)" >> $(MNThdd)/var/ipfire/main/settings - echo "THEME=ipfire" >> $(MNThdd)/var/ipfire/main/settings - touch $(MNThdd)/lib/modules/$(KVER2)-ipfire-xen/modules.dep - mkdir $(MNThdd)/proc - mount --bind /proc $(MNThdd)/proc - mount --bind /dev $(MNThdd)/dev - mount --bind /sys $(MNThdd)/sys - chroot $(MNThdd) /usr/bin/perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang" - sed -i -e "s|DEVICE1|/dev/xvda1|g" $(MNThdd)/etc/fstab - sed -i -e "s|DEVICE2|/dev/xvda2|g" $(MNThdd)/etc/fstab - sed -i -e "s|DEVICE3|/dev/xvda3|g" $(MNThdd)/etc/fstab - sed -i -e "s|DEVICE4|/dev/xvda4|g" $(MNThdd)/etc/fstab - - sed -i -e "s|FSTYPE|ext3|g" $(MNThdd)/etc/fstab - - chroot $(MNThdd) /sbin/dracut --force --verbose /boot/ipfirerd-$(KVER2)-xen.img $(KVER2)-ipfire-xen - chroot $(MNThdd) /sbin/dracut --force --verbose /boot/ipfirerd-$(KVER)-pae.img $(KVER)-ipfire-pae - - #Remove root / fstab check - rm -rf $(MNThdd)/etc/rc.d/rcsysinit.d/S19checkfstab - #Remove console init - rm -rf $(MNThdd)/etc/rc.d/rcsysinit.d/S70console - - #Add xvc0 to securetty - echo xvc0 >> $(MNThdd)/etc/securetty - - #Add getty for xvc0 - echo "#Enable login for XEN" >> $(MNThdd)/etc/inittab - echo "8:2345:respawn:/sbin/agetty xvc0 9600" >> $(MNThdd)/etc/inittab - - #Disable some initskripts - echo "#!/bin/sh" > $(MNThdd)/etc/rc.d/init.d/setclock - echo "#!/bin/sh" > $(MNThdd)/etc/rc.d/init.d/keymap - - #Remove autoload of acpi modules - sed -i -e "s|^ac|#ac|g" $(MNThdd)/etc/sysconfig/modules - sed -i -e "s|^battery|#battery|g" $(MNThdd)/etc/sysconfig/modules - sed -i -e "s|^button|#button|g" $(MNThdd)/etc/sysconfig/modules - sed -i -e "s|^fan|#fan|g" $(MNThdd)/etc/sysconfig/modules - sed -i -e "s|^processor|#processor|g" $(MNThdd)/etc/sysconfig/modules - sed -i -e "s|^thermal|#thermal|g" $(MNThdd)/etc/sysconfig/modules - sed -i -e "s|^video|#video|g" $(MNThdd)/etc/sysconfig/modules - + rm -rf /install/images/$(SNAME) $(IMGinst) && mkdir -p /install/images/$(SNAME) + # Copy readme and config cp $(DIR_SRC)/config/xen-image/* \ /install/images/$(SNAME)
- # Unmount - umount $(MNThdd)/proc - umount $(MNThdd)/dev - umount $(MNThdd)/sys - umount $(MNThdd)/var - umount $(MNThdd)/boot - umount $(MNThdd) - - # Zerofree ext3 images to get better compression - zerofree $(IMGboot) - zerofree $(IMGroot) - zerofree $(IMGvar) + # configure image downloader + sed -i -e "s/xxxSNAMExxx/$(SNAME)/" /install/images/$(SNAME)/xen-image-maker.sh + sed -i -e "s/xxxVERSIONxxx/$(VERSION)/" /install/images/$(SNAME)/xen-image-maker.sh + sed -i -e "s/xxxCORExxx/$(CORE)/" /install/images/$(SNAME)/xen-image-maker.sh + sed -i -e "s/xxxKVERxxx/$(KVER)/" /install/images/$(SNAME)/xen-image-maker.sh + sed -i -e "s/xxxKERN_PACKxxx/$(KERN_PACK)/" /install/images/$(SNAME)/xen-image-maker.sh
# Compress Image cd /install/images/ && tar -cvjf $(IMGinst) $(SNAME) diff --git a/lfs/xz b/lfs/xz index 7a56c72..fce7159 100644 --- a/lfs/xz +++ b/lfs/xz @@ -24,10 +24,10 @@
include Config
-VER = 5.0.4 +VER = 5.0.5
THISAPP = xz-$(VER) -DL_FILE = $(THISAPP).tar.bz2 +DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP)
@@ -47,7 +47,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 741cd3a5f64b23b7bac56ec5b2258715 +$(DL_FILE)_MD5 = aa17280f4521dbeebed0fbd11cd7fa30
install : $(TARGET)
@@ -76,7 +76,7 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && ./configure --prefix=$(PREFIX) cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install diff --git a/make.sh b/make.sh index 0e20908..93949dc 100755 --- a/make.sh +++ b/make.sh @@ -17,27 +17,27 @@ # along with IPFire; if not, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # -# Copyright (C) 2007-2013 IPFire Team info@ipfire.org. # +# Copyright (C) 2007-2014 IPFire Team info@ipfire.org. # # # ############################################################################ #
NAME="IPFire" # Software name SNAME="ipfire" # Short name -VERSION="2.13" # Version number -CORE="75" # Core Level (Filename) -PAKFIRE_CORE="75" # Core Level (PAKFIRE) -GIT_BRANCH=`git status | head -n1 | cut -d" " -f4` # Git Branch +VERSION="2.15" # Version number +CORE="76-rc1" # Core Level (Filename) +PAKFIRE_CORE="76" # Core Level (PAKFIRE) +GIT_BRANCH=`git rev-parse --abbrev-ref HEAD` # Git Branch SLOGAN="www.ipfire.org" # Software slogan CONFIG_ROOT=/var/ipfire # Configuration rootdir NICE=10 # Nice level MAX_RETRIES=1 # prefetch/check loop -BUILD_IMAGES=1 # Build USB, Flash and Xen Images +BUILD_IMAGES=1 # Flash and Xen Downloader KVER=`grep --max-count=1 VER lfs/linux | awk '{ print $3 }'` MACHINE=`uname -m` GIT_TAG=$(git tag | tail -1) # Git Tag GIT_LASTCOMMIT=$(git log | head -n1 | cut -d" " -f2 |head -c8) # Last commit -TOOLCHAINVER=6 +TOOLCHAINVER=7
BUILDMACHINE=$MACHINE if [ "$MACHINE" = "x86_64" ]; then @@ -83,6 +83,22 @@ if [ -z $EDITOR ]; then [ -z $EDITOR ] && exiterror "You should have installed an editor." fi
+# Prepare string for /etc/system-release. +SYSTEM_RELEASE="${NAME} ${VERSION} (${MACHINE})" +if [ "$(git status -s | wc -l)" == "0" ]; then + GIT_STATUS="" +else + GIT_STATUS="-dirty" +fi +case "$GIT_BRANCH" in + core*|beta?|rc?) + SYSTEM_RELEASE="${SYSTEM_RELEASE} - $GIT_BRANCH$GIT_STATUS" + ;; + *) + SYSTEM_RELEASE="${SYSTEM_RELEASE} - Development Build: $GIT_BRANCH/$GIT_LASTCOMMIT$GIT_STATUS" + ;; +esac + prepareenv() { ############################################################################ # # @@ -344,7 +360,7 @@ buildbase() { lfsmake2 make lfsmake2 man lfsmake2 mktemp - lfsmake2 module-init-tools + lfsmake2 kmod lfsmake2 net-tools lfsmake2 patch lfsmake2 psmisc @@ -353,10 +369,11 @@ buildbase() { lfsmake2 sysvinit lfsmake2 tar lfsmake2 texinfo - lfsmake2 udev lfsmake2 util-linux + lfsmake2 udev lfsmake2 vim lfsmake2 xz + lfsmake2 paxctl lfsmake2 grub }
@@ -369,6 +386,7 @@ buildipfire() { ipfiremake dhcp ipfiremake dhcpcd ipfiremake libusb + ipfiremake libusbx ipfiremake libpcap ipfiremake ppp ipfiremake pptp @@ -378,73 +396,60 @@ buildipfire() { ipfiremake dvb-firmwares ipfiremake zd1211-firmware ipfiremake rpi-firmware + ipfiremake bc ipfiremake u-boot
if [ "${MACHINE_TYPE}" != "arm" ]; then
- # x86-xen (Legacy XEN) kernel build - ipfiremake linux2 KCFG="-xen" - ipfiremake v4l-dvb KCFG="-xen" - ipfiremake mISDN KCFG="-xen" - ipfiremake cryptodev KCFG="-xen" - ipfiremake compat-drivers KCFG="-xen" - ipfiremake r8169 KCFG="-xen" - ipfiremake r8168 KCFG="-xen" - ipfiremake r8101 KCFG="-xen" - ipfiremake e1000 KCFG="-xen" - ipfiremake e1000e KCFG="-xen" - ipfiremake igb KCFG="-xen" - # x86-pae (Native and new XEN) kernel build ipfiremake linux KCFG="-pae" - ipfiremake kvm-kmod KCFG="-pae" - ipfiremake v4l-dvb KCFG="-pae" - ipfiremake mISDN KCFG="-pae" +# ipfiremake kvm-kmod KCFG="-pae" +# ipfiremake v4l-dvb KCFG="-pae" +# ipfiremake mISDN KCFG="-pae" ipfiremake cryptodev KCFG="-pae" - ipfiremake compat-drivers KCFG="-pae" - ipfiremake r8169 KCFG="-pae" - ipfiremake r8168 KCFG="-pae" - ipfiremake r8101 KCFG="-pae" +# ipfiremake compat-drivers KCFG="-pae" +# ipfiremake r8169 KCFG="-pae" +# ipfiremake r8168 KCFG="-pae" +# ipfiremake r8101 KCFG="-pae" ipfiremake e1000e KCFG="-pae" ipfiremake igb KCFG="-pae"
# x86 kernel build ipfiremake linux KCFG="" - ipfiremake kvm-kmod KCFG="" - ipfiremake v4l-dvb KCFG="" - ipfiremake mISDN KCFG="" +# ipfiremake kvm-kmod KCFG="" +# ipfiremake v4l-dvb KCFG="" +# ipfiremake mISDN KCFG="" ipfiremake cryptodev KCFG="" - ipfiremake compat-drivers KCFG="" - ipfiremake r8169 KCFG="" - ipfiremake r8168 KCFG="" - ipfiremake r8101 KCFG="" +# ipfiremake compat-drivers KCFG="" +# ipfiremake r8169 KCFG="" +# ipfiremake r8168 KCFG="" +# ipfiremake r8101 KCFG="" ipfiremake e1000e KCFG="" ipfiremake igb KCFG=""
else # arm-rpi (Raspberry Pi) kernel build ipfiremake linux KCFG="-rpi" - ipfiremake v4l-dvb KCFG="-rpi" - ipfiremake mISDN KCFG="-rpi" NOPCI=1 +# ipfiremake v4l-dvb KCFG="-rpi" +# ipfiremake mISDN KCFG="-rpi" NOPCI=1 ipfiremake cryptodev KCFG="-rpi" - ipfiremake compat-drivers KCFG="-rpi" +# ipfiremake compat-drivers KCFG="-rpi"
- # arm-omap (Panda Board) kernel build - ipfiremake linux KCFG="-omap" - ipfiremake v4l-dvb KCFG="-omap" - ipfiremake mISDN KCFG="-omap" NOPCI=1 - ipfiremake cryptodev KCFG="-omap" - ipfiremake compat-drivers KCFG="-omap" + # arm multi platform (Panda, Wandboard ...) kernel build + ipfiremake linux KCFG="-multi" + ipfiremake cryptodev KCFG="-multi" + ipfiremake e1000e KCFG="-multi" + ipfiremake igb KCFG="-multi"
# arm-kirkwood (Dreamplug, ICY-Box ...) kernel build ipfiremake linux KCFG="-kirkwood" - ipfiremake v4l-dvb KCFG="-kirkwood" - ipfiremake mISDN KCFG="-kirkwood" +# ipfiremake v4l-dvb KCFG="-kirkwood" +# ipfiremake mISDN KCFG="-kirkwood" ipfiremake cryptodev KCFG="-kirkwood" - ipfiremake compat-drivers KCFG="-kirkwood" - ipfiremake r8169 KCFG="-kirkwood" - ipfiremake r8168 KCFG="-kirkwood" - ipfiremake r8101 KCFG="-kirkwood" +# ipfiremake compat-drivers KCFG="-kirkwood" +# ipfiremake r8169 KCFG="-kirkwood" +# ipfiremake r8168 KCFG="-kirkwood" +# ipfiremake r8101 KCFG="-kirkwood" # ipfiremake e1000e KCFG="-kirkwood" ipfiremake igb KCFG="-kirkwood"
@@ -457,6 +462,7 @@ buildipfire() { ipfiremake gdbm ipfiremake pam ipfiremake openssl + ipfiremake openssl-compat ipfiremake curl ipfiremake tcl ipfiremake sqlite @@ -491,6 +497,7 @@ buildipfire() { ipfiremake apache2 ipfiremake php ipfiremake apache2 PASS=C + ipfiremake jquery ipfiremake arping ipfiremake beep ipfiremake dvdrtools @@ -591,6 +598,8 @@ buildipfire() { ipfiremake lzo ipfiremake openvpn ipfiremake pammysql + ipfiremake mpage + ipfiremake dbus ipfiremake cups ipfiremake ghostscript ipfiremake foomatic @@ -644,6 +653,7 @@ buildipfire() { ipfiremake sysstat ipfiremake vsftpd ipfiremake strongswan + ipfiremake rng-tools ipfiremake lsof ipfiremake br2684ctl ipfiremake pcmciautils @@ -671,6 +681,8 @@ buildipfire() { ipfiremake vdr_streamdev ipfiremake vdr_vnsiserver3 ipfiremake vdr_epgsearch + ipfiremake vdr_dvbapi + ipfiremake vdr_eepg ipfiremake w_scan ipfiremake icecast ipfiremake icegenerator @@ -679,7 +691,6 @@ buildipfire() { ipfiremake mpc ipfiremake git ipfiremake squidclamav - ipfiremake bc ipfiremake vnstat ipfiremake vnstati ipfiremake iw @@ -690,7 +701,6 @@ buildipfire() { ipfiremake syslinux ipfiremake tftpd ipfiremake cpufrequtils - ipfiremake dbus ipfiremake bluetooth ipfiremake gutenprint ipfiremake apcupsd @@ -710,6 +720,8 @@ buildipfire() { ipfiremake netsnmpd ipfiremake perl-DBI ipfiremake perl-DBD-mysql + ipfiremake perl-DBD-SQLite + ipfiremake perl-File-ReadBackwards ipfiremake cacti ipfiremake icecc ipfiremake openvmtools @@ -726,7 +738,6 @@ buildipfire() { ipfiremake usb_modeswitch_data ipfiremake zerofree ipfiremake mdadm - ipfiremake eject ipfiremake pound ipfiremake minicom ipfiremake ddrescue @@ -763,7 +774,6 @@ buildipfire() { ipfiremake stress ipfiremake libstatgrab ipfiremake sarg - ipfiremake fstrim ipfiremake check_mk_agent ipfiremake libdaemon ipfiremake avahi @@ -787,36 +797,13 @@ buildipfire() { ipfiremake arm ipfiremake wavemon ipfiremake iptraf-ng - echo Build on $HOSTNAME > $BASEDIR/build/var/ipfire/firebuild - cat /proc/version >> $BASEDIR/build/var/ipfire/firebuild - echo >> $BASEDIR/build/var/ipfire/firebuild - git log -1 >> $BASEDIR/build/var/ipfire/firebuild - echo >> $BASEDIR/build/var/ipfire/firebuild - git status >> $BASEDIR/build/var/ipfire/firebuild - echo >> $BASEDIR/build/var/ipfire/firebuild - cat /proc/cpuinfo >> $BASEDIR/build/var/ipfire/firebuild - echo $PAKFIRE_CORE > $BASEDIR/build/opt/pakfire/db/core/mine - if [ "$(git status -s | wc -l)" == "0" ]; then - GIT_STATUS="" - else - GIT_STATUS="-dirty" - fi - case "$GIT_BRANCH" in - core*|beta?|rc?) - echo "$NAME $VERSION ($MACHINE) - $GIT_BRANCH$GIT_STATUS" > $BASEDIR/build/etc/system-release - ;; - *) - echo "$NAME $VERSION ($MACHINE) - Development Build: $GIT_BRANCH/$GIT_LASTCOMMIT$GIT_STATUS" > $BASEDIR/build/etc/system-release - ;; - esac + ipfiremake iotop }
buildinstaller() { # Run installer scripts one by one LOGFILE="$BASEDIR/log/_build.installer.log" export LOGFILE - ipfiremake as86 - ipfiremake mbr ipfiremake memtest ipfiremake installer installmake strip @@ -855,9 +842,6 @@ buildpackages() {
# Check if there is a loop device for building in virtual environments if [ $BUILD_IMAGES == 1 ] && ([ -e /dev/loop/0 ] || [ -e /dev/loop0 ]); then - if [ "${MACHINE_TYPE}" != "arm" ]; then - ipfiremake usb-stick - fi ipfiremake flash-images fi
@@ -865,16 +849,7 @@ buildpackages() {
ipfirepackages
- # Check if there is a loop device for building in virtual environments - if [ $BUILD_IMAGES == 1 ] && ([ -e /dev/loop/0 ] || [ -e /dev/loop0 ]) && [ "${MACHINE_TYPE}" != "arm" ]; then - cp -f $BASEDIR/packages/linux-xen-*.ipfire $LFS/install/packages/ - cp -f $BASEDIR/packages/meta-linux-xen $LFS/install/packages/ - cp -f $BASEDIR/packages/linux-pae-*.ipfire $LFS/install/packages/ - cp -f $BASEDIR/packages/meta-linux-pae $LFS/install/packages/ - ipfiremake xen-image - rm -rf $LFS/install/packages/linux-xen-*.ipfire - rm -rf $LFS/install/packages/meta-linux-xen - fi + ipfiremake xen-image mv $LFS/install/images/*.bz2 $BASEDIR >> $LOGFILE 2>&1
cd $BASEDIR @@ -1115,11 +1090,11 @@ uploadsrc) fi
URL_SOURCE=$(grep URL_SOURCE lfs/Config | awk '{ print $3 }') - REMOTE_FILES=$(echo "ls -1 --ignore=toolchains" | sftp -C ${IPFIRE_USER}@${URL_SOURCE}) + REMOTE_FILES=$(echo "ls -1" | sftp -C ${IPFIRE_USER}@${URL_SOURCE})
- cd $BASEDIR/cache/ - for file in $(ls -1 --ignore=toolchains); do - grep -q "$file" <<<$REMOTE_FILES && continue + for file in ${BASEDIR}/cache/*; do + [ -d "${file}" ] && continue + grep -q "$(basename ${file})" <<<$REMOTE_FILES && continue NEW_FILES="$NEW_FILES $file" done [ -n "$NEW_FILES" ] && scp -2 $NEW_FILES ${IPFIRE_USER}@${URL_SOURCE} diff --git a/src/initscripts/init.d/apache b/src/initscripts/init.d/apache index 4c73a7f..5dd39f9 100644 --- a/src/initscripts/init.d/apache +++ b/src/initscripts/init.d/apache @@ -9,12 +9,17 @@
case "$1" in start) - boot_mesg "Starting Apache daemon..." if [ -f /etc/httpd/server.key -a -f /etc/httpd/server.crt -a -f /etc/httpd/server.csr ]; then /usr/local/bin/httpscert read >/dev/null 2>&1 else + boot_mesg "Generating HTTPS host certificate (may take a couple of minutes)..." /usr/local/bin/httpscert new >/dev/null 2>&1 + evaluate_retval + + # Make sure that the key is written to disk. + sync fi + boot_mesg "Starting Apache daemon..." /usr/sbin/apachectl -k start evaluate_retval ;; diff --git a/src/initscripts/init.d/collectd b/src/initscripts/init.d/collectd index 544b3e1..7de005e 100644 --- a/src/initscripts/init.d/collectd +++ b/src/initscripts/init.d/collectd @@ -34,8 +34,10 @@ case "$1" in # pre scan and try to load modules "yes" | /usr/sbin/sensors-detect > /dev/null if [ -e /etc/sysconfig/lm_sensors ]; then + # Module load - for modul in `cat /etc/sysconfig/lm_sensors | grep '^MODULE_' | cut -d"=" -s -f2`; do + . /etc/sysconfig/lm_sensors + for modul in $BUS_MODULES $HWMON_MODULES ; do modprobe $modul > /dev/null 2>&1; done fi @@ -52,8 +54,10 @@ case "$1" in # Load sensor modules only first start if [ ! -e /var/lock/sensors_modules ]; then touch /var/lock/sensors_modules + boot_mesg -n "Loading Sensor Modules: " - for modul in `cat /etc/sysconfig/lm_sensors | grep '^MODULE_' | cut -d"=" -s -f2`; do + . /etc/sysconfig/lm_sensors + for modul in $BUS_MODULES $HWMON_MODULES ; do modprobe $modul > /dev/null 2>&1; if [ ${?} = 0 ]; then boot_mesg -n "$SUCCESS$modul$NORMAL "; diff --git a/src/initscripts/init.d/firewall b/src/initscripts/init.d/firewall index 0237297..a67af70 100644 --- a/src/initscripts/init.d/firewall +++ b/src/initscripts/init.d/firewall @@ -1,5 +1,8 @@ #!/bin/sh
+. /etc/sysconfig/rc +. ${rc_functions} + eval $(/usr/local/bin/readhash /var/ipfire/ppp/settings) eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings) eval $(/usr/local/bin/readhash /var/ipfire/optionsfw/settings) @@ -9,94 +12,281 @@ if [ -f /var/ipfire/red/device ]; then DEVICE=`/bin/cat /var/ipfire/red/device 2> /dev/null | /usr/bin/tr -d '\012'` fi
+function iptables() { + /sbin/iptables --wait "$@" +} + iptables_init() { # Flush all rules and delete all custom chains - /sbin/iptables -F - /sbin/iptables -t nat -F - /sbin/iptables -t mangle -F - /sbin/iptables -X - /sbin/iptables -t nat -X - /sbin/iptables -t mangle -X + iptables -F + iptables -t nat -F + iptables -t mangle -F + iptables -X + iptables -t nat -X + iptables -t mangle -X
# Set up policies - /sbin/iptables -P INPUT DROP - /sbin/iptables -P FORWARD DROP - /sbin/iptables -P OUTPUT ACCEPT + iptables -P INPUT DROP + iptables -P FORWARD DROP + iptables -P OUTPUT ACCEPT
# Empty LOG_DROP and LOG_REJECT chains - /sbin/iptables -N LOG_DROP - /sbin/iptables -A LOG_DROP -m limit --limit 10/minute -j LOG - /sbin/iptables -A LOG_DROP -j DROP - /sbin/iptables -N LOG_REJECT - /sbin/iptables -A LOG_REJECT -m limit --limit 10/minute -j LOG - /sbin/iptables -A LOG_REJECT -j REJECT + iptables -N LOG_DROP + iptables -A LOG_DROP -m limit --limit 10/minute -j LOG + iptables -A LOG_DROP -j DROP + iptables -N LOG_REJECT + iptables -A LOG_REJECT -m limit --limit 10/minute -j LOG + iptables -A LOG_REJECT -j REJECT
# This chain will log, then DROPs packets with certain bad combinations # of flags might indicate a port-scan attempt (xmas, null, etc) - /sbin/iptables -N PSCAN + iptables -N PSCAN if [ "$DROPPORTSCAN" == "on" ]; then - /sbin/iptables -A PSCAN -p tcp -m limit --limit 10/minute -j LOG --log-prefix "DROP_TCP Scan " -m comment --comment "DROP_TCP PScan" - /sbin/iptables -A PSCAN -p udp -m limit --limit 10/minute -j LOG --log-prefix "DROP_UDP Scan " -m comment --comment "DROP_UDP PScan" - /sbin/iptables -A PSCAN -p icmp -m limit --limit 10/minute -j LOG --log-prefix "DROP_ICMP Scan " -m comment --comment "DROP_ICMP PScan" - /sbin/iptables -A PSCAN -f -m limit --limit 10/minute -j LOG --log-prefix "DROP_FRAG Scan " -m comment --comment "DROP_FRAG PScan" + iptables -A PSCAN -p tcp -m limit --limit 10/minute -j LOG --log-prefix "DROP_TCP Scan " -m comment --comment "DROP_TCP PScan" + iptables -A PSCAN -p udp -m limit --limit 10/minute -j LOG --log-prefix "DROP_UDP Scan " -m comment --comment "DROP_UDP PScan" + iptables -A PSCAN -p icmp -m limit --limit 10/minute -j LOG --log-prefix "DROP_ICMP Scan " -m comment --comment "DROP_ICMP PScan" + iptables -A PSCAN -f -m limit --limit 10/minute -j LOG --log-prefix "DROP_FRAG Scan " -m comment --comment "DROP_FRAG PScan" fi - /sbin/iptables -A PSCAN -j DROP -m comment --comment "DROP_PScan" + iptables -A PSCAN -j DROP -m comment --comment "DROP_PScan"
# New tcp packets without SYN set - could well be an obscure type of port scan # that's not covered above, may just be a broken windows machine - /sbin/iptables -N NEWNOTSYN + iptables -N NEWNOTSYN if [ "$DROPNEWNOTSYN" == "on" ]; then - /sbin/iptables -A NEWNOTSYN -m limit --limit 10/minute -j LOG --log-prefix "DROP_NEWNOTSYN " + iptables -A NEWNOTSYN -m limit --limit 10/minute -j LOG --log-prefix "DROP_NEWNOTSYN " fi - /sbin/iptables -A NEWNOTSYN -j DROP -m comment --comment "DROP_NEWNOTSYN" + iptables -A NEWNOTSYN -j DROP -m comment --comment "DROP_NEWNOTSYN"
# Chain to contain all the rules relating to bad TCP flags - /sbin/iptables -N BADTCP + iptables -N BADTCP
- #Don't check loopback - /sbin/iptables -A BADTCP -i lo -j RETURN + # Don't check loopback + iptables -A BADTCP -i lo -j RETURN
# Disallow packets frequently used by port-scanners # nmap xmas - /sbin/iptables -A BADTCP -p tcp --tcp-flags ALL FIN,URG,PSH -j PSCAN + iptables -A BADTCP -p tcp --tcp-flags ALL FIN,URG,PSH -j PSCAN # Null - /sbin/iptables -A BADTCP -p tcp --tcp-flags ALL NONE -j PSCAN + iptables -A BADTCP -p tcp --tcp-flags ALL NONE -j PSCAN # FIN - /sbin/iptables -A BADTCP -p tcp --tcp-flags ALL FIN -j PSCAN + iptables -A BADTCP -p tcp --tcp-flags ALL FIN -j PSCAN # SYN/RST (also catches xmas variants that set SYN+RST+...) - /sbin/iptables -A BADTCP -p tcp --tcp-flags SYN,RST SYN,RST -j PSCAN + iptables -A BADTCP -p tcp --tcp-flags SYN,RST SYN,RST -j PSCAN # SYN/FIN (QueSO or nmap OS probe) - /sbin/iptables -A BADTCP -p tcp --tcp-flags SYN,FIN SYN,FIN -j PSCAN + iptables -A BADTCP -p tcp --tcp-flags SYN,FIN SYN,FIN -j PSCAN # NEW TCP without SYN - /sbin/iptables -A BADTCP -p tcp ! --syn -m state --state NEW -j NEWNOTSYN + iptables -A BADTCP -p tcp ! --syn -m conntrack --ctstate NEW -j NEWNOTSYN + + iptables -A INPUT -p tcp -j BADTCP + iptables -A FORWARD -p tcp -j BADTCP + + # Connection tracking chain + iptables -N CONNTRACK + iptables -A CONNTRACK -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT + + # Fix for braindead ISP's + iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu + + # CUSTOM chains, can be used by the users themselves + iptables -N CUSTOMINPUT + iptables -A INPUT -j CUSTOMINPUT + iptables -N CUSTOMFORWARD + iptables -A FORWARD -j CUSTOMFORWARD + iptables -N CUSTOMOUTPUT + iptables -A OUTPUT -j CUSTOMOUTPUT + iptables -t nat -N CUSTOMPREROUTING + iptables -t nat -A PREROUTING -j CUSTOMPREROUTING + iptables -t nat -N CUSTOMPOSTROUTING + iptables -t nat -A POSTROUTING -j CUSTOMPOSTROUTING + + # Guardian (IPS) chains + iptables -N GUARDIAN + iptables -A INPUT -j GUARDIAN + iptables -A FORWARD -j GUARDIAN + + # Block OpenVPN transfer networks + iptables -N OVPNBLOCK + iptables -A INPUT -i tun+ -j OVPNBLOCK + iptables -A OUTPUT -o tun+ -j OVPNBLOCK + iptables -A FORWARD -i tun+ -j OVPNBLOCK + iptables -A FORWARD -o tun+ -j OVPNBLOCK + + # OpenVPN transfer network translation + iptables -t nat -N OVPNNAT + iptables -t nat -A POSTROUTING -j OVPNNAT + + # IPTV chains for IGMPPROXY + iptables -N IPTVINPUT + iptables -A INPUT -j IPTVINPUT + iptables -N IPTVFORWARD + iptables -A FORWARD -j IPTVFORWARD + + # filtering from GUI + iptables -N GUIINPUT + iptables -A INPUT -j GUIINPUT + iptables -A GUIINPUT -p icmp --icmp-type 8 -j ACCEPT + + # Accept everything on loopback + iptables -N LOOPBACK + iptables -A LOOPBACK -i lo -j ACCEPT + iptables -A LOOPBACK -o lo -j ACCEPT + + # Filter all packets with loopback addresses on non-loopback interfaces. + iptables -A LOOPBACK -s 127.0.0.0/8 -j DROP + iptables -A LOOPBACK -d 127.0.0.0/8 -j DROP + + for i in INPUT FORWARD OUTPUT; do + iptables -A ${i} -j LOOPBACK + done + + # Accept everything connected + for i in INPUT FORWARD OUTPUT; do + iptables -A ${i} -j CONNTRACK + done + + # trafic from ipsecX/TUN/TAP interfaces, before "-i GREEN_DEV" accept everything + iptables -N IPSECINPUT + iptables -N IPSECFORWARD + iptables -N IPSECOUTPUT + iptables -A INPUT -j IPSECINPUT + iptables -A FORWARD -j IPSECFORWARD + iptables -A OUTPUT -j IPSECOUTPUT + iptables -t nat -N IPSECNAT + iptables -t nat -A POSTROUTING -j IPSECNAT + + # localhost and ethernet. + iptables -A INPUT -i $GREEN_DEV -m conntrack --ctstate NEW -j ACCEPT ! -p icmp + + # allow DHCP on BLUE to be turned on/off + iptables -N DHCPBLUEINPUT + iptables -A INPUT -j DHCPBLUEINPUT + + # WIRELESS chains + iptables -N WIRELESSINPUT + iptables -A INPUT -m conntrack --ctstate NEW -j WIRELESSINPUT + iptables -N WIRELESSFORWARD + iptables -A FORWARD -m conntrack --ctstate NEW -j WIRELESSFORWARD + + # OpenVPN + iptables -N OVPNINPUT + iptables -A INPUT -j OVPNINPUT + + # TOR + iptables -N TOR_INPUT + iptables -A INPUT -j TOR_INPUT + + # Jump into the actual firewall ruleset. + iptables -N INPUTFW + iptables -A INPUT -j INPUTFW + + iptables -N OUTGOINGFW + iptables -A OUTPUT -j OUTGOINGFW + + iptables -N FORWARDFW + iptables -A FORWARD -j FORWARDFW + + # SNAT rules + iptables -t nat -N NAT_SOURCE + iptables -t nat -A POSTROUTING -j NAT_SOURCE + + # Custom prerouting chains (for transparent proxy) + iptables -t nat -N SQUID + iptables -t nat -A PREROUTING -j SQUID + + # DNAT rules + iptables -t nat -N NAT_DESTINATION + iptables -t nat -A PREROUTING -j NAT_DESTINATION + + iptables -t mangle -N NAT_DESTINATION + iptables -t mangle -A PREROUTING -j NAT_DESTINATION + + iptables -t nat -N NAT_DESTINATION_FIX + iptables -t nat -A POSTROUTING -j NAT_DESTINATION_FIX
- /sbin/iptables -A INPUT -j BADTCP - /sbin/iptables -A FORWARD -j BADTCP + iptables -t nat -A NAT_DESTINATION_FIX \ + -m mark --mark 1 -j SNAT --to-source "${GREEN_ADDRESS}"
+ if [ -n "${BLUE_ADDRESS}" ]; then + iptables -t nat -A NAT_DESTINATION_FIX \ + -m mark --mark 2 -j SNAT --to-source "${BLUE_ADDRESS}" + fi + + if [ -n "${ORANGE_ADDRESS}" ]; then + iptables -t nat -A NAT_DESTINATION_FIX \ + -m mark --mark 3 -j SNAT --to-source "${ORANGE_ADDRESS}" + fi + + # upnp chain for our upnp daemon + iptables -t nat -N UPNPFW + iptables -t nat -A PREROUTING -j UPNPFW + iptables -N UPNPFW + iptables -A FORWARD -m conntrack --ctstate NEW -j UPNPFW + + # RED chain, used for the red interface + iptables -N REDINPUT + iptables -A INPUT -j REDINPUT + iptables -N REDFORWARD + iptables -A FORWARD -j REDFORWARD + iptables -t nat -N REDNAT + iptables -t nat -A POSTROUTING -j REDNAT + + # Filter logging of incoming broadcasts. + iptables -N BROADCAST_FILTER + iptables -A INPUT -j BROADCAST_FILTER + + iptables -A BROADCAST_FILTER -i "${GREEN_DEV}" -d "${GREEN_BROADCAST}" -j DROP + + if [ -n "${BLUE_DEV}" -a -n "${BLUE_BROADCAST}" ]; then + iptables -A BROADCAST_FILTER -i "${BLUE_DEV}" -d "${BLUE_BROADCAST}" -j DROP + fi + + if [ -n "${ORANGE_DEV}" -a -n "${ORANGE_BROADCAST}" ]; then + iptables -A BROADCAST_FILTER -i "${ORANGE_DEV}" -d "${ORANGE_BROADCAST}" -j DROP + fi + + # Apply OpenVPN firewall rules + /usr/local/bin/openvpnctrl --firewall-rules + + # run wirelessctrl + /usr/local/bin/wirelessctrl + + # POLICY CHAIN + iptables -N POLICYIN + iptables -A INPUT -j POLICYIN + iptables -N POLICYFWD + iptables -A FORWARD -j POLICYFWD + iptables -N POLICYOUT + iptables -A OUTPUT -j POLICYOUT + + # Initialize firewall policies. + /usr/sbin/firewall-policy + + # Install firewall rules for the red interface. + iptables_red }
iptables_red() { - /sbin/iptables -F REDINPUT - /sbin/iptables -F REDFORWARD - /sbin/iptables -t nat -F REDNAT + iptables -F REDINPUT + iptables -F REDFORWARD + iptables -t nat -F REDNAT
# PPPoE / PPTP Device if [ "$IFACE" != "" ]; then # PPPoE / PPTP if [ "$DEVICE" != "" ]; then - /sbin/iptables -A REDINPUT -i $DEVICE -j ACCEPT + iptables -A REDINPUT -i $DEVICE -j ACCEPT fi if [ "$RED_TYPE" == "PPTP" -o "$RED_TYPE" == "PPPOE" ]; then if [ "$RED_DEV" != "" ]; then - /sbin/iptables -A REDINPUT -i $RED_DEV -j ACCEPT + iptables -A REDINPUT -i $RED_DEV -j ACCEPT fi fi fi
# PPTP over DHCP if [ "$DEVICE" != "" -a "$TYPE" == "PPTP" -a "$METHOD" == "DHCP" ]; then - /sbin/iptables -A REDINPUT -p tcp --source-port 67 --destination-port 68 -i $DEVICE -j ACCEPT - /sbin/iptables -A REDINPUT -p udp --source-port 67 --destination-port 68 -i $DEVICE -j ACCEPT + iptables -A REDINPUT -p tcp --source-port 67 --destination-port 68 -i $DEVICE -j ACCEPT + iptables -A REDINPUT -p udp --source-port 67 --destination-port 68 -i $DEVICE -j ACCEPT fi
# Orange pinholes @@ -104,249 +294,80 @@ iptables_red() { # This rule enables a host on ORANGE network to connect to the outside # (only if we have a red connection) if [ "$IFACE" != "" ]; then - /sbin/iptables -A REDFORWARD -i $ORANGE_DEV -o $IFACE -j ACCEPT + iptables -A REDFORWARD -i $ORANGE_DEV -o $IFACE -j ACCEPT fi fi
if [ "$IFACE" != "" -a -f /var/ipfire/red/active ]; then # DHCP if [ "$RED_DEV" != "" -a "$RED_TYPE" == "DHCP" ]; then - /sbin/iptables -A REDINPUT -p tcp --source-port 67 --destination-port 68 -i $IFACE -j ACCEPT - /sbin/iptables -A REDINPUT -p udp --source-port 67 --destination-port 68 -i $IFACE -j ACCEPT + iptables -A REDINPUT -p tcp --source-port 67 --destination-port 68 -i $IFACE -j ACCEPT + iptables -A REDINPUT -p udp --source-port 67 --destination-port 68 -i $IFACE -j ACCEPT fi if [ "$METHOD" == "DHCP" -a "$PROTOCOL" == "RFC1483" ]; then - /sbin/iptables -A REDINPUT -p tcp --source-port 67 --destination-port 68 -i $IFACE -j ACCEPT - /sbin/iptables -A REDINPUT -p udp --source-port 67 --destination-port 68 -i $IFACE -j ACCEPT + iptables -A REDINPUT -p tcp --source-port 67 --destination-port 68 -i $IFACE -j ACCEPT + iptables -A REDINPUT -p udp --source-port 67 --destination-port 68 -i $IFACE -j ACCEPT fi
# Outgoing masquerading (don't masqerade IPSEC (mark 50)) - /sbin/iptables -t nat -A REDNAT -m mark --mark 50 -o $IFACE -j RETURN - /sbin/iptables -t nat -A REDNAT -o $IFACE -j MASQUERADE + iptables -t nat -A REDNAT -m mark --mark 50 -o $IFACE -j RETURN + iptables -t nat -A REDNAT -o $IFACE -j MASQUERADE
fi + + # Reload all rules. + /usr/local/bin/firewallctrl }
# See how we were called. case "$1" in start) - iptables_init - - # Limit Packets- helps reduce dos/syn attacks - # original do nothing line - #/sbin/iptables -A INPUT -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -m limit --limit 10/sec - # the correct one, but the negative '!' do nothing... - #/sbin/iptables -A INPUT -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN ! -m limit --limit 10/sec -j DROP - - # Fix for braindead ISP's - /sbin/iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu - - # CUSTOM chains, can be used by the users themselves - /sbin/iptables -N CUSTOMINPUT - /sbin/iptables -A INPUT -j CUSTOMINPUT - /sbin/iptables -N GUARDIAN - /sbin/iptables -A INPUT -j GUARDIAN - /sbin/iptables -A FORWARD -j GUARDIAN - /sbin/iptables -N CUSTOMFORWARD - /sbin/iptables -A FORWARD -j CUSTOMFORWARD - /sbin/iptables -N CUSTOMOUTPUT - /sbin/iptables -A OUTPUT -j CUSTOMOUTPUT - /sbin/iptables -N OUTGOINGFW - /sbin/iptables -N OUTGOINGFWMAC - /sbin/iptables -A OUTPUT -j OUTGOINGFW - /sbin/iptables -t nat -N CUSTOMPREROUTING - /sbin/iptables -t nat -A PREROUTING -j CUSTOMPREROUTING - /sbin/iptables -t nat -N CUSTOMPOSTROUTING - /sbin/iptables -t nat -A POSTROUTING -j CUSTOMPOSTROUTING - - # IPTV chains for IGMPPROXY - /sbin/iptables -N IPTVINPUT - /sbin/iptables -A INPUT -j IPTVINPUT - /sbin/iptables -N IPTVFORWARD - /sbin/iptables -A FORWARD -j IPTVFORWARD - - # filtering from GUI - /sbin/iptables -N GUIINPUT - /sbin/iptables -A INPUT -j GUIINPUT - /sbin/iptables -A GUIINPUT -p icmp --icmp-type 8 -j ACCEPT - - # Accept everything connected - /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT - /sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT - - # trafic from ipsecX/TUN/TAP interfaces, before "-i GREEN_DEV" accept everything - /sbin/iptables -N IPSECINPUT - /sbin/iptables -N IPSECFORWARD - /sbin/iptables -N IPSECOUTPUT - /sbin/iptables -N OPENSSLVIRTUAL - /sbin/iptables -A INPUT -j IPSECINPUT - /sbin/iptables -A INPUT -j OPENSSLVIRTUAL -m comment --comment "OPENSSLVIRTUAL INPUT" - /sbin/iptables -A FORWARD -j IPSECFORWARD - /sbin/iptables -A FORWARD -j OPENSSLVIRTUAL -m comment --comment "OPENSSLVIRTUAL FORWARD" - /sbin/iptables -A OUTPUT -j IPSECOUTPUT - /sbin/iptables -t nat -N OVPNNAT - /sbin/iptables -t nat -N IPSECNAT - /sbin/iptables -t nat -A POSTROUTING -j OVPNNAT - /sbin/iptables -t nat -A POSTROUTING -j IPSECNAT - - # TOR - /sbin/iptables -N TOR_INPUT - /sbin/iptables -A INPUT -j TOR_INPUT - - # Outgoing Firewall - /sbin/iptables -A FORWARD -j OUTGOINGFWMAC - - # localhost and ethernet. - /sbin/iptables -A INPUT -i lo -m state --state NEW -j ACCEPT - /sbin/iptables -A INPUT -s 127.0.0.0/8 -m state --state NEW -j DROP # Loopback not on lo - /sbin/iptables -A INPUT -d 127.0.0.0/8 -m state --state NEW -j DROP - /sbin/iptables -A FORWARD -i lo -m state --state NEW -j ACCEPT - /sbin/iptables -A FORWARD -s 127.0.0.0/8 -m state --state NEW -j DROP - /sbin/iptables -A FORWARD -d 127.0.0.0/8 -m state --state NEW -j DROP - /sbin/iptables -A INPUT -i $GREEN_DEV -m state --state NEW -j ACCEPT ! -p icmp - /sbin/iptables -A FORWARD -i $GREEN_DEV -m state --state NEW -j ACCEPT - - # If a host on orange tries to initiate a connection to IPFire's red IP and - # the connection gets DNATed back through a port forward to a server on orange - # we end up with orange -> orange traffic passing through IPFire - [ "$ORANGE_DEV" != "" ] && /sbin/iptables -A FORWARD -i $ORANGE_DEV -o $ORANGE_DEV -m state --state NEW -j ACCEPT - - # allow DHCP on BLUE to be turned on/off - /sbin/iptables -N DHCPBLUEINPUT - /sbin/iptables -A INPUT -j DHCPBLUEINPUT - - # OPenSSL - /sbin/iptables -N OPENSSLPHYSICAL - /sbin/iptables -A INPUT -j OPENSSLPHYSICAL - - # WIRELESS chains - /sbin/iptables -N WIRELESSINPUT - /sbin/iptables -A INPUT -m state --state NEW -j WIRELESSINPUT - /sbin/iptables -N WIRELESSFORWARD - /sbin/iptables -A FORWARD -m state --state NEW -j WIRELESSFORWARD - - # RED chain, used for the red interface - /sbin/iptables -N REDINPUT - /sbin/iptables -A INPUT -j REDINPUT - /sbin/iptables -N REDFORWARD - /sbin/iptables -A FORWARD -j REDFORWARD - /sbin/iptables -t nat -N REDNAT - /sbin/iptables -t nat -A POSTROUTING -j REDNAT - - iptables_red - - # DMZ pinhole chain. setdmzholes setuid prog adds rules here to allow - # ORANGE to talk to GREEN / BLUE. - /sbin/iptables -N DMZHOLES - if [ "$ORANGE_DEV" != "" ]; then - /sbin/iptables -A FORWARD -i $ORANGE_DEV -m state --state NEW -j DMZHOLES + boot_mesg "Loading firewall modules into the kernel" + modprobe iptable_nat || failed=1 + for i in $(find /lib/modules/$(uname -r) -name nf_conntrack*); do + modprobe $(basename $i | cut -d. -f1) || failed=1 + done + for i in $(find /lib/modules/$(uname -r) -name nf_nat*); do + modprobe $(basename $i | cut -d. -f1) || failed=1 + done + (exit ${failed}) + evaluate_retval + + if [ -e /var/ipfire/main/disable_nf_sip ]; then + rmmod nf_nat_sip + rmmod nf_conntrack_sip + rmmod nf_nat_h323 + rmmod nf_conntrack_h323 fi
- # XTACCESS chain, used for external access - /sbin/iptables -N XTACCESS - /sbin/iptables -A INPUT -m state --state NEW -j XTACCESS - - # PORTFWACCESS chain, used for portforwarding - /sbin/iptables -N PORTFWACCESS - /sbin/iptables -A FORWARD -m state --state NEW -j PORTFWACCESS - - # Custom prerouting chains (for transparent proxy and port forwarding) - /sbin/iptables -t nat -N SQUID - /sbin/iptables -t nat -A PREROUTING -j SQUID - /sbin/iptables -t nat -N PORTFW - /sbin/iptables -t nat -A PREROUTING -j PORTFW - - # upnp chain for our upnp daemon - /sbin/iptables -t nat -N UPNPFW - /sbin/iptables -t nat -A PREROUTING -j UPNPFW - /sbin/iptables -N UPNPFW - /sbin/iptables -A FORWARD -m state --state NEW -j UPNPFW - - # Custom mangle chain (for port fowarding) - /sbin/iptables -t mangle -N PORTFWMANGLE - /sbin/iptables -t mangle -A PREROUTING -j PORTFWMANGLE - - # Postrouting rules (for port forwarding) - /sbin/iptables -t nat -A POSTROUTING -m mark --mark 1 -j SNAT \ - --to-source $GREEN_ADDRESS - if [ "$BLUE_DEV" != "" ]; then - /sbin/iptables -t nat -A POSTROUTING -m mark --mark 2 -j SNAT --to-source $BLUE_ADDRESS - fi - if [ "$ORANGE_DEV" != "" ]; then - /sbin/iptables -t nat -A POSTROUTING -m mark --mark 3 -j SNAT --to-source $ORANGE_ADDRESS - fi - - # run local firewall configuration, if present - if [ -x /etc/sysconfig/firewall.local ]; then - /etc/sysconfig/firewall.local start - fi - - # last rule in input and forward chain is for logging. - - if [ "$DROPINPUT" == "on" ]; then - /sbin/iptables -A INPUT -m limit --limit 10/minute -j LOG --log-prefix "DROP_INPUT " - fi - /sbin/iptables -A INPUT -j DROP -m comment --comment "DROP_INPUT" - if [ "$DROPOUTPUT" == "on" ]; then - /sbin/iptables -A FORWARD -m limit --limit 10/minute -j LOG --log-prefix "DROP_OUTPUT " - fi - /sbin/iptables -A FORWARD -j DROP -m comment --comment "DROP_OUTPUT" - ;; - startovpn) - # run openvpn - /usr/local/bin/openvpnctrl --create-chains-and-rules - ;; - stop) + boot_mesg "Setting up firewall" iptables_init - # Accept everyting connected - /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT - - # localhost and ethernet. - /sbin/iptables -A INPUT -i lo -j ACCEPT - /sbin/iptables -A INPUT -i $GREEN_DEV -m state --state NEW -j ACCEPT - - if [ "$RED_DEV" != "" -a "$RED_TYPE" == "DHCP" ]; then - /sbin/iptables -A INPUT -p tcp --source-port 67 --destination-port 68 -i $IFACE -j ACCEPT - /sbin/iptables -A INPUT -p udp --source-port 67 --destination-port 68 -i $IFACE -j ACCEPT - fi - if [ "$PROTOCOL" == "RFC1483" -a "$METHOD" == "DHCP" ]; then - /sbin/iptables -A INPUT -p tcp --source-port 67 --destination-port 68 -i $IFACE -j ACCEPT - /sbin/iptables -A INPUT -p udp --source-port 67 --destination-port 68 -i $IFACE -j ACCEPT - fi + evaluate_retval
# run local firewall configuration, if present - if [ -x /etc/sysconfig/firewall.local ]; then - /etc/sysconfig/firewall.local stop - fi - - if [ "$DROPINPUT" == "on" ]; then - /sbin/iptables -A INPUT -m limit --limit 10/minute -j LOG --log-prefix "DROP_INPUT " - fi - /sbin/iptables -A INPUT -j DROP -m comment --comment "DROP_INPUT" - if [ "$DROPOUTPUT" == "on" ]; then - /sbin/iptables -A FORWARD -m limit --limit 10/minute -j LOG --log-prefix "DROP_OUTPUT " + if [ -x /etc/sysconfig/firewall.local ]; then + /etc/sysconfig/firewall.local start fi - /sbin/iptables -A FORWARD -j DROP -m comment --comment "DROP_OUTPUT" - ;; - stopovpn) - # stop openvpn - /usr/local/bin/openvpnctrl --delete-chains-and-rules - ;; + ;; reload) + boot_mesg "Reloading firewall" iptables_red + evaluate_retval
# run local firewall configuration, if present - if [ -x /etc/sysconfig/firewall.local ]; then + if [ -x /etc/sysconfig/firewall.local ]; then /etc/sysconfig/firewall.local reload fi ;; restart) - $0 stop - $0 stopovpn + # run local firewall configuration, if present + if [ -x /etc/sysconfig/firewall.local ]; then + /etc/sysconfig/firewall.local stop + fi $0 start - $0 startovpn ;; *) - echo "Usage: $0 {start|stop|reload|restart}" + echo "Usage: $0 {start|reload|restart}" exit 1 ;; esac diff --git a/src/initscripts/init.d/firstsetup b/src/initscripts/init.d/firstsetup index 0d3f448..32236e6 100644 --- a/src/initscripts/init.d/firstsetup +++ b/src/initscripts/init.d/firstsetup @@ -35,15 +35,20 @@ if [ "${?}" == "1" ]; then fi
# plan install pae kernel at next pakfire update if pae is supported -rm -rf /opt/pakfire/db/*/meta-linux-pae if [ ! "$(grep "^flags.* pae " /proc/cpuinfo)" == "" ]; then - echo "Name: linux-pae" > /opt/pakfire/db/installed/meta-linux-pae - echo "ProgVersion: 0" >> /opt/pakfire/db/installed/meta-linux-pae - echo "Release: 0" >> /opt/pakfire/db/installed/meta-linux-pae + if [ ! -e /opt/pakfire/db/installed/meta-linux-pae ]; then + echo "Name: linux-pae" > /opt/pakfire/db/installed/meta-linux-pae + echo "ProgVersion: 0" >> /opt/pakfire/db/installed/meta-linux-pae + echo "Release: 0" >> /opt/pakfire/db/installed/meta-linux-pae + echo "Name: linux-pae" > /opt/pakfire/db/meta/meta-linux-pae + echo "ProgVersion: 0" >> /opt/pakfire/db/meta/meta-linux-pae + echo "Release: 0" >> /opt/pakfire/db/meta/meta-linux-pae + fi fi
echo Restarting udev... killall udevd +/sbin/udevadm hwdb --update /sbin/udevd --daemon /sbin/udevadm trigger /sbin/udevadm settle diff --git a/src/initscripts/init.d/hostapd b/src/initscripts/init.d/hostapd index c0b11e6..8f59a7f 100644 --- a/src/initscripts/init.d/hostapd +++ b/src/initscripts/init.d/hostapd @@ -75,7 +75,10 @@ case "${1}" in fi fi
- # First reset to World (00) and then set new country + # First set to any country then reset to World (00) + # and then set new country because the card is only + # reprogrammed if the region was changed. + /usr/sbin/iw reg set DE /usr/sbin/iw reg set 00 /usr/sbin/iw reg set $COUNTRY
diff --git a/src/initscripts/init.d/leds b/src/initscripts/init.d/leds index 3bd27a4..d75a2e9 100644 --- a/src/initscripts/init.d/leds +++ b/src/initscripts/init.d/leds @@ -50,6 +50,14 @@ disable_led_trigger () fi }
+# enable LED +enable_led () +{ + if [ -d "/sys/class/leds/$1" ]; then + echo "1" > /sys/class/leds/$1/brightness + fi +} + case "${1}" in start) # Alix LED start @@ -57,6 +65,16 @@ case "${1}" in setup_netdev_trigger alix:2 ${RED_DEV} rx setup_netdev_trigger alix:3 ${RED_DEV} tx
+ # Apu LED start + setup_heartbeat_trigger apu:1 + setup_netdev_trigger apu:2 ${RED_DEV} rx + setup_netdev_trigger apu:3 ${RED_DEV} tx + + # Geos LED start + setup_heartbeat_trigger geos:1 + setup_netdev_trigger geos:2 ${RED_DEV} rx + setup_netdev_trigger geos:3 ${RED_DEV} tx + # Dreamplug setup_netdev_trigger dreamplug:green:wlan ${GREEN_DEV} tx rx setup_netdev_trigger dreamplug:blue:wlanap ${BLUE_DEV} tx rx @@ -80,9 +98,22 @@ case "${1}" in stop) # Alix LED stop disable_led_trigger alix:1 + enable_led alix:1 disable_led_trigger alix:2 disable_led_trigger alix:3
+ # Apu LED stop + disable_led_trigger apu:1 + enable_led apu:1 + disable_led_trigger apu:2 + disable_led_trigger apu:3 + + # Geos LED stop + disable_led_trigger geos:1 + enable_led geos:1 + disable_led_trigger geos:2 + disable_led_trigger geos:3 + # Dreamplug disable_led_trigger dreamplug:green:wlan disable_led_trigger dreamplug:blue:wlanap diff --git a/src/initscripts/init.d/mountfs b/src/initscripts/init.d/mountfs index d4735d5..284b51d 100644 --- a/src/initscripts/init.d/mountfs +++ b/src/initscripts/init.d/mountfs @@ -24,11 +24,9 @@ case "${1}" in # Remove fsck-related file system watermarks. rm -f /fastboot /forcefsck
- boot_mesg "Recording existing mounts in /etc/mtab..." + boot_mesg "Create /etc/mtab..." > /etc/mtab mount -f / || failed=1 - mount -f /proc || failed=1 - mount -f /sys || failed=1 (exit ${failed}) evaluate_retval
@@ -49,9 +47,6 @@ case "${1}" in boot_mesg "Unmounting all other currently mounted file systems..." umount -a -d -r &>/dev/null evaluate_retval - - # mount /sys again for led control at halt - mount /sys 2>&1 >/dev/null ;; *) echo "Usage: ${0} {start|stop}" diff --git a/src/initscripts/init.d/mountkernfs b/src/initscripts/init.d/mountkernfs index 1e5be05..f7be82d 100644 --- a/src/initscripts/init.d/mountkernfs +++ b/src/initscripts/init.d/mountkernfs @@ -21,12 +21,17 @@ case "${1}" in
if ! mountpoint /proc &> /dev/null; then boot_mesg -n " /proc" ${NORMAL} - mount -n /proc || failed=1 + mount -n -t proc /proc /proc || failed=1 fi
if ! mountpoint /sys &> /dev/null; then boot_mesg -n " /sys" ${NORMAL} - mount -n /sys || failed=1 + mount -n -t sysfs /sys /sys || failed=1 + fi + + if ! mountpoint /run &> /dev/null; then + boot_mesg -n " /run" ${NORMAL} + mount -n -t tmpfs -o nosuid,nodev,mode=755,size=8M /run /run || failed=1 fi
boot_mesg "" ${NORMAL} diff --git a/src/initscripts/init.d/network b/src/initscripts/init.d/network index 9ff2200..5aecd15 100644 --- a/src/initscripts/init.d/network +++ b/src/initscripts/init.d/network @@ -17,44 +17,6 @@ eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings)
init_networking() { - boot_mesg "Loading firewall modules into the kernel" - modprobe iptable_nat || failed=1 - for i in $(find /lib/modules/$(uname -r) -name nf_conntrack*); do - modprobe $(basename $i | cut -d. -f1) || failed=1 - done - for i in $(find /lib/modules/$(uname -r) -name nf_nat*); do - modprobe $(basename $i | cut -d. -f1) || failed=1 - done - (exit ${failed}) - evaluate_retval - - # Enable netfilter accounting - sysctl net.netfilter.nf_conntrack_acct=1 > /dev/null - - if [ -e /var/ipfire/main/disable_nf_sip ]; then - rmmod nf_nat_sip - rmmod nf_conntrack_sip - rmmod nf_nat_h323 - rmmod nf_conntrack_h323 - fi - - boot_mesg "Setting up firewall" - /etc/rc.d/init.d/firewall start; evaluate_retval - -# boot_mesg "Setting up traffic accounting" -# /etc/rc.d/helper/writeipac.pl || failed=1 -# /usr/sbin/fetchipac -S || failed=1 -# (exit ${failed}) -# evaluate_retval - - boot_mesg "Setting up DMZ pinholes" - /usr/local/bin/setdmzholes; evaluate_retval - - if [ "$CONFIG_TYPE" = "3" -o "$CONFIG_TYPE" = "4" ]; then - boot_mesg "Setting up wireless firewall rules" - /usr/local/bin/wirelessctrl; evaluate_retval - fi - /etc/rc.d/init.d/dnsmasq start /etc/rc.d/init.d/static-routes start } diff --git a/src/initscripts/init.d/network-vlans b/src/initscripts/init.d/network-vlans index c31f3e1..a6a75c3 100644 --- a/src/initscripts/init.d/network-vlans +++ b/src/initscripts/init.d/network-vlans @@ -80,13 +80,15 @@ for interface in green0 red0 blue0 orange0; do continue fi
- echo "Creating VLAN interface ${interface}..." - vconfig add ${PARENT_DEV} ${VLAN_ID} - ip link set ${PARENT_DEV}.${VLAN_ID} name ${interface} - + # Build command line. + command="ip link add link ${PARENT_DEV} name ${interface}" if [ -n "${MAC_ADDRESS}" ]; then - ip link set ${interface} address ${MAC_ADDRESS} + command="${command} address ${MAC_ADDRESS}" fi + command="${command} type vlan id ${VLAN_ID}" + + echo "Creating VLAN interface ${interface}..." + ${command}
# Bring up the parent device. ip link set ${PARENT_DEV} up @@ -100,7 +102,7 @@ for interface in green0 red0 blue0 orange0; do
echo "Removing VLAN interface ${interface}..." ip link set ${interface} down - vconfig rem ${interface} + ip link delete ${interface} ;; *) diff --git a/src/initscripts/init.d/networking/red b/src/initscripts/init.d/networking/red index 28df551..b09737e 100644 --- a/src/initscripts/init.d/networking/red +++ b/src/initscripts/init.d/networking/red @@ -175,6 +175,14 @@ case "${1}" in boot_mesg "Createing ATM-Bridge as $PPP_NIC ..." br2684ctl -c0 -e${ENCAP} -a0.${VPI}.${VCI} >/dev/null 2>&1 & sleep 1 + + # use user-defined or green mac address for nas0 + if [ -n "$MAC" ]; then + ip link set dev nas0 address ${MAC} + else + ip link set dev nas0 address $(cat /sys/class/net/green0/address) + fi + if [ "$TYPE" == "pppoeatm" ]; then TYPE="pppoe" fi diff --git a/src/initscripts/init.d/ntp b/src/initscripts/init.d/ntp index 92f174d..548b4c4 100644 --- a/src/initscripts/init.d/ntp +++ b/src/initscripts/init.d/ntp @@ -9,9 +9,29 @@ eval $(/usr/local/bin/readhash /var/ipfire/time/settings) case "$1" in start) if [ "$ENABLESETONBOOT" == "on" ]; then - boot_mesg "Setting time on boot..." - loadproc /usr/local/bin/settime $(cat /var/ipfire/time/settime.conf) - fi + boot_mesg -n "Setting time on boot..." + if [ $(pidof wpa_supplicant) ]; then + if [ ! -e /var/ipfire/red/active ]; then + boot_mesg "" + boot_mesg -n "Wait for wlan" + for (( i=30; i>1; i-- )) do + if [ -e /var/ipfire/red/active ]; then + break; + fi + boot_mesg -n "." + sleep 2 + done + sleep 5 + fi + fi + if [ -e /var/ipfire/red/active ]; then + boot_mesg "" + loadproc /usr/local/bin/settime $(cat /var/ipfire/time/settime.conf) + else + boot_mesg " ERROR! Not online!" + echo_warning + fi + fi
boot_mesg "Starting ntpd..." loadproc /usr/bin/ntpd -Ap /var/run/ntpd.pid diff --git a/src/initscripts/init.d/partresize b/src/initscripts/init.d/partresize index 33b5626..f9b1aa9 100644 --- a/src/initscripts/init.d/partresize +++ b/src/initscripts/init.d/partresize @@ -6,7 +6,7 @@ # # Authors : Arne Fitzenreiter - arne_f@ipfire.org # -# Version : 1.01 +# Version : 1.04 # # Notes : # @@ -22,6 +22,12 @@ case "${1}" in mount -o remount,rw / > /dev/null evaluate_retval
+ boot_mesg "Create /etc/mtab..." + > /etc/mtab + mount -f / || failed=1 + (exit ${failed}) + evaluate_retval + # Detect device ROOT=`mount | grep -m1 " / " | cut -d" " -f1`; if [ "${ROOT:`expr length $ROOT`-2:1}" == "p" ]; then @@ -31,14 +37,18 @@ case "${1}" in fi
boot_mesg "Change Partition ${DRV}3 to all free space ..." - echo -e 'd\n3\nn\np\n3\n\n\nw\nq\n' | fdisk ${DRV} + echo -e ',+' | sfdisk --no-reread -f -N3 ${DRV} 2>/dev/null + + boot_mesg "Update c,h,s values of ${DRV}1 ..." + echo -e ',' | sfdisk --no-reread -f -N1 ${DRV} &> /dev/null
# Erase symlink, it should run only once rm -f /etc/rc.d/rcsysinit.d/S25partresize
boot_mesg "Rebooting ..." sync - mount -o remount,ro / > /dev/null + mount -o remount,ro / &> /dev/null + sleep 15 reboot -f
;; @@ -49,4 +59,3 @@ case "${1}" in esac
# End $rc_base/init.d/partresize - diff --git a/src/initscripts/init.d/random b/src/initscripts/init.d/random index 26c64e3..57aef99 100644 --- a/src/initscripts/init.d/random +++ b/src/initscripts/init.d/random @@ -15,14 +15,14 @@ case "$1" in /bin/cat /var/tmp/random-seed >/dev/urandom fi /bin/dd if=/dev/urandom of=/var/tmp/random-seed \ - count=1 &>/dev/null + count=4 &>/dev/null evaluate_retval ;;
stop) boot_mesg "Saving random seed..." /bin/dd if=/dev/urandom of=/var/tmp/random-seed \ - count=1 &>/dev/null + count=4 &>/dev/null evaluate_retval ;;
diff --git a/src/initscripts/init.d/rngd b/src/initscripts/init.d/rngd new file mode 100644 index 0000000..22437fd --- /dev/null +++ b/src/initscripts/init.d/rngd @@ -0,0 +1,59 @@ +#!/bin/sh +######################################################################## +# Begin $rc_base/init.d/rngd +# +# Description : Random Number Generator Daemon +# +# Authors : Michael Tremer michael.tremer@ipfire.org +# +######################################################################## + +. /etc/sysconfig/rc +. ${rc_functions} + +function has_rdrand() { + grep -q "rdrand" /proc/cpuinfo +} + +function has_hwrng() { + [ -e "/dev/hwrng" ] +} + +case "${1}" in + start) + if ! has_hwrng && ! has_rdrand; then + boot_mesg "No Hardware Random Number Generator found..." + echo_warning + exit 0 + fi + + boot_mesg "Starting Random Number Generator Daemon..." + loadproc /usr/sbin/rngd --no-tpm=1 + ;; + + stop) + boot_mesg "Stopping Random Number Generator Daemon..." + killproc /usr/sbin/rngd + ;; + + restart) + ${0} stop + sleep 1 + ${0} start + ;; + + status) + statusproc /usr/sbin/rngd + ;; + + udev-event) + $0 restart &>/dev/null + ;; + + *) + echo "Usage: ${0} {start|stop|restart|status}" + exit 1 + ;; +esac + +# End $rc_base/init.d/rngd diff --git a/src/initscripts/init.d/sshd b/src/initscripts/init.d/sshd index e99e694..0ed8661 100644 --- a/src/initscripts/init.d/sshd +++ b/src/initscripts/init.d/sshd @@ -12,20 +12,39 @@
case "$1" in start) - if [ ! -e /etc/ssh/ssh_host_rsa_key ]; then - echo "Generating SSH Keys" - ssh-keygen -qf /etc/ssh/ssh_host_rsa_key -N '' - ssh-keygen -qf /etc/ssh/ssh_host_key -N '' -t rsa1 - ssh-keygen -qf /etc/ssh/ssh_host_dsa_key -N '' -t dsa - ssh-keygen -qf /etc/ssh/ssh_host_ecdsa_key -N '' -t ecdsa - fi + if [ ! -e "/etc/ssh/ssh_host_key" ]; then + boot_mesg "Generating SSH host key..." + ssh-keygen -qf /etc/ssh/ssh_host_key -N '' -t rsa1 + evaluate_retval + fi + + for algo in rsa dsa ecdsa ed25519; do + keyfile="/etc/ssh/ssh_host_${algo}_key" + + # If the key already exists, there is nothing to do. + [ -e "${keyfile}" ] && continue + + case "${algo}" in + rsa) + algo="rsa1" + ;; + esac + + boot_mesg "Generating SSH key (${algo})..." + ssh-keygen -qf "${keyfile}" -N '' -t ${algo} + evaluate_retval + done
[ -e "/var/ipfire/remote/enablessh" ] || exit 0 # SSH is not enabled boot_mesg "Starting SSH Server..." - # Also prevent ssh from being killed by out of memory conditions loadproc /usr/sbin/sshd - sleep 3 - echo "-16" >/proc/`cat /var/run/sshd.pid`/oom_adj + + # Also prevent ssh from being killed by out of memory conditions + ( + sleep 3 + pid=$(cat /var/run/sshd.pid 2>/dev/null) + [ -n "${pid}" ] && echo "-16" > "/proc/${pid}/oom_score_adj" + ) & ;;
stop) diff --git a/src/initscripts/init.d/sslh b/src/initscripts/init.d/sslh index 9c15213..43e58f3 100644 --- a/src/initscripts/init.d/sslh +++ b/src/initscripts/init.d/sslh @@ -4,29 +4,30 @@ # Based on sysklogd script from LFS-3.1 and earlier. # Rewritten by Gerard Beekmans - gerard@linuxfromscratch.org
-#$LastChangedBy: bdubbs $ -#$Date: 2006-09-10 19:41:47 -0500 (Sun, 10 Sep 2006) $ - . /etc/sysconfig/rc . $rc_functions
case "$1" in start) boot_mesg "Starting SSLH Deamon..." - loadproc /usr/local/bin/sslh -u nobody -p `cat /var/ipfire/red/local-ipaddress`:443 -s localhost:222 -l localhost:444 - evaluate_retval
- if ! grep -q "443:443" /var/ipfire/xtaccess/config ; then - echo "tcp,0.0.0.0/0,443:443,on,0.0.0.0,SSLH" >> /var/ipfire/xtaccess/config - /usr/local/bin/setxtaccess + LOCAL_IP_ADDRESS="$(</var/ipfire/red/local-ipaddress)" + if [ -z "${LOCAL_IP_ADDRESS}" ]; then + echo_failure + boot_mesg -n "FAILURE:\n\nCould not determine" ${FAILURE} + boot_mesg -n " your external IP address." + boot_mesg "" ${NORMAL} + exit 1 fi
- + loadproc /usr/sbin/sslh -u nobody \ + -p "${LOCAL_IP_ADDRESS}:443" -s localhost:222 -l localhost:444 + evaluate_retval ;;
stop) boot_mesg "Stopping SSLH Deamon..." - killproc /usr/local/bin/sslh + killproc /usr/sbin/sslh evaluate_retval ;;
@@ -37,7 +38,7 @@ case "$1" in ;;
status) - statusproc /usr/local/bin/sslh + statusproc /usr/sbin/sslh ;;
*) diff --git a/src/initscripts/init.d/tor b/src/initscripts/init.d/tor index 9c1dfc7..551538e 100644 --- a/src/initscripts/init.d/tor +++ b/src/initscripts/init.d/tor @@ -9,6 +9,8 @@ . /etc/sysconfig/rc . ${rc_functions}
+FILEDESCRIPTORS="65535" + eval $(/usr/local/bin/readhash /var/ipfire/tor/settings)
function tor_is_enabled() { @@ -40,6 +42,11 @@ case "${1}" in # Setup firewall. setup_firewall
+ # Increasing open file descriptors. + if [ -n "${FILEDESCRIPTORS}" ]; then + ulimit -n "${FILEDESCRIPTORS}" + fi + boot_mesg "Starting tor..." loadproc /usr/bin/tor \ --runasdaemon 1 \ diff --git a/src/initscripts/init.d/udev b/src/initscripts/init.d/udev index 03846e6..b6d0100 100644 --- a/src/initscripts/init.d/udev +++ b/src/initscripts/init.d/udev @@ -29,16 +29,10 @@ case "${1}" in read ENTER /etc/rc.d/init.d/halt stop fi - - # Mount a temporary file system over /dev, so that any devices - # made or removed during this boot don't affect the next one. - # The reason we don't write to mtab is because we don't ever - # want /dev to be unavailable (such as by `umount -a'). - mount -n -t tmpfs tmpfs /dev -o mode=755 - if [ ${?} != 0 ]; then + if ! grep -q '[[:space:]]/dev' /proc/mounts; then echo_failure - boot_mesg -n "FAILURE:\n\nCannot mount a tmpfs" ${FAILURE} - boot_mesg -n " onto /dev, this system will be halted." + boot_mesg -n "FAILURE:\n\nKernel has no devtmpfs/mount" ${FAILURE} + boot_mesg -n " support but this is needed for udev." boot_mesg -n "\n\nAfter you press Enter, this system" boot_mesg -n " will be halted and powered off." boot_mesg -n "\n\nPress Enter to continue..." ${INFO} @@ -47,6 +41,16 @@ case "${1}" in /etc/rc.d/init.d/halt stop fi
+ if ! grep -q '[[:space:]]/dev/shm' /proc/mounts; then + mkdir -p /dev/shm + mount -t tmpfs tmpfs /dev/shm + fi + + if ! grep -q '[[:space:]]/dev/pts' /proc/mounts; then + mkdir -p /dev/pts + mount -t devpts devpts -o gid=5,mode=620 /dev/pts + fi + # Udev handles uevents itself, so we don't need to have # the kernel call out to any binary in response to them echo > /proc/sys/kernel/hotplug @@ -60,10 +64,10 @@ case "${1}" in
# Now traverse /sys in order to "coldplug" devices that have # already been discovered - /sbin/udevadm trigger + /bin/udevadm trigger
# Now wait for udevd to process the uevents we triggered - /sbin/udevadm settle + /bin/udevadm settle evaluate_retval
;; diff --git a/src/initscripts/init.d/udev_retry b/src/initscripts/init.d/udev_retry index 78461ce..25e6967 100644 --- a/src/initscripts/init.d/udev_retry +++ b/src/initscripts/init.d/udev_retry @@ -26,7 +26,7 @@ case "${1}" in done 2>/dev/null # Now wait for udevd to process the uevents we triggered - /sbin/udevadm settle + /bin/udevadm settle evaluate_retval ;;
diff --git a/src/install+setup/install/main.c b/src/install+setup/install/main.c index 8525e53..0a86bb0 100644 --- a/src/install+setup/install/main.c +++ b/src/install+setup/install/main.c @@ -12,7 +12,7 @@ #include "install.h" #define _GNU_SOURCE
-#define INST_FILECOUNT 14400 +#define INST_FILECOUNT 15000 #define UNATTENDED_CONF "/cdrom/boot/unattended.conf" #define LICENSE_FILE "/cdrom/COPYING"
@@ -372,7 +372,14 @@ int main(int argc, char *argv[])
fclose(handle);
- snprintf(commandstring, STRING_SIZE, "/sbin/sfdisk -L -uM %s < /tmp/partitiontable", hdparams.devnode_disk); + if (disk < 2097150) { + // <2TB use sfdisk and normal mbr + snprintf(commandstring, STRING_SIZE, "/sbin/sfdisk -L -uM %s < /tmp/partitiontable", hdparams.devnode_disk); + } else { + // >2TB use parted with gpt + snprintf(commandstring, STRING_SIZE, "/usr/sbin/parted -s %s mklabel gpt mkpart boot ext2 1M 64M mkpart swap linux-swap 64M 1000M mkpart root ext4 1000M 5000M mkpart var ext4 5000M 100%% disk_set pmbr_boot on", hdparams.devnode_disk); + } + if (runcommandwithstatus(commandstring, ctr[TR_PARTITIONING_DISK])) { errorbox(ctr[TR_UNABLE_TO_PARTITION]); @@ -433,7 +440,7 @@ int main(int argc, char *argv[]) mkdir("/harddisk/boot", S_IRWXU|S_IRWXG|S_IRWXO); mkdir("/harddisk/var", S_IRWXU|S_IRWXG|S_IRWXO); mkdir("/harddisk/var/log", S_IRWXU|S_IRWXG|S_IRWXO); - + snprintf(commandstring, STRING_SIZE, "/bin/mount %s1 /harddisk/boot", hdparams.devnode_part); if (runcommandwithstatus(commandstring, ctr[TR_MOUNTING_BOOT_FILESYSTEM])) { diff --git a/src/install+setup/install/probenic.sh b/src/install+setup/install/probenic.sh index fb428cc..6c01cbb 100644 --- a/src/install+setup/install/probenic.sh +++ b/src/install+setup/install/probenic.sh @@ -65,6 +65,12 @@ for card in `ls /sys/class/net`; do let bus=`echo 1$bus`-1000 let dev=`echo 1$dev`-1000 name=`lsusb -s $bus:$dev | cut -d':' -f3 | cut -c 6-` + #kernel higher 3.2 changes + if [ "$name" == "" ]; then + vid=`grep PRODUCT= /sys/class/net/$card/device/uevent | cut -d"=" -f2 | cut -d"/" -f1` + pid=`grep PRODUCT= /sys/class/net/$card/device/uevent | cut -d"=" -f2 | cut -d"/" -f2` + name=`lsusb -d $vid:$pid | cut -d':' -f3 | cut -c 6-` + fi description=`echo $type: $name` fi
diff --git a/src/install+setup/libsmooth/libsmooth.h b/src/install+setup/libsmooth/libsmooth.h index fb38193..fc166b2 100644 --- a/src/install+setup/libsmooth/libsmooth.h +++ b/src/install+setup/libsmooth/libsmooth.h @@ -35,7 +35,7 @@
#include "langs.h"
-#define STRING_SIZE 1023 +#define STRING_SIZE 1024
#define ADDRESS 0 #define NETADDRESS 1 diff --git a/src/install+setup/libsmooth/netstuff.c b/src/install+setup/libsmooth/netstuff.c index de5c558..8c6f3fa 100644 --- a/src/install+setup/libsmooth/netstuff.c +++ b/src/install+setup/libsmooth/netstuff.c @@ -532,7 +532,7 @@ int create_udev(void) for (i = 0 ; i < 4 ; i++) { if (strcmp(knics[i].macaddr, "")) { - fprintf(fp,"ACTION=="add", SUBSYSTEM=="net", SYSFS{type}=="1", SYSFS{address}=="%s", NAME="%s0" # %s\n", knics[i].macaddr, lcolourcard[i], knics[i].description); + fprintf(fp,"\n# %s\nACTION=="add", SUBSYSTEM=="net", ATTR{type}=="1", ATTR{address}=="%s", NAME="%s0"\n", knics[i].description, knics[i].macaddr, lcolourcard[i]); } } fclose(fp); @@ -615,6 +615,7 @@ int nicmenu(int colour) int rc, choise = 0, count = 0, kcount = 0, mcount = 0, i, j, nic_in_use; int found_NIC_as_Card[4]; char message[STRING_SIZE]; + char temp[STRING_SIZE];
char cMenuInhalt[STRING_SIZE]; char MenuInhalt[20][180]; @@ -657,8 +658,20 @@ int nicmenu(int colour) pMenuInhalt[mcount] = NULL;
sprintf(message, ctr[TR_CHOOSE_NETCARD], ucolourcard[colour]); - rc = newtWinMenu( ctr[TR_NETCARDMENU2], message, 50, 5, 5, 6, pMenuInhalt, &choise, ctr[TR_OK], ctr[TR_SELECT], ctr[TR_CANCEL], NULL); - + rc=2; + while ( rc == 2 ) { + rc = newtWinMenu( ctr[TR_NETCARDMENU2], message, 50, 5, 5, 6, pMenuInhalt, &choise, ctr[TR_SELECT], ctr[TR_IDENTIFY], ctr[TR_CANCEL], NULL); + if ( rc == 2 ) { + sprintf(temp, "/sbin/ip link set %s up", nics[found_NIC_as_Card[choise]].nic); + mysystem(temp); + sprintf(temp, "/usr/sbin/ethtool -p %s 10", nics[found_NIC_as_Card[choise]].nic); + if (runcommandwithstatus(temp,ctr[TR_IDENTIFY_SHOULD_BLINK]) != 0) { + errorbox(ctr[TR_IDENTIFY_NOT_SUPPORTED]); + sprintf(temp, "/sbin/ip link set %s down", nics[found_NIC_as_Card[choise]].nic); + mysystem(temp); + } + } + } if ( rc == 0 || rc == 1) { write_configs_netudev(found_NIC_as_Card[choise], colour); } diff --git a/src/install+setup/setup/networking.c b/src/install+setup/setup/networking.c index 9c13717..edd3c71 100644 --- a/src/install+setup/setup/networking.c +++ b/src/install+setup/setup/networking.c @@ -112,6 +112,8 @@ int handlenetworking(void) runcommandwithstatus("/etc/rc.d/init.d/network start", ctr[TR_PULLING_NETWORK_UP]); } + } else { + rename_nics(); } create_udev(); return 1; diff --git a/src/misc-progs/Makefile b/src/misc-progs/Makefile index 4d09fbf..b447435 100644 --- a/src/misc-progs/Makefile +++ b/src/misc-progs/Makefile @@ -24,11 +24,10 @@ CFLAGS=-O2 -Wall COMPILE=$(CC) $(CFLAGS)
PROGS = iowrap -SUID_PROGS = setdmzholes setportfw setxtaccess \ - squidctrl sshctrl ipfirereboot \ +SUID_PROGS = squidctrl sshctrl ipfirereboot \ ipsecctrl timectrl dhcpctrl snortctrl \ applejuicectrl rebuildhosts backupctrl \ - logwatch openvpnctrl outgoingfwctrl \ + logwatch openvpnctrl firewallctrl \ wirelessctrl getipstat qosctrl launch-ether-wake \ redctrl syslogdctrl extrahdctrl sambactrl upnpctrl tripwirectrl \ smartctrl clamavctrl addonctrl pakfire mpfirectrl wlanapctrl \ @@ -86,22 +85,16 @@ smartctrl: smartctrl.c setuid.o ../install+setup/libsmooth/varval.o
clamavctrl: clamavctrl.c setuid.o ../install+setup/libsmooth/varval.o $(COMPILE) -I../install+setup/libsmooth/ clamavctrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@ - -outgoingfwctrl: outgoingfwctrl.c setuid.o ../install+setup/libsmooth/varval.o - $(COMPILE) -I../install+setup/libsmooth/ outgoingfwctrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@ - + +firewallctrl: firewallctrl.c setuid.o ../install+setup/libsmooth/varval.o + $(COMPILE) -I../install+setup/libsmooth/ firewallctrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@ + timectrl: timectrl.c setuid.o ../install+setup/libsmooth/varval.o $(COMPILE) -I../install+setup/libsmooth/ timectrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@
launch-ether-wake: launch-ether-wake.c setuid.o ../install+setup/libsmooth/varval.o $(COMPILE) -I../install+setup/libsmooth/ launch-ether-wake.c setuid.o ../install+setup/libsmooth/varval.o -o $@
-setdmzholes: setdmzholes.c setuid.o ../install+setup/libsmooth/varval.o - $(COMPILE) -I../install+setup/libsmooth/ setdmzholes.c setuid.o ../install+setup/libsmooth/varval.o -o $@ - -setportfw: setportfw.c setuid.o ../install+setup/libsmooth/varval.o - $(COMPILE) -I../install+setup/libsmooth/ setportfw.c setuid.o ../install+setup/libsmooth/varval.o -o $@ - rebuildhosts: rebuildhosts.c setuid.o ../install+setup/libsmooth/varval.o $(COMPILE) -I../install+setup/libsmooth/ rebuildhosts.c setuid.o ../install+setup/libsmooth/varval.o -o $@
diff --git a/src/misc-progs/backupctrl.c b/src/misc-progs/backupctrl.c index 2941117..00c8d5b 100644 --- a/src/misc-progs/backupctrl.c +++ b/src/misc-progs/backupctrl.c @@ -15,31 +15,30 @@
int main(int argc, char *argv[]) { int i; - char command[1024]; - char add[STRING_SIZE]; - + char command[STRING_SIZE] = "/var/ipfire/backup/bin/backup.pl"; + char temp[STRING_SIZE]; + if (!(initsetuid())) exit(1);
- snprintf(command, STRING_SIZE, "/var/ipfire/backup/bin/backup.pl"); - for (i = 1; i < argc; i++) { - if (strstr(argv[i], "&&")){ - fprintf (stderr, "Bad Argument!\n"); - exit (1); - } - else if (strstr(argv[i], "|")){ - fprintf (stderr, "Bad Argument!\n"); - exit (1); - } - else if (argc > 3){ - fprintf (stderr, "Too Many Arguments!\n"); - exit (1); + if (strstr(argv[i], "&&")){ + fprintf (stderr, "Bad Argument!\n"); + exit (1); + + } else if (strstr(argv[i], "|")) { + fprintf (stderr, "Bad Argument!\n"); + exit (1); + + } else if (argc > 3) { + fprintf (stderr, "Too Many Arguments!\n"); + exit (1); + + } else { + snprintf(temp, STRING_SIZE, "%s %s", command, argv[i]); + snprintf(command, STRING_SIZE, "%s", temp); } - else{ - sprintf(add, " %s", argv[i]); - strcat(command, add); - } } + return safe_system(command); } diff --git a/src/misc-progs/fireinfoctrl.c b/src/misc-progs/fireinfoctrl.c index 963459a..a026ba0 100644 --- a/src/misc-progs/fireinfoctrl.c +++ b/src/misc-progs/fireinfoctrl.c @@ -1,23 +1,23 @@ -/* IPFire helper program - fireinfoctrl - * - * This program is distributed under the terms of the GNU General Public - * Licence. See the file COPYING for details. - * - * (c) IPFire Team, 2011 - * - * Simple program that calls "sendprofile" as the root user. - * - */ - -#include <stdlib.h> -#include "setuid.h" - -int main(void) -{ - if (!(initsetuid())) - exit(1); - - safe_system("/usr/bin/sendprofile"); - - return 0; -} +/* IPFire helper program - fireinfoctrl + * + * This program is distributed under the terms of the GNU General Public + * Licence. See the file COPYING for details. + * + * (c) IPFire Team, 2011 + * + * Simple program that calls "sendprofile" as the root user. + * + */ + +#include <stdlib.h> +#include "setuid.h" + +int main(void) +{ + if (!(initsetuid())) + exit(1); + + safe_system("/usr/bin/sendprofile"); + + return 0; +} diff --git a/src/misc-progs/firewallctrl.c b/src/misc-progs/firewallctrl.c new file mode 100644 index 0000000..0f17659 --- /dev/null +++ b/src/misc-progs/firewallctrl.c @@ -0,0 +1,25 @@ +/* This file is part of the IPFire Firewall. + * + * This program is distributed under the terms of the GNU General Public + * Licence. See the file COPYING for details. + * + */ + +#include <unistd.h> + +#include "setuid.h" + +int main(int argc, char *argv[]) { + if (!(initsetuid())) + exit(1); + + int retval = safe_system("/usr/lib/firewall/rules.pl"); + + /* If rules.pl has been successfully executed, the indicator + * file is removed. */ + if (retval == 0) { + unlink("/var/ipfire/firewall/reread"); + } + + return 0; +} diff --git a/src/misc-progs/getconntracktable.c b/src/misc-progs/getconntracktable.c index 674b211..78eb11a 100644 --- a/src/misc-progs/getconntracktable.c +++ b/src/misc-progs/getconntracktable.c @@ -1,31 +1,31 @@ -/* IPFire helper program - getconntracktable - * - * This program is distributed under the terms of the GNU General Public - * Licence. See the file COPYING for details. - * - * The kernel's connection tracking table is not readable by - * non-root users. So this helper will just read and output it. - */ - -#include <stdio.h> -#include <stdlib.h> -#include "setuid.h" - -int main(void) { - if (!(initsetuid())) - exit(1); - - FILE *fp = fopen("/proc/net/nf_conntrack", "r"); - if (fp == NULL) { - exit(1); - } - - /* Read content line by line and write it to stdout. */ - char linebuf[STRING_SIZE]; - while (fgets(linebuf, STRING_SIZE, fp)) { - printf("%s", linebuf); - } - - fclose(fp); - return 0; -} +/* IPFire helper program - getconntracktable + * + * This program is distributed under the terms of the GNU General Public + * Licence. See the file COPYING for details. + * + * The kernel's connection tracking table is not readable by + * non-root users. So this helper will just read and output it. + */ + +#include <stdio.h> +#include <stdlib.h> +#include "setuid.h" + +int main(void) { + if (!(initsetuid())) + exit(1); + + FILE *fp = fopen("/proc/net/nf_conntrack", "r"); + if (fp == NULL) { + exit(1); + } + + /* Read content line by line and write it to stdout. */ + char linebuf[STRING_SIZE]; + while (fgets(linebuf, STRING_SIZE, fp)) { + printf("%s", linebuf); + } + + fclose(fp); + return 0; +} diff --git a/src/misc-progs/iowrap.c b/src/misc-progs/iowrap.c index e56203e..115ec2a 100644 --- a/src/misc-progs/iowrap.c +++ b/src/misc-progs/iowrap.c @@ -1,44 +1,44 @@ -/* SmoothWall helper program - iowrap. - * - * This program is distributed under the terms of the GNU General Public - * Licence. See the file COPYING for details. - * - * (c) Lawrence Manning, 2001 - * Installer helper for redirecting stdout/stderr to a file/terminal. - * init calls ash through this program to shove it on a tty. - * - * $Id: iowrap.c,v 1.2 2001/11/27 15:20:50 riddles Exp $ - * - */ - -#include <stdio.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <fcntl.h> -#include <unistd.h> - -int main(int argc, char *argv[]) -{ - /* Prog takes one argument. A device to run on (like a getty) */ - if (argc >= 2) - { - int fd; - - if ((fd = open(argv[1], O_RDWR)) == -1) - { - printf("Couldn't open device\n"); - return 0; - } - dup2(fd, 0); - dup2(fd, 1); - dup2(fd, 2); - /* Now its sending/reading on that device. */ - } - - if (argc >= 3) - execvp(argv[2], &argv[2]); - else - printf("No command\n"); - - return 0; -} +/* SmoothWall helper program - iowrap. + * + * This program is distributed under the terms of the GNU General Public + * Licence. See the file COPYING for details. + * + * (c) Lawrence Manning, 2001 + * Installer helper for redirecting stdout/stderr to a file/terminal. + * init calls ash through this program to shove it on a tty. + * + * $Id: iowrap.c,v 1.2 2001/11/27 15:20:50 riddles Exp $ + * + */ + +#include <stdio.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> +#include <unistd.h> + +int main(int argc, char *argv[]) +{ + /* Prog takes one argument. A device to run on (like a getty) */ + if (argc >= 2) + { + int fd; + + if ((fd = open(argv[1], O_RDWR)) == -1) + { + printf("Couldn't open device\n"); + return 0; + } + dup2(fd, 0); + dup2(fd, 1); + dup2(fd, 2); + /* Now its sending/reading on that device. */ + } + + if (argc >= 3) + execvp(argv[2], &argv[2]); + else + printf("No command\n"); + + return 0; +} diff --git a/src/misc-progs/ipfiredeath.c b/src/misc-progs/ipfiredeath.c index 9115b4f..8a13fa6 100644 --- a/src/misc-progs/ipfiredeath.c +++ b/src/misc-progs/ipfiredeath.c @@ -1,25 +1,25 @@ -/* SmoothWall helper program - smoothiedeath - * - * This program is distributed under the terms of the GNU General Public - * Licence. See the file COPYING for details. - * - * (c) Lawrence Manning, 2001 - * Simple program intended to be installed setuid(0) that can be used for - * starting shutdown. - * - * $Id: ipcopdeath.c,v 1.2 2003/12/11 10:57:34 riddles Exp $ - * - */ - -#include <stdlib.h> -#include "setuid.h" - -int main(void) -{ - if (!(initsetuid())) - exit(1); - - safe_system("/sbin/shutdown -h now"); - - return 0; -} +/* SmoothWall helper program - smoothiedeath + * + * This program is distributed under the terms of the GNU General Public + * Licence. See the file COPYING for details. + * + * (c) Lawrence Manning, 2001 + * Simple program intended to be installed setuid(0) that can be used for + * starting shutdown. + * + * $Id: ipcopdeath.c,v 1.2 2003/12/11 10:57:34 riddles Exp $ + * + */ + +#include <stdlib.h> +#include "setuid.h" + +int main(void) +{ + if (!(initsetuid())) + exit(1); + + safe_system("/sbin/shutdown -h now"); + + return 0; +} diff --git a/src/misc-progs/ipfirerebirth.c b/src/misc-progs/ipfirerebirth.c index dd7988e..10230c3 100644 --- a/src/misc-progs/ipfirerebirth.c +++ b/src/misc-progs/ipfirerebirth.c @@ -1,25 +1,25 @@ -/* SmoothWall helper program - smoothierebirth - * - * This program is distributed under the terms of the GNU General Public - * Licence. See the file COPYING for details. - * - * (c) Lawrence Manning, 2001 - * Simple program intended to be installed setuid(0) that can be used for - * starting reboot. - * - * $Id: ipcoprebirth.c,v 1.2 2003/12/11 10:57:34 riddles Exp $ - * - */ - -#include <stdlib.h> -#include "setuid.h" - -int main(void) -{ - if (!(initsetuid())) - exit(1); - - safe_system("/sbin/shutdown -r now"); - - return 0; -} +/* SmoothWall helper program - smoothierebirth + * + * This program is distributed under the terms of the GNU General Public + * Licence. See the file COPYING for details. + * + * (c) Lawrence Manning, 2001 + * Simple program intended to be installed setuid(0) that can be used for + * starting reboot. + * + * $Id: ipcoprebirth.c,v 1.2 2003/12/11 10:57:34 riddles Exp $ + * + */ + +#include <stdlib.h> +#include "setuid.h" + +int main(void) +{ + if (!(initsetuid())) + exit(1); + + safe_system("/sbin/shutdown -r now"); + + return 0; +} diff --git a/src/misc-progs/ipfirereboot.c b/src/misc-progs/ipfirereboot.c index 05dddaf..5e75879 100644 --- a/src/misc-progs/ipfirereboot.c +++ b/src/misc-progs/ipfirereboot.c @@ -1,117 +1,117 @@ -/* - * This file is part of the IPCop Firewall. - * - * IPCop is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * IPCop is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with IPCop; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * Copyright (C) 2005-10-25 Franck Bourdonnec - * - * $Id: ipcopreboot.c,v 1.1.2.2 2005/10/24 23:05:50 franck78 Exp $ - * - */ - -#include <stdio.h> -#include <string.h> -#include <stdlib.h> -#include "setuid.h" - - -/* define operations */ -#define OP_REBOOT "boot" -#define OP_REBOOT_FS "bootfs" // add filesystem check option (not yet in GUI) -#define OP_SHUTDOWN "down" -#define OP_SCHEDULE_ADD "cron+" -#define OP_SCHEDULE_REM "cron-" -#define OP_SCHEDULE_GET "cron?" - -int main(int argc, char**argv) -{ - - if (!(initsetuid())) - return 1; - - // Check what command is asked - if (argc==1) - { - fprintf (stderr, "Missing reboot command!\n"); - return 1; - } - - if (argc==2 && strcmp(argv[1], OP_SHUTDOWN)==0) - { - safe_system("/sbin/shutdown -h now"); - return 0; - } - - if (argc==2 && strcmp(argv[1], OP_REBOOT)==0) - { - safe_system("/sbin/shutdown -r now"); - return 0; - } - - if (argc==2 && strcmp(argv[1], OP_REBOOT_FS)==0) - { - safe_system("/sbin/shutdown -F -r now"); - return 0; - } - - // output schedule to stdout - if (argc==2 && strcmp(argv[1], OP_SCHEDULE_GET)==0) - { - safe_system("/bin/grep /sbin/shutdown /var/spool/cron/root.orig"); - return 0; - } - - if (argc==2 && strcmp(argv[1], OP_SCHEDULE_REM)==0) - { - safe_system("/usr/bin/perl -i -p -e 's/^.*\/sbin\/shutdown.*$//s' /var/spool/cron/root.orig"); - safe_system("/usr/bin/fcrontab -u root -z"); - return 0; - } - - if (argc==6 && strcmp(argv[1], OP_SCHEDULE_ADD)==0) - { - // check args - if (!( strlen(argv[2])<3 && - strspn(argv[2], "0123456789") == strlen (argv[2]) && - strlen(argv[3])<3 && - strspn(argv[3], "0123456789") == strlen (argv[3]) && - strlen(argv[4])<14 && - strspn(argv[4], "1234567,*") == strlen (argv[4]) && - ((strcmp(argv[5], "-r")==0) || //reboot - (strcmp(argv[5], "-h")==0)) ) //hangup - ) { - fprintf (stderr, "Bad cron+ parameters!\n"); - return 1; - } - - // remove old entry - safe_system("/usr/bin/perl -i -p -e 's/^.*\/sbin\/shutdown.*$//s' /var/spool/cron/root.orig"); - - // add new entry - FILE *fd = NULL; - if ((fd = fopen("/var/spool/cron/root.orig", "a"))) - { - fprintf (fd,"%s %s * * %s /sbin/shutdown %s 1\n",argv[2],argv[3],argv[4],argv[5]); - fclose (fd); - } - - // inform cron - safe_system("/usr/bin/fcrontab -u root -z"); - return 0; - } - - fprintf (stderr, "Bad reboot command!\n"); - return 1; -} +/* + * This file is part of the IPCop Firewall. + * + * IPCop is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * IPCop is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with IPCop; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Copyright (C) 2005-10-25 Franck Bourdonnec + * + * $Id: ipcopreboot.c,v 1.1.2.2 2005/10/24 23:05:50 franck78 Exp $ + * + */ + +#include <stdio.h> +#include <string.h> +#include <stdlib.h> +#include "setuid.h" + + +/* define operations */ +#define OP_REBOOT "boot" +#define OP_REBOOT_FS "bootfs" // add filesystem check option (not yet in GUI) +#define OP_SHUTDOWN "down" +#define OP_SCHEDULE_ADD "cron+" +#define OP_SCHEDULE_REM "cron-" +#define OP_SCHEDULE_GET "cron?" + +int main(int argc, char**argv) +{ + + if (!(initsetuid())) + return 1; + + // Check what command is asked + if (argc==1) + { + fprintf (stderr, "Missing reboot command!\n"); + return 1; + } + + if (argc==2 && strcmp(argv[1], OP_SHUTDOWN)==0) + { + safe_system("/sbin/shutdown -h now"); + return 0; + } + + if (argc==2 && strcmp(argv[1], OP_REBOOT)==0) + { + safe_system("/sbin/shutdown -r now"); + return 0; + } + + if (argc==2 && strcmp(argv[1], OP_REBOOT_FS)==0) + { + safe_system("/sbin/shutdown -F -r now"); + return 0; + } + + // output schedule to stdout + if (argc==2 && strcmp(argv[1], OP_SCHEDULE_GET)==0) + { + safe_system("/bin/grep /sbin/shutdown /var/spool/cron/root.orig"); + return 0; + } + + if (argc==2 && strcmp(argv[1], OP_SCHEDULE_REM)==0) + { + safe_system("/usr/bin/perl -i -p -e 's/^.*\/sbin\/shutdown.*$//s' /var/spool/cron/root.orig"); + safe_system("/usr/bin/fcrontab -u root -z"); + return 0; + } + + if (argc==6 && strcmp(argv[1], OP_SCHEDULE_ADD)==0) + { + // check args + if (!( strlen(argv[2])<3 && + strspn(argv[2], "0123456789") == strlen (argv[2]) && + strlen(argv[3])<3 && + strspn(argv[3], "0123456789") == strlen (argv[3]) && + strlen(argv[4])<14 && + strspn(argv[4], "1234567,*") == strlen (argv[4]) && + ((strcmp(argv[5], "-r")==0) || //reboot + (strcmp(argv[5], "-h")==0)) ) //hangup + ) { + fprintf (stderr, "Bad cron+ parameters!\n"); + return 1; + } + + // remove old entry + safe_system("/usr/bin/perl -i -p -e 's/^.*\/sbin\/shutdown.*$//s' /var/spool/cron/root.orig"); + + // add new entry + FILE *fd = NULL; + if ((fd = fopen("/var/spool/cron/root.orig", "a"))) + { + fprintf (fd,"%s %s * * %s /sbin/shutdown %s 1\n",argv[2],argv[3],argv[4],argv[5]); + fclose (fd); + } + + // inform cron + safe_system("/usr/bin/fcrontab -u root -z"); + return 0; + } + + fprintf (stderr, "Bad reboot command!\n"); + return 1; +} diff --git a/src/misc-progs/ipsecctrl.c b/src/misc-progs/ipsecctrl.c index 365807c..eb3fc49 100644 --- a/src/misc-progs/ipsecctrl.c +++ b/src/misc-progs/ipsecctrl.c @@ -13,7 +13,9 @@ #include <sys/types.h> #include <sys/stat.h> #include <signal.h> + #include "setuid.h" +#include "netutil.h"
/* This module is responsible for start stop of the vpn system. @@ -42,6 +44,14 @@ void usage() { fprintf (stderr, "\t\tI : Print Statusinfo\n"); }
+static void ipsec_reload() { + /* Re-read all configuration files and secrets and + * reload the daemon (#10339). + */ + safe_system("/usr/sbin/ipsec rereadall >/dev/null 2>&1"); + safe_system("/usr/sbin/ipsec reload >/dev/null 2>&1"); +} + /* ACCEPT the ipsec protocol ah, esp & udp (for nat traversal) on the specified interface */ @@ -172,14 +182,6 @@ void turn_connection_off (char *name) { ipsec_reload(); }
-void ipsec_reload() { - /* Re-read all configuration files and secrets and - * reload the daemon (#10339). - */ - safe_system("/usr/sbin/ipsec rereadall >/dev/null 2>&1"); - safe_system("/usr/sbin/ipsec reload >/dev/null 2>&1"); -} - int main(int argc, char *argv[]) { char configtype[STRING_SIZE]; char redtype[STRING_SIZE] = ""; diff --git a/src/misc-progs/netutil.h b/src/misc-progs/netutil.h new file mode 100644 index 0000000..e96eb5d --- /dev/null +++ b/src/misc-progs/netutil.h @@ -0,0 +1,48 @@ + +#ifndef NETUTIL_H +#define NETUTIL_H 1 + +#include <stdlib.h> + +#define LETTERS "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" +#define NUMBERS "0123456789" +#define LETTERS_NUMBERS LETTERS NUMBERS +#define IP_NUMBERS "./" NUMBERS +#define PORT_NUMBERS ":-" NUMBERS +#define VALID_FQDN LETTERS_NUMBERS ".-" + +#define VALID_IP(ip) (strlen(ip) > 6 \ + && strlen(ip) < 16 \ + && strspn(ip, NUMBERS ".") == strlen(ip)) + +#define VALID_IP_AND_MASK(ip) (strlen(ip) > 6 \ + && strlen(ip) < 32 \ + && strspn(ip, IP_NUMBERS) == strlen(ip)) + +#define VALID_PORT(port) (strlen(port) \ + && strlen(port) < 6 \ + && strspn(port, NUMBERS) == strlen(port)) + +#define VALID_PORT_RANGE(port) (strlen(port) \ + && strlen(port) < 12 \ + && strspn(port, PORT_NUMBERS) == strlen(port)) + +#define VALID_SHORT_MASK(ip) (strlen(ip) > 1 \ + && strlen(ip) < 3 \ + && strspn(ip, NUMBERS) == strlen(ip)) + +/* Can't find any info on valid characters/length hopefully these are + * reasonable guesses */ +#define VALID_DEVICE(dev) (strlen(dev) \ + && strlen(dev) < 16 \ + && strspn(dev, LETTERS_NUMBERS ":.") == strlen(dev)) + +/* Again, can't find any hard and fast rules for protocol names, these + * restrictions are based on the keywords currently listed in + * http://www.iana.org/assignments/protocol-numbers + * though currently the ipcop cgis will only pass tcp, udp or gre anyway */ +#define VALID_PROTOCOL(prot) (strlen(prot) \ + && strlen(prot) <16 \ + && strspn(prot, LETTERS_NUMBERS "-") == strlen(prot)) + +#endif diff --git a/src/misc-progs/openvpnctrl.c b/src/misc-progs/openvpnctrl.c index 76916f1..462ce77 100644 --- a/src/misc-progs/openvpnctrl.c +++ b/src/misc-progs/openvpnctrl.c @@ -8,6 +8,7 @@ #include <netinet/in.h> #include <fcntl.h> #include "setuid.h" +#include "netutil.h" #include "libsmooth.h"
#define noovpndebug @@ -24,11 +25,10 @@ char enableblue[STRING_SIZE] = "off"; char enableorange[STRING_SIZE] = "off";
// consts -char OVPNRED[STRING_SIZE] = "OVPN"; -char OVPNBLUE[STRING_SIZE] = "OVPN_BLUE_"; -char OVPNORANGE[STRING_SIZE] = "OVPN_ORANGE_"; +char OVPNINPUT[STRING_SIZE] = "OVPNINPUT"; +char OVPNBLOCK[STRING_SIZE] = "OVPNBLOCK"; char OVPNNAT[STRING_SIZE] = "OVPNNAT"; -char WRAPPERVERSION[STRING_SIZE] = "ipfire-2.2.3"; +char WRAPPERVERSION[STRING_SIZE] = "ipfire-2.2.4";
struct connection_struct { char name[STRING_SIZE]; @@ -38,7 +38,7 @@ struct connection_struct { char local_subnet[STRING_SIZE]; char transfer_subnet[STRING_SIZE]; char role[STRING_SIZE]; - int port; + char port[STRING_SIZE]; struct connection_struct *next; };
@@ -79,10 +79,6 @@ void usage(void) printf(" removes current OpenVPN chains and rules and resets them according to the config\n"); printf(" -sdo --start-daemon-only\n"); printf(" starts OpenVPN daemon only\n"); - printf(" -ccr --create-chains-and-rules\n"); - printf(" creates chains and rules for OpenVPN\n"); - printf(" -dcr --delete-chains-and-rules\n"); - printf(" removes all chains for OpenVPN\n"); exit(1); }
@@ -147,7 +143,7 @@ connection *getConnections() { } else if (count == 29) { strcpy(conn_curr->proto, result); } else if (count == 30) { - conn_curr->port = atoi(result); + strcpy(conn_curr->port, result); }
count++; @@ -162,7 +158,6 @@ connection *getConnections() { int readPidFile(const char *pidfile) { FILE *fp = fopen(pidfile, "r"); if (fp == NULL) { - fprintf(stderr, "PID file not found: '%s'\n", pidfile); exit(1); }
@@ -173,8 +168,30 @@ int readPidFile(const char *pidfile) { return pid; }
+int readExternalAddress(char* address) { + FILE *fp = fopen("/var/ipfire/red/local-ipaddress", "r"); + if (!fp) + goto ERROR; + + int r = fscanf(fp, "%s", address); + fclose(fp); + + if (r < 0) + goto ERROR; + + /* In case the read IP address is not valid, we empty + * the content of address and return non-zero. */ + if (!VALID_IP(address)) + goto ERROR; + + return 0; + +ERROR: + address = NULL; + return 1; +} + void ovpnInit(void) { - // Read OpenVPN configuration kv = initkeyvalues(); if (!readkeyvalues(kv, CONFIG_ROOT "/ovpn/settings")) { @@ -183,17 +200,14 @@ void ovpnInit(void) { }
if (!findkey(kv, "ENABLED", enablered)) { - fprintf(stderr, "Cannot read ENABLED\n"); exit(1); }
if (!findkey(kv, "ENABLED_BLUE", enableblue)){ - fprintf(stderr, "Cannot read ENABLED_BLUE\n"); exit(1); }
if (!findkey(kv, "ENABLED_ORANGE", enableorange)){ - fprintf(stderr, "Cannot read ENABLED_ORANGE\n"); exit(1); } freekeyvalues(kv); @@ -219,24 +233,22 @@ void ovpnInit(void) { }
kv=initkeyvalues(); - if (!readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings")) - { + if (!readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings")) { fprintf(stderr, "Cannot read ethernet settings\n"); exit(1); } - if (strcmp(enableblue, "on")==0){ - if (!findkey(kv, "BLUE_DEV", blueif)){ - fprintf(stderr, "Cannot read BLUE_DEV\n"); + if (strcmp(enableblue, "on") == 0) { + if (!findkey(kv, "BLUE_DEV", blueif)) { exit(1); } } - if (strcmp(enableorange, "on")==0){ - if (!findkey(kv, "ORANGE_DEV", orangeif)){ - fprintf(stderr, "Cannot read ORNAGE_DEV\n"); + + if (strcmp(enableorange, "on") == 0) { + if (!findkey(kv, "ORANGE_DEV", orangeif)) { exit(1); } - } + } freekeyvalues(kv); }
@@ -247,117 +259,28 @@ void executeCommand(char *command) { safe_system(strncat(command, " >/dev/null 2>&1", 17)); }
-void setChainRules(char *chain, char *interface, char *protocol, char *port) -{ - char str[STRING_SIZE]; +void addRule(const char *chain, const char *interface, const char *protocol, const char *port) { + char command[STRING_SIZE];
- sprintf(str, "/sbin/iptables -A %sINPUT -i %s -p %s --dport %s -j ACCEPT", chain, interface, protocol, port); - executeCommand(str); - sprintf(str, "/sbin/iptables -A %sINPUT -i tun+ -j ACCEPT", chain); - executeCommand(str); - sprintf(str, "/sbin/iptables -A %sFORWARD -i tun+ -j ACCEPT", chain); - executeCommand(str); + snprintf(command, STRING_SIZE - 1, "/sbin/iptables -A %s -i %s -p %s --dport %s -j ACCEPT", + chain, interface, protocol, port); + executeCommand(command); }
void flushChain(char *chain) { char str[STRING_SIZE];
- sprintf(str, "/sbin/iptables -F %sINPUT", chain); - executeCommand(str); - sprintf(str, "/sbin/iptables -F %sFORWARD", chain); + snprintf(str, STRING_SIZE - 1, "/sbin/iptables -F %s", chain); executeCommand(str); - safe_system(str); }
void flushChainNAT(char *chain) { char str[STRING_SIZE];
- sprintf(str, "/sbin/iptables -t nat -F %s", chain); - executeCommand(str); -} - -void deleteChainReference(char *chain) { - char str[STRING_SIZE]; - - sprintf(str, "/sbin/iptables -D INPUT -j %sINPUT", chain); - executeCommand(str); - safe_system(str); - sprintf(str, "/sbin/iptables -D FORWARD -j %sFORWARD", chain); - executeCommand(str); - safe_system(str); -} - -void deleteChain(char *chain) { - char str[STRING_SIZE]; - - sprintf(str, "/sbin/iptables -X %sINPUT", chain); - executeCommand(str); - sprintf(str, "/sbin/iptables -X %sFORWARD", chain); - executeCommand(str); -} - -void deleteAllChains(void) { - // not an elegant solution, but to avoid timing problems with undeleted chain references - deleteChainReference(OVPNRED); - deleteChainReference(OVPNBLUE); - deleteChainReference(OVPNORANGE); - flushChain(OVPNRED); - flushChain(OVPNBLUE); - flushChain(OVPNORANGE); - deleteChain(OVPNRED); - deleteChain(OVPNBLUE); - deleteChain(OVPNORANGE); -} - -void createChainReference(char *chain) { - char str[STRING_SIZE]; - sprintf(str, "/sbin/iptables -I INPUT %s -j %sINPUT", "14", chain); - executeCommand(str); - sprintf(str, "/sbin/iptables -I FORWARD %s -j %sFORWARD", "12", chain); - executeCommand(str); -} - -void createChain(char *chain) { - char str[STRING_SIZE]; - sprintf(str, "/sbin/iptables -N %sINPUT", chain); - executeCommand(str); - sprintf(str, "/sbin/iptables -N %sFORWARD", chain); + snprintf(str, STRING_SIZE - 1, "/sbin/iptables -t nat -F %s", chain); executeCommand(str); }
-void createAllChains(void) { - // create chain and chain references - if (!strcmp(enableorange, "on")) { - if (strlen(orangeif)) { - createChain(OVPNORANGE); - createChainReference(OVPNORANGE); - } else { - fprintf(stderr, "OpenVPN enabled on orange but no orange interface found\n"); - //exit(1); - } - } - - if (!strcmp(enableblue, "on")) { - if (strlen(blueif)) { - createChain(OVPNBLUE); - createChainReference(OVPNBLUE); - } else { - fprintf(stderr, "OpenVPN enabled on blue but no blue interface found\n"); - //exit(1); - } - } - - if (!strcmp(enablered, "on")) { - if (strlen(redif)) { - createChain(OVPNRED); - createChainReference(OVPNRED); - } else { - fprintf(stderr, "OpenVPN enabled on red but no red interface found\n"); - //exit(1); - } - } -} - char* calcTransferNetAddress(const connection* conn) { char *subnetmask = strdup(conn->transfer_subnet); char *address = strsep(&subnetmask, "/"); @@ -442,6 +365,7 @@ ERROR: }
void setFirewallRules(void) { + char command[STRING_SIZE]; char protocol[STRING_SIZE] = ""; char dport[STRING_SIZE] = ""; char dovpnip[STRING_SIZE] = ""; @@ -466,42 +390,47 @@ void setFirewallRules(void) {
if (!findkey(kv, "VPN_IP", dovpnip)){ fprintf(stderr, "Cannot read VPN_IP\n"); -// exit(1); step further as we don't need an ip } freekeyvalues(kv);
// Flush all chains. - flushChain(OVPNRED); - flushChain(OVPNBLUE); - flushChain(OVPNORANGE); + flushChain(OVPNINPUT); + flushChain(OVPNBLOCK); flushChainNAT(OVPNNAT);
// set firewall rules if (!strcmp(enablered, "on") && strlen(redif)) - setChainRules(OVPNRED, redif, protocol, dport); + addRule(OVPNINPUT, redif, protocol, dport); if (!strcmp(enableblue, "on") && strlen(blueif)) - setChainRules(OVPNBLUE, blueif, protocol, dport); + addRule(OVPNINPUT, blueif, protocol, dport); if (!strcmp(enableorange, "on") && strlen(orangeif)) - setChainRules(OVPNORANGE, orangeif, protocol, dport); + addRule(OVPNINPUT, orangeif, protocol, dport); + + /* Allow ICMP error messages to pass. */ + snprintf(command, STRING_SIZE - 1, "/sbin/iptables -A %s -p icmp" + " -m conntrack --ctstate RELATED -j RETURN", OVPNBLOCK); + executeCommand(command);
// read connection configuration connection *conn = getConnections();
// set firewall rules for n2n connections - char command[STRING_SIZE]; char *local_subnet_address = NULL; char *transfer_subnet_address = NULL; while (conn != NULL) { if (strcmp(conn->type, "net") == 0) { - sprintf(command, "/sbin/iptables -A %sINPUT -i %s -p %s --dport %d -j ACCEPT", - OVPNRED, redif, conn->proto, conn->port); + addRule(OVPNINPUT, redif, conn->proto, conn->port); + + /* Block all communication from the transfer nets. */ + snprintf(command, STRING_SIZE - 1, "/sbin/iptables -A %s -s %s -j DROP", + OVPNBLOCK, conn->transfer_subnet); executeCommand(command);
local_subnet_address = getLocalSubnetAddress(conn); transfer_subnet_address = calcTransferNetAddress(conn);
if ((local_subnet_address) && (transfer_subnet_address)) { - snprintf(command, STRING_SIZE, "/sbin/iptables -t nat -A %s -s %s -j SNAT --to-source %s", + snprintf(command, STRING_SIZE - 1, "/sbin/iptables -t nat -A %s -s %s -j SNAT --to-source %s", OVPNNAT, transfer_subnet_address, local_subnet_address); executeCommand(command); } @@ -529,7 +458,7 @@ void stopDaemon(void) { void startDaemon(void) { char command[STRING_SIZE]; - if (!((strcmp(enablered, "on")==0) || (strcmp(enableblue, "on")==0) || (strcmp(enableorange, "on")==0))){ + if (!((strcmp(enablered, "on") == 0) || (strcmp(enableblue, "on") == 0) || (strcmp(enableorange, "on") == 0))) { fprintf(stderr, "OpenVPN is not enabled on any interface\n"); exit(1); } else { @@ -581,10 +510,18 @@ int startNet2Net(char *name) { // Make sure all firewall rules are up to date. setFirewallRules();
+ // Get the external IP address. + char address[STRING_SIZE] = ""; + int r = readExternalAddress(address); + if (r) { + fprintf(stderr, "Could not read the external address\n"); + exit(1); + } + char command[STRING_SIZE]; snprintf(command, STRING_SIZE-1, "/sbin/modprobe tun"); executeCommand(command); - snprintf(command, STRING_SIZE-1, "/usr/sbin/openvpn --config %s", configfile); + snprintf(command, STRING_SIZE-1, "/usr/sbin/openvpn --local %s --config %s", address, configfile); executeCommand(command);
return 0; @@ -711,16 +648,10 @@ int main(int argc, char *argv[]) { displayopenvpn(); return 0; } - else if( (strcmp(argv[1], "-dcr") == 0) || (strcmp(argv[1], "--delete-chains-and-rules") == 0) ) { - deleteAllChains(); - return 0; - } else { ovpnInit(); if( (strcmp(argv[1], "-s") == 0) || (strcmp(argv[1], "--start") == 0) ) { - deleteAllChains(); - createAllChains(); setFirewallRules(); startDaemon(); return 0; @@ -739,20 +670,11 @@ int main(int argc, char *argv[]) { } else if( (strcmp(argv[1], "-r") == 0) || (strcmp(argv[1], "--restart") == 0) ) { stopDaemon(); - deleteAllChains(); - createAllChains(); setFirewallRules(); startDaemon(); return 0; } else if( (strcmp(argv[1], "-fwr") == 0) || (strcmp(argv[1], "--firewall-rules") == 0) ) { - deleteAllChains(); - createAllChains(); - setFirewallRules(); - return 0; - } - else if( (strcmp(argv[1], "-ccr") == 0) || (strcmp(argv[1], "--create-chains-and-rules") == 0) ) { - createAllChains(); setFirewallRules(); return 0; } diff --git a/src/misc-progs/outgoingfwctrl.c b/src/misc-progs/outgoingfwctrl.c deleted file mode 100644 index 2d993d9..0000000 --- a/src/misc-progs/outgoingfwctrl.c +++ /dev/null @@ -1,24 +0,0 @@ -/* This file is part of the IPFire Firewall. - * - * This program is distributed under the terms of the GNU General Public - * Licence. See the file COPYING for details. - * - */ - -#include <stdlib.h> -#include <stdio.h> -#include <string.h> -#include <unistd.h> -#include <sys/types.h> -#include <fcntl.h> -#include "setuid.h" - -int main(int argc, char *argv[]) { - - if (!(initsetuid())) - exit(1); - - safe_system("chmod 755 /var/ipfire/outgoing/bin/outgoingfw.pl"); - safe_system("/var/ipfire/outgoing/bin/outgoingfw.pl"); - return 0; -} diff --git a/src/misc-progs/pakfire.c b/src/misc-progs/pakfire.c index 113216f..fe6edfc 100644 --- a/src/misc-progs/pakfire.c +++ b/src/misc-progs/pakfire.c @@ -15,18 +15,16 @@
int main(int argc, char *argv[]) { int i; - char command[1024]; - char add[STRING_SIZE]; - + char command[STRING_SIZE] = "/opt/pakfire/pakfire"; + char temp[STRING_SIZE]; + if (!(initsetuid())) exit(1);
- snprintf(command, STRING_SIZE, "/opt/pakfire/pakfire"); - for (i = 1; i < argc; i++) { - sprintf(add, " %s", argv[i]); - strcat(command, add); + snprintf(temp, STRING_SIZE, "%s %s", command, argv[i]); + snprintf(command, STRING_SIZE, "%s", temp); } - + return safe_system(command); } diff --git a/src/misc-progs/rebuildhosts.c b/src/misc-progs/rebuildhosts.c index e831858..21c5236 100644 --- a/src/misc-progs/rebuildhosts.c +++ b/src/misc-progs/rebuildhosts.c @@ -19,7 +19,9 @@ #include <sys/types.h> #include <sys/stat.h> #include <signal.h> + #include "setuid.h" +#include "netutil.h"
FILE *fd = NULL; FILE *hosts = NULL; diff --git a/src/misc-progs/setaliases.c b/src/misc-progs/setaliases.c index ea4bc11..93af1cb 100644 --- a/src/misc-progs/setaliases.c +++ b/src/misc-progs/setaliases.c @@ -13,8 +13,6 @@ * */
-#include "libsmooth.h" -#include "setuid.h" #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -23,6 +21,10 @@ #include <sys/stat.h> #include <fcntl.h>
+#include "libsmooth.h" +#include "setuid.h" +#include "netutil.h" + struct keyvalue *kv = NULL; FILE *file = NULL;
diff --git a/src/misc-progs/setdmzholes.c b/src/misc-progs/setdmzholes.c deleted file mode 100644 index 7a2643d..0000000 --- a/src/misc-progs/setdmzholes.c +++ /dev/null @@ -1,162 +0,0 @@ -/* SmoothWall helper program - setdmzhole - * - * This program is distributed under the terms of the GNU General Public - * Licence. See the file COPYING for details. - * - * (c) Daniel Goscomb, 2001 - * - * Modifications and improvements by Lawrence Manning. - * - * 10/04/01 Aslak added protocol support - * This program reads the list of ports to forward and setups iptables - * and rules in ipmasqadm to enable them. - * - * $Id: setdmzholes.c,v 1.5.2.3 2005/10/18 17:05:27 franck78 Exp $ - * - */ -#include "libsmooth.h" -#include <stdio.h> -#include <string.h> -#include <stdlib.h> -#include "setuid.h" - -FILE *fwdfile = NULL; - -void exithandler(void) -{ - if (fwdfile) - fclose(fwdfile); -} - -int main(void) -{ - int count; - char *protocol; - char *locip; - char *remip; - char *remport; - char *enabled; - char *src_net; - char *dst_net; - char s[STRING_SIZE]; - char *result; - struct keyvalue *kv = NULL; - char orange_dev[STRING_SIZE] = ""; - char blue_dev[STRING_SIZE] = ""; - char green_dev[STRING_SIZE] = ""; - char *idev; - char *odev; - char command[STRING_SIZE]; - - if (!(initsetuid())) - exit(1); - - atexit(exithandler); - - kv=initkeyvalues(); - if (!readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings")) - { - fprintf(stderr, "Cannot read ethernet settings\n"); - exit(1); - } - - if (!findkey(kv, "GREEN_DEV", green_dev)) - { - fprintf(stderr, "Cannot read GREEN_DEV\n"); - exit(1); - } - findkey(kv, "BLUE_DEV", blue_dev); - findkey(kv, "ORANGE_DEV", orange_dev); - - if (!(fwdfile = fopen(CONFIG_ROOT "/dmzholes/config", "r"))) - { - fprintf(stderr, "Couldn't open dmzholes settings file\n"); - exit(1); - } - - safe_system("/sbin/iptables -F DMZHOLES"); - - while (fgets(s, STRING_SIZE, fwdfile) != NULL) - { - if (s[strlen(s) - 1] == '\n') - s[strlen(s) - 1] = '\0'; - result = strtok(s, ","); - - count = 0; - protocol = NULL; - locip = NULL; remip = NULL; - remport = NULL; - enabled = NULL; - src_net = NULL; - dst_net = NULL; - idev = NULL; - odev = NULL; - - while (result) - { - if (count == 0) - protocol = result; - else if (count == 1) - locip = result; - else if (count == 2) - remip = result; - else if (count == 3) - remport = result; - else if (count == 4) - enabled = result; - else if (count == 5) - src_net = result; - else if (count == 6) - dst_net = result; - count++; - result = strtok(NULL, ","); - } - - if (!(protocol && locip && remip && remport && enabled)) - { - fprintf(stderr, "Bad line:\n"); - break; - } - - if (!VALID_PROTOCOL(protocol)) - { - fprintf(stderr, "Bad protocol: %s\n", protocol); - exit(1); - } - if (!VALID_IP_AND_MASK(locip)) - { - fprintf(stderr, "Bad local IP: %s\n", locip); - exit(1); - } - if (!VALID_IP_AND_MASK(remip)) - { - fprintf(stderr, "Bad remote IP: %s\n", remip); - exit(1); - } - if (!VALID_PORT_RANGE(remport)) - { - fprintf(stderr, "Bad remote port: %s\n", remport); - exit(1); - } - - if (!src_net) { src_net = strdup ("orange");} - if (!dst_net) { dst_net = strdup ("green");} - - if (!strcmp(src_net, "blue")) { idev = blue_dev; } - if (!strcmp(src_net, "orange")) { idev = orange_dev; } - if (!strcmp(dst_net, "blue")) { odev = blue_dev; } - if (!strcmp(dst_net, "green")) { odev = green_dev; } - - if (!strcmp(enabled, "on") && strlen(idev) && strlen (odev)) - { - char *ctr; - /* If remport contains a - we need to change it to a : */ - if ((ctr = strchr(remport,'-')) != NULL){*ctr = ':';} - memset(command, 0, STRING_SIZE); - snprintf(command, STRING_SIZE - 1, "/sbin/iptables -A DMZHOLES -p %s -i %s -o %s -s %s -d %s --dport %s -j ACCEPT", protocol, idev, odev, locip, remip, remport); - safe_system(command); - } - } - - return 0; -} diff --git a/src/misc-progs/setportfw.c b/src/misc-progs/setportfw.c deleted file mode 100644 index a65aebd..0000000 --- a/src/misc-progs/setportfw.c +++ /dev/null @@ -1,369 +0,0 @@ -/* SmoothWall helper program - setportfw - * - * This program is distributed under the terms of the GNU General Public - * Licence. See the file COPYING for details. - * - * (c) Daniel Goscomb, 2001 - * Copyright (c) 2002/04/13 Steve Bootes - Added source ip support for aliases - * - * Modifications and improvements by Lawrence Manning. - * - * 10/04/01 Aslak added protocol support - * This program reads the list of ports to forward and setups iptables - * and rules in ipmasqadm to enable them. - * - * 02/11/03 Darren Critchley modifications to allow it to open multiple - * source ip addresses - * 02/25/03 Darren Critchley modifications to allow port ranges - * 04/01/03 Darren Critchley modifications to allow gre protocol - * 20/04/03 Robert Kerr Fixed root exploit, validated all variables properly, - * tidied up the iptables logic, killed duplicated code, - * removed srciptmp (unecessary) - * - * $Id: setportfw.c,v 1.3.2.6 2005/08/24 18:44:19 gespinasse Exp $ - * - */ - -#include <stdio.h> -#include <string.h> -#include <stdlib.h> -#include "libsmooth.h" -#include "setuid.h" - -struct keyvalue *kv = NULL; -FILE *fwdfile = NULL; - -void exithandler(void) -{ - if(kv) - freekeyvalues(kv); - if (fwdfile) - fclose(fwdfile); -} - -int main(void) -{ - FILE *ipfile = NULL, *ifacefile = NULL; - int count; - char iface[STRING_SIZE] =""; - char locip[STRING_SIZE] =""; - char greenip[STRING_SIZE] ="", greenmask[STRING_SIZE] =""; - char bluedev[STRING_SIZE] ="", blueip[STRING_SIZE] ="", bluemask[STRING_SIZE] =""; - char orangedev[STRING_SIZE] ="", orangeip[STRING_SIZE] ="", orangemask[STRING_SIZE] =""; - char *protocol; - char *srcip; - char *locport; - char *remip; - char *remport; - char *origip; - char *enabled; - char s[STRING_SIZE]; - char *result; - char *key1; - char *key2; - char command[STRING_SIZE]; - - if (!(initsetuid())) - exit(1); - - atexit(exithandler); - - /* Read in and verify config */ - kv=initkeyvalues(); - - if (!readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings")) - { - fprintf(stderr, "Cannot read ethernet settings\n"); - exit(1); - } - - if (!findkey(kv, "GREEN_ADDRESS", greenip)) - { - fprintf(stderr, "Cannot read GREEN_ADDRESS\n"); - exit(1); - } - - if (!VALID_IP(greenip)) - { - fprintf(stderr, "Bad GREEN_ADDRESS: %s\n", greenip); - exit(1); - } - - if (!findkey(kv, "GREEN_NETMASK", greenmask)) - { - fprintf(stderr, "Cannot read GREEN_NETMASK\n"); - exit(1); - } - - if (!VALID_IP(greenmask)) - { - fprintf(stderr, "Bad GREEN_NETMASK: %s\n", greenmask); - exit(1); - } - - /* Get the BLUE interface details */ - findkey(kv, "BLUE_DEV", bluedev); - - if (strlen(bluedev)) - { - - if (!VALID_DEVICE(bluedev)) - { - fprintf(stderr, "Bad BLUE_DEV: %s\n", bluedev); - exit(1); - } - - if (!findkey(kv, "BLUE_ADDRESS", blueip)) - { - fprintf(stderr, "Cannot read BLUE_ADDRESS\n"); - exit(1); - } - - if (!VALID_IP(blueip)) - { - fprintf(stderr, "Bad BLUE_ADDRESS: %s\n", blueip); - exit(1); - } - - if (!findkey(kv, "BLUE_NETMASK", bluemask)) - { - fprintf(stderr, "Cannot read BLUE_NETMASK\n"); - exit(1); - } - - if (!VALID_IP(bluemask)) - { - fprintf(stderr, "Bad BLUE_NETMASK: %s\n", bluemask); - exit(1); - } - - } - - /* Get the ORANGE interface details */ - findkey(kv, "ORANGE_DEV", orangedev); - - if (strlen(orangedev)) - { - - if (!VALID_DEVICE(orangedev)) - { - fprintf(stderr, "Bad ORANGE_DEV: %s\n", orangedev); - exit(1); - } - - if (!findkey(kv, "ORANGE_ADDRESS", orangeip)) - { - fprintf(stderr, "Cannot read ORANGE_ADDRESS\n"); - exit(1); - } - - if (!VALID_IP(orangeip)) - { - fprintf(stderr, "Bad ORANGE_ADDRESS: %s\n", orangeip); - exit(1); - } - - if (!findkey(kv, "ORANGE_NETMASK", orangemask)) - { - fprintf(stderr, "Cannot read ORANGE_NETMASK\n"); - exit(1); - } - - if (!VALID_IP(orangemask)) - { - fprintf(stderr, "Bad ORANGE_NETMASK: %s\n", orangemask); - exit(1); - } - - } - - - if (!(ipfile = fopen(CONFIG_ROOT "/red/local-ipaddress", "r"))) - { - fprintf(stderr, "Couldn't open local ip file\n"); - exit(1); - } - fgets(locip, STRING_SIZE, ipfile); - if (locip[strlen(locip) - 1] == '\n') - locip[strlen(locip) - 1] = '\0'; - fclose (ipfile); - if (!VALID_IP(locip)) - { - fprintf(stderr, "Bad local IP: %s\n", locip); - exit(1); - } - - if (!(ifacefile = fopen(CONFIG_ROOT "/red/iface", "r"))) - { - fprintf(stderr, "Couldn't open iface file\n"); - exit(1); - } - fgets(iface, STRING_SIZE, ifacefile); - if (iface[strlen(iface) - 1] == '\n') - iface[strlen(iface) - 1] = '\0'; - fclose (ifacefile); - if (!VALID_DEVICE(iface)) - { - fprintf(stderr, "Bad iface: %s\n", iface); - exit(1); - } - - if (!(fwdfile = fopen(CONFIG_ROOT "/portfw/config", "r"))) - { - fprintf(stderr, "Couldn't open portfw settings file\n"); - exit(1); - } - - safe_system("/sbin/iptables -t nat -F PORTFW"); - safe_system("/sbin/iptables -t mangle -F PORTFWMANGLE"); - safe_system("/sbin/iptables -F PORTFWACCESS"); - - while (fgets(s, STRING_SIZE, fwdfile) != NULL) - { - if (s[strlen(s) - 1] == '\n') - s[strlen(s) - 1] = '\0'; - result = strtok(s, ","); - - count = 0; - key1 = NULL; - key2 = NULL; - protocol = NULL; - srcip = NULL; - locport = NULL; - remip = NULL; - origip = NULL; - remport = NULL; - enabled = NULL; - while (result) - { - if (count == 0) - key1 = result; - else if (count == 1) - key2 = result; - else if (count == 2) - protocol = result; - else if (count == 3) - locport = result; - else if (count == 4) - remip = result; - else if (count == 5) - remport = result; - else if (count == 6) - enabled = result; - else if (count == 7) - srcip = result; - else if (count == 8) - origip = result; - count++; - result = strtok(NULL, ","); - } - - if (!(key1 && key2 && protocol && locport && remip && remport && enabled - && srcip && origip)) - break; - - if (!VALID_PROTOCOL(protocol)) - { - fprintf(stderr, "Bad protocol: %s\n", protocol); - exit(1); - } - if (strcmp(protocol, "gre") == 0) - { - locport = "0"; - remport = "0"; - } - if (strcmp(origip,"0") && !VALID_IP_AND_MASK(origip)) - { - fprintf(stderr, "Bad IP: %s\n", origip); - exit(1); - } - if (!VALID_PORT_RANGE(locport)) - { - fprintf(stderr, "Bad local port: %s\n", locport); - exit(1); - } - if (!VALID_IP(remip)) - { - fprintf(stderr, "Bad remote IP: %s\n", remip); - exit(1); - } - if (!VALID_PORT_RANGE(remport)) - { - fprintf(stderr, "Bad remote port: %s\n", remport); - exit(1); - } - - /* check for source ip in config file. If it's there - * and it's not 0.0.0.0, use it; else use the - * local ip address. (This makes sure we can use old-style - * config files without the source ip) */ - if (!srcip || !strcmp(srcip, "0.0.0.0")) - srcip = locip; - if (strcmp(srcip,"0") && !VALID_IP(srcip)) - { - fprintf(stderr, "Bad source IP: %s\n", srcip); - exit(1); - } - - /* This may seem complicated... refer to portfw.pl for an explanation of - * the keys and their meaning in certain circumstances */ - - if (strcmp(enabled, "on") == 0) - { - - /* If key2 is a zero, then it is a portfw command, otherwise it is an - * external access command */ - if (strcmp(key2, "0") == 0) - { - memset(command, 0, STRING_SIZE); - if (strcmp(protocol, "gre") == 0) - snprintf(command, STRING_SIZE - 1, "/sbin/iptables -t nat -A PORTFW -p %s -d %s -j DNAT --to %s", protocol, srcip, remip); - else - { - char *ctr; - /* If locport contains a - we need to change it to a : */ - if ((ctr = strchr(locport, '-')) != NULL) {*ctr = ':';} - /* If remport contains a : we need to change it to a - */ - if ((ctr = strchr(remport,':')) != NULL){*ctr = '-';} - snprintf(command, STRING_SIZE - 1, "/sbin/iptables -t nat -A PORTFW -p %s -d %s --dport %s -j DNAT --to %s:%s", protocol, srcip, locport, remip, remport); - safe_system(command); - /* Now if remport contains a - we need to change it to a : */ - if ((ctr = strchr(remport,'-')) != NULL){*ctr = ':';} - snprintf(command, STRING_SIZE - 1, "/sbin/iptables -t mangle -A PORTFWMANGLE -p %s -s %s/%s -d %s --dport %s -j MARK --set-mark 1", protocol, greenip, greenmask, srcip, locport); - if (strlen(bluedev)) - { - safe_system(command); - snprintf(command, STRING_SIZE - 1, "/sbin/iptables -t mangle -A PORTFWMANGLE -p %s -s %s/%s -d %s --dport %s -j MARK --set-mark 2", protocol, blueip, bluemask, srcip, locport); - } - if (strlen(orangedev)) - { - safe_system(command); - snprintf(command, STRING_SIZE - 1, "/sbin/iptables -t mangle -A PORTFWMANGLE -p %s -s %s/%s -d %s --dport %s -j MARK --set-mark 3", protocol, orangeip, orangemask, srcip, locport); - } - } - safe_system(command); - } - - /* if key2 is not "0" then it's an external access rule, if key2 is "0" - * then the portfw rule may contain external access information if origip - * is not "0" (the only defined not 0 value seems to be 0.0.0.0 - open - * to all; again, check portfw.pl for more details) */ - if(strcmp(key2, "0") || strcmp(origip,"0") ) - { - memset(command, 0, STRING_SIZE); - if (strcmp(protocol, "gre") == 0) - snprintf(command, STRING_SIZE - 1, "/sbin/iptables -A PORTFWACCESS -i %s -p %s -s %s -d %s -j ACCEPT", iface, protocol, origip, remip); - else - { - char *ctr; - /* If remport contains a - we need to change it to a : */ - if ((ctr = strchr(remport,'-')) != NULL){*ctr = ':';} - snprintf(command, STRING_SIZE - 1, "/sbin/iptables -A PORTFWACCESS -i %s -p %s -s %s -d %s --dport %s -j ACCEPT", iface, protocol, origip, remip, remport); - } - safe_system(command); - } - } - } - - return 0; -} diff --git a/src/misc-progs/setuid.c b/src/misc-progs/setuid.c index d7fabd4..e54b5d3 100644 --- a/src/misc-progs/setuid.c +++ b/src/misc-progs/setuid.c @@ -1,204 +1,169 @@ -/* This file is part of the IPCop Firewall. - * - * IPCop is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * IPCop is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with IPCop; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * Copyright (C) 2003-04-22 Robert Kerr rkerr@go.to - * - * $Id: setuid.c,v 1.2.2.1 2005/11/18 14:51:43 franck78 Exp $ - * - */ - -#include <stdio.h> -#include <string.h> -#include <errno.h> -#include <unistd.h> -#include <stdlib.h> -#include <sys/types.h> -#include <limits.h> -#include <sys/time.h> -#include <sys/resource.h> -#include <sys/stat.h> -#include <fcntl.h> -#include <grp.h> -#include <signal.h> -#include <sys/wait.h> -#include <glob.h> -#include "setuid.h" - -#ifndef OPEN_MAX -#define OPEN_MAX 256 -#endif - -/* Trusted environment for executing commands */ -char * trusted_env[4]={ - "PATH=/usr/bin:/usr/sbin:/sbin:/bin", - "SHELL=/bin/sh", - "TERM=dumb", - NULL}; - -/* Spawns a child process that uses /bin/sh to interpret a command. - * This is much the same in use and purpose as system(), yet as it uses execve - * to pass a trusted environment it's immune to attacks based upon changing - * IFS, ENV, BASH_ENV and other such variables. - * Note this does NOT guard against any other attacks, inparticular you MUST - * validate the command you are passing. If the command is formed from user - * input be sure to check this input is what you expect. Nasty things can - * happen if a user can inject ; or `` into your command for example */ -int safe_system(char* command) -{ - return system_core( command, 0, 0, "safe_system" ); -} - -/* Much like safe_system but lets you specify a non-root uid and gid to run - * the command as */ -int unpriv_system(char* command, uid_t uid, gid_t gid) -{ - return system_core(command, uid, gid, "unpriv_system" ); -} - -int system_core(char* command, uid_t uid, gid_t gid, char *error) -{ - int pid, status; - - if(!command) - return 1; - - switch( pid = fork() ) - { - case -1: - return -1; - case 0: /* child */ - { - char * argv[4]; - if (gid && setgid(gid)) - { - fprintf(stderr, "%s: ", error); - perror("Couldn't setgid"); - exit(127); - } - if (uid && setuid(uid)) - { - fprintf(stderr, "%s: ", error); - perror("Couldn't setuid"); - exit(127); - } - argv[0] = "sh"; - argv[1] = "-c"; - argv[2] = command; - argv[3] = NULL; - execve("/bin/sh", argv, trusted_env); - fprintf(stderr, "%s: ", error); - perror("execve failed"); - exit(127); - } - default: /* parent */ - do { - if( waitpid(pid, &status, 0) == -1 ) { - if( errno != EINTR ) - return -1; - } else - return status; - } while (1); - } - -} - -/* BSD style safe strcat; from the secure programming cookbook */ -size_t strlcat(char *dst, const char *src, size_t len) { - char *dstptr = dst; - size_t dstlen, tocopy = len; - const char *srcptr = src; - - while (tocopy-- && *dstptr) dstptr++; - dstlen = dstptr - dst; - if (!(tocopy = len - dstlen)) return (dstlen + strlen(src)); - while (*srcptr) { - if (tocopy != 1) { - *dstptr++ = *srcptr; - tocopy--; - } - srcptr++; - } - *dstptr = 0; - - return (dstlen + (srcptr - src)); -} - -/* General routine to initialise a setuid root program, and put the - * environment in a known state. Returns 1 on success, if initsetuid() returns - * 0 then you should exit(1) immediately, DON'T attempt to recover from the - * error */ -int initsetuid(void) -{ - int fds,i; - struct stat st; - struct rlimit rlim; - - /* Prevent signal tricks by ignoring all except SIGKILL and SIGCHILD */ - for( i = 0; i < NSIG; i++ ) { - if( i != SIGKILL && i != SIGCHLD ) - signal(i, SIG_IGN); - } - - /* dump all non-standard file descriptors (a full descriptor table could - * lead to DoS by preventing us opening files) */ - if ((fds = getdtablesize()) == -1) fds = OPEN_MAX; - for( i = 3; i < fds; i++ ) close(i); - - /* check stdin, stdout & stderr are open before going any further */ - for( i = 0; i < 3; i++ ) - if( fstat(i, &st) == -1 && ((errno != EBADF) || (close(i), open("/dev/null", O_RDWR, 0)) != i )) - return 0; - - /* disable core dumps in case we're processing sensitive information */ - rlim.rlim_cur = rlim.rlim_max = 0; - if(setrlimit(RLIMIT_CORE, &rlim)) - { perror("Couldn't disable core dumps"); return 0; } - - /* drop any supplementary groups, set uid & gid to root */ - if (setgroups(0, NULL)) { perror("Couldn't clear group list"); return 0; } - if (setgid(0)) { perror("Couldn't setgid(0)"); return 0; } - if (setuid(0)) { perror("Couldn't setuid(0)"); return 0; } - - return 1; -} - -/* check whether a file exists */ -int file_exists(const char *fname) { - struct stat st; - stat(fname, &st); - return S_ISREG(st.st_mode) ? 1 : 0; -} - -/* check whether a file exists. fname is wildcard eg: file_exists (/tmp/foo*) */ -int file_exists_w(const char *fname) -{ - /* do a quick check first */ - struct stat st; - stat(fname, &st); - if (S_ISREG(st.st_mode)) - return 1; - - /* check for possible wild cards in name */ - glob_t globbuf; - int retval=0; - if (glob(fname, GLOB_ERR, NULL, &globbuf)==0) { - if (globbuf.gl_pathc>0) { - retval=1; - } - } - globfree(&globbuf); - return retval; -} +/* This file is part of the IPCop Firewall. + * + * IPCop is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * IPCop is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with IPCop; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Copyright (C) 2003-04-22 Robert Kerr rkerr@go.to + * + * $Id: setuid.c,v 1.2.2.1 2005/11/18 14:51:43 franck78 Exp $ + * + */ + +#include <stdio.h> +#include <string.h> +#include <errno.h> +#include <unistd.h> +#include <stdlib.h> +#include <sys/types.h> +#include <limits.h> +#include <sys/time.h> +#include <sys/resource.h> +#include <sys/stat.h> +#include <fcntl.h> +#include <grp.h> +#include <signal.h> +#include <sys/wait.h> +#include <glob.h> +#include "setuid.h" + +#ifndef OPEN_MAX +#define OPEN_MAX 256 +#endif + +/* Trusted environment for executing commands */ +char * trusted_env[4] = { + "PATH=/usr/bin:/usr/sbin:/sbin:/bin", + "SHELL=/bin/sh", + "TERM=dumb", + NULL +}; + +/* Spawns a child process that uses /bin/sh to interpret a command. + * This is much the same in use and purpose as system(), yet as it uses execve + * to pass a trusted environment it's immune to attacks based upon changing + * IFS, ENV, BASH_ENV and other such variables. + * Note this does NOT guard against any other attacks, inparticular you MUST + * validate the command you are passing. If the command is formed from user + * input be sure to check this input is what you expect. Nasty things can + * happen if a user can inject ; or `` into your command for example */ +int safe_system(char* command) { + return system_core(command, 0, 0, "safe_system"); +} + +/* Much like safe_system but lets you specify a non-root uid and gid to run + * the command as */ +int unpriv_system(char* command, uid_t uid, gid_t gid) { + return system_core(command, uid, gid, "unpriv_system"); +} + +int system_core(char* command, uid_t uid, gid_t gid, char *error) { + int pid, status; + + if(!command) + return 1; + + switch(pid = fork()) { + case -1: + return -1; + + case 0: /* child */ { + char *argv[4]; + + if (gid && setgid(gid)) { + fprintf(stderr, "%s: ", error); + perror("Couldn't setgid"); + exit(127); + } + + if (uid && setuid(uid)) { + fprintf(stderr, "%s: ", error); + perror("Couldn't setuid"); + exit(127); + } + + argv[0] = "sh"; + argv[1] = "-c"; + argv[2] = command; + argv[3] = NULL; + execve("/bin/sh", argv, trusted_env); + fprintf(stderr, "%s: ", error); + perror("execve failed"); + exit(127); + } + + default: /* parent */ + do { + if (waitpid(pid, &status, 0) == -1) { + if (errno != EINTR) + return -1; + } else { + return status; + } + } while (1); + } + +} + +/* General routine to initialise a setuid root program, and put the + * environment in a known state. Returns 1 on success, if initsetuid() returns + * 0 then you should exit(1) immediately, DON'T attempt to recover from the + * error */ +int initsetuid(void) { + int fds, i; + struct stat st; + struct rlimit rlim; + + /* Prevent signal tricks by ignoring all except SIGKILL and SIGCHILD */ + for (i = 0; i < NSIG; i++) { + if (i != SIGKILL && i != SIGCHLD) + signal(i, SIG_IGN); + } + + /* dump all non-standard file descriptors (a full descriptor table could + * lead to DoS by preventing us opening files) */ + if ((fds = getdtablesize()) == -1) + fds = OPEN_MAX; + for (i = 3; i < fds; i++) + close(i); + + /* check stdin, stdout & stderr are open before going any further */ + for (i = 0; i < 3; i++) + if( fstat(i, &st) == -1 && ((errno != EBADF) || (close(i), open("/dev/null", O_RDWR, 0)) != i)) + return 0; + + /* disable core dumps in case we're processing sensitive information */ + rlim.rlim_cur = rlim.rlim_max = 0; + if (setrlimit(RLIMIT_CORE, &rlim)) { + perror("Couldn't disable core dumps"); + return 0; + } + + /* drop any supplementary groups, set uid & gid to root */ + if (setgroups(0, NULL)) { + perror("Couldn't clear group list"); + return 0; + } + + if (setgid(0)) { + perror("Couldn't setgid(0)"); + return 0; + } + + if (setuid(0)) { + perror("Couldn't setuid(0)"); + return 0; + } + + return 1; +} diff --git a/src/misc-progs/setuid.h b/src/misc-progs/setuid.h index e253a76..2e90537 100644 --- a/src/misc-progs/setuid.h +++ b/src/misc-progs/setuid.h @@ -15,60 +15,18 @@ /* As nothing in setuid.c uses STRING_SIZE specifically there's no real reason * to redefine it if it already is set */ #ifndef STRING_SIZE -#define STRING_SIZE 256 +#define STRING_SIZE 1024 #endif -#define LETTERS "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" -#define NUMBERS "0123456789" -#define LETTERS_NUMBERS LETTERS NUMBERS -#define IP_NUMBERS "./" NUMBERS -#define PORT_NUMBERS ":-" NUMBERS -#define VALID_FQDN LETTERS_NUMBERS ".-" - - -#define VALID_IP(ip) (strlen(ip) > 6 \ - && strlen(ip) < 16 \ - && strspn(ip, NUMBERS ".") == strlen(ip)) - -#define VALID_IP_AND_MASK(ip) (strlen(ip) > 6 \ - && strlen(ip) < 32 \ - && strspn(ip, IP_NUMBERS) == strlen(ip)) - -#define VALID_PORT(port) (strlen(port) \ - && strlen(port) < 6 \ - && strspn(port, NUMBERS) == strlen(port)) - -#define VALID_PORT_RANGE(port) (strlen(port) \ - && strlen(port) < 12 \ - && strspn(port, PORT_NUMBERS) == strlen(port)) - -#define VALID_SHORT_MASK(ip) (strlen(ip) > 1 \ - && strlen(ip) < 3 \ - && strspn(ip, NUMBERS) == strlen(ip)) - -/* Can't find any info on valid characters/length hopefully these are - * reasonable guesses */ -#define VALID_DEVICE(dev) (strlen(dev) \ - && strlen(dev) < 16 \ - && strspn(dev, LETTERS_NUMBERS ":.") == strlen(dev)) - -/* Again, can't find any hard and fast rules for protocol names, these - * restrictions are based on the keywords currently listed in - * http://www.iana.org/assignments/protocol-numbers - * though currently the ipcop cgis will only pass tcp, udp or gre anyway */ -#define VALID_PROTOCOL(prot) (strlen(prot) \ - && strlen(prot) <16 \ - && strspn(prot, LETTERS_NUMBERS "-") == strlen(prot))
extern char * trusted_env[4];
int system_core(char* command, uid_t uid, gid_t gid, char *error); int safe_system(char* command); int unpriv_system(char* command, uid_t uid, gid_t gid); -size_t strlcat(char *dst, const char *src, size_t len); int initsetuid(void);
-/* check whether a file exists */ -int file_exists(const char *fname); -int file_exists_w(const char *fname); //wildcard filename test +/* Compatibility for the local copy of strlcat, + * which has been removed. */ +#define strlcat(src, dst, size) strncat(src, dst, size)
#endif diff --git a/src/misc-progs/setxtaccess.c b/src/misc-progs/setxtaccess.c deleted file mode 100644 index 27a03e0..0000000 --- a/src/misc-progs/setxtaccess.c +++ /dev/null @@ -1,168 +0,0 @@ -/* SmoothWall helper program - setxtaccess - * - * This program is distributed under the terms of the GNU General Public - * Licence. See the file COPYING for details. - * - * (c) Daniel Goscomb, 2001 - * - * Modifications and improvements by Lawrence Manning. - * - * 10/04/01 Aslak added protocol support - * - * (c) Steve Bootes 2002/04/14 - Added source IP support for aliases - * - * 19/04/03 Robert Kerr Fixed root exploit - * - * $Id: setxtaccess.c,v 1.3.2.1 2005/01/04 17:21:40 eoberlander Exp $ - * - */ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include "setuid.h" - -FILE *ifacefile = NULL; -FILE *fwdfile = NULL; -FILE *ipfile = NULL; - -void exithandler(void) -{ - if (fwdfile) - fclose(fwdfile); -} - -int main(void) -{ - char iface[STRING_SIZE] = ""; - char locip[STRING_SIZE] = ""; - char s[STRING_SIZE] = ""; - int count; - char *protocol; - char *destip; - char *remip; - char *locport; - char *enabled; - char *information; - char *result; - char command[STRING_SIZE]; - - if (!(initsetuid())) - exit(1); - - atexit(exithandler); - - if (!(ipfile = fopen(CONFIG_ROOT "/red/local-ipaddress", "r"))) - { - fprintf(stderr, "Couldn't open local ip file\n"); - exit(1); - } - if (fgets(locip, STRING_SIZE, ipfile)) - { - if (locip[strlen(locip) - 1] == '\n') - locip[strlen(locip) - 1] = '\0'; - } - fclose (ipfile); - if (!VALID_IP(locip)) - { - fprintf(stderr, "Bad local IP: %s\n", locip); - exit(1); - } - - if (!(ifacefile = fopen(CONFIG_ROOT "/red/iface", "r"))) - { - fprintf(stderr, "Couldn't open iface file\n"); - exit(1); - } - if (fgets(iface, STRING_SIZE, ifacefile)) - { - if (iface[strlen(iface) - 1] == '\n') - iface[strlen(iface) - 1] = '\0'; - } - fclose (ifacefile); - if (!VALID_DEVICE(iface)) - { - fprintf(stderr, "Bad iface: %s\n", iface); - exit(1); - } - - if (!(fwdfile = fopen(CONFIG_ROOT "/xtaccess/config", "r"))) - { - fprintf(stderr, "Couldn't open xtaccess settings file\n"); - exit(1); - } - - safe_system("/sbin/iptables -F XTACCESS"); - - while (fgets(s, STRING_SIZE, fwdfile) != NULL) - { - if (s[strlen(s) - 1] == '\n') - s[strlen(s) - 1] = '\0'; - count = 0; - protocol = NULL; - remip = NULL; - destip = NULL; - locport = NULL; - enabled = NULL; - information = NULL; - result = strtok(s, ","); - while (result) - { - if (count == 0) - protocol = result; - else if (count == 1) - remip = result; - else if (count == 2) - locport = result; - else if (count == 3) - enabled = result; - else if (count == 4) - destip = result; - else - information = result; - count++; - result = strtok(NULL, ","); - } - - if (!(protocol && remip && locport && enabled)) - break; - - if (!VALID_PROTOCOL(protocol)) - { - fprintf(stderr, "Bad protocol: %s\n", protocol); - exit(1); - } - if (!VALID_IP_AND_MASK(remip)) - { - fprintf(stderr, "Bad remote IP: %s\n", remip); - exit(1); - } - if (!VALID_PORT_RANGE(locport)) - { - fprintf(stderr, "Bad local port: %s\n", locport); - exit(1); - } - - /* check for destination ip in config file. If it's there - * and it's not 0.0.0.0, use it; else use the current - * local ip address. (This makes sure we can use old-style - * config files without the destination ip) */ - if (!destip || !strcmp(destip, "0.0.0.0")) - destip = locip; - if (!VALID_IP(destip)) - { - fprintf(stderr, "Bad destination IP: %s\n", remip); - exit(1); - } - - if (strcmp(enabled, "on") == 0) - { - memset(command, 0, STRING_SIZE); - snprintf(command, STRING_SIZE - 1, "/sbin/iptables -A XTACCESS -i %s -p %s -s %s -d %s --dport %s -j ACCEPT", - iface, protocol, remip, destip, locport); - safe_system(command); - } - } - - return 0; -} diff --git a/src/misc-progs/smartctrl.c b/src/misc-progs/smartctrl.c index d9dd846..c6451ac 100644 --- a/src/misc-progs/smartctrl.c +++ b/src/misc-progs/smartctrl.c @@ -13,31 +13,28 @@ #include <fcntl.h> #include "setuid.h"
-#define BUFFER_SIZE 1024 - -char command[BUFFER_SIZE]; - int main(int argc, char *argv[]) { - if (!(initsetuid())) - exit(1); + exit(1);
- if (argc < 2) { - fprintf(stderr, "\nNo argument given.\n\nsmartctrl <device>\n\n"); - exit(1); - } + if (argc < 2) { + fprintf(stderr, "\nNo argument given.\n\nsmartctrl <device>\n\n"); + exit(1); + }
+ char command[STRING_SIZE]; + snprintf(command, STRING_SIZE, "/var/run/hddshutdown-%s", argv[1]);
- sprintf(command, "/var/run/hddshutdown-%s", argv[1]); - FILE *fp = fopen(command,"r"); - if( fp ) { + FILE *fp = fopen(command, "r"); + if (fp != NULL) { fclose(fp); + printf("\nDisk %s is in Standby. Do nothing because we won't wakeup\n",argv[1]); - exit(1); + exit(1); }
- sprintf(command, "smartctl -iHA /dev/%s", argv[1]); - safe_system(command); + snprintf(command, STRING_SIZE, "smartctl -iHA /dev/%s", argv[1]); + safe_system(command);
return 0; } diff --git a/src/misc-progs/syslogdctrl.c b/src/misc-progs/syslogdctrl.c index 993cc93..8111c84 100644 --- a/src/misc-progs/syslogdctrl.c +++ b/src/misc-progs/syslogdctrl.c @@ -19,8 +19,10 @@ #include <fcntl.h> #include <signal.h> #include <errno.h> + #include "libsmooth.h" #include "setuid.h" +#include "netutil.h"
#define ERR_ANY 1 #define ERR_SETTINGS 2 /* error in settings file */ diff --git a/src/misc-progs/wirelessctrl.c b/src/misc-progs/wirelessctrl.c index 12b954b..4a2e6dc 100644 --- a/src/misc-progs/wirelessctrl.c +++ b/src/misc-progs/wirelessctrl.c @@ -5,8 +5,6 @@ * * (c) Alan Hourihane, 2003 * - * $Id: wirelessctrl.c,v 1.2.2.5 2005/07/11 10:56:47 franck78 Exp $ - * */
#include "libsmooth.h" @@ -18,180 +16,159 @@ #include <sys/types.h> #include <sys/stat.h> #include <signal.h> -#include "setuid.h" #include <errno.h>
+#include "setuid.h" +#include "netutil.h" + FILE *fd = NULL; char blue_dev[STRING_SIZE] = ""; char command[STRING_SIZE];
-void exithandler(void) -{ - /* added comment mark to the drop rules to be able to collect the bytes by the collectd */ - if(strlen(blue_dev)) - { - snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSINPUT -i %s -j DROP -m comment --comment 'DROP_Wirelessinput'", blue_dev); - safe_system(command); - snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSFORWARD -i %s -j DROP -m comment --comment 'DROP_Wirelessforward'", blue_dev); - safe_system(command); - } - - if (fd) - fclose(fd); +void exithandler(void) { + /* added comment mark to the drop rules to be able to collect the bytes by the collectd */ + if (strlen(blue_dev) > 0) { + snprintf(command, STRING_SIZE-1, "/sbin/iptables --wait -A WIRELESSINPUT -i %s -j DROP -m comment --comment 'DROP_Wirelessinput'", blue_dev); + safe_system(command); + snprintf(command, STRING_SIZE-1, "/sbin/iptables --wait -A WIRELESSFORWARD -i %s -j DROP -m comment --comment 'DROP_Wirelessforward'", blue_dev); + safe_system(command); + } + + if (fd) + fclose(fd); }
-int main(void) -{ - char green_dev[STRING_SIZE] = ""; - char buffer[STRING_SIZE]; - char *index, *ipaddress, *macaddress, *enabled; - struct keyvalue *kv = NULL; - - if (!(initsetuid())) - exit(1); - - /* flush wireless iptables */ - safe_system("/sbin/iptables -F WIRELESSINPUT > /dev/null 2> /dev/null"); - safe_system("/sbin/iptables -F WIRELESSFORWARD > /dev/null 2> /dev/null"); - - memset(buffer, 0, STRING_SIZE); - - /* Init the keyvalue structure */ - kv=initkeyvalues(); - - /* Read in the current values */ - if (!readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings")) - { - fprintf(stderr, "Cannot read ethernet settings\n"); - exit(1); - } - - /* Read in the firewall values */ - if (!readkeyvalues(kv, CONFIG_ROOT "/optionsfw/settings")) - { - fprintf(stderr, "Cannot read optionsfw settings\n"); - exit(1); - } - - /* Get the GREEN interface details */ - if(!findkey(kv, "GREEN_DEV", green_dev)) - { - fprintf(stderr, "Cannot read GREEN_DEV\n"); - exit(1); - } - if (!VALID_DEVICE(green_dev)) - { - fprintf(stderr, "Bad GREEN_DEV: %s\n", green_dev); - exit(1); - } - /* Get the BLUE interface details */ - if(!findkey(kv, "BLUE_DEV", blue_dev)) - { - fprintf(stderr, "Cannot read BLUE_DEV\n"); - exit(1); - } - if (strlen(blue_dev) && !VALID_DEVICE(blue_dev)) - { - fprintf(stderr, "Bad BLUE_DEV: %s\n", blue_dev); - exit(1); - } - if(! strlen(blue_dev) > 0) - { - fprintf(stderr, "No BLUE interface\n"); - exit(0); - } - - if ((fd = fopen(CONFIG_ROOT "/wireless/nodrop", "r"))) - return 0; - - /* register exit handler to ensure the block rule is always present */ - atexit(exithandler); - - if (!(fd = fopen(CONFIG_ROOT "/wireless/config", "r"))) - { - exit(0); - } - - /* restrict blue access tp the proxy port */ - if(findkey(kv, "DROPPROXY", buffer) && strcmp(buffer,"off")){ - /* Read the proxy values */ - if (!readkeyvalues(kv, CONFIG_ROOT "/proxy/settings") || !(findkey(kv, "PROXY_PORT", buffer))) - { - fprintf(stderr, "Cannot read proxy settings\n"); - exit(1); - } - snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSFORWARD -i %s -p tcp ! --dport %s -j DROP -m comment --comment 'DROP_Wirelessforward'", blue_dev, buffer); - safe_system(command); - snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSINPUT -i %s -p tcp ! --dport %s -j DROP -m comment --comment 'DROP_Wirelessinput'", blue_dev, buffer); - safe_system(command); - } - - /* not allow blue to acces a samba server running on local fire*/ - if(findkey(kv, "DROPSAMBA", buffer) && strcmp(buffer,"off")){ - snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSFORWARD -i %s -p tcp -m multiport --ports 135,137,138,139,445,1025 -j DROP -m comment --comment 'DROP_Wirelessforward'", blue_dev); - safe_system(command); - snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSINPUT -i %s -p tcp -m multiport --ports 135,137,138,139,445,1025 -j DROP -m comment --comment 'DROP_Wirelessinput'", blue_dev); - safe_system(command); - snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSFORWARD -i %s -p udp -m multiport --ports 135,137,138,139,445,1025 -j DROP -m comment --comment 'DROP_Wirelessforward'", blue_dev); - safe_system(command); - snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSINPUT -i %s -p udp -m multiport --ports 135,137,138,139,445,1025 -j DROP -m comment --comment 'DROP_Wirelessinput'", blue_dev); - safe_system(command); - } - - while (fgets(buffer, STRING_SIZE, fd)) - { - buffer[strlen(buffer) - 1] = 0; - - index = strtok(buffer, ","); - ipaddress = strtok(NULL, ","); - macaddress = strtok(NULL, ","); - enabled = strtok(NULL, ","); - - if (!strncmp(enabled, "on", 2)) { - - /* both specified, added security */ - if ((strlen(macaddress) == 17) && - (VALID_IP_AND_MASK(ipaddress))) { - snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSINPUT -m mac --mac-source %s -s %s -i %s -j ACCEPT", macaddress, ipaddress, blue_dev); - safe_system(command); - snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSFORWARD -m mac --mac-source %s -s %s -i %s ! -o %s -j ACCEPT", macaddress, ipaddress, blue_dev, green_dev); - safe_system(command); - snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSFORWARD -m mac --mac-source %s -s %s -i %s -j DMZHOLES", macaddress, ipaddress, blue_dev); - safe_system(command); - } else { - - /* correctly formed mac address is 17 chars */ - if (strlen(macaddress) == 17) { - snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSINPUT -m mac --mac-source %s -i %s -j ACCEPT", macaddress, blue_dev); - safe_system(command); - snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSFORWARD -m mac --mac-source %s -i %s ! -o %s -j ACCEPT", macaddress, blue_dev, green_dev); - safe_system(command); - snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSFORWARD -m mac --mac-source %s -i %s -j DMZHOLES", macaddress, blue_dev); - safe_system(command); - } - - if (VALID_IP_AND_MASK(ipaddress)) { - snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSINPUT -s %s -i %s -j ACCEPT", ipaddress, blue_dev); - safe_system(command); - snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSFORWARD -s %s -i %s ! -o %s -j ACCEPT", ipaddress, blue_dev, green_dev); - safe_system(command); - snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSFORWARD -s %s -i %s -j DMZHOLES", ipaddress, blue_dev); - safe_system(command); - } - } - } +int main(void) { + char green_dev[STRING_SIZE] = ""; + char buffer[STRING_SIZE]; + char *index, *ipaddress, *macaddress, *enabled; + struct keyvalue *kv = NULL; + + if (!(initsetuid())) + exit(1); + + /* flush wireless iptables */ + safe_system("/sbin/iptables --wait -F WIRELESSINPUT > /dev/null 2> /dev/null"); + safe_system("/sbin/iptables --wait -F WIRELESSFORWARD > /dev/null 2> /dev/null"); + + memset(buffer, 0, STRING_SIZE); + + /* Init the keyvalue structure */ + kv=initkeyvalues(); + + /* Read in the current values */ + if (!readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings")) { + fprintf(stderr, "Cannot read ethernet settings\n"); + exit(1); + } + + /* Read in the firewall values */ + if (!readkeyvalues(kv, CONFIG_ROOT "/optionsfw/settings")) { + fprintf(stderr, "Cannot read optionsfw settings\n"); + exit(1); + } + + /* Get the GREEN interface details */ + if (findkey(kv, "GREEN_DEV", green_dev) > 0) { + if (!VALID_DEVICE(green_dev)) { + fprintf(stderr, "Bad GREEN_DEV: %s\n", green_dev); + exit(1); + } + } + + /* Get the BLUE interface details */ + if (findkey(kv, "BLUE_DEV", blue_dev) > 0) { + if ((strlen(blue_dev) > 0) && !VALID_DEVICE(blue_dev)) { + fprintf(stderr, "Bad BLUE_DEV: %s\n", blue_dev); + exit(1); + } + } + + if (strlen(blue_dev) == 0) { + exit(0); + } + + if ((fd = fopen(CONFIG_ROOT "/wireless/nodrop", "r"))) + return 0; + + /* register exit handler to ensure the block rule is always present */ + atexit(exithandler); + + if (!(fd = fopen(CONFIG_ROOT "/wireless/config", "r"))) { + exit(0); + } + + /* restrict blue access tp the proxy port */ + if (findkey(kv, "DROPPROXY", buffer) && strcmp(buffer, "on") == 0) { + /* Read the proxy values */ + if (!readkeyvalues(kv, CONFIG_ROOT "/proxy/settings") || !(findkey(kv, "PROXY_PORT", buffer))) { + fprintf(stderr, "Cannot read proxy settings\n"); + exit(1); + } + + snprintf(command, STRING_SIZE-1, "/sbin/iptables --wait -A WIRELESSFORWARD -i %s -p tcp ! --dport %s -j DROP -m comment --comment 'DROP_Wirelessforward'", blue_dev, buffer); + safe_system(command); + snprintf(command, STRING_SIZE-1, "/sbin/iptables --wait -A WIRELESSINPUT -i %s -p tcp ! --dport %s -j DROP -m comment --comment 'DROP_Wirelessinput'", blue_dev, buffer); + safe_system(command); + } + + /* not allow blue to acces a samba server running on local fire*/ + if (findkey(kv, "DROPSAMBA", buffer) && strcmp(buffer, "on") == 0) { + snprintf(command, STRING_SIZE-1, "/sbin/iptables --wait -A WIRELESSFORWARD -i %s -p tcp -m multiport --ports 135,137,138,139,445,1025 -j DROP -m comment --comment 'DROP_Wirelessforward'", blue_dev); + safe_system(command); + snprintf(command, STRING_SIZE-1, "/sbin/iptables --wait -A WIRELESSINPUT -i %s -p tcp -m multiport --ports 135,137,138,139,445,1025 -j DROP -m comment --comment 'DROP_Wirelessinput'", blue_dev); + safe_system(command); + snprintf(command, STRING_SIZE-1, "/sbin/iptables --wait -A WIRELESSFORWARD -i %s -p udp -m multiport --ports 135,137,138,139,445,1025 -j DROP -m comment --comment 'DROP_Wirelessforward'", blue_dev); + safe_system(command); + snprintf(command, STRING_SIZE-1, "/sbin/iptables --wait -A WIRELESSINPUT -i %s -p udp -m multiport --ports 135,137,138,139,445,1025 -j DROP -m comment --comment 'DROP_Wirelessinput'", blue_dev); + safe_system(command); + } + + while (fgets(buffer, STRING_SIZE, fd)) { + buffer[strlen(buffer) - 1] = 0; + + index = strtok(buffer, ","); + ipaddress = strtok(NULL, ","); + macaddress = strtok(NULL, ","); + enabled = strtok(NULL, ","); + + if (strcmp(enabled, "on") == 0) { + /* both specified, added security */ + if ((strlen(macaddress) == 17) && (VALID_IP_AND_MASK(ipaddress))) { + snprintf(command, STRING_SIZE-1, "/sbin/iptables --wait -A WIRELESSINPUT -m mac --mac-source %s -s %s -i %s -j ACCEPT", macaddress, ipaddress, blue_dev); + safe_system(command); + snprintf(command, STRING_SIZE-1, "/sbin/iptables --wait -A WIRELESSFORWARD -m mac --mac-source %s -s %s -i %s -j RETURN", macaddress, ipaddress, blue_dev); + safe_system(command); + } else { + /* correctly formed mac address is 17 chars */ + if (strlen(macaddress) == 17) { + snprintf(command, STRING_SIZE-1, "/sbin/iptables --wait -A WIRELESSINPUT -m mac --mac-source %s -i %s -j ACCEPT", macaddress, blue_dev); + safe_system(command); + snprintf(command, STRING_SIZE-1, "/sbin/iptables --wait -A WIRELESSFORWARD -m mac --mac-source %s -i %s -j RETURN", macaddress, blue_dev); + safe_system(command); }
- /* with this rule you can disable the logging of the dropped wireless input packets*/ - if(!findkey(kv, "DROPWIRELESSINPUT", buffer) || strcmp(buffer,"off")){ - snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSINPUT -i %s -j LOG --log-prefix 'DROP_Wirelessinput'", blue_dev); - safe_system(command); + if (VALID_IP_AND_MASK(ipaddress)) { + snprintf(command, STRING_SIZE-1, "/sbin/iptables --wait -A WIRELESSINPUT -s %s -i %s -j ACCEPT", ipaddress, blue_dev); + safe_system(command); + snprintf(command, STRING_SIZE-1, "/sbin/iptables --wait -A WIRELESSFORWARD -s %s -i %s -j RETURN", ipaddress, blue_dev); + safe_system(command); } - /* with this rule you can disable the logging of the dropped wireless forward packets*/ - if(!findkey(kv, "DROPWIRELESSFORWARD", buffer) || strcmp(buffer,"off")){ - snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSFORWARD -i %s -j LOG --log-prefix 'DROP_Wirelessforward'", blue_dev); - safe_system(command); - } - - return 0; + } + } + } + + /* with this rule you can disable the logging of the dropped wireless input packets*/ + if (findkey(kv, "DROPWIRELESSINPUT", buffer) && strcmp(buffer, "on") == 0) { + snprintf(command, STRING_SIZE-1, "/sbin/iptables --wait -A WIRELESSINPUT -i %s -j LOG --log-prefix 'DROP_Wirelessinput'", blue_dev); + safe_system(command); + } + + /* with this rule you can disable the logging of the dropped wireless forward packets*/ + if (findkey(kv, "DROPWIRELESSFORWARD", buffer) && strcmp(buffer, "on") == 0) { + snprintf(command, STRING_SIZE-1, "/sbin/iptables --wait -A WIRELESSFORWARD -i %s -j LOG --log-prefix 'DROP_Wirelessforward'", blue_dev); + safe_system(command); + } + + return 0; } diff --git a/src/paks/avahi/install.sh b/src/paks/avahi/install.sh index bcbb631..cb0266b 100644 --- a/src/paks/avahi/install.sh +++ b/src/paks/avahi/install.sh @@ -22,6 +22,13 @@ ############################################################################ # . /opt/pakfire/lib/functions.sh + +# Create Username and group. +getent group avahi >/dev/null || groupadd -r avahi +getent passwd avahi >/dev/null || \ + useradd -r -g avahi -d /var/run/avahi-daemon -s /sbin/nologin \ + -c "Avahi mDNS daemon" avahi + extract_files ln -svf ../init.d/avahi /etc/rc.d/rc3.d/S65avahi ln -svf ../init.d/avahi /etc/rc.d/rc0.d/K35avahi diff --git a/src/paks/linux-pae/install.sh b/src/paks/linux-pae/install.sh index ab74051..043bd45 100644 --- a/src/paks/linux-pae/install.sh +++ b/src/paks/linux-pae/install.sh @@ -64,13 +64,13 @@ echo " kernel /vmlinuz-$KVER-ipfire-pae root=$ROOT panic=10$console $MOUNT" >> echo " initrd /ipfirerd-$KVER-pae.img" >> /boot/grub/grub.conf echo " savedefault $ENTRY" >> /boot/grub/grub.conf # -# Made initramdisk -# -/sbin/dracut --force --verbose /boot/ipfirerd-$KVER-pae.img $KVER-ipfire-pae -# # Create new module depency # depmod -a $KVER-ipfire-pae +# +# Made initramdisk +# +/sbin/dracut --force --verbose /boot/ipfirerd-$KVER-pae.img $KVER-ipfire-pae
# Default pae and request a reboot if pae is supported if [ ! "$(grep "^flags.* pae " /proc/cpuinfo)" == "" ]; then diff --git a/src/paks/linux-xen/install.sh b/src/paks/linux-xen/install.sh deleted file mode 100644 index f3472dd..0000000 --- a/src/paks/linux-xen/install.sh +++ /dev/null @@ -1,80 +0,0 @@ -#!/bin/bash -############################################################################ -# # -# This file is part of the IPFire Firewall. # -# # -# IPFire is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# IPFire is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with IPFire; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -# Copyright (C) 2010 IPFire-Team info@ipfire.org. # -# # -############################################################################ -# -. /opt/pakfire/lib/functions.sh -extract_files -# -KVER=2.6.32.61 -ROOT=`mount | grep " / " | cut -d" " -f1` -ROOTUUID=`blkid -c /dev/null -sUUID $ROOT | cut -d'"' -f2` -if [ ! -z $ROOTUUID ]; then - ROOT="UUID=$ROOTUUID" -fi - -MOUNT=`grep "kernel" /boot/grub/grub.conf | tail -n 1` -# Nur den letzten Parameter verwenden -echo $MOUNT > /dev/null -MOUNT=$_ -if [ ! $MOUNT == "rw" ]; then - MOUNT="ro" -fi - -ENTRY=`grep "savedefault" /boot/grub/grub.conf | tail -n 1` -# Nur den letzten Parameter verwenden -echo $ENTRY > /dev/null -let ENTRY=$_+1 -# -# backup grub.conf -# -cp /boot/grub/grub.conf /boot/grub/grub-backup-$KVER-xen.conf -# -# Add new Entry to grub.conf -# -echo "" >> /boot/grub/grub.conf -echo "title IPFire (legacy XEN-Kernel $KVER)" >> /boot/grub/grub.conf -echo " kernel /vmlinuz-$KVER-ipfire-xen root=$ROOT panic=10 console=xvc0 $MOUNT" >> /boot/grub/grub.conf -echo " initrd /ipfirerd-$KVER-xen.img" >> /boot/grub/grub.conf -echo "# savedefault $ENTRY" >> /boot/grub/grub.conf -# -# Test if we running already on xen -# -uname -r | grep "ipfire-xen"; -if [ ${?} = 0 ]; then - #Xen Kernel is active - #Set grub default entry to this kernel - sed -i -e "s|^default .*|default $ENTRY|g" /boot/grub/grub.conf - #Remove ramdisk of normal kernel (not enough space) - rm -f /boot/ipfirerd-$KVER.img -else - #Normal Kernel - #pygrub crash with "default saved" - sed -i -e "s|^default saved|#default saved|g" /boot/grub/grub.conf -fi -# -# Made initramdisk -# -/sbin/dracut --force --verbose /boot/ipfirerd-$KVER-xen.img $KVER-ipfire-xen -# -# Create new module depency -# -depmod -a $KVER-ipfire-xen diff --git a/src/paks/linux-xen/uninstall.sh b/src/paks/linux-xen/uninstall.sh deleted file mode 100644 index fe23165..0000000 --- a/src/paks/linux-xen/uninstall.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash -############################################################################ -# # -# This file is part of the IPFire Firewall. # -# # -# IPFire is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# IPFire is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with IPFire; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -# Copyright (C) 2010 IPFire-Team info@ipfire.org. # -# # -############################################################################ -# -. /opt/pakfire/lib/functions.sh -remove_files -mv -f /boot/grub/grub-backup-2.6.32.*-xen.conf /boot/grub/grub.conf diff --git a/src/paks/linux-xen/update.sh b/src/paks/linux-xen/update.sh deleted file mode 100644 index 89c40d0..0000000 --- a/src/paks/linux-xen/update.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash -############################################################################ -# # -# This file is part of the IPFire Firewall. # -# # -# IPFire is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# IPFire is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with IPFire; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -# Copyright (C) 2007 IPFire-Team info@ipfire.org. # -# # -############################################################################ -# -. /opt/pakfire/lib/functions.sh -./uninstall.sh -./install.sh diff --git a/src/paks/mysql/install.sh b/src/paks/mysql/install.sh index 20a9924..a27d09e 100644 --- a/src/paks/mysql/install.sh +++ b/src/paks/mysql/install.sh @@ -22,11 +22,17 @@ ############################################################################ # . /opt/pakfire/lib/functions.sh + extract_files + ln -svf ../init.d/mysql /etc/rc.d/rc0.d/K26mysql ln -svf ../init.d/mysql /etc/rc.d/rc3.d/S34mysql ln -svf ../init.d/mysql /etc/rc.d/rc6.d/K26mysql -/etc/init.d/mysql start + +restore_backup "${NAME}" + +start_service "${NAME}" + COUNTER=0 while [ "$COUNTER" -lt "10" ]; do [ -e "/var/run/mysql/mysql.sock" ] && break @@ -34,6 +40,8 @@ while [ "$COUNTER" -lt "10" ]; do sleep 5 COUNTER=$(($COUNTER + 1)) done + [ -e "/var/run/mysql/mysql.sock" ] || (echo "MySQL still noch running... Exiting."; \ exit 1) + mysqladmin -u root --password='' password 'mysqlfire' diff --git a/src/paks/mysql/uninstall.sh b/src/paks/mysql/uninstall.sh index ed4ff02..a312b2e 100644 --- a/src/paks/mysql/uninstall.sh +++ b/src/paks/mysql/uninstall.sh @@ -22,5 +22,14 @@ ############################################################################ # . /opt/pakfire/lib/functions.sh + +# Stop the mysql service +stop_service "${NAME}" + +# Make backup +make_backup "${NAME}" + remove_files + +# Remove start links. rm -rvf /etc/rc.d/rc*.d/*mysql diff --git a/src/paks/mysql/update.sh b/src/paks/mysql/update.sh index 89c40d0..548b9db 100644 --- a/src/paks/mysql/update.sh +++ b/src/paks/mysql/update.sh @@ -22,5 +22,29 @@ ############################################################################ # . /opt/pakfire/lib/functions.sh -./uninstall.sh -./install.sh + +# Create backup include file if it is missing. +if [ ! -e "/var/ipfire/backup/addons/includes/mysql" ]; then + cat <<EOF > /var/ipfire/backup/addons/includes/mysql +/etc/my.cnf +/srv/mysql +EOF +fi + +# Stop the mysql service +stop_service "${NAME}" + +# Make backup +make_backup "${NAME}" + +# Update files +remove_files +extract_files + +# Restore backup +restore_backup "${NAME}" + +# Restart the service +start_service "${NAME}" + +exit 0 diff --git a/src/paks/tor/install.sh b/src/paks/tor/install.sh new file mode 100644 index 0000000..31c5fec --- /dev/null +++ b/src/paks/tor/install.sh @@ -0,0 +1,27 @@ +#!/bin/bash +############################################################################ +# # +# This file is part of the IPFire Firewall. # +# # +# IPFire is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# IPFire is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with IPFire; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +# Copyright (C) 2007 IPFire-Team info@ipfire.org. # +# # +############################################################################ +# +. /opt/pakfire/lib/functions.sh +extract_files +restore_backup ${NAME} +start_service --background ${NAME} diff --git a/src/paks/tor/uninstall.sh b/src/paks/tor/uninstall.sh new file mode 100644 index 0000000..a7b8a53 --- /dev/null +++ b/src/paks/tor/uninstall.sh @@ -0,0 +1,27 @@ +#!/bin/bash +############################################################################ +# # +# This file is part of the IPFire Firewall. # +# # +# IPFire is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# IPFire is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with IPFire; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +# Copyright (C) 2007 IPFire-Team info@ipfire.org. # +# # +############################################################################ +# +. /opt/pakfire/lib/functions.sh +stop_service ${NAME} +make_backup ${NAME} +remove_files diff --git a/src/paks/tor/update.sh b/src/paks/tor/update.sh new file mode 100644 index 0000000..675e7f5 --- /dev/null +++ b/src/paks/tor/update.sh @@ -0,0 +1,37 @@ +#!/bin/bash +############################################################################ +# # +# This file is part of the IPFire Firewall. # +# # +# IPFire is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# IPFire is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with IPFire; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +# Copyright (C) 2007 IPFire-Team info@ipfire.org. # +# # +############################################################################ +# +. /opt/pakfire/lib/functions.sh + +# Create backup include file if it is missing. +if [ ! -e "/var/ipfire/backup/addons/includes/tor" ]; then + cat <<EOF > /var/ipfire/backup/addons/includes/tor +/etc/tor +/var/ipfire/tor +/var/lib/tor/fingerprint +/var/lib/tor/keys +EOF +fi + +./uninstall.sh +./install.sh diff --git a/src/patches/binutils-2.22-pt-pax-flags-20111121.patch b/src/patches/binutils-2.22-pt-pax-flags-20111121.patch new file mode 100644 index 0000000..3ba1a87 --- /dev/null +++ b/src/patches/binutils-2.22-pt-pax-flags-20111121.patch @@ -0,0 +1,1859 @@ +--- binutils-2.22/bfd/elf-bfd.h ++++ binutils-2.22/bfd/elf-bfd.h +@@ -1577,6 +1577,9 @@ struct elf_obj_tdata + /* Segment flags for the PT_GNU_STACK segment. */ + unsigned int stack_flags; + ++ /* Segment flags for the PT_PAX_FLAGS segment. */ ++ unsigned int pax_flags; ++ + /* Symbol version definitions in external objects. */ + Elf_Internal_Verdef *verdef; + +--- binutils-2.22/bfd/elf.c ++++ binutils-2.22/bfd/elf.c +@@ -1158,6 +1158,7 @@ get_segment_type (unsigned int p_type) + case PT_GNU_EH_FRAME: pt = "EH_FRAME"; break; + case PT_GNU_STACK: pt = "STACK"; break; + case PT_GNU_RELRO: pt = "RELRO"; break; ++ case PT_PAX_FLAGS: pt = "PAX_FLAGS"; break; + default: pt = NULL; break; + } + return pt; +@@ -2477,6 +2478,9 @@ bfd_section_from_phdr (bfd *abfd, Elf_Internal_Phdr *hdr, int hdr_index) + case PT_GNU_RELRO: + return _bfd_elf_make_section_from_phdr (abfd, hdr, hdr_index, "relro"); + ++ case PT_PAX_FLAGS: ++ return _bfd_elf_make_section_from_phdr (abfd, hdr, hdr_index, "pax_flags"); ++ + default: + /* Check for any processor-specific program segment types. */ + bed = get_elf_backend_data (abfd); +@@ -3551,6 +3555,11 @@ get_program_header_size (bfd *abfd, struct bfd_link_info *info) + ++segs; + } + ++ { ++ /* We need a PT_PAX_FLAGS segment. */ ++ ++segs; ++ } ++ + for (s = abfd->sections; s != NULL; s = s->next) + { + if ((s->flags & SEC_LOAD) != 0 +@@ -4153,6 +4162,20 @@ _bfd_elf_map_sections_to_segments (bfd *abfd, struct bfd_link_info *info) + } + } + ++ { ++ amt = sizeof (struct elf_segment_map); ++ m = bfd_zalloc (abfd, amt); ++ if (m == NULL) ++ goto error_return; ++ m->next = NULL; ++ m->p_type = PT_PAX_FLAGS; ++ m->p_flags = elf_tdata (abfd)->pax_flags; ++ m->p_flags_valid = 1; ++ ++ *pm = m; ++ pm = &m->next; ++ } ++ + free (sections); + elf_tdata (abfd)->segment_map = mfirst; + } +@@ -5417,7 +5440,8 @@ rewrite_elf_program_header (bfd *ibfd, bfd *obfd) + 6. PT_TLS segment includes only SHF_TLS sections. + 7. SHF_TLS sections are only in PT_TLS or PT_LOAD segments. + 8. PT_DYNAMIC should not contain empty sections at the beginning +- (with the possible exception of .dynamic). */ ++ (with the possible exception of .dynamic). ++ 9. PT_PAX_FLAGS segments do not include any sections. */ + #define IS_SECTION_IN_INPUT_SEGMENT(section, segment, bed) \ + ((((segment->p_paddr \ + ? IS_CONTAINED_BY_LMA (section, segment, segment->p_paddr) \ +@@ -5425,6 +5449,7 @@ rewrite_elf_program_header (bfd *ibfd, bfd *obfd) + && (section->flags & SEC_ALLOC) != 0) \ + || IS_NOTE (segment, section)) \ + && segment->p_type != PT_GNU_STACK \ ++ && segment->p_type != PT_PAX_FLAGS \ + && (segment->p_type != PT_TLS \ + || (section->flags & SEC_THREAD_LOCAL)) \ + && (segment->p_type == PT_LOAD \ +--- binutils-2.22/bfd/elflink.c ++++ binutils-2.22/bfd/elflink.c +@@ -5545,16 +5545,30 @@ bfd_elf_size_dynamic_sections (bfd *output_bfd, + return TRUE; + + bed = get_elf_backend_data (output_bfd); ++ ++ elf_tdata (output_bfd)->pax_flags = PF_NORANDEXEC; ++ if (info->execheap) ++ elf_tdata (output_bfd)->pax_flags |= PF_NOMPROTECT; ++ else if (info->noexecheap) ++ elf_tdata (output_bfd)->pax_flags |= PF_MPROTECT; ++ + if (info->execstack) +- elf_tdata (output_bfd)->stack_flags = PF_R | PF_W | PF_X; ++ { ++ elf_tdata (output_bfd)->stack_flags = PF_R | PF_W | PF_X; ++ elf_tdata (output_bfd)->pax_flags |= PF_EMUTRAMP; ++ } + else if (info->noexecstack) +- elf_tdata (output_bfd)->stack_flags = PF_R | PF_W; ++ { ++ elf_tdata (output_bfd)->stack_flags = PF_R | PF_W; ++ elf_tdata (output_bfd)->pax_flags |= PF_NOEMUTRAMP; ++ } + else + { + bfd *inputobj; + asection *notesec = NULL; + int exec = 0; + ++ elf_tdata (output_bfd)->pax_flags |= PF_NOEMUTRAMP; + for (inputobj = info->input_bfds; + inputobj; + inputobj = inputobj->link_next) +@@ -5567,7 +5581,11 @@ bfd_elf_size_dynamic_sections (bfd *output_bfd, + if (s) + { + if (s->flags & SEC_CODE) +- exec = PF_X; ++ { ++ elf_tdata (output_bfd)->pax_flags &= ~PF_NOEMUTRAMP; ++ elf_tdata (output_bfd)->pax_flags |= PF_EMUTRAMP; ++ exec = PF_X; ++ } + notesec = s; + } + else if (bed->default_execstack) +--- binutils-2.22/binutils/readelf.c ++++ binutils-2.22/binutils/readelf.c +@@ -2740,6 +2740,7 @@ get_segment_type (unsigned long p_type) + return "GNU_EH_FRAME"; + case PT_GNU_STACK: return "GNU_STACK"; + case PT_GNU_RELRO: return "GNU_RELRO"; ++ case PT_PAX_FLAGS: return "PAX_FLAGS"; + + default: + if ((p_type >= PT_LOPROC) && (p_type <= PT_HIPROC)) +--- binutils-2.22/include/bfdlink.h ++++ binutils-2.22/include/bfdlink.h +@@ -322,6 +322,14 @@ struct bfd_link_info + /* TRUE if PT_GNU_RELRO segment should be created. */ + unsigned int relro: 1; + ++ /* TRUE if PT_PAX_FLAGS segment should be created with PF_NOMPROTECT ++ flags. */ ++ unsigned int execheap: 1; ++ ++ /* TRUE if PT_PAX_FLAGS segment should be created with PF_MPROTECT ++ flags. */ ++ unsigned int noexecheap: 1; ++ + /* TRUE if .eh_frame_hdr section and PT_GNU_EH_FRAME ELF segment + should be created. */ + unsigned int eh_frame_hdr: 1; +--- binutils-2.22/include/elf/common.h ++++ binutils-2.22/include/elf/common.h +@@ -429,6 +429,7 @@ + #define PT_SUNW_EH_FRAME PT_GNU_EH_FRAME /* Solaris uses the same value */ + #define PT_GNU_STACK (PT_LOOS + 0x474e551) /* Stack flags */ + #define PT_GNU_RELRO (PT_LOOS + 0x474e552) /* Read-only after relocation */ ++#define PT_PAX_FLAGS (PT_LOOS + 0x5041580) /* PaX flags */ + + /* Program segment permissions, in program header p_flags field. */ + +@@ -439,6 +440,21 @@ + #define PF_MASKOS 0x0FF00000 /* New value, Oct 4, 1999 Draft */ + #define PF_MASKPROC 0xF0000000 /* Processor-specific reserved bits */ + ++/* Flags to control PaX behavior. */ ++ ++#define PF_PAGEEXEC (1 << 4) /* Enable PAGEEXEC */ ++#define PF_NOPAGEEXEC (1 << 5) /* Disable PAGEEXEC */ ++#define PF_SEGMEXEC (1 << 6) /* Enable SEGMEXEC */ ++#define PF_NOSEGMEXEC (1 << 7) /* Disable SEGMEXEC */ ++#define PF_MPROTECT (1 << 8) /* Enable MPROTECT */ ++#define PF_NOMPROTECT (1 << 9) /* Disable MPROTECT */ ++#define PF_RANDEXEC (1 << 10) /* Enable RANDEXEC */ ++#define PF_NORANDEXEC (1 << 11) /* Disable RANDEXEC */ ++#define PF_EMUTRAMP (1 << 12) /* Enable EMUTRAMP */ ++#define PF_NOEMUTRAMP (1 << 13) /* Disable EMUTRAMP */ ++#define PF_RANDMMAP (1 << 14) /* Enable RANDMMAP */ ++#define PF_NORANDMMAP (1 << 15) /* Disable RANDMMAP */ ++ + /* Values for section header, sh_type field. */ + + #define SHT_NULL 0 /* Section header table entry unused */ +--- binutils-2.22/ld/emultempl/elf32.em ++++ binutils-2.22/ld/emultempl/elf32.em +@@ -2285,6 +2285,16 @@ fragment <<EOF + link_info.noexecstack = TRUE; + link_info.execstack = FALSE; + } ++ else if (strcmp (optarg, "execheap") == 0) ++ { ++ link_info.execheap = TRUE; ++ link_info.noexecheap = FALSE; ++ } ++ else if (strcmp (optarg, "noexecheap") == 0) ++ { ++ link_info.noexecheap = TRUE; ++ link_info.execheap = FALSE; ++ } + EOF + if test x"$GENERATE_SHLIB_SCRIPT" = xyes; then + fragment <<EOF +@@ -2368,6 +2378,8 @@ fragment <<EOF + -z defs Report unresolved symbols in object files.\n")); + fprintf (file, _("\ + -z execstack Mark executable as requiring executable stack\n")); ++ fprintf (file, _("\ ++ -z execheap Mark executable as requiring executable heap\n")); + EOF + + if test x"$GENERATE_SHLIB_SCRIPT" = xyes; then +@@ -2391,6 +2403,8 @@ fragment <<EOF + fragment <<EOF + fprintf (file, _("\ + -z noexecstack Mark executable as not requiring executable stack\n")); ++ fprintf (file, _("\ ++ -z noexecheap Mark executable as not requiring executable heap\n")); + EOF + if test x"$GENERATE_SHLIB_SCRIPT" = xyes; then + fragment <<EOF +--- binutils-2.22/ld/ldgram.y ++++ binutils-2.22/ld/ldgram.y +@@ -1119,6 +1119,8 @@ phdr_type: + $$ = exp_intop (0x6474e550); + else if (strcmp (s, "PT_GNU_STACK") == 0) + $$ = exp_intop (0x6474e551); ++ else if (strcmp (s, "PT_PAX_FLAGS") == 0) ++ $$ = exp_intop (0x65041580); + else + { + einfo (_("\ +--- binutils-2.22/ld/testsuite/ld-alpha/tlsbin.rd ++++ binutils-2.22/ld/testsuite/ld-alpha/tlsbin.rd +@@ -35,13 +35,14 @@ There are [0-9]+ program headers, starting at offset [0-9]+ + + Program Headers: + Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align +- PHDR +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+150 R E 0x8 ++ PHDR +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+188 R E 0x8 + INTERP +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ R +0x1 + .*Requesting program interpreter.* + LOAD +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ R E 0x10000 + LOAD +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ RWE 0x10000 + DYNAMIC +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ RW +0x8 + TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ R +0x4 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + #... + + Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 3 entries: +--- binutils-2.22/ld/testsuite/ld-alpha/tlsbinr.rd ++++ binutils-2.22/ld/testsuite/ld-alpha/tlsbinr.rd +@@ -42,6 +42,7 @@ Program Headers: + +LOAD +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ RWE 0x10000 + +DYNAMIC +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ RW +0x8 + +TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ R +0x4 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + #... + + Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 2 entries: +--- binutils-2.22/ld/testsuite/ld-alpha/tlspic.rd ++++ binutils-2.22/ld/testsuite/ld-alpha/tlspic.rd +@@ -38,6 +38,7 @@ Program Headers: + +LOAD +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ RWE 0x10000 + +DYNAMIC +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ RW +0x8 + +TLS +0x0+10e0 0x0+110e0 0x0+110e0 0x0+60 0x0+80 R +0x4 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + #... + + Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 7 entries: +--- binutils-2.22/ld/testsuite/ld-elf/eh1.d ++++ binutils-2.22/ld/testsuite/ld-elf/eh1.d +@@ -22,11 +22,11 @@ Contents of the .eh_frame section: + DW_CFA_nop + DW_CFA_nop + +-00000018 0000001c 0000001c FDE cie=00000000 pc=00400078..00400078 +- DW_CFA_advance_loc: 0 to 00400078 ++00000018 0000001c 0000001c FDE cie=00000000 pc=([0-9a-f]+)..\1 ++ DW_CFA_advance_loc: 0 to [0-9a-f]+ + DW_CFA_def_cfa_offset: 16 + DW_CFA_offset: r6 (rbp) at cfa-16 +- DW_CFA_advance_loc: 0 to 00400078 ++ DW_CFA_advance_loc: 0 to [0-9a-f]+ + DW_CFA_def_cfa_register: r6 (rbp) + + 00000038 ZERO terminator +--- binutils-2.22/ld/testsuite/ld-elf/eh2.d ++++ binutils-2.22/ld/testsuite/ld-elf/eh2.d +@@ -22,11 +22,11 @@ Contents of the .eh_frame section: + DW_CFA_nop + DW_CFA_nop + +-00000018 0000001c 0000001c FDE cie=00000000 pc=00400078..00400078 +- DW_CFA_advance_loc: 0 to 00400078 ++00000018 0000001c 0000001c FDE cie=00000000 pc=([0-9a-f]+)..\1 ++ DW_CFA_advance_loc: 0 to [0-9a-f]+ + DW_CFA_def_cfa_offset: 16 + DW_CFA_offset: r6 (rbp) at cfa-16 +- DW_CFA_advance_loc: 0 to 00400078 ++ DW_CFA_advance_loc: 0 to [0-9a-f]+ + DW_CFA_def_cfa_register: r6 (rbp) + + 00000038 ZERO terminator +--- binutils-2.22/ld/testsuite/ld-elf/eh3.d ++++ binutils-2.22/ld/testsuite/ld-elf/eh3.d +@@ -22,11 +22,11 @@ Contents of the .eh_frame section: + DW_CFA_nop + DW_CFA_nop + +-00000018 0000001c 0000001c FDE cie=00000000 pc=00400078..00400078 +- DW_CFA_advance_loc: 0 to 00400078 ++00000018 0000001c 0000001c FDE cie=00000000 pc=([0-9a-f]+)..\1 ++ DW_CFA_advance_loc: 0 to [0-9a-f]+ + DW_CFA_def_cfa_offset: 16 + DW_CFA_offset: r6 (rbp) at cfa-16 +- DW_CFA_advance_loc: 0 to 00400078 ++ DW_CFA_advance_loc: 0 to [0-9a-f]+ + DW_CFA_def_cfa_register: r6 (rbp) + + 00000038 ZERO terminator +--- binutils-2.22/ld/testsuite/ld-elf/orphan-region.d ++++ binutils-2.22/ld/testsuite/ld-elf/orphan-region.d +@@ -15,7 +15,9 @@ + Program Headers: + Type.* + LOAD[ \t]+0x[0-9a-f]+ 0x0*40000000 0x0*40000000 0x[0-9a-f]+ 0x[0-9a-f]+ RWE 0x[0-9a-f]+ ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + + Section to Segment mapping: + Segment Sections... + 00 .text .rodata .moredata * ++ 01 + +--- binutils-2.22/ld/testsuite/ld-i386/tlsbin.rd ++++ binutils-2.22/ld/testsuite/ld-i386/tlsbin.rd +@@ -44,6 +44,7 @@ Program Headers: + +LOAD.* + +DYNAMIC.* + +TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+60 0x0+a0 R +0x1000 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + + Section to Segment mapping: + +Segment Sections... +@@ -53,6 +54,7 @@ Program Headers: + +03 +.tdata .dynamic .got .got.plt * + +04 +.dynamic * + +05 +.tdata .tbss * ++ +06 + + + Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 9 entries: + Offset +Info +Type +Sym.Value +Sym. Name +--- binutils-2.22/ld/testsuite/ld-i386/tlsbindesc.rd ++++ binutils-2.22/ld/testsuite/ld-i386/tlsbindesc.rd +@@ -42,6 +42,7 @@ Program Headers: + +LOAD.* + +DYNAMIC.* + +TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+60 0x0+a0 R +0x1000 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + + Section to Segment mapping: + +Segment Sections... +@@ -51,6 +52,7 @@ Program Headers: + +03 +.tdata .dynamic .got .got.plt * + +04 +.dynamic * + +05 +.tdata .tbss * ++ +06 + + + Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 9 entries: + Offset +Info +Type +Sym.Value +Sym. Name +--- binutils-2.22/ld/testsuite/ld-i386/tlsdesc.rd ++++ binutils-2.22/ld/testsuite/ld-i386/tlsdesc.rd +@@ -39,6 +39,7 @@ Program Headers: + +LOAD.* + +DYNAMIC.* + +TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+60 0x0+80 R +0x1 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + + Section to Segment mapping: + +Segment Sections... +@@ -46,6 +47,7 @@ Program Headers: + +01 +.tdata .dynamic .got .got.plt * + +02 +.dynamic * + +03 +.tdata .tbss * ++ +04 + + + Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 20 entries: + Offset +Info +Type +Sym.Value +Sym. Name +--- binutils-2.22/ld/testsuite/ld-i386/tlsdesc.sd ++++ binutils-2.22/ld/testsuite/ld-i386/tlsdesc.sd +@@ -14,7 +14,7 @@ Contents of section .got: + [0-9a-f]+ 6c000000 b4ffffff 4c000000 68000000 .* + [0-9a-f]+ 50000000 70000000 00000000 bcffffff .* + Contents of section .got.plt: +- [0-9a-f]+ b0150000 00000000 00000000 00000000 .* ++ [0-9a-f]+ [a-f]0150000 00000000 00000000 00000000 .* + [0-9a-f]+ 20000000 00000000 60000000 00000000 .* + [0-9a-f]+ 00000000 00000000 00000000 00000000 .* + [0-9a-f]+ 40000000 +.* +--- binutils-2.22/ld/testsuite/ld-i386/tlsgdesc.rd ++++ binutils-2.22/ld/testsuite/ld-i386/tlsgdesc.rd +@@ -36,12 +36,14 @@ Program Headers: + +LOAD.* + +LOAD.* + +DYNAMIC.* ++ +PAX_FLAGS.* + + Section to Segment mapping: + +Segment Sections... + +00 +.hash .dynsym .dynstr .rel.dyn .rel.plt .plt .text * + +01 +.dynamic .got .got.plt * + +02 +.dynamic * ++ +03 + + + Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 8 entries: + Offset +Info +Type +Sym.Value +Sym. Name +--- binutils-2.22/ld/testsuite/ld-i386/tlsnopic.rd ++++ binutils-2.22/ld/testsuite/ld-i386/tlsnopic.rd +@@ -37,6 +37,7 @@ Program Headers: + +LOAD.* + +DYNAMIC.* + +TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+ 0x0+24 R +0x1 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + + Section to Segment mapping: + +Segment Sections... +@@ -44,6 +45,7 @@ Program Headers: + +01 +.dynamic .got .got.plt * + +02 +.dynamic * + +03 +.tbss * ++ +04 + + + Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 20 entries: + Offset +Info +Type +Sym.Value +Sym. Name +--- binutils-2.22/ld/testsuite/ld-i386/tlspic.rd ++++ binutils-2.22/ld/testsuite/ld-i386/tlspic.rd +@@ -40,6 +40,7 @@ Program Headers: + +LOAD.* + +DYNAMIC.* + +TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+60 0x0+80 R +0x1 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + + Section to Segment mapping: + +Segment Sections... +@@ -47,6 +48,7 @@ Program Headers: + +01 +.tdata .dynamic .got .got.plt * + +02 +.dynamic * + +03 +.tdata .tbss * ++ +04 + + + Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 26 entries: + Offset +Info +Type +Sym.Value +Sym. Name +--- binutils-2.22/ld/testsuite/ld-ia64/merge1.d ++++ binutils-2.22/ld/testsuite/ld-ia64/merge1.d +@@ -4,7 +4,7 @@ + #objdump: -d + + #... +-0+1e0 <.text>: ++[a-f0-9]+ <.text>: + [ ]*[a-f0-9]+: 0b 60 80 02 00 24 [MMI] addl r12=32,r1;; + [ ]*[a-f0-9]+: c0 c0 04 00 48 00 addl r12=24,r1 + [ ]*[a-f0-9]+: 00 00 04 00 nop.i 0x0;; +--- binutils-2.22/ld/testsuite/ld-ia64/merge2.d ++++ binutils-2.22/ld/testsuite/ld-ia64/merge2.d +@@ -4,7 +4,7 @@ + #objdump: -d + + #... +-0+1e0 <.text>: ++[a-f0-9]+ <.text>: + [ ]*[a-f0-9]+: 0b 60 80 02 00 24 [MMI] addl r12=32,r1;; + [ ]*[a-f0-9]+: c0 c0 04 00 48 00 addl r12=24,r1 + [ ]*[a-f0-9]+: 00 00 04 00 nop.i 0x0;; +--- binutils-2.22/ld/testsuite/ld-ia64/merge3.d ++++ binutils-2.22/ld/testsuite/ld-ia64/merge3.d +@@ -4,7 +4,7 @@ + #objdump: -d + + #... +-0+210 <.text>: ++[a-f0-9]+ <.text>: + [ ]*[a-f0-9]+: 0b 60 80 02 00 24 [MMI] addl r12=32,r1;; + [ ]*[a-f0-9]+: c0 40 05 00 48 00 addl r12=40,r1 + [ ]*[a-f0-9]+: 00 00 04 00 nop.i 0x0;; +--- binutils-2.22/ld/testsuite/ld-ia64/merge4.d ++++ binutils-2.22/ld/testsuite/ld-ia64/merge4.d +@@ -4,7 +4,7 @@ + #objdump: -d + + #... +-0+240 <.text>: ++[a-f0-9]+ <.text>: + [ ]*[a-f0-9]+: 0b 60 80 02 00 24 [MMI] addl r12=32,r1;; + [ ]*[a-f0-9]+: c0 40 05 00 48 00 addl r12=40,r1 + [ ]*[a-f0-9]+: 00 00 04 00 nop.i 0x0;; +--- binutils-2.22/ld/testsuite/ld-ia64/merge5.d ++++ binutils-2.22/ld/testsuite/ld-ia64/merge5.d +@@ -4,7 +4,7 @@ + #objdump: -d + + #... +-0+270 <.text>: ++[a-f0-9]+ <.text>: + [ ]*[a-f0-9]+: 0b 60 80 02 00 24 [MMI] addl r12=32,r1;; + [ ]*[a-f0-9]+: c0 40 05 00 48 00 addl r12=40,r1 + [ ]*[a-f0-9]+: 00 00 04 00 nop.i 0x0;; +--- binutils-2.22/ld/testsuite/ld-ia64/tlsbin.rd ++++ binutils-2.22/ld/testsuite/ld-ia64/tlsbin.rd +@@ -36,13 +36,14 @@ There are [0-9]+ program headers, starting at offset [0-9]+ + + Program Headers: + +Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align +- +PHDR +0x0+40 0x40+40 0x40+40 0x0+188 0x0+188 R E 0x8 +- +INTERP +0x0+1c8 0x40+1c8 0x40+1c8 0x[0-9a-f]+ 0x[0-9a-f]+ R +0x1 ++ +PHDR +0x0+40 0x40+40 0x40+40 (0x[0-9a-f]+) \1 R E 0x8 ++ +INTERP +0x0+([0-9a-f]+) (0x40+\1) \2 0x[0-9a-f]+ 0x[0-9a-f]+ R +0x1 + .*Requesting program interpreter.* + +LOAD +0x0+ 0x40+ 0x40+ 0x0+1[0-9a-f]+ 0x0+1[0-9a-f]+ R E 0x10000 + +LOAD +0x0+1[0-9a-f]+ 0x60+1[0-9a-f]+ 0x60+1[0-9a-f]+ 0x0+0[0-9a-f]+ 0x0+0[0-9a-f]+ RW +0x10000 + +DYNAMIC +0x0+1[0-9a-f]+ 0x60+1[0-9a-f]+ 0x60+1[0-9a-f]+ 0x0+150 0x0+150 RW +0x8 + +TLS +0x0+1[0-9a-f]+ 0x60+1[0-9a-f]+ 0x60+1[0-9a-f]+ 0x0+60 0x0+a0 R +0x4 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + +IA_64_UNWIND .* R +0x8 + #... + +--- binutils-2.22/ld/testsuite/ld-ia64/tlspic.rd ++++ binutils-2.22/ld/testsuite/ld-ia64/tlspic.rd +@@ -40,6 +40,7 @@ Program Headers: + +LOAD +0x0+1[0-9a-f]+ 0x0+11[0-9a-f]+ 0x0+11[0-9a-f]+ 0x0+0[0-9a-f]+ 0x0+0[0-9a-f]+ RW +0x10000 + +DYNAMIC +0x0+1[0-9a-f]+ 0x0+11[0-9a-f]+ 0x0+11[0-9a-f]+ 0x0+140 0x0+140 RW +0x8 + +TLS +0x0+1[0-9a-f]+ 0x0+11[0-9a-f]+ 0x0+11[0-9a-f]+ 0x0+60 0x0+80 R +0x4 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + +IA_64_UNWIND +0x0+1[0-9a-f]+ 0x0+1[0-9a-f]+ 0x0+1[0-9a-f]+ 0x0+18 0x0+18 R +0x8 + #... + +--- binutils-2.22/ld/testsuite/ld-mips-elf/multi-got-no-shared.d ++++ binutils-2.22/ld/testsuite/ld-mips-elf/multi-got-no-shared.d +@@ -8,9 +8,9 @@ + .*: +file format.* + + Disassembly of section .text: +-004000b0 <[^>]*> 3c1c0043 lui gp,0x43 +-004000b4 <[^>]*> 279c9ff0 addiu gp,gp,-24592 +-004000b8 <[^>]*> afbc0008 sw gp,8(sp) ++004000d0 <[^>]*> 3c1c0043 lui gp,0x43 ++004000d4 <[^>]*> 279c9ff0 addiu gp,gp,-24592 ++004000d8 <[^>]*> afbc0008 sw gp,8(sp) + #... + 00408d60 <[^>]*> 3c1c0043 lui gp,0x43 + 00408d64 <[^>]*> 279c2c98 addiu gp,gp,11416 +--- binutils-2.22/ld/testsuite/ld-mips-elf/pic-and-nonpic-3a.sd ++++ binutils-2.22/ld/testsuite/ld-mips-elf/pic-and-nonpic-3a.sd +@@ -1,7 +1,7 @@ + + Elf file type is DYN (Shared object file) + Entry point .* +-There are 5 program headers, starting at offset .* ++There are [0-9] program headers, starting at offset .* + + Program Headers: + * Type * Offset * VirtAddr * PhysAddr * FileSiz * MemSiz * Flg * Align +@@ -9,6 +9,7 @@ Program Headers: + * LOAD * [^ ]+ * 0x0+00000 * 0x0+00000 [^ ]+ * [^ ]+ * R E * 0x.* + * LOAD * [^ ]+ * 0x0+10000 * 0x0+10000 [^ ]+ * [^ ]+ * RW * 0x.* + * DYNAMIC * [^ ]+ * 0x0+00400 * 0x0+00400 .* ++ * PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + * NULL * .* + + *Section to Segment mapping: +@@ -18,3 +19,4 @@ Program Headers: + *0*2 * .data .got * + *0*3 * .dynamic * + *0*4 * ++ *0*5 * +--- binutils-2.22/ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.sd ++++ binutils-2.22/ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.sd +@@ -1,7 +1,7 @@ + + Elf file type is EXEC (Executable file) + Entry point 0x44000 +-There are 8 program headers, starting at offset .* ++There are [0-9] program headers, starting at offset .* + + Program Headers: + * Type * Offset * VirtAddr * PhysAddr * FileSiz * MemSiz * Flg * Align +@@ -13,6 +13,7 @@ Program Headers: + * LOAD * [^ ]+ * 0x0+80000 * 0x0+80000 [^ ]+ * [^ ]+ * RW * 0x.* + * LOAD * [^ ]+ * 0x0+a0000 * 0x0+a0000 [^ ]+ * [^ ]+ * RW * 0x.* + * DYNAMIC * [^ ]+ * 0x0+42000 * 0x0+42000 .* ++ * PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + * NULL * .* + + *Section to Segment mapping: +@@ -25,3 +26,4 @@ Program Headers: + *0*5 *.got .data * + *0*6 *.dynamic * + *0*7 * ++ *0*8 * +--- binutils-2.22/ld/testsuite/ld-mips-elf/pic-and-nonpic-4b.sd ++++ binutils-2.22/ld/testsuite/ld-mips-elf/pic-and-nonpic-4b.sd +@@ -1,7 +1,7 @@ + + Elf file type is EXEC (Executable file) + Entry point 0x44000 +-There are 8 program headers, starting at offset .* ++There are [0-9] program headers, starting at offset .* + + Program Headers: + * Type * Offset * VirtAddr * PhysAddr * FileSiz * MemSiz * Flg * Align +@@ -13,6 +13,7 @@ Program Headers: + * LOAD * [^ ]+ * 0x0+80000 * 0x0+80000 [^ ]+ * [^ ]+ * RW * 0x.* + * LOAD * [^ ]+ * 0x0+a0000 * 0x0+a0000 [^ ]+ * [^ ]+ * RW * 0x.* + * DYNAMIC * [^ ]+ * 0x0+42000 * 0x0+42000 .* ++ * PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + * NULL * .* + + *Section to Segment mapping: +@@ -25,3 +26,4 @@ Program Headers: + *0*5 * .got .data .bss * + *0*6 * .dynamic * + *0*7 * ++ *0*8 * +--- binutils-2.22/ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.sd ++++ binutils-2.22/ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.sd +@@ -1,7 +1,7 @@ + + Elf file type is EXEC (Executable file) + Entry point 0x44000 +-There are 8 program headers, starting at offset .* ++There are [0-9] program headers, starting at offset .* + + Program Headers: + * Type * Offset * VirtAddr * PhysAddr * FileSiz * MemSiz * Flg * Align +@@ -13,6 +13,7 @@ Program Headers: + * LOAD * [^ ]+ * 0x0+80000 * 0x0+80000 [^ ]+ * [^ ]+ * RW * 0x.* + * LOAD * [^ ]+ * 0x0+a0000 * 0x0+a0000 [^ ]+ * [^ ]+ * RW * 0x.* + * DYNAMIC * [^ ]+ * 0x0+42000 * 0x0+42000 .* ++ * PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + * NULL * .* + + *Section to Segment mapping: +@@ -25,3 +26,4 @@ Program Headers: + *0*5 * .got .data .bss * + *0*6 * .dynamic * + *0*7 * ++ *0*8 * +--- binutils-2.22/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.sd ++++ binutils-2.22/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.sd +@@ -1,7 +1,7 @@ + + Elf file type is EXEC (Executable file) + Entry point 0x44000 +-There are 8 program headers, starting at offset .* ++There are [0-9] program headers, starting at offset .* + + Program Headers: + * Type * Offset * VirtAddr * PhysAddr * FileSiz * MemSiz * Flg * Align +@@ -13,6 +13,7 @@ Program Headers: + * LOAD * [^ ]+ * 0x0+80000 * 0x0+80000 [^ ]+ * [^ ]+ * RW * 0x.* + * LOAD * [^ ]+ * 0x0+a0000 * 0x0+a0000 [^ ]+ * [^ ]+ * RW * 0x.* + * DYNAMIC * [^ ]+ * 0x0+42000 * 0x0+42000 .* ++ * PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + * NULL * .* + + *Section to Segment mapping: +@@ -25,3 +26,4 @@ Program Headers: + *0*5 * .got .data .bss * + *0*6 * .dynamic * + *0*7 * ++ *0*8 * +--- binutils-2.22/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.sd ++++ binutils-2.22/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.sd +@@ -1,7 +1,7 @@ + + Elf file type is EXEC (Executable file) + Entry point 0x44000 +-There are 7 program headers, starting at offset .* ++There are [0-9] program headers, starting at offset .* + + Program Headers: + * Type * Offset * VirtAddr * PhysAddr * FileSiz * MemSiz * Flg * Align +@@ -12,6 +12,7 @@ Program Headers: + * LOAD * [^ ]+ * 0x0+80000 * 0x0+80000 [^ ]+ * [^ ]+ * RW * 0x.* + * LOAD * [^ ]+ * 0x0+a0000 * 0x0+a0000 [^ ]+ * [^ ]+ * RW * 0x.* + * DYNAMIC * [^ ]+ * 0x0+42000 * 0x0+42000 .* ++ * PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + * NULL * .* + + *Section to Segment mapping: +@@ -23,3 +24,4 @@ Program Headers: + *0*4 * .got .data .bss * + *0*5 * .dynamic * + *0*6 * ++ *0*7 * +--- binutils-2.22/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.sd ++++ binutils-2.22/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.sd +@@ -1,7 +1,7 @@ + + Elf file type is EXEC (Executable file) + Entry point 0x44000 +-There are 8 program headers, starting at offset .* ++There are [0-9] program headers, starting at offset .* + + Program Headers: + * Type * Offset * VirtAddr * PhysAddr * FileSiz * MemSiz * Flg * Align +@@ -13,6 +13,7 @@ Program Headers: + * LOAD * [^ ]+ * 0x0+80000 * 0x0+80000 [^ ]+ * [^ ]+ * RW * 0x.* + * LOAD * [^ ]+ * 0x0+a0000 * 0x0+a0000 [^ ]+ * [^ ]+ * RW * 0x.* + * DYNAMIC * [^ ]+ * 0x0+42000 * 0x0+42000 .* ++ * PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + * NULL * .* + + *Section to Segment mapping: +@@ -25,3 +26,4 @@ Program Headers: + *0*5 * .got .data .bss * + *0*6 * .dynamic * + *0*7 * ++ *0*8 * +--- binutils-2.22/ld/testsuite/ld-mips-elf/rel32-n32.d ++++ binutils-2.22/ld/testsuite/ld-mips-elf/rel32-n32.d +@@ -10,6 +10,6 @@ Relocation section '.rel.dyn' at offset .* contains 2 entries: + [0-9a-f ]+R_MIPS_REL32 + + Hex dump of section '.text': +- 0x000002e0 00000000 00000000 00000000 00000000 ................ +- 0x000002f0 000002f0 00000000 00000000 00000000 ................ + 0x00000300 00000000 00000000 00000000 00000000 ................ ++ 0x00000310 00000310 00000000 00000000 00000000 ................ ++ 0x00000320 00000000 00000000 00000000 00000000 ................ +--- binutils-2.22/ld/testsuite/ld-mips-elf/rel32-o32.d ++++ binutils-2.22/ld/testsuite/ld-mips-elf/rel32-o32.d +@@ -10,6 +10,6 @@ Relocation section '.rel.dyn' at offset .* contains 2 entries: + [0-9a-f ]+R_MIPS_REL32 + + Hex dump of section '.text': +- 0x000002e0 00000000 00000000 00000000 00000000 ................ +- 0x000002f0 000002f0 00000000 00000000 00000000 ................ + 0x00000300 00000000 00000000 00000000 00000000 ................ ++ 0x00000310 00000310 00000000 00000000 00000000 ................ ++ 0x00000320 00000000 00000000 00000000 00000000 ................ +--- binutils-2.22/ld/testsuite/ld-mips-elf/rel64.d ++++ binutils-2.22/ld/testsuite/ld-mips-elf/rel64.d +@@ -14,6 +14,6 @@ Relocation section '.rel.dyn' at offset .* contains 2 entries: + +Type3: R_MIPS_NONE + + Hex dump of section '.text': +- 0x00000450 00000000 00000000 00000000 00000000 ................ +- 0x00000460 00000000 00000460 00000000 00000000 ................ +- 0x00000470 00000000 00000000 00000000 00000000 ................ ++ 0x00000490 00000000 00000000 00000000 00000000 ................ ++ 0x000004a0 00000000 000004a0 00000000 00000000 ................ ++ 0x000004b0 00000000 00000000 00000000 00000000 ................ +--- binutils-2.22/ld/testsuite/ld-mips-elf/tlsbin-o32.d ++++ binutils-2.22/ld/testsuite/ld-mips-elf/tlsbin-o32.d +@@ -2,42 +2,42 @@ + + Disassembly of section .text: + +-004000d0 <__start>: +- 4000d0: 3c1c0fc0 lui gp,0xfc0 +- 4000d4: 279c7f30 addiu gp,gp,32560 +- 4000d8: 0399e021 addu gp,gp,t9 +- 4000dc: 27bdfff0 addiu sp,sp,-16 +- 4000e0: afbe0008 sw s8,8(sp) +- 4000e4: 03a0f021 move s8,sp +- 4000e8: afbc0000 sw gp,0(sp) +- 4000ec: 8f998018 lw t9,-32744(gp) +- 4000f0: 27848028 addiu a0,gp,-32728 +- 4000f4: 0320f809 jalr t9 +- 4000f8: 00000000 nop +- 4000fc: 8fdc0000 lw gp,0(s8) +- 400100: 00000000 nop +- 400104: 8f998018 lw t9,-32744(gp) +- 400108: 27848020 addiu a0,gp,-32736 +- 40010c: 0320f809 jalr t9 +- 400110: 00000000 nop +- 400114: 8fdc0000 lw gp,0(s8) +- 400118: 00401021 move v0,v0 +- 40011c: 3c030000 lui v1,0x0 +- 400120: 24638000 addiu v1,v1,-32768 +- 400124: 00621821 addu v1,v1,v0 +- 400128: 7c02283b rdhwr v0,$5 +- 40012c: 8f83801c lw v1,-32740(gp) +- 400130: 00000000 nop +- 400134: 00621821 addu v1,v1,v0 +- 400138: 7c02283b rdhwr v0,$5 +- 40013c: 3c030000 lui v1,0x0 +- 400140: 24639004 addiu v1,v1,-28668 +- 400144: 00621821 addu v1,v1,v0 +- 400148: 03c0e821 move sp,s8 +- 40014c: 8fbe0008 lw s8,8(sp) +- 400150: 03e00008 jr ra +- 400154: 27bd0010 addiu sp,sp,16 ++00400[0-9a-f]{3} <__start>: ++ 400[0-9a-f]{3}: 3c1c0fc0 lui gp,0xfc0 ++ 400[0-9a-f]{3}: 279c7f30 addiu gp,gp,32560 ++ 400[0-9a-f]{3}: 0399e021 addu gp,gp,t9 ++ 400[0-9a-f]{3}: 27bdfff0 addiu sp,sp,-16 ++ 400[0-9a-f]{3}: afbe0008 sw s8,8(sp) ++ 400[0-9a-f]{3}: 03a0f021 move s8,sp ++ 400[0-9a-f]{3}: afbc0000 sw gp,0(sp) ++ 400[0-9a-f]{3}: 8f998018 lw t9,-32744(gp) ++ 400[0-9a-f]{3}: 27848028 addiu a0,gp,-32728 ++ 400[0-9a-f]{3}: 0320f809 jalr t9 ++ 400[0-9a-f]{3}: 00000000 nop ++ 400[0-9a-f]{3}: 8fdc0000 lw gp,0(s8) ++ 400[0-9a-f]{3}: 00000000 nop ++ 400[0-9a-f]{3}: 8f998018 lw t9,-32744(gp) ++ 400[0-9a-f]{3}: 27848020 addiu a0,gp,-32736 ++ 400[0-9a-f]{3}: 0320f809 jalr t9 ++ 400[0-9a-f]{3}: 00000000 nop ++ 400[0-9a-f]{3}: 8fdc0000 lw gp,0(s8) ++ 400[0-9a-f]{3}: 00401021 move v0,v0 ++ 400[0-9a-f]{3}: 3c030000 lui v1,0x0 ++ 400[0-9a-f]{3}: 24638000 addiu v1,v1,-32768 ++ 400[0-9a-f]{3}: 00621821 addu v1,v1,v0 ++ 400[0-9a-f]{3}: 7c02283b rdhwr v0,$5 ++ 400[0-9a-f]{3}: 8f83801c lw v1,-32740(gp) ++ 400[0-9a-f]{3}: 00000000 nop ++ 400[0-9a-f]{3}: 00621821 addu v1,v1,v0 ++ 400[0-9a-f]{3}: 7c02283b rdhwr v0,$5 ++ 400[0-9a-f]{3}: 3c030000 lui v1,0x0 ++ 400[0-9a-f]{3}: 24639004 addiu v1,v1,-28668 ++ 400[0-9a-f]{3}: 00621821 addu v1,v1,v0 ++ 400[0-9a-f]{3}: 03c0e821 move sp,s8 ++ 400[0-9a-f]{3}: 8fbe0008 lw s8,8(sp) ++ 400[0-9a-f]{3}: 03e00008 jr ra ++ 400[0-9a-f]{3}: 27bd0010 addiu sp,sp,16 + +-00400158 <__tls_get_addr>: +- 400158: 03e00008 jr ra +- 40015c: 00000000 nop ++00400[0-9a-f]{3} <__tls_get_addr>: ++ 400[0-9a-f]{3}: 03e00008 jr ra ++ 400[0-9a-f]{3}: 00000000 nop +--- binutils-2.22/ld/testsuite/ld-powerpc/tls.d ++++ binutils-2.22/ld/testsuite/ld-powerpc/tls.d +@@ -9,45 +9,45 @@ + + Disassembly of section .text: + +-0+100000e8 <_start>: +- 100000e8: 3c 6d 00 00 addis r3,r13,0 +- 100000ec: 60 00 00 00 nop +- 100000f0: 38 63 90 78 addi r3,r3,-28552 +- 100000f4: 3c 6d 00 00 addis r3,r13,0 +- 100000f8: 60 00 00 00 nop +- 100000fc: 38 63 10 00 addi r3,r3,4096 +- 10000100: 3c 6d 00 00 addis r3,r13,0 +- 10000104: 60 00 00 00 nop +- 10000108: 38 63 90 40 addi r3,r3,-28608 +- 1000010c: 3c 6d 00 00 addis r3,r13,0 +- 10000110: 60 00 00 00 nop +- 10000114: 38 63 10 00 addi r3,r3,4096 +- 10000118: 39 23 80 48 addi r9,r3,-32696 +- 1000011c: 3d 23 00 00 addis r9,r3,0 +- 10000120: 81 49 80 50 lwz r10,-32688(r9) +- 10000124: e9 22 80 10 ld r9,-32752(r2) +- 10000128: 7d 49 18 2a ldx r10,r9,r3 +- 1000012c: 3d 2d 00 00 addis r9,r13,0 +- 10000130: a1 49 90 60 lhz r10,-28576(r9) +- 10000134: 89 4d 90 68 lbz r10,-28568(r13) +- 10000138: 3d 2d 00 00 addis r9,r13,0 +- 1000013c: 99 49 90 70 stb r10,-28560(r9) +- 10000140: 3c 6d 00 00 addis r3,r13,0 +- 10000144: 60 00 00 00 nop +- 10000148: 38 63 90 00 addi r3,r3,-28672 +- 1000014c: 3c 6d 00 00 addis r3,r13,0 +- 10000150: 60 00 00 00 nop +- 10000154: 38 63 10 00 addi r3,r3,4096 +- 10000158: f9 43 80 08 std r10,-32760(r3) +- 1000015c: 3d 23 00 00 addis r9,r3,0 +- 10000160: 91 49 80 10 stw r10,-32752(r9) +- 10000164: e9 22 80 08 ld r9,-32760(r2) +- 10000168: 7d 49 19 2a stdx r10,r9,r3 +- 1000016c: 3d 2d 00 00 addis r9,r13,0 +- 10000170: b1 49 90 60 sth r10,-28576(r9) +- 10000174: e9 4d 90 2a lwa r10,-28632(r13) +- 10000178: 3d 2d 00 00 addis r9,r13,0 +- 1000017c: a9 49 90 30 lha r10,-28624(r9) ++0+10000[0-9a-f]{3} <_start>: ++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0 ++ 10000[0-9a-f]{3}: 60 00 00 00 nop ++ 10000[0-9a-f]{3}: 38 63 90 78 addi r3,r3,-28552 ++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0 ++ 10000[0-9a-f]{3}: 60 00 00 00 nop ++ 10000[0-9a-f]{3}: 38 63 10 00 addi r3,r3,4096 ++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0 ++ 10000[0-9a-f]{3}: 60 00 00 00 nop ++ 10000[0-9a-f]{3}: 38 63 90 40 addi r3,r3,-28608 ++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0 ++ 10000[0-9a-f]{3}: 60 00 00 00 nop ++ 10000[0-9a-f]{3}: 38 63 10 00 addi r3,r3,4096 ++ 10000[0-9a-f]{3}: 39 23 80 48 addi r9,r3,-32696 ++ 10000[0-9a-f]{3}: 3d 23 00 00 addis r9,r3,0 ++ 10000[0-9a-f]{3}: 81 49 80 50 lwz r10,-32688(r9) ++ 10000[0-9a-f]{3}: e9 22 80 10 ld r9,-32752(r2) ++ 10000[0-9a-f]{3}: 7d 49 18 2a ldx r10,r9,r3 ++ 10000[0-9a-f]{3}: 3d 2d 00 00 addis r9,r13,0 ++ 10000[0-9a-f]{3}: a1 49 90 60 lhz r10,-28576(r9) ++ 10000[0-9a-f]{3}: 89 4d 90 68 lbz r10,-28568(r13) ++ 10000[0-9a-f]{3}: 3d 2d 00 00 addis r9,r13,0 ++ 10000[0-9a-f]{3}: 99 49 90 70 stb r10,-28560(r9) ++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0 ++ 10000[0-9a-f]{3}: 60 00 00 00 nop ++ 10000[0-9a-f]{3}: 38 63 90 00 addi r3,r3,-28672 ++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0 ++ 10000[0-9a-f]{3}: 60 00 00 00 nop ++ 10000[0-9a-f]{3}: 38 63 10 00 addi r3,r3,4096 ++ 10000[0-9a-f]{3}: f9 43 80 08 std r10,-32760(r3) ++ 10000[0-9a-f]{3}: 3d 23 00 00 addis r9,r3,0 ++ 10000[0-9a-f]{3}: 91 49 80 10 stw r10,-32752(r9) ++ 10000[0-9a-f]{3}: e9 22 80 08 ld r9,-32760(r2) ++ 10000[0-9a-f]{3}: 7d 49 19 2a stdx r10,r9,r3 ++ 10000[0-9a-f]{3}: 3d 2d 00 00 addis r9,r13,0 ++ 10000[0-9a-f]{3}: b1 49 90 60 sth r10,-28576(r9) ++ 10000[0-9a-f]{3}: e9 4d 90 2a lwa r10,-28632(r13) ++ 10000[0-9a-f]{3}: 3d 2d 00 00 addis r9,r13,0 ++ 10000[0-9a-f]{3}: a9 49 90 30 lha r10,-28624(r9) + +-0+10000180 <.__tls_get_addr>: +- 10000180: 4e 80 00 20 blr ++0+10000[0-9a-f]{3} <.__tls_get_addr>: ++ 10000[0-9a-f]{3}: 4e 80 00 20 blr +--- binutils-2.22/ld/testsuite/ld-powerpc/tls.g ++++ binutils-2.22/ld/testsuite/ld-powerpc/tls.g +@@ -8,5 +8,5 @@ + .*: +file format elf64-powerpc + + Contents of section .got: +- 100101e0 00000000 100181e0 ffffffff ffff8018 .* +- 100101f0 ffffffff ffff8058 .* ++ 10010([0-9a-f]{3}) 00000000 10018\1 ffffffff ffff8018 .* ++ 10010[0-9a-f]{3} ffffffff ffff8058 .* +--- binutils-2.22/ld/testsuite/ld-powerpc/tls32.d ++++ binutils-2.22/ld/testsuite/ld-powerpc/tls32.d +@@ -9,42 +9,42 @@ + + Disassembly of section .text: + +-0+1800094 <_start>: +- 1800094: 3c 62 00 00 addis r3,r2,0 +- 1800098: 38 63 90 3c addi r3,r3,-28612 +- 180009c: 3c 62 00 00 addis r3,r2,0 +- 18000a0: 38 63 10 00 addi r3,r3,4096 +- 18000a4: 3c 62 00 00 addis r3,r2,0 +- 18000a8: 38 63 90 20 addi r3,r3,-28640 +- 18000ac: 3c 62 00 00 addis r3,r2,0 +- 18000b0: 38 63 10 00 addi r3,r3,4096 +- 18000b4: 39 23 80 24 addi r9,r3,-32732 +- 18000b8: 3d 23 00 00 addis r9,r3,0 +- 18000bc: 81 49 80 28 lwz r10,-32728(r9) +- 18000c0: 3d 22 00 00 addis r9,r2,0 +- 18000c4: a1 49 90 30 lhz r10,-28624(r9) +- 18000c8: 89 42 90 34 lbz r10,-28620(r2) +- 18000cc: 3d 22 00 00 addis r9,r2,0 +- 18000d0: 99 49 90 38 stb r10,-28616(r9) +- 18000d4: 3c 62 00 00 addis r3,r2,0 +- 18000d8: 38 63 90 00 addi r3,r3,-28672 +- 18000dc: 3c 62 00 00 addis r3,r2,0 +- 18000e0: 38 63 10 00 addi r3,r3,4096 +- 18000e4: 91 43 80 04 stw r10,-32764(r3) +- 18000e8: 3d 23 00 00 addis r9,r3,0 +- 18000ec: 91 49 80 08 stw r10,-32760(r9) +- 18000f0: 3d 22 00 00 addis r9,r2,0 +- 18000f4: b1 49 90 30 sth r10,-28624(r9) +- 18000f8: a1 42 90 14 lhz r10,-28652(r2) +- 18000fc: 3d 22 00 00 addis r9,r2,0 +- 1800100: a9 49 90 18 lha r10,-28648(r9) ++0+1800[0-9a-f]{3} <_start>: ++ 1800[0-9a-f]{3}: 3c 62 00 00 addis r3,r2,0 ++ 1800[0-9a-f]{3}: 38 63 90 3c addi r3,r3,-28612 ++ 1800[0-9a-f]{3}: 3c 62 00 00 addis r3,r2,0 ++ 1800[0-9a-f]{3}: 38 63 10 00 addi r3,r3,4096 ++ 1800[0-9a-f]{3}: 3c 62 00 00 addis r3,r2,0 ++ 1800[0-9a-f]{3}: 38 63 90 20 addi r3,r3,-28640 ++ 1800[0-9a-f]{3}: 3c 62 00 00 addis r3,r2,0 ++ 1800[0-9a-f]{3}: 38 63 10 00 addi r3,r3,4096 ++ 1800[0-9a-f]{3}: 39 23 80 24 addi r9,r3,-32732 ++ 1800[0-9a-f]{3}: 3d 23 00 00 addis r9,r3,0 ++ 1800[0-9a-f]{3}: 81 49 80 28 lwz r10,-32728(r9) ++ 1800[0-9a-f]{3}: 3d 22 00 00 addis r9,r2,0 ++ 1800[0-9a-f]{3}: a1 49 90 30 lhz r10,-28624(r9) ++ 1800[0-9a-f]{3}: 89 42 90 34 lbz r10,-28620(r2) ++ 1800[0-9a-f]{3}: 3d 22 00 00 addis r9,r2,0 ++ 1800[0-9a-f]{3}: 99 49 90 38 stb r10,-28616(r9) ++ 1800[0-9a-f]{3}: 3c 62 00 00 addis r3,r2,0 ++ 1800[0-9a-f]{3}: 38 63 90 00 addi r3,r3,-28672 ++ 1800[0-9a-f]{3}: 3c 62 00 00 addis r3,r2,0 ++ 1800[0-9a-f]{3}: 38 63 10 00 addi r3,r3,4096 ++ 1800[0-9a-f]{3}: 91 43 80 04 stw r10,-32764(r3) ++ 1800[0-9a-f]{3}: 3d 23 00 00 addis r9,r3,0 ++ 1800[0-9a-f]{3}: 91 49 80 08 stw r10,-32760(r9) ++ 1800[0-9a-f]{3}: 3d 22 00 00 addis r9,r2,0 ++ 1800[0-9a-f]{3}: b1 49 90 30 sth r10,-28624(r9) ++ 1800[0-9a-f]{3}: a1 42 90 14 lhz r10,-28652(r2) ++ 1800[0-9a-f]{3}: 3d 22 00 00 addis r9,r2,0 ++ 1800[0-9a-f]{3}: a9 49 90 18 lha r10,-28648(r9) + +-0+1800104 <__tls_get_addr>: +- 1800104: 4e 80 00 20 blr ++0+1800[0-9a-f]{3} <__tls_get_addr>: ++ 1800[0-9a-f]{3}: 4e 80 00 20 blr + Disassembly of section .got: + +-0+1810128 <_GLOBAL_OFFSET_TABLE_-0x4>: +- 1810128: 4e 80 00 21 blrl ++0+1810[0-9a-f]{3} <_GLOBAL_OFFSET_TABLE_-0x4>: ++ 1810[0-9a-f]{3}: 4e 80 00 21 blrl + +-0+181012c <_GLOBAL_OFFSET_TABLE_>: ++0+1810[0-9a-f]{3} <_GLOBAL_OFFSET_TABLE_>: + ... +--- binutils-2.22/ld/testsuite/ld-powerpc/tls32.g ++++ binutils-2.22/ld/testsuite/ld-powerpc/tls32.g +@@ -8,4 +8,4 @@ + .*: +file format elf32-powerpc + + Contents of section .got: +- 1810128 4e800021 00000000 00000000 00000000 .* ++ 18101[0-9a-f]{2} 4e800021 00000000 00000000 00000000 .* +--- binutils-2.22/ld/testsuite/ld-powerpc/tls32.t ++++ binutils-2.22/ld/testsuite/ld-powerpc/tls32.t +@@ -8,5 +8,5 @@ + .*: +file format elf32-powerpc + + Contents of section .tdata: +- 1810108 12345678 23456789 3456789a 456789ab .* +- 1810118 56789abc 6789abcd 789abcde 00c0ffee .* ++ 18101[0-9a-f]{2} 12345678 23456789 3456789a 456789ab .* ++ 18101[0-9a-f]{2} 56789abc 6789abcd 789abcde 00c0ffee .* +--- binutils-2.22/ld/testsuite/ld-powerpc/tlsexe32.d ++++ binutils-2.22/ld/testsuite/ld-powerpc/tlsexe32.d +@@ -44,4 +44,4 @@ Disassembly of section .got: + .*: 4e 80 00 21 blrl + + .* <_GLOBAL_OFFSET_TABLE_>: +-.*: 01 81 02 b8 00 00 00 00 00 00 00 00 .* ++.*: 01 81 02 [bd]8 00 00 00 00 00 00 00 00 .* +--- binutils-2.22/ld/testsuite/ld-powerpc/tlsexe32.g ++++ binutils-2.22/ld/testsuite/ld-powerpc/tlsexe32.g +@@ -8,4 +8,4 @@ + + Contents of section .got: + .* 00000000 00000000 00000000 4e800021 .* +-.* 018102b8 00000000 00000000 .* ++.* 018102[bd]8 00000000 00000000 .* +--- binutils-2.22/ld/testsuite/ld-powerpc/tlsexe32.r ++++ binutils-2.22/ld/testsuite/ld-powerpc/tlsexe32.r +@@ -33,13 +33,14 @@ There are [0-9]+ program headers, starting at offset [0-9]+ + + Program Headers: + +Type +Offset +VirtAddr +PhysAddr +FileSiz MemSiz +Flg Align +- +PHDR +0x000034 0x01800034 0x01800034 0x000c0 0x000c0 R E 0x4 +- +INTERP +0x0000f4 0x018000f4 0x018000f4 0x00011 0x00011 R +0x1 ++ +PHDR +0x000034 0x01800034 0x01800034 (0x000[0-9a-f]{2}) \1 R E 0x4 ++ +INTERP +0x000([0-9a-f]{3}) 0x01800\1 0x01800\1 0x00011 0x00011 R +0x1 + +[Requesting program interpreter: .*] + +LOAD .* R E 0x10000 + +LOAD .* RWE 0x10000 + +DYNAMIC .* RW +0x4 + +TLS .* 0x0001c 0x00038 R +0x4 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + + Section to Segment mapping: + +Segment Sections... +@@ -49,6 +50,7 @@ Program Headers: + +03 +.tdata .dynamic .got .plt + +04 +.dynamic + +05 +.tdata .tbss ++ +06 + + + Relocation section '.rela.dyn' at offset .* contains 2 entries: + Offset +Info +Type +Sym. Value +Symbol's Name + Addend +--- binutils-2.22/ld/testsuite/ld-powerpc/tlsmark.d ++++ binutils-2.22/ld/testsuite/ld-powerpc/tlsmark.d +@@ -9,29 +9,29 @@ + + Disassembly of section .text: + +-0+100000e8 <_start>: +- 100000e8: 48 00 00 18 b 10000100 <_start+0x18> +- 100000ec: 60 00 00 00 nop +- 100000f0: 38 63 90 00 addi r3,r3,-28672 +- 100000f4: e8 83 00 00 ld r4,0(r3) +- 100000f8: 3c 6d 00 00 addis r3,r13,0 +- 100000fc: 48 00 00 0c b 10000108 <_start+0x20> +- 10000100: 3c 6d 00 00 addis r3,r13,0 +- 10000104: 4b ff ff e8 b 100000ec <_start+0x4> +- 10000108: 60 00 00 00 nop +- 1000010c: 38 63 10 00 addi r3,r3,4096 +- 10000110: e8 83 80 00 ld r4,-32768(r3) +- 10000114: 3c 6d 00 00 addis r3,r13,0 +- 10000118: 48 00 00 0c b 10000124 <_start+0x3c> +- 1000011c: 3c 6d 00 00 addis r3,r13,0 +- 10000120: 48 00 00 14 b 10000134 <_start+0x4c> +- 10000124: 60 00 00 00 nop +- 10000128: 38 63 90 04 addi r3,r3,-28668 +- 1000012c: e8 a3 00 00 ld r5,0(r3) +- 10000130: 4b ff ff ec b 1000011c <_start+0x34> +- 10000134: 60 00 00 00 nop +- 10000138: 38 63 10 00 addi r3,r3,4096 +- 1000013c: e8 a3 80 04 ld r5,-32764(r3) ++0+10000[0-9a-f]{3} <_start>: ++ 10000[0-9a-f]{3}: 48 00 00 18 b 10000[0-9a-f]{3} <_start+0x18> ++ 10000[0-9a-f]{3}: 60 00 00 00 nop ++ 10000[0-9a-f]{3}: 38 63 90 00 addi r3,r3,-28672 ++ 10000[0-9a-f]{3}: e8 83 00 00 ld r4,0(r3) ++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0 ++ 10000[0-9a-f]{3}: 48 00 00 0c b 10000[0-9a-f]{3} <_start+0x20> ++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0 ++ 10000[0-9a-f]{3}: 4b ff ff e8 b 10000[0-9a-f]{3} <_start+0x4> ++ 10000[0-9a-f]{3}: 60 00 00 00 nop ++ 10000[0-9a-f]{3}: 38 63 10 00 addi r3,r3,4096 ++ 10000[0-9a-f]{3}: e8 83 80 00 ld r4,-32768(r3) ++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0 ++ 10000[0-9a-f]{3}: 48 00 00 0c b 10000[0-9a-f]{3} <_start+0x3c> ++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0 ++ 10000[0-9a-f]{3}: 48 00 00 14 b 10000[0-9a-f]{3} <_start+0x4c> ++ 10000[0-9a-f]{3}: 60 00 00 00 nop ++ 10000[0-9a-f]{3}: 38 63 90 04 addi r3,r3,-28668 ++ 10000[0-9a-f]{3}: e8 a3 00 00 ld r5,0(r3) ++ 10000[0-9a-f]{3}: 4b ff ff ec b 10000[0-9a-f]{3} <_start+0x34> ++ 10000[0-9a-f]{3}: 60 00 00 00 nop ++ 10000[0-9a-f]{3}: 38 63 10 00 addi r3,r3,4096 ++ 10000[0-9a-f]{3}: e8 a3 80 04 ld r5,-32764(r3) + +-0+10000140 <.__tls_get_addr>: +- 10000140: 4e 80 00 20 blr ++0+10000[0-9a-f]{3} <.__tls_get_addr>: ++ 10000[0-9a-f]{3}: 4e 80 00 20 blr +--- binutils-2.22/ld/testsuite/ld-powerpc/tlsmark32.d ++++ binutils-2.22/ld/testsuite/ld-powerpc/tlsmark32.d +@@ -9,17 +9,17 @@ + + Disassembly of section .text: + +-0+1800094 <_start>: +- 1800094: 48 00 00 14 b 18000a8 <_start+0x14> +- 1800098: 38 63 90 00 addi r3,r3,-28672 +- 180009c: 80 83 00 00 lwz r4,0(r3) +- 18000a0: 3c 62 00 00 addis r3,r2,0 +- 18000a4: 48 00 00 0c b 18000b0 <_start+0x1c> +- 18000a8: 3c 62 00 00 addis r3,r2,0 +- 18000ac: 4b ff ff ec b 1800098 <_start+0x4> +- 18000b0: 38 63 10 00 addi r3,r3,4096 +- 18000b4: 80 83 80 00 lwz r4,-32768(r3) ++0+18000[0-9a-f]{2} <_start>: ++ 18000[0-9a-f]{2}: 48 00 00 14 b 18000[0-9a-f]{2} <_start+0x14> ++ 18000[0-9a-f]{2}: 38 63 90 00 addi r3,r3,-28672 ++ 18000[0-9a-f]{2}: 80 83 00 00 lwz r4,0(r3) ++ 18000[0-9a-f]{2}: 3c 62 00 00 addis r3,r2,0 ++ 18000[0-9a-f]{2}: 48 00 00 0c b 18000[0-9a-f]{2} <_start+0x1c> ++ 18000[0-9a-f]{2}: 3c 62 00 00 addis r3,r2,0 ++ 18000[0-9a-f]{2}: 4b ff ff ec b 18000[0-9a-f]{2} <_start+0x4> ++ 18000[0-9a-f]{2}: 38 63 10 00 addi r3,r3,4096 ++ 18000[0-9a-f]{2}: 80 83 80 00 lwz r4,-32768(r3) + +-0+18000b8 <__tls_get_addr>: +- 18000b8: 4e 80 00 20 blr +-#pass +\ No newline at end of file ++0+18000[0-9a-f]{2} <__tls_get_addr>: ++ 18000[0-9a-f]{2}: 4e 80 00 20 blr ++#pass +--- binutils-2.22/ld/testsuite/ld-powerpc/tlsopt1.d ++++ binutils-2.22/ld/testsuite/ld-powerpc/tlsopt1.d +@@ -9,17 +9,17 @@ + + Disassembly of section .text: + +-0+100000e8 <.__tls_get_addr>: +- 100000e8: 4e 80 00 20 blr ++0+10000[0-9a-f]{3} <.__tls_get_addr>: ++ 10000[0-9a-f]{3}: 4e 80 00 20 blr + + Disassembly of section .no_opt1: + +-0+100000ec <.no_opt1>: +- 100000ec: 38 62 80 08 addi r3,r2,-32760 +- 100000f0: 2c 24 00 00 cmpdi r4,0 +- 100000f4: 41 82 00 10 beq- .* +- 100000f8: 4b ff ff f1 bl 100000e8 <.__tls_get_addr> +- 100000fc: 60 00 00 00 nop +- 10000100: 48 00 00 0c b .* +- 10000104: 4b ff ff e5 bl 100000e8 <.__tls_get_addr> +- 10000108: 60 00 00 00 nop ++0+10000[0-9a-f]{3} <.no_opt1>: ++ 10000[0-9a-f]{3}: 38 62 80 08 addi r3,r2,-32760 ++ 10000[0-9a-f]{3}: 2c 24 00 00 cmpdi r4,0 ++ 10000[0-9a-f]{3}: 41 82 00 10 beq- .* ++ 10000[0-9a-f]{3}: 4b ff ff f1 bl 10000[0-9a-f]{3} <.__tls_get_addr> ++ 10000[0-9a-f]{3}: 60 00 00 00 nop ++ 10000[0-9a-f]{3}: 48 00 00 0c b .* ++ 10000[0-9a-f]{3}: 4b ff ff e5 bl 10000[0-9a-f]{3} <.__tls_get_addr> ++ 10000[0-9a-f]{3}: 60 00 00 00 nop +--- binutils-2.22/ld/testsuite/ld-powerpc/tlsopt1_32.d ++++ binutils-2.22/ld/testsuite/ld-powerpc/tlsopt1_32.d +@@ -9,16 +9,16 @@ + + Disassembly of section .text: + +-0+1800094 <__tls_get_addr>: +- 1800094: 4e 80 00 20 blr ++0+18000[0-9a-f]{2} <__tls_get_addr>: ++ 18000[0-9a-f]{2}: 4e 80 00 20 blr + + Disassembly of section .no_opt1: + +-0+1800098 <.no_opt1>: +- 1800098: 38 6d ff f4 addi r3,r13,-12 +- 180009c: 2c 04 00 00 cmpwi r4,0 +- 18000a0: 41 82 00 0c beq- .* +- 18000a4: 4b ff ff f1 bl 1800094 <__tls_get_addr> +- 18000a8: 48 00 00 08 b .* +- 18000ac: 4b ff ff e9 bl 1800094 <__tls_get_addr> ++0+18000[0-9a-f]{2} <.no_opt1>: ++ 18000[0-9a-f]{2}: 38 6d ff f4 addi r3,r13,-12 ++ 18000[0-9a-f]{2}: 2c 04 00 00 cmpwi r4,0 ++ 18000[0-9a-f]{2}: 41 82 00 0c beq- .* ++ 18000[0-9a-f]{2}: 4b ff ff f1 bl 18000[0-9a-f]{2} <__tls_get_addr> ++ 18000[0-9a-f]{2}: 48 00 00 08 b .* ++ 18000[0-9a-f]{2}: 4b ff ff e9 bl 18000[0-9a-f]{2} <__tls_get_addr> + #pass +--- binutils-2.22/ld/testsuite/ld-powerpc/tlsopt2.d ++++ binutils-2.22/ld/testsuite/ld-powerpc/tlsopt2.d +@@ -9,15 +9,15 @@ + + Disassembly of section .text: + +-0+100000e8 <.__tls_get_addr>: +- 100000e8: 4e 80 00 20 blr ++0+10000[0-9a-f]{3} <.__tls_get_addr>: ++ 10000[0-9a-f]{3}: 4e 80 00 20 blr + + Disassembly of section .no_opt2: + +-0+100000ec <.no_opt2>: +- 100000ec: 38 62 80 08 addi r3,r2,-32760 +- 100000f0: 2c 24 00 00 cmpdi r4,0 +- 100000f4: 41 82 00 08 beq- .* +- 100000f8: 38 62 80 08 addi r3,r2,-32760 +- 100000fc: 4b ff ff ed bl 100000e8 <.__tls_get_addr> +- 10000100: 60 00 00 00 nop ++0+10000[0-9a-f]{3} <.no_opt2>: ++ 10000[0-9a-f]{3}: 38 62 80 08 addi r3,r2,-32760 ++ 10000[0-9a-f]{3}: 2c 24 00 00 cmpdi r4,0 ++ 10000[0-9a-f]{3}: 41 82 00 08 beq- .* ++ 10000[0-9a-f]{3}: 38 62 80 08 addi r3,r2,-32760 ++ 10000[0-9a-f]{3}: 4b ff ff ed bl 10000[0-9a-f]{3} <.__tls_get_addr> ++ 10000[0-9a-f]{3}: 60 00 00 00 nop +--- binutils-2.22/ld/testsuite/ld-powerpc/tlsopt2_32.d ++++ binutils-2.22/ld/testsuite/ld-powerpc/tlsopt2_32.d +@@ -9,15 +9,15 @@ + + Disassembly of section .text: + +-0+1800094 <__tls_get_addr>: +- 1800094: 4e 80 00 20 blr ++0+18000[0-9a-f]{2} <__tls_get_addr>: ++ 18000[0-9a-f]{2}: 4e 80 00 20 blr + + Disassembly of section .no_opt2: + +-0+1800098 <.no_opt2>: +- 1800098: 38 6d ff f4 addi r3,r13,-12 +- 180009c: 2c 04 00 00 cmpwi r4,0 +- 18000a0: 41 82 00 08 beq- .* +- 18000a4: 38 6d ff f4 addi r3,r13,-12 +- 18000a8: 4b ff ff ed bl 1800094 <__tls_get_addr> ++0+18000[0-9a-f]{2} <.no_opt2>: ++ 18000[0-9a-f]{2}: 38 6d ff f4 addi r3,r13,-12 ++ 18000[0-9a-f]{2}: 2c 04 00 00 cmpwi r4,0 ++ 18000[0-9a-f]{2}: 41 82 00 08 beq- .* ++ 18000[0-9a-f]{2}: 38 6d ff f4 addi r3,r13,-12 ++ 18000[0-9a-f]{2}: 4b ff ff ed bl 18000[0-9a-f]{2} <__tls_get_addr> + #pass +--- binutils-2.22/ld/testsuite/ld-powerpc/tlsopt3.d ++++ binutils-2.22/ld/testsuite/ld-powerpc/tlsopt3.d +@@ -9,18 +9,18 @@ + + Disassembly of section .text: + +-00000000100000e8 <.__tls_get_addr>: +- 100000e8: 4e 80 00 20 blr ++0000000010000[0-9a-f]{3} <.__tls_get_addr>: ++ 10000[0-9a-f]{3}: 4e 80 00 20 blr + + Disassembly of section .no_opt3: + +-00000000100000ec <.no_opt3>: +- 100000ec: 38 62 80 08 addi r3,r2,-32760 +- 100000f0: 48 00 00 0c b .* +- 100000f4: 38 62 80 18 addi r3,r2,-32744 +- 100000f8: 48 00 00 10 b .* +- 100000fc: 4b ff ff ed bl 100000e8 <.__tls_get_addr> +- 10000100: 60 00 00 00 nop +- 10000104: 48 00 00 0c b .* +- 10000108: 4b ff ff e1 bl 100000e8 <.__tls_get_addr> +- 1000010c: 60 00 00 00 nop ++0000000010000[0-9a-f]{3} <.no_opt3>: ++ 10000[0-9a-f]{3}: 38 62 80 08 addi r3,r2,-32760 ++ 10000[0-9a-f]{3}: 48 00 00 0c b .* ++ 10000[0-9a-f]{3}: 38 62 80 18 addi r3,r2,-32744 ++ 10000[0-9a-f]{3}: 48 00 00 10 b .* ++ 10000[0-9a-f]{3}: 4b ff ff ed bl 10000[0-9a-f]{3} <.__tls_get_addr> ++ 10000[0-9a-f]{3}: 60 00 00 00 nop ++ 10000[0-9a-f]{3}: 48 00 00 0c b .* ++ 10000[0-9a-f]{3}: 4b ff ff e1 bl 10000[0-9a-f]{3} <.__tls_get_addr> ++ 10000[0-9a-f]{3}: 60 00 00 00 nop +--- binutils-2.22/ld/testsuite/ld-powerpc/tlsopt3_32.d ++++ binutils-2.22/ld/testsuite/ld-powerpc/tlsopt3_32.d +@@ -9,17 +9,17 @@ + + Disassembly of section .text: + +-0+1800094 <__tls_get_addr>: +- 1800094: 4e 80 00 20 blr ++0+18000[0-9a-f]{2} <__tls_get_addr>: ++ 18000[0-9a-f]{2}: 4e 80 00 20 blr + + Disassembly of section .no_opt3: + +-0+1800098 <.no_opt3>: +- 1800098: 38 6d ff ec addi r3,r13,-20 +- 180009c: 48 00 00 0c b .* +- 18000a0: 38 6d ff f4 addi r3,r13,-12 +- 18000a4: 48 00 00 0c b .* +- 18000a8: 4b ff ff ed bl 1800094 <__tls_get_addr> +- 18000ac: 48 00 00 08 b .* +- 18000b0: 4b ff ff e5 bl 1800094 <__tls_get_addr> ++0+18000[0-9a-f]{2} <.no_opt3>: ++ 18000[0-9a-f]{2}: 38 6d ff ec addi r3,r13,-20 ++ 18000[0-9a-f]{2}: 48 00 00 0c b .* ++ 18000[0-9a-f]{2}: 38 6d ff f4 addi r3,r13,-12 ++ 18000[0-9a-f]{2}: 48 00 00 0c b .* ++ 18000[0-9a-f]{2}: 4b ff ff ed bl 18000[0-9a-f]{2} <__tls_get_addr> ++ 18000[0-9a-f]{2}: 48 00 00 08 b .* ++ 18000[0-9a-f]{2}: 4b ff ff e5 bl 18000[0-9a-f]{2} <__tls_get_addr> + #pass +--- binutils-2.22/ld/testsuite/ld-powerpc/tlsopt4.d ++++ binutils-2.22/ld/testsuite/ld-powerpc/tlsopt4.d +@@ -9,40 +9,40 @@ + + Disassembly of section .text: + +-0+100000e8 <.__tls_get_addr>: +- 100000e8: 4e 80 00 20 blr ++0+10000[0-9a-f]{3} <.__tls_get_addr>: ++ 10000[0-9a-f]{3}: 4e 80 00 20 blr + + Disassembly of section .opt1: + +-0+100000ec <.opt1>: +- 100000ec: 3c 6d 00 00 addis r3,r13,0 +- 100000f0: 2c 24 00 00 cmpdi r4,0 +- 100000f4: 41 82 00 10 beq- .* +- 100000f8: 60 00 00 00 nop +- 100000fc: 38 63 90 10 addi r3,r3,-28656 +- 10000100: 48 00 00 0c b .* +- 10000104: 60 00 00 00 nop +- 10000108: 38 63 90 10 addi r3,r3,-28656 ++0+10000[0-9a-f]{3} <.opt1>: ++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0 ++ 10000[0-9a-f]{3}: 2c 24 00 00 cmpdi r4,0 ++ 10000[0-9a-f]{3}: 41 82 00 10 beq- .* ++ 10000[0-9a-f]{3}: 60 00 00 00 nop ++ 10000[0-9a-f]{3}: 38 63 90 10 addi r3,r3,-28656 ++ 10000[0-9a-f]{3}: 48 00 00 0c b .* ++ 10000[0-9a-f]{3}: 60 00 00 00 nop ++ 10000[0-9a-f]{3}: 38 63 90 10 addi r3,r3,-28656 + + Disassembly of section .opt2: + +-0+1000010c <.opt2>: +- 1000010c: 3c 6d 00 00 addis r3,r13,0 +- 10000110: 2c 24 00 00 cmpdi r4,0 +- 10000114: 41 82 00 08 beq- .* +- 10000118: 3c 6d 00 00 addis r3,r13,0 +- 1000011c: 60 00 00 00 nop +- 10000120: 38 63 90 10 addi r3,r3,-28656 ++0+10000[0-9a-f]{3} <.opt2>: ++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0 ++ 10000[0-9a-f]{3}: 2c 24 00 00 cmpdi r4,0 ++ 10000[0-9a-f]{3}: 41 82 00 08 beq- .* ++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0 ++ 10000[0-9a-f]{3}: 60 00 00 00 nop ++ 10000[0-9a-f]{3}: 38 63 90 10 addi r3,r3,-28656 + + Disassembly of section .opt3: + +-0+10000124 <.opt3>: +- 10000124: 3c 6d 00 00 addis r3,r13,0 +- 10000128: 48 00 00 0c b .* +- 1000012c: 3c 6d 00 00 addis r3,r13,0 +- 10000130: 48 00 00 10 b .* +- 10000134: 60 00 00 00 nop +- 10000138: 38 63 90 10 addi r3,r3,-28656 +- 1000013c: 48 00 00 0c b .* +- 10000140: 60 00 00 00 nop +- 10000144: 38 63 90 08 addi r3,r3,-28664 ++0+10000[0-9a-f]{3} <.opt3>: ++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0 ++ 10000[0-9a-f]{3}: 48 00 00 0c b .* ++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0 ++ 10000[0-9a-f]{3}: 48 00 00 10 b .* ++ 10000[0-9a-f]{3}: 60 00 00 00 nop ++ 10000[0-9a-f]{3}: 38 63 90 10 addi r3,r3,-28656 ++ 10000[0-9a-f]{3}: 48 00 00 0c b .* ++ 10000[0-9a-f]{3}: 60 00 00 00 nop ++ 10000[0-9a-f]{3}: 38 63 90 08 addi r3,r3,-28664 +--- binutils-2.22/ld/testsuite/ld-powerpc/tlsopt4_32.d ++++ binutils-2.22/ld/testsuite/ld-powerpc/tlsopt4_32.d +@@ -9,36 +9,36 @@ + + Disassembly of section .text: + +-0+1800094 <__tls_get_addr>: +- 1800094: 4e 80 00 20 blr ++0+18000[0-9a-f]{2} <__tls_get_addr>: ++ 18000[0-9a-f]{2}: 4e 80 00 20 blr + + Disassembly of section .opt1: + +-0+1800098 <.opt1>: +- 1800098: 3c 62 00 00 addis r3,r2,0 +- 180009c: 2c 04 00 00 cmpwi r4,0 +- 18000a0: 41 82 00 0c beq- .* +- 18000a4: 38 63 90 10 addi r3,r3,-28656 +- 18000a8: 48 00 00 08 b .* +- 18000ac: 38 63 90 10 addi r3,r3,-28656 ++0+18000[0-9a-f]{2} <.opt1>: ++ 18000[0-9a-f]{2}: 3c 62 00 00 addis r3,r2,0 ++ 18000[0-9a-f]{2}: 2c 04 00 00 cmpwi r4,0 ++ 18000[0-9a-f]{2}: 41 82 00 0c beq- .* ++ 18000[0-9a-f]{2}: 38 63 90 10 addi r3,r3,-28656 ++ 18000[0-9a-f]{2}: 48 00 00 08 b .* ++ 18000[0-9a-f]{2}: 38 63 90 10 addi r3,r3,-28656 + + Disassembly of section .opt2: + +-0+18000b0 <.opt2>: +- 18000b0: 3c 62 00 00 addis r3,r2,0 +- 18000b4: 2c 04 00 00 cmpwi r4,0 +- 18000b8: 41 82 00 08 beq- .* +- 18000bc: 3c 62 00 00 addis r3,r2,0 +- 18000c0: 38 63 90 10 addi r3,r3,-28656 ++0+18000[0-9a-f]{2} <.opt2>: ++ 18000[0-9a-f]{2}: 3c 62 00 00 addis r3,r2,0 ++ 18000[0-9a-f]{2}: 2c 04 00 00 cmpwi r4,0 ++ 18000[0-9a-f]{2}: 41 82 00 08 beq- .* ++ 18000[0-9a-f]{2}: 3c 62 00 00 addis r3,r2,0 ++ 18000[0-9a-f]{2}: 38 63 90 10 addi r3,r3,-28656 + + Disassembly of section .opt3: + +-0+18000c4 <.opt3>: +- 18000c4: 3c 62 00 00 addis r3,r2,0 +- 18000c8: 48 00 00 0c b .* +- 18000cc: 3c 62 00 00 addis r3,r2,0 +- 18000d0: 48 00 00 0c b .* +- 18000d4: 38 63 90 10 addi r3,r3,-28656 +- 18000d8: 48 00 00 08 b .* +- 18000dc: 38 63 90 08 addi r3,r3,-28664 ++0+18000[0-9a-f]{2} <.opt3>: ++ 18000[0-9a-f]{2}: 3c 62 00 00 addis r3,r2,0 ++ 18000[0-9a-f]{2}: 48 00 00 0c b .* ++ 18000[0-9a-f]{2}: 3c 62 00 00 addis r3,r2,0 ++ 18000[0-9a-f]{2}: 48 00 00 0c b .* ++ 18000[0-9a-f]{2}: 38 63 90 10 addi r3,r3,-28656 ++ 18000[0-9a-f]{2}: 48 00 00 08 b .* ++ 18000[0-9a-f]{2}: 38 63 90 08 addi r3,r3,-28664 + #pass +--- binutils-2.22/ld/testsuite/ld-powerpc/tlsso32.d ++++ binutils-2.22/ld/testsuite/ld-powerpc/tlsso32.d +@@ -42,5 +42,5 @@ Disassembly of section .got: + .* <.got>: + ... + .*: 4e 80 00 21 blrl +-.*: 00 01 03 ec .* ++.*: 00 01 [0-9a-f]{2} [0-9a-f]{2} .* + ... +--- binutils-2.22/ld/testsuite/ld-powerpc/tlsso32.g ++++ binutils-2.22/ld/testsuite/ld-powerpc/tlsso32.g +@@ -9,5 +9,5 @@ + Contents of section .got: + .* 00000000 00000000 00000000 00000000 .* + .* 00000000 00000000 00000000 00000000 .* +-.* 00000000 4e800021 000103ec 00000000 .* ++.* 00000000 4e800021 00010[0-9a-f]{3} 00000000 .* + .* 00000000 .* +--- binutils-2.22/ld/testsuite/ld-powerpc/tlsso32.r ++++ binutils-2.22/ld/testsuite/ld-powerpc/tlsso32.r +@@ -35,6 +35,7 @@ Program Headers: + +LOAD .* RWE 0x10000 + +DYNAMIC .* RW +0x4 + +TLS .* 0x0+1c 0x0+38 R +0x4 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + + Section to Segment mapping: + +Segment Sections... +@@ -42,6 +43,7 @@ Program Headers: + +01 +.tdata .dynamic .got .plt + +02 +.dynamic + +03 +.tdata .tbss ++ +04 + + + Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 18 entries: + Offset +Info +Type +Sym. Value +Symbol's Name + Addend +@@ -52,9 +54,9 @@ Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 18 entries: + [0-9a-f ]+R_PPC_TPREL16 +0+30 +le0 + 0 + [0-9a-f ]+R_PPC_TPREL16_HA +0+34 +le1 + 0 + [0-9a-f ]+R_PPC_TPREL16_LO +0+34 +le1 + 0 +-[0-9a-f ]+R_PPC_TPREL16 +0+103d0 +.tdata + 103e4 +-[0-9a-f ]+R_PPC_TPREL16_HA +0+103d0 +.tdata + 103e8 +-[0-9a-f ]+R_PPC_TPREL16_LO +0+103d0 +.tdata + 103e8 ++[0-9a-f ]+R_PPC_TPREL16 +0+103[df]0 +.tdata + 10[0-9a-f]{3} ++[0-9a-f ]+R_PPC_TPREL16_HA +0+103[df]0 +.tdata + 10[0-9a-f]{3} ++[0-9a-f ]+R_PPC_TPREL16_LO +0+103[df]0 +.tdata + 10[0-9a-f]{3} + [0-9a-f ]+R_PPC_DTPMOD32 +0+ + [0-9a-f ]+R_PPC_DTPREL32 +0+ + [0-9a-f ]+R_PPC_DTPMOD32 +0+ +--- binutils-2.22/ld/testsuite/ld-powerpc/tlstoc.g ++++ binutils-2.22/ld/testsuite/ld-powerpc/tlstoc.g +@@ -8,8 +8,8 @@ + .*: +file format elf64-powerpc + + Contents of section .got: +- 100101a0 00000000 00000001 00000000 00000000 .* +- 100101b0 00000000 00000001 00000000 00000000 .* +- 100101c0 00000000 00000001 00000000 00000000 .* +- 100101d0 00000000 00000001 00000000 00000000 .* +- 100101e0 ffffffff ffff8060 00000000 00000000 .* ++ 10010[0-9a-f]{3} 00000000 00000001 00000000 00000000 .* ++ 10010[0-9a-f]{3} 00000000 00000001 00000000 00000000 .* ++ 10010[0-9a-f]{3} 00000000 00000001 00000000 00000000 .* ++ 10010[0-9a-f]{3} 00000000 00000001 00000000 00000000 .* ++ 10010[0-9a-f]{3} ffffffff ffff8060 00000000 00000000 .* +--- binutils-2.22/ld/testsuite/ld-powerpc/tlstoc.t ++++ binutils-2.22/ld/testsuite/ld-powerpc/tlstoc.t +@@ -8,7 +8,7 @@ + .*: +file format elf64-powerpc + + Contents of section .tdata: +- 10010148 00c0ffee 00000000 12345678 9abcdef0 .* +- 10010158 23456789 abcdef01 3456789a bcdef012 .* +- 10010168 456789ab cdef0123 56789abc def01234 .* +- 10010178 6789abcd ef012345 789abcde f0123456 .* ++ 10010180 00c0ffee 00000000 12345678 9abcdef0 .* ++ 10010190 23456789 abcdef01 3456789a bcdef012 .* ++ 100101a0 456789ab cdef0123 56789abc def01234 .* ++ 100101b0 6789abcd ef012345 789abcde f0123456 .* +--- binutils-2.22/ld/testsuite/ld-powerpc/tlstocso.g ++++ binutils-2.22/ld/testsuite/ld-powerpc/tlstocso.g +@@ -7,7 +7,7 @@ + .*: +file format elf64-powerpc + + Contents of section .got: +-.* 00000000 000186c0 00000000 00000000 .* ++.* 00000000 000186f8 00000000 00000000 .* + .* 00000000 00000000 00000000 00000000 .* + .* 00000000 00000000 00000000 00000000 .* + .* 00000000 00000000 00000000 00000000 .* +--- binutils-2.22/ld/testsuite/ld-s390/tlsbin.rd ++++ binutils-2.22/ld/testsuite/ld-s390/tlsbin.rd +@@ -36,13 +36,14 @@ There are [0-9]+ program headers, starting at offset [0-9]+ + + Program Headers: + +Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align +- +PHDR +0x0+34 0x0+400034 0x0+400034 0x0+c0 0x0+c0 R E 0x4 +- +INTERP +0x0+f4 0x0+4000f4 0x0+4000f4 0x0+11 0x0+11 R +0x1 ++ +PHDR +0x0+34 0x0+400034 0x0+400034 0x0+e0 0x0+e0 R E 0x4 ++ +INTERP +0x0+114 0x0+400114 0x0+400114 0x0+11 0x0+11 R +0x1 + .*Requesting program interpreter.* + +LOAD .* R E 0x1000 + +LOAD .* RW +0x1000 + +DYNAMIC .* RW +0x4 + +TLS .* 0x0+60 0x0+a0 R +0x20 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + + Section to Segment mapping: + +Segment Sections... +@@ -52,6 +53,7 @@ Program Headers: + +03 +.tdata .dynamic .got * + +04 +.dynamic * + +05 +.tdata .tbss * ++ +06 + + + Relocation section '.rela.dyn' at offset .* contains 4 entries: + Offset +Info +Type +Sym.Value +Sym. Name + Addend +--- binutils-2.22/ld/testsuite/ld-s390/tlsbin_64.rd ++++ binutils-2.22/ld/testsuite/ld-s390/tlsbin_64.rd +@@ -36,13 +36,14 @@ There are [0-9]+ program headers, starting at offset [0-9]+ + + Program Headers: + +Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align +- +PHDR +0x0+40 0x0+80000040 0x0+80000040 0x0+150 0x0+150 R E 0x8 +- +INTERP +0x0+190 0x0+80000190 0x0+80000190 0x0+11 0x0+11 R +0x1 ++ +PHDR +0x0+40 0x0+80000040 0x0+80000040 0x0+188 0x0+188 R E 0x8 ++ +INTERP +0x0+1c8 0x0+800001c8 0x0+800001c8 0x0+11 0x0+11 R +0x1 + .*Requesting program interpreter.* + +LOAD .* R E 0x1000 + +LOAD .* RW +0x1000 + +DYNAMIC .* RW +0x8 + +TLS .* 0x0+60 0x0+a0 R +0x20 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + + Section to Segment mapping: + +Segment Sections... +@@ -52,6 +53,7 @@ Program Headers: + +03 +.tdata .dynamic .got * + +04 +.dynamic * + +05 +.tdata .tbss * ++ +06 + + + Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 4 entries: + +Offset +Info +Type +Symbol's Value +Symbol's Name + Addend +--- binutils-2.22/ld/testsuite/ld-s390/tlspic.rd ++++ binutils-2.22/ld/testsuite/ld-s390/tlspic.rd +@@ -39,6 +39,7 @@ Program Headers: + +LOAD .* RW +0x1000 + +DYNAMIC .* RW +0x4 + +TLS .* 0x0+60 0x0+80 R +0x20 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + + Section to Segment mapping: + +Segment Sections... +@@ -46,6 +47,7 @@ Program Headers: + +01 +.tdata .dynamic .got + +02 +.dynamic + +03 +.tdata .tbss ++ +04 + + + Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 14 entries: + Offset +Info +Type +Sym.Value +Sym. Name + Addend +--- binutils-2.22/ld/testsuite/ld-s390/tlspic_64.rd ++++ binutils-2.22/ld/testsuite/ld-s390/tlspic_64.rd +@@ -39,6 +39,7 @@ Program Headers: + +LOAD .* RW +0x1000 + +DYNAMIC .* RW +0x8 + +TLS .* 0x0+60 0x0+80 R +0x20 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + + Section to Segment mapping: + +Segment Sections... +@@ -46,6 +47,7 @@ Program Headers: + +01 +.tdata .dynamic .got * + +02 +.dynamic * + +03 +.tdata .tbss * ++ +04 + + + Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 14 entries: + +Offset +Info +Type +Symbol's Value +Symbol's Name + Addend +--- binutils-2.22/ld/testsuite/ld-scripts/empty-aligned.d ++++ binutils-2.22/ld/testsuite/ld-scripts/empty-aligned.d +@@ -8,7 +8,9 @@ + Program Headers: + +Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg +Align + +LOAD +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ [RWE ]+ +0x[0-9a-f]+ ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + + Section to Segment mapping: + +Segment Sections... + +00 +.text ++ +01 + +--- binutils-2.22/ld/testsuite/ld-sh/tlsbin-2.d ++++ binutils-2.22/ld/testsuite/ld-sh/tlsbin-2.d +@@ -44,6 +44,7 @@ Program Headers: + +LOAD.* + +DYNAMIC.* + +TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+18 0x0+28 R +0x4 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + + Section to Segment mapping: + +Segment Sections... +@@ -53,6 +54,7 @@ Program Headers: + +03 +.tdata .dynamic .got * + +04 +.dynamic * + +05 +.tdata .tbss * ++ +06 + + + Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 4 entries: + Offset +Info +Type +Sym.Value +Sym. Name + Addend +--- binutils-2.22/ld/testsuite/ld-sh/tlspic-2.d ++++ binutils-2.22/ld/testsuite/ld-sh/tlspic-2.d +@@ -32,7 +32,7 @@ Key to Flags: + + Elf file type is DYN (Shared object file) + Entry point 0x[0-9a-f]+ +-There are 4 program headers, starting at offset [0-9]+ ++There are [0-9] program headers, starting at offset [0-9]+ + + Program Headers: + +Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align +@@ -40,6 +40,7 @@ Program Headers: + +LOAD.* + +DYNAMIC.* + +TLS .* 0x0+18 0x0+20 R +0x4 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + + Section to Segment mapping: + +Segment Sections... +@@ -47,6 +48,7 @@ Program Headers: + +01 +.tdata .dynamic .got * + +02 +.dynamic * + +03 +.tdata .tbss * ++ +04 + + + Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 10 entries: + Offset +Info +Type +Sym.Value +Sym. Name + Addend +--- binutils-2.22/ld/testsuite/ld-sparc/gotop32.rd ++++ binutils-2.22/ld/testsuite/ld-sparc/gotop32.rd +@@ -31,6 +31,7 @@ Program Headers: + +LOAD +0x0+ 0x0+ 0x0+ 0x0+2000 0x0+2000 R E 0x10000 + +LOAD +0x0+2000 0x0+12000 0x0+12000 0x0+2000 0x0+2000 RW +0x10000 + +DYNAMIC +0x0+2000 0x0+12000 0x0+12000 0x0+70 0x0+70 RW +0x4 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + #... + + Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 1 entries: +--- binutils-2.22/ld/testsuite/ld-sparc/gotop64.rd ++++ binutils-2.22/ld/testsuite/ld-sparc/gotop64.rd +@@ -31,6 +31,7 @@ Program Headers: + +LOAD +0x0+ 0x0+ 0x0+ 0x0+2000 0x0+2000 R E 0x100000 + +LOAD +0x0+2000 0x0+102000 0x0+102000 0x0+2000 0x0+2000 RW +0x100000 + +DYNAMIC +0x0+2000 0x0+102000 0x0+102000 0x0+e0 0x0+e0 RW +0x8 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + #... + + Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 1 entries: +--- binutils-2.22/ld/testsuite/ld-sparc/tlssunbin32.rd ++++ binutils-2.22/ld/testsuite/ld-sparc/tlssunbin32.rd +@@ -30,13 +30,14 @@ There are [0-9]+ program headers, starting at offset [0-9]+ + + Program Headers: + +Type +Offset +VirtAddr +PhysAddr +FileSiz MemSiz +Flg Align +- +PHDR +0x0+34 0x0+10034 0x0+10034 0x0+c0 0x0+c0 R E 0x4 +- +INTERP +0x0+f4 0x0+100f4 0x0+100f4 0x0+11 0x0+11 R +0x1 ++ +PHDR +0x0+34 0x0+10034 0x0+10034 (0x[0-9a-f]+) \1 R E 0x4 ++ +INTERP +(0x[0-9a-f]+ ){3}0x0+11 0x0+11 R +0x1 + .*Requesting program interpreter.* + +LOAD .* R E 0x10000 + +LOAD .* RW +0x10000 + +DYNAMIC .* RW +0x4 + +TLS .* 0x0+1060 0x0+10a0 R +0x4 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + #... + + Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 4 entries: +--- binutils-2.22/ld/testsuite/ld-sparc/tlssunbin64.rd ++++ binutils-2.22/ld/testsuite/ld-sparc/tlssunbin64.rd +@@ -30,13 +30,14 @@ There are [0-9]+ program headers, starting at offset [0-9]+ + + Program Headers: + +Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align +- +PHDR +0x0+40 0x0+100040 0x0+100040 0x0+150 0x0+150 R E 0x8 +- +INTERP +0x0+190 0x0+100190 0x0+100190 0x0+19 0x0+19 R +0x1 ++ +PHDR +0x0+40 0x0+100040 0x0+100040 (0x[0-9a-f]+) \1 R E 0x8 ++ +INTERP +0x0+([0-9a-f]+) (0x0+10+\1) \2 0x0+19 0x0+19 R +0x1 + .*Requesting program interpreter.* + +LOAD .* R E 0x100000 + +LOAD .* RW +0x100000 + +DYNAMIC .* RW +0x8 + +TLS .* 0x0+60 0x0+a0 R +0x4 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + #... + + Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 4 entries: +--- binutils-2.22/ld/testsuite/ld-sparc/tlssunnopic32.rd ++++ binutils-2.22/ld/testsuite/ld-sparc/tlssunnopic32.rd +@@ -32,6 +32,7 @@ Program Headers: + +LOAD .* RW +0x10000 + +DYNAMIC .* RW +0x4 + +TLS .* 0x0+ 0x0+24 R +0x4 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + #... + + Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 12 entries: +--- binutils-2.22/ld/testsuite/ld-sparc/tlssunnopic64.rd ++++ binutils-2.22/ld/testsuite/ld-sparc/tlssunnopic64.rd +@@ -32,6 +32,7 @@ Program Headers: + +LOAD .* RW +0x100000 + +DYNAMIC .* RW +0x8 + +TLS .* 0x0+ 0x0+24 R +0x4 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + #... + + Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 14 entries: +--- binutils-2.22/ld/testsuite/ld-sparc/tlssunpic32.rd ++++ binutils-2.22/ld/testsuite/ld-sparc/tlssunpic32.rd +@@ -36,6 +36,7 @@ Program Headers: + +LOAD +0x0+2000 0x0+12000 0x0+12000 0x0+184 0x0+184 RWE 0x10000 + +DYNAMIC +0x0+2060 0x0+12060 0x0+12060 0x0+98 0x0+98 RW +0x4 + +TLS +0x0+2000 0x0+12000 0x0+12000 0x0+60 0x0+80 R +0x4 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + #... + + Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 14 entries: +--- binutils-2.22/ld/testsuite/ld-sparc/tlssunpic64.rd ++++ binutils-2.22/ld/testsuite/ld-sparc/tlssunpic64.rd +@@ -36,6 +36,7 @@ Program Headers: + +LOAD +0x0+2000 0x0+102000 0x0+102000 0x0+3a0 0x0+3a0 RWE 0x100000 + +DYNAMIC +0x0+2060 0x0+102060 0x0+102060 0x0+130 0x0+130 RW +0x8 + +TLS +0x0+2000 0x0+102000 0x0+102000 0x0+60 0x0+80 R +0x4 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + #... + + Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 14 entries: +--- binutils-2.22/ld/testsuite/ld-x86-64/protected3.d ++++ binutils-2.22/ld/testsuite/ld-x86-64/protected3.d +@@ -8,6 +8,6 @@ + Disassembly of section .text: + + 0+[a-f0-9]+ <bar>: +-[ ]*[a-f0-9]+: 8b 05 [a-f0-9][a-f0-9] 00 [a-f0-9][a-f0-9] 00 mov 0x[a-f0-9]+(%rip),%eax # [a-f0-9]+ <foo> ++[ ]*[a-f0-9]+: 8b 05 [a-f0-9][a-f0-9] [a-f0-9][a-f0-9] [a-f0-9][a-f0-9] 00 mov 0x[a-f0-9]+(%rip),%eax # [a-f0-9]+ <foo> + [ ]*[a-f0-9]+: c3 retq + #pass +--- binutils-2.22/ld/testsuite/ld-x86-64/tlsgdesc.rd ++++ binutils-2.22/ld/testsuite/ld-x86-64/tlsgdesc.rd +@@ -36,12 +36,14 @@ Program Headers: + +LOAD.* + +LOAD.* + +DYNAMIC.* ++ +PAX_FLAGS.* + + Section to Segment mapping: + +Segment Sections... + +00 +.hash .dynsym .dynstr .rela.dyn .rela.plt .plt .text * + +01 +.dynamic .got .got.plt * + +02 +.dynamic * ++ +03 + + + Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 8 entries: + +Offset +Info +Type +Symbol's Value +Symbol's Name + Addend +--- binutils-2.22/ld/testsuite/ld-x86-64/tlspic.rd ++++ binutils-2.22/ld/testsuite/ld-x86-64/tlspic.rd +@@ -40,6 +40,7 @@ Program Headers: + +LOAD +0x0+11ac 0x0+2011ac 0x0+2011ac 0x0+244 0x0+244 RW +0x200000 + +DYNAMIC +0x0+1210 0x0+201210 0x0+201210 0x0+130 0x0+130 RW +0x8 + +TLS +0x0+11ac 0x0+2011ac 0x0+2011ac 0x0+60 0x0+80 R +0x1 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + + Section to Segment mapping: + +Segment Sections... +@@ -47,6 +48,7 @@ Program Headers: + +01 +.tdata .dynamic .got .got.plt * + +02 +.dynamic * + +03 +.tdata .tbss * ++ +04 + + + Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 14 entries: + +Offset +Info +Type +Symbol's Value +Symbol's Name + Addend diff --git a/src/patches/bridge-utils-1.5-compile-fix-1.patch b/src/patches/bridge-utils-1.5-compile-fix-1.patch new file mode 100644 index 0000000..c269608 --- /dev/null +++ b/src/patches/bridge-utils-1.5-compile-fix-1.patch @@ -0,0 +1,31 @@ +From 5eebb7f9288b7881ffb929b1fd494fe3ac3be27d Mon Sep 17 00:00:00 2001 +From: Russell Senior russell@personaltelco.net +Date: Wed, 06 Mar 2013 20:49:42 +0000 +Subject: bridge-utils: Fix compile against linux-3.8.x + +Linux 3.8 has a header, include/uapi/linux/if_bridge.h that uses a +struct in6_addr but doesn't define it. The trivial seeming fix of +including the header that does define it causes more problems. The +problem was discussed on mailing lists in January 2013. The final +suggestion I found was here: + + http://www.redhat.com/archives/libvir-list/2013-January/msg01253.html + +This is intended to implement that suggestion. + +Signed-off-by: Russell Senior russell@personaltelco.net +--- +diff --git a/libbridge/libbridge.h b/libbridge/libbridge.h +index 39964f2..dd14bae 100644 +--- a/libbridge/libbridge.h ++++ b/libbridge/libbridge.h +@@ -20,6 +20,7 @@ + #define _LIBBRIDGE_H + + #include <sys/socket.h> ++#include <netinet/in.h> + #include <linux/if.h> + #include <linux/if_bridge.h> + +-- +cgit v0.9.2 diff --git a/src/patches/coreutils-5.96-uname-1.patch b/src/patches/coreutils-5.96-uname-1.patch index a05ae04..0ae413f 100644 --- a/src/patches/coreutils-5.96-uname-1.patch +++ b/src/patches/coreutils-5.96-uname-1.patch @@ -1,34 +1,53 @@ -Submitted By: Matthew Burgess <matthew at linuxfromscratch dot org> -Date: 2005-10-23 -Initial Package Version: 5.92 +Submitted By: Robert Connolly robert@linuxfromscratch.org (ashes) +Date: 2005-11-13 +Initial Package Version: 5.93 Upstream Status: pending -Origin: Scot McPherson -Description: Fix the output of uname once and for all. +Origin: Scot McPherson and Zack Winkles +Description: Fix the output of uname once and for all. This is the position independent +version.
- $ uname -m # This always worked. + $ uname -m # This always worked. i686 - $ uname -i # Used to report 'unknown'. + $ uname -i # Used to report 'unknown'. i386 - $ uname -p # Likewise. + $ uname -p # Likewise. athlon-4
-diff -Naur coreutils-5.92.orig/src/uname.c coreutils-5.92/src/uname.c ---- coreutils-5.92.orig/src/uname.c 2005-09-15 20:34:42.000000000 +0000 -+++ coreutils-5.92/src/uname.c 2005-10-23 10:14:06.000000000 +0000 -@@ -29,6 +29,12 @@ +Now 'uname -p' can be used by GCC's mtune/mcpu and march options. For example: + + CFLAGS="-march=$(uname -m) -mtune=$(uname -p)" + +diff -Naur coreutils-5.93.orig/src/uname.c coreutils-5.93/src/uname.c +--- coreutils-5.93.orig/src/uname.c 2005-09-15 19:57:04.000000000 +0000 ++++ coreutils-5.93/src/uname.c 2005-11-13 19:18:35.000000000 +0000 +@@ -29,6 +29,26 @@ # include <sys/systeminfo.h> #endif
+#ifdef linux -+#define cpuid(in,a,b,c,d)\ -+ asm("cpuid": "=a" (a), "=b" (b), "=c" (c), "=d" (d) : "a" (in)); ++/* Thanks to the ffmpeg team for this PIC version of cpuid() */ ++#ifdef ARCH_X86_64 ++# define REG_b "rbx" ++# define REG_S "rsi" ++#else ++# define REG_b "ebx" ++# define REG_S "esi" ++#endif ++#define cpuid(index,eax,ebx,ecx,edx)\ ++ __asm __volatile\ ++ ("mov %%"REG_b", %%"REG_S"\n\t"\ ++ "cpuid\n\t"\ ++ "xchg %%"REG_b", %%"REG_S\ ++ : "=a" (eax), "=S" (ebx),\ ++ "=c" (ecx), "=d" (edx)\ ++ : "0" (index)); +int has_sse( void ); +#endif + #if HAVE_SYS_SYSCTL_H # if HAVE_SYS_PARAM_H # include <sys/param.h> /* needed for OpenBSD 3.0 */ -@@ -256,6 +262,96 @@ +@@ -256,6 +276,99 @@ if (0 <= sysinfo (SI_ARCHITECTURE, processor, sizeof processor)) element = processor; } @@ -75,6 +94,9 @@ diff -Naur coreutils-5.92.orig/src/uname.c coreutils-5.92/src/uname.c + element="pentium3"; + break; + case 15: // Pentium4 ++ if( model == 3 ) // Prescott ++ element="prescott"; ++ else + element="pentium4"; + break; + default: @@ -125,7 +147,7 @@ diff -Naur coreutils-5.92.orig/src/uname.c coreutils-5.92/src/uname.c #endif #ifdef UNAME_PROCESSOR if (element == unknown) -@@ -293,7 +389,7 @@ +@@ -293,7 +406,7 @@
if (toprint & PRINT_HARDWARE_PLATFORM) { @@ -134,7 +156,7 @@ diff -Naur coreutils-5.92.orig/src/uname.c coreutils-5.92/src/uname.c #if HAVE_SYSINFO && defined SI_PLATFORM { static char hardware_platform[257]; -@@ -301,6 +397,15 @@ +@@ -301,6 +414,15 @@ hardware_platform, sizeof hardware_platform)) element = hardware_platform; } @@ -150,7 +172,7 @@ diff -Naur coreutils-5.92.orig/src/uname.c coreutils-5.92/src/uname.c #endif #ifdef UNAME_HARDWARE_PLATFORM if (element == unknown) -@@ -323,3 +428,29 @@ +@@ -323,3 +445,29 @@
exit (EXIT_SUCCESS); } diff --git a/src/patches/dracut-006_add_run_dir.patch b/src/patches/dracut-006_add_run_dir.patch new file mode 100644 index 0000000..08063f8 --- /dev/null +++ b/src/patches/dracut-006_add_run_dir.patch @@ -0,0 +1,13 @@ +diff -Naur dracut-006.org/modules.d/99base/init dracut-006/modules.d/99base/init +--- dracut-006.org/modules.d/99base/init 2010-06-17 10:46:29.000000000 +0200 ++++ dracut-006/modules.d/99base/init 2013-10-31 16:51:17.658771341 +0100 +@@ -87,6 +87,9 @@ + + ln -s /proc/self/fd /dev/fd >/dev/null 2>&1 + ++# create run dir ++mkdir run ++ + if getarg rdinitdebug; then + getarg quiet && DRACUT_QUIET="yes" + mkfifo /dev/initlog.pipe diff --git a/src/patches/dracut-006_remove_scsi_wait.patch b/src/patches/dracut-006_remove_scsi_wait.patch new file mode 100644 index 0000000..cfccf01 --- /dev/null +++ b/src/patches/dracut-006_remove_scsi_wait.patch @@ -0,0 +1,12 @@ +diff -Naur dracut-006.org/modules.d/99base/init dracut-006/modules.d/99base/init +--- dracut-006.org/modules.d/99base/init 2010-06-17 10:46:29.000000000 +0200 ++++ dracut-006/modules.d/99base/init 2013-10-31 17:05:09.135475525 +0100 +@@ -175,7 +175,7 @@ + + $UDEV_QUEUE_EMPTY >/dev/null 2>&1 || continue + +- modprobe scsi_wait_scan && rmmod scsi_wait_scan ++ sleep 0.1 + + $UDEV_QUEUE_EMPTY >/dev/null 2>&1 || continue + diff --git a/src/patches/fireinfo-0001-Exclude-some-more-invalid-patterns.patch b/src/patches/fireinfo-0001-Exclude-some-more-invalid-patterns.patch new file mode 100644 index 0000000..fd1c525 --- /dev/null +++ b/src/patches/fireinfo-0001-Exclude-some-more-invalid-patterns.patch @@ -0,0 +1,55 @@ +From 220ffe76a48c72171d7724f7f602a2fdd8bbca6a Mon Sep 17 00:00:00 2001 +From: Michael Tremer michael.tremer@ipfire.org +Date: Sat, 15 Feb 2014 18:37:54 +0100 +Subject: [PATCH] Exclude some more invalid patterns. + +--- + src/fireinfo/system.py | 15 +++++++++++++-- + 1 file changed, 13 insertions(+), 2 deletions(-) + +diff --git a/src/fireinfo/system.py b/src/fireinfo/system.py +index 40ff7b0..c875f96 100644 +--- a/src/fireinfo/system.py ++++ b/src/fireinfo/system.py +@@ -44,12 +44,17 @@ INVALID_ID_STRINGS = ( + "Chassis", "chassis", + "Not Applicable", + "None", "empty", ++ "XXXXX", + "01010101-0101-0101-0101-010101010101", + "00020003-0004-0005-0006-000700080009", + "03000200-0400-0500-0006-000700080009", + "0000000", "00000000", + ) + ++INVALID_ID_STRINGS_EXACT_MATCH = ( ++ "NA", ++) ++ + class Singleton(type): + def __init__(cls, name, bases, dict): + super(Singleton, cls).__init__(name, bases, dict) +@@ -234,12 +239,18 @@ class System(object): + if id is None: + continue + +- for i in INVALID_ID_STRINGS: +- if i in id: ++ for i in INVALID_ID_STRINGS_EXACT_MATCH: ++ if id == i: + id = None + break + + if id: ++ for i in INVALID_ID_STRINGS: ++ if i in id: ++ id = None ++ break ++ ++ if id: + _ids.append(id) + + ids = _ids +-- +1.8.3.1 + diff --git a/src/patches/gcc-4.4.7-texinfo-5.patch b/src/patches/gcc-4.4.7-texinfo-5.patch new file mode 100644 index 0000000..7b2e945 --- /dev/null +++ b/src/patches/gcc-4.4.7-texinfo-5.patch @@ -0,0 +1,89 @@ +diff -Naur gcc-4.4.7.org/gcc/doc/cppopts.texi gcc-4.4.7/gcc/doc/cppopts.texi +--- gcc-4.4.7.org/gcc/doc/cppopts.texi 2008-06-15 11:42:13.000000000 +0200 ++++ gcc-4.4.7/gcc/doc/cppopts.texi 2013-09-08 16:50:14.353507748 +0200 +@@ -758,7 +758,7 @@ + Enable special code to work around file systems which only permit very + short file names, such as MS-DOS@. + +-@itemx --help ++@item --help + @itemx --target-help + @opindex help + @opindex target-help +diff -Naur gcc-4.4.7.org/gcc/doc/c-tree.texi gcc-4.4.7/gcc/doc/c-tree.texi +--- gcc-4.4.7.org/gcc/doc/c-tree.texi 2009-02-20 16:20:38.000000000 +0100 ++++ gcc-4.4.7/gcc/doc/c-tree.texi 2013-09-08 17:53:21.055167463 +0200 +@@ -2338,13 +2338,13 @@ + not matter. The type of the operands and that of the result are + always of @code{BOOLEAN_TYPE} or @code{INTEGER_TYPE}. + +-@itemx POINTER_PLUS_EXPR ++@item POINTER_PLUS_EXPR + This node represents pointer arithmetic. The first operand is always + a pointer/reference type. The second operand is always an unsigned + integer type compatible with sizetype. This is the only binary + arithmetic operand that can operate on pointer types. + +-@itemx PLUS_EXPR ++@item PLUS_EXPR + @itemx MINUS_EXPR + @itemx MULT_EXPR + These nodes represent various binary arithmetic operations. +diff -Naur gcc-4.4.7.org/gcc/doc/invoke.texi gcc-4.4.7/gcc/doc/invoke.texi +--- gcc-4.4.7.org/gcc/doc/invoke.texi 2011-03-23 23:02:12.000000000 +0100 ++++ gcc-4.4.7/gcc/doc/invoke.texi 2013-09-08 17:10:49.503066254 +0200 +@@ -4645,11 +4645,11 @@ + @option{-fdump-rtl-ce3} enable dumping after the three + if conversion passes. + +-@itemx -fdump-rtl-cprop_hardreg ++@item -fdump-rtl-cprop_hardreg + @opindex fdump-rtl-cprop_hardreg + Dump after hard register copy propagation. + +-@itemx -fdump-rtl-csa ++@item -fdump-rtl-csa + @opindex fdump-rtl-csa + Dump after combining stack adjustments. + +@@ -4660,11 +4660,11 @@ + @option{-fdump-rtl-cse1} and @option{-fdump-rtl-cse2} enable dumping after + the two common sub-expression elimination passes. + +-@itemx -fdump-rtl-dce ++@item -fdump-rtl-dce + @opindex fdump-rtl-dce + Dump after the standalone dead code elimination passes. + +-@itemx -fdump-rtl-dbr ++@item -fdump-rtl-dbr + @opindex fdump-rtl-dbr + Dump after delayed branch scheduling. + +@@ -4709,7 +4709,7 @@ + @opindex fdump-rtl-initvals + Dump after the computation of the initial value sets. + +-@itemx -fdump-rtl-into_cfglayout ++@item -fdump-rtl-into_cfglayout + @opindex fdump-rtl-into_cfglayout + Dump after converting to cfglayout mode. + +@@ -4739,7 +4739,7 @@ + @opindex fdump-rtl-rnreg + Dump after register renumbering. + +-@itemx -fdump-rtl-outof_cfglayout ++@item -fdump-rtl-outof_cfglayout + @opindex fdump-rtl-outof_cfglayout + Dump after converting from cfglayout mode. + +@@ -4751,7 +4751,7 @@ + @opindex fdump-rtl-postreload + Dump after post-reload optimizations. + +-@itemx -fdump-rtl-pro_and_epilogue ++@item -fdump-rtl-pro_and_epilogue + @opindex fdump-rtl-pro_and_epilogue + Dump after generating the function pro and epilogues. + diff --git a/src/patches/glibc/glibc-rh804630.patch b/src/patches/glibc/glibc-rh804630.patch deleted file mode 100644 index 75dbe94..0000000 --- a/src/patches/glibc/glibc-rh804630.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff -rup c/resolv/res_send.c d/resolv/res_send.c ---- c/resolv/res_send.c 2012-01-01 05:16:32.000000000 -0700 -+++ d/resolv/res_send.c 2012-03-30 12:39:30.862467628 -0600 -@@ -409,6 +409,7 @@ __libc_res_nsend(res_state statp, const - */ - if (EXT(statp).nsinit == 0) { - unsigned char map[MAXNS]; -+ unsigned int ext_total_nscount; - - memset (map, MAXNS, sizeof (map)); - for (n = 0; n < MAXNS; n++) { -@@ -422,8 +423,9 @@ __libc_res_nsend(res_state statp, const - } - } - n = statp->nscount; -- if (statp->nscount > EXT(statp).nscount) -- for (n = EXT(statp).nscount, ns = 0; -+ ext_total_nscount = EXT(statp).nscount + EXT(statp).nscount6; -+ if (statp->nscount > ext_total_nscount) -+ for (n = ext_total_nscount, ns = 0; - n < statp->nscount; n++) { - while (ns < MAXNS - && EXT(statp).nsmap[ns] != MAXNS) diff --git a/src/patches/glibc/glibc-rh804686.patch b/src/patches/glibc/glibc-rh804686.patch new file mode 100644 index 0000000..292cd84 --- /dev/null +++ b/src/patches/glibc/glibc-rh804686.patch @@ -0,0 +1,87 @@ +--- a/resolv/res_query.c 2010-05-04 05:27:23.000000000 -0600 ++++ a/resolv/res_query.c 2012-08-03 13:43:10.761506047 -0600 +@@ -122,6 +122,7 @@ __libc_res_nquery(res_state statp, + int *resplen2) + { + HEADER *hp = (HEADER *) answer; ++ HEADER *hp2; + int n, use_malloc = 0; + u_int oflags = statp->_flags; + +@@ -239,26 +240,25 @@ __libc_res_nquery(res_state statp, + /* __libc_res_nsend might have reallocated the buffer. */ + hp = (HEADER *) *answerp; + +- /* We simplify the following tests by assigning HP to HP2. It +- is easy to verify that this is the same as ignoring all +- tests of HP2. */ +- HEADER *hp2 = answerp2 ? (HEADER *) *answerp2 : hp; +- +- if (n < (int) sizeof (HEADER) && answerp2 != NULL +- && *resplen2 > (int) sizeof (HEADER)) ++ /* We simplify the following tests by assigning HP to HP2 or ++ vice versa. It is easy to verify that this is the same as ++ ignoring all tests of HP or HP2. */ ++ if (answerp2 == NULL || *resplen2 < (int) sizeof (HEADER)) + { +- /* Special case of partial answer. */ +- assert (hp != hp2); +- hp = hp2; ++ hp2 = hp; + } +- else if (answerp2 != NULL && *resplen2 < (int) sizeof (HEADER) +- && n > (int) sizeof (HEADER)) ++ else + { +- /* Special case of partial answer. */ +- assert (hp != hp2); +- hp2 = hp; ++ hp2 = (HEADER *) *answerp2; ++ if (n < (int) sizeof (HEADER)) ++ { ++ hp = hp2; ++ } + } + ++ /* Make sure both hp and hp2 are defined */ ++ assert((hp != NULL) && (hp2 != NULL)); ++ + if ((hp->rcode != NOERROR || ntohs(hp->ancount) == 0) + && (hp2->rcode != NOERROR || ntohs(hp2->ancount) == 0)) { + #ifdef DEBUG +--- a/resolv/res_send.c 2012-08-03 13:31:26.622168278 -0600 ++++ a/resolv/res_send.c 2012-08-03 13:43:11.881501862 -0600 +@@ -549,7 +549,7 @@ __libc_res_nsend(res_state statp, const + ns, ansp, ansp2, nansp2, resplen2); + if (n < 0) + return (-1); +- if (n == 0) ++ if (n == 0 && (buf2 == NULL || *resplen2 == 0)) + goto next_ns; + } else { + /* Use datagrams. */ +@@ -559,7 +559,7 @@ __libc_res_nsend(res_state statp, const + ansp2, nansp2, resplen2); + if (n < 0) + return (-1); +- if (n == 0) ++ if (n == 0 && (buf2 == NULL || *resplen2 == 0)) + goto next_ns; + if (v_circuit) + // XXX Check whether both requests failed or +@@ -1275,10 +1275,14 @@ send_dg(res_state statp, + (*thisresplenp > *thisanssizp) + ? *thisanssizp : *thisresplenp); + +- if (recvresp1 || (buf2 != NULL && recvresp2)) ++ if (recvresp1 || (buf2 != NULL && recvresp2)) { ++ *resplen2 = 0; + return resplen; ++ } + if (buf2 != NULL) + { ++ /* No data from the first reply. */ ++ resplen = 0; + /* We are waiting for a possible second reply. */ + if (hp->id == anhp->id) + recvresp1 = 1; diff --git a/src/patches/glibc/glibc-rh806404.patch b/src/patches/glibc/glibc-rh806404.patch new file mode 100644 index 0000000..b78b903 --- /dev/null +++ b/src/patches/glibc/glibc-rh806404.patch @@ -0,0 +1,12 @@ +diff -rup a/nss/getnssent.c b/nss/getnssent.c +--- a/nss/getnssent.c 2004-12-13 14:48:34.000000000 -0700 ++++ b/nss/getnssent.c 2012-03-23 13:46:54.639095121 -0600 +@@ -33,7 +33,7 @@ __nss_getent (getent_r_function func, vo + *buffer = malloc (*buffer_size); + } + +- while (buffer != NULL ++ while (*buffer != NULL + && func (resbuf, *buffer, *buffer_size, &result, h_errnop) == ERANGE + && (h_errnop == NULL || *h_errnop == NETDB_INTERNAL)) + { diff --git a/src/patches/glibc/glibc-rh809726.patch b/src/patches/glibc/glibc-rh809726.patch new file mode 100644 index 0000000..0f264c8 --- /dev/null +++ b/src/patches/glibc/glibc-rh809726.patch @@ -0,0 +1,89 @@ +diff -rup a/localedata/locales/fi_FI b/localedata/locales/fi_FI +--- a/localedata/locales/fi_FI 2012-07-11 14:48:45.994749607 -0600 ++++ b/localedata/locales/fi_FI 2012-07-11 14:50:20.003277477 -0600 +@@ -63,60 +63,65 @@ reorder-after <z> + <a-diaerisis> + <o-diaerisis> + +-reorder-after <U005A> ++reorder-after <U007A> + <U00E5> <a-ring>;<BAS>;<MIN>;IGNORE +-<U00C5> <a-ring>;<BAS>;<CAP>;IGNORE + <U01FB> <a-ring>;<ACA>;<MIN>;IGNORE +-<U01FA> <a-ring>;<ACA>;<CAP>;IGNORE + <U00E4> <a-diaerisis>;<BAS>;<MIN>;IGNORE +-<U00C4> <a-diaerisis>;<BAS>;<CAP>;IGNORE + <U00E6> <a-diaerisis>;<REU>;<MIN>;IGNORE +-<U00C6> <a-diaerisis>;<REU>;<CAP>;IGNORE + <U01FD> <a-diaerisis>;<U01FD>;<MIN>;IGNORE +-<U01FC> <a-diaerisis>;<U01FD>;<CAP>;IGNORE + <U01E3> <a-diaerisis>;<MAC>;<MIN>;IGNORE +-<U01E2> <a-diaerisis>;<MAC>;<CAP>;IGNORE + <U00F6> <o-diaerisis>;<BAS>;<MIN>;IGNORE +-<U00D6> <o-diaerisis>;<BAS>;<CAP>;IGNORE + <U00F8> <o-diaerisis>;<U00D8>;<MIN>;IGNORE +-<U00D8> <o-diaerisis>;<U00D8>;<CAP>;IGNORE + <U01FF> <o-diaerisis>;<U01FF>;<MIN>;IGNORE +-<U01FE> <o-diaerisis>;<U01FF>;<CAP>;IGNORE + <U00F5> <o-diaerisis>;<TIL>;<MIN>;IGNORE ++reorder-after <U005A> ++<U00C5> <a-ring>;<BAS>;<CAP>;IGNORE ++<U01FA> <a-ring>;<ACA>;<CAP>;IGNORE ++<U00C4> <a-diaerisis>;<BAS>;<CAP>;IGNORE ++<U00C6> <a-diaerisis>;<REU>;<CAP>;IGNORE ++<U01FC> <a-diaerisis>;<U01FD>;<CAP>;IGNORE ++<U01E2> <a-diaerisis>;<MAC>;<CAP>;IGNORE ++<U00D6> <o-diaerisis>;<BAS>;<CAP>;IGNORE ++<U00D8> <o-diaerisis>;<U00D8>;<CAP>;IGNORE ++<U01FE> <o-diaerisis>;<U01FF>;<CAP>;IGNORE + <U00D5> <o-diaerisis>;<TIL>;<CAP>;IGNORE + +-reorder-after <U016A> ++reorder-after <U016B> + <U0076> <v>;<U0056>;<BAS>;<MIN> +-<U0056> <v>;<U0056>;<BAS>;<CAP> + <U1E7D> <v>;<U0056>;<TIL>;<MIN> +-<U1E7C> <v>;<U0056>;<TIL>;<CAP> + <U0077> <w>;<U0057>;<BAS>;<MIN> +-<U0057> <w>;<U0057>;<BAS>;<CAP> + <U1E83> <w>;<U0057>;<ACA>;<MIN> +-<U1E82> <w>;<U0057>;<ACA>;<CAP> + <U1E81> <w>;<U0057>;<GRA>;<MIN> +-<U1E80> <w>;<U0057>;<GRA>;<CAP> + <U0175> <w>;<U0057>;<CIR>;<MIN> +-<U0174> <w>;<U0057>;<CIR>;<CAP> + <U1E85> <w>;<U0057>;<REU>;<MIN> +-<U1E84> <w>;<U0057>;<REU>;<CAP> + <U1E87> <w>;<U0057>;<PCT>;<MIN> ++reorder-after <U016A> ++<U0056> <v>;<U0056>;<BAS>;<CAP> ++<U1E7C> <v>;<U0056>;<TIL>;<CAP> ++<U0057> <w>;<U0057>;<BAS>;<CAP> ++<U1E82> <w>;<U0057>;<ACA>;<CAP> ++<U1E80> <w>;<U0057>;<GRA>;<CAP> ++<U0174> <w>;<U0057>;<CIR>;<CAP> ++<U1E84> <w>;<U0057>;<REU>;<CAP> + <U1E86> <w>;<U0057>;<PCT>;<CAP> + + reorder-after <U00FF> + <U00FC> <y>;<DTT>;<MIN>;IGNORE ++reorder-after <U0178> + <U00DC> <y>;<DTT>;<CAP>;IGNORE + + % Present in iso14651_t1, but these definitions seem to have been + % removed from latest iso14651 tables. +-reorder-after <U0162> ++reorder-after <U0163> + <U00FE> "<t><h>";"<LIG><LIG>";"<MIN><MIN>";IGNORE ++reorder-after <U0162> + <U00DE> "<t><h>";"<LIG><LIG>";"<CAP><CAP>";IGNORE + + reorder-after <U0064> + <U00F0> <d>;<PCL>;<MIN>;IGNORE +-<U00D0> <d>;<PCL>;<CAP>;IGNORE + <U0111> <d>;<OBL>;<MIN>;IGNORE ++reorder-after <U0044> ++<U00D0> <d>;<PCL>;<CAP>;IGNORE + <U0110> <d>;<OBL>;<CAP>;IGNORE + + reorder-end diff --git a/src/patches/glibc/glibc-rh823909.patch b/src/patches/glibc/glibc-rh823909.patch new file mode 100644 index 0000000..ed9c4c9 --- /dev/null +++ b/src/patches/glibc/glibc-rh823909.patch @@ -0,0 +1,25 @@ +diff --git a/iconvdata/ibm930.c b/iconvdata/ibm930.c +index 25a9be0..6f758eb 100644 +--- a/iconvdata/ibm930.c ++++ b/iconvdata/ibm930.c +@@ -162,7 +162,8 @@ enum + while (ch > rp2->end) \ + ++rp2; \ + \ +- if (__builtin_expect (ch < rp2->start, 0) \ ++ if (__builtin_expect (rp2->start == 0xffff, 0) \ ++ || __builtin_expect (ch < rp2->start, 0) \ + || (res = __ibm930db_to_ucs4[ch + rp2->idx], \ + __builtin_expect (res, L'\1') == L'\0' && ch != '\0')) \ + { \ +@@ -215,7 +216,8 @@ enum + while (ch > rp2->end) \ + ++rp2; \ + \ +- if (__builtin_expect (ch < rp2->start, 0) \ ++ if (__builtin_expect (rp2->start == 0xffff, 0) \ ++ || __builtin_expect (ch < rp2->start, 0) \ + || (cp = __ucs4_to_ibm930db[ch + rp2->idx], \ + __builtin_expect (cp[0], L'\1')== L'\0' && ch != '\0')) \ + { \ + diff --git a/src/patches/glibc/glibc-rh826149.patch b/src/patches/glibc/glibc-rh826149.patch new file mode 100644 index 0000000..805572b --- /dev/null +++ b/src/patches/glibc/glibc-rh826149.patch @@ -0,0 +1,80 @@ +diff -Nrup a/posix/fnmatch.c b/posix/fnmatch.c +--- a/posix/fnmatch.c 2012-05-25 12:37:26.566678872 -0400 ++++ b/posix/fnmatch.c 2012-05-25 13:08:44.451972286 -0400 +@@ -333,6 +333,7 @@ fnmatch (pattern, string, flags) + # if HANDLE_MULTIBYTE + if (__builtin_expect (MB_CUR_MAX, 1) != 1) + { ++ const char *orig_pattern = pattern; + mbstate_t ps; + size_t n; + const char *p; +@@ -356,10 +357,9 @@ fnmatch (pattern, string, flags) + alloca_used); + n = mbsrtowcs (wpattern, &p, n + 1, &ps); + if (__builtin_expect (n == (size_t) -1, 0)) +- /* Something wrong. +- XXX Do we have to set `errno' to something which mbsrtows hasn't +- already done? */ +- return -1; ++ /* Something wrong: Fall back to single byte matching. */ ++ goto try_singlebyte; ++ + if (p) + { + memset (&ps, '\0', sizeof (ps)); +@@ -371,10 +371,8 @@ fnmatch (pattern, string, flags) + prepare_wpattern: + n = mbsrtowcs (NULL, &pattern, 0, &ps); + if (__builtin_expect (n == (size_t) -1, 0)) +- /* Something wrong. +- XXX Do we have to set `errno' to something which mbsrtows hasn't +- already done? */ +- return -1; ++ /* Something wrong: Fall back to single byte matching. */ ++ goto try_singlebyte; + if (__builtin_expect (n >= (size_t) -1 / sizeof (wchar_t), 0)) + { + __set_errno (ENOMEM); +@@ -401,14 +399,8 @@ fnmatch (pattern, string, flags) + alloca_used); + n = mbsrtowcs (wstring, &p, n + 1, &ps); + if (__builtin_expect (n == (size_t) -1, 0)) +- { +- /* Something wrong. +- XXX Do we have to set `errno' to something which +- mbsrtows hasn't already done? */ +- free_return: +- free (wpattern_malloc); +- return -1; +- } ++ /* Something wrong: Fall back to single byte matching. */ ++ goto free_and_try_singlebyte; + if (p) + { + memset (&ps, '\0', sizeof (ps)); +@@ -420,10 +412,8 @@ fnmatch (pattern, string, flags) + prepare_wstring: + n = mbsrtowcs (NULL, &string, 0, &ps); + if (__builtin_expect (n == (size_t) -1, 0)) +- /* Something wrong. +- XXX Do we have to set `errno' to something which mbsrtows hasn't +- already done? */ +- goto free_return; ++ /* Something wrong: Fall back to single byte matching. */ ++ goto free_and_try_singlebyte; + if (__builtin_expect (n >= (size_t) -1 / sizeof (wchar_t), 0)) + { + free (wpattern_malloc); +@@ -450,6 +440,11 @@ fnmatch (pattern, string, flags) + free (wpattern_malloc); + + return res; ++ ++ free_and_try_singlebyte: ++ free(wpattern_malloc); ++ try_singlebyte: ++ pattern = orig_pattern; + } + # endif /* mbstate_t and mbsrtowcs or _LIBC. */ + diff --git a/src/patches/glibc/glibc-rh827362.patch b/src/patches/glibc/glibc-rh827362.patch new file mode 100644 index 0000000..7e6d07e --- /dev/null +++ b/src/patches/glibc/glibc-rh827362.patch @@ -0,0 +1,250 @@ +diff -pruN glibc-2.12-2-gc4ccff1/libio/Makefile glibc-2.12-2-gc4ccff1.fseek/libio/Makefile +--- glibc-2.12-2-gc4ccff1/libio/Makefile 2010-05-04 16:57:23.000000000 +0530 ++++ glibc-2.12-2-gc4ccff1.fseek/libio/Makefile 2012-09-05 17:28:08.699360413 +0530 +@@ -58,7 +58,7 @@ tests = tst_swprintf tst_wprintf tst_sws + tst-memstream1 tst-memstream2 \ + tst-wmemstream1 tst-wmemstream2 \ + bug-memstream1 bug-wmemstream1 \ +- tst-setvbuf1 tst-popen1 tst-fgetwc bug-wsetpos ++ tst-setvbuf1 tst-popen1 tst-fgetwc bug-wsetpos tst-fseek + test-srcs = test-freopen + + all: # Make this the default target; it will be defined in Rules. +diff -pruN glibc-2.12-2-gc4ccff1/libio/tst-fseek.c glibc-2.12-2-gc4ccff1.fseek/libio/tst-fseek.c +--- glibc-2.12-2-gc4ccff1/libio/tst-fseek.c 1970-01-01 05:30:00.000000000 +0530 ++++ glibc-2.12-2-gc4ccff1.fseek/libio/tst-fseek.c 2012-09-05 17:27:33.606359692 +0530 +@@ -0,0 +1,153 @@ ++/* Verify that fseek/ftell combination works for wide chars. ++ ++ Copyright (C) 2012 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ http://www.gnu.org/licenses/. */ ++ ++#include <stdio.h> ++#include <stdlib.h> ++#include <locale.h> ++#include <errno.h> ++#include <wchar.h> ++#include <unistd.h> ++#include <string.h> ++ ++/* Defined in test-skeleton.c. */ ++static int create_temp_file (const char *base, char **filename); ++ ++ ++static int ++do_seek_end (FILE *fp) ++{ ++ long save; ++ ++ if (fp == NULL) ++ { ++ printf ("do_seek_end: fopen: %s\n", strerror (errno)); ++ return 1; ++ } ++ ++ if (fputws (L"abc\n", fp) == -1) ++ { ++ printf ("do_seek_end: fputws: %s\n", strerror (errno)); ++ return 1; ++ } ++ ++ save = ftell (fp); ++ rewind (fp); ++ ++ if (fseek (fp, 0, SEEK_END) == -1) ++ { ++ printf ("do_seek_end: fseek: %s\n", strerror (errno)); ++ return 1; ++ } ++ ++ if (save != ftell (fp)) ++ { ++ printf ("save = %ld, ftell = %ld\n", save, ftell (fp)); ++ return 1; ++ } ++ ++ return 0; ++} ++ ++int ++do_seek_set (FILE *fp) ++{ ++ long save; ++ ++ if (fputws (L"abc\n", fp) == -1) ++ { ++ printf ("seek_set: fputws: %s\n", strerror (errno)); ++ return 1; ++ } ++ ++ save = ftell (fp); ++ ++ if (fputws (L"xyz\n", fp) == -1) ++ { ++ printf ("seek_set: fputws: %s\n", strerror (errno)); ++ return 1; ++ } ++ ++ if (fseek (fp, save, SEEK_SET) == -1) ++ { ++ printf ("seek_set: fseek: %s\n", strerror (errno)); ++ return 1; ++ } ++ ++ if (save != ftell (fp)) ++ { ++ printf ("save = %ld, ftell = %ld\n", save, ftell (fp)); ++ return 1; ++ } ++ ++ return 0; ++} ++ ++static int ++do_test (void) ++{ ++ if (setlocale (LC_ALL, "en_US.utf8") == NULL) ++ { ++ printf ("Cannot set en_US.utf8 locale.\n"); ++ exit (1); ++ } ++ ++ int ret = 0; ++ char *filename; ++ int fd = create_temp_file ("tst-fseek.out", &filename); ++ ++ if (fd == -1) ++ return 1; ++ ++ FILE *fp = fdopen (fd, "w+"); ++ if (fp == NULL) ++ { ++ printf ("seek_set: fopen: %s\n", strerror (errno)); ++ close (fd); ++ return 1; ++ } ++ ++ if (do_seek_set (fp)) ++ { ++ printf ("SEEK_SET test failed\n"); ++ ret = 1; ++ } ++ ++ /* Reopen the file. */ ++ fclose (fp); ++ fp = fopen (filename, "w+"); ++ if (fp == NULL) ++ { ++ printf ("seek_end: fopen: %s\n", strerror (errno)); ++ return 1; ++ } ++ ++ if (do_seek_end (fp)) ++ { ++ printf ("SEEK_END test failed\n"); ++ ret = 1; ++ } ++ ++ fclose (fp); ++ ++ return ret; ++} ++ ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff -pruN glibc-2.12-2-gc4ccff1/libio/wfileops.c glibc-2.12-2-gc4ccff1.fseek/libio/wfileops.c +--- glibc-2.12-2-gc4ccff1/libio/wfileops.c 2010-05-04 16:57:23.000000000 +0530 ++++ glibc-2.12-2-gc4ccff1.fseek/libio/wfileops.c 2012-09-05 17:27:33.608359685 +0530 +@@ -547,6 +547,55 @@ _IO_wfile_sync (fp) + } + INTDEF(_IO_wfile_sync) + ++/* Adjust the internal buffer pointers to reflect the state in the external ++ buffer. The content between fp->_IO_read_base and fp->_IO_read_ptr is ++ assumed to be converted and available in the range ++ fp->_wide_data->_IO_read_base and fp->_wide_data->_IO_read_end. */ ++static inline int ++adjust_wide_data (_IO_FILE *fp, bool do_convert) ++{ ++ struct _IO_codecvt *cv = fp->_codecvt; ++ ++ int clen = (*cv->__codecvt_do_encoding) (cv); ++ ++ /* Take the easy way out for constant length encodings if we don't need to ++ convert. */ ++ if (!do_convert && clen > 0) ++ { ++ fp->_wide_data->_IO_read_end += ((fp->_IO_read_ptr - fp->_IO_read_base) ++ / clen); ++ goto done; ++ } ++ ++ enum __codecvt_result status; ++ const char *read_stop = (const char *) fp->_IO_read_base; ++ do ++ { ++ ++ fp->_wide_data->_IO_last_state = fp->_wide_data->_IO_state; ++ status = (*cv->__codecvt_do_in) (cv, &fp->_wide_data->_IO_state, ++ fp->_IO_read_base, fp->_IO_read_ptr, ++ &read_stop, ++ fp->_wide_data->_IO_read_base, ++ fp->_wide_data->_IO_buf_end, ++ &fp->_wide_data->_IO_read_end); ++ ++ /* Should we return EILSEQ? */ ++ if (__builtin_expect (status == __codecvt_error, 0)) ++ { ++ fp->_flags |= _IO_ERR_SEEN; ++ return -1; ++ } ++ } ++ while (__builtin_expect (status == __codecvt_partial, 0)); ++ ++done: ++ /* Now seek to the end of the read buffer. */ ++ fp->_wide_data->_IO_read_ptr = fp->_wide_data->_IO_read_end; ++ ++ return 0; ++} ++ + _IO_off64_t + _IO_wfile_seekoff (fp, offset, dir, mode) + _IO_FILE *fp; +@@ -695,6 +744,10 @@ _IO_wfile_seekoff (fp, offset, dir, mode + fp->_wide_data->_IO_buf_base); + _IO_wsetp (fp, fp->_wide_data->_IO_buf_base, + fp->_wide_data->_IO_buf_base); ++ ++ if (adjust_wide_data (fp, false)) ++ goto dumb; ++ + _IO_mask_flags (fp, 0, _IO_EOF_SEEN); + goto resync; + } +@@ -735,6 +788,10 @@ _IO_wfile_seekoff (fp, offset, dir, mode + _IO_wsetg (fp, fp->_wide_data->_IO_buf_base, + fp->_wide_data->_IO_buf_base, fp->_wide_data->_IO_buf_base); + _IO_wsetp (fp, fp->_wide_data->_IO_buf_base, fp->_wide_data->_IO_buf_base); ++ ++ if (adjust_wide_data (fp, true)) ++ goto dumb; ++ + fp->_offset = result + count; + _IO_mask_flags (fp, 0, _IO_EOF_SEEN); + return offset; diff --git a/src/patches/glibc/glibc-rh830127.patch b/src/patches/glibc/glibc-rh830127.patch new file mode 100644 index 0000000..06dea73 --- /dev/null +++ b/src/patches/glibc/glibc-rh830127.patch @@ -0,0 +1,403 @@ +diff -Nrup a/stdio-common/bug22.c b/stdio-common/bug22.c +--- a/stdio-common/bug22.c 2010-05-04 05:27:23.000000000 -0600 ++++ b/stdio-common/bug22.c 2012-08-03 13:56:40.887829210 -0600 +@@ -1,12 +1,22 @@ + /* BZ #5424 */ + #include <stdio.h> ++#include <errno.h> + ++/* INT_MAX + 1 */ + #define N 2147483648 + ++/* (INT_MAX / 2) + 2 */ ++#define N2 1073741825 ++ ++/* INT_MAX - 3 */ ++#define N3 2147483644 ++ + #define STRINGIFY(S) #S + #define MAKE_STR(S) STRINGIFY(S) + + #define SN MAKE_STR(N) ++#define SN2 MAKE_STR(N2) ++#define SN3 MAKE_STR(N3) + + static int + do_test (void) +@@ -20,13 +30,27 @@ do_test (void) + return 1; + } + +- ret = fprintf (fp, "%" SN "d%" SN "d", 1, 1); ++ ret = fprintf (fp, "%" SN "d", 1); ++ printf ("ret = %d\n", ret); ++ if (ret != -1 || errno != EOVERFLOW) ++ return 1; ++ ++ ret = fprintf (fp, "%." SN "d", 1); ++ printf ("ret = %d\n", ret); ++ if (ret != -1 || errno != EOVERFLOW) ++ return 1; ++ ++ ret = fprintf (fp, "%." SN3 "d", 1); ++ printf ("ret = %d\n", ret); ++ if (ret != -1 || errno != EOVERFLOW) ++ return 1; + ++ ret = fprintf (fp, "%" SN2 "d%" SN2 "d", 1, 1); + printf ("ret = %d\n", ret); + +- return ret != -1; ++ return ret != -1 || errno != EOVERFLOW; + } + +-#define TIMEOUT 30 ++#define TIMEOUT 60 + #define TEST_FUNCTION do_test () + #include "../test-skeleton.c" +diff -Nrup a/stdio-common/printf-parse.h b/stdio-common/printf-parse.h +--- a/stdio-common/printf-parse.h 2010-05-04 05:27:23.000000000 -0600 ++++ b/stdio-common/printf-parse.h 2012-08-03 13:57:31.932638761 -0600 +@@ -14,9 +14,8 @@ + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ ++ License along with the GNU C Library; if not, see ++ http://www.gnu.org/licenses/. */ + + #include <printf.h> + #include <stdint.h> +@@ -69,16 +68,27 @@ union printf_arg + #ifndef DONT_NEED_READ_INT + /* Read a simple integer from a string and update the string pointer. + It is assumed that the first character is a digit. */ +-static unsigned int ++static int + read_int (const UCHAR_T * *pstr) + { +- unsigned int retval = **pstr - L_('0'); ++ int retval = **pstr - L_('0'); + + while (ISDIGIT (*++(*pstr))) +- { +- retval *= 10; +- retval += **pstr - L_('0'); +- } ++ if (retval >= 0) ++ { ++ if (INT_MAX / 10 < retval) ++ retval = -1; ++ else ++ { ++ int digit = **pstr - L_('0'); ++ ++ retval *= 10; ++ if (INT_MAX - digit < retval) ++ retval = -1; ++ else ++ retval += digit; ++ } ++ } + + return retval; + } +diff -Nrup a/stdio-common/printf-parsemb.c b/stdio-common/printf-parsemb.c +--- a/stdio-common/printf-parsemb.c 2010-05-04 05:27:23.000000000 -0600 ++++ b/stdio-common/printf-parsemb.c 2012-08-03 13:58:44.683366361 -0600 +@@ -13,9 +13,8 @@ + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ ++ License along with the GNU C Library; if not, see ++ http://www.gnu.org/licenses/. */ + + #include <ctype.h> + #include <limits.h> +@@ -88,12 +87,15 @@ __parse_one_specmb (const UCHAR_T *forma + + n = read_int (&format); + +- if (n > 0 && *format == L_('$')) ++ if (n != 0 && *format == L_('$')) + /* Is positional parameter. */ + { + ++format; /* Skip the '$'. */ +- spec->data_arg = n - 1; +- *max_ref_arg = MAX (*max_ref_arg, n); ++ if (n != -1) ++ { ++ spec->data_arg = n - 1; ++ *max_ref_arg = MAX (*max_ref_arg, n); ++ } + } + else + /* Oops; that was actually the width and/or 0 padding flag. +@@ -161,10 +163,13 @@ __parse_one_specmb (const UCHAR_T *forma + /* The width argument might be found in a positional parameter. */ + n = read_int (&format); + +- if (n > 0 && *format == L_('$')) ++ if (n != 0 && *format == L_('$')) + { +- spec->width_arg = n - 1; +- *max_ref_arg = MAX (*max_ref_arg, n); ++ if (n != -1) ++ { ++ spec->width_arg = n - 1; ++ *max_ref_arg = MAX (*max_ref_arg, n); ++ } + ++format; /* Skip '$'. */ + } + } +@@ -178,9 +183,13 @@ __parse_one_specmb (const UCHAR_T *forma + } + } + else if (ISDIGIT (*format)) +- /* Constant width specification. */ +- spec->info.width = read_int (&format); ++ { ++ int n = read_int (&format); + ++ /* Constant width specification. */ ++ if (n != -1) ++ spec->info.width = n; ++ } + /* Get the precision. */ + spec->prec_arg = -1; + /* -1 means none given; 0 means explicit 0. */ +@@ -197,10 +206,13 @@ __parse_one_specmb (const UCHAR_T *forma + { + n = read_int (&format); + +- if (n > 0 && *format == L_('$')) ++ if (n != 0 && *format == L_('$')) + { +- spec->prec_arg = n - 1; +- *max_ref_arg = MAX (*max_ref_arg, n); ++ if (n != -1) ++ { ++ spec->prec_arg = n - 1; ++ *max_ref_arg = MAX (*max_ref_arg, n); ++ } + ++format; + } + } +@@ -214,7 +226,12 @@ __parse_one_specmb (const UCHAR_T *forma + } + } + else if (ISDIGIT (*format)) +- spec->info.prec = read_int (&format); ++ { ++ int n = read_int (&format); ++ ++ if (n != -1) ++ spec->info.prec = n; ++ } + else + /* "%.?" is treated like "%.0?". */ + spec->info.prec = 0; +@@ -295,9 +312,9 @@ __parse_one_specmb (const UCHAR_T *forma + /* We don't try to get the types for all arguments if the format + uses more than one. The normal case is covered though. If + the call returns -1 we continue with the normal specifiers. */ +- || (spec->ndata_args = (*__printf_arginfo_table[spec->info.spec]) +- (&spec->info, 1, &spec->data_arg_type, +- &spec->size)) < 0) ++ || (int) (spec->ndata_args = (*__printf_arginfo_table[spec->info.spec]) ++ (&spec->info, 1, &spec->data_arg_type, ++ &spec->size)) < 0) + { + /* Find the data argument types of a built-in spec. */ + spec->ndata_args = 1; +diff -Nrup a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c +--- a/stdio-common/vfprintf.c 2012-08-03 13:31:26.605168350 -0600 ++++ b/stdio-common/vfprintf.c 2012-08-03 14:09:26.836725512 -0600 +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1991-2008, 2009 Free Software Foundation, Inc. ++/* Copyright (C) 1991-2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -12,9 +12,8 @@ + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ ++ License along with the GNU C Library; if not, see ++ http://www.gnu.org/licenses/. */ + + #include <ctype.h> + #include <limits.h> +@@ -67,10 +66,10 @@ + do { \ + unsigned int _val = val; \ + assert ((unsigned int) done < (unsigned int) INT_MAX); \ +- if (__builtin_expect ((unsigned int) INT_MAX - (unsigned int) done \ +- < _val, 0)) \ ++ if (__builtin_expect (INT_MAX - done < _val, 0)) \ + { \ + done = -1; \ ++ __set_errno (EOVERFLOW); \ + goto all_done; \ + } \ + done += _val; \ +@@ -141,12 +140,17 @@ + do \ + { \ + assert ((size_t) done <= (size_t) INT_MAX); \ +- if ((size_t) PUT (s, (String), (Len)) != (size_t) (Len) \ +- || (size_t) INT_MAX - (size_t) done < (size_t) (Len)) \ ++ if ((size_t) PUT (s, (String), (Len)) != (size_t) (Len)) \ + { \ + done = -1; \ + goto all_done; \ + } \ ++ if (__builtin_expect (INT_MAX - done < (Len), 0)) \ ++ { \ ++ done = -1; \ ++ __set_errno (EOVERFLOW); \ ++ goto all_done; \ ++ } \ + done += (Len); \ + } \ + while (0) +@@ -1435,10 +1439,21 @@ vfprintf (FILE *s, const CHAR_T *format, + const UCHAR_T *tmp; /* Temporary value. */ + + tmp = ++f; +- if (ISDIGIT (*tmp) && read_int (&tmp) && *tmp == L_('$')) +- /* The width comes from a positional parameter. */ +- goto do_positional; ++ if (ISDIGIT (*tmp)) ++ { ++ int pos = read_int (&tmp); + ++ if (pos == -1) ++ { ++ __set_errno (EOVERFLOW); ++ done = -1; ++ goto all_done; ++ } ++ ++ if (pos && *tmp == L_('$')) ++ /* The width comes from a positional parameter. */ ++ goto do_positional; ++ } + width = va_arg (ap, int); + + /* Negative width means left justified. */ +@@ -1449,9 +1464,9 @@ vfprintf (FILE *s, const CHAR_T *format, + left = 1; + } + +- if (__builtin_expect (width >= (size_t) -1 / sizeof (CHAR_T) - 32, 0)) ++ if (__builtin_expect (width >= INT_MAX / sizeof (CHAR_T) - 32, 0)) + { +- __set_errno (ERANGE); ++ __set_errno (EOVERFLOW); + done = -1; + goto all_done; + } +@@ -1481,9 +1496,10 @@ vfprintf (FILE *s, const CHAR_T *format, + LABEL (width): + width = read_int (&f); + +- if (__builtin_expect (width >= (size_t) -1 / sizeof (CHAR_T) - 32, 0)) ++ if (__builtin_expect (width == -1 ++ || width >= INT_MAX / sizeof (CHAR_T) - 32, 0)) + { +- __set_errno (ERANGE); ++ __set_errno (EOVERFLOW); + done = -1; + goto all_done; + } +@@ -1518,10 +1534,21 @@ vfprintf (FILE *s, const CHAR_T *format, + const UCHAR_T *tmp; /* Temporary value. */ + + tmp = ++f; +- if (ISDIGIT (*tmp) && read_int (&tmp) > 0 && *tmp == L_('$')) +- /* The precision comes from a positional parameter. */ +- goto do_positional; ++ if (ISDIGIT (*tmp)) ++ { ++ int pos = read_int (&tmp); ++ ++ if (pos == -1) ++ { ++ __set_errno (EOVERFLOW); ++ done = -1; ++ goto all_done; ++ } + ++ if (pos && *tmp == L_('$')) ++ /* The precision comes from a positional parameter. */ ++ goto do_positional; ++ } + prec = va_arg (ap, int); + + /* If the precision is negative the precision is omitted. */ +@@ -1529,15 +1556,26 @@ vfprintf (FILE *s, const CHAR_T *format, + prec = -1; + } + else if (ISDIGIT (*f)) +- prec = read_int (&f); ++ { ++ prec = read_int (&f); ++ ++ /* The precision was specified in this case as an extremely ++ large positive value. */ ++ if (prec == -1) ++ { ++ __set_errno (EOVERFLOW); ++ done = -1; ++ goto all_done; ++ } ++ } + else + prec = 0; + if (prec > width + && prec > sizeof (work_buffer) / sizeof (work_buffer[0]) - 32) + { +- if (__builtin_expect (prec >= (size_t) -1 / sizeof (CHAR_T) - 32, 0)) ++ if (__builtin_expect (prec >= INT_MAX / sizeof (CHAR_T) - 32, 0)) + { +- __set_errno (ERANGE); ++ __set_errno (EOVERFLOW); + done = -1; + goto all_done; + } +@@ -1722,13 +1760,13 @@ do_positional: + nargs = MAX (nargs, max_ref_arg); + /* Calculate total size needed to represent a single argument across + all three argument-related arrays. */ +- bytes_per_arg = sizeof (*args_value) + sizeof (*args_size) +- + sizeof (*args_type); ++ bytes_per_arg = (sizeof (*args_value) + sizeof (*args_size) ++ + sizeof (*args_type)); + + /* Check for potential integer overflow. */ +- if (__builtin_expect (nargs > SIZE_MAX / bytes_per_arg, 0)) ++ if (__builtin_expect (nargs > INT_MAX / bytes_per_arg, 0)) + { +- __set_errno (ERANGE); ++ __set_errno (EOVERFLOW); + done = -1; + goto all_done; + } +@@ -1746,6 +1784,8 @@ do_positional: + } + } + ++ /* Set up the remaining two arrays to each point past the end of the ++ prior array, since space for all three has been allocated now. */ + args_size = &args_value[nargs].pa_int; + args_type = &args_size[nargs]; + memset (args_type, s->_flags2 & _IO_FLAGS2_FORTIFY ? '\xff' : '\0', diff --git a/src/patches/glibc/glibc-rh832516.patch b/src/patches/glibc/glibc-rh832516.patch new file mode 100644 index 0000000..476af4b --- /dev/null +++ b/src/patches/glibc/glibc-rh832516.patch @@ -0,0 +1,19 @@ +diff -Nrup a/locale/loadlocale.c b/locale/loadlocale.c +--- a/locale/loadlocale.c 2010-05-04 07:27:23.000000000 -0400 ++++ b/locale/loadlocale.c 2012-08-05 17:19:47.761384155 -0400 +@@ -170,7 +170,6 @@ _nl_load_locale (struct loaded_l10nfile + int save_err; + int alloc = ld_mapped; + +- file->decided = 1; + file->data = NULL; + + fd = open_not_cancel_2 (file->filename, O_RDONLY); +@@ -279,6 +278,7 @@ _nl_load_locale (struct loaded_l10nfile + newdata->alloc = alloc; + + file->data = newdata; ++ file->decided = 1; + } + + void diff --git a/src/patches/glibc/glibc-rh832694.patch b/src/patches/glibc/glibc-rh832694.patch new file mode 100644 index 0000000..249afb5 --- /dev/null +++ b/src/patches/glibc/glibc-rh832694.patch @@ -0,0 +1,22 @@ +diff --git a/sysdeps/gnu/errlist.c b/sysdeps/gnu/errlist.c +index e3d2faf..5437ff8 100644 +--- a/sysdeps/gnu/errlist.c ++++ b/sysdeps/gnu/errlist.c +@@ -780,11 +780,12 @@ TRANS The user's disk quota was exceeded. */ + #endif + #ifdef ESTALE + /* +-TRANS Stale NFS file handle. This indicates an internal confusion in the NFS +-TRANS system which is due to file system rearrangements on the server host. +-TRANS Repairing this condition usually requires unmounting and remounting +-TRANS the NFS file system on the local host. */ +- [ERR_REMAP (ESTALE)] = N_("Stale NFS file handle"), ++TRANS Stale file handle. This indicates an internal confusion in the ++TRANS file system which is due to file system rearrangements on the server host ++TRANS for NFS filesystems or corruption in other filesystems. ++TRANS Repairing this condition usually requires unmounting, possibly ++TRANS repairing and remounting the file system. */ ++ [ERR_REMAP (ESTALE)] = N_("Stale file handle"), + # if ESTALE > ERR_MAX + # undef ERR_MAX + # define ERR_MAX ESTALE diff --git a/src/patches/glibc/glibc-rh833716.patch b/src/patches/glibc/glibc-rh833716.patch deleted file mode 100644 index e44573c..0000000 --- a/src/patches/glibc/glibc-rh833716.patch +++ /dev/null @@ -1,45265 +0,0 @@ -diff -Nrup a/stdio-common/Makefile b/stdio-common/Makefile ---- a/stdio-common/Makefile 2012-05-23 14:54:54.670443298 -0600 -+++ b/stdio-common/Makefile 2012-05-22 13:47:51.000000000 -0600 -@@ -60,7 +60,7 @@ tests := tstscanf test_rdwr test-popen t - tst-popen tst-unlockedio tst-fmemopen2 tst-put-error tst-fgets \ - tst-fwrite bug16 bug17 tst-swscanf tst-sprintf2 bug18 bug18a \ - bug19 bug19a tst-popen2 scanf13 scanf14 scanf15 bug20 bug21 bug22 \ -- scanf16 scanf17 tst-setvbuf1 bug-vfprintf-nargs -+ scanf16 scanf17 tst-setvbuf1 bug-vfprintf-nargs bug23 bug23-2 bug23-3 - - test-srcs = tst-unbputc tst-printf - -diff -Nrup a/stdio-common/bug23-2.c b/stdio-common/bug23-2.c ---- a/stdio-common/bug23-2.c 1969-12-31 17:00:00.000000000 -0700 -+++ b/stdio-common/bug23-2.c 2012-05-24 07:12:55.331644716 -0600 -@@ -0,0 +1,70 @@ -+#include <stdio.h> -+#include <string.h> -+#include <stdlib.h> -+ -+static const char expected[] = "\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55%%%%%%%%%%%%%%%%%%%%%%%%%%\n"; -+ -+static int -+do_test (void) -+{ -+ char *buf = malloc (strlen (expected) + 1); -+ snprintf (buf, strlen (expected) + 1, -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", -+ "a", "b", "c", "d", 5); -+ return strcmp (buf, expected) != 0; -+} -+ -+#define TEST_FUNCTION do_test () -+#include "../test-skeleton.c" -diff -Nrup a/stdio-common/bug23-3.c b/stdio-common/bug23-3.c ---- a/stdio-common/bug23-3.c 1969-12-31 17:00:00.000000000 -0700 -+++ b/stdio-common/bug23-3.c 2012-05-24 07:13:26.948480695 -0600 -@@ -0,0 +1,45076 @@ -+#include <stdio.h> -+#include <string.h> -+#include <stdlib.h> -+ -+static const char expected[] = "\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55%%%%%%%%%%%%%%%%%%%%%%%%%%\n"; -+ -+ -+ -+int -+do_test (void) -+{ -+ char *buf = malloc (strlen (expected) + 1); -+ snprintf (buf, strlen (expected) + 1, -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", -+ "a", "b", "c", "d", 5); -+ return (strcmp (buf, expected) != 0); -+} -+#define TEST_FUNCTION do_test () -+#include "../test-skeleton.c" -+ -diff -Nrup a/stdio-common/bug23.c b/stdio-common/bug23.c ---- a/stdio-common/bug23.c 1969-12-31 17:00:00.000000000 -0700 -+++ b/stdio-common/bug23.c 2012-05-24 07:12:27.636788393 -0600 -@@ -0,0 +1,22 @@ -+#include <stdio.h> -+#include <string.h> -+#include <stdlib.h> -+ -+static const char expected[] = "\ -+\n\ -+a\n\ -+abbcd55%%%%%%%%%%%%%%%%%%%%%%%%%%\n"; -+ -+static int -+do_test (void) -+{ -+ char *buf = malloc (strlen (expected) + 1); -+ snprintf (buf, strlen (expected) + 1, -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", -+ "a", "b", "c", "d", 5); -+ return strcmp (buf, expected) != 0; -+} -+ -+#define TEST_FUNCTION do_test () -+#include "../test-skeleton.c" -diff -Nrup a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c ---- a/stdio-common/vfprintf.c 2012-05-23 14:54:54.689443199 -0600 -+++ b/stdio-common/vfprintf.c 2012-05-23 23:16:55.376155638 -0600 -@@ -238,6 +238,12 @@ vfprintf (FILE *s, const CHAR_T *format, - /* For the argument descriptions, which may be allocated on the heap. */ - void *args_malloced = NULL; - -+ /* For positional argument handling. */ -+ struct printf_spec *specs; -+ -+ /* Track if we malloced the SPECS array and thus must free it. */ -+ bool specs_malloced = false; -+ - /* This table maps a character into a number representing a - class. In each step there is a destination label for each - class. */ -@@ -1638,10 +1644,10 @@ do_positional: - /* Array with information about the needed arguments. This has to - be dynamically extensible. */ - size_t nspecs = 0; -- size_t nspecs_max = 32; /* A more or less arbitrary start value. */ -- struct printf_spec *specs -- = alloca (nspecs_max * sizeof (struct printf_spec)); -+ /* A more or less arbitrary start value. */ -+ size_t nspecs_size = 32 * sizeof (struct printf_spec); - -+ specs = alloca (nspecs_size); - /* The number of arguments the format string requests. This will - determine the size of the array needed to store the argument - attributes. */ -@@ -1678,14 +1684,30 @@ do_positional: - - for (f = lead_str_end; *f != L_('\0'); f = specs[nspecs++].next_fmt) - { -- if (nspecs >= nspecs_max) -+ if (nspecs * sizeof (*specs) >= nspecs_size) - { - /* Extend the array of format specifiers. */ - struct printf_spec *old = specs; -- specs = extend_alloca (specs, nspecs_max, 2 * nspecs_max); -+ if (__libc_use_alloca (2 * nspecs_size)) -+ specs = extend_alloca (specs, nspecs_size, 2 * nspecs_size); -+ else -+ { -+ nspecs_size *= 2; -+ specs = malloc (nspecs_size); -+ } -+ - - /* Copy the old array's elements to the new space. */ -- memmove (specs, old, nspecs * sizeof (struct printf_spec)); -+ memmove (specs, old, nspecs * sizeof (*specs)); -+ -+ /* If we had previously malloc'd space for SPECS, then -+ release it after the copy is complete. */ -+ if (specs_malloced) -+ free (old); -+ -+ /* Now set SPECS_MALLOCED if needed. */ -+ if (!__libc_use_alloca (nspecs_size)) -+ specs_malloced = true; - } - - /* Parse the format specifier. */ -@@ -1998,6 +2020,8 @@ do_positional: - } - - all_done: -+ if (specs_malloced) -+ free (specs); - free (args_malloced); - free (workstart); - /* Unlock the stream. */ diff --git a/src/patches/glibc/glibc-rh833717.patch b/src/patches/glibc/glibc-rh833717.patch new file mode 100644 index 0000000..e44573c --- /dev/null +++ b/src/patches/glibc/glibc-rh833717.patch @@ -0,0 +1,45265 @@ +diff -Nrup a/stdio-common/Makefile b/stdio-common/Makefile +--- a/stdio-common/Makefile 2012-05-23 14:54:54.670443298 -0600 ++++ b/stdio-common/Makefile 2012-05-22 13:47:51.000000000 -0600 +@@ -60,7 +60,7 @@ tests := tstscanf test_rdwr test-popen t + tst-popen tst-unlockedio tst-fmemopen2 tst-put-error tst-fgets \ + tst-fwrite bug16 bug17 tst-swscanf tst-sprintf2 bug18 bug18a \ + bug19 bug19a tst-popen2 scanf13 scanf14 scanf15 bug20 bug21 bug22 \ +- scanf16 scanf17 tst-setvbuf1 bug-vfprintf-nargs ++ scanf16 scanf17 tst-setvbuf1 bug-vfprintf-nargs bug23 bug23-2 bug23-3 + + test-srcs = tst-unbputc tst-printf + +diff -Nrup a/stdio-common/bug23-2.c b/stdio-common/bug23-2.c +--- a/stdio-common/bug23-2.c 1969-12-31 17:00:00.000000000 -0700 ++++ b/stdio-common/bug23-2.c 2012-05-24 07:12:55.331644716 -0600 +@@ -0,0 +1,70 @@ ++#include <stdio.h> ++#include <string.h> ++#include <stdlib.h> ++ ++static const char expected[] = "\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55%%%%%%%%%%%%%%%%%%%%%%%%%%\n"; ++ ++static int ++do_test (void) ++{ ++ char *buf = malloc (strlen (expected) + 1); ++ snprintf (buf, strlen (expected) + 1, ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", ++ "a", "b", "c", "d", 5); ++ return strcmp (buf, expected) != 0; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff -Nrup a/stdio-common/bug23-3.c b/stdio-common/bug23-3.c +--- a/stdio-common/bug23-3.c 1969-12-31 17:00:00.000000000 -0700 ++++ b/stdio-common/bug23-3.c 2012-05-24 07:13:26.948480695 -0600 +@@ -0,0 +1,45076 @@ ++#include <stdio.h> ++#include <string.h> ++#include <stdlib.h> ++ ++static const char expected[] = "\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55%%%%%%%%%%%%%%%%%%%%%%%%%%\n"; ++ ++ ++ ++int ++do_test (void) ++{ ++ char *buf = malloc (strlen (expected) + 1); ++ snprintf (buf, strlen (expected) + 1, ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", ++ "a", "b", "c", "d", 5); ++ return (strcmp (buf, expected) != 0); ++} ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" ++ +diff -Nrup a/stdio-common/bug23.c b/stdio-common/bug23.c +--- a/stdio-common/bug23.c 1969-12-31 17:00:00.000000000 -0700 ++++ b/stdio-common/bug23.c 2012-05-24 07:12:27.636788393 -0600 +@@ -0,0 +1,22 @@ ++#include <stdio.h> ++#include <string.h> ++#include <stdlib.h> ++ ++static const char expected[] = "\ ++\n\ ++a\n\ ++abbcd55%%%%%%%%%%%%%%%%%%%%%%%%%%\n"; ++ ++static int ++do_test (void) ++{ ++ char *buf = malloc (strlen (expected) + 1); ++ snprintf (buf, strlen (expected) + 1, ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", ++ "a", "b", "c", "d", 5); ++ return strcmp (buf, expected) != 0; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff -Nrup a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c +--- a/stdio-common/vfprintf.c 2012-05-23 14:54:54.689443199 -0600 ++++ b/stdio-common/vfprintf.c 2012-05-23 23:16:55.376155638 -0600 +@@ -238,6 +238,12 @@ vfprintf (FILE *s, const CHAR_T *format, + /* For the argument descriptions, which may be allocated on the heap. */ + void *args_malloced = NULL; + ++ /* For positional argument handling. */ ++ struct printf_spec *specs; ++ ++ /* Track if we malloced the SPECS array and thus must free it. */ ++ bool specs_malloced = false; ++ + /* This table maps a character into a number representing a + class. In each step there is a destination label for each + class. */ +@@ -1638,10 +1644,10 @@ do_positional: + /* Array with information about the needed arguments. This has to + be dynamically extensible. */ + size_t nspecs = 0; +- size_t nspecs_max = 32; /* A more or less arbitrary start value. */ +- struct printf_spec *specs +- = alloca (nspecs_max * sizeof (struct printf_spec)); ++ /* A more or less arbitrary start value. */ ++ size_t nspecs_size = 32 * sizeof (struct printf_spec); + ++ specs = alloca (nspecs_size); + /* The number of arguments the format string requests. This will + determine the size of the array needed to store the argument + attributes. */ +@@ -1678,14 +1684,30 @@ do_positional: + + for (f = lead_str_end; *f != L_('\0'); f = specs[nspecs++].next_fmt) + { +- if (nspecs >= nspecs_max) ++ if (nspecs * sizeof (*specs) >= nspecs_size) + { + /* Extend the array of format specifiers. */ + struct printf_spec *old = specs; +- specs = extend_alloca (specs, nspecs_max, 2 * nspecs_max); ++ if (__libc_use_alloca (2 * nspecs_size)) ++ specs = extend_alloca (specs, nspecs_size, 2 * nspecs_size); ++ else ++ { ++ nspecs_size *= 2; ++ specs = malloc (nspecs_size); ++ } ++ + + /* Copy the old array's elements to the new space. */ +- memmove (specs, old, nspecs * sizeof (struct printf_spec)); ++ memmove (specs, old, nspecs * sizeof (*specs)); ++ ++ /* If we had previously malloc'd space for SPECS, then ++ release it after the copy is complete. */ ++ if (specs_malloced) ++ free (old); ++ ++ /* Now set SPECS_MALLOCED if needed. */ ++ if (!__libc_use_alloca (nspecs_size)) ++ specs_malloced = true; + } + + /* Parse the format specifier. */ +@@ -1998,6 +2020,8 @@ do_positional: + } + + all_done: ++ if (specs_malloced) ++ free (specs); + free (args_malloced); + free (workstart); + /* Unlock the stream. */ diff --git a/src/patches/glibc/glibc-rh837026.patch b/src/patches/glibc/glibc-rh837026.patch deleted file mode 100644 index 558ad4f..0000000 --- a/src/patches/glibc/glibc-rh837026.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff -rup a/resolv/res_send.c b/resolv/res_send.c ---- a/resolv/res_send.c 2012-06-28 11:55:38.361886650 -0600 -+++ b/resolv/res_send.c 2012-06-28 11:51:38.253963687 -0600 -@@ -424,17 +424,15 @@ __libc_res_nsend(res_state statp, const - } - n = statp->nscount; - ext_total_nscount = EXT(statp).nscount + EXT(statp).nscount6; -- if (statp->nscount > ext_total_nscount) -- for (n = ext_total_nscount, ns = 0; -- n < statp->nscount; n++) { -- while (ns < MAXNS -- && EXT(statp).nsmap[ns] != MAXNS) -- ns++; -- if (ns == MAXNS) -- break; -- EXT(statp).nsmap[ns] = n; -- map[n] = ns++; -- } -+ for (n = 0, ns = 0; n < statp->nscount - ext_total_nscount; n++) { -+ while (ns < MAXNS -+ && EXT(statp).nsmap[ns] != MAXNS) -+ ns++; -+ if (ns == MAXNS) -+ break; -+ EXT(statp).nsmap[ns] = n; -+ map[n] = ns++; -+ } - EXT(statp).nscount = n; - for (ns = 0; ns < EXT(statp).nscount; ns++) { - n = map[ns]; diff --git a/src/patches/glibc/glibc-rh837695.patch b/src/patches/glibc/glibc-rh837695.patch new file mode 100644 index 0000000..03e1e02 --- /dev/null +++ b/src/patches/glibc/glibc-rh837695.patch @@ -0,0 +1,54 @@ +diff -rup a/nss/nsswitch.h b/nss/nsswitch.h +--- a/nss/nsswitch.h 2010-05-04 05:27:23.000000000 -0600 ++++ b/nss/nsswitch.h 2012-07-05 11:28:15.316585117 -0600 +@@ -182,4 +182,8 @@ extern int __nss_hostname_digits_dots (c + int *h_errnop); + libc_hidden_proto (__nss_hostname_digits_dots) + ++/* Maximum number of aliases we allow. */ ++#define MAX_NR_ALIASES 48 ++#define MAX_NR_ADDRS 48 ++ + #endif /* nsswitch.h */ +Only in b/nss: nsswitch.h.orig +diff -rup a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c +--- a/resolv/nss_dns/dns-host.c 2012-07-05 11:27:39.298760961 -0600 ++++ b/resolv/nss_dns/dns-host.c 2012-07-05 11:28:15.317585112 -0600 +@@ -89,10 +89,6 @@ + + #define RESOLVSORT + +-/* Maximum number of aliases we allow. */ +-#define MAX_NR_ALIASES 48 +-#define MAX_NR_ADDRS 48 +- + #if PACKETSZ > 65536 + # define MAXPACKET PACKETSZ + #else +Only in b/resolv/nss_dns: dns-host.c.orig +diff -rup a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c +--- a/sysdeps/posix/getaddrinfo.c 2012-07-05 11:27:39.284761028 -0600 ++++ b/sysdeps/posix/getaddrinfo.c 2012-07-05 14:15:39.785546125 -0600 +@@ -565,7 +565,10 @@ gaih_inet (const char *name, const struc + IPv6 scope ids. */ + if (req->ai_family == AF_INET) + { +- size_t tmpbuflen = 512; ++ /* Add room for struct host_data in resolv/nss_dns/dns-host.c */ ++ size_t tmpbuflen = 512 + (MAX_NR_ALIASES+MAX_NR_ADDRS+1)*sizeof(char*) ++ + 16 * sizeof(char); ++ + assert (tmpbuf == NULL); + tmpbuf = alloca_account (tmpbuflen, alloca_used); + int rc; +@@ -807,7 +810,7 @@ gaih_inet (const char *name, const struc + old_res_options = _res.options; + _res.options &= ~RES_USE_INET6; + +- size_t tmpbuflen = 1024; ++ size_t tmpbuflen = 1024 + sizeof(struct gaih_addrtuple); + malloc_tmpbuf = !__libc_use_alloca (alloca_used + tmpbuflen); + assert (tmpbuf == NULL); + if (!malloc_tmpbuf) +Only in b/sysdeps/posix: getaddrinfo.c.orig +Only in b/sysdeps/posix: getaddrinfo.c.rej diff --git a/src/patches/glibc/glibc-rh837918.patch b/src/patches/glibc/glibc-rh837918.patch new file mode 100644 index 0000000..924d83d --- /dev/null +++ b/src/patches/glibc/glibc-rh837918.patch @@ -0,0 +1,7183 @@ +diff -Nrup a/math/libm-test.inc b/math/libm-test.inc +--- a/math/libm-test.inc 2010-05-04 05:27:23.000000000 -0600 ++++ b/math/libm-test.inc 2012-08-06 09:54:00.821929695 -0600 +@@ -2018,6 +2018,142 @@ cos_test (void) + + + static void ++cos_test_tonearest (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(cos) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (cos_tonearest); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_TONEAREST)) ++ { ++ TEST_f_f (cos, 1, 0.5403023058681397174009366074429766037323L); ++ TEST_f_f (cos, 2, -0.4161468365471423869975682295007621897660L); ++ TEST_f_f (cos, 3, -0.9899924966004454572715727947312613023937L); ++ TEST_f_f (cos, 4, -0.6536436208636119146391681830977503814241L); ++ TEST_f_f (cos, 5, 0.2836621854632262644666391715135573083344L); ++ TEST_f_f (cos, 6, 0.9601702866503660205456522979229244054519L); ++ TEST_f_f (cos, 7, 0.7539022543433046381411975217191820122183L); ++ TEST_f_f (cos, 8, -0.1455000338086135258688413818311946826093L); ++ TEST_f_f (cos, 9, -0.9111302618846769883682947111811653112463L); ++ TEST_f_f (cos, 10, -0.8390715290764524522588639478240648345199L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (cos_tonearest); ++} ++ ++ ++static void ++cos_test_towardzero (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(cos) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (cos_towardzero); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_TOWARDZERO)) ++ { ++ TEST_f_f (cos, 1, 0.5403023058681397174009366074429766037323L); ++ TEST_f_f (cos, 2, -0.4161468365471423869975682295007621897660L); ++ TEST_f_f (cos, 3, -0.9899924966004454572715727947312613023937L); ++ TEST_f_f (cos, 4, -0.6536436208636119146391681830977503814241L); ++ TEST_f_f (cos, 5, 0.2836621854632262644666391715135573083344L); ++ TEST_f_f (cos, 6, 0.9601702866503660205456522979229244054519L); ++ TEST_f_f (cos, 7, 0.7539022543433046381411975217191820122183L); ++ TEST_f_f (cos, 8, -0.1455000338086135258688413818311946826093L); ++ TEST_f_f (cos, 9, -0.9111302618846769883682947111811653112463L); ++ TEST_f_f (cos, 10, -0.8390715290764524522588639478240648345199L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (cos_towardzero); ++} ++ ++ ++static void ++cos_test_downward (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(cos) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (cos_downward); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_DOWNWARD)) ++ { ++ TEST_f_f (cos, 1, 0.5403023058681397174009366074429766037323L); ++ TEST_f_f (cos, 2, -0.4161468365471423869975682295007621897660L); ++ TEST_f_f (cos, 3, -0.9899924966004454572715727947312613023937L); ++ TEST_f_f (cos, 4, -0.6536436208636119146391681830977503814241L); ++ TEST_f_f (cos, 5, 0.2836621854632262644666391715135573083344L); ++ TEST_f_f (cos, 6, 0.9601702866503660205456522979229244054519L); ++ TEST_f_f (cos, 7, 0.7539022543433046381411975217191820122183L); ++ TEST_f_f (cos, 8, -0.1455000338086135258688413818311946826093L); ++ TEST_f_f (cos, 9, -0.9111302618846769883682947111811653112463L); ++ TEST_f_f (cos, 10, -0.8390715290764524522588639478240648345199L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (cos_downward); ++} ++ ++ ++static void ++cos_test_upward (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(cos) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (cos_upward); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_UPWARD)) ++ { ++ TEST_f_f (cos, 1, 0.5403023058681397174009366074429766037323L); ++ TEST_f_f (cos, 2, -0.4161468365471423869975682295007621897660L); ++ TEST_f_f (cos, 3, -0.9899924966004454572715727947312613023937L); ++ TEST_f_f (cos, 4, -0.6536436208636119146391681830977503814241L); ++ TEST_f_f (cos, 5, 0.2836621854632262644666391715135573083344L); ++ TEST_f_f (cos, 6, 0.9601702866503660205456522979229244054519L); ++ TEST_f_f (cos, 7, 0.7539022543433046381411975217191820122183L); ++ TEST_f_f (cos, 8, -0.1455000338086135258688413818311946826093L); ++ TEST_f_f (cos, 9, -0.9111302618846769883682947111811653112463L); ++ TEST_f_f (cos, 10, -0.8390715290764524522588639478240648345199L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (cos_upward); ++} ++ ++ ++static void + cosh_test (void) + { + errno = 0; +@@ -2043,6 +2179,114 @@ cosh_test (void) + + + static void ++cosh_test_tonearest (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(cosh) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (cosh_tonearest); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_TONEAREST)) ++ { ++ TEST_f_f (cosh, 22, 1792456423.065795780980053377632656584997L); ++ TEST_f_f (cosh, 23, 4872401723.124451300068625740569997090344L); ++ TEST_f_f (cosh, 24, 13244561064.92173614708845674912733665919L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (cosh_tonearest); ++} ++ ++ ++static void ++cosh_test_towardzero (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(cosh) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (cosh_towardzero); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_TOWARDZERO)) ++ { ++ TEST_f_f (cosh, 22, 1792456423.065795780980053377632656584997L); ++ TEST_f_f (cosh, 23, 4872401723.124451300068625740569997090344L); ++ TEST_f_f (cosh, 24, 13244561064.92173614708845674912733665919L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (cosh_towardzero); ++} ++ ++ ++static void ++cosh_test_downward (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(cosh) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (cosh_downward); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_DOWNWARD)) ++ { ++ TEST_f_f (cosh, 22, 1792456423.065795780980053377632656584997L); ++ TEST_f_f (cosh, 23, 4872401723.124451300068625740569997090344L); ++ TEST_f_f (cosh, 24, 13244561064.92173614708845674912733665919L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (cosh_downward); ++} ++ ++ ++static void ++cosh_test_upward (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(cosh) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (cosh_upward); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_UPWARD)) ++ { ++ TEST_f_f (cosh, 22, 1792456423.065795780980053377632656584997L); ++ TEST_f_f (cosh, 23, 4872401723.124451300068625740569997090344L); ++ TEST_f_f (cosh, 24, 13244561064.92173614708845674912733665919L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (cosh_upward); ++} ++ ++ ++static void + cpow_test (void) + { + errno = 0; +@@ -2527,6 +2771,114 @@ exp_test (void) + + + static void ++exp_test_tonearest (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(exp) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (exp_tonearest); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_TONEAREST)) ++ { ++ TEST_f_f (exp, 1, M_El); ++ TEST_f_f (exp, 2, M_E2l); ++ TEST_f_f (exp, 3, M_E3l); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (exp_tonearest); ++} ++ ++ ++static void ++exp_test_towardzero (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(exp) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (exp_towardzero); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_TOWARDZERO)) ++ { ++ TEST_f_f (exp, 1, M_El); ++ TEST_f_f (exp, 2, M_E2l); ++ TEST_f_f (exp, 3, M_E3l); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (exp_towardzero); ++} ++ ++ ++static void ++exp_test_downward (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(exp) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (exp_downward); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_DOWNWARD)) ++ { ++ TEST_f_f (exp, 1, M_El); ++ TEST_f_f (exp, 2, M_E2l); ++ TEST_f_f (exp, 3, M_E3l); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (exp_downward); ++} ++ ++ ++static void ++exp_test_upward (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(exp) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (exp_upward); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_UPWARD)) ++ { ++ TEST_f_f (exp, 1, M_El); ++ TEST_f_f (exp, 2, M_E2l); ++ TEST_f_f (exp, 3, M_E3l); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (exp_upward); ++} ++ ++ ++static void + exp10_test (void) + { + errno = 0; +@@ -4848,22 +5200,127 @@ pow_test (void) + END (pow); + } + ++ + static void +-remainder_test (void) ++pow_test_tonearest (void) + { ++ int save_round_mode; + errno = 0; +- FUNC(remainder) (1.625, 1.0); ++ FUNC(pow) (0, 0); + if (errno == ENOSYS) + /* Function not implemented. */ + return; + +- START (remainder); ++ START (pow_tonearest); + +- TEST_ff_f (remainder, 1, 0, nan_value, INVALID_EXCEPTION); +- TEST_ff_f (remainder, 1, minus_zero, nan_value, INVALID_EXCEPTION); +- TEST_ff_f (remainder, plus_infty, 1, nan_value, INVALID_EXCEPTION); +- TEST_ff_f (remainder, minus_infty, 1, nan_value, INVALID_EXCEPTION); +- TEST_ff_f (remainder, nan_value, nan_value, nan_value); ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_TONEAREST)) ++ { ++ TEST_ff_f (pow, 1.0625L, 1.125L, 1.070582293028761362162622578677070098674L); ++ TEST_ff_f (pow, 1.5L, 1.03125L, 1.519127098714743184071644334163037684948L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (pow_tonearest); ++} ++ ++ ++static void ++pow_test_towardzero (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(pow) (0, 0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (pow_towardzero); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_TOWARDZERO)) ++ { ++ TEST_ff_f (pow, 1.0625L, 1.125L, 1.070582293028761362162622578677070098674L); ++ TEST_ff_f (pow, 1.5L, 1.03125L, 1.519127098714743184071644334163037684948L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (pow_towardzero); ++} ++ ++ ++static void ++pow_test_downward (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(pow) (0, 0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (pow_downward); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_DOWNWARD)) ++ { ++ TEST_ff_f (pow, 1.0625L, 1.125L, 1.070582293028761362162622578677070098674L); ++ TEST_ff_f (pow, 1.5L, 1.03125L, 1.519127098714743184071644334163037684948L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (pow_downward); ++} ++ ++ ++static void ++pow_test_upward (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(pow) (0, 0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (pow_upward); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_UPWARD)) ++ { ++ TEST_ff_f (pow, 1.0625L, 1.125L, 1.070582293028761362162622578677070098674L); ++ TEST_ff_f (pow, 1.5L, 1.03125L, 1.519127098714743184071644334163037684948L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (pow_upward); ++} ++ ++ ++static void ++remainder_test (void) ++{ ++ errno = 0; ++ FUNC(remainder) (1.625, 1.0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (remainder); ++ ++ TEST_ff_f (remainder, 1, 0, nan_value, INVALID_EXCEPTION); ++ TEST_ff_f (remainder, 1, minus_zero, nan_value, INVALID_EXCEPTION); ++ TEST_ff_f (remainder, plus_infty, 1, nan_value, INVALID_EXCEPTION); ++ TEST_ff_f (remainder, minus_infty, 1, nan_value, INVALID_EXCEPTION); ++ TEST_ff_f (remainder, nan_value, nan_value, nan_value); + + TEST_ff_f (remainder, 1.625, 1.0, -0.375); + TEST_ff_f (remainder, -1.625, 1.0, 0.375); +@@ -5545,6 +6002,7 @@ sin_test (void) + + #ifdef TEST_DOUBLE + TEST_f_f (sin, 0.80190127184058835, 0.71867942238767868); ++ TEST_f_f (sin, 2.522464e-1, 2.4957989804940911e-1); + #endif + + END (sin); +@@ -5553,6 +6011,142 @@ sin_test (void) + + + static void ++sin_test_tonearest (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(sin) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (sin_tonearest); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_TONEAREST)) ++ { ++ TEST_f_f (sin, 1, 0.8414709848078965066525023216302989996226L); ++ TEST_f_f (sin, 2, 0.9092974268256816953960198659117448427023L); ++ TEST_f_f (sin, 3, 0.1411200080598672221007448028081102798469L); ++ TEST_f_f (sin, 4, -0.7568024953079282513726390945118290941359L); ++ TEST_f_f (sin, 5, -0.9589242746631384688931544061559939733525L); ++ TEST_f_f (sin, 6, -0.2794154981989258728115554466118947596280L); ++ TEST_f_f (sin, 7, 0.6569865987187890903969990915936351779369L); ++ TEST_f_f (sin, 8, 0.9893582466233817778081235982452886721164L); ++ TEST_f_f (sin, 9, 0.4121184852417565697562725663524351793439L); ++ TEST_f_f (sin, 10, -0.5440211108893698134047476618513772816836L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (sin_tonearest); ++} ++ ++ ++static void ++sin_test_towardzero (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(sin) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (sin_towardzero); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_TOWARDZERO)) ++ { ++ TEST_f_f (sin, 1, 0.8414709848078965066525023216302989996226L); ++ TEST_f_f (sin, 2, 0.9092974268256816953960198659117448427023L); ++ TEST_f_f (sin, 3, 0.1411200080598672221007448028081102798469L); ++ TEST_f_f (sin, 4, -0.7568024953079282513726390945118290941359L); ++ TEST_f_f (sin, 5, -0.9589242746631384688931544061559939733525L); ++ TEST_f_f (sin, 6, -0.2794154981989258728115554466118947596280L); ++ TEST_f_f (sin, 7, 0.6569865987187890903969990915936351779369L); ++ TEST_f_f (sin, 8, 0.9893582466233817778081235982452886721164L); ++ TEST_f_f (sin, 9, 0.4121184852417565697562725663524351793439L); ++ TEST_f_f (sin, 10, -0.5440211108893698134047476618513772816836L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (sin_towardzero); ++} ++ ++ ++static void ++sin_test_downward (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(sin) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (sin_downward); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_DOWNWARD)) ++ { ++ TEST_f_f (sin, 1, 0.8414709848078965066525023216302989996226L); ++ TEST_f_f (sin, 2, 0.9092974268256816953960198659117448427023L); ++ TEST_f_f (sin, 3, 0.1411200080598672221007448028081102798469L); ++ TEST_f_f (sin, 4, -0.7568024953079282513726390945118290941359L); ++ TEST_f_f (sin, 5, -0.9589242746631384688931544061559939733525L); ++ TEST_f_f (sin, 6, -0.2794154981989258728115554466118947596280L); ++ TEST_f_f (sin, 7, 0.6569865987187890903969990915936351779369L); ++ TEST_f_f (sin, 8, 0.9893582466233817778081235982452886721164L); ++ TEST_f_f (sin, 9, 0.4121184852417565697562725663524351793439L); ++ TEST_f_f (sin, 10, -0.5440211108893698134047476618513772816836L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (sin_downward); ++} ++ ++ ++static void ++sin_test_upward (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(sin) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (sin_upward); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_UPWARD)) ++ { ++ TEST_f_f (sin, 1, 0.8414709848078965066525023216302989996226L); ++ TEST_f_f (sin, 2, 0.9092974268256816953960198659117448427023L); ++ TEST_f_f (sin, 3, 0.1411200080598672221007448028081102798469L); ++ TEST_f_f (sin, 4, -0.7568024953079282513726390945118290941359L); ++ TEST_f_f (sin, 5, -0.9589242746631384688931544061559939733525L); ++ TEST_f_f (sin, 6, -0.2794154981989258728115554466118947596280L); ++ TEST_f_f (sin, 7, 0.6569865987187890903969990915936351779369L); ++ TEST_f_f (sin, 8, 0.9893582466233817778081235982452886721164L); ++ TEST_f_f (sin, 9, 0.4121184852417565697562725663524351793439L); ++ TEST_f_f (sin, 10, -0.5440211108893698134047476618513772816836L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (sin_upward); ++} ++ ++ ++static void + sincos_test (void) + { + FLOAT sin_res, cos_res; +@@ -5610,6 +6204,115 @@ sinh_test (void) + END (sinh); + } + ++ ++static void ++sinh_test_tonearest (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(sinh) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (sinh_tonearest); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_TONEAREST)) ++ { ++ TEST_f_f (sinh, 22, 1792456423.065795780701106568345764104225L); ++ TEST_f_f (sinh, 23, 4872401723.124451299966006944252978187305L); ++ TEST_f_f (sinh, 24, 13244561064.92173614705070540368454568168L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (sinh_tonearest); ++} ++ ++ ++static void ++sinh_test_towardzero (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(sinh) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (sinh_towardzero); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_TOWARDZERO)) ++ { ++ TEST_f_f (sinh, 22, 1792456423.065795780701106568345764104225L); ++ TEST_f_f (sinh, 23, 4872401723.124451299966006944252978187305L); ++ TEST_f_f (sinh, 24, 13244561064.92173614705070540368454568168L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (sinh_towardzero); ++} ++ ++ ++static void ++sinh_test_downward (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(sinh) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (sinh_downward); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_DOWNWARD)) ++ { ++ TEST_f_f (sinh, 22, 1792456423.065795780701106568345764104225L); ++ TEST_f_f (sinh, 23, 4872401723.124451299966006944252978187305L); ++ TEST_f_f (sinh, 24, 13244561064.92173614705070540368454568168L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (sinh_downward); ++} ++ ++ ++static void ++sinh_test_upward (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(sinh) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (sinh_upward); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_UPWARD)) ++ { ++ TEST_f_f (sinh, 22, 1792456423.065795780701106568345764104225L); ++ TEST_f_f (sinh, 23, 4872401723.124451299966006944252978187305L); ++ TEST_f_f (sinh, 24, 13244561064.92173614705070540368454568168L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (sinh_upward); ++} ++ ++ + static void + sqrt_test (void) + { +@@ -5673,6 +6376,143 @@ tan_test (void) + END (tan); + } + ++ ++static void ++tan_test_tonearest (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(tan) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (tan_tonearest); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_TONEAREST)) ++ { ++ TEST_f_f (tan, 1, 1.5574077246549022305069748074583601730873L); ++ TEST_f_f (tan, 2, -2.1850398632615189916433061023136825434320L); ++ TEST_f_f (tan, 3, -0.1425465430742778052956354105339134932261L); ++ TEST_f_f (tan, 4, 1.1578212823495775831373424182673239231198L); ++ TEST_f_f (tan, 5, -3.3805150062465856369827058794473439087096L); ++ TEST_f_f (tan, 6, -0.2910061913847491570536995888681755428312L); ++ TEST_f_f (tan, 7, 0.8714479827243187364564508896003135663222L); ++ TEST_f_f (tan, 8, -6.7997114552203786999252627596086333648814L); ++ TEST_f_f (tan, 9, -0.4523156594418098405903708757987855343087L); ++ TEST_f_f (tan, 10, 0.6483608274590866712591249330098086768169L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (tan_tonearest); ++} ++ ++ ++static void ++tan_test_towardzero (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(tan) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (tan_towardzero); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_TOWARDZERO)) ++ { ++ TEST_f_f (tan, 1, 1.5574077246549022305069748074583601730873L); ++ TEST_f_f (tan, 2, -2.1850398632615189916433061023136825434320L); ++ TEST_f_f (tan, 3, -0.1425465430742778052956354105339134932261L); ++ TEST_f_f (tan, 4, 1.1578212823495775831373424182673239231198L); ++ TEST_f_f (tan, 5, -3.3805150062465856369827058794473439087096L); ++ TEST_f_f (tan, 6, -0.2910061913847491570536995888681755428312L); ++ TEST_f_f (tan, 7, 0.8714479827243187364564508896003135663222L); ++ TEST_f_f (tan, 8, -6.7997114552203786999252627596086333648814L); ++ TEST_f_f (tan, 9, -0.4523156594418098405903708757987855343087L); ++ TEST_f_f (tan, 10, 0.6483608274590866712591249330098086768169L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (tan_towardzero); ++} ++ ++ ++static void ++tan_test_downward (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(tan) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (tan_downward); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_DOWNWARD)) ++ { ++ TEST_f_f (tan, 1, 1.5574077246549022305069748074583601730873L); ++ TEST_f_f (tan, 2, -2.1850398632615189916433061023136825434320L); ++ TEST_f_f (tan, 3, -0.1425465430742778052956354105339134932261L); ++ TEST_f_f (tan, 4, 1.1578212823495775831373424182673239231198L); ++ TEST_f_f (tan, 5, -3.3805150062465856369827058794473439087096L); ++ TEST_f_f (tan, 6, -0.2910061913847491570536995888681755428312L); ++ TEST_f_f (tan, 7, 0.8714479827243187364564508896003135663222L); ++ TEST_f_f (tan, 8, -6.7997114552203786999252627596086333648814L); ++ TEST_f_f (tan, 9, -0.4523156594418098405903708757987855343087L); ++ TEST_f_f (tan, 10, 0.6483608274590866712591249330098086768169L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (tan_downward); ++} ++ ++ ++static void ++tan_test_upward (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(tan) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (tan_upward); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_UPWARD)) ++ { ++ TEST_f_f (tan, 1, 1.5574077246549022305069748074583601730873L); ++ TEST_f_f (tan, 2, -2.1850398632615189916433061023136825434320L); ++ TEST_f_f (tan, 3, -0.1425465430742778052956354105339134932261L); ++ TEST_f_f (tan, 4, 1.1578212823495775831373424182673239231198L); ++ TEST_f_f (tan, 5, -3.3805150062465856369827058794473439087096L); ++ TEST_f_f (tan, 6, -0.2910061913847491570536995888681755428312L); ++ TEST_f_f (tan, 7, 0.8714479827243187364564508896003135663222L); ++ TEST_f_f (tan, 8, -6.7997114552203786999252627596086333648814L); ++ TEST_f_f (tan, 9, -0.4523156594418098405903708757987855343087L); ++ TEST_f_f (tan, 10, 0.6483608274590866712591249330098086768169L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (tan_upward); ++} ++ ++ + static void + tanh_test (void) + { +@@ -6171,20 +7011,44 @@ main (int argc, char **argv) + atan_test (); + atan2_test (); + cos_test (); ++ cos_test_tonearest (); ++ cos_test_towardzero (); ++ cos_test_downward (); ++ cos_test_upward (); + sin_test (); ++ sin_test_tonearest (); ++ sin_test_towardzero (); ++ sin_test_downward (); ++ sin_test_upward (); + sincos_test (); + tan_test (); ++ tan_test_tonearest (); ++ tan_test_towardzero (); ++ tan_test_downward (); ++ tan_test_upward (); + + /* Hyperbolic functions: */ + acosh_test (); + asinh_test (); + atanh_test (); + cosh_test (); ++ cosh_test_tonearest (); ++ cosh_test_towardzero (); ++ cosh_test_downward (); ++ cosh_test_upward (); + sinh_test (); ++ sinh_test_tonearest (); ++ sinh_test_towardzero (); ++ sinh_test_downward (); ++ sinh_test_upward (); + tanh_test (); + + /* Exponential and logarithmic functions: */ + exp_test (); ++ exp_test_tonearest (); ++ exp_test_towardzero (); ++ exp_test_downward (); ++ exp_test_upward (); + exp10_test (); + exp2_test (); + expm1_test (); +@@ -6207,6 +7071,10 @@ main (int argc, char **argv) + fabs_test (); + hypot_test (); + pow_test (); ++ pow_test_tonearest (); ++ pow_test_towardzero (); ++ pow_test_downward (); ++ pow_test_upward (); + sqrt_test (); + + /* Error and gamma functions: */ +diff -Nrup a/math/math_private.h b/math/math_private.h +--- a/math/math_private.h 2010-05-04 05:27:23.000000000 -0600 ++++ b/math/math_private.h 2012-08-06 09:54:00.821929695 -0600 +@@ -357,4 +357,41 @@ extern void __docos (double __x, double + #define math_force_eval(x) __asm __volatile ("" : : "m" (x)) + #endif + ++ ++/* The standards only specify one variant of the fenv.h interfaces. ++ But at least for some architectures we can be more efficient if we ++ know what operations are going to be performed. Therefore we ++ define additional interfaces. By default they refer to the normal ++ interfaces. */ ++#define libc_fegetround() fegetround () ++#define libc_fegetroundf() fegetround () ++#define libc_fegetroundl() fegetround () ++ ++#define libc_fesetround(r) (void) fesetround (r) ++#define libc_fesetroundf(r) (void) fesetround (r) ++#define libc_fesetroundl(r) (void) fesetround (r) ++ ++#define libc_feholdexcept(e) (void) feholdexcept (e) ++#define libc_feholdexceptf(e) (void) feholdexcept (e) ++#define libc_feholdexceptl(e) (void) feholdexcept (e) ++ ++#define libc_feholdexcept_setround(e, r) \ ++ do { feholdexcept (e); fesetround (r); } while (0) ++#define libc_feholdexcept_setroundf(e, r) \ ++ do { feholdexcept (e); fesetround (r); } while (0) ++#define libc_feholdexcept_setroundl(e, r) \ ++ do { feholdexcept (e); fesetround (r); } while (0) ++ ++#define libc_fetestexcept(e) fetestexcept (e) ++#define libc_fetestexceptf(e) fetestexcept (e) ++#define libc_fetestexceptl(e) fetestexcept (e) ++ ++#define libc_fesetenv(e) (void) fesetenv (e) ++#define libc_fesetenvf(e) (void) fesetenv (e) ++#define libc_fesetenvl(e) (void) fesetenv (e) ++ ++#define libc_feupdateenv(e) (void) feupdateenv (e) ++#define libc_feupdateenvf(e) (void) feupdateenv (e) ++#define libc_feupdateenvl(e) (void) feupdateenv (e) ++ + #endif /* _MATH_PRIVATE_H_ */ +diff -Nrup a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps +--- a/sysdeps/i386/fpu/libm-test-ulps 2010-05-04 05:27:23.000000000 -0600 ++++ b/sysdeps/i386/fpu/libm-test-ulps 2012-08-06 11:29:16.370874961 -0600 +@@ -9,18 +9,12 @@ ldouble: 1 + Test "asin (-0.5) == -pi/6": + ildouble: 1 + ldouble: 1 +-Test "asin (-1.0) == -pi/2": +-ildouble: 1 +-ldouble: 1 + Test "asin (0.5) == pi/6": + ildouble: 1 + ldouble: 1 + Test "asin (0.75) == 0.848062078981481008052944338998418080": + ildouble: 1 + ldouble: 1 +-Test "asin (1.0) == pi/2": +-ildouble: 1 +-ldouble: 1 + + # atanh + Test "atanh (0.75) == 0.972955074527656652552676371721589865": +@@ -35,20 +29,6 @@ ildouble: 2 + ldouble: 2 + + # cacosh +-Test "Real part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i": +-double: 1 +-float: 9 +-idouble: 1 +-ifloat: 9 +-ildouble: 6 +-ldouble: 6 +-Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i": +-double: 1 +-float: 4 +-idouble: 1 +-ifloat: 4 +-ildouble: 1 +-ldouble: 1 + Test "Real part of: cacosh (0.75 + 1.25 i) == 1.13239363160530819522266333696834467 + 1.11752014915610270578240049553777969 i": + ildouble: 1 + ldouble: 1 +@@ -124,8 +104,6 @@ ldouble: 1 + Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i": + float: 1 + ifloat: 1 +-ildouble: 1 +-ldouble: 1 + Test "Real part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i": + double: 1 + idouble: 1 +@@ -149,9 +127,7 @@ float: 1 + idouble: 1 + ifloat: 1 + Test "Imaginary part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + + # cexp +@@ -186,8 +162,6 @@ ifloat: 1 + Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i": + double: 1 + idouble: 1 +-ildouble: 1 +-ldouble: 1 + Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i": + double: 1 + float: 1 +@@ -262,27 +236,175 @@ ifloat: 1 + # cos + Test "cos (M_PI_6l * 2.0) == 0.5": + double: 1 +-float: 1 + idouble: 1 +-ifloat: 1 + Test "cos (M_PI_6l * 4.0) == -0.5": + double: 2 + float: 1 + idouble: 2 + ifloat: 1 ++ ++# cos_downward ++Test "cos_downward (1) == 0.5403023058681397174009366074429766037323": ++double: 1 ++idouble: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_downward (10) == -0.8390715290764524522588639478240648345199": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++Test "cos_downward (3) == -0.9899924966004454572715727947312613023937": ++double: 1 ++idouble: 1 ++Test "cos_downward (4) == -0.6536436208636119146391681830977503814241": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_downward (5) == 0.2836621854632262644666391715135573083344": ++float: 1 ++ifloat: 1 ++Test "cos_downward (7) == 0.7539022543433046381411975217191820122183": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_downward (8) == -0.1455000338086135258688413818311946826093": ++ildouble: 1 ++ldouble: 1 ++Test "cos_downward (9) == -0.9111302618846769883682947111811653112463": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# cos_tonearest ++Test "cos_tonearest (8) == -0.1455000338086135258688413818311946826093": ++ildouble: 1 ++ldouble: 1 ++Test "cos_tonearest (9) == -0.9111302618846769883682947111811653112463": ++ildouble: 1 ++ldouble: 1 ++ ++# cos_towardzero ++Test "cos_towardzero (1) == 0.5403023058681397174009366074429766037323": ++double: 1 ++idouble: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_towardzero (10) == -0.8390715290764524522588639478240648345199": + ildouble: 1 + ldouble: 1 +-Test "cos (pi/2) == 0": ++Test "cos_towardzero (2) == -0.4161468365471423869975682295007621897660": + double: 1 + float: 1 + idouble: 1 + ifloat: 1 + ildouble: 1 + ldouble: 1 ++Test "cos_towardzero (3) == -0.9899924966004454572715727947312613023937": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_towardzero (4) == -0.6536436208636119146391681830977503814241": ++double: 1 ++idouble: 1 ++Test "cos_towardzero (5) == 0.2836621854632262644666391715135573083344": ++float: 1 ++ifloat: 1 ++Test "cos_towardzero (7) == 0.7539022543433046381411975217191820122183": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_towardzero (8) == -0.1455000338086135258688413818311946826093": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 + +-# cosh +-Test "cosh (0.75) == 1.29468328467684468784170818539018176": ++# cos_upward ++Test "cos_upward (1) == 0.5403023058681397174009366074429766037323": ++float: 1 ++ifloat: 1 ++Test "cos_upward (10) == -0.8390715290764524522588639478240648345199": ++ildouble: 1 ++ldouble: 1 ++Test "cos_upward (2) == -0.4161468365471423869975682295007621897660": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_upward (3) == -0.9899924966004454572715727947312613023937": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_upward (4) == -0.6536436208636119146391681830977503814241": ++double: 1 ++idouble: 1 ++Test "cos_upward (5) == 0.2836621854632262644666391715135573083344": ++double: 1 ++idouble: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_upward (6) == 0.9601702866503660205456522979229244054519": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 + ildouble: 1 ++ldouble: 1 ++Test "cos_upward (7) == 0.7539022543433046381411975217191820122183": ++double: 1 ++idouble: 1 ++Test "cos_upward (8) == -0.1455000338086135258688413818311946826093": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ ++# cosh_downward ++Test "cosh_downward (22) == 1792456423.065795780980053377632656584997": ++double: 1 ++float: 1 ++ldouble: 2 ++Test "cosh_downward (23) == 4872401723.124451300068625740569997090344": ++double: 1 ++float: 1 ++ldouble: 1 ++Test "cosh_downward (24) == 13244561064.92173614708845674912733665919": ++float: 1 ++ldouble: 1 ++ ++# cosh_tonearest ++Test "cosh_tonearest (22) == 1792456423.065795780980053377632656584997": ++ldouble: 1 ++ ++# cosh_towardzero ++Test "cosh_towardzero (22) == 1792456423.065795780980053377632656584997": ++double: 1 ++float: 1 ++ldouble: 2 ++Test "cosh_towardzero (23) == 4872401723.124451300068625740569997090344": ++double: 1 ++float: 1 ++ldouble: 1 ++Test "cosh_towardzero (24) == 13244561064.92173614708845674912733665919": ++float: 1 ++ldouble: 1 ++ ++# cosh_upward ++Test "cosh_upward (23) == 4872401723.124451300068625740569997090344": ++ldouble: 1 ++Test "cosh_upward (24) == 13244561064.92173614708845674912733665919": ++double: 1 + + # cpow + Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i": +@@ -353,12 +475,8 @@ double: 1 + float: 1 + idouble: 1 + ifloat: 1 +-ildouble: 2 +-ldouble: 2 + Test "Real part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + ildouble: 1 + ldouble: 1 +@@ -370,40 +488,36 @@ ifloat: 1 + Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i": + double: 1 + idouble: 1 +-ildouble: 439 +-ldouble: 439 ++ildouble: 1 ++ldouble: 1 + Test "Imaginary part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i": + float: 1 + ifloat: 1 +-ildouble: 2 +-ldouble: 2 ++ildouble: 1 ++ldouble: 1 + Test "Real part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i": + ildouble: 1 + ldouble: 1 + Test "Imaginary part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + ildouble: 3 + ldouble: 3 + + # ctanh + Test "Real part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i": +-ildouble: 5 +-ldouble: 5 ++ildouble: 3 ++ldouble: 3 + Test "Imaginary part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i": + float: 1 + ifloat: 1 +-ildouble: 25 +-ldouble: 25 ++ildouble: 1 ++ldouble: 1 + Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i": + float: 1 + ifloat: 1 + Test "Real part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + Test "Imaginary part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i": + double: 1 +@@ -419,9 +533,6 @@ double: 1 + idouble: 1 + + # erfc +-Test "erfc (0.75) == 0.288844366346484868401062165408589223": +-float: 1 +-ifloat: 1 + Test "erfc (1.25) == 0.0770998717435417698634765188027188596": + ildouble: 1 + ldouble: 1 +@@ -434,14 +545,6 @@ idouble: 1 + ildouble: 1 + ldouble: 1 + +-# exp +-Test "exp (0.75) == 2.11700001661267466854536981983709561": +-ildouble: 1 +-Test "exp (1000.0) == 0.197007111401704699388887935224332313e435": +-ildouble: 754 +-Test "exp (50.0) == 5184705528587072464087.45332293348538": +-ildouble: 16 +- + # exp10 + Test "exp10 (-1) == 0.1": + ildouble: 1 +@@ -453,6 +556,51 @@ Test "exp10 (3) == 1000": + ildouble: 8 + ldouble: 8 + ++# exp_downward ++Test "exp_downward (1) == e": ++ildouble: 1 ++ldouble: 1 ++Test "exp_downward (2) == e^2": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++Test "exp_downward (3) == e^3": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# exp_towardzero ++Test "exp_towardzero (1) == e": ++ildouble: 1 ++ldouble: 1 ++Test "exp_towardzero (2) == e^2": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++Test "exp_towardzero (3) == e^3": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# exp_upward ++Test "exp_upward (1) == e": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ + # expm1 + Test "expm1 (1) == M_El - 1.0": + ildouble: 1 +@@ -485,26 +633,24 @@ float: 1 + # j0 + Test "j0 (-4.0) == -3.9714980986384737228659076845169804197562E-1": + double: 1 +-float: 2 ++float: 1 + idouble: 1 +-ifloat: 2 ++ifloat: 1 + ildouble: 1 + ldouble: 1 + Test "j0 (10.0) == -0.245935764451348335197760862485328754": +-double: 3 ++double: 1 + float: 1 +-idouble: 3 ++idouble: 1 + ifloat: 1 + Test "j0 (2.0) == 0.223890779141235668051827454649948626": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + Test "j0 (4.0) == -3.9714980986384737228659076845169804197562E-1": + double: 1 +-float: 2 ++float: 1 + idouble: 1 +-ifloat: 2 ++ifloat: 1 + ildouble: 1 + ldouble: 1 + Test "j0 (8.0) == 0.171650807137553906090869407851972001": +@@ -512,13 +658,8 @@ float: 1 + ifloat: 1 + + # j1 +-Test "j1 (0.75) == 0.349243602174862192523281016426251335": +-double: 1 +-idouble: 1 + Test "j1 (10.0) == 0.0434727461688614366697487680258592883": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + ildouble: 1 + ldouble: 1 +@@ -526,9 +667,7 @@ Test "j1 (2.0) == 0.57672480775687338720 + double: 1 + idouble: 1 + Test "j1 (8.0) == 0.234636346853914624381276651590454612": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + ildouble: 1 + ldouble: 1 +@@ -536,38 +675,31 @@ ldouble: 1 + # jn + Test "jn (0, -4.0) == -3.9714980986384737228659076845169804197562E-1": + double: 1 +-float: 2 ++float: 1 + idouble: 1 +-ifloat: 2 ++ifloat: 1 + ildouble: 1 + ldouble: 1 + Test "jn (0, 10.0) == -0.245935764451348335197760862485328754": +-double: 3 ++double: 1 + float: 1 +-idouble: 3 ++idouble: 1 + ifloat: 1 + Test "jn (0, 2.0) == 0.223890779141235668051827454649948626": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + Test "jn (0, 4.0) == -3.9714980986384737228659076845169804197562E-1": + double: 1 +-float: 2 ++float: 1 + idouble: 1 +-ifloat: 2 ++ifloat: 1 + ildouble: 1 + ldouble: 1 + Test "jn (0, 8.0) == 0.171650807137553906090869407851972001": + float: 1 + ifloat: 1 +-Test "jn (1, 0.75) == 0.349243602174862192523281016426251335": +-double: 1 +-idouble: 1 + Test "jn (1, 10.0) == 0.0434727461688614366697487680258592883": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + ildouble: 1 + ldouble: 1 +@@ -575,9 +707,7 @@ Test "jn (1, 2.0) == 0.57672480775687338 + double: 1 + idouble: 1 + Test "jn (1, 8.0) == 0.234636346853914624381276651590454612": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + ildouble: 1 + ldouble: 1 +@@ -589,9 +719,7 @@ ifloat: 1 + ildouble: 1 + ldouble: 1 + Test "jn (10, 0.125) == 0.250543369809369890173993791865771547e-18": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + Test "jn (10, 0.75) == 0.149621713117596814698712483621682835e-10": + float: 1 +@@ -606,38 +734,32 @@ ifloat: 1 + ildouble: 1 + ldouble: 1 + Test "jn (10, 10.0) == 0.207486106633358857697278723518753428": +-double: 5 +-float: 2 +-idouble: 5 +-ifloat: 2 ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 + ildouble: 2 + ldouble: 2 + Test "jn (10, 2.0) == 0.251538628271673670963516093751820639e-6": +-double: 2 +-idouble: 2 + ildouble: 1 + ldouble: 1 + Test "jn (3, -1.0) == -0.0195633539826684059189053216217515083": + ildouble: 1 + ldouble: 1 + Test "jn (3, 0.75) == 0.848438342327410884392755236884386804e-2": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + Test "jn (3, 1.0) == 0.0195633539826684059189053216217515083": + ildouble: 1 + ldouble: 1 + Test "jn (3, 10.0) == 0.0583793793051868123429354784103409563": +-double: 5 +-float: 2 +-idouble: 5 +-ifloat: 2 ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 + ildouble: 1 + ldouble: 1 + Test "jn (3, 2.0) == 0.128943249474402051098793332969239835": +-double: 1 +-idouble: 1 + ildouble: 1 + ldouble: 1 + +@@ -648,9 +770,7 @@ idouble: 1 + ildouble: 1 + ldouble: 1 + Test "lgamma (0.7) == 0.260867246531666514385732417016759578": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1": + double: 1 +@@ -660,11 +780,6 @@ ifloat: 2 + ildouble: 1 + ldouble: 1 + +-# log +-Test "log (e) == 1": +-float: 1 +-ifloat: 1 +- + # log10 + Test "log10 (0.75) == -0.124938736608299953132449886193870744": + ildouble: 1 +@@ -675,20 +790,179 @@ ifloat: 1 + ildouble: 1 + ldouble: 1 + +-# sincos +-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res": ++# pow_downward ++Test "pow_downward (1.0625, 1.125) == 1.070582293028761362162622578677070098674": + double: 1 ++idouble: 1 ++ildouble: 1 ++ldouble: 1 ++Test "pow_downward (1.5, 1.03125) == 1.519127098714743184071644334163037684948": + float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# pow_towardzero ++Test "pow_towardzero (1.0625, 1.125) == 1.070582293028761362162622578677070098674": ++double: 1 + idouble: 1 ++ildouble: 1 ++ldouble: 1 ++Test "pow_towardzero (1.5, 1.03125) == 1.519127098714743184071644334163037684948": ++float: 1 + ifloat: 1 +-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res": ++ildouble: 1 ++ldouble: 1 ++ ++# pow_upward ++Test "pow_upward (1.0625, 1.125) == 1.070582293028761362162622578677070098674": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "pow_upward (1.5, 1.03125) == 1.519127098714743184071644334163037684948": ++double: 1 ++idouble: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# sin_downward ++Test "sin_downward (1) == 0.8414709848078965066525023216302989996226": ++ildouble: 1 ++ldouble: 1 ++Test "sin_downward (10) == -0.5440211108893698134047476618513772816836": ++double: 1 ++idouble: 1 ++ildouble: 1 ++ldouble: 1 ++Test "sin_downward (2) == 0.9092974268256816953960198659117448427023": ++double: 1 ++idouble: 1 ++Test "sin_downward (3) == 0.1411200080598672221007448028081102798469": ++ildouble: 1 ++ldouble: 1 ++Test "sin_downward (4) == -0.7568024953079282513726390945118290941359": ++double: 1 ++idouble: 1 ++ildouble: 1 ++ldouble: 1 ++Test "sin_downward (5) == -0.9589242746631384688931544061559939733525": ++double: 1 ++idouble: 1 ++ildouble: 1 ++ldouble: 1 ++Test "sin_downward (6) == -0.2794154981989258728115554466118947596280": + double: 1 + float: 1 + idouble: 1 + ifloat: 1 ++Test "sin_downward (7) == 0.6569865987187890903969990915936351779369": + ildouble: 1 + ldouble: 1 +-Test "sincos (pi/2, &sin_res, &cos_res) puts 0 in cos_res": ++Test "sin_downward (8) == 0.9893582466233817778081235982452886721164": ++double: 1 ++idouble: 1 ++ildouble: 1 ++ldouble: 1 ++Test "sin_downward (9) == 0.4121184852417565697562725663524351793439": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# sin_tonearest ++Test "sin_tonearest (10) == -0.5440211108893698134047476618513772816836": ++ildouble: 1 ++ldouble: 1 ++Test "sin_tonearest (4) == -0.7568024953079282513726390945118290941359": ++ildouble: 1 ++ldouble: 1 ++Test "sin_tonearest (9) == 0.4121184852417565697562725663524351793439": ++ildouble: 1 ++ldouble: 1 ++ ++# sin_towardzero ++Test "sin_towardzero (1) == 0.8414709848078965066525023216302989996226": ++ildouble: 1 ++ldouble: 1 ++Test "sin_towardzero (10) == -0.5440211108893698134047476618513772816836": ++float: 1 ++ifloat: 1 ++Test "sin_towardzero (2) == 0.9092974268256816953960198659117448427023": ++double: 1 ++idouble: 1 ++Test "sin_towardzero (3) == 0.1411200080598672221007448028081102798469": ++ildouble: 1 ++ldouble: 1 ++Test "sin_towardzero (4) == -0.7568024953079282513726390945118290941359": ++float: 1 ++ifloat: 1 ++Test "sin_towardzero (5) == -0.9589242746631384688931544061559939733525": ++float: 1 ++ifloat: 1 ++Test "sin_towardzero (6) == -0.2794154981989258728115554466118947596280": ++ildouble: 1 ++ldouble: 1 ++Test "sin_towardzero (7) == 0.6569865987187890903969990915936351779369": ++ildouble: 1 ++ldouble: 1 ++Test "sin_towardzero (8) == 0.9893582466233817778081235982452886721164": ++double: 1 ++idouble: 1 ++ildouble: 1 ++ldouble: 1 ++Test "sin_towardzero (9) == 0.4121184852417565697562725663524351793439": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# sin_upward ++Test "sin_upward (1) == 0.8414709848078965066525023216302989996226": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++Test "sin_upward (10) == -0.5440211108893698134047476618513772816836": ++float: 1 ++ifloat: 1 ++Test "sin_upward (2) == 0.9092974268256816953960198659117448427023": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "sin_upward (3) == 0.1411200080598672221007448028081102798469": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++Test "sin_upward (4) == -0.7568024953079282513726390945118290941359": ++float: 1 ++ifloat: 1 ++Test "sin_upward (5) == -0.9589242746631384688931544061559939733525": ++float: 1 ++ifloat: 1 ++Test "sin_upward (6) == -0.2794154981989258728115554466118947596280": ++ildouble: 1 ++ldouble: 1 ++Test "sin_upward (7) == 0.6569865987187890903969990915936351779369": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++Test "sin_upward (8) == 0.9893582466233817778081235982452886721164": ++float: 1 ++ifloat: 1 ++ ++# sincos ++Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res": ++double: 1 ++idouble: 1 ++Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res": + double: 1 + float: 1 + idouble: 1 +@@ -698,66 +972,237 @@ ldouble: 1 + + # sinh + Test "sinh (0.75) == 0.822316731935829980703661634446913849": +-double: 1 + ildouble: 1 + +-# tan +-Test "tan (pi/4) == 1": ++# sinh_downward ++Test "sinh_downward (22) == 1792456423.065795780701106568345764104225": + double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ldouble: 4 ++Test "sinh_downward (23) == 4872401723.124451299966006944252978187305": ++double: 1 ++float: 1 + idouble: 1 ++ifloat: 1 ++Test "sinh_downward (24) == 13244561064.92173614705070540368454568168": ++float: 1 ++ifloat: 1 ++ldouble: 5 + +-# tgamma +-Test "tgamma (-0.5) == -2 sqrt (pi)": +-double: 2 ++# sinh_tonearest ++Test "sinh_tonearest (22) == 1792456423.065795780701106568345764104225": ++ldouble: 3 ++Test "sinh_tonearest (23) == 4872401723.124451299966006944252978187305": ++ldouble: 1 ++Test "sinh_tonearest (24) == 13244561064.92173614705070540368454568168": ++ldouble: 6 ++ ++# sinh_towardzero ++Test "sinh_towardzero (22) == 1792456423.065795780701106568345764104225": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ldouble: 4 ++Test "sinh_towardzero (23) == 4872401723.124451299966006944252978187305": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++Test "sinh_towardzero (24) == 13244561064.92173614705070540368454568168": ++float: 1 ++ifloat: 1 ++ldouble: 5 ++ ++# sinh_upward ++Test "sinh_upward (22) == 1792456423.065795780701106568345764104225": ++ldouble: 16 ++Test "sinh_upward (23) == 4872401723.124451299966006944252978187305": ++ldouble: 27 ++Test "sinh_upward (24) == 13244561064.92173614705070540368454568168": ++double: 1 ++idouble: 1 ++ldouble: 7 ++ ++# tan_downward ++Test "tan_downward (1) == 1.5574077246549022305069748074583601730873": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++Test "tan_downward (10) == 0.6483608274590866712591249330098086768169": ++float: 1 ++ifloat: 1 ++Test "tan_downward (2) == -2.1850398632615189916433061023136825434320": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++Test "tan_downward (3) == -0.1425465430742778052956354105339134932261": ++double: 1 ++idouble: 1 ++Test "tan_downward (4) == 1.1578212823495775831373424182673239231198": + float: 1 +-idouble: 2 + ifloat: 1 + ildouble: 1 + ldouble: 1 +-Test "tgamma (0.5) == sqrt (pi)": ++Test "tan_downward (5) == -3.3805150062465856369827058794473439087096": ++ildouble: 1 ++ldouble: 1 ++Test "tan_downward (6) == -0.2910061913847491570536995888681755428312": ++double: 1 + float: 1 ++idouble: 1 + ifloat: 1 +-Test "tgamma (0.7) == 1.29805533264755778568117117915281162": ++Test "tan_downward (7) == 0.8714479827243187364564508896003135663222": ++double: 1 ++idouble: 1 ++Test "tan_downward (8) == -6.7997114552203786999252627596086333648814": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_downward (9) == -0.4523156594418098405903708757987855343087": ++float: 1 ++ifloat: 1 ++ ++# tan_tonearest ++Test "tan_tonearest (6) == -0.2910061913847491570536995888681755428312": ++ildouble: 1 ++ldouble: 1 ++Test "tan_tonearest (8) == -6.7997114552203786999252627596086333648814": ++ildouble: 1 ++ldouble: 1 ++Test "tan_tonearest (9) == -0.4523156594418098405903708757987855343087": ++ildouble: 1 ++ldouble: 1 ++ ++# tan_towardzero ++Test "tan_towardzero (1) == 1.5574077246549022305069748074583601730873": + double: 1 + float: 1 + idouble: 1 + ifloat: 1 +-Test "tgamma (4) == 6": ++Test "tan_towardzero (10) == 0.6483608274590866712591249330098086768169": ++float: 1 ++ifloat: 1 ++Test "tan_towardzero (2) == -2.1850398632615189916433061023136825434320": ++ildouble: 1 ++ldouble: 1 ++Test "tan_towardzero (3) == -0.1425465430742778052956354105339134932261": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_towardzero (4) == 1.1578212823495775831373424182673239231198": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_towardzero (5) == -3.3805150062465856369827058794473439087096": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++Test "tan_towardzero (6) == -0.2910061913847491570536995888681755428312": ++ildouble: 1 ++ldouble: 1 ++Test "tan_towardzero (7) == 0.8714479827243187364564508896003135663222": ++double: 1 ++idouble: 1 ++Test "tan_towardzero (8) == -6.7997114552203786999252627596086333648814": ++double: 1 ++idouble: 1 ++ildouble: 2 ++ldouble: 2 ++Test "tan_towardzero (9) == -0.4523156594418098405903708757987855343087": ++double: 1 ++idouble: 1 + ildouble: 1 + ldouble: 1 + +-# y0 +-Test "y0 (0.125) == -1.38968062514384052915582277745018693": ++# tan_upward ++Test "tan_upward (1) == 1.5574077246549022305069748074583601730873": + ildouble: 1 + ldouble: 1 +-Test "y0 (0.75) == -0.137172769385772397522814379396581855": ++Test "tan_upward (10) == 0.6483608274590866712591249330098086768169": ++double: 1 ++idouble: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (2) == -2.1850398632615189916433061023136825434320": ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (3) == -0.1425465430742778052956354105339134932261": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (4) == 1.1578212823495775831373424182673239231198": ++double: 1 ++idouble: 1 ++Test "tan_upward (5) == -3.3805150062465856369827058794473439087096": + double: 1 + float: 1 + idouble: 1 + ifloat: 1 +-Test "y0 (1.0) == 0.0882569642156769579829267660235151628": ++Test "tan_upward (6) == -0.2910061913847491570536995888681755428312": ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (7) == 0.8714479827243187364564508896003135663222": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (8) == -6.7997114552203786999252627596086333648814": ++double: 1 ++idouble: 1 ++ildouble: 2 ++ldouble: 2 ++Test "tan_upward (9) == -0.4523156594418098405903708757987855343087": ++double: 1 ++idouble: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# tgamma ++Test "tgamma (-0.5) == -2 sqrt (pi)": + double: 2 + float: 1 + idouble: 2 + ifloat: 1 + ildouble: 1 + ldouble: 1 +-Test "y0 (1.5) == 0.382448923797758843955068554978089862": ++Test "tgamma (0.5) == sqrt (pi)": ++float: 1 ++ifloat: 1 ++Test "tgamma (0.7) == 1.29805533264755778568117117915281162": + double: 1 + float: 1 + idouble: 1 + ifloat: 1 +-Test "y0 (10.0) == 0.0556711672835993914244598774101900481": ++ ++# y0 ++Test "y0 (0.125) == -1.38968062514384052915582277745018693": ++ildouble: 1 ++ldouble: 1 ++Test "y0 (0.75) == -0.137172769385772397522814379396581855": + double: 1 + float: 1 + idouble: 1 + ifloat: 1 ++Test "y0 (1.0) == 0.0882569642156769579829267660235151628": ++ildouble: 1 ++ldouble: 1 ++Test "y0 (10.0) == 0.0556711672835993914244598774101900481": ++float: 1 ++ifloat: 1 + ildouble: 1 + ldouble: 1 + Test "y0 (8.0) == 0.223521489387566220527323400498620359": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + ildouble: 1 + ldouble: 1 +@@ -766,9 +1211,6 @@ ldouble: 1 + Test "y1 (0.125) == -5.19993611253477499595928744876579921": + ildouble: 1 + ldouble: 1 +-Test "y1 (1.0) == -0.781212821300288716547150000047964821": +-double: 1 +-idouble: 1 + Test "y1 (10.0) == 0.249015424206953883923283474663222803": + double: 2 + float: 2 +@@ -782,9 +1224,7 @@ ifloat: 2 + ildouble: 1 + ldouble: 1 + Test "y1 (8.0) == -0.158060461731247494255555266187483550": +-double: 1 + float: 2 +-idouble: 1 + ifloat: 2 + ildouble: 1 + ldouble: 1 +@@ -799,37 +1239,21 @@ float: 1 + idouble: 1 + ifloat: 1 + Test "yn (0, 1.0) == 0.0882569642156769579829267660235151628": +-double: 2 +-float: 1 +-idouble: 2 +-ifloat: 1 + ildouble: 1 + ldouble: 1 +-Test "yn (0, 1.5) == 0.382448923797758843955068554978089862": +-double: 1 +-float: 1 +-idouble: 1 +-ifloat: 1 + Test "yn (0, 10.0) == 0.0556711672835993914244598774101900481": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + ildouble: 1 + ldouble: 1 + Test "yn (0, 8.0) == 0.223521489387566220527323400498620359": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + ildouble: 1 + ldouble: 1 + Test "yn (1, 0.125) == -5.19993611253477499595928744876579921": + ildouble: 1 + ldouble: 1 +-Test "yn (1, 1.0) == -0.781212821300288716547150000047964821": +-double: 1 +-idouble: 1 + Test "yn (1, 10.0) == 0.249015424206953883923283474663222803": + double: 2 + float: 2 +@@ -843,17 +1267,13 @@ ifloat: 2 + ildouble: 1 + ldouble: 1 + Test "yn (1, 8.0) == -0.158060461731247494255555266187483550": +-double: 1 + float: 2 +-idouble: 1 + ifloat: 2 + ildouble: 1 + ldouble: 1 + Test "yn (10, 0.125) == -127057845771019398.252538486899753195": + double: 1 +-float: 1 + idouble: 1 +-ifloat: 1 + ildouble: 2 + ldouble: 2 + Test "yn (10, 0.75) == -2133501638.90573424452445412893839236": +@@ -862,28 +1282,22 @@ ifloat: 1 + ildouble: 4 + ldouble: 4 + Test "yn (10, 1.0) == -121618014.278689189288130426667971145": +-double: 1 + float: 2 +-idouble: 1 + ifloat: 2 + Test "yn (10, 10.0) == -0.359814152183402722051986577343560609": + double: 1 +-float: 3 ++float: 1 + idouble: 1 +-ifloat: 3 ++ifloat: 1 + Test "yn (10, 2.0) == -129184.542208039282635913145923304214": +-double: 2 + float: 3 +-idouble: 2 + ifloat: 3 + Test "yn (3, 0.125) == -2612.69757350066712600220955744091741": + ildouble: 1 + ldouble: 1 + Test "yn (3, 0.75) == -12.9877176234475433186319774484809207": + double: 1 +-float: 1 + idouble: 1 +-ifloat: 1 + ildouble: 2 + ldouble: 2 + Test "yn (3, 10.0) == -0.251362657183837329779204747654240998": +@@ -892,15 +1306,13 @@ float: 1 + idouble: 1 + ifloat: 1 + Test "yn (3, 2.0) == -1.12778377684042778608158395773179238": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + + # Maximal error of functions: + Function: "acos": +-ildouble: 622 +-ldouble: 622 ++ildouble: 1 ++ldouble: 1 + + Function: "asin": + ildouble: 1 +@@ -917,18 +1329,6 @@ ildouble: 2 + ldouble: 2 + + Function: Real part of "cacosh": +-double: 1 +-float: 9 +-idouble: 1 +-ifloat: 9 +-ildouble: 6 +-ldouble: 6 +- +-Function: Imaginary part of "cacosh": +-double: 1 +-float: 4 +-idouble: 1 +-ifloat: 4 + ildouble: 1 + ldouble: 1 + +@@ -1033,8 +1433,6 @@ double: 1 + float: 1 + idouble: 1 + ifloat: 1 +-ildouble: 1 +-ldouble: 1 + + Function: "cos": + double: 2 +@@ -1044,16 +1442,58 @@ ifloat: 1 + ildouble: 1 + ldouble: 1 + +-Function: "cosh": ++Function: "cos_downward": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "cos_tonearest": + ildouble: 1 ++ldouble: 1 ++ ++Function: "cos_towardzero": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "cos_upward": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "cosh_downward": ++double: 1 ++float: 1 ++ldouble: 2 ++ ++Function: "cosh_tonearest": ++ldouble: 1 ++ ++Function: "cosh_towardzero": ++double: 1 ++float: 1 ++ldouble: 2 ++ ++Function: "cosh_upward": ++double: 1 ++ldouble: 1 + + Function: Real part of "cpow": + double: 1 + float: 4 + idouble: 1 + ifloat: 4 +-ildouble: 763 +-ldouble: 763 ++ildouble: 6 ++ldouble: 6 + + Function: Imaginary part of "cpow": + double: 2 +@@ -1086,38 +1526,32 @@ double: 1 + float: 1 + idouble: 1 + ifloat: 1 +-ildouble: 2 +-ldouble: 2 + + Function: Real part of "ctan": + double: 1 + idouble: 1 +-ildouble: 439 +-ldouble: 439 ++ildouble: 1 ++ldouble: 1 + + Function: Imaginary part of "ctan": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + ildouble: 3 + ldouble: 3 + + Function: Real part of "ctanh": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 +-ildouble: 5 +-ldouble: 5 ++ildouble: 3 ++ldouble: 3 + + Function: Imaginary part of "ctanh": + double: 1 + float: 1 + idouble: 1 + ifloat: 1 +-ildouble: 25 +-ldouble: 25 ++ildouble: 1 ++ldouble: 1 + + Function: "erf": + double: 1 +@@ -1125,19 +1559,36 @@ idouble: 1 + + Function: "erfc": + double: 1 +-float: 1 + idouble: 1 +-ifloat: 1 + ildouble: 1 + ldouble: 1 + +-Function: "exp": +-ildouble: 754 +- + Function: "exp10": + ildouble: 8 + ldouble: 8 + ++Function: "exp_downward": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ ++Function: "exp_towardzero": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ ++Function: "exp_upward": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ + Function: "expm1": + ildouble: 1 + +@@ -1151,10 +1602,10 @@ Function: "hypot": + float: 1 + + Function: "j0": +-double: 3 +-float: 2 +-idouble: 3 +-ifloat: 2 ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 + ildouble: 1 + ldouble: 1 + +@@ -1167,10 +1618,10 @@ ildouble: 1 + ldouble: 1 + + Function: "jn": +-double: 5 +-float: 2 +-idouble: 5 +-ifloat: 2 ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 + ildouble: 2 + ldouble: 2 + +@@ -1192,6 +1643,58 @@ ifloat: 1 + ildouble: 1 + ldouble: 1 + ++Function: "pow_downward": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "pow_towardzero": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "pow_upward": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "sin_downward": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "sin_tonearest": ++ildouble: 1 ++ldouble: 1 ++ ++Function: "sin_towardzero": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "sin_upward": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ + Function: "sincos": + double: 1 + float: 1 +@@ -1201,13 +1704,62 @@ ildouble: 1 + ldouble: 1 + + Function: "sinh": +-double: 1 + ildouble: 1 + ++Function: "sinh_downward": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ldouble: 5 ++ ++Function: "sinh_tonearest": ++ldouble: 6 ++ ++Function: "sinh_towardzero": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ldouble: 5 ++ ++Function: "sinh_upward": ++double: 1 ++idouble: 1 ++ldouble: 27 ++ + Function: "tan": + double: 1 + idouble: 1 + ++Function: "tan_downward": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "tan_tonearest": ++ildouble: 1 ++ldouble: 1 ++ ++Function: "tan_towardzero": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ ++Function: "tan_upward": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ + Function: "tgamma": + double: 2 + float: 1 +@@ -1217,9 +1769,9 @@ ildouble: 1 + ldouble: 1 + + Function: "y0": +-double: 2 ++double: 1 + float: 1 +-idouble: 2 ++idouble: 1 + ifloat: 1 + ildouble: 1 + ldouble: 1 +diff -Nrup a/sysdeps/ieee754/dbl-64/e_exp.c b/sysdeps/ieee754/dbl-64/e_exp.c +--- a/sysdeps/ieee754/dbl-64/e_exp.c 2010-05-04 05:27:23.000000000 -0600 ++++ b/sysdeps/ieee754/dbl-64/e_exp.c 2012-08-06 09:54:00.823929687 -0600 +@@ -1,7 +1,7 @@ + /* + * IBM Accurate Mathematical Library + * written by International Business Machines Corp. +- * Copyright (C) 2001 Free Software Foundation ++ * Copyright (C) 2001-2012 Free Software Foundation + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by +@@ -39,6 +39,7 @@ + #include "MathLib.h" + #include "uexp.tbl" + #include "math_private.h" ++#include <fenv.h> + + double __slowexp(double); + +@@ -53,6 +54,10 @@ double __ieee754_exp(double x) { + int4 k; + #endif + int4 i,j,m,n,ex; ++ fenv_t env; ++ double retval; ++ ++ libc_feholdexcept_setround (&env, FE_TONEAREST); + + junk1.x = x; + m = junk1.i[HIGH_HALF]; +@@ -85,18 +90,19 @@ double __ieee754_exp(double x) { + rem=(bet + bet*eps)+al*eps; + res = al + rem; + cor = (al - res) + rem; +- if (res == (res+cor*err_0)) return res*binexp.x; +- else return __slowexp(x); /*if error is over bound */ ++ if (res == (res+cor*err_0)) { retval = res*binexp.x; goto ret; } ++ else { retval = __slowexp(x); goto ret; } /*if error is over bound */ + } + +- if (n <= smallint) return 1.0; ++ if (n <= smallint) { retval = 1.0; goto ret; } + + if (n >= badint) { +- if (n > infint) return(x+x); /* x is NaN */ +- if (n < infint) return ( (x>0) ? (hhuge*hhuge) : (tiny*tiny) ); ++ if (n > infint) { retval = x+x; goto ret; } /* x is NaN */ ++ if (n < infint) { retval = (x>0) ? (hhuge*hhuge) : (tiny*tiny); goto ret; } + /* x is finite, cause either overflow or underflow */ +- if (junk1.i[LOW_HALF] != 0) return (x+x); /* x is NaN */ +- return ((x>0)?inf.x:zero ); /* |x| = inf; return either inf or 0 */ ++ if (junk1.i[LOW_HALF] != 0) { retval = x+x; goto ret; } /* x is NaN */ ++ retval = (x>0)?inf.x:zero; /* |x| = inf; return either inf or 0 */ ++ goto ret; + } + + y = x*log2e.x + three51.x; +@@ -121,8 +127,8 @@ double __ieee754_exp(double x) { + if (res < 1.0) {res+=res; cor+=cor; ex-=1;} + if (ex >=-1022) { + binexp.i[HIGH_HALF] = (1023+ex)<<20; +- if (res == (res+cor*err_0)) return res*binexp.x; +- else return __slowexp(x); /*if error is over bound */ ++ if (res == (res+cor*err_0)) { retval = res*binexp.x; goto ret; } ++ else { retval = __slowexp(x); goto ret; } /*if error is over bound */ + } + ex = -(1022+ex); + binexp.i[HIGH_HALF] = (1023-ex)<<20; +@@ -135,15 +141,19 @@ double __ieee754_exp(double x) { + cor = (t-res)+y; + if (res == (res + eps*cor)) + { binexp.i[HIGH_HALF] = 0x00100000; +- return (res-1.0)*binexp.x; ++ retval = (res-1.0)*binexp.x; ++ goto ret; + } +- else return __slowexp(x); /* if error is over bound */ ++ else { retval = __slowexp(x); goto ret; } /* if error is over bound */ + } + else { + binexp.i[HIGH_HALF] =(junk1.i[LOW_HALF]+767)<<20; +- if (res == (res+cor*err_0)) return res*binexp.x*t256.x; +- else return __slowexp(x); ++ if (res == (res+cor*err_0)) { retval = res*binexp.x*t256.x; goto ret; } ++ else { retval = __slowexp(x); goto ret; } + } ++ ret: ++ libc_feupdateenv (&env); ++ return retval; + } + + /************************************************************************/ +diff -Nrup a/sysdeps/ieee754/dbl-64/e_exp2.c b/sysdeps/ieee754/dbl-64/e_exp2.c +--- a/sysdeps/ieee754/dbl-64/e_exp2.c 2010-05-04 05:27:23.000000000 -0600 ++++ b/sysdeps/ieee754/dbl-64/e_exp2.c 2012-08-06 09:54:00.824929683 -0600 +@@ -24,9 +24,6 @@ + 17 (1), March 1991, pp. 26-45. + It has been slightly modified to compute 2^x instead of e^x. + */ +-#ifndef _GNU_SOURCE +-#define _GNU_SOURCE +-#endif + #include <stdlib.h> + #include <float.h> + #include <ieee754.h> +@@ -37,13 +34,8 @@ + + #include "t_exp2.h" + +-/* XXX I know the assembler generates a warning about incorrect section +- attributes. But without the attribute here the compiler places the +- constants in the .data section. Ideally the constant is placed in +- .rodata.cst8 so that it can be merged, but gcc sucks, it ICEs when +- we try to force this section on it. --drepper */ +-static const volatile double TWO1023 = 8.988465674311579539e+307; +-static const volatile double TWOM1000 = 9.3326361850321887899e-302; ++static const double TWO1023 = 8.988465674311579539e+307; ++static const double TWOM1000 = 9.3326361850321887899e-302; + + double + __ieee754_exp2 (double x) +@@ -60,11 +52,7 @@ __ieee754_exp2 (double x) + union ieee754_double ex2_u, scale_u; + fenv_t oldenv; + +- feholdexcept (&oldenv); +-#ifdef FE_TONEAREST +- /* If we don't have this, it's too bad. */ +- fesetround (FE_TONEAREST); +-#endif ++ libc_feholdexcept_setround (&oldenv, FE_TONEAREST); + + /* 1. Argument reduction. + Choose integers ex, -256 <= t < 256, and some real +@@ -108,9 +96,10 @@ __ieee754_exp2 (double x) + * x + .055504110254308625) + * x + .240226506959100583) + * x + .69314718055994495) * ex2_u.d; ++ math_opt_barrier (x22); + + /* 5. Return (2^x2-1) * 2^(t/512+e+ex) + 2^(t/512+e+ex). */ +- fesetenv (&oldenv); ++ libc_fesetenv (&oldenv); + + result = x22 * x + ex2_u.d; + +diff -Nrup a/sysdeps/ieee754/dbl-64/e_pow.c b/sysdeps/ieee754/dbl-64/e_pow.c +--- a/sysdeps/ieee754/dbl-64/e_pow.c 2010-05-04 05:27:23.000000000 -0600 ++++ b/sysdeps/ieee754/dbl-64/e_pow.c 2012-08-06 09:54:00.824929683 -0600 +@@ -42,6 +42,7 @@ + #include "MathLib.h" + #include "upow.tbl" + #include "math_private.h" ++#include <fenv.h> + + + double __exp1(double x, double xx, double error); +@@ -79,6 +80,11 @@ double __ieee754_pow(double x, double y) + (u.i[HIGH_HALF]==0 && u.i[LOW_HALF]!=0)) && + /* 2^-1023< x<= 2^-1023 * 0x1.0000ffffffff */ + (v.i[HIGH_HALF]&0x7fffffff) < 0x4ff00000) { /* if y<-1 or y>1 */ ++ fenv_t env; ++ double retval; ++ ++ libc_feholdexcept_setround (&env, FE_TONEAREST); ++ + z = log1(x,&aa,&error); /* x^y =e^(y log (X)) */ + t = y*134217729.0; + y1 = t - (t-y); +@@ -92,7 +98,10 @@ double __ieee754_pow(double x, double y) + a2 = (a-a1)+aa; + error = error*ABS(y); + t = __exp1(a1,a2,1.9e16*error); /* return -10 or 0 if wasn't computed exactly */ +- return (t>0)?t:power1(x,y); ++ retval = (t>0)?t:power1(x,y); ++ ++ libc_feupdateenv (&env); ++ return retval; + } + + if (x == 0) { +diff -Nrup a/sysdeps/ieee754/dbl-64/s_sin.c b/sysdeps/ieee754/dbl-64/s_sin.c +--- a/sysdeps/ieee754/dbl-64/s_sin.c 2010-05-04 05:27:23.000000000 -0600 ++++ b/sysdeps/ieee754/dbl-64/s_sin.c 2012-08-06 09:54:00.827929671 -0600 +@@ -55,6 +55,7 @@ + #include "MathLib.h" + #include "sincos.tbl" + #include "math_private.h" ++#include <fenv.h> + + static const double + sn3 = -1.66666666666664880952546298448555E-01, +@@ -97,12 +98,16 @@ double __sin(double x){ + #if 0 + int4 nn; + #endif ++ fenv_t env; ++ double retval = 0; ++ ++ libc_feholdexcept_setround (&env, FE_TONEAREST); + + u.x = x; + m = u.i[HIGH_HALF]; + k = 0x7fffffff&m; /* no sign */ + if (k < 0x3e500000) /* if x->0 =>sin(x)=x */ +- return x; ++ { retval = x; goto ret; } + /*---------------------------- 2^-26 < |x|< 0.25 ----------------------*/ + else if (k < 0x3fd00000){ + xx = x*x; +@@ -110,7 +115,8 @@ double __sin(double x){ + t = ((((s5.x*xx + s4.x)*xx + s3.x)*xx + s2.x)*xx + s1.x)*(xx*x); + res = x+t; + cor = (x-res)+t; +- return (res == res + 1.07*cor)? res : slow(x); ++ retval = (res == res + 1.07*cor)? res : slow(x); ++ goto ret; + } /* else if (k < 0x3fd00000) */ + /*---------------------------- 0.25<|x|< 0.855469---------------------- */ + else if (k < 0x3feb6000) { +@@ -127,7 +133,8 @@ double __sin(double x){ + cor=(ssn+s*ccs-sn*c)+cs*s; + res=sn+cor; + cor=(sn-res)+cor; +- return (res==res+1.025*cor)? res : slow1(x); ++ retval = (res==res+1.096*cor)? res : slow1(x); ++ goto ret; + } /* else if (k < 0x3feb6000) */ + + /*----------------------- 0.855469 <|x|<2.426265 ----------------------*/ +@@ -153,7 +160,8 @@ double __sin(double x){ + cor=(ccs-s*ssn-cs*c)-sn*s; + res=cs+cor; + cor=(cs-res)+cor; +- return (res==res+1.020*cor)? ((m>0)?res:-res) : slow2(x); ++ retval = (res==res+1.020*cor)? ((m>0)?res:-res) : slow2(x); ++ goto ret; + } /* else if (k < 0x400368fd) */ + + /*-------------------------- 2.426265<|x|< 105414350 ----------------------*/ +@@ -179,7 +187,8 @@ double __sin(double x){ + res = a+t; + cor = (a-res)+t; + cor = (cor>0)? 1.02*cor+eps : 1.02*cor -eps; +- return (res == res + cor)? res : sloww(a,da,x); ++ retval = (res == res + cor)? res : sloww(a,da,x); ++ goto ret; + } + else { + if (a>0) +@@ -200,7 +209,8 @@ double __sin(double x){ + res=sn+cor; + cor=(sn-res)+cor; + cor = (cor>0)? 1.035*cor+eps : 1.035*cor-eps; +- return (res==res+cor)? ((m)?res:-res) : sloww1(a,da,x); ++ retval = (res==res+cor)? ((m)?res:-res) : sloww1(a,da,x); ++ goto ret; + } + break; + +@@ -222,7 +232,8 @@ double __sin(double x){ + res=cs+cor; + cor=(cs-res)+cor; + cor = (cor>0)? 1.025*cor+eps : 1.025*cor-eps; +- return (res==res+cor)? ((n&2)?-res:res) : sloww2(a,da,x,n); ++ retval = (res==res+cor)? ((n&2)?-res:res) : sloww2(a,da,x,n); ++ goto ret; + + break; + +@@ -258,7 +269,8 @@ double __sin(double x){ + res = a+t; + cor = (a-res)+t; + cor = (cor>0)? 1.02*cor+eps : 1.02*cor -eps; +- return (res == res + cor)? res : bsloww(a,da,x,n); ++ retval = (res == res + cor)? res : bsloww(a,da,x,n); ++ goto ret; + } + else { + if (a>0) {m=1;t=a;db=da;} +@@ -277,7 +289,8 @@ double __sin(double x){ + res=sn+cor; + cor=(sn-res)+cor; + cor = (cor>0)? 1.035*cor+eps : 1.035*cor-eps; +- return (res==res+cor)? ((m)?res:-res) : bsloww1(a,da,x,n); ++ retval = (res==res+cor)? ((m)?res:-res) : bsloww1(a,da,x,n); ++ goto ret; + } + break; + +@@ -299,7 +312,8 @@ double __sin(double x){ + res=cs+cor; + cor=(cs-res)+cor; + cor = (cor>0)? 1.025*cor+eps : 1.025*cor-eps; +- return (res==res+cor)? ((n&2)?-res:res) : bsloww2(a,da,x,n); ++ retval = (res==res+cor)? ((n&2)?-res:res) : bsloww2(a,da,x,n); ++ goto ret; + + break; + +@@ -313,17 +327,20 @@ double __sin(double x){ + n = __branred(x,&a,&da); + switch (n) { + case 0: +- if (a*a < 0.01588) return bsloww(a,da,x,n); +- else return bsloww1(a,da,x,n); ++ if (a*a < 0.01588) retval = bsloww(a,da,x,n); ++ else retval = bsloww1(a,da,x,n); ++ goto ret; + break; + case 2: +- if (a*a < 0.01588) return bsloww(-a,-da,x,n); +- else return bsloww1(-a,-da,x,n); ++ if (a*a < 0.01588) retval = bsloww(-a,-da,x,n); ++ else retval = bsloww1(-a,-da,x,n); ++ goto ret; + break; + + case 1: + case 3: +- return bsloww2(a,da,x,n); ++ retval = bsloww2(a,da,x,n); ++ goto ret; + break; + } + +@@ -333,9 +350,13 @@ double __sin(double x){ + else { + if (k == 0x7ff00000 && u.i[LOW_HALF] == 0) + __set_errno (EDOM); +- return x / x; ++ retval = x / x; ++ goto ret; + } +- return 0; /* unreachable */ ++ ++ ret: ++ libc_feupdateenv (&env); ++ return retval; + } + + +@@ -350,11 +371,16 @@ double __cos(double x) + mynumber u,v; + int4 k,m,n; + ++ fenv_t env; ++ double retval = 0; ++ ++ libc_feholdexcept_setround (&env, FE_TONEAREST); ++ + u.x = x; + m = u.i[HIGH_HALF]; + k = 0x7fffffff&m; + +- if (k < 0x3e400000 ) return 1.0; /* |x|<2^-27 => cos(x)=1 */ ++ if (k < 0x3e400000 ) { retval = 1.0; goto ret; } /* |x|<2^-27 => cos(x)=1 */ + + else if (k < 0x3feb6000 ) {/* 2^-27 < |x| < 0.855469 */ + y=ABS(x); +@@ -371,7 +397,8 @@ double __cos(double x) + cor=(ccs-s*ssn-cs*c)-sn*s; + res=cs+cor; + cor=(cs-res)+cor; +- return (res==res+1.020*cor)? res : cslow2(x); ++ retval = (res==res+1.020*cor)? res : cslow2(x); ++ goto ret; + + } /* else if (k < 0x3feb6000) */ + +@@ -385,7 +412,8 @@ double __cos(double x) + res = a+t; + cor = (a-res)+t; + cor = (cor>0)? 1.02*cor+1.0e-31 : 1.02*cor -1.0e-31; +- return (res == res + cor)? res : csloww(a,da,x); ++ retval = (res == res + cor)? res : csloww(a,da,x); ++ goto ret; + } + else { + if (a>0) {m=1;t=a;db=da;} +@@ -404,7 +432,8 @@ double __cos(double x) + res=sn+cor; + cor=(sn-res)+cor; + cor = (cor>0)? 1.035*cor+1.0e-31 : 1.035*cor-1.0e-31; +- return (res==res+cor)? ((m)?res:-res) : csloww1(a,da,x); ++ retval = (res==res+cor)? ((m)?res:-res) : csloww1(a,da,x); ++ goto ret; + } + + } /* else if (k < 0x400368fd) */ +@@ -431,7 +460,8 @@ double __cos(double x) + res = a+t; + cor = (a-res)+t; + cor = (cor>0)? 1.02*cor+eps : 1.02*cor -eps; +- return (res == res + cor)? res : csloww(a,da,x); ++ retval = (res == res + cor)? res : csloww(a,da,x); ++ goto ret; + } + else { + if (a>0) {m=1;t=a;db=da;} +@@ -450,7 +480,8 @@ double __cos(double x) + res=sn+cor; + cor=(sn-res)+cor; + cor = (cor>0)? 1.035*cor+eps : 1.035*cor-eps; +- return (res==res+cor)? ((m)?res:-res) : csloww1(a,da,x); ++ retval = (res==res+cor)? ((m)?res:-res) : csloww1(a,da,x); ++ goto ret; + } + break; + +@@ -471,7 +502,8 @@ double __cos(double x) + res=cs+cor; + cor=(cs-res)+cor; + cor = (cor>0)? 1.025*cor+eps : 1.025*cor-eps; +- return (res==res+cor)? ((n)?-res:res) : csloww2(a,da,x,n); ++ retval = (res==res+cor)? ((n)?-res:res) : csloww2(a,da,x,n); ++ goto ret; + + break; + +@@ -506,7 +538,8 @@ double __cos(double x) + res = a+t; + cor = (a-res)+t; + cor = (cor>0)? 1.02*cor+eps : 1.02*cor -eps; +- return (res == res + cor)? res : bsloww(a,da,x,n); ++ retval = (res == res + cor)? res : bsloww(a,da,x,n); ++ goto ret; + } + else { + if (a>0) {m=1;t=a;db=da;} +@@ -525,7 +558,8 @@ double __cos(double x) + res=sn+cor; + cor=(sn-res)+cor; + cor = (cor>0)? 1.035*cor+eps : 1.035*cor-eps; +- return (res==res+cor)? ((m)?res:-res) : bsloww1(a,da,x,n); ++ retval = (res==res+cor)? ((m)?res:-res) : bsloww1(a,da,x,n); ++ goto ret; + } + break; + +@@ -546,7 +580,8 @@ double __cos(double x) + res=cs+cor; + cor=(cs-res)+cor; + cor = (cor>0)? 1.025*cor+eps : 1.025*cor-eps; +- return (res==res+cor)? ((n)?-res:res) : bsloww2(a,da,x,n); ++ retval = (res==res+cor)? ((n)?-res:res) : bsloww2(a,da,x,n); ++ goto ret; + break; + + } +@@ -558,17 +593,20 @@ double __cos(double x) + n = __branred(x,&a,&da); + switch (n) { + case 1: +- if (a*a < 0.01588) return bsloww(-a,-da,x,n); +- else return bsloww1(-a,-da,x,n); ++ if (a*a < 0.01588) retval = bsloww(-a,-da,x,n); ++ else retval = bsloww1(-a,-da,x,n); ++ goto ret; + break; + case 3: +- if (a*a < 0.01588) return bsloww(a,da,x,n); +- else return bsloww1(a,da,x,n); ++ if (a*a < 0.01588) retval = bsloww(a,da,x,n); ++ else retval = bsloww1(a,da,x,n); ++ goto ret; + break; + + case 0: + case 2: +- return bsloww2(a,da,x,n); ++ retval = bsloww2(a,da,x,n); ++ goto ret; + break; + } + +@@ -580,10 +618,13 @@ double __cos(double x) + else { + if (k == 0x7ff00000 && u.i[LOW_HALF] == 0) + __set_errno (EDOM); +- return x / x; /* |x| > 2^1024 */ ++ retval = x / x; /* |x| > 2^1024 */ ++ goto ret; + } +- return 0; + ++ ret: ++ libc_feupdateenv (&env); ++ return retval; + } + + /************************************************************************/ +diff -Nrup a/sysdeps/ieee754/dbl-64/s_tan.c b/sysdeps/ieee754/dbl-64/s_tan.c +--- a/sysdeps/ieee754/dbl-64/s_tan.c 2010-05-04 05:27:23.000000000 -0600 ++++ b/sysdeps/ieee754/dbl-64/s_tan.c 2012-08-06 09:54:00.828929666 -0600 +@@ -40,6 +40,8 @@ + #include "mpa.h" + #include "MathLib.h" + #include "math.h" ++#include "math_private.h" ++#include <fenv.h> + + static double tanMp(double); + void __mptan(double, mp_no *, int); +@@ -58,21 +60,27 @@ double tan(double x) { + mp_no mpy; + #endif + ++ fenv_t env; ++ double retval; ++ + int __branred(double, double *, double *); + int __mpranred(double, mp_no *, int); + ++ libc_feholdexcept_setround (&env, FE_TONEAREST); ++ + /* x=+-INF, x=NaN */ + num.d = x; ux = num.i[HIGH_HALF]; + if ((ux&0x7ff00000)==0x7ff00000) { + if ((ux&0x7fffffff)==0x7ff00000) + __set_errno (EDOM); +- return x-x; ++ retval = x-x; ++ goto ret; + } + + w=(x<ZERO) ? -x : x; + + /* (I) The case abs(x) <= 1.259e-8 */ +- if (w<=g1.d) return x; ++ if (w<=g1.d) { retval = x; goto ret; } + + /* (II) The case 1.259e-8 < abs(x) <= 0.0608 */ + if (w<=g2.d) { +@@ -80,7 +88,7 @@ double tan(double x) { + /* First stage */ + x2 = x*x; + t2 = x*x2*(d3.d+x2*(d5.d+x2*(d7.d+x2*(d9.d+x2*d11.d)))); +- if ((y=x+(t2-u1.d*t2)) == x+(t2+u1.d*t2)) return y; ++ if ((y=x+(t2-u1.d*t2)) == x+(t2+u1.d*t2)) { retval = y; goto ret; } + + /* Second stage */ + c1 = x2*(a15.d+x2*(a17.d+x2*(a19.d+x2*(a21.d+x2*(a23.d+x2*(a25.d+ +@@ -100,8 +108,9 @@ double tan(double x) { + MUL2(x2,xx2,c2,cc2,c1,cc1,t1,t2,t3,t4,t5,t6,t7,t8) + MUL2(x ,zero.d,c1,cc1,c2,cc2,t1,t2,t3,t4,t5,t6,t7,t8) + ADD2(x ,zero.d,c2,cc2,c1,cc1,t1,t2) +- if ((y=c1+(cc1-u2.d*c1)) == c1+(cc1+u2.d*c1)) return y; +- return tanMp(x); ++ if ((y=c1+(cc1-u2.d*c1)) == c1+(cc1+u2.d*c1)) { retval = y; goto ret; } ++ retval = tanMp(x); ++ goto ret; + } + + /* (III) The case 0.0608 < abs(x) <= 0.787 */ +@@ -112,10 +121,10 @@ double tan(double x) { + z = w-xfg[i][0].d; z2 = z*z; s = (x<ZERO) ? MONE : ONE; + pz = z+z*z2*(e0.d+z2*e1.d); + fi = xfg[i][1].d; gi = xfg[i][2].d; t2 = pz*(gi+fi)/(gi-pz); +- if ((y=fi+(t2-fi*u3.d))==fi+(t2+fi*u3.d)) return (s*y); ++ if ((y=fi+(t2-fi*u3.d))==fi+(t2+fi*u3.d)) { retval = (s*y); goto ret; } + t3 = (t2<ZERO) ? -t2 : t2; + t4 = fi*ua3.d+t3*ub3.d; +- if ((y=fi+(t2-t4))==fi+(t2+t4)) return (s*y); ++ if ((y=fi+(t2-t4))==fi+(t2+t4)) { retval = (s*y); goto ret; } + + /* Second stage */ + ffi = xfg[i][3].d; +@@ -133,8 +142,9 @@ double tan(double x) { + SUB2(one.d,zero.d,c3,cc3,c1,cc1,t1,t2) + DIV2(c2,cc2,c1,cc1,c3,cc3,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10) + +- if ((y=c3+(cc3-u4.d*c3))==c3+(cc3+u4.d*c3)) return (s*y); +- return tanMp(x); ++ if ((y=c3+(cc3-u4.d*c3))==c3+(cc3+u4.d*c3)) { retval = (s*y); goto ret; } ++ retval = tanMp(x); ++ goto ret; + } + + /* (---) The case 0.787 < abs(x) <= 25 */ +@@ -152,7 +162,7 @@ double tan(double x) { + else {ya= a; yya= da; sy= ONE;} + + /* (IV),(V) The case 0.787 < abs(x) <= 25, abs(y) <= 1e-7 */ +- if (ya<=gy1.d) return tanMp(x); ++ if (ya<=gy1.d) { retval = tanMp(x); goto ret; } + + /* (VI) The case 0.787 < abs(x) <= 25, 1e-7 < abs(y) <= 0.0608 */ + if (ya<=gy2.d) { +@@ -162,10 +172,10 @@ double tan(double x) { + /* First stage -cot */ + EADD(a,t2,b,db) + DIV2(one.d,zero.d,b,db,c,dc,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10) +- if ((y=c+(dc-u6.d*c))==c+(dc+u6.d*c)) return (-y); } ++ if ((y=c+(dc-u6.d*c))==c+(dc+u6.d*c)) { retval = (-y); goto ret; } } + else { + /* First stage tan */ +- if ((y=a+(t2-u5.d*a))==a+(t2+u5.d*a)) return y; } ++ if ((y=a+(t2-u5.d*a))==a+(t2+u5.d*a)) { retval = y; goto ret; } } + /* Second stage */ + /* Range reduction by algorithm ii */ + t = (x*hpinv.d + toint.d); +@@ -203,11 +213,12 @@ double tan(double x) { + if (n) { + /* Second stage -cot */ + DIV2(one.d,zero.d,c1,cc1,c2,cc2,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10) +- if ((y=c2+(cc2-u8.d*c2)) == c2+(cc2+u8.d*c2)) return (-y); } ++ if ((y=c2+(cc2-u8.d*c2)) == c2+(cc2+u8.d*c2)) { retval = (-y); goto ret; } } + else { + /* Second stage tan */ +- if ((y=c1+(cc1-u7.d*c1)) == c1+(cc1+u7.d*c1)) return y; } +- return tanMp(x); ++ if ((y=c1+(cc1-u7.d*c1)) == c1+(cc1+u7.d*c1)) { retval = y; goto ret; } } ++ retval = tanMp(x); ++ goto ret; + } + + /* (VII) The case 0.787 < abs(x) <= 25, 0.0608 < abs(y) <= 0.787 */ +@@ -221,17 +232,17 @@ double tan(double x) { + if (n) { + /* -cot */ + t2 = pz*(fi+gi)/(fi+pz); +- if ((y=gi-(t2-gi*u10.d))==gi-(t2+gi*u10.d)) return (-sy*y); ++ if ((y=gi-(t2-gi*u10.d))==gi-(t2+gi*u10.d)) { retval = (-sy*y); goto ret; } + t3 = (t2<ZERO) ? -t2 : t2; + t4 = gi*ua10.d+t3*ub10.d; +- if ((y=gi-(t2-t4))==gi-(t2+t4)) return (-sy*y); } ++ if ((y=gi-(t2-t4))==gi-(t2+t4)) { retval = (-sy*y); goto ret; } } + else { + /* tan */ + t2 = pz*(gi+fi)/(gi-pz); +- if ((y=fi+(t2-fi*u9.d))==fi+(t2+fi*u9.d)) return (sy*y); ++ if ((y=fi+(t2-fi*u9.d))==fi+(t2+fi*u9.d)) { retval = (sy*y); goto ret; } + t3 = (t2<ZERO) ? -t2 : t2; + t4 = fi*ua9.d+t3*ub9.d; +- if ((y=fi+(t2-t4))==fi+(t2+t4)) return (sy*y); } ++ if ((y=fi+(t2-t4))==fi+(t2+t4)) { retval = (sy*y); goto ret; } } + + /* Second stage */ + ffi = xfg[i][3].d; +@@ -252,13 +263,14 @@ double tan(double x) { + if (n) { + /* -cot */ + DIV2(c1,cc1,c2,cc2,c3,cc3,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10) +- if ((y=c3+(cc3-u12.d*c3))==c3+(cc3+u12.d*c3)) return (-sy*y); } ++ if ((y=c3+(cc3-u12.d*c3))==c3+(cc3+u12.d*c3)) { retval = (-sy*y); goto ret; } } + else { + /* tan */ + DIV2(c2,cc2,c1,cc1,c3,cc3,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10) +- if ((y=c3+(cc3-u11.d*c3))==c3+(cc3+u11.d*c3)) return (sy*y); } ++ if ((y=c3+(cc3-u11.d*c3))==c3+(cc3+u11.d*c3)) { retval = (sy*y); goto ret; } } + +- return tanMp(x); ++ retval = tanMp(x); ++ goto ret; + } + + /* (---) The case 25 < abs(x) <= 1e8 */ +@@ -280,7 +292,7 @@ double tan(double x) { + else {ya= a; yya= da; sy= ONE;} + + /* (+++) The case 25 < abs(x) <= 1e8, abs(y) <= 1e-7 */ +- if (ya<=gy1.d) return tanMp(x); ++ if (ya<=gy1.d) { retval = tanMp(x); goto ret; } + + /* (VIII) The case 25 < abs(x) <= 1e8, 1e-7 < abs(y) <= 0.0608 */ + if (ya<=gy2.d) { +@@ -290,10 +302,10 @@ double tan(double x) { + /* First stage -cot */ + EADD(a,t2,b,db) + DIV2(one.d,zero.d,b,db,c,dc,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10) +- if ((y=c+(dc-u14.d*c))==c+(dc+u14.d*c)) return (-y); } ++ if ((y=c+(dc-u14.d*c))==c+(dc+u14.d*c)) { retval = (-y); goto ret; } } + else { + /* First stage tan */ +- if ((y=a+(t2-u13.d*a))==a+(t2+u13.d*a)) return y; } ++ if ((y=a+(t2-u13.d*a))==a+(t2+u13.d*a)) { retval = y; goto ret; } } + + /* Second stage */ + MUL2(a,da,a,da,x2,xx2,t1,t2,t3,t4,t5,t6,t7,t8) +@@ -317,11 +329,12 @@ double tan(double x) { + if (n) { + /* Second stage -cot */ + DIV2(one.d,zero.d,c1,cc1,c2,cc2,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10) +- if ((y=c2+(cc2-u16.d*c2)) == c2+(cc2+u16.d*c2)) return (-y); } ++ if ((y=c2+(cc2-u16.d*c2)) == c2+(cc2+u16.d*c2)) { retval = (-y); goto ret; } } + else { + /* Second stage tan */ +- if ((y=c1+(cc1-u15.d*c1)) == c1+(cc1+u15.d*c1)) return (y); } +- return tanMp(x); ++ if ((y=c1+(cc1-u15.d*c1)) == c1+(cc1+u15.d*c1)) { retval = (y); goto ret; } } ++ retval = tanMp(x); ++ goto ret; + } + + /* (IX) The case 25 < abs(x) <= 1e8, 0.0608 < abs(y) <= 0.787 */ +@@ -334,17 +347,17 @@ double tan(double x) { + if (n) { + /* -cot */ + t2 = pz*(fi+gi)/(fi+pz); +- if ((y=gi-(t2-gi*u18.d))==gi-(t2+gi*u18.d)) return (-sy*y); ++ if ((y=gi-(t2-gi*u18.d))==gi-(t2+gi*u18.d)) { retval = (-sy*y); goto ret; } + t3 = (t2<ZERO) ? -t2 : t2; + t4 = gi*ua18.d+t3*ub18.d; +- if ((y=gi-(t2-t4))==gi-(t2+t4)) return (-sy*y); } ++ if ((y=gi-(t2-t4))==gi-(t2+t4)) { retval = (-sy*y); goto ret; } } + else { + /* tan */ + t2 = pz*(gi+fi)/(gi-pz); +- if ((y=fi+(t2-fi*u17.d))==fi+(t2+fi*u17.d)) return (sy*y); ++ if ((y=fi+(t2-fi*u17.d))==fi+(t2+fi*u17.d)) { retval = (sy*y); goto ret; } + t3 = (t2<ZERO) ? -t2 : t2; + t4 = fi*ua17.d+t3*ub17.d; +- if ((y=fi+(t2-t4))==fi+(t2+t4)) return (sy*y); } ++ if ((y=fi+(t2-t4))==fi+(t2+t4)) { retval = (sy*y); goto ret; } } + + /* Second stage */ + ffi = xfg[i][3].d; +@@ -365,12 +378,13 @@ double tan(double x) { + if (n) { + /* -cot */ + DIV2(c1,cc1,c2,cc2,c3,cc3,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10) +- if ((y=c3+(cc3-u20.d*c3))==c3+(cc3+u20.d*c3)) return (-sy*y); } ++ if ((y=c3+(cc3-u20.d*c3))==c3+(cc3+u20.d*c3)) { retval = (-sy*y); goto ret; } } + else { + /* tan */ + DIV2(c2,cc2,c1,cc1,c3,cc3,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10) +- if ((y=c3+(cc3-u19.d*c3))==c3+(cc3+u19.d*c3)) return (sy*y); } +- return tanMp(x); ++ if ((y=c3+(cc3-u19.d*c3))==c3+(cc3+u19.d*c3)) { retval = (sy*y); goto ret; } } ++ retval = tanMp(x); ++ goto ret; + } + + /* (---) The case 1e8 < abs(x) < 2**1024 */ +@@ -381,7 +395,7 @@ double tan(double x) { + else {ya= a; yya= da; sy= ONE;} + + /* (+++) The case 1e8 < abs(x) < 2**1024, abs(y) <= 1e-7 */ +- if (ya<=gy1.d) return tanMp(x); ++ if (ya<=gy1.d) { retval = tanMp(x); goto ret; } + + /* (X) The case 1e8 < abs(x) < 2**1024, 1e-7 < abs(y) <= 0.0608 */ + if (ya<=gy2.d) { +@@ -391,10 +405,10 @@ double tan(double x) { + /* First stage -cot */ + EADD(a,t2,b,db) + DIV2(one.d,zero.d,b,db,c,dc,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10) +- if ((y=c+(dc-u22.d*c))==c+(dc+u22.d*c)) return (-y); } ++ if ((y=c+(dc-u22.d*c))==c+(dc+u22.d*c)) { retval = (-y); goto ret; } } + else { + /* First stage tan */ +- if ((y=a+(t2-u21.d*a))==a+(t2+u21.d*a)) return y; } ++ if ((y=a+(t2-u21.d*a))==a+(t2+u21.d*a)) { retval = y; goto ret; } } + + /* Second stage */ + /* Reduction by algorithm iv */ +@@ -423,11 +437,12 @@ double tan(double x) { + if (n) { + /* Second stage -cot */ + DIV2(one.d,zero.d,c1,cc1,c2,cc2,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10) +- if ((y=c2+(cc2-u24.d*c2)) == c2+(cc2+u24.d*c2)) return (-y); } ++ if ((y=c2+(cc2-u24.d*c2)) == c2+(cc2+u24.d*c2)) { retval = (-y); goto ret; } } + else { + /* Second stage tan */ +- if ((y=c1+(cc1-u23.d*c1)) == c1+(cc1+u23.d*c1)) return y; } +- return tanMp(x); ++ if ((y=c1+(cc1-u23.d*c1)) == c1+(cc1+u23.d*c1)) { retval = y; goto ret; } } ++ retval = tanMp(x); ++ goto ret; + } + + /* (XI) The case 1e8 < abs(x) < 2**1024, 0.0608 < abs(y) <= 0.787 */ +@@ -440,17 +455,17 @@ double tan(double x) { + if (n) { + /* -cot */ + t2 = pz*(fi+gi)/(fi+pz); +- if ((y=gi-(t2-gi*u26.d))==gi-(t2+gi*u26.d)) return (-sy*y); ++ if ((y=gi-(t2-gi*u26.d))==gi-(t2+gi*u26.d)) { retval = (-sy*y); goto ret; } + t3 = (t2<ZERO) ? -t2 : t2; + t4 = gi*ua26.d+t3*ub26.d; +- if ((y=gi-(t2-t4))==gi-(t2+t4)) return (-sy*y); } ++ if ((y=gi-(t2-t4))==gi-(t2+t4)) { retval = (-sy*y); goto ret; } } + else { + /* tan */ + t2 = pz*(gi+fi)/(gi-pz); +- if ((y=fi+(t2-fi*u25.d))==fi+(t2+fi*u25.d)) return (sy*y); ++ if ((y=fi+(t2-fi*u25.d))==fi+(t2+fi*u25.d)) { retval = (sy*y); goto ret; } + t3 = (t2<ZERO) ? -t2 : t2; + t4 = fi*ua25.d+t3*ub25.d; +- if ((y=fi+(t2-t4))==fi+(t2+t4)) return (sy*y); } ++ if ((y=fi+(t2-t4))==fi+(t2+t4)) { retval = (sy*y); goto ret; } } + + /* Second stage */ + ffi = xfg[i][3].d; +@@ -471,15 +486,19 @@ double tan(double x) { + if (n) { + /* -cot */ + DIV2(c1,cc1,c2,cc2,c3,cc3,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10) +- if ((y=c3+(cc3-u28.d*c3))==c3+(cc3+u28.d*c3)) return (-sy*y); } ++ if ((y=c3+(cc3-u28.d*c3))==c3+(cc3+u28.d*c3)) { retval = (-sy*y); goto ret; } } + else { + /* tan */ + DIV2(c2,cc2,c1,cc1,c3,cc3,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10) +- if ((y=c3+(cc3-u27.d*c3))==c3+(cc3+u27.d*c3)) return (sy*y); } +- return tanMp(x); ++ if ((y=c3+(cc3-u27.d*c3))==c3+(cc3+u27.d*c3)) { retval = (sy*y); goto ret; } } ++ retval = tanMp(x); ++ goto ret; ++ ++ ret: ++ libc_feupdateenv (&env); ++ return retval; + } + +- + /* multiple precision stage */ + /* Convert x to multi precision number,compute tan(x) by mptan() routine */ + /* and converts result back to double */ +diff -Nrup a/sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c +--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c 2010-05-04 05:27:23.000000000 -0600 ++++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c 2012-08-06 09:54:00.828929666 -0600 +@@ -24,22 +24,14 @@ + #include "math.h" + #include "math_private.h" + +-#ifdef __STDC__ + static const double +-#else +-static double +-#endif + TWO52[2]={ + 4.50359962737049600000e+15, /* 0x43300000, 0x00000000 */ + -4.50359962737049600000e+15, /* 0xC3300000, 0x00000000 */ + }; + +-#ifdef __STDC__ +- double __nearbyint(double x) +-#else +- double __nearbyint(x) +- double x; +-#endif ++double ++__nearbyint(double x) + { + fenv_t env; + int64_t i0,sx; +@@ -47,20 +39,19 @@ TWO52[2]={ + EXTRACT_WORDS64(i0,x); + sx = (i0>>63)&1; + j0 = ((i0>>52)&0x7ff)-0x3ff; +- if(j0<52) { ++ if(__builtin_expect(j0<52, 1)) { + if(j0<0) { + if((i0&UINT64_C(0x7fffffffffffffff))==0) return x; + uint64_t i = i0 & UINT64_C(0xfffffffffffff); + i0 &= UINT64_C(0xfffe000000000000); + i0 |= (((i|-i) >> 12) & UINT64_C(0x8000000000000)); + INSERT_WORDS64(x,i0); +- feholdexcept (&env); ++ libc_feholdexcept (&env); + double w = TWO52[sx]+x; + double t = w-TWO52[sx]; +- fesetenv (&env); +- EXTRACT_WORDS64(i0,t); +- INSERT_WORDS64(t,(i0&UINT64_C(0x7fffffffffffffff))|(sx<<63)); +- return t; ++ math_opt_barrier(t); ++ libc_fesetenv (&env); ++ return copysign(t, x); + } else { + uint64_t i = UINT64_C(0x000fffffffffffff)>>j0; + if((i0&i)==0) return x; /* x is integral */ +@@ -73,10 +64,11 @@ TWO52[2]={ + else return x; /* x is integral */ + } + INSERT_WORDS64(x,i0); +- feholdexcept (&env); ++ libc_feholdexcept (&env); + double w = TWO52[sx]+x; + double t = w-TWO52[sx]; +- fesetenv (&env); ++ math_opt_barrier (t); ++ libc_fesetenv (&env); + return t; + } + weak_alias (__nearbyint, nearbyint) +diff -Nrup a/sysdeps/ieee754/flt-32/e_exp2f.c b/sysdeps/ieee754/flt-32/e_exp2f.c +--- a/sysdeps/ieee754/flt-32/e_exp2f.c 2010-05-04 05:27:23.000000000 -0600 ++++ b/sysdeps/ieee754/flt-32/e_exp2f.c 2012-08-06 09:54:00.829929661 -0600 +@@ -56,11 +56,7 @@ __ieee754_exp2f (float x) + union ieee754_float ex2_u, scale_u; + fenv_t oldenv; + +- feholdexcept (&oldenv); +-#ifdef FE_TONEAREST +- /* If we don't have this, it's too bad. */ +- fesetround (FE_TONEAREST); +-#endif ++ libc_feholdexcept_setroundf (&oldenv, FE_TONEAREST); + + /* 1. Argument reduction. + Choose integers ex, -128 <= t < 128, and some real +@@ -103,7 +99,7 @@ __ieee754_exp2f (float x) + x22 = (.24022656679f * x + .69314736128f) * ex2_u.f; + + /* 5. Return (2^x2-1) * 2^(t/512+e+ex) + 2^(t/512+e+ex). */ +- fesetenv (&oldenv); ++ libc_fesetenv (&oldenv); + + result = x22 * x + ex2_u.f; + +diff -Nrup a/sysdeps/ieee754/flt-32/e_expf.c b/sysdeps/ieee754/flt-32/e_expf.c +--- a/sysdeps/ieee754/flt-32/e_expf.c 2010-05-04 05:27:23.000000000 -0600 ++++ b/sysdeps/ieee754/flt-32/e_expf.c 2012-08-06 09:54:00.829929661 -0600 +@@ -47,9 +47,6 @@ + to perform an 'accurate table method' expf, because of the range reduction + overhead (compare exp2f). + */ +-#ifndef _GNU_SOURCE +-#define _GNU_SOURCE +-#endif + #include <float.h> + #include <ieee754.h> + #include <math.h> +@@ -60,8 +57,8 @@ + extern const float __exp_deltatable[178]; + extern const double __exp_atable[355] /* __attribute__((mode(DF))) */; + +-static const volatile float TWOM100 = 7.88860905e-31; +-static const volatile float TWO127 = 1.7014118346e+38; ++static const float TWOM100 = 7.88860905e-31; ++static const float TWO127 = 1.7014118346e+38; + + float + __ieee754_expf (float x) +@@ -86,10 +83,7 @@ __ieee754_expf (float x) + union ieee754_double ex2_u; + fenv_t oldenv; + +- feholdexcept (&oldenv); +-#ifdef FE_TONEAREST +- fesetround (FE_TONEAREST); +-#endif ++ libc_feholdexcept_setroundf (&oldenv, FE_TONEAREST); + + /* Calculate n. */ + n = x * M_1_LN2 + THREEp22; +@@ -119,7 +113,7 @@ __ieee754_expf (float x) + x22 = (0.5000000496709180453 * dx + 1.0000001192102037084) * dx + delta; + + /* Return result. */ +- fesetenv (&oldenv); ++ libc_fesetenvf (&oldenv); + + result = x22 * ex2_u.d + ex2_u.d; + return (float) result; +diff -Nrup a/sysdeps/ieee754/flt-32/s_nearbyintf.c b/sysdeps/ieee754/flt-32/s_nearbyintf.c +--- a/sysdeps/ieee754/flt-32/s_nearbyintf.c 2010-05-04 05:27:23.000000000 -0600 ++++ b/sysdeps/ieee754/flt-32/s_nearbyintf.c 2012-08-06 09:54:00.891929402 -0600 +@@ -19,22 +19,14 @@ + #include "math.h" + #include "math_private.h" + +-#ifdef __STDC__ + static const float +-#else +-static float +-#endif + TWO23[2]={ + 8.3886080000e+06, /* 0x4b000000 */ + -8.3886080000e+06, /* 0xcb000000 */ + }; + +-#ifdef __STDC__ +- float __nearbyintf(float x) +-#else +- float __nearbyintf(x) +- float x; +-#endif ++float ++__nearbyintf(float x) + { + fenv_t env; + int32_t i0,j0,sx; +@@ -50,13 +42,13 @@ TWO23[2]={ + i0 &= 0xfff00000; + i0 |= ((i1|-i1)>>9)&0x400000; + SET_FLOAT_WORD(x,i0); +- feholdexcept (&env); +- w = TWO23[sx]+x; +- t = w-TWO23[sx]; +- fesetenv (&env); ++ libc_feholdexceptf (&env); ++ w = TWO23[sx]+x; ++ t = w-TWO23[sx]; ++ libc_fesetenvf (&env); + GET_FLOAT_WORD(i0,t); + SET_FLOAT_WORD(t,(i0&0x7fffffff)|(sx<<31)); +- return t; ++ return t; + } else { + i = (0x007fffff)>>j0; + if((i0&i)==0) return x; /* x is integral */ +@@ -64,14 +56,14 @@ TWO23[2]={ + if((i0&i)!=0) i0 = (i0&(~i))|((0x100000)>>j0); + } + } else { +- if(j0==0x80) return x+x; /* inf or NaN */ ++ if(__builtin_expect(j0==0x80, 0)) return x+x; /* inf or NaN */ + else return x; /* x is integral */ + } + SET_FLOAT_WORD(x,i0); +- feholdexcept (&env); ++ libc_feholdexceptf (&env); + w = TWO23[sx]+x; + t = w-TWO23[sx]; +- fesetenv (&env); ++ libc_fesetenvf (&env); + return t; + } + weak_alias (__nearbyintf, nearbyintf) +diff -Nrup a/sysdeps/powerpc/fpu/libm-test-ulps b/sysdeps/powerpc/fpu/libm-test-ulps +--- a/sysdeps/powerpc/fpu/libm-test-ulps 2010-05-04 05:27:23.000000000 -0600 ++++ b/sysdeps/powerpc/fpu/libm-test-ulps 2012-08-06 10:03:24.424569052 -0600 +@@ -37,16 +37,9 @@ ildouble: 1 + ldouble: 1 + + # cacosh +-Test "Real part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i": +-double: 1 +-float: 7 +-idouble: 1 +-ifloat: 7 + Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i": +-double: 1 +-float: 3 +-idouble: 1 +-ifloat: 3 ++float: 1 ++ifloat: 1 + + # casin + Test "Real part of: casin (-2 - 3 i) == -0.57065278432109940071028387968566963 - 1.9833870299165354323470769028940395 i": +@@ -84,8 +77,6 @@ ifloat: 1 + + # catan + Test "Real part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i": +-float: 3 +-ifloat: 3 + ildouble: 1 + ldouble: 1 + Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i": +@@ -93,23 +84,14 @@ double: 1 + float: 1 + idouble: 1 + ifloat: 1 +-Test "Real part of: catan (0.75 + 1.25 i) == 1.10714871779409050301706546017853704 + 0.549306144334054845697622618461262852 i": +-float: 4 +-ifloat: 4 + + # catanh + Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i": + double: 4 + idouble: 4 +-Test "Imaginary part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i": +-float: 4 +-ifloat: 4 + Test "Real part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i": + double: 1 + idouble: 1 +-Test "Imaginary part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i": +-float: 6 +-ifloat: 6 + + # cbrt + Test "cbrt (-27.0) == -3.0": +@@ -167,8 +149,6 @@ ldouble: 1 + + # clog + Test "Imaginary part of: clog (-2 - 3 i) == 1.2824746787307683680267437207826593 - 2.1587989303424641704769327722648368 i": +-float: 3 +-ifloat: 3 + ildouble: 1 + ldouble: 1 + Test "Real part of: clog (0.75 + 1.25 i) == 0.376885901188190075998919126749298416 + 1.03037682652431246378774332703115153 i": +@@ -197,9 +177,7 @@ ildouble: 1 + ldouble: 1 + Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i": + double: 1 +-float: 5 + idouble: 1 +-ifloat: 5 + ildouble: 1 + ldouble: 1 + Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i": +@@ -298,23 +276,165 @@ ldouble: 1 + # cos + Test "cos (M_PI_6l * 2.0) == 0.5": + double: 1 +-float: 1 + idouble: 1 +-ifloat: 1 + Test "cos (M_PI_6l * 4.0) == -0.5": + double: 2 + float: 1 + idouble: 2 + ifloat: 1 +-Test "cos (pi/2) == 0": +-double: 1 ++ ++# cos_downward ++Test "cos_downward (1) == 0.5403023058681397174009366074429766037323": ++float: 1 ++ifloat: 1 ++ildouble: 4 ++ldouble: 4 ++Test "cos_downward (10) == -0.8390715290764524522588639478240648345199": ++ildouble: 1 ++ldouble: 1 ++Test "cos_downward (2) == -0.4161468365471423869975682295007621897660": ++float: 1 ++ifloat: 1 ++Test "cos_downward (3) == -0.9899924966004454572715727947312613023937": ++float: 1 ++ifloat: 1 ++Test "cos_downward (4) == -0.6536436208636119146391681830977503814241": ++float: 1 ++ifloat: 1 ++Test "cos_downward (5) == 0.2836621854632262644666391715135573083344": ++float: 1 ++ifloat: 1 ++Test "cos_downward (6) == 0.9601702866503660205456522979229244054519": ++ildouble: 1 ++ldouble: 1 ++Test "cos_downward (7) == 0.7539022543433046381411975217191820122183": ++float: 1 ++ifloat: 1 ++Test "cos_downward (8) == -0.1455000338086135258688413818311946826093": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++Test "cos_downward (9) == -0.9111302618846769883682947111811653112463": ++ildouble: 1 ++ldouble: 1 ++ ++# cos_tonearest ++Test "cos_tonearest (7) == 0.7539022543433046381411975217191820122183": ++float: 1 ++ifloat: 1 ++ ++# cos_towardzero ++Test "cos_towardzero (1) == 0.5403023058681397174009366074429766037323": ++ildouble: 2 ++ldouble: 2 ++Test "cos_towardzero (10) == -0.8390715290764524522588639478240648345199": ++ildouble: 1 ++ldouble: 1 ++Test "cos_towardzero (2) == -0.4161468365471423869975682295007621897660": ++float: 1 ++ifloat: 1 ++Test "cos_towardzero (3) == -0.9899924966004454572715727947312613023937": ++float: 1 ++ifloat: 1 ++Test "cos_towardzero (4) == -0.6536436208636119146391681830977503814241": ++ildouble: 1 ++ldouble: 1 ++Test "cos_towardzero (5) == 0.2836621854632262644666391715135573083344": ++float: 1 ++ifloat: 1 ++Test "cos_towardzero (7) == 0.7539022543433046381411975217191820122183": ++float: 1 ++ifloat: 1 ++Test "cos_towardzero (8) == -0.1455000338086135258688413818311946826093": + float: 1 +-idouble: 1 + ifloat: 1 +-Test "cos (16.0) == -0.9576594803233846418996372326511034717803" + ildouble: 2 + ldouble: 2 + ++# cos_upward ++Test "cos_upward (1) == 0.5403023058681397174009366074429766037323": ++ildouble: 2 ++ldouble: 2 ++Test "cos_upward (10) == -0.8390715290764524522588639478240648345199": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_upward (4) == -0.6536436208636119146391681830977503814241": ++ildouble: 1 ++ldouble: 1 ++Test "cos_upward (5) == 0.2836621854632262644666391715135573083344": ++ildouble: 1 ++ldouble: 1 ++Test "cos_upward (6) == 0.9601702866503660205456522979229244054519": ++float: 1 ++ifloat: 1 ++Test "cos_upward (7) == 0.7539022543433046381411975217191820122183": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_upward (9) == -0.9111302618846769883682947111811653112463": ++float: 2 ++ifloat: 2 ++ ++# cosh_downward ++Test "cosh_downward (22) == 1792456423.065795780980053377632656584997": ++float: 1 ++ifloat: 1 ++ildouble: 5269156250720 ++ldouble: 5269156250720 ++Test "cosh_downward (23) == 4872401723.124451300068625740569997090344": ++float: 1 ++ifloat: 1 ++ildouble: 484603564240 ++ldouble: 484603564240 ++Test "cosh_downward (24) == 13244561064.92173614708845674912733665919": ++float: 1 ++ifloat: 1 ++ildouble: 89137844202 ++ldouble: 89137844202 ++ ++# cosh_tonearest ++Test "cosh_tonearest (22) == 1792456423.065795780980053377632656584997": ++ildouble: 5269156250719 ++ldouble: 5269156250719 ++Test "cosh_tonearest (23) == 4872401723.124451300068625740569997090344": ++ildouble: 484603564240 ++ldouble: 484603564240 ++Test "cosh_tonearest (24) == 13244561064.92173614708845674912733665919": ++ildouble: 89137844202 ++ldouble: 89137844202 ++ ++# cosh_towardzero ++Test "cosh_towardzero (22) == 1792456423.065795780980053377632656584997": ++float: 1 ++ifloat: 1 ++ildouble: 5269156250720 ++ldouble: 5269156250720 ++Test "cosh_towardzero (23) == 4872401723.124451300068625740569997090344": ++float: 1 ++ifloat: 1 ++ildouble: 484603564240 ++ldouble: 484603564240 ++Test "cosh_towardzero (24) == 13244561064.92173614708845674912733665919": ++float: 1 ++ifloat: 1 ++ildouble: 89137844202 ++ldouble: 89137844202 ++ ++# cosh_upward ++Test "cosh_upward (22) == 1792456423.065795780980053377632656584997": ++ildouble: 5269156250719 ++ldouble: 5269156250719 ++Test "cosh_upward (23) == 4872401723.124451300068625740569997090344": ++ildouble: 484603564240 ++ldouble: 484603564240 ++Test "cosh_upward (24) == 13244561064.92173614708845674912733665919": ++ildouble: 89137844200 ++ldouble: 89137844200 ++ + # cpow + Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i": + float: 1 +@@ -386,12 +506,6 @@ float: 1 + ifloat: 1 + + # ctan +-Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i": +-double: 1 +-idouble: 1 +-Test "Imaginary part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i": +-ildouble: 1 +-ldouble: 1 + Test "Imaginary part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i": + double: 1 + idouble: 1 +@@ -463,6 +577,33 @@ Test "exp2 (10) == 1024": + ildouble: 2 + ldouble: 2 + ++# exp_downward ++Test "exp_downward (2) == e^2": ++float: 1 ++ifloat: 1 ++Test "exp_downward (3) == e^3": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# exp_towardzero ++Test "exp_towardzero (2) == e^2": ++float: 1 ++ifloat: 1 ++Test "exp_towardzero (3) == e^3": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# exp_upward ++Test "exp_upward (1) == e": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ + # expm1 + Test "expm1 (0.75) == 1.11700001661267466854536981983709561": + double: 1 +@@ -505,40 +646,27 @@ ifloat: 1 + # j0 + Test "j0 (-4.0) == -3.9714980986384737228659076845169804197562E-1": + double: 1 +-float: 2 ++float: 1 + idouble: 1 +-ifloat: 2 +-ildouble: 1 +-ldouble: 1 ++ifloat: 1 + Test "j0 (10.0) == -0.245935764451348335197760862485328754": +-double: 3 ++double: 2 + float: 1 +-idouble: 3 ++idouble: 2 + ifloat: 1 +-ildouble: 1 +-ldouble: 1 +-Test "j0 (2.0) == 0.223890779141235668051827454649948626": +-float: 2 +-ifloat: 2 + Test "j0 (4.0) == -3.9714980986384737228659076845169804197562E-1": + double: 1 +-float: 2 ++float: 1 + idouble: 1 +-ifloat: 2 +-ildouble: 1 +-ldouble: 1 ++ifloat: 1 + Test "j0 (8.0) == 0.171650807137553906090869407851972001": + float: 1 + ifloat: 1 +-ildouble: 1 +-ldouble: 1 + + # j1 + Test "j1 (10.0) == 0.0434727461688614366697487680258592883": + float: 2 + ifloat: 2 +-ildouble: 1 +-ldouble: 1 + Test "j1 (2.0) == 0.576724807756873387202448242269137087": + double: 1 + idouble: 1 +@@ -551,38 +679,25 @@ ldouble: 1 + # jn + Test "jn (0, -4.0) == -3.9714980986384737228659076845169804197562E-1": + double: 1 +-float: 2 ++float: 1 + idouble: 1 +-ifloat: 2 +-ildouble: 1 +-ldouble: 1 ++ifloat: 1 + Test "jn (0, 10.0) == -0.245935764451348335197760862485328754": +-double: 3 ++double: 2 + float: 1 +-idouble: 3 ++idouble: 2 + ifloat: 1 +-ildouble: 1 +-ldouble: 1 +-Test "jn (0, 2.0) == 0.223890779141235668051827454649948626": +-float: 2 +-ifloat: 2 + Test "jn (0, 4.0) == -3.9714980986384737228659076845169804197562E-1": + double: 1 +-float: 2 ++float: 1 + idouble: 1 +-ifloat: 2 +-ildouble: 1 +-ldouble: 1 ++ifloat: 1 + Test "jn (0, 8.0) == 0.171650807137553906090869407851972001": + float: 1 + ifloat: 1 +-ildouble: 1 +-ldouble: 1 + Test "jn (1, 10.0) == 0.0434727461688614366697487680258592883": + float: 2 + ifloat: 2 +-ildouble: 1 +-ldouble: 1 + Test "jn (1, 2.0) == 0.576724807756873387202448242269137087": + double: 1 + idouble: 1 +@@ -615,11 +730,8 @@ ifloat: 1 + ildouble: 4 + ldouble: 4 + Test "jn (10, 2.0) == 0.251538628271673670963516093751820639e-6": +-float: 4 +-ifloat: 4 +-Test "jn (3, -1.0) == -0.0195633539826684059189053216217515083": +-ildouble: 1 +-ldouble: 1 ++float: 3 ++ifloat: 3 + Test "jn (3, 0.125) == 0.406503832554912875023029337653442868e-4": + double: 1 + float: 1 +@@ -628,21 +740,18 @@ ifloat: 1 + Test "jn (3, 0.75) == 0.848438342327410884392755236884386804e-2": + double: 1 + idouble: 1 +-Test "jn (3, 1.0) == 0.0195633539826684059189053216217515083": +-ildouble: 1 +-ldouble: 1 + Test "jn (3, 10.0) == 0.0583793793051868123429354784103409563": + double: 3 +-float: 2 ++float: 1 + idouble: 3 +-ifloat: 2 ++ifloat: 1 + ildouble: 2 + ldouble: 2 + Test "jn (3, 2.0) == 0.128943249474402051098793332969239835": + double: 1 +-float: 2 ++float: 1 + idouble: 1 +-ifloat: 2 ++ifloat: 1 + ildouble: 2 + ldouble: 2 + +@@ -675,115 +784,350 @@ Test "log1p (-0.25) == -0.28768207245178 + float: 1 + ifloat: 1 + +-# log2 +-Test "log2 (e) == M_LOG2El": ++# pow_downward ++Test "pow_downward (1.0625, 1.125) == 1.070582293028761362162622578677070098674": + ildouble: 1 + ldouble: 1 +- +-# sin +-Test "sin (16.0) == -0.2879033166650652947844562482186175296207" +-ildouble: 2 +-ldouble: 2 +- +-# sincos +-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res": +-double: 1 +-float: 1 +-idouble: 1 +-ifloat: 1 +-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res": +-double: 1 ++Test "pow_downward (1.5, 1.03125) == 1.519127098714743184071644334163037684948": + float: 1 +-idouble: 1 + ifloat: 1 +-Test "sincos (pi/2, &sin_res, &cos_res) puts 0 in cos_res": +-double: 1 ++ ++# pow_towardzero ++Test "pow_towardzero (1.0625, 1.125) == 1.070582293028761362162622578677070098674": ++ildouble: 1 ++ldouble: 1 ++Test "pow_towardzero (1.5, 1.03125) == 1.519127098714743184071644334163037684948": + float: 1 +-idouble: 1 + ifloat: 1 +-Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res": ++ ++# pow_upward ++Test "pow_upward (1.0625, 1.125) == 1.070582293028761362162622578677070098674": + float: 1 + ifloat: 1 +- +-# sinh +-Test "sinh (0.75) == 0.822316731935829980703661634446913849": ++Test "pow_upward (1.5, 1.03125) == 1.519127098714743184071644334163037684948": + ildouble: 1 + ldouble: 1 + +-# tan +-Test "tan (pi/4) == 1": +-double: 1 +-idouble: 1 ++# sin_downward ++Test "sin_downward (1) == 0.8414709848078965066525023216302989996226": ++ildouble: 4 ++ldouble: 4 ++Test "sin_downward (10) == -0.5440211108893698134047476618513772816836": ++float: 1 ++ifloat: 1 ++Test "sin_downward (2) == 0.9092974268256816953960198659117448427023": + ildouble: 1 + ldouble: 1 +- +-# tanh +-Test "tanh (-0.75) == -0.635148952387287319214434357312496495": ++Test "sin_downward (3) == 0.1411200080598672221007448028081102798469": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++Test "sin_downward (4) == -0.7568024953079282513726390945118290941359": + ildouble: 1 + ldouble: 1 +-Test "tanh (0.75) == 0.635148952387287319214434357312496495": ++Test "sin_downward (5) == -0.9589242746631384688931544061559939733525": ++float: 1 ++ifloat: 1 ++Test "sin_downward (6) == -0.2794154981989258728115554466118947596280": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++Test "sin_downward (8) == 0.9893582466233817778081235982452886721164": + ildouble: 1 + ldouble: 1 + +-# tgamma +-Test "tgamma (-0.5) == -2 sqrt (pi)": +-double: 1 ++# sin_tonearest ++Test "sin_tonearest (1) == 0.8414709848078965066525023216302989996226": + float: 1 +-idouble: 1 + ifloat: 1 +-Test "tgamma (0.5) == sqrt (pi)": ++ ++# sin_towardzero ++Test "sin_towardzero (1) == 0.8414709848078965066525023216302989996226": + float: 1 + ifloat: 1 +-Test "tgamma (0.7) == 1.29805533264755778568117117915281162": +-double: 1 ++ildouble: 2 ++ldouble: 2 ++Test "sin_towardzero (10) == -0.5440211108893698134047476618513772816836": + float: 1 +-idouble: 1 + ifloat: 1 +- +-# y0 +-Test "y0 (0.125) == -1.38968062514384052915582277745018693": ++Test "sin_towardzero (2) == 0.9092974268256816953960198659117448427023": + ildouble: 1 + ldouble: 1 +-Test "y0 (0.75) == -0.137172769385772397522814379396581855": ++Test "sin_towardzero (3) == 0.1411200080598672221007448028081102798469": + ildouble: 1 + ldouble: 1 +-Test "y0 (1.0) == 0.0882569642156769579829267660235151628": +-double: 2 ++Test "sin_towardzero (4) == -0.7568024953079282513726390945118290941359": ++float: 1 ++ifloat: 1 ++Test "sin_towardzero (5) == -0.9589242746631384688931544061559939733525": + float: 1 +-idouble: 2 + ifloat: 1 ++Test "sin_towardzero (8) == 0.9893582466233817778081235982452886721164": + ildouble: 1 + ldouble: 1 +-Test "y0 (1.5) == 0.382448923797758843955068554978089862": +-double: 2 ++Test "sin_towardzero (9) == 0.4121184852417565697562725663524351793439": + float: 1 +-idouble: 2 + ifloat: 1 +-Test "y0 (10.0) == 0.0556711672835993914244598774101900481": ++ildouble: 1 ++ldouble: 1 ++ ++# sin_upward ++Test "sin_upward (1) == 0.8414709848078965066525023216302989996226": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++Test "sin_upward (2) == 0.9092974268256816953960198659117448427023": ++float: 2 ++ifloat: 2 ++Test "sin_upward (3) == 0.1411200080598672221007448028081102798469": ++ildouble: 1 ++ldouble: 1 ++Test "sin_upward (4) == -0.7568024953079282513726390945118290941359": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "sin_upward (6) == -0.2794154981989258728115554466118947596280": ++ildouble: 1 ++ldouble: 1 ++Test "sin_upward (9) == 0.4121184852417565697562725663524351793439": ++float: 1 ++ifloat: 1 ++ ++# sincos ++Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res": ++double: 1 ++idouble: 1 ++Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res": + double: 1 + float: 1 + idouble: 1 + ifloat: 1 ++Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res": ++float: 1 ++ifloat: 1 ++ ++# sinh ++Test "sinh (0.75) == 0.822316731935829980703661634446913849": + ildouble: 1 + ldouble: 1 +-Test "y0 (2.0) == 0.510375672649745119596606592727157873": ++ ++# sinh_downward ++Test "sinh_downward (22) == 1792456423.065795780701106568345764104225": ++float: 1 ++ifloat: 1 ++ildouble: 5269156250718 ++ldouble: 5269156250718 ++Test "sinh_downward (23) == 4872401723.124451299966006944252978187305": ++float: 1 ++ifloat: 1 ++ildouble: 484603564240 ++ldouble: 484603564240 ++Test "sinh_downward (24) == 13244561064.92173614705070540368454568168": ++float: 1 ++ifloat: 1 ++ildouble: 89137844201 ++ldouble: 89137844201 ++ ++# sinh_tonearest ++Test "sinh_tonearest (22) == 1792456423.065795780701106568345764104225": ++ildouble: 5269156250719 ++ldouble: 5269156250719 ++Test "sinh_tonearest (23) == 4872401723.124451299966006944252978187305": ++ildouble: 484603564241 ++ldouble: 484603564241 ++Test "sinh_tonearest (24) == 13244561064.92173614705070540368454568168": ++ildouble: 89137844201 ++ldouble: 89137844201 ++ ++# sinh_towardzero ++Test "sinh_towardzero (22) == 1792456423.065795780701106568345764104225": ++float: 1 ++ifloat: 1 ++ildouble: 5269156250718 ++ldouble: 5269156250718 ++Test "sinh_towardzero (23) == 4872401723.124451299966006944252978187305": ++float: 1 ++ifloat: 1 ++ildouble: 484603564240 ++ldouble: 484603564240 ++Test "sinh_towardzero (24) == 13244561064.92173614705070540368454568168": ++float: 1 ++ifloat: 1 ++ildouble: 89137844201 ++ldouble: 89137844201 ++ ++# sinh_upward ++Test "sinh_upward (22) == 1792456423.065795780701106568345764104225": ++ildouble: 5269156250719 ++ldouble: 5269156250719 ++Test "sinh_upward (23) == 4872401723.124451299966006944252978187305": ++ildouble: 484603564241 ++ldouble: 484603564241 ++Test "sinh_upward (24) == 13244561064.92173614705070540368454568168": ++ildouble: 89137844202 ++ldouble: 89137844202 ++ ++# tan ++Test "tan (pi/4) == 1": ++ildouble: 1 ++ldouble: 1 ++ ++# tan_downward ++Test "tan_downward (1) == 1.5574077246549022305069748074583601730873": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++Test "tan_downward (10) == 0.6483608274590866712591249330098086768169": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++Test "tan_downward (2) == -2.1850398632615189916433061023136825434320": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_downward (6) == -0.2910061913847491570536995888681755428312": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_downward (8) == -6.7997114552203786999252627596086333648814": ++float: 1 ++ifloat: 1 ++Test "tan_downward (9) == -0.4523156594418098405903708757987855343087": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# tan_tonearest ++Test "tan_tonearest (10) == 0.6483608274590866712591249330098086768169": ++ildouble: 1 ++ldouble: 1 ++Test "tan_tonearest (4) == 1.1578212823495775831373424182673239231198": ++ildouble: 1 ++ldouble: 1 ++Test "tan_tonearest (7) == 0.8714479827243187364564508896003135663222": ++ildouble: 1 ++ldouble: 1 ++ ++# tan_towardzero ++Test "tan_towardzero (10) == 0.6483608274590866712591249330098086768169": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++Test "tan_towardzero (3) == -0.1425465430742778052956354105339134932261": ++float: 1 ++ifloat: 1 ++ildouble: 3 ++ldouble: 3 ++Test "tan_towardzero (4) == 1.1578212823495775831373424182673239231198": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_towardzero (5) == -3.3805150062465856369827058794473439087096": ++float: 1 ++ifloat: 1 ++Test "tan_towardzero (6) == -0.2910061913847491570536995888681755428312": ++ildouble: 1 ++ldouble: 1 ++Test "tan_towardzero (7) == 0.8714479827243187364564508896003135663222": ++ildouble: 2 ++ldouble: 2 ++Test "tan_towardzero (9) == -0.4523156594418098405903708757987855343087": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# tan_upward ++Test "tan_upward (10) == 0.6483608274590866712591249330098086768169": ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (3) == -0.1425465430742778052956354105339134932261": ++float: 1 ++ifloat: 1 ++ildouble: 3 ++ldouble: 3 ++Test "tan_upward (5) == -3.3805150062465856369827058794473439087096": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (6) == -0.2910061913847491570536995888681755428312": ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (7) == 0.8714479827243187364564508896003135663222": ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (9) == -0.4523156594418098405903708757987855343087": ++ildouble: 1 ++ldouble: 1 ++ ++# tanh ++Test "tanh (-0.75) == -0.635148952387287319214434357312496495": ++ildouble: 1 ++ldouble: 1 ++Test "tanh (0.75) == 0.635148952387287319214434357312496495": ++ildouble: 1 ++ldouble: 1 ++ ++# tgamma ++Test "tgamma (-0.5) == -2 sqrt (pi)": + double: 1 ++float: 1 + idouble: 1 +-Test "y0 (8.0) == 0.223521489387566220527323400498620359": ++ifloat: 1 ++Test "tgamma (0.5) == sqrt (pi)": ++float: 1 ++ifloat: 1 ++Test "tgamma (0.7) == 1.29805533264755778568117117915281162": + double: 1 + float: 1 + idouble: 1 + ifloat: 1 ++ ++# y0 ++Test "y0 (0.125) == -1.38968062514384052915582277745018693": + ildouble: 1 + ldouble: 1 +- +-# y1 +-Test "y1 (0.125) == -5.19993611253477499595928744876579921": ++Test "y0 (1.0) == 0.0882569642156769579829267660235151628": ++double: 2 ++float: 1 ++idouble: 2 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "y0 (1.5) == 0.382448923797758843955068554978089862": ++double: 2 ++float: 1 ++idouble: 2 ++ifloat: 1 ++Test "y0 (10.0) == 0.0556711672835993914244598774101900481": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++Test "y0 (2.0) == 0.510375672649745119596606592727157873": + double: 1 + idouble: 1 +-Test "y1 (1.5) == -0.412308626973911295952829820633445323": ++Test "y0 (8.0) == 0.223521489387566220527323400498620359": ++double: 1 + float: 1 ++idouble: 1 + ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# y1 + Test "y1 (10.0) == 0.249015424206953883923283474663222803": + double: 3 + float: 1 +@@ -794,30 +1138,27 @@ ldouble: 2 + Test "y1 (2.0) == -0.107032431540937546888370772277476637": + double: 1 + float: 1 +-idouble: 2 +-ifloat: 2 ++idouble: 1 ++ifloat: 1 + Test "y1 (8.0) == -0.158060461731247494255555266187483550": + double: 1 + float: 2 + idouble: 1 + ifloat: 2 +-ildouble: 2 +-ldouble: 2 ++ildouble: 1 ++ldouble: 1 + + # yn + Test "yn (0, 0.125) == -1.38968062514384052915582277745018693": + ildouble: 1 + ldouble: 1 +-Test "yn (0, 0.75) == -0.137172769385772397522814379396581855": +-ildouble: 1 +-ldouble: 1 + Test "yn (0, 1.0) == 0.0882569642156769579829267660235151628": + double: 2 + float: 1 + idouble: 2 + ifloat: 1 +-ildouble: 2 +-ldouble: 2 ++ildouble: 1 ++ldouble: 1 + Test "yn (0, 1.5) == 0.382448923797758843955068554978089862": + double: 2 + float: 1 +@@ -828,8 +1169,6 @@ double: 1 + float: 1 + idouble: 1 + ifloat: 1 +-ildouble: 2 +-ldouble: 2 + Test "yn (0, 2.0) == 0.510375672649745119596606592727157873": + double: 1 + idouble: 1 +@@ -838,14 +1177,8 @@ double: 1 + float: 1 + idouble: 1 + ifloat: 1 +-ildouble: 2 +-ldouble: 2 +-Test "yn (1, 0.125) == -5.19993611253477499595928744876579921": +-double: 1 +-idouble: 1 +-Test "yn (1, 1.5) == -0.412308626973911295952829820633445323": +-float: 2 +-ifloat: 2 ++ildouble: 1 ++ldouble: 1 + Test "yn (1, 10.0) == 0.249015424206953883923283474663222803": + double: 3 + float: 1 +@@ -863,14 +1196,8 @@ double: 1 + float: 2 + idouble: 1 + ifloat: 2 +-ildouble: 2 +-ldouble: 2 +-Test "yn (3, 0.125) == -2612.69757350066712600220955744091741": +-double: 1 +-idouble: 1 +-Test "yn (10, 0.125) == -127057845771019398.252538486899753195": +-double: 1 +-idouble: 1 ++ildouble: 1 ++ldouble: 1 + Test "yn (10, 0.75) == -2133501638.90573424452445412893839236": + double: 1 + float: 2 +@@ -881,21 +1208,14 @@ float: 2 + ifloat: 2 + Test "yn (10, 10.0) == -0.359814152183402722051986577343560609": + double: 2 +-float: 2 + idouble: 2 +-ifloat: 2 +-ildouble: 2 +-ldouble: 2 + Test "yn (10, 2.0) == -129184.542208039282635913145923304214": + double: 3 + float: 1 + idouble: 3 + ifloat: 1 +-ildouble: 2 +-ldouble: 2 +-Test "yn (3, 0.125) == -2612.69757350066712600220955744091741": +-double: 1 +-idouble: 1 ++ildouble: 1 ++ldouble: 1 + Test "yn (3, 0.75) == -12.9877176234475433186319774484809207": + float: 1 + ifloat: 1 +@@ -904,8 +1224,8 @@ double: 1 + float: 1 + idouble: 1 + ifloat: 1 +-ildouble: 2 +-ldouble: 2 ++ildouble: 1 ++ldouble: 1 + Test "yn (3, 2.0) == -1.12778377684042778608158395773179238": + double: 1 + idouble: 1 +@@ -950,18 +1270,12 @@ ildouble: 1 + ldouble: 1 + + Function: Real part of "cacosh": +-double: 1 +-float: 7 +-idouble: 1 +-ifloat: 7 + ildouble: 1 + ldouble: 1 + + Function: Imaginary part of "cacosh": +-double: 1 +-float: 3 +-idouble: 1 +-ifloat: 3 ++float: 1 ++ifloat: 1 + + Function: Real part of "casin": + double: 1 +@@ -992,8 +1306,6 @@ ildouble: 1 + ldouble: 1 + + Function: Real part of "catan": +-float: 4 +-ifloat: 4 + ildouble: 1 + ldouble: 1 + +@@ -1009,10 +1321,6 @@ Function: Real part of "catanh": + double: 4 + idouble: 4 + +-Function: Imaginary part of "catanh": +-float: 6 +-ifloat: 6 +- + Function: "cbrt": + double: 1 + idouble: 1 +@@ -1066,8 +1374,6 @@ ildouble: 2 + ldouble: 2 + + Function: Imaginary part of "clog": +-float: 3 +-ifloat: 3 + ildouble: 1 + ldouble: 1 + +@@ -1079,9 +1385,9 @@ ldouble: 3 + + Function: Imaginary part of "clog10": + double: 1 +-float: 5 ++float: 1 + idouble: 1 +-ifloat: 5 ++ifloat: 1 + ildouble: 1 + ldouble: 1 + +@@ -1093,10 +1399,54 @@ ifloat: 1 + ildouble: 1 + ldouble: 1 + ++Function: "cos_downward": ++float: 1 ++ifloat: 1 ++ildouble: 4 ++ldouble: 4 ++ ++Function: "cos_tonearest": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "cos_towardzero": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ ++Function: "cos_upward": ++float: 2 ++ifloat: 2 ++ildouble: 2 ++ldouble: 2 ++ + Function: "cosh": + ildouble: 1 + ldouble: 1 + ++Function: "cosh_downward": ++float: 1 ++ifloat: 1 ++ildouble: 5269156250720 ++ldouble: 5269156250720 ++ ++Function: "cosh_tonearest": ++ildouble: 5269156250719 ++ldouble: 5269156250719 ++ ++Function: "cosh_towardzero": ++float: 1 ++ifloat: 1 ++ildouble: 5269156250720 ++ldouble: 5269156250720 ++ ++Function: "cosh_upward": ++ildouble: 5269156250719 ++ldouble: 5269156250719 ++ + Function: Real part of "cpow": + double: 2 + float: 5 +@@ -1113,10 +1463,6 @@ ifloat: 2 + ildouble: 2 + ldouble: 2 + +-Function: Imaginary part of "cproj": +-ildouble: 1 +-ldouble: 1 +- + Function: Real part of "csin": + ildouble: 1 + ldouble: 1 +@@ -1146,8 +1492,6 @@ ildouble: 1 + ldouble: 1 + + Function: Real part of "ctan": +-double: 1 +-idouble: 1 + ildouble: 1 + ldouble: 1 + +@@ -1201,6 +1545,28 @@ Function: "exp2": + ildouble: 2 + ldouble: 2 + ++Function: "exp_downward": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "exp_tonearest": ++ildouble: 1 ++ldouble: 1 ++ ++Function: "exp_towardzero": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "exp_upward": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ + Function: "expm1": + double: 1 + float: 1 +@@ -1218,10 +1584,10 @@ ildouble: 1 + ldouble: 1 + + Function: "j0": +-double: 3 +-float: 2 +-idouble: 3 +-ifloat: 2 ++double: 2 ++float: 1 ++idouble: 2 ++ifloat: 1 + ildouble: 1 + ldouble: 1 + +@@ -1235,9 +1601,9 @@ ldouble: 1 + + Function: "jn": + double: 3 +-float: 4 ++float: 3 + idouble: 3 +-ifloat: 4 ++ifloat: 3 + ildouble: 4 + ldouble: 4 + +@@ -1264,8 +1630,6 @@ ldouble: 1 + Function: "log1p": + float: 1 + ifloat: 1 +-ildouble: 1 +-ldouble: 1 + + Function: "log2": + ildouble: 1 +@@ -1275,10 +1639,52 @@ Function: "pow": + ildouble: 1 + ldouble: 1 + ++Function: "pow_downward": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "pow_towardzero": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "pow_upward": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ + Function: "sin": + ildouble: 1 + ldouble: 1 + ++Function: "sin_downward": ++float: 1 ++ifloat: 1 ++ildouble: 4 ++ldouble: 4 ++ ++Function: "sin_tonearest": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "sin_towardzero": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ ++Function: "sin_upward": ++float: 2 ++ifloat: 2 ++ildouble: 2 ++ldouble: 2 ++ + Function: "sincos": + double: 1 + float: 1 +@@ -1291,12 +1697,54 @@ Function: "sinh": + ildouble: 1 + ldouble: 1 + ++Function: "sinh_downward": ++float: 1 ++ifloat: 1 ++ildouble: 5269156250718 ++ldouble: 5269156250718 ++ ++Function: "sinh_tonearest": ++ildouble: 5269156250719 ++ldouble: 5269156250719 ++ ++Function: "sinh_towardzero": ++float: 1 ++ifloat: 1 ++ildouble: 5269156250718 ++ldouble: 5269156250718 ++ ++Function: "sinh_upward": ++ildouble: 5269156250719 ++ldouble: 5269156250719 ++ + Function: "tan": + double: 1 + idouble: 1 + ildouble: 1 + ldouble: 1 + ++Function: "tan_downward": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ ++Function: "tan_tonearest": ++ildouble: 1 ++ldouble: 1 ++ ++Function: "tan_towardzero": ++float: 1 ++ifloat: 1 ++ildouble: 3 ++ldouble: 3 ++ ++Function: "tan_upward": ++float: 1 ++ifloat: 1 ++ildouble: 3 ++ldouble: 3 ++ + Function: "tanh": + ildouble: 1 + ldouble: 1 +diff -Nrup a/sysdeps/s390/fpu/libm-test-ulps b/sysdeps/s390/fpu/libm-test-ulps +--- a/sysdeps/s390/fpu/libm-test-ulps 2010-05-04 05:27:23.000000000 -0600 ++++ b/sysdeps/s390/fpu/libm-test-ulps 2012-08-06 09:54:38.324772546 -0600 +@@ -31,16 +31,9 @@ ildouble: 1 + ldouble: 1 + + # cacosh +-Test "Real part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i": +-double: 1 +-float: 7 +-idouble: 1 +-ifloat: 7 + Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i": +-double: 1 +-float: 3 +-idouble: 1 +-ifloat: 3 ++float: 1 ++ifloat: 1 + ildouble: 1 + ldouble: 1 + +@@ -83,17 +76,11 @@ ildouble: 1 + ldouble: 1 + + # catan +-Test "Real part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i": +-float: 3 +-ifloat: 3 + Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i": + double: 1 + float: 1 + idouble: 1 + ifloat: 1 +-Test "Real part of: catan (0.75 + 1.25 i) == 1.10714871779409050301706546017853704 + 0.549306144334054845697622618461262852 i": +-float: 4 +-ifloat: 4 + Test "Imaginary part of: catan (0.75 + 1.25 i) == 1.10714871779409050301706546017853704 + 0.549306144334054845697622618461262852 i": + ildouble: 1 + ldouble: 1 +@@ -102,17 +89,12 @@ ldouble: 1 + Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i": + double: 4 + idouble: 4 +-Test "Imaginary part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i": +-float: 4 +-ifloat: 4 + Test "Real part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i": + double: 1 + idouble: 1 + ildouble: 1 + ldouble: 1 + Test "Imaginary part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i": +-float: 6 +-ifloat: 6 + ildouble: 1 + ldouble: 1 + +@@ -185,9 +167,6 @@ ildouble: 1 + ldouble: 1 + + # clog +-Test "Imaginary part of: clog (-2 - 3 i) == 1.2824746787307683680267437207826593 - 2.1587989303424641704769327722648368 i": +-float: 3 +-ifloat: 3 + Test "Real part of: clog (0.75 + 1.25 i) == 0.376885901188190075998919126749298416 + 1.03037682652431246378774332703115153 i": + float: 1 + ifloat: 1 +@@ -210,9 +189,7 @@ ildouble: 1 + ldouble: 1 + Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i": + double: 1 +-float: 5 + idouble: 1 +-ifloat: 5 + ildouble: 1 + ldouble: 1 + Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i": +@@ -288,9 +265,7 @@ ifloat: 1 + # cos + Test "cos (M_PI_6l * 2.0) == 0.5": + double: 1 +-float: 1 + idouble: 1 +-ifloat: 1 + ildouble: 1 + ldouble: 1 + Test "cos (M_PI_6l * 4.0) == -0.5": +@@ -300,11 +275,159 @@ idouble: 2 + ifloat: 1 + ildouble: 1 + ldouble: 1 +-Test "cos (pi/2) == 0": +-double: 1 ++ ++# cos_downward ++Test "cos_downward (1) == 0.5403023058681397174009366074429766037323": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_downward (10) == -0.8390715290764524522588639478240648345199": ++ildouble: 1 ++ldouble: 1 ++Test "cos_downward (2) == -0.4161468365471423869975682295007621897660": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_downward (3) == -0.9899924966004454572715727947312613023937": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_downward (4) == -0.6536436208636119146391681830977503814241": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_downward (5) == 0.2836621854632262644666391715135573083344": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_downward (6) == 0.9601702866503660205456522979229244054519": ++ildouble: 1 ++ldouble: 1 ++Test "cos_downward (7) == 0.7539022543433046381411975217191820122183": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_downward (8) == -0.1455000338086135258688413818311946826093": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ ++# cos_tonearest ++Test "cos_tonearest (7) == 0.7539022543433046381411975217191820122183": ++float: 1 ++ifloat: 1 ++ ++# cos_towardzero ++Test "cos_towardzero (1) == 0.5403023058681397174009366074429766037323": ++ildouble: 1 ++ldouble: 1 ++Test "cos_towardzero (10) == -0.8390715290764524522588639478240648345199": ++ildouble: 1 ++ldouble: 1 ++Test "cos_towardzero (2) == -0.4161468365471423869975682295007621897660": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_towardzero (3) == -0.9899924966004454572715727947312613023937": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_towardzero (4) == -0.6536436208636119146391681830977503814241": ++ildouble: 1 ++ldouble: 1 ++Test "cos_towardzero (5) == 0.2836621854632262644666391715135573083344": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_towardzero (6) == 0.9601702866503660205456522979229244054519": ++ildouble: 1 ++ldouble: 1 ++Test "cos_towardzero (7) == 0.7539022543433046381411975217191820122183": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_towardzero (8) == -0.1455000338086135258688413818311946826093": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ ++# cos_upward ++Test "cos_upward (10) == -0.8390715290764524522588639478240648345199": ++float: 1 ++ifloat: 1 ++Test "cos_upward (6) == 0.9601702866503660205456522979229244054519": ++float: 1 ++ifloat: 1 ++Test "cos_upward (7) == 0.7539022543433046381411975217191820122183": ++float: 1 ++ifloat: 1 ++Test "cos_upward (9) == -0.9111302618846769883682947111811653112463": ++float: 2 ++ifloat: 2 ++ildouble: 1 ++ldouble: 1 ++ ++# cosh_downward ++Test "cosh_downward (22) == 1792456423.065795780980053377632656584997": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cosh_downward (23) == 4872401723.124451300068625740569997090344": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cosh_downward (24) == 13244561064.92173614708845674912733665919": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# cosh_tonearest ++Test "cosh_tonearest (22) == 1792456423.065795780980053377632656584997": ++ildouble: 1 ++ldouble: 1 ++ ++# cosh_towardzero ++Test "cosh_towardzero (22) == 1792456423.065795780980053377632656584997": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cosh_towardzero (23) == 4872401723.124451300068625740569997090344": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cosh_towardzero (24) == 13244561064.92173614708845674912733665919": + float: 1 +-idouble: 1 + ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# cosh_upward ++Test "cosh_upward (22) == 1792456423.065795780980053377632656584997": ++ildouble: 1 ++ldouble: 1 ++Test "cosh_upward (23) == 4872401723.124451300068625740569997090344": ++ildouble: 1 ++ldouble: 1 ++Test "cosh_upward (24) == 13244561064.92173614708845674912733665919": ++ildouble: 1 ++ldouble: 1 + + # cpow + Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i": +@@ -393,8 +516,6 @@ ldouble: 1 + + # ctan + Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i": +-double: 1 +-idouble: 1 + ildouble: 1 + ldouble: 1 + Test "Imaginary part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i": +@@ -467,6 +588,37 @@ Test "exp2 (10) == 1024": + ildouble: 2 + ldouble: 2 + ++# exp_downward ++Test "exp_downward (2) == e^2": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "exp_downward (3) == e^3": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# exp_towardzero ++Test "exp_towardzero (2) == e^2": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "exp_towardzero (3) == e^3": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# exp_upward ++Test "exp_upward (1) == e": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ + # expm1 + Test "expm1 (0.75) == 1.11700001661267466854536981983709561": + double: 1 +@@ -513,29 +665,27 @@ ifloat: 1 + # j0 + Test "j0 (-4.0) == -3.9714980986384737228659076845169804197562E-1": + double: 1 +-float: 2 ++float: 1 + idouble: 1 +-ifloat: 2 ++ifloat: 1 + Test "j0 (0.75) == 0.864242275166648623555731103820923211": + float: 1 + ifloat: 1 + Test "j0 (10.0) == -0.245935764451348335197760862485328754": +-double: 3 ++double: 2 + float: 1 +-idouble: 3 ++idouble: 2 + ifloat: 1 + ildouble: 2 + ldouble: 2 + Test "j0 (2.0) == 0.223890779141235668051827454649948626": +-float: 2 +-ifloat: 2 + ildouble: 2 + ldouble: 2 + Test "j0 (4.0) == -3.9714980986384737228659076845169804197562E-1": + double: 1 +-float: 2 ++float: 1 + idouble: 1 +-ifloat: 2 ++ifloat: 1 + Test "j0 (8.0) == 0.171650807137553906090869407851972001": + float: 1 + ifloat: 1 +@@ -569,29 +719,27 @@ ldouble: 4 + # jn + Test "jn (0, -4.0) == -3.9714980986384737228659076845169804197562E-1": + double: 1 +-float: 2 ++float: 1 + idouble: 1 +-ifloat: 2 ++ifloat: 1 + Test "jn (0, 0.75) == 0.864242275166648623555731103820923211": + float: 1 + ifloat: 1 + Test "jn (0, 10.0) == -0.245935764451348335197760862485328754": +-double: 3 ++double: 2 + float: 1 +-idouble: 3 ++idouble: 2 + ifloat: 1 + ildouble: 2 + ldouble: 2 + Test "jn (0, 2.0) == 0.223890779141235668051827454649948626": +-float: 2 +-ifloat: 2 + ildouble: 2 + ldouble: 2 + Test "jn (0, 4.0) == -3.9714980986384737228659076845169804197562E-1": + double: 1 +-float: 2 ++float: 1 + idouble: 1 +-ifloat: 2 ++ifloat: 1 + Test "jn (0, 8.0) == 0.171650807137553906090869407851972001": + float: 1 + ifloat: 1 +@@ -640,15 +788,13 @@ Test "jn (10, 1.0) == 0.2630615123687453 + ildouble: 1 + ldouble: 1 + Test "jn (10, 10.0) == 0.207486106633358857697278723518753428": +-double: 4 +-float: 3 +-idouble: 4 +-ifloat: 3 ++float: 1 ++ifloat: 1 + ildouble: 2 + ldouble: 2 + Test "jn (10, 2.0) == 0.251538628271673670963516093751820639e-6": +-float: 4 +-ifloat: 4 ++float: 3 ++ifloat: 3 + Test "jn (3, 0.125) == 0.406503832554912875023029337653442868e-4": + double: 1 + float: 1 +@@ -661,16 +807,16 @@ idouble: 1 + ifloat: 1 + Test "jn (3, 10.0) == 0.0583793793051868123429354784103409563": + double: 3 +-float: 2 ++float: 1 + idouble: 3 +-ifloat: 2 ++ifloat: 1 + ildouble: 2 + ldouble: 2 + Test "jn (3, 2.0) == 0.128943249474402051098793332969239835": + double: 1 +-float: 2 ++float: 1 + idouble: 1 +-ifloat: 2 ++ifloat: 1 + + # lgamma + Test "lgamma (-0.5) == log(2*sqrt(pi))": +@@ -713,71 +859,315 @@ Test "log2 (0.75) == -.41503749927884381 + ildouble: 1 + ldouble: 1 + +-# sincos +-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res": +-double: 1 ++# pow_downward ++Test "pow_downward (1.5, 1.03125) == 1.519127098714743184071644334163037684948": + float: 1 +-idouble: 1 + ifloat: 1 +-ildouble: 1 +-ldouble: 1 +-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res": +-double: 1 ++ ++# pow_towardzero ++Test "pow_towardzero (1.5, 1.03125) == 1.519127098714743184071644334163037684948": ++float: 1 ++ifloat: 1 ++ ++# pow_upward ++Test "pow_upward (1.0625, 1.125) == 1.070582293028761362162622578677070098674": + float: 1 +-idouble: 1 + ifloat: 1 + ildouble: 1 + ldouble: 1 +-Test "sincos (pi/2, &sin_res, &cos_res) puts 0 in cos_res": +-double: 1 ++ ++# sin_downward ++Test "sin_downward (1) == 0.8414709848078965066525023216302989996226": ++ildouble: 1 ++ldouble: 1 ++Test "sin_downward (10) == -0.5440211108893698134047476618513772816836": + float: 1 +-idouble: 1 + ifloat: 1 +-Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res": ++Test "sin_downward (2) == 0.9092974268256816953960198659117448427023": ++ildouble: 1 ++ldouble: 1 ++Test "sin_downward (3) == 0.1411200080598672221007448028081102798469": + float: 1 + ifloat: 1 +- +-# sqrt +-Test "sqrt (2) == M_SQRT2l": + ildouble: 1 + ldouble: 1 +- +-# tan +-Test "tan (pi/4) == 1": +-double: 1 +-idouble: 1 +- +-# tanh +-Test "tanh (-0.75) == -0.635148952387287319214434357312496495": ++Test "sin_downward (4) == -0.7568024953079282513726390945118290941359": + ildouble: 1 + ldouble: 1 +-Test "tanh (-1.0) == -0.7615941559557648881194582826047935904": ++Test "sin_downward (5) == -0.9589242746631384688931544061559939733525": ++float: 1 ++ifloat: 1 + ildouble: 1 + ldouble: 1 +-Test "tanh (0.75) == 0.635148952387287319214434357312496495": ++Test "sin_downward (6) == -0.2794154981989258728115554466118947596280": ++float: 1 ++ifloat: 1 + ildouble: 1 + ldouble: 1 +-Test "tanh (1.0) == 0.7615941559557648881194582826047935904": ++Test "sin_downward (8) == 0.9893582466233817778081235982452886721164": + ildouble: 1 + ldouble: 1 + +-# tgamma +-Test "tgamma (-0.5) == -2 sqrt (pi)": +-double: 1 ++# sin_tonearest ++Test "sin_tonearest (1) == 0.8414709848078965066525023216302989996226": + float: 1 +-idouble: 1 + ifloat: 1 + ildouble: 1 + ldouble: 1 +-Test "tgamma (0.5) == sqrt (pi)": ++Test "sin_tonearest (3) == 0.1411200080598672221007448028081102798469": ++ildouble: 1 ++ldouble: 1 ++Test "sin_tonearest (6) == -0.2794154981989258728115554466118947596280": ++ildouble: 1 ++ldouble: 1 ++Test "sin_tonearest (9) == 0.4121184852417565697562725663524351793439": ++ildouble: 1 ++ldouble: 1 ++ ++# sin_towardzero ++Test "sin_towardzero (1) == 0.8414709848078965066525023216302989996226": + float: 1 + ifloat: 1 +-Test "tgamma (0.7) == 1.29805533264755778568117117915281162": +-double: 1 ++Test "sin_towardzero (10) == -0.5440211108893698134047476618513772816836": + float: 1 +-idouble: 1 + ifloat: 1 +-Test "tgamma (4) == 6": ++Test "sin_towardzero (2) == 0.9092974268256816953960198659117448427023": ++ildouble: 1 ++ldouble: 1 ++Test "sin_towardzero (3) == 0.1411200080598672221007448028081102798469": ++ildouble: 1 ++ldouble: 1 ++Test "sin_towardzero (4) == -0.7568024953079282513726390945118290941359": ++float: 1 ++ifloat: 1 ++Test "sin_towardzero (5) == -0.9589242746631384688931544061559939733525": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "sin_towardzero (6) == -0.2794154981989258728115554466118947596280": ++ildouble: 1 ++ldouble: 1 ++Test "sin_towardzero (8) == 0.9893582466233817778081235982452886721164": ++ildouble: 1 ++ldouble: 1 ++Test "sin_towardzero (9) == 0.4121184852417565697562725663524351793439": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ ++# sin_upward ++Test "sin_upward (1) == 0.8414709848078965066525023216302989996226": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "sin_upward (10) == -0.5440211108893698134047476618513772816836": ++ildouble: 1 ++ldouble: 1 ++Test "sin_upward (2) == 0.9092974268256816953960198659117448427023": ++float: 2 ++ifloat: 2 ++Test "sin_upward (3) == 0.1411200080598672221007448028081102798469": ++ildouble: 1 ++ldouble: 1 ++Test "sin_upward (4) == -0.7568024953079282513726390945118290941359": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "sin_upward (7) == 0.6569865987187890903969990915936351779369": ++ildouble: 1 ++ldouble: 1 ++Test "sin_upward (9) == 0.4121184852417565697562725663524351793439": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# sincos ++Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res": ++double: 1 ++idouble: 1 ++ildouble: 1 ++ldouble: 1 ++Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res": ++float: 1 ++ifloat: 1 ++ ++# sinh_downward ++Test "sinh_downward (22) == 1792456423.065795780701106568345764104225": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "sinh_downward (23) == 4872401723.124451299966006944252978187305": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++Test "sinh_downward (24) == 13244561064.92173614705070540368454568168": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# sinh_towardzero ++Test "sinh_towardzero (22) == 1792456423.065795780701106568345764104225": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "sinh_towardzero (23) == 4872401723.124451299966006944252978187305": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++Test "sinh_towardzero (24) == 13244561064.92173614705070540368454568168": ++float: 1 ++ifloat: 1 ++ ++# sinh_upward ++Test "sinh_upward (22) == 1792456423.065795780701106568345764104225": ++ildouble: 1 ++ldouble: 1 ++Test "sinh_upward (23) == 4872401723.124451299966006944252978187305": ++ildouble: 1 ++ldouble: 1 ++Test "sinh_upward (24) == 13244561064.92173614705070540368454568168": ++ildouble: 1 ++ldouble: 1 ++ ++# sqrt ++Test "sqrt (2) == M_SQRT2l": ++ildouble: 1 ++ldouble: 1 ++ ++# tan_downward ++Test "tan_downward (1) == 1.5574077246549022305069748074583601730873": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_downward (10) == 0.6483608274590866712591249330098086768169": ++float: 1 ++ifloat: 1 ++Test "tan_downward (2) == -2.1850398632615189916433061023136825434320": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_downward (6) == -0.2910061913847491570536995888681755428312": ++float: 1 ++ifloat: 1 ++Test "tan_downward (8) == -6.7997114552203786999252627596086333648814": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_downward (9) == -0.4523156594418098405903708757987855343087": ++float: 1 ++ifloat: 1 ++ ++# tan_towardzero ++Test "tan_towardzero (10) == 0.6483608274590866712591249330098086768169": ++float: 1 ++ifloat: 1 ++Test "tan_towardzero (3) == -0.1425465430742778052956354105339134932261": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_towardzero (4) == 1.1578212823495775831373424182673239231198": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_towardzero (5) == -3.3805150062465856369827058794473439087096": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_towardzero (6) == -0.2910061913847491570536995888681755428312": ++ildouble: 1 ++ldouble: 1 ++Test "tan_towardzero (9) == -0.4523156594418098405903708757987855343087": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# tan_upward ++Test "tan_upward (1) == 1.5574077246549022305069748074583601730873": ++float: 1 ++ifloat: 1 ++Test "tan_upward (10) == 0.6483608274590866712591249330098086768169": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (2) == -2.1850398632615189916433061023136825434320": ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (3) == -0.1425465430742778052956354105339134932261": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (4) == 1.1578212823495775831373424182673239231198": ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (5) == -3.3805150062465856369827058794473439087096": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (6) == -0.2910061913847491570536995888681755428312": ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (9) == -0.4523156594418098405903708757987855343087": ++ildouble: 1 ++ldouble: 1 ++ ++# tanh ++Test "tanh (-0.75) == -0.635148952387287319214434357312496495": ++ildouble: 1 ++ldouble: 1 ++Test "tanh (-1.0) == -0.7615941559557648881194582826047935904": ++ildouble: 1 ++ldouble: 1 ++Test "tanh (0.75) == 0.635148952387287319214434357312496495": ++ildouble: 1 ++ldouble: 1 ++Test "tanh (1.0) == 0.7615941559557648881194582826047935904": ++ildouble: 1 ++ldouble: 1 ++ ++# tgamma ++Test "tgamma (-0.5) == -2 sqrt (pi)": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tgamma (0.5) == sqrt (pi)": ++float: 1 ++ifloat: 1 ++Test "tgamma (0.7) == 1.29805533264755778568117117915281162": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++Test "tgamma (4) == 6": + ildouble: 1 + ldouble: 1 + +@@ -917,17 +1307,13 @@ ifloat: 2 + ildouble: 5 + ldouble: 5 + Test "yn (10, 1.0) == -121618014.278689189288130426667971145": +-double: 1 + float: 2 +-idouble: 1 + ifloat: 2 + ildouble: 1 + ldouble: 1 + Test "yn (10, 10.0) == -0.359814152183402722051986577343560609": + double: 2 +-float: 2 + idouble: 2 +-ifloat: 2 + ildouble: 2 + ldouble: 2 + Test "yn (10, 2.0) == -129184.542208039282635913145923304214": +@@ -941,9 +1327,7 @@ Test "yn (3, 0.125) == -2612.69757350066 + double: 1 + idouble: 1 + Test "yn (3, 0.75) == -12.9877176234475433186319774484809207": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + ildouble: 2 + ldouble: 2 +@@ -973,17 +1357,9 @@ Function: Imaginary part of "cacos": + ildouble: 1 + ldouble: 1 + +-Function: Real part of "cacosh": +-double: 1 +-float: 7 +-idouble: 1 +-ifloat: 7 +- + Function: Imaginary part of "cacosh": +-double: 1 +-float: 3 +-idouble: 1 +-ifloat: 3 ++float: 1 ++ifloat: 1 + ildouble: 1 + ldouble: 1 + +@@ -1013,10 +1389,6 @@ ifloat: 6 + ildouble: 2 + ldouble: 2 + +-Function: Real part of "catan": +-float: 4 +-ifloat: 4 +- + Function: Imaginary part of "catan": + double: 1 + float: 1 +@@ -1032,8 +1404,6 @@ ildouble: 1 + ldouble: 1 + + Function: Imaginary part of "catanh": +-float: 6 +-ifloat: 6 + ildouble: 1 + ldouble: 1 + +@@ -1089,10 +1459,6 @@ ifloat: 1 + ildouble: 1 + ldouble: 1 + +-Function: Imaginary part of "clog": +-float: 3 +-ifloat: 3 +- + Function: Real part of "clog10": + float: 1 + ifloat: 1 +@@ -1101,9 +1467,9 @@ ldouble: 1 + + Function: Imaginary part of "clog10": + double: 1 +-float: 5 ++float: 1 + idouble: 1 +-ifloat: 5 ++ifloat: 1 + ildouble: 1 + ldouble: 1 + +@@ -1115,6 +1481,48 @@ ifloat: 1 + ildouble: 1 + ldouble: 1 + ++Function: "cos_downward": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ ++Function: "cos_tonearest": ++float: 1 ++ifloat: 1 ++ ++Function: "cos_towardzero": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ ++Function: "cos_upward": ++float: 2 ++ifloat: 2 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "cosh_downward": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "cosh_tonearest": ++ildouble: 1 ++ldouble: 1 ++ ++Function: "cosh_towardzero": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "cosh_upward": ++ildouble: 1 ++ldouble: 1 ++ + Function: Real part of "cpow": + double: 2 + float: 4 +@@ -1162,8 +1570,6 @@ ildouble: 1 + ldouble: 1 + + Function: Real part of "ctan": +-double: 1 +-idouble: 1 + ildouble: 1 + ldouble: 1 + +@@ -1211,6 +1617,24 @@ Function: "exp2": + ildouble: 2 + ldouble: 2 + ++Function: "exp_downward": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "exp_towardzero": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "exp_upward": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ + Function: "expm1": + double: 1 + float: 1 +@@ -1228,10 +1652,10 @@ float: 1 + ifloat: 1 + + Function: "j0": +-double: 3 +-float: 2 +-idouble: 3 +-ifloat: 2 ++double: 2 ++float: 1 ++idouble: 2 ++ifloat: 1 + ildouble: 2 + ldouble: 2 + +@@ -1244,10 +1668,10 @@ ildouble: 4 + ldouble: 4 + + Function: "jn": +-double: 4 +-float: 4 +-idouble: 4 +-ifloat: 4 ++double: 3 ++float: 3 ++idouble: 3 ++ifloat: 3 + ildouble: 4 + ldouble: 4 + +@@ -1277,6 +1701,44 @@ Function: "log2": + ildouble: 1 + ldouble: 1 + ++Function: "pow_downward": ++float: 1 ++ifloat: 1 ++ ++Function: "pow_towardzero": ++float: 1 ++ifloat: 1 ++ ++Function: "pow_upward": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "sin_downward": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "sin_tonearest": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "sin_towardzero": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ ++Function: "sin_upward": ++float: 2 ++ifloat: 2 ++ildouble: 1 ++ldouble: 1 ++ + Function: "sincos": + double: 1 + float: 1 +@@ -1285,6 +1747,22 @@ ifloat: 1 + ildouble: 1 + ldouble: 1 + ++Function: "sinh_downward": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ ++Function: "sinh_towardzero": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ ++Function: "sinh_upward": ++ildouble: 1 ++ldouble: 1 ++ + Function: "sqrt": + ildouble: 1 + ldouble: 1 +@@ -1293,6 +1771,24 @@ Function: "tan": + double: 1 + idouble: 1 + ++Function: "tan_downward": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "tan_towardzero": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "tan_upward": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ + Function: "tanh": + ildouble: 1 + ldouble: 1 +diff -Nrup a/sysdeps/x86_64/fpu/libm-test-ulps b/sysdeps/x86_64/fpu/libm-test-ulps +--- a/sysdeps/x86_64/fpu/libm-test-ulps 2010-05-04 05:27:23.000000000 -0600 ++++ b/sysdeps/x86_64/fpu/libm-test-ulps 2012-08-06 11:02:14.602759422 -0600 +@@ -42,26 +42,13 @@ ldouble: 1 + + # cacos + Test "Imaginary part of: cacos (0.75 + 1.25 i) == 1.11752014915610270578240049553777969 - 1.13239363160530819522266333696834467 i": +-float: 1 +-ifloat: 1 + ildouble: 2 + ldouble: 2 + + # cacosh +-Test "Real part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i": +-double: 1 +-float: 7 +-idouble: 1 +-ifloat: 7 +-ildouble: 6 +-ldouble: 6 + Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i": +-double: 1 +-float: 3 +-idouble: 1 +-ifloat: 3 +-ildouble: 1 +-ldouble: 1 ++float: 1 ++ifloat: 1 + Test "Real part of: cacosh (0.75 + 1.25 i) == 1.13239363160530819522266333696834467 + 1.11752014915610270578240049553777969 i": + ildouble: 1 + ldouble: 1 +@@ -75,8 +62,6 @@ ifloat: 1 + ildouble: 2 + ldouble: 2 + Test "Imaginary part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i": +-float: 1 +-ifloat: 1 + ildouble: 2 + ldouble: 2 + +@@ -103,21 +88,15 @@ double: 1 + float: 1 + idouble: 1 + ifloat: 1 +-ldouble: 1 + ildouble: 1 ++ldouble: 1 + + # catan +-Test "Real part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i": +-float: 3 +-ifloat: 3 + Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i": + double: 1 + float: 1 + idouble: 1 + ifloat: 1 +-Test "Real part of: catan (0.75 + 1.25 i) == 1.10714871779409050301706546017853704 + 0.549306144334054845697622618461262852 i": +-float: 4 +-ifloat: 4 + + # catanh + Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i": +@@ -125,15 +104,9 @@ double: 4 + idouble: 4 + ildouble: 1 + ldouble: 1 +-Test "Imaginary part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i": +-float: 4 +-ifloat: 4 + Test "Real part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i": + double: 1 + idouble: 1 +-Test "Imaginary part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i": +-float: 6 +-ifloat: 6 + + # cbrt + Test "cbrt (-0.001) == -0.1": +@@ -152,14 +125,9 @@ ildouble: 1 + ldouble: 1 + + # ccos +-Test "Real part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i": +-double: 1 +-idouble: 1 + Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i": + float: 1 + ifloat: 1 +-ildouble: 1 +-ldouble: 1 + Test "Real part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i": + double: 1 + float: 1 +@@ -168,19 +136,17 @@ ifloat: 1 + ildouble: 1 + ldouble: 1 + Test "Imaginary part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i": +-ildouble: 1 +-ldouble: 1 + float: 1 + ifloat: 1 ++ildouble: 1 ++ldouble: 1 + + # ccosh + Test "Real part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i": + float: 1 + ifloat: 1 + Test "Imaginary part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + ildouble: 1 + ldouble: 1 +@@ -205,9 +171,6 @@ ildouble: 1 + ldouble: 1 + + # clog +-Test "Imaginary part of: clog (-2 - 3 i) == 1.2824746787307683680267437207826593 - 2.1587989303424641704769327722648368 i": +-float: 3 +-ifloat: 3 + Test "Real part of: clog (0.75 + 1.25 i) == 0.376885901188190075998919126749298416 + 1.03037682652431246378774332703115153 i": + float: 1 + ifloat: 1 +@@ -227,11 +190,7 @@ idouble: 1 + ifloat: 1 + Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i": + double: 1 +-float: 5 + idouble: 1 +-ifloat: 5 +-ildouble: 1 +-ldouble: 1 + Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i": + double: 1 + float: 1 +@@ -276,9 +235,7 @@ float: 1 + idouble: 1 + ifloat: 1 + Test "Real part of: clog10 (0.75 + 1.25 i) == 0.163679467193165171449476605077428975 + 0.447486970040493067069984724340855636 i": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + ildouble: 1 + ldouble: 1 +@@ -306,33 +263,164 @@ ifloat: 1 + # cos + Test "cos (M_PI_6l * 2.0) == 0.5": + double: 1 +-float: 1 + idouble: 1 +-ifloat: 1 + Test "cos (M_PI_6l * 4.0) == -0.5": + double: 2 + float: 1 + idouble: 2 + ifloat: 1 ++ ++# cos_downward ++Test "cos_downward (1) == 0.5403023058681397174009366074429766037323": ++float: 1 ++ifloat: 1 + ildouble: 1 + ldouble: 1 +-Test "cos (pi/2) == 0": +-double: 1 ++Test "cos_downward (2) == -0.4161468365471423869975682295007621897660": ++float: 1 ++ifloat: 1 ++Test "cos_downward (3) == -0.9899924966004454572715727947312613023937": ++float: 1 ++ifloat: 1 ++Test "cos_downward (4) == -0.6536436208636119146391681830977503814241": + float: 1 +-idouble: 1 + ifloat: 1 + ildouble: 1 + ldouble: 1 +-Test "cos (0.80190127184058835) == 0.69534156199418473": +-double: 1 +-idouble: 1 ++Test "cos_downward (5) == 0.2836621854632262644666391715135573083344": ++float: 1 ++ifloat: 1 ++Test "cos_downward (7) == 0.7539022543433046381411975217191820122183": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_downward (8) == -0.1455000338086135258688413818311946826093": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_downward (9) == -0.9111302618846769883682947111811653112463": ++ildouble: 1 ++ldouble: 1 ++ ++# cos_tonearest ++Test "cos_tonearest (7) == 0.7539022543433046381411975217191820122183": ++float: 1 ++ifloat: 1 ++Test "cos_tonearest (8) == -0.1455000338086135258688413818311946826093": ++ildouble: 1 ++ldouble: 1 ++Test "cos_tonearest (9) == -0.9111302618846769883682947111811653112463": ++ildouble: 1 ++ldouble: 1 ++ ++# cos_towardzero ++Test "cos_towardzero (1) == 0.5403023058681397174009366074429766037323": ++ildouble: 1 ++ldouble: 1 ++Test "cos_towardzero (10) == -0.8390715290764524522588639478240648345199": ++ildouble: 1 ++ldouble: 1 ++Test "cos_towardzero (2) == -0.4161468365471423869975682295007621897660": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_towardzero (3) == -0.9899924966004454572715727947312613023937": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_towardzero (5) == 0.2836621854632262644666391715135573083344": ++float: 1 ++ifloat: 1 ++Test "cos_towardzero (7) == 0.7539022543433046381411975217191820122183": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_towardzero (8) == -0.1455000338086135258688413818311946826093": ++float: 1 ++ifloat: 1 ++ ++# cos_upward ++Test "cos_upward (10) == -0.8390715290764524522588639478240648345199": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_upward (2) == -0.4161468365471423869975682295007621897660": ++ildouble: 1 ++ldouble: 1 ++Test "cos_upward (3) == -0.9899924966004454572715727947312613023937": ++ildouble: 1 ++ldouble: 1 ++Test "cos_upward (5) == 0.2836621854632262644666391715135573083344": ++ildouble: 1 ++ldouble: 1 ++Test "cos_upward (6) == 0.9601702866503660205456522979229244054519": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_upward (7) == 0.7539022543433046381411975217191820122183": ++float: 1 ++ifloat: 1 ++Test "cos_upward (9) == -0.9111302618846769883682947111811653112463": ++float: 2 ++ifloat: 2 ++ ++# cosh_downward ++Test "cosh_downward (22) == 1792456423.065795780980053377632656584997": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++Test "cosh_downward (23) == 4872401723.124451300068625740569997090344": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cosh_downward (24) == 13244561064.92173614708845674912733665919": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# cosh_tonearest ++Test "cosh_tonearest (22) == 1792456423.065795780980053377632656584997": ++ildouble: 1 ++ldouble: 1 ++ ++# cosh_towardzero ++Test "cosh_towardzero (22) == 1792456423.065795780980053377632656584997": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++Test "cosh_towardzero (23) == 4872401723.124451300068625740569997090344": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cosh_towardzero (24) == 13244561064.92173614708845674912733665919": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# cosh_upward ++Test "cosh_upward (23) == 4872401723.124451300068625740569997090344": ++ildouble: 1 ++ldouble: 1 + + # cpow + Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i": + float: 1 + ifloat: 1 +-ldouble: 1 + ildouble: 1 ++ldouble: 1 + Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i": + float: 1 + ifloat: 1 +@@ -363,9 +451,9 @@ ildouble: 1 + ldouble: 1 + Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i": + double: 1 +-float: 5 ++float: 4 + idouble: 1 +-ifloat: 5 ++ifloat: 4 + Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i": + float: 2 + ifloat: 2 +@@ -383,22 +471,11 @@ ldouble: 1 + Test "Real part of: csin (0.75 + 1.25 i) == 1.28722291002649188575873510790565441 + 1.17210635989270256101081285116138863 i": + ildouble: 1 + ldouble: 1 +-Test "Imaginary part of: csin (0.75 + 1.25 i) == 1.28722291002649188575873510790565441 + 1.17210635989270256101081285116138863 i": +-float: 1 +-ifloat: 1 +-Test "Imaginary part of: csin (-2 - 3 i) == -9.15449914691142957346729954460983256 + 4.16890695996656435075481305885375484 i": +-double: 1 +-idouble: 1 + + # csinh +-Test "Real part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i": +-double: 1 +-idouble: 1 + Test "Imaginary part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i": + double: 1 + idouble: 1 +-ildouble: 2 +-ldouble: 2 + Test "Real part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i": + float: 1 + ifloat: 1 +@@ -418,37 +495,31 @@ ifloat: 1 + + # ctan + Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i": +-double: 1 +-idouble: 1 +-ildouble: 439 +-ldouble: 439 ++ildouble: 1 ++ldouble: 1 + Test "Imaginary part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i": +-float: 1 +-ifloat: 1 +-ildouble: 2 +-ldouble: 2 ++ildouble: 1 ++ldouble: 1 + Test "Real part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i": + ildouble: 1 + ldouble: 1 + Test "Imaginary part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i": + double: 1 +-float: 1 + idouble: 1 +-ifloat: 1 + ildouble: 3 + ldouble: 3 + + # ctanh + Test "Real part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i": +-float: 2 +-ifloat: 2 +-ildouble: 5 +-ldouble: 5 + double: 1 ++float: 2 + idouble: 1 ++ifloat: 2 ++ildouble: 3 ++ldouble: 3 + Test "Imaginary part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i": +-ildouble: 25 +-ldouble: 25 ++ildouble: 1 ++ldouble: 1 + Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i": + float: 1 + ifloat: 1 +@@ -456,10 +527,10 @@ Test "Real part of: ctanh (0.75 + 1.25 i + double: 1 + idouble: 1 + Test "Imaginary part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i": +-ildouble: 1 +-ldouble: 1 + double: 1 + idouble: 1 ++ildouble: 1 ++ldouble: 1 + + # erf + Test "erf (1.25) == 0.922900128256458230136523481197281140": +@@ -481,26 +552,61 @@ ldouble: 1 + + # exp10 + Test "exp10 (-1) == 0.1": +-ildouble: 1 +-ldouble: 1 +-float: 1 +-ifloat: 1 + double: 2 +-idouble: 2 +-Test "exp10 (0.75) == 5.62341325190349080394951039776481231": +-ildouble: 2 +-ldouble: 2 + float: 1 ++idouble: 2 + ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "exp10 (0.75) == 5.62341325190349080394951039776481231": + double: 1 ++float: 1 + idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 + Test "exp10 (3) == 1000": +-ildouble: 8 +-ldouble: 8 +-float: 2 +-ifloat: 2 + double: 6 ++float: 2 + idouble: 6 ++ifloat: 2 ++ildouble: 3 ++ldouble: 3 ++ ++# exp_downward ++Test "exp_downward (1) == e": ++ildouble: 1 ++ldouble: 1 ++Test "exp_downward (2) == e^2": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++Test "exp_downward (3) == e^3": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# exp_towardzero ++Test "exp_towardzero (1) == e": ++ildouble: 1 ++ldouble: 1 ++Test "exp_towardzero (2) == e^2": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++Test "exp_towardzero (3) == e^3": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# exp_upward ++Test "exp_upward (1) == e": ++float: 1 ++ifloat: 1 + + # expm1 + Test "expm1 (0.75) == 1.11700001661267466854536981983709561": +@@ -570,9 +676,7 @@ ifloat: 1 + ildouble: 1 + ldouble: 1 + Test "j0 (8.0) == 0.171650807137553906090869407851972001": +-double: 2 + float: 1 +-idouble: 2 + ifloat: 1 + + # j1 +@@ -617,9 +721,7 @@ ifloat: 1 + ildouble: 1 + ldouble: 1 + Test "jn (0, 8.0) == 0.171650807137553906090869407851972001": +-double: 2 + float: 1 +-idouble: 2 + ifloat: 1 + Test "jn (1, 10.0) == 0.0434727461688614366697487680258592883": + float: 2 +@@ -714,12 +816,12 @@ ldouble: 1 + + # log10 + Test "log10 (0.75) == -0.124938736608299953132449886193870744": +-ildouble: 1 +-ldouble: 1 +-float: 2 +-ifloat: 2 + double: 1 ++float: 2 + idouble: 1 ++ifloat: 2 ++ildouble: 1 ++ldouble: 1 + Test "log10 (e) == log10(e)": + float: 1 + ifloat: 1 +@@ -731,37 +833,309 @@ Test "log1p (-0.25) == -0.28768207245178 + float: 1 + ifloat: 1 + +-# sincos +-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res": +-double: 1 +-float: 1 +-idouble: 1 +-ifloat: 1 +-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res": +-double: 1 +-float: 1 +-idouble: 1 +-ifloat: 1 ++# pow_downward ++Test "pow_downward (1.0625, 1.125) == 1.070582293028761362162622578677070098674": + ildouble: 1 + ldouble: 1 +-Test "sincos (pi/2, &sin_res, &cos_res) puts 0 in cos_res": +-double: 1 ++Test "pow_downward (1.5, 1.03125) == 1.519127098714743184071644334163037684948": + float: 1 +-idouble: 1 + ifloat: 1 + ildouble: 1 + ldouble: 1 +-Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res": ++ ++# pow_towardzero ++Test "pow_towardzero (1.0625, 1.125) == 1.070582293028761362162622578677070098674": ++ildouble: 1 ++ldouble: 1 ++Test "pow_towardzero (1.5, 1.03125) == 1.519127098714743184071644334163037684948": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# pow_upward ++Test "pow_upward (1.0625, 1.125) == 1.070582293028761362162622578677070098674": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "pow_upward (1.5, 1.03125) == 1.519127098714743184071644334163037684948": ++ildouble: 1 ++ldouble: 1 ++ ++# sin_downward ++Test "sin_downward (1) == 0.8414709848078965066525023216302989996226": ++ildouble: 1 ++ldouble: 1 ++Test "sin_downward (10) == -0.5440211108893698134047476618513772816836": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "sin_downward (3) == 0.1411200080598672221007448028081102798469": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "sin_downward (4) == -0.7568024953079282513726390945118290941359": ++ildouble: 1 ++ldouble: 1 ++Test "sin_downward (5) == -0.9589242746631384688931544061559939733525": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "sin_downward (6) == -0.2794154981989258728115554466118947596280": ++float: 1 ++ifloat: 1 ++Test "sin_downward (7) == 0.6569865987187890903969990915936351779369": ++ildouble: 1 ++ldouble: 1 ++Test "sin_downward (8) == 0.9893582466233817778081235982452886721164": ++ildouble: 1 ++ldouble: 1 ++Test "sin_downward (9) == 0.4121184852417565697562725663524351793439": ++ildouble: 1 ++ldouble: 1 ++ ++# sin_tonearest ++Test "sin_tonearest (1) == 0.8414709848078965066525023216302989996226": ++float: 1 ++ifloat: 1 ++Test "sin_tonearest (10) == -0.5440211108893698134047476618513772816836": ++ildouble: 1 ++ldouble: 1 ++Test "sin_tonearest (4) == -0.7568024953079282513726390945118290941359": ++ildouble: 1 ++ldouble: 1 ++Test "sin_tonearest (9) == 0.4121184852417565697562725663524351793439": ++ildouble: 1 ++ldouble: 1 ++ ++# sin_towardzero ++Test "sin_towardzero (1) == 0.8414709848078965066525023216302989996226": + float: 1 + ifloat: 1 +-Test "sincos (0.80190127184058835, &sin_res, &cos_res) puts 0.69534156199418473 in cos_res": ++ildouble: 1 ++ldouble: 1 ++Test "sin_towardzero (10) == -0.5440211108893698134047476618513772816836": ++float: 1 ++ifloat: 1 ++Test "sin_towardzero (3) == 0.1411200080598672221007448028081102798469": ++ildouble: 1 ++ldouble: 1 ++Test "sin_towardzero (4) == -0.7568024953079282513726390945118290941359": ++float: 1 ++ifloat: 1 ++Test "sin_towardzero (5) == -0.9589242746631384688931544061559939733525": ++float: 1 ++ifloat: 1 ++Test "sin_towardzero (6) == -0.2794154981989258728115554466118947596280": ++ildouble: 1 ++ldouble: 1 ++Test "sin_towardzero (7) == 0.6569865987187890903969990915936351779369": ++ildouble: 1 ++ldouble: 1 ++Test "sin_towardzero (8) == 0.9893582466233817778081235982452886721164": ++ildouble: 1 ++ldouble: 1 ++Test "sin_towardzero (9) == 0.4121184852417565697562725663524351793439": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# sin_upward ++Test "sin_upward (1) == 0.8414709848078965066525023216302989996226": ++float: 1 ++ifloat: 1 ++Test "sin_upward (2) == 0.9092974268256816953960198659117448427023": ++float: 2 ++ifloat: 2 ++ildouble: 1 ++ldouble: 1 ++Test "sin_upward (4) == -0.7568024953079282513726390945118290941359": ++float: 1 ++ifloat: 1 ++Test "sin_upward (6) == -0.2794154981989258728115554466118947596280": ++ildouble: 1 ++ldouble: 1 ++Test "sin_upward (9) == 0.4121184852417565697562725663524351793439": ++float: 1 ++ifloat: 1 ++ ++# sincos ++Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res": + double: 1 + idouble: 1 +- +-# tan +-Test "tan (pi/4) == 1": ++Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res": + double: 1 ++float: 1 + idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res": ++float: 1 ++ifloat: 1 ++ ++# sinh_downward ++Test "sinh_downward (22) == 1792456423.065795780701106568345764104225": ++float: 1 ++ifloat: 1 ++ildouble: 4 ++ldouble: 4 ++Test "sinh_downward (23) == 4872401723.124451299966006944252978187305": ++float: 1 ++ifloat: 1 ++Test "sinh_downward (24) == 13244561064.92173614705070540368454568168": ++float: 1 ++ifloat: 1 ++ildouble: 5 ++ldouble: 5 ++ ++# sinh_tonearest ++Test "sinh_tonearest (22) == 1792456423.065795780701106568345764104225": ++ildouble: 3 ++ldouble: 3 ++Test "sinh_tonearest (23) == 4872401723.124451299966006944252978187305": ++ildouble: 1 ++ldouble: 1 ++Test "sinh_tonearest (24) == 13244561064.92173614705070540368454568168": ++ildouble: 6 ++ldouble: 6 ++ ++# sinh_towardzero ++Test "sinh_towardzero (22) == 1792456423.065795780701106568345764104225": ++float: 1 ++ifloat: 1 ++ildouble: 4 ++ldouble: 4 ++Test "sinh_towardzero (23) == 4872401723.124451299966006944252978187305": ++float: 1 ++ifloat: 1 ++Test "sinh_towardzero (24) == 13244561064.92173614705070540368454568168": ++float: 1 ++ifloat: 1 ++ildouble: 5 ++ldouble: 5 ++ ++# sinh_upward ++Test "sinh_upward (22) == 1792456423.065795780701106568345764104225": ++ildouble: 16 ++ldouble: 16 ++Test "sinh_upward (23) == 4872401723.124451299966006944252978187305": ++ildouble: 27 ++ldouble: 27 ++Test "sinh_upward (24) == 13244561064.92173614705070540368454568168": ++ildouble: 7 ++ldouble: 7 ++ ++# tan_downward ++Test "tan_downward (1) == 1.5574077246549022305069748074583601730873": ++float: 1 ++ifloat: 1 ++Test "tan_downward (10) == 0.6483608274590866712591249330098086768169": ++float: 1 ++ifloat: 1 ++Test "tan_downward (2) == -2.1850398632615189916433061023136825434320": ++float: 1 ++ifloat: 1 ++Test "tan_downward (4) == 1.1578212823495775831373424182673239231198": ++ildouble: 1 ++ldouble: 1 ++Test "tan_downward (5) == -3.3805150062465856369827058794473439087096": ++ildouble: 1 ++ldouble: 1 ++Test "tan_downward (6) == -0.2910061913847491570536995888681755428312": ++float: 1 ++ifloat: 1 ++Test "tan_downward (8) == -6.7997114552203786999252627596086333648814": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_downward (9) == -0.4523156594418098405903708757987855343087": ++float: 1 ++ifloat: 1 ++ ++# tan_tonearest ++Test "tan_tonearest (6) == -0.2910061913847491570536995888681755428312": ++ildouble: 1 ++ldouble: 1 ++Test "tan_tonearest (8) == -6.7997114552203786999252627596086333648814": ++ildouble: 1 ++ldouble: 1 ++Test "tan_tonearest (9) == -0.4523156594418098405903708757987855343087": ++ildouble: 1 ++ldouble: 1 ++ ++# tan_towardzero ++Test "tan_towardzero (10) == 0.6483608274590866712591249330098086768169": ++float: 1 ++ifloat: 1 ++Test "tan_towardzero (2) == -2.1850398632615189916433061023136825434320": ++ildouble: 1 ++ldouble: 1 ++Test "tan_towardzero (3) == -0.1425465430742778052956354105339134932261": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_towardzero (4) == 1.1578212823495775831373424182673239231198": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_towardzero (5) == -3.3805150062465856369827058794473439087096": ++float: 1 ++ifloat: 1 ++Test "tan_towardzero (6) == -0.2910061913847491570536995888681755428312": ++ildouble: 1 ++ldouble: 1 ++Test "tan_towardzero (8) == -6.7997114552203786999252627596086333648814": ++ildouble: 2 ++ldouble: 2 ++Test "tan_towardzero (9) == -0.4523156594418098405903708757987855343087": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# tan_upward ++Test "tan_upward (1) == 1.5574077246549022305069748074583601730873": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (10) == 0.6483608274590866712591249330098086768169": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (2) == -2.1850398632615189916433061023136825434320": ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (3) == -0.1425465430742778052956354105339134932261": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (5) == -3.3805150062465856369827058794473439087096": ++float: 1 ++ifloat: 1 ++Test "tan_upward (6) == -0.2910061913847491570536995888681755428312": ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (7) == 0.8714479827243187364564508896003135663222": ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (8) == -6.7997114552203786999252627596086333648814": ++ildouble: 2 ++ldouble: 2 ++Test "tan_upward (9) == -0.4523156594418098405903708757987855343087": ++ildouble: 1 ++ldouble: 1 + + # tgamma + Test "tgamma (-0.5) == -2 sqrt (pi)": +@@ -779,9 +1153,6 @@ double: 1 + float: 1 + idouble: 1 + ifloat: 1 +-Test "tgamma (4) == 6": +-ildouble: 1 +-ldouble: 1 + + # y0 + Test "y0 (0.125) == -1.38968062514384052915582277745018693": +@@ -960,27 +1331,17 @@ ildouble: 1 + ldouble: 1 + + Function: Imaginary part of "cacos": +-float: 1 +-ifloat: 1 + ildouble: 2 + ldouble: 2 + + Function: Real part of "cacosh": +-double: 1 +-float: 7 +-idouble: 1 +-ifloat: 7 +-ildouble: 6 +-ldouble: 6 +- +-Function: Imaginary part of "cacosh": +-double: 1 +-float: 3 +-idouble: 1 +-ifloat: 3 + ildouble: 1 + ldouble: 1 + ++Function: Imaginary part of "cacosh": ++float: 1 ++ifloat: 1 ++ + Function: Real part of "casin": + double: 1 + float: 1 +@@ -990,8 +1351,6 @@ ildouble: 2 + ldouble: 2 + + Function: Imaginary part of "casin": +-float: 1 +-ifloat: 1 + ildouble: 2 + ldouble: 2 + +@@ -1011,10 +1370,6 @@ ifloat: 6 + ildouble: 5 + ldouble: 5 + +-Function: Real part of "catan": +-float: 4 +-ifloat: 4 +- + Function: Imaginary part of "catan": + double: 1 + float: 1 +@@ -1027,10 +1382,6 @@ idouble: 4 + ildouble: 1 + ldouble: 1 + +-Function: Imaginary part of "catanh": +-float: 6 +-ifloat: 6 +- + Function: "cbrt": + double: 1 + idouble: 1 +@@ -1058,9 +1409,7 @@ idouble: 1 + ifloat: 1 + + Function: Imaginary part of "ccosh": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + ildouble: 1 + ldouble: 1 +@@ -1081,25 +1430,17 @@ ifloat: 1 + ildouble: 1 + ldouble: 1 + +-Function: Imaginary part of "clog": +-float: 3 +-ifloat: 3 +- + Function: Real part of "clog10": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + ildouble: 1 + ldouble: 1 + + Function: Imaginary part of "clog10": + double: 1 +-float: 5 ++float: 1 + idouble: 1 +-ifloat: 5 +-ildouble: 1 +-ldouble: 1 ++ifloat: 1 + + Function: "cos": + double: 2 +@@ -1109,11 +1450,55 @@ ifloat: 1 + ildouble: 1 + ldouble: 1 + ++Function: "cos_downward": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "cos_tonearest": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "cos_towardzero": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "cos_upward": ++float: 2 ++ifloat: 2 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "cosh_downward": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ ++Function: "cosh_tonearest": ++ildouble: 1 ++ldouble: 1 ++ ++Function: "cosh_towardzero": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ ++Function: "cosh_upward": ++ildouble: 1 ++ldouble: 1 ++ + Function: Real part of "cpow": + double: 2 +-float: 5 ++float: 4 + idouble: 2 +-ifloat: 5 ++ifloat: 4 + ildouble: 5 + ldouble: 5 + +@@ -1129,16 +1514,8 @@ Function: Real part of "csin": + ildouble: 1 + ldouble: 1 + +-Function: Imaginary part of "csin": +-double: 1 +-float: 1 +-idouble: 1 +-ifloat: 1 +- + Function: Real part of "csinh": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + ildouble: 1 + ldouble: 1 +@@ -1148,24 +1525,18 @@ double: 1 + float: 1 + idouble: 1 + ifloat: 1 +-ildouble: 2 +-ldouble: 2 + + Function: Real part of "csqrt": + float: 1 + ifloat: 1 + + Function: Real part of "ctan": +-double: 1 +-idouble: 1 +-ildouble: 439 +-ldouble: 439 ++ildouble: 1 ++ldouble: 1 + + Function: Imaginary part of "ctan": + double: 1 +-float: 1 + idouble: 1 +-ifloat: 1 + ildouble: 3 + ldouble: 3 + +@@ -1174,16 +1545,16 @@ double: 1 + float: 2 + idouble: 1 + ifloat: 2 +-ildouble: 5 +-ldouble: 5 ++ildouble: 3 ++ldouble: 3 + + Function: Imaginary part of "ctanh": +-float: 1 +-ifloat: 1 +-ildouble: 25 +-ldouble: 25 + double: 1 ++float: 1 + idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 + + Function: "erf": + double: 1 +@@ -1196,12 +1567,28 @@ ildouble: 1 + ldouble: 1 + + Function: "exp10": +-ildouble: 8 +-ldouble: 8 +-float: 2 +-ifloat: 2 + double: 6 ++float: 2 + idouble: 6 ++ifloat: 2 ++ildouble: 3 ++ldouble: 3 ++ ++Function: "exp_downward": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ ++Function: "exp_towardzero": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ ++Function: "exp_upward": ++float: 1 ++ifloat: 1 + + Function: "expm1": + double: 1 +@@ -1250,17 +1637,59 @@ ildouble: 1 + ldouble: 1 + + Function: "log10": ++double: 1 + float: 2 ++idouble: 1 + ifloat: 2 + ildouble: 1 + ldouble: 1 +-double: 1 +-idouble: 1 + + Function: "log1p": + float: 1 + ifloat: 1 + ++Function: "pow_downward": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "pow_towardzero": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "pow_upward": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "sin_downward": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "sin_tonearest": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "sin_towardzero": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "sin_upward": ++float: 2 ++ifloat: 2 ++ildouble: 1 ++ldouble: 1 ++ + Function: "sincos": + double: 1 + float: 1 +@@ -1269,10 +1698,52 @@ ifloat: 1 + ildouble: 1 + ldouble: 1 + ++Function: "sinh_downward": ++float: 1 ++ifloat: 1 ++ildouble: 5 ++ldouble: 5 ++ ++Function: "sinh_tonearest": ++ildouble: 6 ++ldouble: 6 ++ ++Function: "sinh_towardzero": ++float: 1 ++ifloat: 1 ++ildouble: 5 ++ldouble: 5 ++ ++Function: "sinh_upward": ++ildouble: 27 ++ldouble: 27 ++ + Function: "tan": + double: 1 + idouble: 1 + ++Function: "tan_downward": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "tan_tonearest": ++ildouble: 1 ++ldouble: 1 ++ ++Function: "tan_towardzero": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ ++Function: "tan_upward": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ + Function: "tgamma": + double: 1 + float: 1 +diff -Nrup a/sysdeps/x86_64/fpu/math_private.h b/sysdeps/x86_64/fpu/math_private.h +--- a/sysdeps/x86_64/fpu/math_private.h 2010-05-04 05:27:23.000000000 -0600 ++++ b/sysdeps/x86_64/fpu/math_private.h 2012-08-06 09:54:00.893929393 -0600 +@@ -56,3 +56,82 @@ do { \ + } while (0) + + #endif ++ ++ ++/* Specialized variants of the <fenv.h> interfaces which only handle ++ either the FPU or the SSE unit. */ ++#undef libc_fegetround ++#define libc_fegetround() \ ++ ({ \ ++ unsigned int mxcsr; \ ++ asm volatile ("stmxcsr %0" : "=m" (*&mxcsr)); \ ++ (mxcsr & 0x6000) >> 3; \ ++ }) ++#undef libc_fegetroundf ++#define libc_fegetroundf() libc_fegetround () ++// #define libc_fegetroundl() fegetround () ++ ++#undef libc_fesetround ++#define libc_fesetround(r) \ ++ do { \ ++ unsigned int mxcsr; \ ++ asm ("stmxcsr %0" : "=m" (*&mxcsr)); \ ++ mxcsr = (mxcsr & ~0x6000) | ((r) << 3); \ ++ asm volatile ("ldmxcsr %0" : : "m" (*&mxcsr)); \ ++ } while (0) ++#undef libc_fesetroundf ++#define libc_fesetroundf(r) libc_fesetround (r) ++// #define libc_fesetroundl(r) (void) fesetround (r) ++ ++#undef libc_feholdexcept ++#define libc_feholdexcept(e) \ ++ do { \ ++ unsigned int mxcsr; \ ++ asm ("stmxcsr %0" : "=m" (*&mxcsr)); \ ++ (e)->__mxcsr = mxcsr; \ ++ mxcsr = (mxcsr | 0x1f80) & ~0x3f; \ ++ asm volatile ("ldmxcsr %0" : : "m" (*&mxcsr)); \ ++ } while (0) ++#undef libc_feholdexceptf ++#define libc_feholdexceptf(e) libc_feholdexcept (e) ++// #define libc_feholdexceptl(e) (void) feholdexcept (e) ++ ++#undef libc_feholdexcept_setround ++#define libc_feholdexcept_setround(e, r) \ ++ do { \ ++ unsigned int mxcsr; \ ++ asm ("stmxcsr %0" : "=m" (*&mxcsr)); \ ++ (e)->__mxcsr = mxcsr; \ ++ mxcsr = ((mxcsr | 0x1f80) & ~0x603f) | ((r) << 3); \ ++ asm volatile ("ldmxcsr %0" : : "m" (*&mxcsr)); \ ++ } while (0) ++#undef libc_feholdexcept_setroundf ++#define libc_feholdexcept_setroundf(e, r) libc_feholdexcept_setround (e, r) ++// #define libc_feholdexcept_setroundl(e, r) ... ++ ++#undef libc_fetestexcept ++#define libc_fetestexcept(e) \ ++ ({ unsigned int mxcsr; asm volatile ("stmxcsr %0" : "=m" (*&mxcsr)); \ ++ mxcsr & (e) & FE_ALL_EXCEPT; }) ++#undef libc_fetestexceptf ++#define libc_fetestexceptf(e) libc_fetestexcept (e) ++// #define libc_fetestexceptl(e) fetestexcept (e) ++ ++#undef libc_fesetenv ++#define libc_fesetenv(e) \ ++ asm volatile ("ldmxcsr %0" : : "m" ((e)->__mxcsr)) ++#undef libc_fesetenvf ++#define libc_fesetenvf(e) libc_fesetenv (e) ++// #define libc_fesetenvl(e) (void) fesetenv (e) ++ ++#undef libc_feupdateenv ++#define libc_feupdateenv(e) \ ++ do { \ ++ unsigned int mxcsr; \ ++ asm volatile ("stmxcsr %0" : "=m" (*&mxcsr)); \ ++ asm volatile ("ldmxcsr %0" : : "m" ((e)->__mxcsr)); \ ++ feraiseexcept (mxcsr & FE_ALL_EXCEPT); \ ++ } while (0) ++#undef libc_feupdateenvf ++#define libc_feupdateenvf(e) libc_feupdateenv (e) ++// #define libc_feupdateenvl(e) (void) feupdateenv (e) diff --git a/src/patches/glibc/glibc-rh841787.patch b/src/patches/glibc/glibc-rh841787.patch new file mode 100644 index 0000000..3cec783 --- /dev/null +++ b/src/patches/glibc/glibc-rh841787.patch @@ -0,0 +1,42 @@ +diff -rup a/resolv/res_init.c b/resolv/res_init.c +--- a/resolv/res_init.c 2012-07-26 15:10:45.655638776 -0600 ++++ b/resolv/res_init.c 2012-07-26 15:11:27.731423002 -0600 +@@ -314,9 +314,9 @@ __res_vinit(res_state statp, int preinit + cp++; + if ((*cp != '\0') && (*cp != '\n') + && __inet_aton(cp, &a)) { +- statp->nsaddr_list[nservall].sin_addr = a; +- statp->nsaddr_list[nservall].sin_family = AF_INET; +- statp->nsaddr_list[nservall].sin_port = ++ statp->nsaddr_list[nserv].sin_addr = a; ++ statp->nsaddr_list[nserv].sin_family = AF_INET; ++ statp->nsaddr_list[nserv].sin_port = + htons(NAMESERVER_PORT); + nserv++; + #ifdef _LIBC +diff -rup a/resolv/res_send.c b/resolv/res_send.c +--- a/resolv/res_send.c 2010-05-04 05:27:23.000000000 -0600 ++++ b/resolv/res_send.c 2012-07-26 15:34:58.398261659 -0600 +@@ -421,10 +421,10 @@ __libc_res_nsend(res_state statp, const + EXT(statp).nsmap[n] = MAXNS; + } + } +- n = statp->nscount; +- if (statp->nscount > EXT(statp).nscount) ++ n = statp->nscount - EXT(statp).nscount6; ++ if (n > EXT(statp).nscount) + for (n = EXT(statp).nscount, ns = 0; +- n < statp->nscount; n++) { ++ n < statp->nscount - EXT(statp).nscount6; n++) { + while (ns < MAXNS + && EXT(statp).nsmap[ns] != MAXNS) + ns++; +@@ -441,7 +441,7 @@ __libc_res_nsend(res_state statp, const + malloc(sizeof (struct sockaddr_in6)); + if (EXT(statp).nsaddrs[n] != NULL) { + memset (mempcpy(EXT(statp).nsaddrs[n], +- &statp->nsaddr_list[n], ++ &statp->nsaddr_list[ns], + sizeof (struct sockaddr_in)), + '\0', + sizeof (struct sockaddr_in6) diff --git a/src/patches/glibc/glibc-rh843673.patch b/src/patches/glibc/glibc-rh843673.patch new file mode 100644 index 0000000..a2ff262 --- /dev/null +++ b/src/patches/glibc/glibc-rh843673.patch @@ -0,0 +1,31 @@ +diff -Brup a/stdlib/msort.c b/stdlib/msort.c +--- a/stdlib/msort.c 2010-05-04 07:27:23.000000000 -0400 ++++ b/stdlib/msort.c 2012-08-07 13:30:14.131765346 -0400 +@@ -25,6 +25,8 @@ + #include <unistd.h> + #include <memcopy.h> + #include <errno.h> ++#include <atomic.h> ++ + + struct msort_param + { +@@ -182,7 +184,7 @@ qsort_r (void *b, size_t n, size_t s, __ + static long int phys_pages; + static int pagesize; + +- if (phys_pages == 0) ++ if (pagesize == 0) + { + phys_pages = __sysconf (_SC_PHYS_PAGES); + +@@ -197,6 +199,9 @@ qsort_r (void *b, size_t n, size_t s, __ + a quarter of the physical memory. */ + phys_pages /= 4; + ++ /* Make sure phys_pages is written to memory. */ ++ atomic_write_barrier (); ++ + pagesize = __sysconf (_SC_PAGESIZE); + } + diff --git a/src/patches/glibc/glibc-rh846342.patch b/src/patches/glibc/glibc-rh846342.patch new file mode 100644 index 0000000..8cfca05 --- /dev/null +++ b/src/patches/glibc/glibc-rh846342.patch @@ -0,0 +1,48 @@ +This is a workaround for broken code which issues memcpy requests with +overlapping arguments. With this patch installed, if the file +/etc/sysconfig/32bit_ssse3_memcpy_via_32bit_ssse3_memmove exists then a +32bit memcpy call which normally would be handled by the SSSE3 memcpy +implementation would instead be handled by the 32bit SSSE3 memmove +implementation which is more tolerant of overlaps. + +diff -Nrup a/sysdeps/i386/i686/multiarch/memcpy.S b/sysdeps/i386/i686/multiarch/memcpy.S +--- a/sysdeps/i386/i686/multiarch/memcpy.S 2010-05-04 05:27:23.000000000 -0600 ++++ b/sysdeps/i386/i686/multiarch/memcpy.S 2012-11-20 14:19:52.890780415 -0700 +@@ -21,6 +21,10 @@ + #include <sysdep.h> + #include <init-arch.h> + ++ .section .rodata ++L(magicfile): ++ .ascii "/etc/sysconfig/32bit_ssse3_memcpy_via_32bit_ssse3_memmove" ++ + /* Define multiple versions only for the definition in lib and for + DSO. In static binaries we need memcpy before the initialization + happened. */ +@@ -48,6 +52,26 @@ ENTRY(memcpy) + 1: leal __memcpy_ia32@GOTOFF(%ebx), %eax + testl $bit_SSSE3, CPUID_OFFSET+index_SSSE3+__cpu_features@GOTOFF(%ebx) + jz 2f ++ ++ /* This is an inlined access (magicfile, 0) syscall. ++ ++ Note that it clobbers %ebx, so we have to save/restore ++ it around the syscall. */ ++ mov %ebx, %edx ++ leal L(magicfile)@GOTOFF(%ebx), %ebx ++ xor %ecx, %ecx ++ movl $33, %eax ++ int $0x80 ++ mov %edx, %ebx ++ ++ /* If the file did not exist, then %eax will be -1..-4095 and we ++ do nothing special. */ ++ cmpl $-4095, %eax ++ jae 4f ++ ++ leal __memmove_ssse3@GOTOFF(%ebx), %eax ++ jmp 2f ++4: + leal __memcpy_ssse3@GOTOFF(%ebx), %eax + testl $bit_Fast_Rep_String, FEATURE_OFFSET+index_Fast_Rep_String+__cpu_features@GOTOFF(%ebx) + jz 2f diff --git a/src/patches/glibc/glibc-rh847932.patch b/src/patches/glibc/glibc-rh847932.patch new file mode 100644 index 0000000..33ea851 --- /dev/null +++ b/src/patches/glibc/glibc-rh847932.patch @@ -0,0 +1,364 @@ +diff -Nrup a/stdlib/Makefile b/stdlib/Makefile +--- a/stdlib/Makefile 2010-05-04 05:27:23.000000000 -0600 ++++ b/stdlib/Makefile 2012-08-15 09:25:37.812443006 -0600 +@@ -71,7 +71,7 @@ tests := tst-strtol tst-strtod testmb t + tst-atof1 tst-atof2 tst-strtod2 tst-strtod3 tst-rand48-2 \ + tst-makecontext tst-strtod4 tst-strtod5 tst-qsort2 \ + tst-makecontext2 tst-strtod6 tst-unsetenv1 \ +- tst-makecontext3 ++ tst-makecontext3 tst-strtod-overflow + + include ../Makeconfig + +diff -Nrup a/stdlib/strtod_l.c b/stdlib/strtod_l.c +--- a/stdlib/strtod_l.c 2010-05-04 05:27:23.000000000 -0600 ++++ b/stdlib/strtod_l.c 2012-08-15 09:34:29.550281346 -0600 +@@ -62,6 +62,7 @@ extern unsigned long long int ____strtou + #include <math.h> + #include <stdlib.h> + #include <string.h> ++#include <stdint.h> + + /* The gmp headers need some configuration frobs. */ + #define HAVE_ALLOCA 1 +@@ -176,19 +177,19 @@ extern const mp_limb_t _tens_in_limb[MAX + /* Return a floating point number of the needed type according to the given + multi-precision number after possible rounding. */ + static FLOAT +-round_and_return (mp_limb_t *retval, int exponent, int negative, ++round_and_return (mp_limb_t *retval, intmax_t exponent, int negative, + mp_limb_t round_limb, mp_size_t round_bit, int more_bits) + { + if (exponent < MIN_EXP - 1) + { +- mp_size_t shift = MIN_EXP - 1 - exponent; +- +- if (shift > MANT_DIG) ++ if (exponent < MIN_EXP - 1 - MANT_DIG) + { + __set_errno (EDOM); + return 0.0; + } + ++ mp_size_t shift = MIN_EXP - 1 - exponent; ++ + more_bits |= (round_limb & ((((mp_limb_t) 1) << round_bit) - 1)) != 0; + if (shift == MANT_DIG) + /* This is a special case to handle the very seldom case where +@@ -235,6 +236,9 @@ round_and_return (mp_limb_t *retval, int + __set_errno (ERANGE); + } + ++ if (exponent > MAX_EXP) ++ goto overflow; ++ + if ((round_limb & (((mp_limb_t) 1) << round_bit)) != 0 + && (more_bits || (retval[0] & 1) != 0 + || (round_limb & ((((mp_limb_t) 1) << round_bit) - 1)) != 0)) +@@ -260,6 +264,7 @@ round_and_return (mp_limb_t *retval, int + } + + if (exponent > MAX_EXP) ++ overflow: + return negative ? -FLOAT_HUGE_VAL : FLOAT_HUGE_VAL; + + return MPN2FLOAT (retval, exponent, negative); +@@ -273,7 +278,7 @@ round_and_return (mp_limb_t *retval, int + factor for the resulting number (see code) multiply by it. */ + static const STRING_TYPE * + str_to_mpn (const STRING_TYPE *str, int digcnt, mp_limb_t *n, mp_size_t *nsize, +- int *exponent ++ intmax_t *exponent + #ifndef USE_WIDE_CHAR + , const char *decimal, size_t decimal_len, const char *thousands + #endif +@@ -337,7 +342,7 @@ str_to_mpn (const STRING_TYPE *str, int + } + while (--digcnt > 0); + +- if (*exponent > 0 && cnt + *exponent <= MAX_DIG_PER_LIMB) ++ if (*exponent > 0 && *exponent <= MAX_DIG_PER_LIMB - cnt) + { + low *= _tens_in_limb[*exponent]; + start = _tens_in_limb[cnt + *exponent]; +@@ -415,7 +420,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group + { + int negative; /* The sign of the number. */ + MPN_VAR (num); /* MP representation of the number. */ +- int exponent; /* Exponent of the number. */ ++ intmax_t exponent; /* Exponent of the number. */ + + /* Numbers starting `0X' or `0x' have to be processed with base 16. */ + int base = 10; +@@ -437,7 +442,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group + /* Points at the character following the integer and fractional digits. */ + const STRING_TYPE *expp; + /* Total number of digit and number of digits in integer part. */ +- int dig_no, int_no, lead_zero; ++ size_t dig_no, int_no, lead_zero; + /* Contains the last character read. */ + CHAR_TYPE c; + +@@ -769,7 +774,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group + are all or any is really a fractional digit will be decided + later. */ + int_no = dig_no; +- lead_zero = int_no == 0 ? -1 : 0; ++ lead_zero = int_no == 0 ? (size_t) -1 : 0; + + /* Read the fractional digits. A special case are the 'american + style' numbers like `16.' i.e. with decimal point but without +@@ -791,12 +796,13 @@ ____STRTOF_INTERNAL (nptr, endptr, group + (base == 16 && ({ CHAR_TYPE lo = TOLOWER (c); + lo >= L_('a') && lo <= L_('f'); }))) + { +- if (c != L_('0') && lead_zero == -1) ++ if (c != L_('0') && lead_zero == (size_t) -1) + lead_zero = dig_no - int_no; + ++dig_no; + c = *++cp; + } + } ++ assert (dig_no <= (uintmax_t) INTMAX_MAX); + + /* Remember start of exponent (if any). */ + expp = cp; +@@ -819,24 +825,80 @@ ____STRTOF_INTERNAL (nptr, endptr, group + + if (c >= L_('0') && c <= L_('9')) + { +- int exp_limit; ++ intmax_t exp_limit; + + /* Get the exponent limit. */ + if (base == 16) +- exp_limit = (exp_negative ? +- -MIN_EXP + MANT_DIG + 4 * int_no : +- MAX_EXP - 4 * int_no + 4 * lead_zero + 3); ++ { ++ if (exp_negative) ++ { ++ assert (int_no <= (uintmax_t) (INTMAX_MAX ++ + MIN_EXP - MANT_DIG) / 4); ++ exp_limit = -MIN_EXP + MANT_DIG + 4 * (intmax_t) int_no; ++ } ++ else ++ { ++ if (int_no) ++ { ++ assert (lead_zero == 0 ++ && int_no <= (uintmax_t) INTMAX_MAX / 4); ++ exp_limit = MAX_EXP - 4 * (intmax_t) int_no + 3; ++ } ++ else if (lead_zero == (size_t) -1) ++ { ++ /* The number is zero and this limit is ++ arbitrary. */ ++ exp_limit = MAX_EXP + 3; ++ } ++ else ++ { ++ assert (lead_zero ++ <= (uintmax_t) (INTMAX_MAX - MAX_EXP - 3) / 4); ++ exp_limit = (MAX_EXP ++ + 4 * (intmax_t) lead_zero ++ + 3); ++ } ++ } ++ } + else +- exp_limit = (exp_negative ? +- -MIN_10_EXP + MANT_DIG + int_no : +- MAX_10_EXP - int_no + lead_zero + 1); ++ { ++ if (exp_negative) ++ { ++ assert (int_no ++ <= (uintmax_t) (INTMAX_MAX + MIN_10_EXP - MANT_DIG)); ++ exp_limit = -MIN_10_EXP + MANT_DIG + (intmax_t) int_no; ++ } ++ else ++ { ++ if (int_no) ++ { ++ assert (lead_zero == 0 ++ && int_no <= (uintmax_t) INTMAX_MAX); ++ exp_limit = MAX_10_EXP - (intmax_t) int_no + 1; ++ } ++ else if (lead_zero == (size_t) -1) ++ { ++ /* The number is zero and this limit is ++ arbitrary. */ ++ exp_limit = MAX_10_EXP + 1; ++ } ++ else ++ { ++ assert (lead_zero ++ <= (uintmax_t) (INTMAX_MAX - MAX_10_EXP - 1)); ++ exp_limit = MAX_10_EXP + (intmax_t) lead_zero + 1; ++ } ++ } ++ } ++ ++ if (exp_limit < 0) ++ exp_limit = 0; + + do + { +- exponent *= 10; +- exponent += c - L_('0'); +- +- if (__builtin_expect (exponent > exp_limit, 0)) ++ if (__builtin_expect ((exponent > exp_limit / 10 ++ || (exponent == exp_limit / 10 ++ && c - L_('0') > exp_limit % 10)), 0)) + /* The exponent is too large/small to represent a valid + number. */ + { +@@ -845,7 +907,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group + /* We have to take care for special situation: a joker + might have written "0.0e100000" which is in fact + zero. */ +- if (lead_zero == -1) ++ if (lead_zero == (size_t) -1) + result = negative ? -0.0 : 0.0; + else + { +@@ -864,6 +926,9 @@ ____STRTOF_INTERNAL (nptr, endptr, group + /* NOTREACHED */ + } + ++ exponent *= 10; ++ exponent += c - L_('0'); ++ + c = *++cp; + } + while (c >= L_('0') && c <= L_('9')); +@@ -932,7 +997,14 @@ ____STRTOF_INTERNAL (nptr, endptr, group + } + #endif + startp += lead_zero + decimal_len; +- exponent -= base == 16 ? 4 * lead_zero : lead_zero; ++ assert (lead_zero <= (base == 16 ++ ? (uintmax_t) INTMAX_MAX / 4 ++ : (uintmax_t) INTMAX_MAX)); ++ assert (lead_zero <= (base == 16 ++ ? ((uintmax_t) exponent ++ - (uintmax_t) INTMAX_MIN) / 4 ++ : ((uintmax_t) exponent - (uintmax_t) INTMAX_MIN))); ++ exponent -= base == 16 ? 4 * (intmax_t) lead_zero : (intmax_t) lead_zero; + dig_no -= lead_zero; + } + +@@ -974,7 +1046,10 @@ ____STRTOF_INTERNAL (nptr, endptr, group + } + + /* Adjust the exponent for the bits we are shifting in. */ +- exponent += bits - 1 + (int_no - 1) * 4; ++ assert (int_no <= (uintmax_t) (exponent < 0 ++ ? (INTMAX_MAX - bits + 1) / 4 ++ : (INTMAX_MAX - exponent - bits + 1) / 4)); ++ exponent += bits - 1 + ((intmax_t) int_no - 1) * 4; + + while (--dig_no > 0 && idx >= 0) + { +@@ -1014,13 +1089,15 @@ ____STRTOF_INTERNAL (nptr, endptr, group + really integer digits or belong to the fractional part; i.e. we normalize + 123e-2 to 1.23. */ + { +- register int incr = (exponent < 0 ? MAX (-int_no, exponent) +- : MIN (dig_no - int_no, exponent)); ++ register intmax_t incr = (exponent < 0 ++ ? MAX (-(intmax_t) int_no, exponent) ++ : MIN ((intmax_t) dig_no - (intmax_t) int_no, ++ exponent)); + int_no += incr; + exponent -= incr; + } + +- if (__builtin_expect (int_no + exponent > MAX_10_EXP + 1, 0)) ++ if (__builtin_expect (exponent > MAX_10_EXP + 1 - (intmax_t) int_no, 0)) + { + __set_errno (ERANGE); + return negative ? -FLOAT_HUGE_VAL : FLOAT_HUGE_VAL; +@@ -1205,7 +1282,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group + digits we should have enough bits for the result. The remaining + decimal digits give us the information that more bits are following. + This can be used while rounding. (Two added as a safety margin.) */ +- if (dig_no - int_no > (MANT_DIG - bits + 2) / 3 + 2) ++ if ((intmax_t) dig_no > (intmax_t) int_no + (MANT_DIG - bits + 2) / 3 + 2) + { + dig_no = int_no + (MANT_DIG - bits + 2) / 3 + 2; + more_bits = 1; +@@ -1213,7 +1290,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group + else + more_bits = 0; + +- neg_exp = dig_no - int_no - exponent; ++ neg_exp = (intmax_t) dig_no - (intmax_t) int_no - exponent; + + /* Construct the denominator. */ + densize = 0; +@@ -1491,7 +1568,9 @@ ____STRTOF_INTERNAL (nptr, endptr, group + register int i; + (void) __mpn_lshift (&retval[used + / BITS_PER_MP_LIMB], +- retval, RETURN_LIMB_SIZE, ++ retval, ++ (RETURN_LIMB_SIZE ++ - used / BITS_PER_MP_LIMB), + used % BITS_PER_MP_LIMB); + for (i = used / BITS_PER_MP_LIMB - 1; i >= 0; --i) + retval[i] = 0; +diff -Nrup a/stdlib/tst-strtod-overflow.c b/stdlib/tst-strtod-overflow.c +--- a/stdlib/tst-strtod-overflow.c 1969-12-31 17:00:00.000000000 -0700 ++++ b/stdlib/tst-strtod-overflow.c 2012-08-15 09:25:01.098592764 -0600 +@@ -0,0 +1,48 @@ ++/* Test for integer/buffer overflow in strtod. ++ Copyright (C) 2012 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ http://www.gnu.org/licenses/. */ ++ ++#include <stdio.h> ++#include <stdlib.h> ++#include <string.h> ++ ++#define EXPONENT "e-2147483649" ++#define SIZE 214748364 ++ ++static int ++do_test (void) ++{ ++ char *p = malloc (1 + SIZE + sizeof (EXPONENT)); ++ if (p == NULL) ++ { ++ puts ("malloc failed, cannot test for overflow"); ++ return 0; ++ } ++ p[0] = '1'; ++ memset (p + 1, '0', SIZE); ++ memcpy (p + 1 + SIZE, EXPONENT, sizeof (EXPONENT)); ++ double d = strtod (p, NULL); ++ if (d != 0) ++ { ++ printf ("strtod returned wrong value: %a\n", d); ++ return 1; ++ } ++ return 0; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" diff --git a/src/patches/glibc/glibc-rh848082.patch b/src/patches/glibc/glibc-rh848082.patch new file mode 100644 index 0000000..dfb96bf --- /dev/null +++ b/src/patches/glibc/glibc-rh848082.patch @@ -0,0 +1,88 @@ +commit 4f031072a5055abd83717820b59efdaa463d5853 +Author: Ulrich Drepper drepper@gmail.com +Date: Sat May 28 16:59:30 2011 -0400 + + Handle failure of _nl_explode_name in all cases + + 2011-05-28 Ulrich Drepper drepper@gmail.com + + * locale/findlocale.c (_nl_find_locale): Return right away if + _nl_explode_name failed. + * locale/programs/locarchive.c (add_locale_to_archive): Likewise. + +diff --git a/locale/findlocale.c b/locale/findlocale.c +index 6b88c96..2fec9a7 100644 +--- a/locale/findlocale.c ++++ b/locale/findlocale.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1996-2001, 2002, 2003, 2006, 2010 Free Software Foundation, Inc. ++/* Copyright (C) 1996-2003, 2006, 2010, 2011 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper drepper@cygnus.com, 1996. + +@@ -140,6 +140,9 @@ _nl_find_locale (const char *locale_path, size_t locale_path_len, + */ + mask = _nl_explode_name (loc_name, &language, &modifier, &territory, + &codeset, &normalized_codeset); ++ if (mask == -1) ++ /* Memory allocate problem. */ ++ return NULL; + + /* If exactly this locale was already asked for we have an entry with + the complete name. */ +diff --git a/locale/programs/locarchive.c b/locale/programs/locarchive.c +index 85ba77d..e95bcf1 100644 +--- a/locale/programs/locarchive.c ++++ b/locale/programs/locarchive.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2002, 2003, 2005, 2007, 2009 Free Software Foundation, Inc. ++/* Copyright (C) 2002,2003,2005,2007,2009,2011 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper drepper@redhat.com, 2002. + +@@ -1079,6 +1079,8 @@ add_locale_to_archive (ah, name, data, replace) + int mask = _nl_explode_name (strdupa (name), + &language, &modifier, &territory, + &codeset, &normalized_codeset); ++ if (mask == -1) ++ return -1; + + if (mask & XPG_NORM_CODESET) + /* This name contains a codeset in unnormalized form. +@@ -1128,6 +1130,7 @@ add_locale_to_archive (ah, name, data, replace) + + /* Now read the locale.alias files looking for lines whose + right hand side matches our name after normalization. */ ++ int result = 0; + if (alias_file != NULL) + { + FILE *fp; +@@ -1207,6 +1210,11 @@ add_locale_to_archive (ah, name, data, replace) + &rhs_territory, + &rhs_codeset, + &rhs_normalized_codeset); ++ if (rhs_mask == 1) ++ { ++ result = -1; ++ goto out; ++ } + if (!strcmp (language, rhs_language) + && ((rhs_mask & XPG_CODESET) + /* He has a codeset, it must match normalized. */ +@@ -1240,6 +1248,7 @@ add_locale_to_archive (ah, name, data, replace) + } + } + ++ out: + fclose (fp); + } + +@@ -1248,7 +1257,7 @@ add_locale_to_archive (ah, name, data, replace) + if (mask & XPG_NORM_CODESET) + free ((char *) normalized_codeset); + +- return 0; ++ return result; + } + + diff --git a/src/patches/glibc/glibc-rh849203.patch b/src/patches/glibc/glibc-rh849203.patch new file mode 100644 index 0000000..ea50593 --- /dev/null +++ b/src/patches/glibc/glibc-rh849203.patch @@ -0,0 +1,195 @@ +diff -Nrup a/intl/Makefile b/intl/Makefile +--- a/intl/Makefile 2010-05-04 05:27:23.000000000 -0600 ++++ b/intl/Makefile 2012-08-17 14:40:00.457226629 -0600 +@@ -74,6 +74,16 @@ ifneq (no,$(PERL)) + tests: $(objpfx)mtrace-tst-gettext + endif + endif ++ ++# Multiple tests use this data. Create it once to avoid racing and ++# spurious test failures. ++codeset_mo = $(objpfx)domaindir/de_DE/LC_MESSAGES/codeset.mo ++ ++$(codeset_mo): ++ $(make-target-directory) ++ msgfmt -o $@T tstcodeset.po ++ mv -f $@T $@ ++ + $(objpfx)mtrace-tst-gettext: $(objpfx)tst-gettext.out + $(common-objpfx)malloc/mtrace $(objpfx)tst-gettext.mtrace > $@ + $(objpfx)tst-gettext.out: tst-gettext.sh $(objpfx)tst-gettext +@@ -83,16 +93,14 @@ $(objpfx)tst-translit.out: tst-translit. + $(SHELL) -e $< $(common-objpfx) $(common-objpfx)intl/ + $(objpfx)tst-gettext2.out: tst-gettext2.sh $(objpfx)tst-gettext2 + $(SHELL) -e $< $(common-objpfx) $(common-objpfx)intl/ +-$(objpfx)tst-codeset.out: tst-codeset.sh $(objpfx)tst-codeset +- $(SHELL) -e $< $(common-objpfx) $(common-objpfx)intl/ +-$(objpfx)tst-gettext3.out: tst-gettext3.sh $(objpfx)tst-gettext3 +- $(SHELL) -e $< $(common-objpfx) $(common-objpfx)intl/ + $(objpfx)tst-gettext4.out: tst-gettext4.sh $(objpfx)tst-gettext4 + $(SHELL) -e $< $(common-objpfx) '$(run-program-prefix)' $(common-objpfx)intl/ +-$(objpfx)tst-gettext5.out: tst-gettext5.sh $(objpfx)tst-gettext5 +- $(SHELL) -e $< $(common-objpfx) '$(run-program-prefix)' $(common-objpfx)intl/ + $(objpfx)tst-gettext6.out: tst-gettext6.sh $(objpfx)tst-gettext6 + $(SHELL) -e $< $(common-objpfx) '$(run-program-prefix)' $(common-objpfx)intl/ ++ ++$(objpfx)tst-codeset.out: $(codeset_mo) ++$(objpfx)tst-gettext3.out: $(codeset_mo) ++$(objpfx)tst-gettext5.out: $(codeset_mo) + endif + endif + +@@ -109,6 +117,11 @@ CFLAGS-tst-gettext4.c = -DOBJPFX="$(obj + CFLAGS-tst-gettext5.c = -DOBJPFX="$(objpfx)" + CFLAGS-tst-gettext6.c = -DOBJPFX="$(objpfx)" + ++LOCPATH-ENV = LOCPATH=$(common-objpfx)localedata ++tst-codeset-ENV = $(LOCPATH-ENV) ++tst-gettext3-ENV = $(LOCPATH-ENV) ++tst-gettext5-ENV = $(LOCPATH-ENV) ++ + ifeq ($(have-thread-library),yes) + ifeq (yes,$(build-shared)) + $(addprefix $(objpfx),$(multithread-test-srcs)): $(shared-thread-library) +diff -Nrup a/intl/tst-codeset.sh b/intl/tst-codeset.sh +--- a/intl/tst-codeset.sh 2010-05-04 05:27:23.000000000 -0600 ++++ b/intl/tst-codeset.sh 1969-12-31 17:00:00.000000000 -0700 +@@ -1,43 +0,0 @@ +-#! /bin/sh +-# Test of bind_textdomain_codeset. +-# Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc. +-# This file is part of the GNU C Library. +-# +- +-# The GNU C Library is free software; you can redistribute it and/or +-# modify it under the terms of the GNU Lesser General Public +-# License as published by the Free Software Foundation; either +-# version 2.1 of the License, or (at your option) any later version. +- +-# The GNU C Library is distributed in the hope that it will be useful, +-# but WITHOUT ANY WARRANTY; without even the implied warranty of +-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-# Lesser General Public License for more details. +- +-# You should have received a copy of the GNU Lesser General Public +-# License along with the GNU C Library; if not, write to the Free +-# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +-# 02111-1307 USA. +- +-common_objpfx=$1 +-objpfx=$2 +- +-LC_ALL=C +-export LC_ALL +- +-# Generate the test data. +-msgfmt -o ${objpfx}codeset.mo.$$ tstcodeset.po || exit +-# Create the domain directories. +-mkdir -p ${objpfx}domaindir/de_DE/LC_MESSAGES +-# Populate them. +-mv -f ${objpfx}codeset.mo.$$ ${objpfx}domaindir/de_DE/LC_MESSAGES/codeset.mo +- +-GCONV_PATH=${common_objpfx}iconvdata +-export GCONV_PATH +-LOCPATH=${common_objpfx}localedata +-export LOCPATH +- +-${common_objpfx}elf/ld.so --library-path $common_objpfx \ +-${objpfx}tst-codeset > ${objpfx}tst-codeset.out +- +-exit $? +diff -Nrup a/intl/tst-gettext3.sh b/intl/tst-gettext3.sh +--- a/intl/tst-gettext3.sh 2010-05-04 05:27:23.000000000 -0600 ++++ b/intl/tst-gettext3.sh 1969-12-31 17:00:00.000000000 -0700 +@@ -1,44 +0,0 @@ +-#! /bin/sh +-# Test that the gettext() results come out in the correct encoding for +-# locales that differ only in their encoding. +-# Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc. +-# This file is part of the GNU C Library. +-# +- +-# The GNU C Library is free software; you can redistribute it and/or +-# modify it under the terms of the GNU Lesser General Public +-# License as published by the Free Software Foundation; either +-# version 2.1 of the License, or (at your option) any later version. +- +-# The GNU C Library is distributed in the hope that it will be useful, +-# but WITHOUT ANY WARRANTY; without even the implied warranty of +-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-# Lesser General Public License for more details. +- +-# You should have received a copy of the GNU Lesser General Public +-# License along with the GNU C Library; if not, write to the Free +-# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +-# 02111-1307 USA. +- +-common_objpfx=$1 +-objpfx=$2 +- +-LC_ALL=C +-export LC_ALL +- +-# Generate the test data. +-msgfmt -o ${objpfx}codeset.mo.$$ tstcodeset.po || exit +-# Create the domain directories. +-mkdir -p ${objpfx}domaindir/de_DE/LC_MESSAGES +-# Populate them. +-mv -f ${objpfx}codeset.mo.$$ ${objpfx}domaindir/de_DE/LC_MESSAGES/codeset.mo +- +-GCONV_PATH=${common_objpfx}iconvdata +-export GCONV_PATH +-LOCPATH=${common_objpfx}localedata +-export LOCPATH +- +-${common_objpfx}elf/ld.so --library-path $common_objpfx \ +-${objpfx}tst-gettext3 > ${objpfx}tst-gettext3.out +- +-exit $? +diff -Nrup a/intl/tst-gettext5.sh b/intl/tst-gettext5.sh +--- a/intl/tst-gettext5.sh 2010-05-04 05:27:23.000000000 -0600 ++++ b/intl/tst-gettext5.sh 1969-12-31 17:00:00.000000000 -0700 +@@ -1,43 +0,0 @@ +-#! /bin/sh +-# Test that gettext() in multithreaded applications works correctly if +-# different threads operate in different locales referring to the same +-# catalog file but with different encodings. +-# Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc. +-# This file is part of the GNU C Library. +-# +- +-# The GNU C Library is free software; you can redistribute it and/or +-# modify it under the terms of the GNU Lesser General Public +-# License as published by the Free Software Foundation; either +-# version 2.1 of the License, or (at your option) any later version. +- +-# The GNU C Library is distributed in the hope that it will be useful, +-# but WITHOUT ANY WARRANTY; without even the implied warranty of +-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-# Lesser General Public License for more details. +- +-# You should have received a copy of the GNU Lesser General Public +-# License along with the GNU C Library; if not, write to the Free +-# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +-# 02111-1307 USA. +- +-common_objpfx=$1 +-run_program_prefix=$2 +-objpfx=$3 +- +-LC_ALL=C +-export LC_ALL +- +-# Create the domain directories. +-mkdir -p ${objpfx}domaindir/de_DE/LC_MESSAGES +-# Populate them. +-msgfmt -o ${objpfx}domaindir/de_DE/LC_MESSAGES/codeset.mo tstcodeset.po +- +-GCONV_PATH=${common_objpfx}iconvdata +-export GCONV_PATH +-LOCPATH=${common_objpfx}localedata +-export LOCPATH +- +-${run_program_prefix} ${objpfx}tst-gettext5 > ${objpfx}tst-gettext5.out +- +-exit $? diff --git a/src/patches/glibc/glibc-rh849651.patch b/src/patches/glibc/glibc-rh849651.patch new file mode 100644 index 0000000..97a5144 --- /dev/null +++ b/src/patches/glibc/glibc-rh849651.patch @@ -0,0 +1,343 @@ +diff -Nrup a/sysdeps/x86_64/fpu/e_expf.S b/sysdeps/x86_64/fpu/e_expf.S +--- a/sysdeps/x86_64/fpu/e_expf.S 1969-12-31 17:00:00.000000000 -0700 ++++ b/sysdeps/x86_64/fpu/e_expf.S 2012-08-20 09:47:15.551971545 -0600 +@@ -0,0 +1,339 @@ ++/* Optimized __ieee754_expf function. ++ Copyright (C) 2012 Free Software Foundation, Inc. ++ Contributed by Intel Corporation. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ http://www.gnu.org/licenses/. */ ++ ++#include <sysdep.h> ++ ++/* Short algorithm description: ++ * ++ * Let K = 64 (table size). ++ * e^x = 2^(x/log(2)) = 2^n * T[j] * (1 + P(y)) ++ * where ++ * x = m*log(2)/K + y, y in [0.0..log(2)/K] ++ * m = n*K + j, m,n,j - signed integer, j in [0..K-1] ++ * values of 2^(j/K) are tabulated as T[j]. ++ * ++ * P(y) is a minimax polynomial approximation of expf(x)-1 ++ * on small interval [0.0..log(2)/K]. ++ * ++ * P(y) = P3*y*y*y*y + P2*y*y*y + P1*y*y + P0*y, calculated as ++ * z = y*y; P(y) = (P3*z + P1)*z + (P2*z + P0)*y ++ * ++ * Special cases: ++ * expf(NaN) = NaN ++ * expf(+INF) = +INF ++ * expf(-INF) = 0 ++ * expf(x) = 1 for subnormals ++ * for finite argument, only expf(0)=1 is exact ++ * expf(x) overflows if x>88.7228317260742190 ++ * expf(x) underflows if x<-103.972076416015620 ++ */ ++ ++ .text ++ENTRY(__ieee754_expf) ++ /* Input: single precision x in %xmm0 */ ++ cvtss2sd %xmm0, %xmm1 /* Convert x to double precision */ ++ movd %xmm0, %ecx /* Copy x */ ++ movsd L(DP_KLN2)(%rip), %xmm2 /* DP K/log(2) */ ++ movsd L(DP_P2)(%rip), %xmm3 /* DP P2 */ ++ movl %ecx, %eax /* x */ ++ mulsd %xmm1, %xmm2 /* DP x*K/log(2) */ ++ andl $0x7fffffff, %ecx /* |x| */ ++ lea L(DP_T)(%rip), %rsi /* address of table T[j] */ ++ cmpl $0x42ad496b, %ecx /* |x|<125*log(2) ? */ ++ movsd L(DP_P3)(%rip), %xmm4 /* DP P3 */ ++ addsd L(DP_RS)(%rip), %xmm2 /* DP x*K/log(2)+RS */ ++ jae L(special_paths) ++ ++ /* Here if |x|<125*log(2) */ ++ cmpl $0x31800000, %ecx /* |x|<2^(-28) ? */ ++ jb L(small_arg) ++ ++ /* Main path: here if 2^(-28)<=|x|<125*log(2) */ ++ cvtsd2ss %xmm2, %xmm2 /* SP x*K/log(2)+RS */ ++ movd %xmm2, %eax /* bits of n*K+j with trash */ ++ subss L(SP_RS)(%rip), %xmm2 /* SP t=round(x*K/log(2)) */ ++ movl %eax, %edx /* n*K+j with trash */ ++ cvtss2sd %xmm2, %xmm2 /* DP t */ ++ andl $0x3f, %eax /* bits of j */ ++ mulsd L(DP_NLN2K)(%rip), %xmm2/* DP -t*log(2)/K */ ++ andl $0xffffffc0, %edx /* bits of n */ ++#ifdef __AVX__ ++ vaddsd %xmm1, %xmm2, %xmm0 /* DP y=x-t*log(2)/K */ ++ vmulsd %xmm0, %xmm0, %xmm2 /* DP z=y*y */ ++#else ++ addsd %xmm1, %xmm2 /* DP y=x-t*log(2)/K */ ++ movaps %xmm2, %xmm0 /* DP y */ ++ mulsd %xmm2, %xmm2 /* DP z=y*y */ ++#endif ++ mulsd %xmm2, %xmm4 /* DP P3*z */ ++ addl $0x1fc0, %edx /* bits of n + SP exponent bias */ ++ mulsd %xmm2, %xmm3 /* DP P2*z */ ++ shll $17, %edx /* SP 2^n */ ++ addsd L(DP_P1)(%rip), %xmm4 /* DP P3*z+P1 */ ++ addsd L(DP_P0)(%rip), %xmm3 /* DP P2*z+P0 */ ++ movd %edx, %xmm1 /* SP 2^n */ ++ mulsd %xmm2, %xmm4 /* DP (P3*z+P1)*z */ ++ mulsd %xmm3, %xmm0 /* DP (P2*z+P0)*y */ ++ addsd %xmm4, %xmm0 /* DP P(y) */ ++ mulsd (%rsi,%rax,8), %xmm0 /* DP P(y)*T[j] */ ++ addsd (%rsi,%rax,8), %xmm0 /* DP T[j]*(P(y)+1) */ ++ cvtsd2ss %xmm0, %xmm0 /* SP T[j]*(P(y)+1) */ ++ mulss %xmm1, %xmm0 /* SP result=2^n*(T[j]*(P(y)+1)) */ ++ ret ++ ++ .p2align 4 ++L(small_arg): ++ /* Here if 0<=|x|<2^(-28) */ ++ addss L(SP_ONE)(%rip), %xmm0 /* 1.0 + x */ ++ /* Return 1.0 with inexact raised, except for x==0 */ ++ ret ++ ++ .p2align 4 ++L(special_paths): ++ /* Here if 125*log(2)<=|x| */ ++ shrl $31, %eax /* Get sign bit of x, and depending on it: */ ++ lea L(SP_RANGE)(%rip), %rdx /* load over/underflow bound */ ++ cmpl (%rdx,%rax,4), %ecx /* |x|<under/overflow bound ? */ ++ jbe L(near_under_or_overflow) ++ ++ /* Here if |x|>under/overflow bound */ ++ cmpl $0x7f800000, %ecx /* |x| is finite ? */ ++ jae L(arg_inf_or_nan) ++ ++ /* Here if |x|>under/overflow bound, and x is finite */ ++ testq %rax, %rax /* sign of x nonzero ? */ ++ je L(res_overflow) ++ ++ /* Here if -inf<x<underflow bound (x<0) */ ++ movss L(SP_SMALL)(%rip), %xmm0/* load small value 2^(-100) */ ++ mulss %xmm0, %xmm0 /* Return underflowed result (zero or subnormal) */ ++ ret ++ ++ .p2align 4 ++L(res_overflow): ++ /* Here if overflow bound<x<inf (x>0) */ ++ movss L(SP_LARGE)(%rip), %xmm0/* load large value 2^100 */ ++ mulss %xmm0, %xmm0 /* Return overflowed result (Inf or max normal) */ ++ ret ++ ++ .p2align 4 ++L(arg_inf_or_nan): ++ /* Here if |x| is Inf or NAN */ ++ jne L(arg_nan) /* |x| is Inf ? */ ++ ++ /* Here if |x| is Inf */ ++ lea L(SP_INF_0)(%rip), %rdx /* depending on sign of x: */ ++ movss (%rdx,%rax,4), %xmm0 /* return zero or Inf */ ++ ret ++ ++ .p2align 4 ++L(arg_nan): ++ /* Here if |x| is NaN */ ++ addss %xmm0, %xmm0 /* Return x+x (raise invalid) */ ++ ret ++ ++ .p2align 4 ++L(near_under_or_overflow): ++ /* Here if 125*log(2)<=|x|<under/overflow bound */ ++ cvtsd2ss %xmm2, %xmm2 /* SP x*K/log(2)+RS */ ++ movd %xmm2, %eax /* bits of n*K+j with trash */ ++ subss L(SP_RS)(%rip), %xmm2 /* SP t=round(x*K/log(2)) */ ++ movl %eax, %edx /* n*K+j with trash */ ++ cvtss2sd %xmm2, %xmm2 /* DP t */ ++ andl $0x3f, %eax /* bits of j */ ++ mulsd L(DP_NLN2K)(%rip), %xmm2/* DP -t*log(2)/K */ ++ andl $0xffffffc0, %edx /* bits of n */ ++#ifdef __AVX__ ++ vaddsd %xmm1, %xmm2, %xmm0 /* DP y=x-t*log(2)/K */ ++ vmulsd %xmm0, %xmm0, %xmm2 /* DP z=y*y */ ++#else ++ addsd %xmm1, %xmm2 /* DP y=x-t*log(2)/K */ ++ movaps %xmm2, %xmm0 /* DP y */ ++ mulsd %xmm2, %xmm2 /* DP z=y*y */ ++#endif ++ mulsd %xmm2, %xmm4 /* DP P3*z */ ++ addl $0xffc0, %edx /* bits of n + DP exponent bias */ ++ mulsd %xmm2, %xmm3 /* DP P2*z */ ++ shlq $46, %rdx /* DP 2^n */ ++ addsd L(DP_P1)(%rip), %xmm4 /* DP P3*z+P1 */ ++ addsd L(DP_P0)(%rip), %xmm3 /* DP P2*z+P0 */ ++ movd %rdx, %xmm1 /* DP 2^n */ ++ mulsd %xmm2, %xmm4 /* DP (P3*z+P1)*z */ ++ mulsd %xmm3, %xmm0 /* DP (P2*z+P0)*y */ ++ addsd %xmm4, %xmm0 /* DP P(y) */ ++ mulsd (%rsi,%rax,8), %xmm0 /* DP P(y)*T[j] */ ++ addsd (%rsi,%rax,8), %xmm0 /* DP T[j]*(P(y)+1) */ ++ mulsd %xmm1, %xmm0 /* DP result=2^n*(T[j]*(P(y)+1)) */ ++ cvtsd2ss %xmm0, %xmm0 /* convert result to single precision */ ++ ret ++END(__ieee754_expf) ++ ++ .section .rodata, "a" ++ .p2align 3 ++L(DP_T): /* table of double precision values 2^(j/K) for j=[0..K-1] */ ++ .long 0x00000000, 0x3ff00000 ++ .long 0x3e778061, 0x3ff02c9a ++ .long 0xd3158574, 0x3ff059b0 ++ .long 0x18759bc8, 0x3ff08745 ++ .long 0x6cf9890f, 0x3ff0b558 ++ .long 0x32d3d1a2, 0x3ff0e3ec ++ .long 0xd0125b51, 0x3ff11301 ++ .long 0xaea92de0, 0x3ff1429a ++ .long 0x3c7d517b, 0x3ff172b8 ++ .long 0xeb6fcb75, 0x3ff1a35b ++ .long 0x3168b9aa, 0x3ff1d487 ++ .long 0x88628cd6, 0x3ff2063b ++ .long 0x6e756238, 0x3ff2387a ++ .long 0x65e27cdd, 0x3ff26b45 ++ .long 0xf51fdee1, 0x3ff29e9d ++ .long 0xa6e4030b, 0x3ff2d285 ++ .long 0x0a31b715, 0x3ff306fe ++ .long 0xb26416ff, 0x3ff33c08 ++ .long 0x373aa9cb, 0x3ff371a7 ++ .long 0x34e59ff7, 0x3ff3a7db ++ .long 0x4c123422, 0x3ff3dea6 ++ .long 0x21f72e2a, 0x3ff4160a ++ .long 0x6061892d, 0x3ff44e08 ++ .long 0xb5c13cd0, 0x3ff486a2 ++ .long 0xd5362a27, 0x3ff4bfda ++ .long 0x769d2ca7, 0x3ff4f9b2 ++ .long 0x569d4f82, 0x3ff5342b ++ .long 0x36b527da, 0x3ff56f47 ++ .long 0xdd485429, 0x3ff5ab07 ++ .long 0x15ad2148, 0x3ff5e76f ++ .long 0xb03a5585, 0x3ff6247e ++ .long 0x82552225, 0x3ff66238 ++ .long 0x667f3bcd, 0x3ff6a09e ++ .long 0x3c651a2f, 0x3ff6dfb2 ++ .long 0xe8ec5f74, 0x3ff71f75 ++ .long 0x564267c9, 0x3ff75feb ++ .long 0x73eb0187, 0x3ff7a114 ++ .long 0x36cf4e62, 0x3ff7e2f3 ++ .long 0x994cce13, 0x3ff82589 ++ .long 0x9b4492ed, 0x3ff868d9 ++ .long 0x422aa0db, 0x3ff8ace5 ++ .long 0x99157736, 0x3ff8f1ae ++ .long 0xb0cdc5e5, 0x3ff93737 ++ .long 0x9fde4e50, 0x3ff97d82 ++ .long 0x82a3f090, 0x3ff9c491 ++ .long 0x7b5de565, 0x3ffa0c66 ++ .long 0xb23e255d, 0x3ffa5503 ++ .long 0x5579fdbf, 0x3ffa9e6b ++ .long 0x995ad3ad, 0x3ffae89f ++ .long 0xb84f15fb, 0x3ffb33a2 ++ .long 0xf2fb5e47, 0x3ffb7f76 ++ .long 0x904bc1d2, 0x3ffbcc1e ++ .long 0xdd85529c, 0x3ffc199b ++ .long 0x2e57d14b, 0x3ffc67f1 ++ .long 0xdcef9069, 0x3ffcb720 ++ .long 0x4a07897c, 0x3ffd072d ++ .long 0xdcfba487, 0x3ffd5818 ++ .long 0x03db3285, 0x3ffda9e6 ++ .long 0x337b9b5f, 0x3ffdfc97 ++ .long 0xe78b3ff6, 0x3ffe502e ++ .long 0xa2a490da, 0x3ffea4af ++ .long 0xee615a27, 0x3ffefa1b ++ .long 0x5b6e4540, 0x3fff5076 ++ .long 0x819e90d8, 0x3fffa7c1 ++ .type L(DP_T), @object ++ ASM_SIZE_DIRECTIVE(L(DP_T)) ++ ++ .section .rodata.cst8,"aM",@progbits,8 ++ .p2align 3 ++L(DP_KLN2): /* double precision K/log(2) */ ++ .long 0x652b82fe, 0x40571547 ++ .type L(DP_KLN2), @object ++ ASM_SIZE_DIRECTIVE(L(DP_KLN2)) ++ ++ .p2align 3 ++L(DP_NLN2K): /* double precision -log(2)/K */ ++ .long 0xfefa39ef, 0xbf862e42 ++ .type L(DP_NLN2K), @object ++ ASM_SIZE_DIRECTIVE(L(DP_NLN2K)) ++ ++ .p2align 3 ++L(DP_RS): /* double precision 2^23+2^22 */ ++ .long 0x00000000, 0x41680000 ++ .type L(DP_RS), @object ++ ASM_SIZE_DIRECTIVE(L(DP_RS)) ++ ++ .p2align 3 ++L(DP_P3): /* double precision polynomial coefficient P3 */ ++ .long 0xeb78fa85, 0x3fa56420 ++ .type L(DP_P3), @object ++ ASM_SIZE_DIRECTIVE(L(DP_P3)) ++ ++ .p2align 3 ++L(DP_P1): /* double precision polynomial coefficient P1 */ ++ .long 0x008d6118, 0x3fe00000 ++ .type L(DP_P1), @object ++ ASM_SIZE_DIRECTIVE(L(DP_P1)) ++ ++ .p2align 3 ++L(DP_P2): /* double precision polynomial coefficient P2 */ ++ .long 0xda752d4f, 0x3fc55550 ++ .type L(DP_P2), @object ++ ASM_SIZE_DIRECTIVE(L(DP_P2)) ++ ++ .p2align 3 ++L(DP_P0): /* double precision polynomial coefficient P0 */ ++ .long 0xffffe7c6, 0x3fefffff ++ .type L(DP_P0), @object ++ ASM_SIZE_DIRECTIVE(L(DP_P0)) ++ ++ .p2align 2 ++L(SP_RANGE): /* single precision overflow/underflow bounds */ ++ .long 0x42b17217 /* if x>this bound, then result overflows */ ++ .long 0x42cff1b4 /* if x<this bound, then result underflows */ ++ .type L(SP_RANGE), @object ++ ASM_SIZE_DIRECTIVE(L(SP_RANGE)) ++ ++ .p2align 2 ++L(SP_INF_0): ++ .long 0x7f800000 /* single precision Inf */ ++ .long 0 /* single precision zero */ ++ .type L(SP_INF_0), @object ++ ASM_SIZE_DIRECTIVE(L(SP_INF_0)) ++ ++ .section .rodata.cst4,"aM",@progbits,4 ++ .p2align 2 ++L(SP_RS): /* single precision 2^23+2^22 */ ++ .long 0x4b400000 ++ .type L(SP_RS), @object ++ ASM_SIZE_DIRECTIVE(L(SP_RS)) ++ ++ .p2align 2 ++L(SP_SMALL): /* single precision small value 2^(-100) */ ++ .long 0x0d800000 ++ .type L(SP_SMALL), @object ++ ASM_SIZE_DIRECTIVE(L(SP_SMALL)) ++ ++ .p2align 2 ++L(SP_LARGE): /* single precision large value 2^100 */ ++ .long 0x71800000 ++ .type L(SP_LARGE), @object ++ ASM_SIZE_DIRECTIVE(L(SP_LARGE)) ++ ++ .p2align 2 ++L(SP_ONE): /* single precision 1.0 */ ++ .long 0x3f800000 ++ .type L(SP_ONE), @object ++ ASM_SIZE_DIRECTIVE(L(SP_ONE)) ++ ++strong_alias (__ieee754_expf, __expf_finite) diff --git a/src/patches/glibc/glibc-rh852445.patch b/src/patches/glibc/glibc-rh852445.patch new file mode 100644 index 0000000..3c4e13f --- /dev/null +++ b/src/patches/glibc/glibc-rh852445.patch @@ -0,0 +1,105 @@ +From libc-alpha-return-31329-listarch-libc-alpha=sources dot redhat dot com at sourceware dot org Wed Jul 11 11:36:39 2012 +Return-Path: <libc-alpha-return-31329-listarch-libc-alpha=sources dot redhat dot com at sourceware dot org> +Delivered-To: listarch-libc-alpha at sources dot redhat dot com +Received: (qmail 15677 invoked by alias); 11 Jul 2012 11:36:39 -0000 +Received: (qmail 15654 invoked by uid 22791); 11 Jul 2012 11:36:37 -0000 +X-SWARE-Spam-Status: No, hits=-4.3 required=5.0 + tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,KHOP_RCVD_TRUST,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE +X-Spam-Check-By: sourceware.org +Date: Wed, 11 Jul 2012 21:06:06 +0930 +From: Alan Modra <amodra at gmail dot com> +To: libc-alpha at sourceware dot org +Cc: rsa at linux dot vnet dot ibm dot com +Subject: powerpc pthread_once bug fix +Message-ID: 20120711113606.GM3117@bubble.grove.modra.org +MIME-Version: 1.0 +Content-Type: text/plain; charset=us-ascii +Content-Disposition: inline +User-Agent: Mutt/1.5.21 (2010-09-15) +Mailing-List: contact libc-alpha-help at sourceware dot org; run by ezmlm +Precedence: bulk +List-Id: <libc-alpha.sourceware.org> +List-Subscribe: <mailto:libc-alpha-subscribe at sourceware dot org> +List-Archive: http://sourceware.org/ml/libc-alpha/ +List-Post: <mailto:libc-alpha at sourceware dot org> +List-Help: <mailto:libc-alpha-help at sourceware dot org>, <http://sourceware dot org/ml/#faqs> +Sender: libc-alpha-owner at sourceware dot org +Delivered-To: mailing list libc-alpha at sourceware dot org + +This fixes some bugs in the powerpc pthread_once code. Ref +gcc.gnu.org/bugzilla/show_bug.cgi?id=52839#c10 + +Release barriers are needed to ensure any memory written by +init_routine is seen by other threads before *once_control changes. +In the case of clear_once_control we need to flush any partially +written state. + +2012-06-28 Alan Modra amodra@gmail.com + + * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once): + Add release barrier before setting once_control to say + initialisation is done. Add hints on lwarx. Use macro in + place of isync. + (clear_once_control): Add release barrier. + +[ This was slightly edited -- the constraint for operand 0 in the last asm was changed + from "=&r" to "=&b" as using r0 in that context results in a load immediate 1 into + the target rather than incrementing the target. ] + +diff --git a/nptl/sysdeps/unix/sysv/linux/powerpc/pthread_once.c b/nptl/sysdeps/unix/sysv/linux/powerpc/pthread_once.c +index 4e3d7bd..bb1ebf2 100644 +--- a/nptl/sysdeps/unix/sysv/linux/powerpc/pthread_once.c ++++ b/nptl/sysdeps/unix/sysv/linux/powerpc/pthread_once.c +@@ -28,6 +28,7 @@ clear_once_control (void *arg) + { + pthread_once_t *once_control = (pthread_once_t *) arg; + ++ __asm __volatile (__lll_rel_instr); + *once_control = 0; + lll_futex_wake (once_control, INT_MAX, LLL_PRIVATE); + } +@@ -47,15 +48,15 @@ __pthread_once (pthread_once_t *once_control, void (*init_routine) (void)) + oldval = *once_control; + if ((oldval & 2) == 0) + *once_control = newval; +- Do this atomically. ++ Do this atomically with an acquire barrier. + */ + newval = __fork_generation | 1; +- __asm __volatile ("1: lwarx %0,0,%3\n" ++ __asm __volatile ("1: lwarx %0,0,%3" MUTEX_HINT_ACQ "\n" + " andi. %1,%0,2\n" + " bne 2f\n" + " stwcx. %4,0,%3\n" + " bne 1b\n" +- "2: isync" ++ "2: " __lll_acq_instr + : "=&r" (oldval), "=&r" (tmp), "=m" (*once_control) + : "r" (once_control), "r" (newval), "m" (*once_control) + : "cr0"); +@@ -87,8 +88,18 @@ __pthread_once (pthread_once_t *once_control, void (*init_routine) (void)) + pthread_cleanup_pop (0); + + +- /* Add one to *once_control to take the bottom 2 bits from 01 to 10. */ +- atomic_increment (once_control); ++ /* Add one to *once_control to take the bottom 2 bits from 01 to 10. ++ A release barrier is needed to ensure memory written by init_routine ++ is seen in other threads before *once_control changes. */ ++ int tmp; ++ __asm __volatile (__lll_rel_instr "\n" ++ "1: lwarx %0,0,%2" MUTEX_HINT_REL "\n" ++ " addi %0,%0,1\n" ++ " stwcx. %0,0,%2\n" ++ " bne- 1b" ++ : "=&b" (tmp), "=m" (*once_control) ++ : "r" (once_control), "m" (*once_control) ++ : "cr0"); + + /* Wake up all other threads. */ + lll_futex_wake (once_control, INT_MAX, LLL_PRIVATE); + +-- +Alan Modra +Australia Development Lab, IBM + diff --git a/src/patches/glibc/glibc-rh861167.patch b/src/patches/glibc/glibc-rh861167.patch new file mode 100644 index 0000000..d7e982f --- /dev/null +++ b/src/patches/glibc/glibc-rh861167.patch @@ -0,0 +1,86 @@ +commit be08eda54c7cf833ccfa4b8d1f1b1d668c26af66 +Author: Andreas Jaeger aj@suse.de +Date: Wed May 23 09:27:39 2012 +0200 + + Update from Linux 3.4 + +[ Partial, unrelated bits not included. ] + +2012-05-23 Andreas Jaeger aj@suse.de + + * sysdeps/unix/sysv/linux/powerpc/bits/mman.h + (MADV_DONTDUMP,MADV_DODUMP): New macros from Linux 3.4. + macro. + * sysdeps/unix/sysv/linux/s390/bits/mman.h + (MADV_DONTDUMP,MADV_DODUMP): Likewise. + * sysdeps/unix/sysv/linux/i386/bits/mman.h + (MADV_DONTDUMP,MADV_DODUMP): Likewise. + * sysdeps/unix/sysv/linux/x86_64/bits/mman.h + (MADV_DONTDUMP,MADV_DODUMP): Likewise. + +diff -Nrup a/sysdeps/unix/sysv/linux/i386/bits/mman.h b/sysdeps/unix/sysv/linux/i386/bits/mman.h +--- a/sysdeps/unix/sysv/linux/i386/bits/mman.h 2010-05-04 05:27:23.000000000 -0600 ++++ b/sysdeps/unix/sysv/linux/i386/bits/mman.h 2012-09-27 11:44:26.985150148 -0600 +@@ -1,5 +1,5 @@ + /* Definitions for POSIX memory map interface. Linux/i386 version. +- Copyright (C) 1997,2000,2003,2005,2006,2009 Free Software Foundation, Inc. ++ Copyright (C) 1997-2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -94,6 +94,9 @@ + # define MADV_DOFORK 11 /* Do inherit across fork. */ + # define MADV_MERGEABLE 12 /* KSM may merge identical pages. */ + # define MADV_UNMERGEABLE 13 /* KSM may not merge identical pages. */ ++# define MADV_DONTDUMP 16 /* Explicity exclude from the core dump, ++ overrides the coredump filter bits. */ ++# define MADV_DODUMP 17 /* Clear the MADV_DONTDUMP flag. */ + # define MADV_HWPOISON 100 /* Poison a page for testing. */ + #endif + +diff -Nrup a/sysdeps/unix/sysv/linux/powerpc/bits/mman.h b/sysdeps/unix/sysv/linux/powerpc/bits/mman.h +--- a/sysdeps/unix/sysv/linux/powerpc/bits/mman.h 2010-05-04 05:27:23.000000000 -0600 ++++ b/sysdeps/unix/sysv/linux/powerpc/bits/mman.h 2012-09-27 11:43:37.161351259 -0600 +@@ -96,6 +96,9 @@ + # define MADV_DOFORK 11 /* Do inherit across fork. */ + # define MADV_MERGEABLE 12 /* KSM may merge identical pages. */ + # define MADV_UNMERGEABLE 13 /* KSM may not merge identical pages. */ ++# define MADV_DONTDUMP 16 /* Explicity exclude from the core dump, ++ overrides the coredump filter bits. */ ++# define MADV_DODUMP 17 /* Clear the MADV_DONTDUMP flag. */ + # define MADV_HWPOISON 100 /* Poison a page for testing. */ + #endif + +diff -Nrup a/sysdeps/unix/sysv/linux/s390/bits/mman.h b/sysdeps/unix/sysv/linux/s390/bits/mman.h +--- a/sysdeps/unix/sysv/linux/s390/bits/mman.h 2010-05-04 05:27:23.000000000 -0600 ++++ b/sysdeps/unix/sysv/linux/s390/bits/mman.h 2012-09-27 11:44:49.745059646 -0600 +@@ -94,6 +94,9 @@ + # define MADV_DOFORK 11 /* Do inherit across fork. */ + # define MADV_MERGEABLE 12 /* KSM may merge identical pages. */ + # define MADV_UNMERGEABLE 13 /* KSM may not merge identical pages. */ ++# define MADV_DONTDUMP 16 /* Explicity exclude from the core dump, ++ overrides the coredump filter bits. */ ++# define MADV_DODUMP 17 /* Clear the MADV_DONTDUMP flag. */ + # define MADV_HWPOISON 100 /* Poison a page for testing. */ + #endif + +diff -Nrup a/sysdeps/unix/sysv/linux/x86_64/bits/mman.h b/sysdeps/unix/sysv/linux/x86_64/bits/mman.h +--- a/sysdeps/unix/sysv/linux/x86_64/bits/mman.h 2010-05-04 05:27:23.000000000 -0600 ++++ b/sysdeps/unix/sysv/linux/x86_64/bits/mman.h 2012-09-27 11:42:08.314725733 -0600 +@@ -1,5 +1,5 @@ + /* Definitions for POSIX memory map interface. Linux/x86_64 version. +- Copyright (C) 2001, 2003, 2005, 2006, 2009 Free Software Foundation, Inc. ++ Copyright (C) 2001-2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -95,6 +95,9 @@ + # define MADV_DOFORK 11 /* Do inherit across fork. */ + # define MADV_MERGEABLE 12 /* KSM may merge identical pages. */ + # define MADV_UNMERGEABLE 13 /* KSM may not merge identical pages. */ ++# define MADV_DONTDUMP 16 /* Explicity exclude from the core dump, ++ overrides the coredump filter bits. */ ++# define MADV_DODUMP 17 /* Clear the MADV_DONTDUMP flag. */ + # define MADV_HWPOISON 100 /* Poison a page for testing. */ + #endif + diff --git a/src/patches/glibc/glibc-rh863453.patch b/src/patches/glibc/glibc-rh863453.patch new file mode 100644 index 0000000..96fb769 --- /dev/null +++ b/src/patches/glibc/glibc-rh863453.patch @@ -0,0 +1,81 @@ +--- glibc-2.12-2-gc4ccff1/nscd/grpcache.c.lrgrpissue 2002-03-19 01:06:04.905969517 +0530 ++++ glibc-2.12-2-gc4ccff1/nscd/grpcache.c 2002-03-19 01:09:46.495970850 +0530 +@@ -207,10 +207,11 @@ cache_addgr (struct database_dyn *db, in + change. Allocate memory on the cache since it is likely + discarded anyway. If it turns out to be necessary to have a + new record we can still allocate real memory. */ +- bool dataset_in_stack_or_freed = false; ++ bool dataset_temporary = false; ++ bool dataset_malloced = false; + dataset = NULL; + +- if (he == NULL || ! __libc_use_alloca (alloca_used + total + n)) ++ if (he == NULL) + dataset = (struct dataset *) mempool_alloc (db, total + n, 1); + + if (dataset == NULL) +@@ -218,10 +219,16 @@ cache_addgr (struct database_dyn *db, in + /* We cannot permanently add the result in the moment. But + we can provide the result as is. Store the data in some + temporary memory. */ +- dataset = (struct dataset *) alloca_account (total + n, alloca_used); +- ++ if (! __libc_use_alloca (alloca_used + total + n)) ++ { ++ /* XXX What to do if malloc fails? */ ++ dataset = (struct dataset *) malloc (total + n); ++ dataset_malloced = true; ++ } ++ else ++ dataset = (struct dataset *) alloca_account (total + n, alloca_used); + /* We cannot add this record to the permanent database. */ +- dataset_in_stack_or_freed = true; ++ dataset_temporary = true; + } + + dataset->head.allocsize = total + n; +@@ -276,13 +283,10 @@ cache_addgr (struct database_dyn *db, in + dh->timeout = dataset->head.timeout; + ++dh->nreloads; + +- /* If the new record was not allocated on the stack, then it must +- be freed. Note that it can no longer be used. */ +- if (! dataset_in_stack_or_freed) +- { +- free (dataset); +- dataset_in_stack_or_freed = true; +- } ++ /* If the new record was allocated via malloc, then we ++ must free it here. */ ++ if (dataset_malloced) ++ free (dataset); + } + else + { +@@ -298,7 +302,7 @@ cache_addgr (struct database_dyn *db, in + key_copy = (char *) newp + (key_copy - (char *) dataset); + + dataset = memcpy (newp, dataset, total + n); +- dataset_in_stack_or_freed = false; ++ dataset_temporary = false; + } + + /* Mark the old record as obsolete. */ +@@ -313,7 +317,7 @@ cache_addgr (struct database_dyn *db, in + assert (fd != -1); + + #ifdef HAVE_SENDFILE +- if (__builtin_expect (db->mmap_used, 1) && !dataset_in_stack_or_freed) ++ if (__builtin_expect (db->mmap_used, 1) && ! dataset_temporary) + { + assert (db->wr_fd != -1); + assert ((char *) &dataset->resp > (char *) db->data); +@@ -340,7 +344,7 @@ cache_addgr (struct database_dyn *db, in + + /* Add the record to the database. But only if it has not been + stored on the stack. */ +- if (! dataset_in_stack_or_freed) ++ if (! dataset_temporary) + { + /* If necessary, we also propagate the data to disk. */ + if (db->persistent) diff --git a/src/patches/glibc/glibc-rh864322.patch b/src/patches/glibc/glibc-rh864322.patch new file mode 100644 index 0000000..565a146 --- /dev/null +++ b/src/patches/glibc/glibc-rh864322.patch @@ -0,0 +1,12 @@ +diff -rup a/sysdeps/generic/netinet/ip.h b/sysdeps/generic/netinet/ip.h +--- a/sysdeps/generic/netinet/ip.h 2010-05-04 05:27:23.000000000 -0600 ++++ b/sysdeps/generic/netinet/ip.h 2012-10-11 09:22:12.620160387 -0600 +@@ -194,7 +194,7 @@ struct ip_timestamp + */ + + #define IPTOS_CLASS_MASK 0xe0 +-#define IPTOS_CLASS(class) ((tos) & IPTOS_CLASS_MASK) ++#define IPTOS_CLASS(class) ((class) & IPTOS_CLASS_MASK) + #define IPTOS_CLASS_CS0 0x00 + #define IPTOS_CLASS_CS1 0x20 + #define IPTOS_CLASS_CS2 0x40 diff --git a/src/patches/glibc/glibc-rh886968.patch b/src/patches/glibc/glibc-rh886968.patch new file mode 100644 index 0000000..4872a91 --- /dev/null +++ b/src/patches/glibc/glibc-rh886968.patch @@ -0,0 +1,33 @@ +diff -Nrup a/elf/dl-load.c b/elf/dl-load.c +--- a/elf/dl-load.c 2013-01-10 08:57:20.098898830 -0500 ++++ b/elf/dl-load.c 2013-01-10 12:04:48.155962895 -0500 +@@ -819,7 +819,7 @@ lose (int code, int fd, const char *name + { + r->r_state = RT_CONSISTENT; + _dl_debug_state (); +- LIBC_PROBE (rtld_map_complete, 2, nsid, r); ++ LIBC_PROBE (rtld_map_complete, 3, nsid, r, NULL); + } + + _dl_signal_error (code, name, NULL, msg); +diff -Nrup a/elf/dl-open.c b/elf/dl-open.c +--- a/elf/dl-open.c 2013-01-10 08:57:19.917897417 -0500 ++++ b/elf/dl-open.c 2013-01-10 12:06:04.644775710 -0500 +@@ -298,7 +298,7 @@ dl_open_worker (void *a) + struct r_debug *r = _dl_debug_initialize (0, args->nsid); + r->r_state = RT_CONSISTENT; + _dl_debug_state (); +- LIBC_PROBE (rtld_map_complete, 2, args->nsid, r); ++ LIBC_PROBE (rtld_map_complete, 3, args->nsid, r, new); + + /* Only do lazy relocation if `LD_BIND_NOW' is not set. */ + int reloc_mode = mode & __RTLD_AUDIT; +@@ -472,7 +472,7 @@ TLS generation counter wrapped! Please + + /* Notify the debugger all new objects have been relocated. */ + if (relocation_in_progress) +- LIBC_PROBE (rtld_reloc_complete, 2, args->nsid, r); ++ LIBC_PROBE (rtld_reloc_complete, 3, args->nsid, r, new); + + /* Run the initializer functions of new objects. */ + _dl_init (new, args->argc, args->argv, args->env); diff --git a/src/patches/glibc/glibc-rh905575.patch b/src/patches/glibc/glibc-rh905575.patch new file mode 100644 index 0000000..70baa89 --- /dev/null +++ b/src/patches/glibc/glibc-rh905575.patch @@ -0,0 +1,72 @@ +diff -rup a/sysdeps/ieee754/dbl-64/slowexp.c b/sysdeps/ieee754/dbl-64/slowexp.c +--- a/sysdeps/ieee754/dbl-64/slowexp.c 2012-01-01 05:16:32.000000000 -0700 ++++ b/sysdeps/ieee754/dbl-64/slowexp.c 2012-03-13 11:57:51.225330782 -0600 +@@ -31,6 +31,8 @@ + #include "mpa.h" + #include "math_private.h" + ++#include <stap-probe.h> ++ + void __mpexp(mp_no *x, mp_no *y, int p); + + /*Converting from double precision to Multi-precision and calculating e^x */ +@@ -61,12 +63,21 @@ __slowexp(double x) { + __sub(&mpy,&mpcor,&mpz,p); + __mp_dbl(&mpw, &w, p); + __mp_dbl(&mpz, &z, p); +- if (w == z) return w; ++ if (w == z) { ++ /* Track how often we get to the slow exp code plus ++ its input/output values. */ ++ LIBC_PROBE (slowexp_p6, 2, &x, &w); ++ return w; ++ } + else { /* if calculating is not exactly */ + p = 32; + __dbl_mp(x,&mpx,p); + __mpexp(&mpx, &mpy, p); + __mp_dbl(&mpy, &res, p); ++ ++ /* Track how often we get to the uber-slow exp code plus ++ its input/output values. */ ++ LIBC_PROBE (slowexp_p32, 2, &x, &res); + return res; + } + } +diff -rup a/sysdeps/ieee754/dbl-64/slowpow.c b/sysdeps/ieee754/dbl-64/slowpow.c +--- a/sysdeps/ieee754/dbl-64/slowpow.c 2012-01-01 05:16:32.000000000 -0700 ++++ b/sysdeps/ieee754/dbl-64/slowpow.c 2012-03-13 11:57:59.865284437 -0600 +@@ -35,6 +35,8 @@ + #include "mpa.h" + #include "math_private.h" + ++#include <stap-probe.h> ++ + void __mpexp(mp_no *x, mp_no *y, int p); + void __mplog(mp_no *x, mp_no *y, int p); + double ulog(double); +@@ -66,7 +68,12 @@ __slowpow(double x, double y, double z) + __mp_dbl(&mpr, &res, p); + __sub(&mpp,&eps,&mpr1,p); /* pp -eps =r1 */ + __mp_dbl(&mpr1, &res1, p); /* converting into double precision */ +- if (res == res1) return res; ++ if (res == res1) { ++ /* Track how often we get to the slow pow code plus ++ its input/output values. */ ++ LIBC_PROBE (slowpow_p10, 4, &x, &y, &z, &res); ++ return res; ++ } + + p = 32; /* if we get here result wasn't calculated exactly, continue */ + __dbl_mp(x,&mpx,p); /* for more exact calculation */ +@@ -76,5 +83,10 @@ __slowpow(double x, double y, double z) + __mul(&mpy,&mpz,&mpw,p); /* y*z =w */ + __mpexp(&mpw, &mpp, p); /* e^w=pp */ + __mp_dbl(&mpp, &res, p); /* converting into double precision */ ++ ++ /* Track how often we get to the uber-slow pow code plus ++ its input/output values. */ ++ LIBC_PROBE (slowpow_p32, 4, &x, &y, &z, &res); ++ + return res; + } diff --git a/src/patches/glibc/glibc-rh905874.patch b/src/patches/glibc/glibc-rh905874.patch new file mode 100644 index 0000000..1d9ea10 --- /dev/null +++ b/src/patches/glibc/glibc-rh905874.patch @@ -0,0 +1,174 @@ +# +# Backported from upstream. +# +# - Add en_US.UTF-8 as pre-requisite for regression test: +# +# commit 62c4a69dc2aea24776cbf0e951d41709a7408cc6 +# Author: Joseph Myers joseph@codesourcery.com +# Date: Thu Nov 1 00:22:04 2012 +0000 +# +# Build en_US.UTF-8 locale for testing. +# +# - Fix buffer overrun: +# +# commit a445af0bc722d620afed7683cd320c0e4c7c6059 +# Author: Andreas Schwab schwab@suse.de +# Date: Tue Jan 29 14:45:15 2013 +0100 +# +# Fix buffer overrun in regexp matcher +# +# ChangeLog/ +# 2013-02-12 Andreas Schwab schwab@suse.de +# +# [BZ #15078] +# * posix/regexec.c (extend_buffers): Add parameter min_len. +# (check_matching): Pass minimum needed length. +# (clean_state_log_if_needed): Likewise. +# (get_subexp): Likewise. +# * posix/Makefile (tests): Add bug-regex34. +# (bug-regex34-ENV): Define. +# * posix/bug-regex34.c: New file. +# +diff -urN glibc-2.12-2-gc4ccff1.orig/localedata/Makefile glibc-2.12-2-gc4ccff1/localedata/Makefile +--- glibc-2.12-2-gc4ccff1.orig/localedata/Makefile 2013-07-24 20:40:37.364888120 -0400 ++++ glibc-2.12-2-gc4ccff1/localedata/Makefile 2013-07-24 20:59:54.713289753 -0400 +@@ -133,7 +133,7 @@ + ifeq (no,$(cross-compiling)) + # We have to generate locales + LOCALES := de_DE.ISO-8859-1 de_DE.UTF-8 en_US.ANSI_X3.4-1968 \ +- en_US.ISO-8859-1 ja_JP.EUC-JP da_DK.ISO-8859-1 \ ++ en_US.ISO-8859-1 en_US.UTF-8 ja_JP.EUC-JP da_DK.ISO-8859-1 \ + hr_HR.ISO-8859-2 sv_SE.ISO-8859-1 ja_JP.SJIS fr_FR.ISO-8859-1 \ + vi_VN.TCVN5712-1 nb_NO.ISO-8859-1 nn_NO.ISO-8859-1 \ + tr_TR.UTF-8 cs_CZ.UTF-8 zh_TW.EUC-TW fa_IR.UTF-8 fr_FR.UTF-8 \ +diff -urN glibc-2.12-2-gc4ccff1.orig/posix/bug-regex34.c glibc-2.12-2-gc4ccff1/posix/bug-regex34.c +--- glibc-2.12-2-gc4ccff1.orig/posix/bug-regex34.c 1969-12-31 19:00:00.000000000 -0500 ++++ glibc-2.12-2-gc4ccff1/posix/bug-regex34.c 2013-07-24 20:59:54.713289753 -0400 +@@ -0,0 +1,46 @@ ++/* Test re_search with multi-byte characters in UTF-8. ++ Copyright (C) 2013 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ http://www.gnu.org/licenses/. */ ++ ++#define _GNU_SOURCE 1 ++#include <stdio.h> ++#include <string.h> ++#include <locale.h> ++#include <regex.h> ++ ++static int ++do_test (void) ++{ ++ struct re_pattern_buffer r; ++ /* áá»áœááºá¯ááºx */ ++ const char *s = "\xe1\x80\x80\xe1\x80\xbb\xe1\x80\xbd\xe1\x80\x94\xe1\x80\xba\xe1\x80\xaf\xe1\x80\x95\xe1\x80\xbax"; ++ ++ if (setlocale (LC_ALL, "en_US.UTF-8") == NULL) ++ { ++ puts ("setlocale failed"); ++ return 1; ++ } ++ memset (&r, 0, sizeof (r)); ++ ++ re_compile_pattern ("[^x]x", 5, &r); ++ /* This was triggering a buffer overflow. */ ++ re_search (&r, s, strlen (s), 0, strlen (s), 0); ++ return 0; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff -urN glibc-2.12-2-gc4ccff1.orig/posix/Makefile glibc-2.12-2-gc4ccff1/posix/Makefile +--- glibc-2.12-2-gc4ccff1.orig/posix/Makefile 2013-07-24 20:40:37.399888098 -0400 ++++ glibc-2.12-2-gc4ccff1/posix/Makefile 2013-07-24 21:00:43.267265979 -0400 +@@ -94,7 +94,7 @@ + tst-rfc3484-3 \ + tst-getaddrinfo3 tst-fnmatch2 tst-cpucount tst-cpuset \ + bug-getopt1 bug-getopt2 bug-getopt3 bug-getopt4 \ +- bug-getopt5 ++ bug-getopt5 bug-regex34 + xtests := bug-ga2 + ifeq (yes,$(build-shared)) + test-srcs := globtest +@@ -199,6 +199,7 @@ + bug-regex25-ENV = LOCPATH=$(common-objpfx)localedata + bug-regex26-ENV = LOCPATH=$(common-objpfx)localedata + bug-regex30-ENV = LOCPATH=$(common-objpfx)localedata ++bug-regex34-ENV = LOCPATH=$(common-objpfx)localedata + tst-rxspencer-ARGS = --utf8 rxspencer/tests + tst-rxspencer-ENV = LOCPATH=$(common-objpfx)localedata + tst-pcre-ARGS = PCRE.tests +diff -urN glibc-2.12-2-gc4ccff1.orig/posix/regexec.c glibc-2.12-2-gc4ccff1/posix/regexec.c +--- glibc-2.12-2-gc4ccff1.orig/posix/regexec.c 2013-07-24 20:40:37.396888100 -0400 ++++ glibc-2.12-2-gc4ccff1/posix/regexec.c 2013-07-24 21:02:53.005156187 -0400 +@@ -198,7 +198,7 @@ + static int check_node_accept (const re_match_context_t *mctx, + const re_token_t *node, int idx) + internal_function; +-static reg_errcode_t extend_buffers (re_match_context_t *mctx) ++static reg_errcode_t extend_buffers (re_match_context_t *mctx, int min_len) + internal_function; + + /* Entry point for POSIX code. */ +@@ -1160,7 +1160,7 @@ + || (BE (next_char_idx >= mctx->input.valid_len, 0) + && mctx->input.valid_len < mctx->input.len)) + { +- err = extend_buffers (mctx); ++ err = extend_buffers (mctx, next_char_idx + 1); + if (BE (err != REG_NOERROR, 0)) + { + assert (err == REG_ESPACE); +@@ -1737,7 +1737,7 @@ + && mctx->input.valid_len < mctx->input.len)) + { + reg_errcode_t err; +- err = extend_buffers (mctx); ++ err = extend_buffers (mctx, next_state_log_idx + 1); + if (BE (err != REG_NOERROR, 0)) + return err; + } +@@ -2791,7 +2791,7 @@ + if (bkref_str_off >= mctx->input.len) + break; + +- err = extend_buffers (mctx); ++ err = extend_buffers (mctx, bkref_str_off + 1); + if (BE (err != REG_NOERROR, 0)) + return err; + +@@ -4099,7 +4099,7 @@ + + static reg_errcode_t + internal_function __attribute_warn_unused_result__ +-extend_buffers (re_match_context_t *mctx) ++extend_buffers (re_match_context_t *mctx, int min_len) + { + reg_errcode_t ret; + re_string_t *pstr = &mctx->input; +@@ -4108,8 +4108,10 @@ + if (BE (INT_MAX / 2 / sizeof (re_dfastate_t *) <= pstr->bufs_len, 0)) + return REG_ESPACE; + +- /* Double the lengthes of the buffers. */ +- ret = re_string_realloc_buffers (pstr, pstr->bufs_len * 2); ++ /* Double the lengthes of the buffers, but allocate at least MIN_LEN. */ ++ ret = re_string_realloc_buffers (pstr, ++ MAX (min_len, ++ MIN (pstr->len, pstr->bufs_len * 2))); + if (BE (ret != REG_NOERROR, 0)) + return ret; + diff --git a/src/patches/glibc/glibc-rh916986.patch b/src/patches/glibc/glibc-rh916986.patch new file mode 100644 index 0000000..9bed61f --- /dev/null +++ b/src/patches/glibc/glibc-rh916986.patch @@ -0,0 +1,123 @@ +commit cf7c9078a5acdbb435498ace92cd81009637a971 +Author: Ulrich Drepper drepper@redhat.com +Date: Fri Nov 19 09:35:39 2010 -0500 + + Define MAP_HUGETLB. + + * sysdeps/unix/sysv/linux/i386/bits/mman.h: Define MAP_HUGETLB. + * sysdeps/unix/sysv/linux/x86_64/bits/mman.h: Likewise. + +commit dd62fda6cc83b3afa150a4be7d273ab118bf9825 +Author: Anton Blanchard anton@samba.org +Date: Tue Mar 27 18:37:16 2012 -0700 + + Define MAP_STACK and MAP_HUGETLB on powerpc, s390, sh and sparc. + + * sysdeps/unix/sysv/linux/powerpc/bits/mman.h: Define MAP_STACK and + MAP_HUGETLB. + * sysdeps/unix/sysv/linux/s390/bits/mman.h: Likewise. + * sysdeps/unix/sysv/linux/sh/bits/mman.h: Likewise. + * sysdeps/unix/sysv/linux/sparc/bits/mman.h: Likewise. + +commit 7e4fc5890e07549e5ad98b4244e3e0ed5c709e6a +Author: Mike Frysinger vapier@gentoo.org +Date: Mon Apr 16 22:44:23 2012 -0400 + + ia64: add MAP_{STACK,HUGETLB} to bits/mman.h + + Just adding new bit flags that newer kernels define. + + Signed-off-by: Mike Frysinger vapier@gentoo.org + + * sysdeps/unix/sysv/linux/ia64/bits/mman.h (MAP_STACK): Define. + (MAP_HUGETLB): Likewise. + +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/powerpc/bits/mman.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/powerpc/bits/mman.h 2013-07-23 04:01:42.440052942 -0300 ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/powerpc/bits/mman.h 2013-07-23 22:26:42.317789260 -0300 +@@ -65,6 +65,8 @@ + # define MAP_NORESERVE 0x00040 /* Don't check for reservations. */ + # define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */ + # define MAP_NONBLOCK 0x10000 /* Do not block on IO. */ ++# define MAP_STACK 0x20000 /* Allocation is for a stack. */ ++# define MAP_HUGETLB 0x40000 /* Create huge page mapping. */ + #endif + + /* Flags to `msync'. */ +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/s390/bits/mman.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/s390/bits/mman.h 2013-07-23 04:01:42.447052393 -0300 ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/s390/bits/mman.h 2013-07-23 22:26:42.335787833 -0300 +@@ -64,6 +64,8 @@ + # define MAP_NORESERVE 0x04000 /* Don't check for reservations. */ + # define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */ + # define MAP_NONBLOCK 0x10000 /* Do not block on IO. */ ++# define MAP_STACK 0x20000 /* Allocation is for a stack. */ ++# define MAP_HUGETLB 0x40000 /* Create huge page mapping. */ + #endif + + /* Flags to `msync'. */ +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/sh/bits/mman.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/sh/bits/mman.h 2010-05-04 08:27:23.000000000 -0300 ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/sh/bits/mman.h 2013-07-23 22:26:42.336787753 -0300 +@@ -64,6 +64,8 @@ + # define MAP_NORESERVE 0x4000 /* Don't check for reservations. */ + # define MAP_POPULATE 0x8000 /* Populate (prefault) pagetables. */ + # define MAP_NONBLOCK 0x10000 /* Do not block on IO. */ ++# define MAP_STACK 0x20000 /* Allocation is for a stack. */ ++# define MAP_HUGETLB 0x40000 /* Create huge page mapping. */ + #endif + + /* Flags to `msync'. */ +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/sparc/bits/mman.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/sparc/bits/mman.h 2010-05-04 08:27:23.000000000 -0300 ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/sparc/bits/mman.h 2013-07-23 22:26:42.337787674 -0300 +@@ -66,6 +66,8 @@ + # define _MAP_NEW 0x80000000 /* Binary compatibility with SunOS. */ + # define MAP_POPULATE 0x8000 /* Populate (prefault) pagetables. */ + # define MAP_NONBLOCK 0x10000 /* Do not block on IO. */ ++# define MAP_STACK 0x20000 /* Allocation is for a stack. */ ++# define MAP_HUGETLB 0x40000 /* Create huge page mapping. */ + #endif + + /* Flags to `msync'. */ +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/i386/bits/mman.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/i386/bits/mman.h 2013-07-23 04:01:42.406055607 -0300 ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/i386/bits/mman.h 2013-07-23 22:32:37.407630135 -0300 +@@ -64,6 +64,7 @@ + # define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */ + # define MAP_NONBLOCK 0x10000 /* Do not block on IO. */ + # define MAP_STACK 0x20000 /* Allocation is for a stack. */ ++# define MAP_HUGETLB 0x40000 /* Create huge page mapping. */ + #endif + + /* Flags to `msync'. */ +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/x86_64/bits/mman.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/x86_64/bits/mman.h 2013-07-23 04:01:42.493048788 -0300 ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/x86_64/bits/mman.h 2013-07-23 22:32:37.433628073 -0300 +@@ -65,6 +65,7 @@ + # define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */ + # define MAP_NONBLOCK 0x10000 /* Do not block on IO. */ + # define MAP_STACK 0x20000 /* Allocation is for a stack. */ ++# define MAP_HUGETLB 0x40000 /* Create huge page mapping. */ + #endif + + /* Flags to `msync'. */ +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/ia64/bits/mman.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/ia64/bits/mman.h 2010-05-04 08:27:23.000000000 -0300 ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/ia64/bits/mman.h 2013-07-23 22:37:28.643530951 -0300 +@@ -65,6 +65,8 @@ + # define MAP_NORESERVE 0x04000 /* Don't check for reservations. */ + # define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */ + # define MAP_NONBLOCK 0x10000 /* Do not block on IO. */ ++# define MAP_STACK 0x20000 /* Allocation is for a stack. */ ++# define MAP_HUGETLB 0x40000 /* Create huge page mapping. */ + #endif + + /* Flags to `msync'. */ diff --git a/src/patches/glibc/glibc-rh928318.patch b/src/patches/glibc/glibc-rh928318.patch new file mode 100644 index 0000000..36aa19a --- /dev/null +++ b/src/patches/glibc/glibc-rh928318.patch @@ -0,0 +1,31 @@ +diff --git a/resolv/res_init.c b/resolv/res_init.c +index 40dbe7d..202569d 100644 +--- a/resolv/res_init.c ++++ b/resolv/res_init.c +@@ -176,13 +176,6 @@ __res_vinit(res_state statp, int preinit) { + statp->id = res_randomid(); + } + +-#ifdef USELOOPBACK +- statp->nsaddr.sin_addr = inet_makeaddr(IN_LOOPBACKNET, 1); +-#else +- statp->nsaddr.sin_addr.s_addr = INADDR_ANY; +-#endif +- statp->nsaddr.sin_family = AF_INET; +- statp->nsaddr.sin_port = htons(NAMESERVER_PORT); + statp->nscount = 0; + statp->ndots = 1; + statp->pfcode = 0; +@@ -433,6 +426,12 @@ __res_vinit(res_state statp, int preinit) { + #endif + (void) fclose(fp); + } ++ if (__builtin_expect(statp->nscount == 0, 0)) { ++ statp->nsaddr.sin_addr = inet_makeaddr(IN_LOOPBACKNET, 1); ++ statp->nsaddr.sin_family = AF_INET; ++ statp->nsaddr.sin_port = htons(NAMESERVER_PORT); ++ statp->nscount = 1; ++ } + if (statp->defdname[0] == 0 && + __gethostname(buf, sizeof(statp->defdname) - 1) == 0 && + (cp = strchr(buf, '.')) != NULL) diff --git a/src/patches/glibc/glibc-rh929388.patch b/src/patches/glibc/glibc-rh929388.patch new file mode 100644 index 0000000..44ddd17 --- /dev/null +++ b/src/patches/glibc/glibc-rh929388.patch @@ -0,0 +1,21 @@ +diff -pruN glibc-2.5-20061008T1257/sysdeps/x86_64/fpu/math_private.h glibc-2.5-20061008T1257.patched/sysdeps/x86_64/fpu/math_private.h +--- glibc-2.5-20061008T1257/sysdeps/x86_64/fpu/math_private.h 2013-02-12 07:05:08.000000000 -0500 ++++ glibc-2.5-20061008T1257.patched/sysdeps/x86_64/fpu/math_private.h 2013-02-12 06:59:08.000000000 -0500 +@@ -90,10 +90,14 @@ while (0) + #undef libc_feupdateenv + #define libc_feupdateenv(e) \ + do { \ +- unsigned int mxcsr; \ ++ unsigned int mxcsr, new_mxcsr; \ + asm volatile ("stmxcsr %0" : "=m" (*&mxcsr)); \ +- asm volatile ("ldmxcsr %0" : : "m" ((e)->__mxcsr)); \ +- feraiseexcept (mxcsr & FE_ALL_EXCEPT); \ ++ /* Merge in the old exceptions. */ \ ++ new_mxcsr = mxcsr & FE_ALL_EXCEPT | (e)->__mxcsr; \ ++ asm volatile ("ldmxcsr %0" : : "m" (*&new_mxcsr)); \ ++ /* Only raise exception if there are any that are not masked. */ \ ++ if (~(mxcsr >> 7) & mxcsr & FE_ALL_EXCEPT) \ ++ feraiseexcept (mxcsr & FE_ALL_EXCEPT); \ + } while (0) + #undef libc_feupdateenvf + #define libc_feupdateenvf(e) libc_feupdateenv (e) diff --git a/src/patches/glibc/glibc-rh947882.patch b/src/patches/glibc/glibc-rh947882.patch new file mode 100644 index 0000000..6d10982 --- /dev/null +++ b/src/patches/glibc/glibc-rh947882.patch @@ -0,0 +1,63 @@ +# +# Backport from upstream: +# +# From 1cef1b19089528db11f221e938f60b9b048945d7 Mon Sep 17 00:00:00 2001 +# From: Andreas Schwab schwab@suse.de +# Date: Thu, 21 Mar 2013 15:50:27 +0100 +# Subject: [PATCH] Fix stack overflow in getaddrinfo with many results +# +# --- +# ChangeLog | 6 ++++++ +# NEWS | 5 ++++- +# sysdeps/posix/getaddrinfo.c | 23 +++++++++++++++++++++-- +# 3 files changed, 31 insertions(+), 3 deletions(-) +# +# 2013-04-03 Andreas Schwab schwab@suse.de +# +# [BZ #15330] +# * sysdeps/posix/getaddrinfo.c (getaddrinfo): Allocate results and +# order arrays from heap if bigger than alloca cutoff. +# +diff -urN glibc-2.12-2-gc4ccff1.orig/sysdeps/posix/getaddrinfo.c glibc-2.12-2-gc4ccff1/sysdeps/posix/getaddrinfo.c +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/posix/getaddrinfo.c 2013-07-24 20:40:37.601887975 -0400 ++++ glibc-2.12-2-gc4ccff1/sysdeps/posix/getaddrinfo.c 2013-07-24 20:54:32.722447705 -0400 +@@ -2386,11 +2386,27 @@ + __typeof (once) old_once = once; + __libc_once (once, gaiconf_init); + /* Sort results according to RFC 3484. */ +- struct sort_result results[nresults]; +- size_t order[nresults]; ++ struct sort_result *results; ++ size_t *order; + struct addrinfo *q; + struct addrinfo *last = NULL; + char *canonname = NULL; ++ bool malloc_results; ++ ++ malloc_results ++ = !__libc_use_alloca (nresults * (sizeof (*results) + sizeof (*order))); ++ if (malloc_results) ++ { ++ results = malloc (nresults * (sizeof (*results) + sizeof (*order))); ++ if (results == NULL) ++ { ++ free (in6ai); ++ return EAI_MEMORY; ++ } ++ } ++ else ++ results = alloca (nresults * (sizeof (*results) + sizeof (*order))); ++ order = (size_t *) (results + nresults); + + /* If we have information about deprecated and temporary addresses + sort the array now. */ +@@ -2557,6 +2573,9 @@ + + /* Fill in the canonical name into the new first entry. */ + p->ai_canonname = canonname; ++ ++ if (malloc_results) ++ free (results); + } + + free (in6ai); diff --git a/src/patches/glibc/glibc-rh952422.patch b/src/patches/glibc/glibc-rh952422.patch new file mode 100644 index 0000000..c73bf52 --- /dev/null +++ b/src/patches/glibc/glibc-rh952422.patch @@ -0,0 +1,127 @@ +diff --git a/sysdeps/unix/sysv/linux/getsysstats.c b/sysdeps/unix/sysv/linux/getsysstats.c +index af454b6..249bd19 100644 +--- a/sysdeps/unix/sysv/linux/getsysstats.c ++++ b/sysdeps/unix/sysv/linux/getsysstats.c +@@ -35,6 +34,7 @@ + + #include <atomic.h> + #include <not-cancel.h> ++#include <kernel-features.h> + + + /* How we can determine the number of available processors depends on +@@ -49,8 +49,6 @@ + But not all systems have support for the /proc filesystem. If it + is not available we simply return 1 since there is no way. */ + +-#include <not-cancel.h> +- + + /* Other architectures use different formats for /proc/cpuinfo. This + provides a hook for alternative parsers. */ +@@ -128,6 +126,15 @@ next_line (int fd, char *const buffer, char **cp, char **re, + int + __get_nprocs () + { ++ static int cached_result; ++ static time_t timestamp; ++ ++ time_t now = time (NULL); ++ time_t prev = timestamp; ++ atomic_read_barrier (); ++ if (now == prev) ++ return cached_result; ++ + /* XXX Here will come a test for the new system call. */ + + const size_t buffer_size = __libc_use_alloca (8192) ? 8192 : 512; +@@ -135,20 +142,65 @@ __get_nprocs () + char *buffer_end = buffer + buffer_size; + char *cp = buffer_end; + char *re = buffer_end; +- int result = 1; + + #ifdef O_CLOEXEC + const int flags = O_RDONLY | O_CLOEXEC; + #else + const int flags = O_RDONLY; + #endif ++ int fd = open_not_cancel_2 ("/sys/devices/system/cpu/online", flags); ++ char *l; ++ int result = 0; ++ if (fd != -1) ++ { ++ l = next_line (fd, buffer, &cp, &re, buffer_end); ++ if (l != NULL) ++ do ++ { ++ char *endp; ++ unsigned long int n = strtoul (l, &endp, 10); ++ if (l == endp) ++ { ++ result = 0; ++ break; ++ } ++ ++ unsigned long int m = n; ++ if (*endp == '-') ++ { ++ l = endp + 1; ++ m = strtoul (l, &endp, 10); ++ if (l == endp) ++ { ++ result = 0; ++ break; ++ } ++ } ++ ++ result += m - n + 1; ++ ++ l = endp; ++ while (l < re && isspace (*l)) ++ ++l; ++ } ++ while (l < re); ++ ++ close_not_cancel_no_status (fd); ++ ++ if (result > 0) ++ goto out; ++ } ++ ++ cp = buffer_end; ++ re = buffer_end; ++ result = 1; ++ + /* The /proc/stat format is more uniform, use it by default. */ +- int fd = open_not_cancel_2 ("/proc/stat", flags); ++ fd = open_not_cancel_2 ("/proc/stat", flags); + if (fd != -1) + { + result = 0; + +- char *l; + while ((l = next_line (fd, buffer, &cp, &re, buffer_end)) != NULL) + /* The current format of /proc/stat has all the cpu* entries + at the front. We assume here that stays this way. */ +@@ -169,6 +221,11 @@ __get_nprocs () + } + } + ++ out: ++ cached_result = result; ++ atomic_write_barrier (); ++ timestamp = now; ++ + return result; + } + weak_alias (__get_nprocs, get_nprocs) +@@ -236,7 +293,7 @@ phys_pages_info (const char *format) + long int result = -1; + + /* If we haven't found an appropriate entry return 1. */ +- FILE *fp = fopen ("/proc/meminfo", "rc"); ++ FILE *fp = fopen ("/proc/meminfo", "rce"); + if (fp != NULL) + { + /* No threads use this stream. */ diff --git a/src/patches/glibc/glibc-rh966775.patch b/src/patches/glibc/glibc-rh966775.patch new file mode 100644 index 0000000..32a0f21 --- /dev/null +++ b/src/patches/glibc/glibc-rh966775.patch @@ -0,0 +1,177 @@ +diff -pruN glibc-2.12-2-gc4ccff1/math/math_private.h glibc-2.12-2-gc4ccff1.new/math/math_private.h +--- glibc-2.12-2-gc4ccff1/math/math_private.h 2013-06-07 08:35:52.785442441 -0400 ++++ glibc-2.12-2-gc4ccff1.new/math/math_private.h 2013-06-07 08:29:35.621042340 -0400 +@@ -394,4 +394,31 @@ extern void __docos (double __x, double + #define libc_feupdateenvf(e) (void) feupdateenv (e) + #define libc_feupdateenvl(e) (void) feupdateenv (e) + ++/* Save and set the rounding mode. The use of fenv_t to store the old mode ++ allows a target-specific version of this function to avoid converting the ++ rounding mode from the fpu format. By default we have no choice but to ++ manipulate the entire env. */ ++ ++#ifndef libc_feholdsetround ++# define libc_feholdsetround(e, r, c) libc_feholdexcept_setround(e, r) ++#endif ++#ifndef libc_feholdsetroundf ++# define libc_feholdsetroundf(e, r, c) libc_feholdexcept_setroundf(e, r) ++#endif ++#ifndef libc_feholdsetroundl ++# define libc_feholdsetroundl(e, r, c) libc_feholdexcept_setroundl(e, r) ++#endif ++ ++/* ... and the reverse. */ ++ ++#ifndef libc_feresetround ++# define libc_feresetround(e, c) libc_feupdateenv(e) ++#endif ++#ifndef libc_feresetroundf ++# define libc_feresetroundf(e, c) libc_feupdateenvf(e) ++#endif ++#ifndef libc_feresetroundl ++# define libc_feresetroundl(e, c) libc_feupdateenvl(e) ++#endif ++ + #endif /* _MATH_PRIVATE_H_ */ +diff -pruN glibc-2.12-2-gc4ccff1/sysdeps/ieee754/dbl-64/e_exp.c glibc-2.12-2-gc4ccff1.new/sysdeps/ieee754/dbl-64/e_exp.c +--- glibc-2.12-2-gc4ccff1/sysdeps/ieee754/dbl-64/e_exp.c 2013-06-07 08:35:52.785442441 -0400 ++++ glibc-2.12-2-gc4ccff1.new/sysdeps/ieee754/dbl-64/e_exp.c 2013-06-07 08:30:21.976222459 -0400 +@@ -57,7 +57,8 @@ double __ieee754_exp(double x) { + fenv_t env; + double retval; + +- libc_feholdexcept_setround (&env, FE_TONEAREST); ++ int changed; ++ libc_feholdsetround (&env, FE_TONEAREST, changed); + + junk1.x = x; + m = junk1.i[HIGH_HALF]; +@@ -152,7 +153,7 @@ double __ieee754_exp(double x) { + else { retval = __slowexp(x); goto ret; } + } + ret: +- libc_feupdateenv (&env); ++ libc_feresetround (&env, changed); + return retval; + } + +diff -pruN glibc-2.12-2-gc4ccff1/sysdeps/ieee754/dbl-64/e_pow.c glibc-2.12-2-gc4ccff1.new/sysdeps/ieee754/dbl-64/e_pow.c +--- glibc-2.12-2-gc4ccff1/sysdeps/ieee754/dbl-64/e_pow.c 2013-06-07 08:35:52.785442441 -0400 ++++ glibc-2.12-2-gc4ccff1.new/sysdeps/ieee754/dbl-64/e_pow.c 2013-06-07 08:31:00.294939087 -0400 +@@ -83,7 +83,8 @@ double __ieee754_pow(double x, double y) + fenv_t env; + double retval; + +- libc_feholdexcept_setround (&env, FE_TONEAREST); ++ int changed; ++ libc_feholdsetround (&env, FE_TONEAREST, changed); + + z = log1(x,&aa,&error); /* x^y =e^(y log (X)) */ + t = y*134217729.0; +@@ -100,7 +101,7 @@ double __ieee754_pow(double x, double y) + t = __exp1(a1,a2,1.9e16*error); /* return -10 or 0 if wasn't computed exactly */ + retval = (t>0)?t:power1(x,y); + +- libc_feupdateenv (&env); ++ libc_feresetround (&env, changed); + return retval; + } + +diff -pruN glibc-2.12-2-gc4ccff1/sysdeps/ieee754/dbl-64/s_sin.c glibc-2.12-2-gc4ccff1.new/sysdeps/ieee754/dbl-64/s_sin.c +--- glibc-2.12-2-gc4ccff1/sysdeps/ieee754/dbl-64/s_sin.c 2013-06-07 08:35:52.786442462 -0400 ++++ glibc-2.12-2-gc4ccff1.new/sysdeps/ieee754/dbl-64/s_sin.c 2013-06-07 08:32:08.254822633 -0400 +@@ -101,7 +101,8 @@ double __sin(double x){ + fenv_t env; + double retval = 0; + +- libc_feholdexcept_setround (&env, FE_TONEAREST); ++ int changed; ++ libc_feholdsetround (&env, FE_TONEAREST, changed); + + u.x = x; + m = u.i[HIGH_HALF]; +@@ -355,7 +356,7 @@ double __sin(double x){ + } + + ret: +- libc_feupdateenv (&env); ++ libc_feresetround (&env, changed); + return retval; + } + +@@ -374,7 +375,8 @@ double __cos(double x) + fenv_t env; + double retval = 0; + +- libc_feholdexcept_setround (&env, FE_TONEAREST); ++ int changed; ++ libc_feholdsetround (&env, FE_TONEAREST, changed); + + u.x = x; + m = u.i[HIGH_HALF]; +@@ -623,7 +625,7 @@ double __cos(double x) + } + + ret: +- libc_feupdateenv (&env); ++ libc_feresetround (&env, changed); + return retval; + } + +diff -pruN glibc-2.12-2-gc4ccff1/sysdeps/ieee754/dbl-64/s_tan.c glibc-2.12-2-gc4ccff1.new/sysdeps/ieee754/dbl-64/s_tan.c +--- glibc-2.12-2-gc4ccff1/sysdeps/ieee754/dbl-64/s_tan.c 2013-06-07 08:35:52.786442462 -0400 ++++ glibc-2.12-2-gc4ccff1.new/sysdeps/ieee754/dbl-64/s_tan.c 2013-06-07 08:32:39.736162619 -0400 +@@ -66,7 +66,8 @@ double tan(double x) { + int __branred(double, double *, double *); + int __mpranred(double, mp_no *, int); + +- libc_feholdexcept_setround (&env, FE_TONEAREST); ++ int changed; ++ libc_feholdsetround (&env, FE_TONEAREST, changed); + + /* x=+-INF, x=NaN */ + num.d = x; ux = num.i[HIGH_HALF]; +@@ -495,7 +496,7 @@ double tan(double x) { + goto ret; + + ret: +- libc_feupdateenv (&env); ++ libc_feresetround (&env, changed); + return retval; + } + +diff -pruN glibc-2.12-2-gc4ccff1/sysdeps/x86_64/fpu/math_private.h glibc-2.12-2-gc4ccff1.new/sysdeps/x86_64/fpu/math_private.h +--- glibc-2.12-2-gc4ccff1/sysdeps/x86_64/fpu/math_private.h 2013-06-07 08:35:52.787442488 -0400 ++++ glibc-2.12-2-gc4ccff1.new/sysdeps/x86_64/fpu/math_private.h 2013-06-07 08:34:35.370109759 -0400 +@@ -139,3 +139,31 @@ do { \ + #undef libc_feupdateenvf + #define libc_feupdateenvf(e) libc_feupdateenv (e) + // #define libc_feupdateenvl(e) (void) feupdateenv (e) ++ ++#undef libc_feholdsetround ++#define libc_feholdsetround(e, r, c) \ ++({ \ ++ unsigned int mxcsr, new_mxcsr; \ ++ asm ("stmxcsr %0" : "=m" (*&mxcsr)); \ ++ new_mxcsr = (mxcsr & ~0x6000) | ((r) << 3); \ ++ if (__builtin_expect (new_mxcsr != mxcsr, 0)) \ ++ { \ ++ (e)->__mxcsr = mxcsr; \ ++ asm volatile ("ldmxcsr %0" : : "m" (*&new_mxcsr)); \ ++ c = 1; \ ++ } \ ++ else \ ++ c = 0; \ ++}) ++ ++#undef libc_feresetround ++#define libc_feresetround(e, c) \ ++({ \ ++ if (__builtin_expect (c, 0)) \ ++ { \ ++ unsigned int mxcsr; \ ++ asm ("stmxcsr %0" : "=m" (*&mxcsr)); \ ++ mxcsr = (mxcsr & ~0x6000) | ((e)->__mxcsr & 0x6000); \ ++ asm volatile ("ldmxcsr %0" : : "m" (*&mxcsr)); \ ++ } \ ++}) diff --git a/src/patches/glibc/glibc-rh966778.patch b/src/patches/glibc/glibc-rh966778.patch new file mode 100644 index 0000000..d8fd3fa --- /dev/null +++ b/src/patches/glibc/glibc-rh966778.patch @@ -0,0 +1,54 @@ +commit 3056dcdb783a177158a5617657d1a33f872358d6 +Author: Ulrich Drepper drepper@redhat.com +Date: Mon Nov 22 11:11:24 2010 -0500 + + Fix multiple nss_compat initgroups() bugs + + Compat initgroups() is completely broken; the code will always set + skip_initgroups_dyn to true, so initgroups() will never be actually + called, but due to the nature of the code, setgrent() won't be called + either - thus, subsequent invocations of initgroups() will not return + the NIS group list anymore. + + This is a simple patch that makes sure skip_initgroups_dyn is set only + in case initgroups is not available; it also attempts to handle the + unavailability of other NSS interfaces better. + + Conflicts: + + ChangeLog + +diff --git a/nis/nss_compat/compat-initgroups.c b/nis/nss_compat/compat-initgroups.c +index 07a3b92..de8d95c 100644 +--- a/nis/nss_compat/compat-initgroups.c ++++ b/nis/nss_compat/compat-initgroups.c +@@ -474,18 +474,21 @@ internal_getgrent_r (ent_t *ent, char *buffer, size_t buflen, const char *user, + /* If the selected module does not support getgrent_r or + initgroups_dyn, abort. We cannot find the needed group + entries. */ +- if (nss_getgrent_r == NULL && nss_initgroups_dyn == NULL) ++ if (nss_initgroups_dyn == NULL || nss_getgrgid_r == NULL) ++ { ++ if (nss_setgrent != NULL) ++ { ++ nss_setgrent (1); ++ ent->need_endgrent = true; ++ } ++ ent->skip_initgroups_dyn = true; ++ } ++ ++ if (ent->skip_initgroups_dyn && nss_getgrent_r == NULL) + return NSS_STATUS_UNAVAIL; + + ent->files = false; + +- if (nss_initgroups_dyn == NULL && nss_setgrent != NULL) +- { +- nss_setgrent (1); +- ent->need_endgrent = true; +- } +- ent->skip_initgroups_dyn = true; +- + return getgrent_next_nss (ent, buffer, buflen, user, group, + start, size, groupsp, limit, errnop); + } diff --git a/src/patches/glibc/glibc-rh970090.patch b/src/patches/glibc/glibc-rh970090.patch new file mode 100644 index 0000000..6010624 --- /dev/null +++ b/src/patches/glibc/glibc-rh970090.patch @@ -0,0 +1,24 @@ +diff -pruN glibc-2.18/nscd/aicache.c glibc-2.18.new/nscd/aicache.c +--- glibc-2.18/nscd/aicache.c 2013-08-11 04:22:55.000000000 +0530 ++++ glibc-2.18.new/nscd/aicache.c 2013-08-26 11:10:25.843470413 +0530 +@@ -25,6 +25,7 @@ + #include <time.h> + #include <unistd.h> + #include <sys/mman.h> ++#include <resolv/res_hconf.h> + + #include "dbg_log.h" + #include "nscd.h" +@@ -100,8 +101,11 @@ addhstaiX (struct database_dyn *db, int + no_more = __nss_database_lookup ("hosts", NULL, + "dns [!UNAVAIL=return] files", &nip); + ++ /* Initialize configurations. */ ++ if (__builtin_expect (!_res_hconf.initialized, 0)) ++ _res_hconf_init (); + if (__res_maybe_init (&_res, 0) == -1) +- no_more = 1; ++ no_more = 1; + + /* If we are looking for both IPv4 and IPv6 address we don't want + the lookup functions to automatically promote IPv4 addresses to diff --git a/src/patches/glibc/glibc-rh970992.patch b/src/patches/glibc/glibc-rh970992.patch new file mode 100644 index 0000000..42aa819 --- /dev/null +++ b/src/patches/glibc/glibc-rh970992.patch @@ -0,0 +1,190 @@ +# +# Patch provided by Ulrich Drepper in BZ#919562. +# +# Patch has not been sent upstream. +# +# 2013-03-08 Ulrich Drepper drepper@gmail.com +# +# * elf/rtld.c (dl_main): Correctly determine when the application +# required DSOs with TLS and bump the generation counter in that +# case. The current condition does not account for an audit +# module using TLS. +# * elf/dl-tls.c (_dl_count_modids): New function. +# (_dl_allocate_tls_init): Add assertion to check TLS +# generation. +# * sysdeps/generic/ldsodefs.h: Declare _dl_count_modids. +# * elf/Makefile: Add rules to build and run tst-audit9. +# * elf/tst-audit9.c: New file. +# * elf/tst-auditmod9a.c: New file. +# * elf/tst-auditmod9b.c: New file. +# +diff -urN glibc-2.12-2-gc4ccff1.orig/elf/dl-tls.c glibc-2.12-2-gc4ccff1/elf/dl-tls.c +--- glibc-2.12-2-gc4ccff1.orig/elf/dl-tls.c 2013-04-24 16:06:10.410756438 -0400 ++++ glibc-2.12-2-gc4ccff1/elf/dl-tls.c 2013-04-24 16:06:49.092604707 -0400 +@@ -109,6 +109,28 @@ + } + + ++size_t ++internal_function ++_dl_count_modids (void) ++{ ++ if (! __builtin_expect (GL(dl_tls_dtv_gaps), true)) ++ return GL(dl_tls_max_dtv_idx); ++ ++ size_t n = 0; ++ struct dtv_slotinfo_list *runp = GL(dl_tls_dtv_slotinfo_list); ++ while (runp != NULL) ++ { ++ for (size_t i = 0; i < runp->len; ++i) ++ if (runp->slotinfo[i].map != NULL) ++ ++n; ++ ++ runp = runp->next; ++ } ++ ++ return n; ++} ++ ++ + #ifdef SHARED + void + internal_function +@@ -411,6 +433,7 @@ + + /* Keep track of the maximum generation number. This might + not be the generation counter. */ ++ assert (listp->slotinfo[cnt].gen <= GL(dl_tls_generation)); + maxgen = MAX (maxgen, listp->slotinfo[cnt].gen); + + if (map->l_tls_offset == NO_TLS_OFFSET +diff -urN glibc-2.12-2-gc4ccff1.orig/elf/Makefile glibc-2.12-2-gc4ccff1/elf/Makefile +--- glibc-2.12-2-gc4ccff1.orig/elf/Makefile 2013-04-24 16:06:10.408756448 -0400 ++++ glibc-2.12-2-gc4ccff1/elf/Makefile 2013-04-24 16:07:29.475457962 -0400 +@@ -97,6 +97,8 @@ + tst-audit6.c tst-auditmod6a.c tst-auditmod6b.c \ + tst-auditmod6c.c \ + tst-audit7.c tst-auditmod7a.c tst-auditmod7b.c \ ++ tst-audit9.c \ ++ tst-auditmod9a.c tst-auditmod9b.c \ + order2mod1.c order2mod2.c order2mod3.c order2mod4.c \ + tst-stackguard1.c tst-stackguard1-static.c \ + tst-array5.c tst-array5-static.c tst-array5dep.c \ +@@ -198,7 +200,7 @@ + tst-dlmodcount tst-dlopenrpath tst-deep1 \ + tst-dlmopen1 tst-dlmopen2 tst-dlmopen3 \ + unload3 unload4 unload5 unload6 unload7 unload8 tst-global1 order2 \ +- tst-audit1 tst-audit2 \ ++ tst-audit1 tst-audit2 tst-audit9 \ + tst-stackguard1 tst-addr1 tst-thrlock \ + tst-unique1 tst-unique2 + # reldep9 +@@ -251,7 +253,8 @@ + unload8mod1 unload8mod1x unload8mod2 unload8mod3 \ + order2mod1 order2mod2 order2mod3 order2mod4 \ + tst-unique1mod1 tst-unique1mod2 \ +- tst-unique2mod1 tst-unique2mod2 ++ tst-unique2mod1 tst-unique2mod2 \ ++ tst-auditmod9a tst-auditmod9b + ifeq (yes,$(have-initfini-array)) + modules-names += tst-array2dep tst-array5dep + endif +@@ -574,6 +577,8 @@ + ifuncmod1.so-no-z-defs = yes + ifuncmod5.so-no-z-defs = yes + ifuncmod6.so-no-z-defs = yes ++tst-auditmod9a.so-no-z-defs = yes ++tst-auditmod9b.so-no-z-defs = yes + + ifeq ($(build-shared),yes) + # Build all the modules even when not actually running test programs. +@@ -1015,6 +1020,10 @@ + $(objpfx)tst-audit7.out: $(objpfx)tst-auditmod7b.so + tst-audit7-ENV = LD_AUDIT=$(objpfx)tst-auditmod7b.so + ++$(objpfx)tst-audit9: $(libdl) ++$(objpfx)tst-audit9.out: $(objpfx)tst-auditmod9a.so $(objpfx)tst-auditmod9b.so ++tst-audit9-ENV = LD_AUDIT=$(objpfx)tst-auditmod9a.so ++ + $(objpfx)tst-global1: $(libdl) + $(objpfx)tst-global1.out: $(objpfx)testobj6.so $(objpfx)testobj2.so + +diff -urN glibc-2.12-2-gc4ccff1.orig/elf/rtld.c glibc-2.12-2-gc4ccff1/elf/rtld.c +--- glibc-2.12-2-gc4ccff1.orig/elf/rtld.c 2013-04-24 16:06:10.410756438 -0400 ++++ glibc-2.12-2-gc4ccff1/elf/rtld.c 2013-04-24 16:06:49.096604693 -0400 +@@ -1637,6 +1637,10 @@ + } + } + ++ /* Keep track of the currently loaded modules to count how many ++ non-audit modules which use TLS are loaded. */ ++ size_t count_modids = _dl_count_modids (); ++ + /* Set up debugging before the debugger is notified for the first time. */ + #ifdef ELF_MACHINE_DEBUG_SETUP + /* Some machines (e.g. MIPS) don't use DT_DEBUG in this way. */ +@@ -2281,7 +2285,8 @@ + # define NONTLS_INIT_TP do { } while (0) + #endif + +- if (!was_tls_init_tp_called && GL(dl_tls_max_dtv_idx) > 0) ++ if ((!was_tls_init_tp_called && GL(dl_tls_max_dtv_idx) > 0) ++ || count_modids != _dl_count_modids ()) + ++GL(dl_tls_generation); + + /* Now that we have completed relocation, the initializer data +diff -urN glibc-2.12-2-gc4ccff1.orig/elf/tst-audit9.c glibc-2.12-2-gc4ccff1/elf/tst-audit9.c +--- glibc-2.12-2-gc4ccff1.orig/elf/tst-audit9.c 1969-12-31 19:00:00.000000000 -0500 ++++ glibc-2.12-2-gc4ccff1/elf/tst-audit9.c 2013-04-24 16:06:49.096604693 -0400 +@@ -0,0 +1,8 @@ ++#include <dlfcn.h> ++ ++int main(void) ++{ ++ void *h = dlopen("$ORIGIN/tst-auditmod9b.so", RTLD_LAZY); ++ int (*fp)(void) = dlsym(h, "f"); ++ return fp() - 1; ++} +diff -urN glibc-2.12-2-gc4ccff1.orig/elf/tst-auditmod9a.c glibc-2.12-2-gc4ccff1/elf/tst-auditmod9a.c +--- glibc-2.12-2-gc4ccff1.orig/elf/tst-auditmod9a.c 1969-12-31 19:00:00.000000000 -0500 ++++ glibc-2.12-2-gc4ccff1/elf/tst-auditmod9a.c 2013-04-24 16:06:49.097604689 -0400 +@@ -0,0 +1,16 @@ ++#include <stdint.h> ++ ++__thread int var; ++ ++unsigned int ++la_version (unsigned int v) ++{ ++ return v; ++} ++ ++void ++la_activity (uintptr_t *cookie, unsigned int flag) ++{ ++ ++var; ++} ++ +diff -urN glibc-2.12-2-gc4ccff1.orig/elf/tst-auditmod9b.c glibc-2.12-2-gc4ccff1/elf/tst-auditmod9b.c +--- glibc-2.12-2-gc4ccff1.orig/elf/tst-auditmod9b.c 1969-12-31 19:00:00.000000000 -0500 ++++ glibc-2.12-2-gc4ccff1/elf/tst-auditmod9b.c 2013-04-24 16:06:49.097604689 -0400 +@@ -0,0 +1,6 @@ ++__thread int a; ++ ++int f(void) ++{ ++ return ++a; ++} +diff -urN glibc-2.12-2-gc4ccff1.orig/sysdeps/generic/ldsodefs.h glibc-2.12-2-gc4ccff1/sysdeps/generic/ldsodefs.h +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/generic/ldsodefs.h 2013-04-24 16:06:10.545755798 -0400 ++++ glibc-2.12-2-gc4ccff1/sysdeps/generic/ldsodefs.h 2013-04-24 16:06:49.098604686 -0400 +@@ -1031,6 +1031,9 @@ + /* Determine next available module ID. */ + extern size_t _dl_next_tls_modid (void) internal_function attribute_hidden; + ++/* Count the modules with TLS segments. */ ++extern size_t _dl_count_modids (void) internal_function attribute_hidden; ++ + /* Calculate offset of the TLS blocks in the static TLS block. */ + extern void _dl_determine_tlsoffset (void) internal_function attribute_hidden; + diff --git a/src/patches/glibc/glibc-rh989558-2.patch b/src/patches/glibc/glibc-rh989558-2.patch new file mode 100644 index 0000000..ad895c7 --- /dev/null +++ b/src/patches/glibc/glibc-rh989558-2.patch @@ -0,0 +1,107 @@ +2013-05-03 Carlos O'Donell <carlos at redhat.com> + + * intl/dcigettext.c (DCIGETTEXT): Skip translating if _nl_find_msg returns -1. + (_nl_find_msg): Return -1 if recursive call returned -1. If newmem is null + return -1. + * intl/loadmsgcat.c (_nl_load_domain): If _nl_find_msg returns -1 abort + loading the domain. + +diff -Nrup a/intl/dcigettext.c b/intl/dcigettext.c +--- a/intl/dcigettext.c 2010-05-04 07:27:23.000000000 -0400 ++++ b/intl/dcigettext.c 2013-08-01 00:11:54.616363264 -0400 +@@ -640,6 +640,11 @@ DCIGETTEXT (domainname, msgid1, msgid2, + retval = _nl_find_msg (domain->successor[cnt], binding, + msgid1, 1, &retlen); + ++ /* Resource problems are not fatal, instead we return no ++ translation. */ ++ if (__builtin_expect (retval == (char *) -1, 0)) ++ goto no_translation; ++ + if (retval != NULL) + { + domain = domain->successor[cnt]; +@@ -943,6 +948,11 @@ _nl_find_msg (domain_file, domainbinding + nullentry = + _nl_find_msg (domain_file, domainbinding, "", 0, &nullentrylen); + ++ /* Resource problems are fatal. If we continue onwards we will ++ only attempt to calloc a new conv_tab and fail later. */ ++ if (__builtin_expect (nullentry == (char *) -1, 0)) ++ return (char *) -1; ++ + if (nullentry != NULL) + { + const char *charsetstr; +@@ -1156,7 +1166,7 @@ _nl_find_msg (domain_file, domainbinding + freemem_size); + # ifdef _LIBC + if (newmem != NULL) +- transmem_list = transmem_list->next; ++ transmem_list = newmem; + else + { + struct transmem_list *old = transmem_list; +@@ -1171,6 +1181,16 @@ _nl_find_msg (domain_file, domainbinding + malloc_count = 1; + freemem_size = INITIAL_BLOCK_SIZE; + newmem = (transmem_block_t *) malloc (freemem_size); ++# ifdef _LIBC ++ if (newmem != NULL) ++ { ++ /* Add the block to the list of blocks we have to free ++ at some point. */ ++ newmem->next = transmem_list; ++ transmem_list = newmem; ++ } ++ /* Fall through and return -1. */ ++# endif + } + if (__builtin_expect (newmem == NULL, 0)) + { +@@ -1181,11 +1201,6 @@ _nl_find_msg (domain_file, domainbinding + } + + # ifdef _LIBC +- /* Add the block to the list of blocks we have to free +- at some point. */ +- newmem->next = transmem_list; +- transmem_list = newmem; +- + freemem = (unsigned char *) newmem->data; + freemem_size -= offsetof (struct transmem_list, data); + # else +@@ -1402,7 +1417,7 @@ get_output_charset (domainbinding) + return _NL_CURRENT (LC_CTYPE, CODESET); + # else + # if HAVE_ICONV +- extern const char *locale_charset PARAMS ((void); ++ extern const char *locale_charset PARAMS ((void)); + return locale_charset (); + # endif + # endif +diff -Nrup a/intl/loadmsgcat.c b/intl/loadmsgcat.c +--- a/intl/loadmsgcat.c 2010-05-04 07:27:23.000000000 -0400 ++++ b/intl/loadmsgcat.c 2013-08-01 00:12:48.448237849 -0400 +@@ -1235,7 +1235,7 @@ _nl_load_domain (domain_file, domainbind + default: + /* This is an invalid revision. */ + invalid: +- /* This is an invalid .mo file. */ ++ /* This is an invalid .mo file or we ran out of resources. */ + free (domain->malloced); + #ifdef HAVE_MMAP + if (use_mmap) +@@ -1255,6 +1255,12 @@ _nl_load_domain (domain_file, domainbind + + /* Get the header entry and look for a plural specification. */ + nullentry = _nl_find_msg (domain_file, domainbinding, "", 0, &nullentrylen); ++ if (__builtin_expect (nullentry == (char *) -1, 0)) ++ { ++ __libc_rwlock_fini (domain->conversions_lock); ++ goto invalid; ++ } ++ + EXTRACT_PLURAL_EXPRESSION (nullentry, &domain->plural, &domain->nplurals); + + out: diff --git a/src/patches/glibc/glibc-rh989558.patch b/src/patches/glibc/glibc-rh989558.patch new file mode 100644 index 0000000..61ddbe8 --- /dev/null +++ b/src/patches/glibc/glibc-rh989558.patch @@ -0,0 +1,181 @@ +# +# Red Hat BZ: +# https://bugzilla.redhat.com/show_bug.cgi?id=816647 +# +# ChangeLog +# +#2013-04-30 Patsy Franklin pfrankli@redhat.com +# +# * iconv/gconv_cache.c (find_module): Demangle init_fct before +# checking for NULL. Mangle __btowc_fct if init_fct is non-NULL. +# * iconv/gconv_db.c (free_derivation): Check that __shlib_handle +# is non-NULL before demangling the end_fct. Check for NULL +# end_fct after demangling. +# (__gconv_release_step): Demangle the end_fct before checking +# it for NULL. Remove assert on __shlibc_handle != NULL. +# (gen_steps): Don't check btowc_fct for NULL before mangling. +# Demangle init_fct before checking for NULL. +# (increment_counter): Likewise +# * gconv_dl.c (__gconv_find_shlib): Don't check init_fct or +# end_fct for NULL before mangling. +# * wcsmbs/btowc.c (__btowc): Demangle btowc_fct before checking +# for NULL. +# +diff -Nrup a/iconv/gconv_cache.c b/iconv/gconv_cache.c +--- a/iconv/gconv_cache.c 2012-12-24 22:02:13.000000000 -0500 ++++ b/iconv/gconv_cache.c 2013-04-30 11:34:20.112389987 -0400 +@@ -207,17 +207,16 @@ find_module (const char *directory, cons + result->__data = NULL; + + /* Call the init function. */ +- if (result->__init_fct != NULL) +- { +- __gconv_init_fct init_fct = result->__init_fct; ++ __gconv_init_fct init_fct = result->__init_fct; + #ifdef PTR_DEMANGLE +- PTR_DEMANGLE (init_fct); ++ PTR_DEMANGLE (init_fct); + #endif ++ if (init_fct != NULL) ++ { + status = DL_CALL_FCT (init_fct, (result)); + + #ifdef PTR_MANGLE +- if (result->__btowc_fct != NULL) +- PTR_MANGLE (result->__btowc_fct); ++ PTR_MANGLE (result->__btowc_fct); + #endif + } + } +diff -Nrup a/iconv/gconv_db.c b/iconv/gconv_db.c +--- a/iconv/gconv_db.c 2012-12-24 22:02:13.000000000 -0500 ++++ b/iconv/gconv_db.c 2013-04-30 11:32:42.700592914 -0400 +@@ -179,16 +179,15 @@ free_derivation (void *p) + size_t cnt; + + for (cnt = 0; cnt < deriv->nsteps; ++cnt) +- if (deriv->steps[cnt].__counter > 0 +- && deriv->steps[cnt].__end_fct != NULL) ++ if ((deriv->steps[cnt].__counter > 0) ++ && (deriv->steps[cnt].__shlib_handle != NULL)) + { +- assert (deriv->steps[cnt].__shlib_handle != NULL); +- + __gconv_end_fct end_fct = deriv->steps[cnt].__end_fct; + #ifdef PTR_DEMANGLE + PTR_DEMANGLE (end_fct); + #endif +- DL_CALL_FCT (end_fct, (&deriv->steps[cnt])); ++ if (end_fct != NULL) ++ DL_CALL_FCT (end_fct, (&deriv->steps[cnt])); + } + + /* Free the name strings. */ +@@ -212,16 +211,12 @@ __gconv_release_step (struct __gconv_ste + if (step->__shlib_handle != NULL && --step->__counter == 0) + { + /* Call the destructor. */ +- if (step->__end_fct != NULL) +- { +- assert (step->__shlib_handle != NULL); +- +- __gconv_end_fct end_fct = step->__end_fct; ++ __gconv_end_fct end_fct = step->__end_fct; + #ifdef PTR_DEMANGLE +- PTR_DEMANGLE (end_fct); ++ PTR_DEMANGLE (end_fct); + #endif +- DL_CALL_FCT (end_fct, (step)); +- } ++ if (end_fct != NULL) ++ DL_CALL_FCT (end_fct, (step)); + + #ifndef STATIC_GCONV + /* Release the loaded module. */ +@@ -293,13 +288,11 @@ gen_steps (struct derivation_step *best, + + /* Call the init function. */ + __gconv_init_fct init_fct = result[step_cnt].__init_fct; +- if (init_fct != NULL) +- { +- assert (result[step_cnt].__shlib_handle != NULL); +- + # ifdef PTR_DEMANGLE +- PTR_DEMANGLE (init_fct); ++ PTR_DEMANGLE (init_fct); + # endif ++ if (init_fct != NULL) ++ { + status = DL_CALL_FCT (init_fct, (&result[step_cnt])); + + if (__builtin_expect (status, __GCONV_OK) != __GCONV_OK) +@@ -312,8 +305,7 @@ gen_steps (struct derivation_step *best, + } + + # ifdef PTR_MANGLE +- if (result[step_cnt].__btowc_fct != NULL) +- PTR_MANGLE (result[step_cnt].__btowc_fct); ++ PTR_MANGLE (result[step_cnt].__btowc_fct); + # endif + } + } +@@ -393,16 +385,15 @@ increment_counter (struct __gconv_step * + + /* Call the init function. */ + __gconv_init_fct init_fct = step->__init_fct; +- if (init_fct != NULL) +- { + #ifdef PTR_DEMANGLE +- PTR_DEMANGLE (init_fct); ++ PTR_DEMANGLE (init_fct); + #endif ++ if (init_fct != NULL) ++ { + DL_CALL_FCT (init_fct, (step)); + + #ifdef PTR_MANGLE +- if (step->__btowc_fct != NULL) +- PTR_MANGLE (step->__btowc_fct); ++ PTR_MANGLE (step->__btowc_fct); + #endif + } + } +diff -Nrup a/iconv/gconv_dl.c b/iconv/gconv_dl.c +--- a/iconv/gconv_dl.c 2012-12-24 22:02:13.000000000 -0500 ++++ b/iconv/gconv_dl.c 2013-04-30 11:32:42.701592922 -0400 +@@ -132,10 +132,8 @@ __gconv_find_shlib (const char *name) + + #ifdef PTR_MANGLE + PTR_MANGLE (found->fct); +- if (found->init_fct != NULL) +- PTR_MANGLE (found->init_fct); +- if (found->end_fct != NULL) +- PTR_MANGLE (found->end_fct); ++ PTR_MANGLE (found->init_fct); ++ PTR_MANGLE (found->end_fct); + #endif + + /* We have succeeded in loading the shared object. */ +diff -Nrup a/wcsmbs/btowc.c b/wcsmbs/btowc.c +--- a/wcsmbs/btowc.c 2012-12-24 22:02:13.000000000 -0500 ++++ b/wcsmbs/btowc.c 2013-04-30 11:32:42.701592922 -0400 +@@ -47,15 +47,15 @@ __btowc (c) + /* Get the conversion functions. */ + fcts = get_gconv_fcts (_NL_CURRENT_DATA (LC_CTYPE)); + __gconv_btowc_fct btowc_fct = fcts->towc->__btowc_fct; ++#ifdef PTR_DEMANGLE ++ if (fcts->towc->__shlib_handle != NULL) ++ PTR_DEMANGLE (btowc_fct); ++#endif + + if (__builtin_expect (fcts->towc_nsteps == 1, 1) + && __builtin_expect (btowc_fct != NULL, 1)) + { + /* Use the shortcut function. */ +-#ifdef PTR_DEMANGLE +- if (fcts->towc->__shlib_handle != NULL) +- PTR_DEMANGLE (btowc_fct); +-#endif + return DL_CALL_FCT (btowc_fct, (fcts->towc, (unsigned char) c)); + } + else diff --git a/src/patches/imspector-20101008-ssl.patch b/src/patches/imspector-20101008-ssl.patch new file mode 100644 index 0000000..32ac766 --- /dev/null +++ b/src/patches/imspector-20101008-ssl.patch @@ -0,0 +1,11 @@ +--- imspector/sslstate.h 2010-02-23 18:21:56.000000000 +0100 ++++ imspector/sslstate.h 2013-12-14 15:40:04.796370688 +0100 +@@ -52,7 +52,7 @@ + int sslverify; //!< Our VERIFY_ choice. + + bool localdebugmode; //!< Saves us from passing this around. +- SSL_METHOD *method; //!< openssl method handle. ++ const SSL_METHOD *method; //!< openssl method handle. + SSL_CTX *connectctx; //!< Our IM server-sde CTX. + SSL_CTX *ctx; //!< Our IM client-side CTX. + diff --git a/src/patches/kernel/omap/0002-omap2-twl-common-Add-default-power-configuration.patch b/src/patches/kernel/omap/0002-omap2-twl-common-Add-default-power-configuration.patch new file mode 100644 index 0000000..d27ad54 --- /dev/null +++ b/src/patches/kernel/omap/0002-omap2-twl-common-Add-default-power-configuration.patch @@ -0,0 +1,88 @@ +From 2e908aeebd6804296e7d14a96de6be1e2de38e93 Mon Sep 17 00:00:00 2001 +From: Matthias Brugger matthias.bgg@gmail.com +Date: Wed, 23 Jan 2013 19:50:38 +0100 +Subject: [PATCH 2/2] omap2: twl-common: Add default power configuration + +This patch adds a generic power script configuration. +When rebooting an OMAP3530 at 125 MHz, the reboot hangs. +With the generic power script, TWL4030 will be reset +when a warm reset occures. This way the OMAP3530 does not +hang on reboot. + +Signed-off-by: Matthias Brugger matthias.bgg@gmail.com +--- + arch/arm/mach-omap2/twl-common.c | 38 ++++++++++++++++++++++++++++++++++++++ + arch/arm/mach-omap2/twl-common.h | 1 + + 2 files changed, 39 insertions(+) + +diff --git a/arch/arm/mach-omap2/twl-common.c b/arch/arm/mach-omap2/twl-common.c +index e49b40b..f096beb 100644 +--- a/arch/arm/mach-omap2/twl-common.c ++++ b/arch/arm/mach-omap2/twl-common.c +@@ -120,6 +120,41 @@ static struct twl4030_audio_data omap3_audio_pdata = { + .codec = &omap3_codec, + }; + ++static struct twl4030_ins wrst_seq[] __initdata = { ++ {MSG_SINGULAR(DEV_GRP_NULL, 0x1b, RES_STATE_OFF), 2}, ++ {MSG_SINGULAR(DEV_GRP_P1, 0xf, RES_STATE_WRST), 15}, ++ {MSG_SINGULAR(DEV_GRP_P1, 0x10, RES_STATE_WRST), 15}, ++ {MSG_SINGULAR(DEV_GRP_P1, 0x7, RES_STATE_WRST), 0x60}, ++ {MSG_SINGULAR(DEV_GRP_P1, 0x19, RES_STATE_ACTIVE), 2}, ++ {MSG_SINGULAR(DEV_GRP_NULL, 0x1b, RES_STATE_ACTIVE), 2}, ++}; ++ ++static struct twl4030_script wrst_script __initdata = { ++ .script = wrst_seq, ++ .size = ARRAY_SIZE(wrst_seq), ++ .flags = TWL4030_WRST_SCRIPT, ++}; ++ ++static struct twl4030_script *omap3_power_scripts[] __initdata = { ++ &wrst_script, ++}; ++ ++static struct twl4030_resconfig omap3_rconfig[] = { ++ { .resource = RES_HFCLKOUT, .devgroup = DEV_GRP_P3, .type = -1, ++ .type2 = -1 }, ++ { .resource = RES_VDD1, .devgroup = DEV_GRP_P1, .type = -1, ++ .type2 = -1 }, ++ { .resource = RES_VDD2, .devgroup = DEV_GRP_P1, .type = -1, ++ .type2 = -1 }, ++ { 0, 0}, ++}; ++ ++static struct twl4030_power_data omap3_power_pdata = { ++ .scripts = omap3_power_scripts, ++ .num = ARRAY_SIZE(omap3_power_scripts), ++ .resource_config = omap3_rconfig, ++}; ++ + static struct regulator_consumer_supply omap3_vdda_dac_supplies[] = { + REGULATOR_SUPPLY("vdda_dac", "omapdss_venc"), + }; +@@ -224,6 +259,9 @@ void __init omap3_pmic_get_config(struct twl4030_platform_data *pmic_data, + if (pdata_flags & TWL_COMMON_PDATA_AUDIO && !pmic_data->audio) + pmic_data->audio = &omap3_audio_pdata; + ++ if (pdata_flags & TWL_COMMON_PDATA_POWER && !pmic_data->power) ++ pmic_data->power = &omap3_power_pdata; ++ + /* Common regulator configurations */ + if (regulators_flags & TWL_COMMON_REGULATOR_VDAC && !pmic_data->vdac) + pmic_data->vdac = &omap3_vdac_idata; +diff --git a/arch/arm/mach-omap2/twl-common.h b/arch/arm/mach-omap2/twl-common.h +index dcfbad5..dbeb905 100644 +--- a/arch/arm/mach-omap2/twl-common.h ++++ b/arch/arm/mach-omap2/twl-common.h +@@ -7,6 +7,7 @@ + #define TWL_COMMON_PDATA_BCI (1 << 1) + #define TWL_COMMON_PDATA_MADC (1 << 2) + #define TWL_COMMON_PDATA_AUDIO (1 << 3) ++#define TWL_COMMON_PDATA_POWER (1 << 4) + + /* Common LDO regulators for TWL4030/TWL6030 */ + #define TWL_COMMON_REGULATOR_VDAC (1 << 0) +-- +1.7.10.4 + diff --git a/src/patches/kernel/omap/3isp/0001-omap3isp-Use-the-common-clock-framework.patch b/src/patches/kernel/omap/3isp/0001-omap3isp-Use-the-common-clock-framework.patch new file mode 100644 index 0000000..a61d5b8 --- /dev/null +++ b/src/patches/kernel/omap/3isp/0001-omap3isp-Use-the-common-clock-framework.patch @@ -0,0 +1,444 @@ +From 369b60c157f67a71a6f302ab9843ae2de1805a2a Mon Sep 17 00:00:00 2001 +From: Laurent Pinchart laurent.pinchart@ideasonboard.com +Date: Mon, 22 Oct 2012 15:43:00 +0200 +Subject: [PATCH 1/6] omap3isp: Use the common clock framework + +Expose the two ISP external clocks XCLKA and XCLKB as common clocks for +subdev drivers. + +Signed-off-by: Laurent Pinchart laurent.pinchart@ideasonboard.com +Acked-by: Mike Turquette mturquette@linaro.org +--- + drivers/media/platform/omap3isp/isp.c | 277 ++++++++++++++++++++++++--------- + drivers/media/platform/omap3isp/isp.h | 22 ++- + include/media/omap3isp.h | 10 +- + 3 files changed, 225 insertions(+), 84 deletions(-) + +diff --git a/drivers/media/platform/omap3isp/isp.c b/drivers/media/platform/omap3isp/isp.c +index 6e5ad8e..1d7dbd5 100644 +--- a/drivers/media/platform/omap3isp/isp.c ++++ b/drivers/media/platform/omap3isp/isp.c +@@ -55,6 +55,7 @@ + #include <asm/cacheflush.h> + + #include <linux/clk.h> ++#include <linux/clkdev.h> + #include <linux/delay.h> + #include <linux/device.h> + #include <linux/dma-mapping.h> +@@ -148,6 +149,201 @@ void omap3isp_flush(struct isp_device *isp) + isp_reg_readl(isp, OMAP3_ISP_IOMEM_MAIN, ISP_REVISION); + } + ++/* ----------------------------------------------------------------------------- ++ * XCLK ++ */ ++ ++#define to_isp_xclk(_hw) container_of(_hw, struct isp_xclk, hw) ++ ++static void isp_xclk_update(struct isp_xclk *xclk, u32 divider) ++{ ++ switch (xclk->id) { ++ case ISP_XCLK_A: ++ isp_reg_clr_set(xclk->isp, OMAP3_ISP_IOMEM_MAIN, ISP_TCTRL_CTRL, ++ ISPTCTRL_CTRL_DIVA_MASK, ++ divider << ISPTCTRL_CTRL_DIVA_SHIFT); ++ break; ++ case ISP_XCLK_B: ++ isp_reg_clr_set(xclk->isp, OMAP3_ISP_IOMEM_MAIN, ISP_TCTRL_CTRL, ++ ISPTCTRL_CTRL_DIVB_MASK, ++ divider << ISPTCTRL_CTRL_DIVB_SHIFT); ++ break; ++ } ++} ++ ++static int isp_xclk_prepare(struct clk_hw *hw) ++{ ++ struct isp_xclk *xclk = to_isp_xclk(hw); ++ ++ omap3isp_get(xclk->isp); ++ ++ return 0; ++} ++ ++static void isp_xclk_unprepare(struct clk_hw *hw) ++{ ++ struct isp_xclk *xclk = to_isp_xclk(hw); ++ ++ omap3isp_put(xclk->isp); ++} ++ ++static int isp_xclk_enable(struct clk_hw *hw) ++{ ++ struct isp_xclk *xclk = to_isp_xclk(hw); ++ unsigned long flags; ++ ++ spin_lock_irqsave(&xclk->lock, flags); ++ isp_xclk_update(xclk, xclk->divider); ++ xclk->enabled = true; ++ spin_unlock_irqrestore(&xclk->lock, flags); ++ ++ return 0; ++} ++ ++static void isp_xclk_disable(struct clk_hw *hw) ++{ ++ struct isp_xclk *xclk = to_isp_xclk(hw); ++ unsigned long flags; ++ ++ spin_lock_irqsave(&xclk->lock, flags); ++ isp_xclk_update(xclk, 0); ++ xclk->enabled = false; ++ spin_unlock_irqrestore(&xclk->lock, flags); ++} ++ ++static unsigned long isp_xclk_recalc_rate(struct clk_hw *hw, ++ unsigned long parent_rate) ++{ ++ struct isp_xclk *xclk = to_isp_xclk(hw); ++ ++ return parent_rate / xclk->divider; ++} ++ ++static u32 isp_xclk_calc_divider(unsigned long *rate, unsigned long parent_rate) ++{ ++ u32 divider; ++ ++ if (*rate >= parent_rate) { ++ *rate = parent_rate; ++ return ISPTCTRL_CTRL_DIV_BYPASS; ++ } ++ ++ divider = DIV_ROUND_CLOSEST(parent_rate, *rate); ++ if (divider >= ISPTCTRL_CTRL_DIV_BYPASS) ++ divider = ISPTCTRL_CTRL_DIV_BYPASS - 1; ++ ++ *rate = parent_rate / divider; ++ return divider; ++} ++ ++static long isp_xclk_round_rate(struct clk_hw *hw, unsigned long rate, ++ unsigned long *parent_rate) ++{ ++ isp_xclk_calc_divider(&rate, *parent_rate); ++ return rate; ++} ++ ++static int isp_xclk_set_rate(struct clk_hw *hw, unsigned long rate, ++ unsigned long parent_rate) ++{ ++ struct isp_xclk *xclk = to_isp_xclk(hw); ++ unsigned long flags; ++ u32 divider; ++ ++ divider = isp_xclk_calc_divider(&rate, parent_rate); ++ ++ spin_lock_irqsave(&xclk->lock, flags); ++ ++ xclk->divider = divider; ++ if (xclk->enabled) ++ isp_xclk_update(xclk, divider); ++ ++ spin_unlock_irqrestore(&xclk->lock, flags); ++ ++ dev_dbg(xclk->isp->dev, "%s: cam_xclk%c set to %lu Hz (div %u)\n", ++ __func__, xclk->id == ISP_XCLK_A ? 'a' : 'b', rate, divider); ++ return 0; ++} ++ ++static const struct clk_ops isp_xclk_ops = { ++ .prepare = isp_xclk_prepare, ++ .unprepare = isp_xclk_unprepare, ++ .enable = isp_xclk_enable, ++ .disable = isp_xclk_disable, ++ .recalc_rate = isp_xclk_recalc_rate, ++ .round_rate = isp_xclk_round_rate, ++ .set_rate = isp_xclk_set_rate, ++}; ++ ++static const char *isp_xclk_parent_name = "cam_mclk"; ++ ++static const struct clk_init_data isp_xclk_init_data = { ++ .name = "cam_xclk", ++ .ops = &isp_xclk_ops, ++ .parent_names = &isp_xclk_parent_name, ++ .num_parents = 1, ++}; ++ ++static int isp_xclk_init(struct isp_device *isp) ++{ ++ struct isp_platform_data *pdata = isp->pdata; ++ struct clk_init_data init; ++ unsigned int i; ++ ++ for (i = 0; i < ARRAY_SIZE(isp->xclks); ++i) { ++ struct isp_xclk *xclk = &isp->xclks[i]; ++ struct clk *clk; ++ ++ xclk->isp = isp; ++ xclk->id = i == 0 ? ISP_XCLK_A : ISP_XCLK_B; ++ xclk->divider = 1; ++ spin_lock_init(&xclk->lock); ++ ++ init.name = i == 0 ? "cam_xclka" : "cam_xclkb"; ++ init.ops = &isp_xclk_ops; ++ init.parent_names = &isp_xclk_parent_name; ++ init.num_parents = 1; ++ ++ xclk->hw.init = &init; ++ ++ clk = devm_clk_register(isp->dev, &xclk->hw); ++ if (IS_ERR(clk)) ++ return PTR_ERR(clk); ++ ++ if (pdata->xclks[i].con_id == NULL && ++ pdata->xclks[i].dev_id == NULL) ++ continue; ++ ++ xclk->lookup = kzalloc(sizeof(*xclk->lookup), GFP_KERNEL); ++ if (xclk->lookup == NULL) ++ return -ENOMEM; ++ ++ xclk->lookup->con_id = pdata->xclks[i].con_id; ++ xclk->lookup->dev_id = pdata->xclks[i].dev_id; ++ xclk->lookup->clk = clk; ++ ++ clkdev_add(xclk->lookup); ++ } ++ ++ return 0; ++} ++ ++static void isp_xclk_cleanup(struct isp_device *isp) ++{ ++ unsigned int i; ++ ++ for (i = 0; i < ARRAY_SIZE(isp->xclks); ++i) { ++ struct isp_xclk *xclk = &isp->xclks[i]; ++ ++ if (xclk->lookup) ++ clkdev_drop(xclk->lookup); ++ } ++} ++ ++/* ----------------------------------------------------------------------------- ++ * Interrupts ++ */ ++ + /* + * isp_enable_interrupts - Enable ISP interrupts. + * @isp: OMAP3 ISP device +@@ -180,80 +376,6 @@ static void isp_disable_interrupts(struct isp_device *isp) + isp_reg_writel(isp, 0, OMAP3_ISP_IOMEM_MAIN, ISP_IRQ0ENABLE); + } + +-/** +- * isp_set_xclk - Configures the specified cam_xclk to the desired frequency. +- * @isp: OMAP3 ISP device +- * @xclk: Desired frequency of the clock in Hz. 0 = stable low, 1 is stable high +- * @xclksel: XCLK to configure (0 = A, 1 = B). +- * +- * Configures the specified MCLK divisor in the ISP timing control register +- * (TCTRL_CTRL) to generate the desired xclk clock value. +- * +- * Divisor = cam_mclk_hz / xclk +- * +- * Returns the final frequency that is actually being generated +- **/ +-static u32 isp_set_xclk(struct isp_device *isp, u32 xclk, u8 xclksel) +-{ +- u32 divisor; +- u32 currentxclk; +- unsigned long mclk_hz; +- +- if (!omap3isp_get(isp)) +- return 0; +- +- mclk_hz = clk_get_rate(isp->clock[ISP_CLK_CAM_MCLK]); +- +- if (xclk >= mclk_hz) { +- divisor = ISPTCTRL_CTRL_DIV_BYPASS; +- currentxclk = mclk_hz; +- } else if (xclk >= 2) { +- divisor = mclk_hz / xclk; +- if (divisor >= ISPTCTRL_CTRL_DIV_BYPASS) +- divisor = ISPTCTRL_CTRL_DIV_BYPASS - 1; +- currentxclk = mclk_hz / divisor; +- } else { +- divisor = xclk; +- currentxclk = 0; +- } +- +- switch (xclksel) { +- case ISP_XCLK_A: +- isp_reg_clr_set(isp, OMAP3_ISP_IOMEM_MAIN, ISP_TCTRL_CTRL, +- ISPTCTRL_CTRL_DIVA_MASK, +- divisor << ISPTCTRL_CTRL_DIVA_SHIFT); +- dev_dbg(isp->dev, "isp_set_xclk(): cam_xclka set to %d Hz\n", +- currentxclk); +- break; +- case ISP_XCLK_B: +- isp_reg_clr_set(isp, OMAP3_ISP_IOMEM_MAIN, ISP_TCTRL_CTRL, +- ISPTCTRL_CTRL_DIVB_MASK, +- divisor << ISPTCTRL_CTRL_DIVB_SHIFT); +- dev_dbg(isp->dev, "isp_set_xclk(): cam_xclkb set to %d Hz\n", +- currentxclk); +- break; +- case ISP_XCLK_NONE: +- default: +- omap3isp_put(isp); +- dev_dbg(isp->dev, "ISP_ERR: isp_set_xclk(): Invalid requested " +- "xclk. Must be 0 (A) or 1 (B).\n"); +- return -EINVAL; +- } +- +- /* Do we go from stable whatever to clock? */ +- if (divisor >= 2 && isp->xclk_divisor[xclksel - 1] < 2) +- omap3isp_get(isp); +- /* Stopping the clock. */ +- else if (divisor < 2 && isp->xclk_divisor[xclksel - 1] >= 2) +- omap3isp_put(isp); +- +- isp->xclk_divisor[xclksel - 1] = divisor; +- +- omap3isp_put(isp); +- +- return currentxclk; +-} +- + /* + * isp_core_init - ISP core settings + * @isp: OMAP3 ISP device +@@ -1969,6 +2091,7 @@ static int isp_remove(struct platform_device *pdev) + + isp_unregister_entities(isp); + isp_cleanup_modules(isp); ++ isp_xclk_cleanup(isp); + + __omap3isp_get(isp, false); + iommu_detach_device(isp->domain, &pdev->dev); +@@ -2042,7 +2165,6 @@ static int isp_probe(struct platform_device *pdev) + } + + isp->autoidle = autoidle; +- isp->platform_cb.set_xclk = isp_set_xclk; + + mutex_init(&isp->isp_mutex); + spin_lock_init(&isp->stat_lock); +@@ -2093,6 +2215,10 @@ static int isp_probe(struct platform_device *pdev) + if (ret < 0) + goto error_isp; + ++ ret = isp_xclk_init(isp); ++ if (ret < 0) ++ goto error_isp; ++ + /* Memory resources */ + for (m = 0; m < ARRAY_SIZE(isp_res_maps); m++) + if (isp->revision == isp_res_maps[m].isp_rev) +@@ -2162,6 +2288,7 @@ detach_dev: + free_domain: + iommu_domain_free(isp->domain); + error_isp: ++ isp_xclk_cleanup(isp); + omap3isp_put(isp); + error: + platform_set_drvdata(pdev, NULL); +diff --git a/drivers/media/platform/omap3isp/isp.h b/drivers/media/platform/omap3isp/isp.h +index c77e1f2..cd3eff4 100644 +--- a/drivers/media/platform/omap3isp/isp.h ++++ b/drivers/media/platform/omap3isp/isp.h +@@ -29,6 +29,7 @@ + + #include <media/omap3isp.h> + #include <media/v4l2-device.h> ++#include <linux/clk-provider.h> + #include <linux/device.h> + #include <linux/io.h> + #include <linux/iommu.h> +@@ -125,8 +126,20 @@ struct isp_reg { + u32 val; + }; + +-struct isp_platform_callback { +- u32 (*set_xclk)(struct isp_device *isp, u32 xclk, u8 xclksel); ++enum isp_xclk_id { ++ ISP_XCLK_A, ++ ISP_XCLK_B, ++}; ++ ++struct isp_xclk { ++ struct isp_device *isp; ++ struct clk_hw hw; ++ struct clk_lookup *lookup; ++ enum isp_xclk_id id; ++ ++ spinlock_t lock; /* Protects enabled and divider */ ++ bool enabled; ++ unsigned int divider; + }; + + /* +@@ -149,6 +162,7 @@ struct isp_platform_callback { + * @cam_mclk: Pointer to camera functional clock structure. + * @csi2_fck: Pointer to camera CSI2 complexIO clock structure. + * @l3_ick: Pointer to OMAP3 L3 bus interface clock. ++ * @xclks: External clocks provided by the ISP + * @irq: Currently attached ISP ISR callbacks information structure. + * @isp_af: Pointer to current settings for ISP AutoFocus SCM. + * @isp_hist: Pointer to current settings for ISP Histogram SCM. +@@ -185,12 +199,12 @@ struct isp_device { + int has_context; + int ref_count; + unsigned int autoidle; +- u32 xclk_divisor[2]; /* Two clocks, a and b. */ + #define ISP_CLK_CAM_ICK 0 + #define ISP_CLK_CAM_MCLK 1 + #define ISP_CLK_CSI2_FCK 2 + #define ISP_CLK_L3_ICK 3 + struct clk *clock[4]; ++ struct isp_xclk xclks[2]; + + /* ISP modules */ + struct ispstat isp_af; +@@ -209,8 +223,6 @@ struct isp_device { + unsigned int subclk_resources; + + struct iommu_domain *domain; +- +- struct isp_platform_callback platform_cb; + }; + + #define v4l2_dev_to_isp_device(dev) \ +diff --git a/include/media/omap3isp.h b/include/media/omap3isp.h +index 9584269..c9d06d9 100644 +--- a/include/media/omap3isp.h ++++ b/include/media/omap3isp.h +@@ -29,10 +29,6 @@ + struct i2c_board_info; + struct isp_device; + +-#define ISP_XCLK_NONE 0 +-#define ISP_XCLK_A 1 +-#define ISP_XCLK_B 2 +- + enum isp_interface_type { + ISP_INTERFACE_PARALLEL, + ISP_INTERFACE_CSI2A_PHY2, +@@ -153,7 +149,13 @@ struct isp_v4l2_subdevs_group { + } bus; /* gcc < 4.6.0 chokes on anonymous union initializers */ + }; + ++struct isp_platform_xclk { ++ const char *dev_id; ++ const char *con_id; ++}; ++ + struct isp_platform_data { ++ struct isp_platform_xclk xclks[2]; + struct isp_v4l2_subdevs_group *subdevs; + void (*set_constraints)(struct isp_device *isp, bool enable); + }; +-- +1.7.10.4 + diff --git a/src/patches/kernel/omap/3isp/0002-mt9m032-Fix-PLL-setup.patch b/src/patches/kernel/omap/3isp/0002-mt9m032-Fix-PLL-setup.patch new file mode 100644 index 0000000..9d2b19c --- /dev/null +++ b/src/patches/kernel/omap/3isp/0002-mt9m032-Fix-PLL-setup.patch @@ -0,0 +1,91 @@ +From 7c44c8a989ad01bd7cd02370d4ca4a742db218be Mon Sep 17 00:00:00 2001 +From: Laurent Pinchart laurent.pinchart@ideasonboard.com +Date: Tue, 25 Sep 2012 15:46:34 +0200 +Subject: [PATCH 2/6] mt9m032: Fix PLL setup + +The MT9M032 PLL was assumed to be identical to the MT9P031 PLL but +differs significantly. Update the registers definitions and PLL limits +according to the datasheet. + +Signed-off-by: Laurent Pinchart laurent.pinchart@ideasonboard.com +--- + drivers/media/i2c/mt9m032.c | 24 +++++++++++++----------- + 1 file changed, 13 insertions(+), 11 deletions(-) + +diff --git a/drivers/media/i2c/mt9m032.c b/drivers/media/i2c/mt9m032.c +index f80c1d7e..30d755a 100644 +--- a/drivers/media/i2c/mt9m032.c ++++ b/drivers/media/i2c/mt9m032.c +@@ -87,7 +87,7 @@ + #define MT9M032_RESTART 0x0b + #define MT9M032_RESET 0x0d + #define MT9M032_PLL_CONFIG1 0x11 +-#define MT9M032_PLL_CONFIG1_OUTDIV_MASK 0x3f ++#define MT9M032_PLL_CONFIG1_PREDIV_MASK 0x3f + #define MT9M032_PLL_CONFIG1_MUL_SHIFT 8 + #define MT9M032_READ_MODE1 0x1e + #define MT9M032_READ_MODE2 0x20 +@@ -106,6 +106,8 @@ + #define MT9M032_GAIN_AMUL_SHIFT 6 + #define MT9M032_GAIN_ANALOG_MASK 0x3f + #define MT9M032_FORMATTER1 0x9e ++#define MT9M032_FORMATTER1_PLL_P1_6 (1 << 8) ++#define MT9M032_FORMATTER1_PARALLEL (1 << 12) + #define MT9M032_FORMATTER2 0x9f + #define MT9M032_FORMATTER2_DOUT_EN 0x1000 + #define MT9M032_FORMATTER2_PIXCLK_EN 0x2000 +@@ -121,8 +123,6 @@ + #define MT9P031_PLL_CONTROL_PWROFF 0x0050 + #define MT9P031_PLL_CONTROL_PWRON 0x0051 + #define MT9P031_PLL_CONTROL_USEPLL 0x0052 +-#define MT9P031_PLL_CONFIG2 0x11 +-#define MT9P031_PLL_CONFIG2_P1_DIV_MASK 0x1f + + struct mt9m032 { + struct v4l2_subdev subdev; +@@ -255,13 +255,14 @@ static int mt9m032_setup_pll(struct mt9m032 *sensor) + .n_max = 64, + .m_min = 16, + .m_max = 255, +- .p1_min = 1, +- .p1_max = 128, ++ .p1_min = 6, ++ .p1_max = 7, + }; + + struct i2c_client *client = v4l2_get_subdevdata(&sensor->subdev); + struct mt9m032_platform_data *pdata = sensor->pdata; + struct aptina_pll pll; ++ u16 reg_val; + int ret; + + pll.ext_clock = pdata->ext_clock; +@@ -274,18 +275,19 @@ static int mt9m032_setup_pll(struct mt9m032 *sensor) + sensor->pix_clock = pdata->pix_clock; + + ret = mt9m032_write(client, MT9M032_PLL_CONFIG1, +- (pll.m << MT9M032_PLL_CONFIG1_MUL_SHIFT) +- | (pll.p1 - 1)); +- if (!ret) +- ret = mt9m032_write(client, MT9P031_PLL_CONFIG2, pll.n - 1); ++ (pll.m << MT9M032_PLL_CONFIG1_MUL_SHIFT) | ++ ((pll.n - 1) & MT9M032_PLL_CONFIG1_PREDIV_MASK)); + if (!ret) + ret = mt9m032_write(client, MT9P031_PLL_CONTROL, + MT9P031_PLL_CONTROL_PWRON | + MT9P031_PLL_CONTROL_USEPLL); + if (!ret) /* more reserved, Continuous, Master Mode */ + ret = mt9m032_write(client, MT9M032_READ_MODE1, 0x8006); +- if (!ret) /* Set 14-bit mode, select 7 divider */ +- ret = mt9m032_write(client, MT9M032_FORMATTER1, 0x111e); ++ if (!ret) { ++ reg_val = (pll.p1 == 6 ? MT9M032_FORMATTER1_PLL_P1_6 : 0) ++ | MT9M032_FORMATTER1_PARALLEL | 0x001e; /* 14-bit */ ++ ret = mt9m032_write(client, MT9M032_FORMATTER1, reg_val); ++ } + + return ret; + } +-- +1.7.10.4 + diff --git a/src/patches/kernel/omap/3isp/0003-mt9m032-Define-MT9M032_READ_MODE1-bits.patch b/src/patches/kernel/omap/3isp/0003-mt9m032-Define-MT9M032_READ_MODE1-bits.patch new file mode 100644 index 0000000..c80e876 --- /dev/null +++ b/src/patches/kernel/omap/3isp/0003-mt9m032-Define-MT9M032_READ_MODE1-bits.patch @@ -0,0 +1,55 @@ +From 1115becbb4875d62abb10f94a9510c81f376606f Mon Sep 17 00:00:00 2001 +From: Laurent Pinchart laurent.pinchart@ideasonboard.com +Date: Wed, 26 Sep 2012 10:54:17 +0200 +Subject: [PATCH 3/6] mt9m032: Define MT9M032_READ_MODE1 bits + +Replace hardcoded values with #define's. + +Signed-off-by: Laurent Pinchart laurent.pinchart@ideasonboard.com +--- + drivers/media/i2c/mt9m032.c | 22 +++++++++++++++++++++- + 1 file changed, 21 insertions(+), 1 deletion(-) + +diff --git a/drivers/media/i2c/mt9m032.c b/drivers/media/i2c/mt9m032.c +index 30d755a..de150d3 100644 +--- a/drivers/media/i2c/mt9m032.c ++++ b/drivers/media/i2c/mt9m032.c +@@ -90,6 +90,24 @@ + #define MT9M032_PLL_CONFIG1_PREDIV_MASK 0x3f + #define MT9M032_PLL_CONFIG1_MUL_SHIFT 8 + #define MT9M032_READ_MODE1 0x1e ++#define MT9M032_READ_MODE1_OUTPUT_BAD_FRAMES (1 << 13) ++#define MT9M032_READ_MODE1_MAINTAIN_FRAME_RATE (1 << 12) ++#define MT9M032_READ_MODE1_XOR_LINE_VALID (1 << 11) ++#define MT9M032_READ_MODE1_CONT_LINE_VALID (1 << 10) ++#define MT9M032_READ_MODE1_INVERT_TRIGGER (1 << 9) ++#define MT9M032_READ_MODE1_SNAPSHOT (1 << 8) ++#define MT9M032_READ_MODE1_GLOBAL_RESET (1 << 7) ++#define MT9M032_READ_MODE1_BULB_EXPOSURE (1 << 6) ++#define MT9M032_READ_MODE1_INVERT_STROBE (1 << 5) ++#define MT9M032_READ_MODE1_STROBE_ENABLE (1 << 4) ++#define MT9M032_READ_MODE1_STROBE_START_TRIG1 (0 << 2) ++#define MT9M032_READ_MODE1_STROBE_START_EXP (1 << 2) ++#define MT9M032_READ_MODE1_STROBE_START_SHUTTER (2 << 2) ++#define MT9M032_READ_MODE1_STROBE_START_TRIG2 (3 << 2) ++#define MT9M032_READ_MODE1_STROBE_END_TRIG1 (0 << 0) ++#define MT9M032_READ_MODE1_STROBE_END_EXP (1 << 0) ++#define MT9M032_READ_MODE1_STROBE_END_SHUTTER (2 << 0) ++#define MT9M032_READ_MODE1_STROBE_END_TRIG2 (3 << 0) + #define MT9M032_READ_MODE2 0x20 + #define MT9M032_READ_MODE2_VFLIP_SHIFT 15 + #define MT9M032_READ_MODE2_HFLIP_SHIFT 14 +@@ -282,7 +300,9 @@ static int mt9m032_setup_pll(struct mt9m032 *sensor) + MT9P031_PLL_CONTROL_PWRON | + MT9P031_PLL_CONTROL_USEPLL); + if (!ret) /* more reserved, Continuous, Master Mode */ +- ret = mt9m032_write(client, MT9M032_READ_MODE1, 0x8006); ++ ret = mt9m032_write(client, MT9M032_READ_MODE1, 0x8000 | ++ MT9M032_READ_MODE1_STROBE_START_EXP | ++ MT9M032_READ_MODE1_STROBE_END_SHUTTER); + if (!ret) { + reg_val = (pll.p1 == 6 ? MT9M032_FORMATTER1_PLL_P1_6 : 0) + | MT9M032_FORMATTER1_PARALLEL | 0x001e; /* 14-bit */ +-- +1.7.10.4 + diff --git a/src/patches/kernel/omap/3isp/0004-mt9p031-Use-devm_-managed-helpers.patch b/src/patches/kernel/omap/3isp/0004-mt9p031-Use-devm_-managed-helpers.patch new file mode 100644 index 0000000..bcc4360 --- /dev/null +++ b/src/patches/kernel/omap/3isp/0004-mt9p031-Use-devm_-managed-helpers.patch @@ -0,0 +1,62 @@ +From d3f188f38eaa34acf6375d5d88fe27971aae1170 Mon Sep 17 00:00:00 2001 +From: Laurent Pinchart laurent.pinchart@ideasonboard.com +Date: Fri, 21 Dec 2012 20:34:06 +0100 +Subject: [PATCH 4/6] mt9p031: Use devm_* managed helpers + +Replace kzalloc and gpio_request_one by their managed equivalents. + +Signed-off-by: Laurent Pinchart laurent.pinchart@ideasonboard.com +--- + drivers/media/i2c/mt9p031.c | 13 +++---------- + 1 file changed, 3 insertions(+), 10 deletions(-) + +diff --git a/drivers/media/i2c/mt9p031.c b/drivers/media/i2c/mt9p031.c +index e328332..e0bad59 100644 +--- a/drivers/media/i2c/mt9p031.c ++++ b/drivers/media/i2c/mt9p031.c +@@ -927,7 +927,7 @@ static int mt9p031_probe(struct i2c_client *client, + return -EIO; + } + +- mt9p031 = kzalloc(sizeof(*mt9p031), GFP_KERNEL); ++ mt9p031 = devm_kzalloc(&client->dev, sizeof(*mt9p031), GFP_KERNEL); + if (mt9p031 == NULL) + return -ENOMEM; + +@@ -1001,8 +1001,8 @@ static int mt9p031_probe(struct i2c_client *client, + mt9p031->format.colorspace = V4L2_COLORSPACE_SRGB; + + if (pdata->reset != -1) { +- ret = gpio_request_one(pdata->reset, GPIOF_OUT_INIT_LOW, +- "mt9p031_rst"); ++ ret = devm_gpio_request_one(&client->dev, pdata->reset, ++ GPIOF_OUT_INIT_LOW, "mt9p031_rst"); + if (ret < 0) + goto done; + +@@ -1013,12 +1013,8 @@ static int mt9p031_probe(struct i2c_client *client, + + done: + if (ret < 0) { +- if (mt9p031->reset != -1) +- gpio_free(mt9p031->reset); +- + v4l2_ctrl_handler_free(&mt9p031->ctrls); + media_entity_cleanup(&mt9p031->subdev.entity); +- kfree(mt9p031); + } + + return ret; +@@ -1032,9 +1028,6 @@ static int mt9p031_remove(struct i2c_client *client) + v4l2_ctrl_handler_free(&mt9p031->ctrls); + v4l2_device_unregister_subdev(subdev); + media_entity_cleanup(&subdev->entity); +- if (mt9p031->reset != -1) +- gpio_free(mt9p031->reset); +- kfree(mt9p031); + + return 0; + } +-- +1.7.10.4 + diff --git a/src/patches/kernel/omap/3isp/0005-mt9p031-Add-support-for-regulators.patch b/src/patches/kernel/omap/3isp/0005-mt9p031-Add-support-for-regulators.patch new file mode 100644 index 0000000..57c80fd --- /dev/null +++ b/src/patches/kernel/omap/3isp/0005-mt9p031-Add-support-for-regulators.patch @@ -0,0 +1,82 @@ +From 9ff2bc0c9458f0eecde6d9b52a899fd2bb1dd3a3 Mon Sep 17 00:00:00 2001 +From: Laurent Pinchart laurent.pinchart@ideasonboard.com +Date: Tue, 8 May 2012 15:10:36 +0200 +Subject: [PATCH 5/6] mt9p031: Add support for regulators + +Enable the regulators when powering the sensor up, and disable them when +powering it down. + +The regulators are mandatory. Boards that don't allow controlling the +sensor power lines must provide fixed voltage regulators. + +Signed-off-by: Laurent Pinchart laurent.pinchart@ideasonboard.com +--- + drivers/media/i2c/mt9p031.c | 24 ++++++++++++++++++++++++ + 1 file changed, 24 insertions(+) + +diff --git a/drivers/media/i2c/mt9p031.c b/drivers/media/i2c/mt9p031.c +index e0bad59..ecf4492 100644 +--- a/drivers/media/i2c/mt9p031.c ++++ b/drivers/media/i2c/mt9p031.c +@@ -19,6 +19,7 @@ + #include <linux/i2c.h> + #include <linux/log2.h> + #include <linux/pm.h> ++#include <linux/regulator/consumer.h> + #include <linux/slab.h> + #include <linux/videodev2.h> + +@@ -121,6 +122,10 @@ struct mt9p031 { + struct mutex power_lock; /* lock to protect power_count */ + int power_count; + ++ struct regulator *vaa; ++ struct regulator *vdd; ++ struct regulator *vdd_io; ++ + enum mt9p031_model model; + struct aptina_pll pll; + int reset; +@@ -264,6 +269,11 @@ static int mt9p031_power_on(struct mt9p031 *mt9p031) + usleep_range(1000, 2000); + } + ++ /* Bring up the supplies */ ++ regulator_enable(mt9p031->vdd); ++ regulator_enable(mt9p031->vdd_io); ++ regulator_enable(mt9p031->vaa); ++ + /* Emable clock */ + if (mt9p031->pdata->set_xclk) + mt9p031->pdata->set_xclk(&mt9p031->subdev, +@@ -285,6 +295,10 @@ static void mt9p031_power_off(struct mt9p031 *mt9p031) + usleep_range(1000, 2000); + } + ++ regulator_disable(mt9p031->vaa); ++ regulator_disable(mt9p031->vdd_io); ++ regulator_disable(mt9p031->vdd); ++ + if (mt9p031->pdata->set_xclk) + mt9p031->pdata->set_xclk(&mt9p031->subdev, 0); + } +@@ -937,6 +951,16 @@ static int mt9p031_probe(struct i2c_client *client, + mt9p031->model = did->driver_data; + mt9p031->reset = -1; + ++ mt9p031->vaa = devm_regulator_get(&client->dev, "vaa"); ++ mt9p031->vdd = devm_regulator_get(&client->dev, "vdd"); ++ mt9p031->vdd_io = devm_regulator_get(&client->dev, "vdd_io"); ++ ++ if (IS_ERR(mt9p031->vaa) || IS_ERR(mt9p031->vdd) || ++ IS_ERR(mt9p031->vdd_io)) { ++ dev_err(&client->dev, "Unable to get regulators\n"); ++ return -ENODEV; ++ } ++ + v4l2_ctrl_handler_init(&mt9p031->ctrls, ARRAY_SIZE(mt9p031_ctrls) + 6); + + v4l2_ctrl_new_std(&mt9p031->ctrls, &mt9p031_ctrl_ops, +-- +1.7.10.4 + diff --git a/src/patches/kernel/omap/3isp/0006-mt9p031-Use-the-common-clock-framework.patch b/src/patches/kernel/omap/3isp/0006-mt9p031-Use-the-common-clock-framework.patch new file mode 100644 index 0000000..fc8d583 --- /dev/null +++ b/src/patches/kernel/omap/3isp/0006-mt9p031-Use-the-common-clock-framework.patch @@ -0,0 +1,110 @@ +From 6cd62f5ae305142c0490e80caa04f99f00029b68 Mon Sep 17 00:00:00 2001 +From: Laurent Pinchart laurent.pinchart@ideasonboard.com +Date: Fri, 21 Dec 2012 20:11:55 +0100 +Subject: [PATCH 6/6] mt9p031: Use the common clock framework + +Configure the device external clock using the common clock framework +instead of a board code callback function. + +Signed-off-by: Laurent Pinchart laurent.pinchart@ideasonboard.com +Acked-by: Sakari Ailus sakari.ailus@iki.fi +--- + drivers/media/i2c/mt9p031.c | 21 ++++++++++++++------- + include/media/mt9p031.h | 2 -- + 2 files changed, 14 insertions(+), 9 deletions(-) + +diff --git a/drivers/media/i2c/mt9p031.c b/drivers/media/i2c/mt9p031.c +index ecf4492..28cf95b 100644 +--- a/drivers/media/i2c/mt9p031.c ++++ b/drivers/media/i2c/mt9p031.c +@@ -12,6 +12,7 @@ + * published by the Free Software Foundation. + */ + ++#include <linux/clk.h> + #include <linux/delay.h> + #include <linux/device.h> + #include <linux/gpio.h> +@@ -122,6 +123,7 @@ struct mt9p031 { + struct mutex power_lock; /* lock to protect power_count */ + int power_count; + ++ struct clk *clk; + struct regulator *vaa; + struct regulator *vdd; + struct regulator *vdd_io; +@@ -200,7 +202,7 @@ static int mt9p031_reset(struct mt9p031 *mt9p031) + 0); + } + +-static int mt9p031_pll_setup(struct mt9p031 *mt9p031) ++static int mt9p031_clk_setup(struct mt9p031 *mt9p031) + { + static const struct aptina_pll_limits limits = { + .ext_clock_min = 6000000, +@@ -221,6 +223,12 @@ static int mt9p031_pll_setup(struct mt9p031 *mt9p031) + struct i2c_client *client = v4l2_get_subdevdata(&mt9p031->subdev); + struct mt9p031_platform_data *pdata = mt9p031->pdata; + ++ mt9p031->clk = devm_clk_get(&client->dev, NULL); ++ if (IS_ERR(mt9p031->clk)) ++ return PTR_ERR(mt9p031->clk); ++ ++ clk_set_rate(mt9p031->clk, pdata->ext_freq); ++ + mt9p031->pll.ext_clock = pdata->ext_freq; + mt9p031->pll.pix_clock = pdata->target_freq; + +@@ -275,9 +283,8 @@ static int mt9p031_power_on(struct mt9p031 *mt9p031) + regulator_enable(mt9p031->vaa); + + /* Emable clock */ +- if (mt9p031->pdata->set_xclk) +- mt9p031->pdata->set_xclk(&mt9p031->subdev, +- mt9p031->pdata->ext_freq); ++ if (mt9p031->clk) ++ clk_prepare_enable(mt9p031->clk); + + /* Now RESET_BAR must be high */ + if (mt9p031->reset != -1) { +@@ -299,8 +306,8 @@ static void mt9p031_power_off(struct mt9p031 *mt9p031) + regulator_disable(mt9p031->vdd_io); + regulator_disable(mt9p031->vdd); + +- if (mt9p031->pdata->set_xclk) +- mt9p031->pdata->set_xclk(&mt9p031->subdev, 0); ++ if (mt9p031->clk) ++ clk_disable_unprepare(mt9p031->clk); + } + + static int __mt9p031_set_power(struct mt9p031 *mt9p031, bool on) +@@ -1033,7 +1040,7 @@ static int mt9p031_probe(struct i2c_client *client, + mt9p031->reset = pdata->reset; + } + +- ret = mt9p031_pll_setup(mt9p031); ++ ret = mt9p031_clk_setup(mt9p031); + + done: + if (ret < 0) { +diff --git a/include/media/mt9p031.h b/include/media/mt9p031.h +index 0c97b19..b1e63f2 100644 +--- a/include/media/mt9p031.h ++++ b/include/media/mt9p031.h +@@ -5,13 +5,11 @@ struct v4l2_subdev; + + /* + * struct mt9p031_platform_data - MT9P031 platform data +- * @set_xclk: Clock frequency set callback + * @reset: Chip reset GPIO (set to -1 if not used) + * @ext_freq: Input clock frequency + * @target_freq: Pixel clock frequency + */ + struct mt9p031_platform_data { +- int (*set_xclk)(struct v4l2_subdev *subdev, int hz); + int reset; + int ext_freq; + int target_freq; +-- +1.7.10.4 + diff --git a/src/patches/kernel/omap/beagle/0001-meego-modedb-add-Toshiba-LTA070B220F-800x480-support.patch b/src/patches/kernel/omap/beagle/0001-meego-modedb-add-Toshiba-LTA070B220F-800x480-support.patch new file mode 100644 index 0000000..34d6034 --- /dev/null +++ b/src/patches/kernel/omap/beagle/0001-meego-modedb-add-Toshiba-LTA070B220F-800x480-support.patch @@ -0,0 +1,30 @@ +From 6ac98647956cbff190954b4cac6bd71fdbb8647b Mon Sep 17 00:00:00 2001 +From: Robert Nelson robertcnelson@gmail.com +Date: Wed, 23 Mar 2011 08:37:54 -0500 +Subject: [PATCH 1/5] meego: modedb add Toshiba LTA070B220F 800x480 support + + from http://wiki.meego.com/ARM/Meego_on_Beagleboard_from_scratch + +Signed-off-by: Robert Nelson robertcnelson@gmail.com +--- + drivers/video/modedb.c | 4 ++++ + 1 files changed, 4 insertions(+), 0 deletions(-) + +diff --git a/drivers/video/modedb.c b/drivers/video/modedb.c +index 5b686de..69ad1ec 100644 +--- a/drivers/video/modedb.c ++++ b/drivers/video/modedb.c +@@ -293,6 +293,10 @@ static const struct fb_videomode modedb[] = { + /* 864x480 @ 60 Hz, 35.15 kHz hsync */ + { NULL, 60, 864, 480, 27777, 1, 1, 1, 1, 0, 0, + 0, FB_VMODE_NONINTERLACED }, ++ ++ /* 800x480 @ 60 Hz, Toshiba LTA070B220F 7 inch LCD */ ++ { NULL, 60, 800, 480, 32787, 48, 80, 33, 31, 32, 2, ++ FB_SYNC_HOR_HIGH_ACT|FB_SYNC_VERT_HIGH_ACT, FB_VMODE_NONINTERLACED }, + }; + + #ifdef CONFIG_FB_MODE_HELPERS +-- +1.7.7.6 + diff --git a/src/patches/kernel/omap/beagle/0002-backlight-Add-TLC59108-backlight-control-driver.patch b/src/patches/kernel/omap/beagle/0002-backlight-Add-TLC59108-backlight-control-driver.patch new file mode 100644 index 0000000..ce4df82 --- /dev/null +++ b/src/patches/kernel/omap/beagle/0002-backlight-Add-TLC59108-backlight-control-driver.patch @@ -0,0 +1,217 @@ +From e989473bea15beef8d480b822a619e7b8fca860c Mon Sep 17 00:00:00 2001 +From: "Manjunathappa, Prakash" prakash.pm@ti.com +Date: Mon, 1 Aug 2011 18:25:11 +0530 +Subject: [PATCH 2/5] backlight: Add TLC59108 backlight control driver + +This patch adds support for I2C configurable TLC59108 backlight +control driver. + +Signed-off-by: Manjunathappa, Prakash prakash.pm@ti.com +Signed-off-by: Vaibhav Hiremath hvaibhav@ti.com +--- + drivers/video/backlight/Kconfig | 8 ++ + drivers/video/backlight/Makefile | 1 + + drivers/video/backlight/tlc59108.c | 160 ++++++++++++++++++++++++++++++++++++ + 3 files changed, 169 insertions(+) + create mode 100644 drivers/video/backlight/tlc59108.c + +diff --git a/drivers/video/backlight/Kconfig b/drivers/video/backlight/Kconfig +index db10d01..04a2275 100644 +--- a/drivers/video/backlight/Kconfig ++++ b/drivers/video/backlight/Kconfig +@@ -418,6 +418,14 @@ config BACKLIGHT_AS3711 + If you have an Austrian Microsystems AS3711 say Y to enable the + backlight driver. + ++config BACKLIGHT_TLC59108 ++ tristate "TLC59108 LCD Backlight Driver" ++ depends on I2C && BACKLIGHT_CLASS_DEVICE ++ default n ++ help ++ If you have an LCD Panel with backlight control via TLC59108, ++ say Y to enable its LCD control driver. ++ + endif # BACKLIGHT_CLASS_DEVICE + + endif # BACKLIGHT_LCD_SUPPORT +diff --git a/drivers/video/backlight/Makefile b/drivers/video/backlight/Makefile +index 96c4d62..3687852 100644 +--- a/drivers/video/backlight/Makefile ++++ b/drivers/video/backlight/Makefile +@@ -41,6 +41,7 @@ obj-$(CONFIG_BACKLIGHT_LP855X) += lp855x_bl.o + obj-$(CONFIG_BACKLIGHT_LP8788) += lp8788_bl.o + obj-$(CONFIG_BACKLIGHT_MAX8925) += max8925_bl.o + obj-$(CONFIG_BACKLIGHT_OMAP1) += omap1_bl.o ++obj-$(CONFIG_BACKLIGHT_TLC59108) += tlc59108.o + obj-$(CONFIG_BACKLIGHT_OT200) += ot200_bl.o + obj-$(CONFIG_BACKLIGHT_PANDORA) += pandora_bl.o + obj-$(CONFIG_BACKLIGHT_PCF50633) += pcf50633-backlight.o +diff --git a/drivers/video/backlight/tlc59108.c b/drivers/video/backlight/tlc59108.c +new file mode 100644 +index 0000000..4f4ea34 +--- /dev/null ++++ b/drivers/video/backlight/tlc59108.c +@@ -0,0 +1,160 @@ ++/* ++ * ti81xxhdmi_tlc59108.c ++ * ++ * Copyright (C) 2011 Texas Instruments ++ * Author: Senthil Natarajan ++ * ++ * tlc59108 HDMI Driver ++ * ++ * This program is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 as published by ++ * the Free Software Foundation. ++ * ++ * This program is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for ++ * more details. ++ * ++ * You should have received a copy of the GNU General Public License along with ++ * this program. If not, see http://www.gnu.org/licenses/. ++ * History: ++ * ++ * Senthil Natarajansenthil.n@ti.com July 2011 I2C driver for tlc59108 ++ * backlight control ++ */ ++ ++#include <linux/i2c.h> ++#include <linux/kernel.h> ++#include <linux/module.h> ++#include <linux/backlight.h> ++#include <linux/fb.h> ++ ++#define tlc59108_MODULE_NAME "tlc59108" ++#define TLC59108_MODE1 0x00 ++#define TLC59108_PWM2 0x04 ++#define TLC59108_LEDOUT0 0x0c ++#define TLC59108_LEDOUT1 0x0d ++#define TLC59108_MAX_BRIGHTNESS 0xFF ++ ++struct tlc59108_bl { ++ struct i2c_client *client; ++ struct backlight_device *bl; ++}; ++ ++static void tlc59108_bl_set_backlight(struct tlc59108_bl *data, int brightness) ++{ ++ /* Set Mode1 Register */ ++ i2c_smbus_write_byte_data(data->client, TLC59108_MODE1, 0x00); ++ ++ /* Set LEDOUT0 Register */ ++ i2c_smbus_write_byte_data(data->client, TLC59108_LEDOUT0, 0x21); ++ ++ /* Set Backlight Duty Cycle*/ ++ i2c_smbus_write_byte_data(data->client, TLC59108_PWM2, ++ brightness & 0xff); ++} ++ ++static int tlc59108_bl_get_brightness(struct backlight_device *dev) ++{ ++ struct backlight_properties *props = &dev->props; ++ ++ return props->brightness; ++} ++ ++static int tlc59108_bl_update_status(struct backlight_device *dev) ++{ ++ struct backlight_properties *props = &dev->props; ++ struct tlc59108_bl *data = dev_get_drvdata(&dev->dev); ++ int brightness = props->brightness; ++ ++ tlc59108_bl_set_backlight(data, brightness); ++ ++ return 0; ++} ++ ++static const struct backlight_ops bl_ops = { ++ .get_brightness = tlc59108_bl_get_brightness, ++ .update_status = tlc59108_bl_update_status, ++}; ++ ++static int tlc59108_probe(struct i2c_client *c, const struct i2c_device_id *id) ++{ ++ struct backlight_properties props; ++ struct tlc59108_bl *data = kzalloc(sizeof(struct tlc59108_bl), ++ GFP_KERNEL); ++ int ret = 0; ++ ++ if (!data) ++ return -ENOMEM; ++ ++ i2c_set_clientdata(c, data); ++ data->client = c; ++ ++ memset(&props, 0, sizeof(struct backlight_properties)); ++ props.max_brightness = TLC59108_MAX_BRIGHTNESS; ++ props.type = BACKLIGHT_RAW; ++ data->bl = backlight_device_register("tlc59108-bl", &c->dev, data, ++ &bl_ops, &props); ++ if (IS_ERR(data->bl)) { ++ ret = PTR_ERR(data->bl); ++ goto err_reg; ++ } ++ ++ data->bl->props.brightness = TLC59108_MAX_BRIGHTNESS; ++ ++ backlight_update_status(data->bl); ++ ++ return 0; ++ ++err_reg: ++ data->bl = NULL; ++ kfree(data); ++ return ret; ++} ++ ++static int tlc59108_remove(struct i2c_client *c) ++{ ++ struct tlc59108_bl *data = i2c_get_clientdata(c); ++ ++ backlight_device_unregister(data->bl); ++ data->bl = NULL; ++ ++ kfree(data); ++ ++ return 0; ++} ++ ++/* I2C Device ID table */ ++static const struct i2c_device_id tlc59108_id[] = { ++ { "tlc59108", 0 }, ++ { } ++}; ++MODULE_DEVICE_TABLE(i2c, tlc59108_id); ++ ++/* I2C driver data */ ++static struct i2c_driver tlc59108_driver = { ++ .driver = { ++ .owner = THIS_MODULE, ++ .name = tlc59108_MODULE_NAME, ++ }, ++ .probe = tlc59108_probe, ++ .remove = tlc59108_remove, ++ .id_table = tlc59108_id, ++}; ++ ++static int __init tlc59108_init(void) ++{ ++ return i2c_add_driver(&tlc59108_driver); ++} ++ ++static void __exit tlc59108_exit(void) ++{ ++ i2c_del_driver(&tlc59108_driver); ++} ++ ++module_init(tlc59108_init); ++module_exit(tlc59108_exit); ++ ++MODULE_DESCRIPTION("LCD/Backlight control for TLC59108"); ++MODULE_AUTHOR("Senthil Natarajan senthil.n@ti.com"); ++MODULE_LICENSE("GPL v2"); +-- +1.7.10.4 + diff --git a/src/patches/kernel/omap/beagle/0003-tlc59108-adjust-for-beagleboard-uLCD7.patch b/src/patches/kernel/omap/beagle/0003-tlc59108-adjust-for-beagleboard-uLCD7.patch new file mode 100644 index 0000000..5c9659b --- /dev/null +++ b/src/patches/kernel/omap/beagle/0003-tlc59108-adjust-for-beagleboard-uLCD7.patch @@ -0,0 +1,124 @@ +From 40cbddde06a9f0e1845810b904502f922fc3288f Mon Sep 17 00:00:00 2001 +From: Koen Kooi koen@dominion.thruhere.net +Date: Fri, 27 Apr 2012 21:30:00 +0200 +Subject: [PATCH 3/5] tlc59108: adjust for beagleboard+uLCD7 + +Signed-off-by: Koen Kooi koen@dominion.thruhere.net +--- + drivers/video/backlight/tlc59108.c | 46 ++++++++++++++++++++++++----------- + 1 files changed, 31 insertions(+), 15 deletions(-) + +diff --git a/drivers/video/backlight/tlc59108.c b/drivers/video/backlight/tlc59108.c +index 4f4ea34..40a21e7 100644 +--- a/drivers/video/backlight/tlc59108.c ++++ b/drivers/video/backlight/tlc59108.c +@@ -29,9 +29,16 @@ + #include <linux/backlight.h> + #include <linux/fb.h> + +-#define tlc59108_MODULE_NAME "tlc59108" + #define TLC59108_MODE1 0x00 +-#define TLC59108_PWM2 0x04 ++#define TLC59108_MODE2 0x01 ++#define TLC59108_PWM0 0x02 ++#define TLC59108_PWM1 0x03 ++#define TLC59108_PWM2 0x04 ++#define TLC59108_PWM3 0x05 ++#define TLC59108_PWM4 0x06 ++#define TLC59108_PWM5 0x07 ++#define TLC59108_PWM6 0x08 ++#define TLC59108_PWM7 0x09 + #define TLC59108_LEDOUT0 0x0c + #define TLC59108_LEDOUT1 0x0d + #define TLC59108_MAX_BRIGHTNESS 0xFF +@@ -43,15 +50,9 @@ struct tlc59108_bl { + + static void tlc59108_bl_set_backlight(struct tlc59108_bl *data, int brightness) + { +- /* Set Mode1 Register */ +- i2c_smbus_write_byte_data(data->client, TLC59108_MODE1, 0x00); +- +- /* Set LEDOUT0 Register */ +- i2c_smbus_write_byte_data(data->client, TLC59108_LEDOUT0, 0x21); +- + /* Set Backlight Duty Cycle*/ + i2c_smbus_write_byte_data(data->client, TLC59108_PWM2, +- brightness & 0xff); ++ 0xff - brightness ); + } + + static int tlc59108_bl_get_brightness(struct backlight_device *dev) +@@ -65,8 +66,18 @@ static int tlc59108_bl_update_status(struct backlight_device *dev) + { + struct backlight_properties *props = &dev->props; + struct tlc59108_bl *data = dev_get_drvdata(&dev->dev); ++ + int brightness = props->brightness; + ++ if (dev->props.state & BL_CORE_FBBLANK) { ++ brightness = 0; ++ /* Set LEDOUT0 Register */ ++ i2c_smbus_write_byte_data(data->client, TLC59108_LEDOUT0, 0x10); ++ } else { ++ /* Set LEDOUT0 Register */ ++ i2c_smbus_write_byte_data(data->client, TLC59108_LEDOUT0, 0x30); ++ } ++ + tlc59108_bl_set_backlight(data, brightness); + + return 0; +@@ -77,7 +88,7 @@ static const struct backlight_ops bl_ops = { + .update_status = tlc59108_bl_update_status, + }; + +-static int tlc59108_probe(struct i2c_client *c, const struct i2c_device_id *id) ++static int __devinit tlc59108_probe(struct i2c_client *c, const struct i2c_device_id *id) + { + struct backlight_properties props; + struct tlc59108_bl *data = kzalloc(sizeof(struct tlc59108_bl), +@@ -104,6 +115,11 @@ static int tlc59108_probe(struct i2c_client *c, const struct i2c_device_id *id) + + backlight_update_status(data->bl); + ++ i2c_smbus_write_byte_data(data->client, TLC59108_MODE1, 0x00); ++ i2c_smbus_write_byte_data(data->client, TLC59108_PWM2, 0x80); ++ i2c_smbus_write_byte_data(data->client, TLC59108_LEDOUT1, 0x05); ++ i2c_smbus_write_byte_data(data->client, TLC59108_LEDOUT1, 0x15); ++ + return 0; + + err_reg: +@@ -125,7 +141,7 @@ static int tlc59108_remove(struct i2c_client *c) + } + + /* I2C Device ID table */ +-static const struct i2c_device_id tlc59108_id[] = { ++static struct i2c_device_id tlc59108_id[] = { + { "tlc59108", 0 }, + { } + }; +@@ -134,12 +150,12 @@ MODULE_DEVICE_TABLE(i2c, tlc59108_id); + /* I2C driver data */ + static struct i2c_driver tlc59108_driver = { + .driver = { +- .owner = THIS_MODULE, +- .name = tlc59108_MODULE_NAME, ++ .owner = THIS_MODULE, ++ .name = "tlc59108" + }, ++ .id_table = tlc59108_id, + .probe = tlc59108_probe, + .remove = tlc59108_remove, +- .id_table = tlc59108_id, + }; + + static int __init tlc59108_init(void) +@@ -157,4 +173,4 @@ module_exit(tlc59108_exit); + + MODULE_DESCRIPTION("LCD/Backlight control for TLC59108"); + MODULE_AUTHOR("Senthil Natarajan senthil.n@ti.com"); +-MODULE_LICENSE("GPL v2"); ++MODULE_LICENSE("GPL"); +-- +1.7.7.6 + diff --git a/src/patches/kernel/omap/beagle/0004-zeroMAP-Open-your-eyes.patch b/src/patches/kernel/omap/beagle/0004-zeroMAP-Open-your-eyes.patch new file mode 100644 index 0000000..d179420 --- /dev/null +++ b/src/patches/kernel/omap/beagle/0004-zeroMAP-Open-your-eyes.patch @@ -0,0 +1,31 @@ +From 81ff7627ad0d958a5c156cb7d880af8707e14f47 Mon Sep 17 00:00:00 2001 +From: Alexander Holler holler@ahsoftware.de +Date: Wed, 4 Jul 2012 00:03:04 +0200 +Subject: [PATCH 4/5] zeroMAP: Open your eyes! + +Signed-off-by: Alexander Holler holler@ahsoftware.de +--- + kernel/printk.c | 7 +++++++ + 1 files changed, 7 insertions(+), 0 deletions(-) + +diff --git a/kernel/printk.c b/kernel/printk.c +index 22e070f..3678740 100644 +--- a/kernel/printk.c ++++ b/kernel/printk.c +@@ -1759,6 +1759,13 @@ static int __init console_setup(char *str) + char *s, *options, *brl_options = NULL; + int idx; + ++#ifdef CONFIG_SERIAL_OMAP ++ if (!strncmp(str, "tty0", 4) && '0' <= str[4] && '9' >= str[4]) { ++ str[3] = 'O'; ++ pr_warn("We are opening your eyes, assuming you want to use an OMAP based serial driver and not a zeroMAP based one! ;)\n"); ++ pr_warn("Which means 'tty0%s' was changed to 'ttyO%s' automagically for your pleasure.\n", str+4, str+4); ++ } ++#endif + #ifdef CONFIG_A11Y_BRAILLE_CONSOLE + if (!memcmp(str, "brl,", 4)) { + brl_options = ""; +-- +1.7.7.6 + diff --git a/src/patches/kernel/omap/beagle/0005-ARM-OMAP-Beagle-use-TWL4030-generic-reset-script.patch b/src/patches/kernel/omap/beagle/0005-ARM-OMAP-Beagle-use-TWL4030-generic-reset-script.patch new file mode 100644 index 0000000..ffb5ffb --- /dev/null +++ b/src/patches/kernel/omap/beagle/0005-ARM-OMAP-Beagle-use-TWL4030-generic-reset-script.patch @@ -0,0 +1,29 @@ +From f2ec859cb99e6137d78b457f8a6693e69e3b1f33 Mon Sep 17 00:00:00 2001 +From: Robert Nelson robertcnelson@gmail.com +Date: Thu, 24 Jan 2013 09:43:51 -0600 +Subject: [PATCH 5/5] ARM: OMAP: Beagle: use TWL4030 generic reset script + +Enable TWL_COMMON_PDATA_POWER such that OMAP3530 revisions of the +Beagle (Bx/Cx) will not hang on reboot when running at 125 Mhz. + +Signed-off-by: Robert Nelson robertcnelson@gmail.com +--- + arch/arm/mach-omap2/board-omap3beagle.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c +index 5b57885..9a2c80b 100644 +--- a/arch/arm/mach-omap2/board-omap3beagle.c ++++ b/arch/arm/mach-omap2/board-omap3beagle.c +@@ -831,7 +831,7 @@ static int __init omap3_beagle_i2c_init(void) + { + omap3_pmic_get_config(&beagle_twldata, + TWL_COMMON_PDATA_USB | TWL_COMMON_PDATA_MADC | +- TWL_COMMON_PDATA_AUDIO, ++ TWL_COMMON_PDATA_AUDIO | TWL_COMMON_PDATA_POWER, + TWL_COMMON_REGULATOR_VDAC | TWL_COMMON_REGULATOR_VPLL2); + + beagle_twldata.vpll2->constraints.name = "VDVI"; +-- +1.7.10.4 + diff --git a/src/patches/kernel/omap/beagle/0006-DSS2-use-DSI-PLL-for-DPI-with-OMAP3.patch b/src/patches/kernel/omap/beagle/0006-DSS2-use-DSI-PLL-for-DPI-with-OMAP3.patch new file mode 100644 index 0000000..56879cb --- /dev/null +++ b/src/patches/kernel/omap/beagle/0006-DSS2-use-DSI-PLL-for-DPI-with-OMAP3.patch @@ -0,0 +1,28 @@ +From 40d889a09a05765138f3b737becadfe927c9b004 Mon Sep 17 00:00:00 2001 +From: Robert Nelson robertcnelson@gmail.com +Date: Tue, 19 Mar 2013 13:40:50 -0500 +Subject: [PATCH 6/6] DSS2: use DSI PLL for DPI with OMAP3 + +Signed-off-by: Robert Nelson robertcnelson@gmail.com +--- + drivers/video/omap2/dss/dpi.c | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/drivers/video/omap2/dss/dpi.c b/drivers/video/omap2/dss/dpi.c +index 757b57f..12ed14f 100644 +--- a/drivers/video/omap2/dss/dpi.c ++++ b/drivers/video/omap2/dss/dpi.c +@@ -58,10 +58,6 @@ static struct platform_device *dpi_get_dsidev(enum omap_channel channel) + */ + switch (omapdss_get_version()) { + case OMAPDSS_VER_OMAP24xx: +- case OMAPDSS_VER_OMAP34xx_ES1: +- case OMAPDSS_VER_OMAP34xx_ES3: +- case OMAPDSS_VER_OMAP3630: +- case OMAPDSS_VER_AM35xx: + return NULL; + + case OMAPDSS_VER_OMAP4430_ES1: +-- +1.7.10.4 + diff --git a/src/patches/kernel/omap/beagle/expansion/0001-Beagle-expansion-add-buddy-param-for-expansionboard-.patch b/src/patches/kernel/omap/beagle/expansion/0001-Beagle-expansion-add-buddy-param-for-expansionboard-.patch new file mode 100644 index 0000000..44a1ae3 --- /dev/null +++ b/src/patches/kernel/omap/beagle/expansion/0001-Beagle-expansion-add-buddy-param-for-expansionboard-.patch @@ -0,0 +1,63 @@ +From c070885eaf883884f89a77e2f71def5b447f914b Mon Sep 17 00:00:00 2001 +From: Robert Nelson robertcnelson@gmail.com +Date: Tue, 11 Dec 2012 06:25:27 -0600 +Subject: [PATCH 01/10] Beagle: expansion: add buddy param for expansionboard + names + +Signed-off-by: Robert Nelson robertcnelson@gmail.com +--- + arch/arm/mach-omap2/board-omap3beagle.c | 17 +++++++++++++++++ + 1 file changed, 17 insertions(+) + +diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c +index c3558f9..29d549c 100644 +--- a/arch/arm/mach-omap2/board-omap3beagle.c ++++ b/arch/arm/mach-omap2/board-omap3beagle.c +@@ -23,6 +23,7 @@ + #include <linux/pwm.h> + #include <linux/leds_pwm.h> + #include <linux/gpio.h> ++#include <linux/irq.h> + #include <linux/input.h> + #include <linux/gpio_keys.h> + #include <linux/opp.h> +@@ -191,6 +192,8 @@ static void __init omap3_beagle_init_rev(void) + } + } + ++char expansionboard_name[16]; ++ + static struct mtd_partition omap3beagle_nand_partitions[] = { + /* All the partition sizes are listed in terms of NAND block size */ + { +@@ -470,6 +473,18 @@ static struct omap_board_mux board_mux[] __initdata = { + }; + #endif + ++static int __init expansionboard_setup(char *str) ++{ ++ if (!machine_is_omap3_beagle()) ++ return 0; ++ ++ if (!str) ++ return -EINVAL; ++ strncpy(expansionboard_name, str, 16); ++ pr_info("Beagle expansionboard: %s\n", expansionboard_name); ++ return 0; ++} ++ + static int __init beagle_opp_init(void) + { + int r = 0; +@@ -559,6 +574,8 @@ static void __init omap3_beagle_init(void) + pwm_add_table(pwm_lookup, ARRAY_SIZE(pwm_lookup)); + } + ++early_param("buddy", expansionboard_setup); ++ + MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagle Board") + /* Maintainer: Syed Mohammed Khasim - http://beagleboard.org */ + .atag_offset = 0x100, +-- +1.7.10.4 + diff --git a/src/patches/kernel/omap/beagle/expansion/0002-Beagle-expansion-add-zippy.patch b/src/patches/kernel/omap/beagle/expansion/0002-Beagle-expansion-add-zippy.patch new file mode 100644 index 0000000..fff6243 --- /dev/null +++ b/src/patches/kernel/omap/beagle/expansion/0002-Beagle-expansion-add-zippy.patch @@ -0,0 +1,242 @@ +From e71075202707e044a28604bd929fd6f7a89adeae Mon Sep 17 00:00:00 2001 +From: Robert Nelson robertcnelson@gmail.com +Date: Mon, 21 Jan 2013 11:47:02 -0600 +Subject: [PATCH 02/10] Beagle: expansion: add zippy + +v2: add #include <linux/regulator/fixed.h> +build fix from Pantelis Antoniou panto@antoniou-consulting.com + +Signed-off-by: Robert Nelson robertcnelson@gmail.com +--- + arch/arm/mach-omap2/board-omap3beagle.c | 164 +++++++++++++++++++++++++++++-- + 1 file changed, 158 insertions(+), 6 deletions(-) + +diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c +index 4e6e767..b3685ed 100644 +--- a/arch/arm/mach-omap2/board-omap3beagle.c ++++ b/arch/arm/mach-omap2/board-omap3beagle.c +@@ -37,6 +37,7 @@ + #include <linux/usb/nop-usb-xceiv.h> + + #include <linux/regulator/machine.h> ++#include <linux/regulator/fixed.h> + #include <linux/i2c/twl.h> + + #include <asm/mach-types.h> +@@ -195,6 +196,86 @@ static void __init omap3_beagle_init_rev(void) + + char expansionboard_name[16]; + ++enum { ++ EXPANSION_MMC_NONE = 0, ++ EXPANSION_MMC_ZIPPY, ++ EXPANSION_MMC_WIFI, ++}; ++ ++enum { ++ EXPANSION_I2C_NONE = 0, ++ EXPANSION_I2C_ZIPPY, ++}; ++ ++static struct { ++ int mmc_settings; ++ int i2c_settings; ++} expansion_config = { ++ .mmc_settings = EXPANSION_MMC_NONE, ++ .i2c_settings = EXPANSION_I2C_NONE, ++}; ++ ++//rcn-ee: this is just a fake regulator, the zippy hardware provides 3.3/1.8 with jumper.. ++static struct fixed_voltage_config beagle_vzippy = { ++ .supply_name = "vzippy", ++ .microvolts = 3300000, /* 3.3V */ ++ .startup_delay = 70000, /* 70ms */ ++ .enable_high = 1, ++ .enabled_at_boot = 0, ++ .init_data = &beagle_vmmc2, ++}; ++ ++static struct platform_device omap_zippy_device = { ++ .name = "reg-fixed-voltage", ++ .id = 1, ++ .dev = { ++ .platform_data = &beagle_vzippy, ++ }, ++}; ++ ++#define OMAP3BEAGLE_GPIO_ZIPPY_MMC_WP 141 ++#define OMAP3BEAGLE_GPIO_ZIPPY_MMC_CD 162 ++ ++#if IS_ENABLED(CONFIG_ENC28J60) ++#include <linux/platform_data/spi-omap2-mcspi.h> ++#include <linux/spi/spi.h> ++ ++#define OMAP3BEAGLE_GPIO_ENC28J60_IRQ 157 ++ ++static struct omap2_mcspi_device_config enc28j60_spi_chip_info = { ++ .turbo_mode = 0, ++}; ++ ++static struct spi_board_info omap3beagle_zippy_spi_board_info[] __initdata = { ++ { ++ .modalias = "enc28j60", ++ .bus_num = 4, ++ .chip_select = 0, ++ .max_speed_hz = 20000000, ++ .controller_data = &enc28j60_spi_chip_info, ++ }, ++}; ++ ++static void __init omap3beagle_enc28j60_init(void) ++{ ++ if ((gpio_request(OMAP3BEAGLE_GPIO_ENC28J60_IRQ, "ENC28J60_IRQ") == 0) && ++ (gpio_direction_input(OMAP3BEAGLE_GPIO_ENC28J60_IRQ) == 0)) { ++ gpio_export(OMAP3BEAGLE_GPIO_ENC28J60_IRQ, 0); ++ omap3beagle_zippy_spi_board_info[0].irq = gpio_to_irq(OMAP3BEAGLE_GPIO_ENC28J60_IRQ); ++ irq_set_irq_type(omap3beagle_zippy_spi_board_info[0].irq, IRQ_TYPE_EDGE_FALLING); ++ } else { ++ pr_err("Beagle expansionboard: could not obtain gpio for ENC28J60_IRQ\n"); ++ return; ++ } ++ ++ spi_register_board_info(omap3beagle_zippy_spi_board_info, ++ ARRAY_SIZE(omap3beagle_zippy_spi_board_info)); ++} ++ ++#else ++static inline void __init omap3beagle_enc28j60_init(void) { return; } ++#endif ++ + static struct mtd_partition omap3beagle_nand_partitions[] = { + /* All the partition sizes are listed in terms of NAND block size */ + { +@@ -271,6 +352,23 @@ static struct omap2_hsmmc_info mmc[] = { + {} /* Terminator */ + }; + ++static struct omap2_hsmmc_info mmc_zippy[] = { ++ { ++ .mmc = 1, ++ .caps = MMC_CAP_4_BIT_DATA, ++ .gpio_wp = -EINVAL, ++ .deferred = true, ++ }, ++ { ++ .mmc = 2, ++ .caps = MMC_CAP_4_BIT_DATA, ++ .gpio_wp = OMAP3BEAGLE_GPIO_ZIPPY_MMC_WP, ++ .gpio_cd = OMAP3BEAGLE_GPIO_ZIPPY_MMC_CD, ++ .transceiver = true, ++ .deferred = true, ++ }, ++ {} /* Terminator */ ++}; + static struct regulator_consumer_supply beagle_vmmc1_supply[] = { + REGULATOR_SUPPLY("vmmc", "omap_hsmmc.0"), + }; +@@ -301,10 +399,21 @@ static int beagle_twl_gpio_setup(struct device *dev, + { + int r; + +- mmc[0].gpio_wp = beagle_config.mmc1_gpio_wp; +- /* gpio + 0 is "mmc0_cd" (input/IRQ) */ +- mmc[0].gpio_cd = gpio + 0; +- omap_hsmmc_late_init(mmc); ++ switch (expansion_config.mmc_settings) { ++ case EXPANSION_MMC_ZIPPY: ++ mmc_zippy[0].gpio_wp = beagle_config.mmc1_gpio_wp; ++ /* gpio + 0 is "mmc0_cd" (input/IRQ) */ ++ mmc_zippy[0].gpio_cd = gpio + 0; ++ ++ omap_hsmmc_late_init(mmc_zippy); ++ break; ++ default: ++ mmc[0].gpio_wp = beagle_config.mmc1_gpio_wp; ++ /* gpio + 0 is "mmc0_cd" (input/IRQ) */ ++ mmc[0].gpio_cd = gpio + 0; ++ ++ omap_hsmmc_late_init(mmc); ++ } + + /* + * TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, XM active +@@ -396,6 +505,14 @@ static struct i2c_board_info __initdata beagle_i2c_eeprom[] = { + }, + }; + ++static struct i2c_board_info __initdata zippy_i2c2_rtc[] = { ++#if defined(CONFIG_RTC_DRV_DS1307) || defined(CONFIG_RTC_DRV_DS1307_MODULE) ++ { ++ I2C_BOARD_INFO("ds1307", 0x68), ++ }, ++#endif ++}; ++ + static int __init omap3_beagle_i2c_init(void) + { + omap3_pmic_get_config(&beagle_twldata, +@@ -406,6 +523,15 @@ static int __init omap3_beagle_i2c_init(void) + beagle_twldata.vpll2->constraints.name = "VDVI"; + + omap3_pmic_init("twl4030", &beagle_twldata); ++ ++ switch (expansion_config.i2c_settings) { ++ case EXPANSION_I2C_ZIPPY: ++ omap_register_i2c_bus(2, 400, zippy_i2c2_rtc, ARRAY_SIZE(zippy_i2c2_rtc)); ++ break; ++ default: ++ omap_register_i2c_bus(2, 400, NULL, 0); ++ } ++ + /* Bus 3 is attached to the DVI port where devices like the pico DLP + * projector don't work reliably with 400kHz */ + omap_register_i2c_bus(3, 100, beagle_i2c_eeprom, ARRAY_SIZE(beagle_i2c_eeprom)); +@@ -548,10 +674,30 @@ static void __init omap3_beagle_init(void) + omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); + omap3_beagle_init_rev(); + ++ if (!strcmp(expansionboard_name, "zippy")) ++ { ++ pr_info("Beagle expansionboard: initializing zippy mmc\n"); ++ platform_device_register(&omap_zippy_device); ++ ++ expansion_config.i2c_settings = EXPANSION_I2C_ZIPPY; ++ expansion_config.mmc_settings = EXPANSION_MMC_ZIPPY; ++ ++ omap_mux_init_gpio(OMAP3BEAGLE_GPIO_ZIPPY_MMC_WP, OMAP_PIN_INPUT); ++ omap_mux_init_gpio(OMAP3BEAGLE_GPIO_ZIPPY_MMC_CD, OMAP_PIN_INPUT); ++ } ++ + if (gpio_is_valid(beagle_config.mmc1_gpio_wp)) + omap_mux_init_gpio(beagle_config.mmc1_gpio_wp, OMAP_PIN_INPUT); +- mmc[0].caps = beagle_config.mmc_caps; +- omap_hsmmc_init(mmc); ++ ++ switch (expansion_config.mmc_settings) { ++ case EXPANSION_MMC_ZIPPY: ++ mmc_zippy[0].caps = beagle_config.mmc_caps; ++ omap_hsmmc_init(mmc_zippy); ++ break; ++ default: ++ mmc[0].caps = beagle_config.mmc_caps; ++ omap_hsmmc_init(mmc); ++ } + + omap3_beagle_i2c_init(); + +@@ -566,6 +712,12 @@ static void __init omap3_beagle_init(void) + omap_sdrc_init(mt46h32m32lf6_sdrc_params, + mt46h32m32lf6_sdrc_params); + ++ if (!strcmp(expansionboard_name, "zippy")) ++ { ++ pr_info("Beagle expansionboard: initializing enc28j60\n"); ++ omap3beagle_enc28j60_init(); ++ } ++ + usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb"); + usb_musb_init(NULL); + +-- +1.7.10.4 + diff --git a/src/patches/kernel/omap/beagle/expansion/0003-Beagle-expansion-add-zippy2.patch b/src/patches/kernel/omap/beagle/expansion/0003-Beagle-expansion-add-zippy2.patch new file mode 100644 index 0000000..b569f92 --- /dev/null +++ b/src/patches/kernel/omap/beagle/expansion/0003-Beagle-expansion-add-zippy2.patch @@ -0,0 +1,86 @@ +From 45bed17e65e1a83f753896e250f3458654dcb229 Mon Sep 17 00:00:00 2001 +From: Robert Nelson robertcnelson@gmail.com +Date: Tue, 11 Dec 2012 06:32:15 -0600 +Subject: [PATCH 03/10] Beagle: expansion: add zippy2 + +Signed-off-by: Robert Nelson robertcnelson@gmail.com +--- + arch/arm/mach-omap2/board-omap3beagle.c | 48 ++++++++++++++++++++++++++++++- + 1 file changed, 47 insertions(+), 1 deletion(-) + +diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c +index b3685ed..74da505 100644 +--- a/arch/arm/mach-omap2/board-omap3beagle.c ++++ b/arch/arm/mach-omap2/board-omap3beagle.c +@@ -276,6 +276,46 @@ static void __init omap3beagle_enc28j60_init(void) + static inline void __init omap3beagle_enc28j60_init(void) { return; } + #endif + ++#if IS_ENABLED(CONFIG_KS8851) ++#include <linux/platform_data/spi-omap2-mcspi.h> ++#include <linux/spi/spi.h> ++ ++#define OMAP3BEAGLE_GPIO_KS8851_IRQ 157 ++ ++static struct omap2_mcspi_device_config ks8851_spi_chip_info = { ++ .turbo_mode = 0, ++}; ++ ++static struct spi_board_info omap3beagle_zippy2_spi_board_info[] __initdata = { ++ { ++ .modalias = "ks8851", ++ .bus_num = 4, ++ .chip_select = 0, ++ .max_speed_hz = 36000000, ++ .controller_data = &ks8851_spi_chip_info, ++ }, ++}; ++ ++static void __init omap3beagle_ks8851_init(void) ++{ ++ if ((gpio_request(OMAP3BEAGLE_GPIO_KS8851_IRQ, "KS8851_IRQ") == 0) && ++ (gpio_direction_input(OMAP3BEAGLE_GPIO_KS8851_IRQ) == 0)) { ++ gpio_export(OMAP3BEAGLE_GPIO_KS8851_IRQ, 0); ++ omap3beagle_zippy2_spi_board_info[0].irq = gpio_to_irq(OMAP3BEAGLE_GPIO_KS8851_IRQ); ++ irq_set_irq_type(omap3beagle_zippy2_spi_board_info[0].irq, IRQ_TYPE_EDGE_FALLING); ++ } else { ++ pr_err("Beagle expansionboard: could not obtain gpio for KS8851_IRQ\n"); ++ return; ++ } ++ ++ spi_register_board_info(omap3beagle_zippy2_spi_board_info, ++ ARRAY_SIZE(omap3beagle_zippy2_spi_board_info)); ++} ++ ++#else ++static inline void __init omap3beagle_ks8851_init(void) { return; } ++#endif ++ + static struct mtd_partition omap3beagle_nand_partitions[] = { + /* All the partition sizes are listed in terms of NAND block size */ + { +@@ -674,7 +714,7 @@ static void __init omap3_beagle_init(void) + omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); + omap3_beagle_init_rev(); + +- if (!strcmp(expansionboard_name, "zippy")) ++ if ((!strcmp(expansionboard_name, "zippy")) || (!strcmp(expansionboard_name, "zippy2"))) + { + pr_info("Beagle expansionboard: initializing zippy mmc\n"); + platform_device_register(&omap_zippy_device); +@@ -718,6 +758,12 @@ static void __init omap3_beagle_init(void) + omap3beagle_enc28j60_init(); + } + ++ if (!strcmp(expansionboard_name, "zippy2")) ++ { ++ pr_info("Beagle expansionboard: initializing ks_8851\n"); ++ omap3beagle_ks8851_init(); ++ } ++ + usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb"); + usb_musb_init(NULL); + +-- +1.7.10.4 + diff --git a/src/patches/kernel/omap/beagle/expansion/0004-Beagle-expansion-add-trainer.patch b/src/patches/kernel/omap/beagle/expansion/0004-Beagle-expansion-add-trainer.patch new file mode 100644 index 0000000..08ace67 --- /dev/null +++ b/src/patches/kernel/omap/beagle/expansion/0004-Beagle-expansion-add-trainer.patch @@ -0,0 +1,55 @@ +From 4d9b4e5795e322ed3efed9b8402f604e2e53cc6f Mon Sep 17 00:00:00 2001 +From: Robert Nelson robertcnelson@gmail.com +Date: Tue, 11 Dec 2012 06:33:24 -0600 +Subject: [PATCH 04/10] Beagle: expansion: add trainer + +Signed-off-by: Robert Nelson robertcnelson@gmail.com +--- + arch/arm/mach-omap2/board-omap3beagle.c | 31 +++++++++++++++++++++++++++++++ + 1 file changed, 31 insertions(+) + +diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c +index 74da505..b5ed547 100644 +--- a/arch/arm/mach-omap2/board-omap3beagle.c ++++ b/arch/arm/mach-omap2/board-omap3beagle.c +@@ -764,6 +764,37 @@ static void __init omap3_beagle_init(void) + omap3beagle_ks8851_init(); + } + ++ if (!strcmp(expansionboard_name, "trainer")) ++ { ++ pr_info("Beagle expansionboard: exporting GPIOs 130-141,162 to userspace\n"); ++ gpio_request(130, "sysfs"); ++ gpio_export(130, 1); ++ gpio_request(131, "sysfs"); ++ gpio_export(131, 1); ++ gpio_request(132, "sysfs"); ++ gpio_export(132, 1); ++ gpio_request(133, "sysfs"); ++ gpio_export(133, 1); ++ gpio_request(134, "sysfs"); ++ gpio_export(134, 1); ++ gpio_request(135, "sysfs"); ++ gpio_export(135, 1); ++ gpio_request(136, "sysfs"); ++ gpio_export(136, 1); ++ gpio_request(137, "sysfs"); ++ gpio_export(137, 1); ++ gpio_request(138, "sysfs"); ++ gpio_export(138, 1); ++ gpio_request(139, "sysfs"); ++ gpio_export(139, 1); ++ gpio_request(140, "sysfs"); ++ gpio_export(140, 1); ++ gpio_request(141, "sysfs"); ++ gpio_export(141, 1); ++ gpio_request(162, "sysfs"); ++ gpio_export(162, 1); ++ } ++ + usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb"); + usb_musb_init(NULL); + +-- +1.7.10.4 + diff --git a/src/patches/kernel/omap/beagle/expansion/0005-Beagle-expansion-add-CircuitCo-ulcd-Support.patch b/src/patches/kernel/omap/beagle/expansion/0005-Beagle-expansion-add-CircuitCo-ulcd-Support.patch new file mode 100644 index 0000000..8b716ee --- /dev/null +++ b/src/patches/kernel/omap/beagle/expansion/0005-Beagle-expansion-add-CircuitCo-ulcd-Support.patch @@ -0,0 +1,285 @@ +From a53e7913a95faefde1ee87a7ea048c04b0850066 Mon Sep 17 00:00:00 2001 +From: Robert Nelson robertcnelson@gmail.com +Date: Tue, 11 Dec 2012 06:42:03 -0600 +Subject: [PATCH 05/10] Beagle: expansion: add CircuitCo ulcd Support + +This of a cleanup, squashed both ulcd commits into one: + +====================================================================== + +expansion: add ulcd +Signed-off-by: Robert Nelson robertcnelson@gmail.com + +====================================================================== + +beagleboard: fix uLCD7 support +Signed-off-by: Koen Kooi koen@dominion.thruhere.net + +====================================================================== + +Signed-off-by: Robert Nelson robertcnelson@gmail.com +--- + arch/arm/mach-omap2/board-omap3beagle.c | 136 ++++++++++++++++++++++ + drivers/video/omap2/displays/panel-generic-dpi.c | 27 +++++ + 2 files changed, 163 insertions(+) + +diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c +index 0f9b253..b2807c2 100644 +--- a/arch/arm/mach-omap2/board-omap3beagle.c ++++ b/arch/arm/mach-omap2/board-omap3beagle.c +@@ -118,12 +118,16 @@ static struct { + int dvi_pd_gpio; + int usr_button_gpio; + int mmc_caps; ++ char *lcd_driver_name; ++ int lcd_pwren; + } beagle_config = { + .mmc1_gpio_wp = -EINVAL, + .usb_pwr_level = 0, + .dvi_pd_gpio = -EINVAL, + .usr_button_gpio = 4, + .mmc_caps = MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA, ++ .lcd_driver_name = "", ++ .lcd_pwren = 156, + }; + + static struct gpio omap3_beagle_rev_gpios[] __initdata = { +@@ -195,6 +199,7 @@ static void __init omap3_beagle_init_rev(void) + } + + char expansionboard_name[16]; ++char expansionboard2_name[16]; + + enum { + EXPANSION_MMC_NONE = 0, +@@ -205,6 +210,7 @@ enum { + enum { + EXPANSION_I2C_NONE = 0, + EXPANSION_I2C_ZIPPY, ++ EXPANSION_I2C_7ULCD, + }; + + static struct { +@@ -369,9 +375,53 @@ static struct omap_dss_device beagle_tv_device = { + .phy.venc.type = OMAP_DSS_VENC_TYPE_SVIDEO, + }; + ++static int beagle_enable_lcd(struct omap_dss_device *dssdev) ++{ ++ if (gpio_is_valid(beagle_config.lcd_pwren)) { ++ pr_info("%s: Enabling LCD\n", __FUNCTION__); ++ gpio_set_value(beagle_config.lcd_pwren, 0); ++ } else { ++ pr_info("%s: Invalid LCD enable GPIO: %d\n", ++ __FUNCTION__, beagle_config.lcd_pwren); ++ } ++ ++ return 0; ++} ++ ++static void beagle_disable_lcd(struct omap_dss_device *dssdev) ++{ ++ if (gpio_is_valid(beagle_config.lcd_pwren)) { ++ pr_info("%s: Disabling LCD\n", __FUNCTION__); ++ gpio_set_value(beagle_config.lcd_pwren, 1); ++ } else { ++ pr_info("%s: Invalid LCD enable GPIO: %d\n", ++ __FUNCTION__, beagle_config.lcd_pwren); ++ } ++ ++ return; ++} ++ ++static struct panel_generic_dpi_data lcd_panel = { ++ .name = "tfc_s9700rtwv35tr-01b", ++ .platform_enable = beagle_enable_lcd, ++ .platform_disable = beagle_disable_lcd, ++}; ++ ++static struct omap_dss_device beagle_lcd_device = { ++ .type = OMAP_DISPLAY_TYPE_DPI, ++ .name = "lcd", ++ .driver_name = "generic_dpi_panel", ++ .phy.dpi.data_lines = 24, ++ .platform_enable = beagle_enable_lcd, ++ .platform_disable = beagle_disable_lcd, ++ .reset_gpio = -EINVAL, ++ .data = &lcd_panel, ++}; ++ + static struct omap_dss_device *beagle_dss_devices[] = { + &beagle_dvi_device, + &beagle_tv_device, ++ &beagle_lcd_device, + }; + + static struct omap_dss_board_info beagle_dss_data = { +@@ -553,6 +603,53 @@ static struct i2c_board_info __initdata zippy_i2c2_rtc[] = { + #endif + }; + ++#if IS_ENABLED(CONFIG_TOUCHSCREEN_TSC2007) ++/* Touchscreen */ ++#include <linux/i2c/tsc2007.h> ++ ++#define OMAP3BEAGLE_TSC2007_GPIO 157 ++ ++static int omap3beagle_tsc2007_get_pendown_state(void) ++{ ++ return !gpio_get_value(OMAP3BEAGLE_TSC2007_GPIO); ++} ++ ++static struct tsc2007_platform_data tsc2007_info = { ++ .model = 2007, ++ .x_plate_ohms = 180, ++ .get_pendown_state = omap3beagle_tsc2007_get_pendown_state, ++}; ++ ++static struct i2c_board_info __initdata beagle_i2c2_bbtoys_ulcd[] = { ++ { ++ I2C_BOARD_INFO("tlc59108", 0x40), ++ }, ++ { ++ I2C_BOARD_INFO("tsc2007", 0x48), ++ .platform_data = &tsc2007_info, ++ }, ++}; ++ ++static void __init omap3beagle_tsc2007_init(void) ++{ ++ int r; ++ ++ omap_mux_init_gpio(OMAP3BEAGLE_TSC2007_GPIO, OMAP_PIN_INPUT_PULLUP); ++ ++ r = gpio_request_one(OMAP3BEAGLE_TSC2007_GPIO, GPIOF_IN, "tsc2007_pen_down"); ++ if (r < 0) { ++ pr_err("Beagle expansionboard: failed to request GPIO#%d for " ++ "tsc2007 pen down IRQ\n", OMAP3BEAGLE_TSC2007_GPIO); ++ return; ++ } ++ ++ beagle_i2c2_bbtoys_ulcd[0].irq = gpio_to_irq(OMAP3BEAGLE_TSC2007_GPIO); ++ irq_set_irq_type(gpio_to_irq(OMAP3BEAGLE_TSC2007_GPIO), IRQ_TYPE_EDGE_FALLING); ++} ++#else ++static struct i2c_board_info __initdata beagle_i2c2_bbtoys_ulcd[] = {}; ++#endif ++ + static int __init omap3_beagle_i2c_init(void) + { + omap3_pmic_get_config(&beagle_twldata, +@@ -565,6 +662,10 @@ static int __init omap3_beagle_i2c_init(void) + omap3_pmic_init("twl4030", &beagle_twldata); + + switch (expansion_config.i2c_settings) { ++ case EXPANSION_I2C_7ULCD: ++ omap_register_i2c_bus(2, 400, beagle_i2c2_bbtoys_ulcd, ++ ARRAY_SIZE(beagle_i2c2_bbtoys_ulcd)); ++ break; + case EXPANSION_I2C_ZIPPY: + omap_register_i2c_bus(2, 400, zippy_i2c2_rtc, ARRAY_SIZE(zippy_i2c2_rtc)); + break; +@@ -661,6 +762,18 @@ static int __init expansionboard_setup(char *str) + return 0; + } + ++static int __init expansionboard2_setup(char *str) ++{ ++ if (!machine_is_omap3_beagle()) ++ return 0; ++ ++ if (!str) ++ return -EINVAL; ++ strncpy(expansionboard2_name, str, 16); ++ pr_info("Beagle expansionboard2: %s\n", expansionboard2_name); ++ return 0; ++} ++ + static int __init beagle_opp_init(void) + { + int r = 0; +@@ -726,6 +839,20 @@ static void __init omap3_beagle_init(void) + omap_mux_init_gpio(OMAP3BEAGLE_GPIO_ZIPPY_MMC_CD, OMAP_PIN_INPUT); + } + ++ if (!strcmp(expansionboard2_name, "bbtoys-ulcd")) ++ { ++ int r; ++ expansion_config.i2c_settings = EXPANSION_I2C_7ULCD; ++ ++ /* TODO: set lcd_driver_name by command line or device tree */ ++ beagle_config.lcd_driver_name = "tfc_s9700rtwv35tr-01b", ++ lcd_panel.name = beagle_config.lcd_driver_name; ++ ++ r = gpio_request_one(beagle_config.lcd_pwren, GPIOF_OUT_INIT_LOW, "LCD power"); ++ if (r < 0) ++ pr_err("Beagle expansionboard: Unable to get LCD power enable GPIO\n"); ++ } ++ + if (gpio_is_valid(beagle_config.mmc1_gpio_wp)) + omap_mux_init_gpio(beagle_config.mmc1_gpio_wp, OMAP_PIN_INPUT); + +@@ -795,6 +922,14 @@ static void __init omap3_beagle_init(void) + gpio_export(162, 1); + } + ++ if (!strcmp(expansionboard2_name, "bbtoys-ulcd")) ++ { ++ #if IS_ENABLED(CONFIG_TOUCHSCREEN_TSC2007) ++ pr_info("Beagle expansionboard: initializing touchscreen: tsc2007\n"); ++ omap3beagle_tsc2007_init(); ++ #endif ++ } ++ + usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb"); + usb_musb_init(NULL); + +@@ -816,6 +951,7 @@ static void __init omap3_beagle_init(void) + } + + early_param("buddy", expansionboard_setup); ++early_param("buddy2", expansionboard2_setup); + + MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagle Board") + /* Maintainer: Syed Mohammed Khasim - http://beagleboard.org */ +diff --git a/drivers/video/omap2/displays/panel-generic-dpi.c b/drivers/video/omap2/displays/panel-generic-dpi.c +index 97363f7..614031f 100644 +--- a/drivers/video/omap2/displays/panel-generic-dpi.c ++++ b/drivers/video/omap2/displays/panel-generic-dpi.c +@@ -515,6 +515,33 @@ static struct panel_config generic_dpi_panels[] = { + }, + .name = "primeview_pd104slf", + }, ++ ++ /* ThreeFiveCorp S9700RTWV35TR-01B */ ++ { ++ { ++ .x_res = 800, ++ .y_res = 480, ++ ++ .pixel_clock = 30000, ++ ++ .hsw = 49, ++ .hfp = 41, ++ .hbp = 40, ++ ++ .vsw = 4, ++ .vfp = 14, ++ .vbp = 29, ++ ++ .vsync_level = OMAPDSS_SIG_ACTIVE_LOW, ++ .hsync_level = OMAPDSS_SIG_ACTIVE_LOW, ++ .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE, ++ .de_level = OMAPDSS_SIG_ACTIVE_HIGH, ++ .sync_pclk_edge = OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES, ++ }, ++ .power_on_delay = 50, ++ .power_off_delay = 100, ++ .name = "tfc_s9700rtwv35tr-01b", ++ }, + }; + + struct panel_drv_data { +-- +1.7.10.4 + diff --git a/src/patches/kernel/omap/beagle/expansion/0006-Beagle-expansion-add-wifi.patch b/src/patches/kernel/omap/beagle/expansion/0006-Beagle-expansion-add-wifi.patch new file mode 100644 index 0000000..88d48af --- /dev/null +++ b/src/patches/kernel/omap/beagle/expansion/0006-Beagle-expansion-add-wifi.patch @@ -0,0 +1,180 @@ +From f78cd93d767cd75969c4661723cfce46071e5b1b Mon Sep 17 00:00:00 2001 +From: Robert Nelson robertcnelson@gmail.com +Date: Tue, 11 Dec 2012 06:48:52 -0600 +Subject: [PATCH 06/10] Beagle: expansion: add wifi + +build fixes from Pantelis Antoniou panto@antoniou-consulting.com + +Signed-off-by: Robert Nelson robertcnelson@gmail.com +--- + arch/arm/mach-omap2/board-omap3beagle.c | 119 +++++++++++++++++++++++++++++++ + 1 file changed, 119 insertions(+) + +diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c +index a8de97e..2322d6c 100644 +--- a/arch/arm/mach-omap2/board-omap3beagle.c ++++ b/arch/arm/mach-omap2/board-omap3beagle.c +@@ -221,6 +221,73 @@ static struct { + .i2c_settings = EXPANSION_I2C_NONE, + }; + ++#if IS_ENABLED(CONFIG_WL12XX) ++#include <linux/regulator/fixed.h> ++#include <linux/ti_wilink_st.h> ++#include <linux/wl12xx.h> ++ ++#define OMAP_BEAGLE_WLAN_EN_GPIO (139) ++#define OMAP_BEAGLE_BT_EN_GPIO (138) ++#define OMAP_BEAGLE_WLAN_IRQ_GPIO (137) ++#define OMAP_BEAGLE_FM_EN_BT_WU (136) ++ ++struct wl12xx_platform_data omap_beagle_wlan_data __initdata = { ++ .board_ref_clock = WL12XX_REFCLOCK_38, /* 38.4 MHz */ ++}; ++ ++static struct ti_st_plat_data wilink_platform_data = { ++ .nshutdown_gpio = OMAP_BEAGLE_BT_EN_GPIO, ++ .dev_name = "/dev/ttyO1", ++ .flow_cntrl = 1, ++ .baud_rate = 3000000, ++ .chip_enable = NULL, ++ .suspend = NULL, ++ .resume = NULL, ++}; ++ ++static struct platform_device wl12xx_device = { ++ .name = "kim", ++ .id = -1, ++ .dev.platform_data = &wilink_platform_data, ++}; ++ ++static struct platform_device btwilink_device = { ++ .name = "btwilink", ++ .id = -1, ++}; ++#endif ++ ++static struct regulator_consumer_supply beagle_vmmc2_supply = ++ REGULATOR_SUPPLY("vmmc", "omap_hsmmc.1"); ++ ++static struct regulator_init_data beagle_vmmc2 = { ++ .constraints = { ++ .valid_ops_mask = REGULATOR_CHANGE_STATUS, ++ }, ++ .num_consumer_supplies = 1, ++ .consumer_supplies = &beagle_vmmc2_supply, ++}; ++ ++#if IS_ENABLED(CONFIG_WL12XX) ++static struct fixed_voltage_config beagle_vwlan = { ++ .supply_name = "vwl1271", ++ .microvolts = 1800000, /* 1.8V */ ++ .gpio = OMAP_BEAGLE_WLAN_EN_GPIO, ++ .startup_delay = 70000, /* 70ms */ ++ .enable_high = 1, ++ .enabled_at_boot = 0, ++ .init_data = &beagle_vmmc2, ++}; ++ ++static struct platform_device omap_vwlan_device = { ++ .name = "reg-fixed-voltage", ++ .id = 1, ++ .dev = { ++ .platform_data = &beagle_vwlan, ++ }, ++}; ++#endif ++ + //rcn-ee: this is just a fake regulator, the zippy hardware provides 3.3/1.8 with jumper.. + static struct fixed_voltage_config beagle_vzippy = { + .supply_name = "vzippy", +@@ -459,6 +526,26 @@ static struct omap2_hsmmc_info mmc_zippy[] = { + }, + {} /* Terminator */ + }; ++ ++static struct omap2_hsmmc_info mmcbbt[] = { ++ { ++ .mmc = 1, ++ .caps = MMC_CAP_4_BIT_DATA, ++ .gpio_wp = -EINVAL, ++ .deferred = true, ++ }, ++ { ++ .name = "wl1271", ++ .mmc = 2, ++ .caps = MMC_CAP_4_BIT_DATA | MMC_CAP_POWER_OFF_CARD, ++ .gpio_wp = -EINVAL, ++ .gpio_cd = -EINVAL, ++ .ocr_mask = MMC_VDD_165_195, ++ .nonremovable = true, ++ }, ++ {} /* Terminator */ ++}; ++ + static struct regulator_consumer_supply beagle_vmmc1_supply[] = { + REGULATOR_SUPPLY("vmmc", "omap_hsmmc.0"), + }; +@@ -490,6 +577,13 @@ static int beagle_twl_gpio_setup(struct device *dev, + int r; + + switch (expansion_config.mmc_settings) { ++ case EXPANSION_MMC_WIFI: ++ mmcbbt[0].gpio_wp = beagle_config.mmc1_gpio_wp; ++ /* gpio + 0 is "mmc0_cd" (input/IRQ) */ ++ mmcbbt[0].gpio_cd = gpio + 0; ++ ++ omap_hsmmc_late_init(mmcbbt); ++ break; + case EXPANSION_MMC_ZIPPY: + mmc_zippy[0].gpio_wp = beagle_config.mmc1_gpio_wp; + /* gpio + 0 is "mmc0_cd" (input/IRQ) */ +@@ -839,6 +933,13 @@ static void __init omap3_beagle_init(void) + omap_mux_init_gpio(OMAP3BEAGLE_GPIO_ZIPPY_MMC_CD, OMAP_PIN_INPUT); + } + ++ if (!strcmp(expansionboard_name, "bbtoys-wifi")) ++ { ++ #if IS_ENABLED(CONFIG_WL12XX) ++ expansion_config.mmc_settings = EXPANSION_MMC_WIFI; ++ #endif ++ } ++ + if (!strcmp(expansionboard2_name, "bbtoys-ulcd")) + { + int r; +@@ -857,6 +958,10 @@ static void __init omap3_beagle_init(void) + omap_mux_init_gpio(beagle_config.mmc1_gpio_wp, OMAP_PIN_INPUT); + + switch (expansion_config.mmc_settings) { ++ case EXPANSION_MMC_WIFI: ++ mmcbbt[0].caps = beagle_config.mmc_caps; ++ omap_hsmmc_init(mmcbbt); ++ break; + case EXPANSION_MMC_ZIPPY: + mmc_zippy[0].caps = beagle_config.mmc_caps; + omap_hsmmc_init(mmc_zippy); +@@ -922,6 +1027,20 @@ static void __init omap3_beagle_init(void) + gpio_export(162, 1); + } + ++ if (!strcmp(expansionboard_name, "bbtoys-wifi")) ++ { ++ #if IS_ENABLED(CONFIG_WL12XX) ++ omap_beagle_wlan_data.irq = gpio_to_irq(OMAP_BEAGLE_WLAN_IRQ_GPIO); ++ if (wl12xx_set_platform_data(&omap_beagle_wlan_data)) ++ pr_err("error setting wl12xx data\n"); ++ pr_info("Beagle expansionboard: registering wl12xx bt platform device\n"); ++ platform_device_register(&wl12xx_device); ++ platform_device_register(&btwilink_device); ++ pr_info("Beagle expansionboard: registering wl12xx wifi platform device\n"); ++ platform_device_register(&omap_vwlan_device); ++ #endif ++ } ++ + if (!strcmp(expansionboard2_name, "bbtoys-ulcd")) + { + #if IS_ENABLED(CONFIG_TOUCHSCREEN_TSC2007) +-- +1.7.10.4 + diff --git a/src/patches/kernel/omap/beagle/expansion/0007-Beagle-expansion-add-beaglefpga.patch b/src/patches/kernel/omap/beagle/expansion/0007-Beagle-expansion-add-beaglefpga.patch new file mode 100644 index 0000000..a006c7b --- /dev/null +++ b/src/patches/kernel/omap/beagle/expansion/0007-Beagle-expansion-add-beaglefpga.patch @@ -0,0 +1,117 @@ +From 0c361e9db10f9ec3598bf062a605a451857ee06e Mon Sep 17 00:00:00 2001 +From: Bas van der Doorn bas@doornvd.com +Date: Tue, 11 Dec 2012 06:52:22 -0600 +Subject: [PATCH 07/10] Beagle: expansion: add beaglefpga + +Added SPI dev and McBSP 3 mux when FPGA is detected + +Signed-off-by: Bas van der Doorn bas@doornvd.com +Signed-off-by: Robert Nelson robertcnelson@gmail.com +--- + arch/arm/mach-omap2/board-omap3beagle.c | 76 +++++++++++++++++++++++++++++++ + 1 file changed, 76 insertions(+) + +diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c +index 2322d6c..c257f3c 100644 +--- a/arch/arm/mach-omap2/board-omap3beagle.c ++++ b/arch/arm/mach-omap2/board-omap3beagle.c +@@ -44,6 +44,7 @@ + #include <asm/mach/arch.h> + #include <asm/mach/map.h> + #include <asm/mach/flash.h> ++#include <linux/spi/spi.h> + + #include <video/omapdss.h> + #include <video/omap-panel-data.h> +@@ -916,6 +917,68 @@ static int __init beagle_opp_init(void) + } + omap_device_initcall(beagle_opp_init); + ++static void __init omap3_beagle_config_mcspi3_mux(void) ++{ ++ /* NOTE: Clock pins need to be in input mode */ ++ omap_mux_init_signal("sdmmc2_clk.mcspi3_clk", OMAP_PIN_INPUT); ++ omap_mux_init_signal("sdmmc2_cmd.mcspi3_simo", OMAP_PIN_OUTPUT); ++ omap_mux_init_signal("sdmmc2_dat0.mcspi3_somi", OMAP_PIN_INPUT_PULLUP); ++ omap_mux_init_signal("sdmmc2_dat2.mcspi3_cs1", OMAP_PIN_OUTPUT); ++ omap_mux_init_signal("sdmmc2_dat3.mcspi3_cs0", OMAP_PIN_OUTPUT); ++} ++ ++static void __init omap3_beagle_config_mcspi4_mux(void) ++{ ++ /* NOTE: Clock pins need to be in input mode */ ++ omap_mux_init_signal("mcbsp1_clkr.mcspi4_clk", OMAP_PIN_INPUT); ++ omap_mux_init_signal("mcbsp1_dx.mcspi4_simo", OMAP_PIN_OUTPUT); ++ omap_mux_init_signal("mcbsp1_dr.mcspi4_somi", OMAP_PIN_INPUT_PULLUP); ++ omap_mux_init_signal("mcbsp1_fsx.mcspi4_cs0", OMAP_PIN_OUTPUT); ++} ++ ++static void __init omap3_beagle_config_mcbsp3_mux(void) ++{ ++ omap_mux_init_signal("mcbsp3_fsx.uart2_rx", OMAP_PIN_INPUT); ++ omap_mux_init_signal("uart2_cts.mcbsp3_dx", OMAP_PIN_OUTPUT); ++ omap_mux_init_signal("uart2_rts.mcbsp3_dr", OMAP_PIN_INPUT); ++ /* NOTE: Clock pins need to be in input mode */ ++ omap_mux_init_signal("uart2_tx.mcbsp3_clkx", OMAP_PIN_INPUT); ++} ++ ++static void __init omap3_beagle_config_fpga_mux(void) ++{ ++ omap3_beagle_config_mcbsp3_mux(); ++ omap3_beagle_config_mcspi3_mux(); ++ omap3_beagle_config_mcspi4_mux(); ++} ++ ++static struct spi_board_info beagle_mcspi_board_info[] = { ++ /* spi 3.0 */ ++ { ++ .modalias = "spidev", ++ .max_speed_hz = 48000000, //48 Mbps ++ .bus_num = 3, ++ .chip_select = 0, ++ .mode = SPI_MODE_1, ++ }, ++ /* spi 3.1 */ ++ { ++ .modalias = "spidev", ++ .max_speed_hz = 48000000, //48 Mbps ++ .bus_num = 3, ++ .chip_select = 1, ++ .mode = SPI_MODE_1, ++ }, ++ /* spi 4.0 */ ++ { ++ .modalias = "spidev", ++ .max_speed_hz = 48000000, //48 Mbps ++ .bus_num = 4, ++ .chip_select = 0, ++ .mode = SPI_MODE_1, ++ }, ++}; ++ + static void __init omap3_beagle_init(void) + { + omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); +@@ -1041,6 +1104,19 @@ static void __init omap3_beagle_init(void) + #endif + } + ++ if (!strcmp(expansionboard_name, "beaglefpga")) ++ { ++ #if IS_ENABLED(CONFIG_SPI_SPIDEV) ++ pr_info("Beagle expansionboard: enabling SPIdev for McSPI3/4 and pin muxing for McBSP3 slave mode\n"); ++ ++ /* FPGA pin settings configure McSPI 3, McSPI 4 and McBSP 3 */ ++ omap3_beagle_config_fpga_mux(); ++ ++ /* register McSPI 3 and McSPI 4 for FPGA programming and control */ ++ spi_register_board_info(beagle_mcspi_board_info, ARRAY_SIZE(beagle_mcspi_board_info)); ++ #endif ++ } ++ + if (!strcmp(expansionboard2_name, "bbtoys-ulcd")) + { + #if IS_ENABLED(CONFIG_TOUCHSCREEN_TSC2007) +-- +1.7.10.4 + diff --git a/src/patches/kernel/omap/beagle/expansion/0008-Beagle-expansion-add-spidev.patch b/src/patches/kernel/omap/beagle/expansion/0008-Beagle-expansion-add-spidev.patch new file mode 100644 index 0000000..23cc525 --- /dev/null +++ b/src/patches/kernel/omap/beagle/expansion/0008-Beagle-expansion-add-spidev.patch @@ -0,0 +1,35 @@ +From 5258354e6e4d0b55334099868668a166d967c1d2 Mon Sep 17 00:00:00 2001 +From: Russell Hay russell.hay@gmail.com +Date: Tue, 11 Dec 2012 06:53:58 -0600 +Subject: [PATCH 08/10] Beagle: expansion: add spidev + +Signed-off-by: Russell Hay russell.hay@gmail.com +Signed-off-by: Robert Nelson robertcnelson@gmail.com +--- + arch/arm/mach-omap2/board-omap3beagle.c | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c +index c257f3c..3e0313ee 100644 +--- a/arch/arm/mach-omap2/board-omap3beagle.c ++++ b/arch/arm/mach-omap2/board-omap3beagle.c +@@ -1117,6 +1117,16 @@ static void __init omap3_beagle_init(void) + #endif + } + ++ if (!strcmp(expansionboard_name, "spidev")) ++ { ++ #if IS_ENABLED(CONFIG_SPI_SPIDEV) ++ pr_info("Beagle expansionboard: registering spidev\n"); ++ omap3_beagle_config_mcspi3_mux(); ++ omap3_beagle_config_mcspi4_mux(); ++ spi_register_board_info(beagle_mcspi_board_info, ARRAY_SIZE(beagle_mcspi_board_info)); ++ #endif ++ } ++ + if (!strcmp(expansionboard2_name, "bbtoys-ulcd")) + { + #if IS_ENABLED(CONFIG_TOUCHSCREEN_TSC2007) +-- +1.7.10.4 + diff --git a/src/patches/kernel/omap/beagle/expansion/0009-Beagle-expansion-add-Aptina-li5m03-camera.patch b/src/patches/kernel/omap/beagle/expansion/0009-Beagle-expansion-add-Aptina-li5m03-camera.patch new file mode 100644 index 0000000..28d2d4a --- /dev/null +++ b/src/patches/kernel/omap/beagle/expansion/0009-Beagle-expansion-add-Aptina-li5m03-camera.patch @@ -0,0 +1,217 @@ +From cc6ced0a1cbaea65a507ec3fe543a5b98d760d23 Mon Sep 17 00:00:00 2001 +From: Robert Nelson robertcnelson@gmail.com +Date: Tue, 11 Dec 2012 06:58:15 -0600 +Subject: [PATCH 09/10] Beagle: expansion: add Aptina li5m03 camera + +Based on: +https://github.com/Aptina/BeagleBoard-xM/blob/master/tools/0266-Adding-MT9P0... + +And on Max Galemin's patch +https://github.com/MaxGalemin/buildroot/blob/master/board/beagleboard/xm/ker... + +And Koen Kooi Previous work's +https://github.com/beagleboard/kernel/blob/beagleboard-3.2/patches/camera/00... + +Signed-off-by: Robert Nelson robertcnelson@gmail.com +--- + arch/arm/mach-omap2/board-omap3beagle.c | 142 +++++++++++++++++++++++++++++++ + 1 file changed, 142 insertions(+) + +diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c +index 3e0313ee..4fb5eae 100644 +--- a/arch/arm/mach-omap2/board-omap3beagle.c ++++ b/arch/arm/mach-omap2/board-omap3beagle.c +@@ -201,6 +201,7 @@ static void __init omap3_beagle_init_rev(void) + + char expansionboard_name[16]; + char expansionboard2_name[16]; ++char camera_name[16]; + + enum { + EXPANSION_MMC_NONE = 0, +@@ -555,6 +556,14 @@ static struct regulator_consumer_supply beagle_vsim_supply[] = { + REGULATOR_SUPPLY("vmmc_aux", "omap_hsmmc.0"), + }; + ++static struct regulator_consumer_supply beagle_vaux3_supply = { ++ .supply = "cam_1v8", ++}; ++ ++static struct regulator_consumer_supply beagle_vaux4_supply = { ++ .supply = "cam_2v8", ++}; ++ + static struct gpio_led gpio_leds[]; + + /* PHY's VCC regulator might be added later, so flag that we need it */ +@@ -677,11 +686,43 @@ static struct regulator_init_data beagle_vsim = { + .consumer_supplies = beagle_vsim_supply, + }; + ++/* VAUX3 for CAM_1V8 */ ++static struct regulator_init_data beagle_vaux3 = { ++ .constraints = { ++ .min_uV = 1800000, ++ .max_uV = 1800000, ++ .apply_uV = true, ++ .valid_modes_mask = REGULATOR_MODE_NORMAL ++ | REGULATOR_MODE_STANDBY, ++ .valid_ops_mask = REGULATOR_CHANGE_MODE ++ | REGULATOR_CHANGE_STATUS, ++ }, ++ .num_consumer_supplies = 1, ++ .consumer_supplies = &beagle_vaux3_supply, ++}; ++ ++/* VAUX4 for CAM_2V8 */ ++static struct regulator_init_data beagle_vaux4 = { ++ .constraints = { ++ .min_uV = 1800000, ++ .max_uV = 1800000, ++ .apply_uV = true, ++ .valid_modes_mask = REGULATOR_MODE_NORMAL ++ | REGULATOR_MODE_STANDBY, ++ .valid_ops_mask = REGULATOR_CHANGE_MODE ++ | REGULATOR_CHANGE_STATUS, ++ }, ++ .num_consumer_supplies = 1, ++ .consumer_supplies = &beagle_vaux4_supply, ++}; ++ + static struct twl4030_platform_data beagle_twldata = { + /* platform_data for children goes here */ + .gpio = &beagle_gpio_data, + .vmmc1 = &beagle_vmmc1, + .vsim = &beagle_vsim, ++ .vaux3 = &beagle_vaux3, ++ .vaux4 = &beagle_vaux4, + }; + + static struct i2c_board_info __initdata beagle_i2c_eeprom[] = { +@@ -745,6 +786,61 @@ static void __init omap3beagle_tsc2007_init(void) + static struct i2c_board_info __initdata beagle_i2c2_bbtoys_ulcd[] = {}; + #endif + ++#if IS_ENABLED(CONFIG_VIDEO_MT9P031) ++/* needed for: omap3_beagle_late_initcall */ ++#include "devices.h" ++#include <media/omap3isp.h> ++#include <media/mt9p031.h> ++/* needed for: v4l2_dev_to_isp_device */ ++#include "../../../drivers/media/platform/omap3isp/isp.h" ++ ++#define MT9P031_RESET_GPIO 98 ++#define MT9P031_EXT_FREQ 21000000 ++#define MT9P031_TARGET_FREQ 48000000 ++ ++#define MT9P031_I2C_ADDR 0x48 ++#define MT9P031_I2C_BUS 2 ++ ++static struct regulator *reg_1v8, *reg_2v8; ++ ++static struct mt9p031_platform_data beagle_mt9p031_platform_data = { ++ .reset = MT9P031_RESET_GPIO, ++ .ext_freq = MT9P031_EXT_FREQ, ++ .target_freq = MT9P031_TARGET_FREQ, ++}; ++ ++static struct i2c_board_info mt9p031_camera_i2c_device = { ++ I2C_BOARD_INFO("mt9p031", MT9P031_I2C_ADDR), ++ .platform_data = &beagle_mt9p031_platform_data, ++}; ++ ++static struct isp_subdev_i2c_board_info mt9p031_camera_subdevs[] = { ++ { ++ .board_info = &mt9p031_camera_i2c_device, ++ .i2c_adapter_id = MT9P031_I2C_BUS, ++ }, ++ { NULL, 0, }, ++}; ++ ++static struct isp_v4l2_subdevs_group beagle_camera_subdevs[] = { ++ { ++ .subdevs = mt9p031_camera_subdevs, ++ .interface = ISP_INTERFACE_PARALLEL, ++ .bus = { ++ .parallel = { ++ .data_lane_shift = 0, ++ .clk_pol = 1, ++ } ++ }, ++ }, ++ { }, ++}; ++ ++static struct isp_platform_data beagle_isp_platform_data = { ++ .subdevs = beagle_camera_subdevs, ++}; ++#endif ++ + static int __init omap3_beagle_i2c_init(void) + { + omap3_pmic_get_config(&beagle_twldata, +@@ -869,6 +965,18 @@ static int __init expansionboard2_setup(char *str) + return 0; + } + ++static int __init camera_setup(char *str) ++{ ++ if (!machine_is_omap3_beagle()) ++ return 0; ++ ++ if (!str) ++ return -EINVAL; ++ strncpy(camera_name, str, 16); ++ pr_info("Beagle camera: %s\n", camera_name); ++ return 0; ++} ++ + static int __init beagle_opp_init(void) + { + int r = 0; +@@ -1155,8 +1263,42 @@ static void __init omap3_beagle_init(void) + pwm_add_table(pwm_lookup, ARRAY_SIZE(pwm_lookup)); + } + ++static int __init omap3_beagle_late_initcall(void) ++{ ++ if (!machine_is_omap3_beagle()) ++ return 0; ++ ++ if (!cpu_is_omap3630()) ++ return 0; ++ ++#if IS_ENABLED(CONFIG_VIDEO_MT9P031) ++ if ((!strcmp(camera_name, "lbcm5m1")) || (!strcmp(camera_name, "li5m03"))) ++ { ++ pr_info("Beagle camera: MT9P031 init\n"); ++ ++ reg_1v8 = regulator_get(NULL, "cam_1v8"); ++ if (IS_ERR(reg_1v8)) ++ pr_err("%s: cannot get cam_1v8 regulator\n", __func__); ++ else ++ regulator_enable(reg_1v8); ++ ++ reg_2v8 = regulator_get(NULL, "cam_2v8"); ++ if (IS_ERR(reg_2v8)) ++ pr_err("%s: cannot get cam_2v8 regulator\n", __func__); ++ else ++ regulator_enable(reg_2v8); ++ ++ omap3_init_camera(&beagle_isp_platform_data); ++ } ++#endif ++ return 0; ++} ++ + early_param("buddy", expansionboard_setup); + early_param("buddy2", expansionboard2_setup); ++early_param("camera", camera_setup); ++ ++late_initcall(omap3_beagle_late_initcall); + + MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagle Board") + /* Maintainer: Syed Mohammed Khasim - http://beagleboard.org */ +-- +1.7.10.4 + diff --git a/src/patches/kernel/omap/beagle/expansion/0010-Beagle-expansion-add-LSR-COM6L-Adapter-Board.patch b/src/patches/kernel/omap/beagle/expansion/0010-Beagle-expansion-add-LSR-COM6L-Adapter-Board.patch new file mode 100644 index 0000000..04a3656 --- /dev/null +++ b/src/patches/kernel/omap/beagle/expansion/0010-Beagle-expansion-add-LSR-COM6L-Adapter-Board.patch @@ -0,0 +1,123 @@ +From f2e2294733d926e627dcda6425f58611b185c7fc Mon Sep 17 00:00:00 2001 +From: Robert Nelson robertcnelson@gmail.com +Date: Tue, 11 Dec 2012 07:02:40 -0600 +Subject: [PATCH 10/10] Beagle: expansion: add LSR COM6L Adapter Board + +Signed-off-by: Robert Nelson robertcnelson@gmail.com +--- + arch/arm/mach-omap2/board-omap3beagle.c | 60 ++++++++++++++++++++++++++++--- + 1 file changed, 55 insertions(+), 5 deletions(-) + +diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c +index 0ac1b49..5a7e7b5 100644 +--- a/arch/arm/mach-omap2/board-omap3beagle.c ++++ b/arch/arm/mach-omap2/board-omap3beagle.c +@@ -202,6 +202,7 @@ static void __init omap3_beagle_init_rev(void) + char expansionboard_name[16]; + char expansionboard2_name[16]; + char camera_name[16]; ++char wl12xx_name[16]; + + enum { + EXPANSION_MMC_NONE = 0, +@@ -237,6 +238,10 @@ struct wl12xx_platform_data omap_beagle_wlan_data __initdata = { + .board_ref_clock = WL12XX_REFCLOCK_38, /* 38.4 MHz */ + }; + ++struct wl12xx_platform_data omap_beagle_wlan_data_26mhz __initdata = { ++ .board_ref_clock = WL12XX_REFCLOCK_26, /* 26 MHz */ ++}; ++ + static struct ti_st_plat_data wilink_platform_data = { + .nshutdown_gpio = OMAP_BEAGLE_BT_EN_GPIO, + .dev_name = "/dev/ttyO1", +@@ -987,6 +992,18 @@ static int __init camera_setup(char *str) + return 0; + } + ++static int __init wl12xx_setup(char *str) ++{ ++ if (!machine_is_omap3_beagle()) ++ return 0; ++ ++ if (!str) ++ return -EINVAL; ++ strncpy(wl12xx_name, str, 16); ++ pr_info("Beagle wl12xx clk: %s\n", wl12xx_name); ++ return 0; ++} ++ + static int __init beagle_opp_init(void) + { + int r = 0; +@@ -1114,9 +1131,29 @@ static void __init omap3_beagle_init(void) + omap_mux_init_gpio(OMAP3BEAGLE_GPIO_ZIPPY_MMC_CD, OMAP_PIN_INPUT); + } + +- if (!strcmp(expansionboard_name, "bbtoys-wifi")) ++ if ((!strcmp(expansionboard_name, "bbtoys-wifi")) || (!strcmp(expansionboard_name, "lsr-com6l-adpt"))) + { + #if IS_ENABLED(CONFIG_WL12XX) ++ pr_info("Beagle expansion: wl12xx: setting up gpio pinmux\n"); ++ ++ omap_mux_init_gpio(OMAP_BEAGLE_FM_EN_BT_WU, OMAP_PIN_OUTPUT); ++ omap_mux_init_gpio(OMAP_BEAGLE_BT_EN_GPIO, OMAP_PIN_OUTPUT); ++ omap_mux_init_gpio(OMAP_BEAGLE_WLAN_EN_GPIO, OMAP_PIN_OUTPUT); ++ ++ omap_mux_init_gpio(OMAP_BEAGLE_WLAN_IRQ_GPIO, OMAP_PIN_INPUT_PULLUP); ++ ++ /* WLAN SDIO: MMC2 CLK */ ++ omap_mux_init_signal("sdmmc2_clk.sdmmc2_clk", OMAP_PIN_INPUT_PULLUP); ++ ++ /* WLAN SDIO: MMC2 CMD */ ++ omap_mux_init_signal("sdmmc2_cmd.sdmmc2_cmd", OMAP_PIN_INPUT_PULLUP); ++ ++ /* WLAN SDIO: MMC2 DAT[0-3] */ ++ omap_mux_init_signal("sdmmc2_dat0.sdmmc2_dat0", OMAP_PIN_INPUT_PULLUP); ++ omap_mux_init_signal("sdmmc2_dat1.sdmmc2_dat1", OMAP_PIN_INPUT_PULLUP); ++ omap_mux_init_signal("sdmmc2_dat2.sdmmc2_dat2", OMAP_PIN_INPUT_PULLUP); ++ omap_mux_init_signal("sdmmc2_dat3.sdmmc2_dat3", OMAP_PIN_INPUT_PULLUP); ++ + expansion_config.mmc_settings = EXPANSION_MMC_WIFI; + #endif + } +@@ -1208,12 +1245,24 @@ static void __init omap3_beagle_init(void) + gpio_export(162, 1); + } + +- if (!strcmp(expansionboard_name, "bbtoys-wifi")) ++ if ((!strcmp(expansionboard_name, "bbtoys-wifi")) || (!strcmp(expansionboard_name, "lsr-com6l-adpt"))) + { + #if IS_ENABLED(CONFIG_WL12XX) +- omap_beagle_wlan_data.irq = gpio_to_irq(OMAP_BEAGLE_WLAN_IRQ_GPIO); +- if (wl12xx_set_platform_data(&omap_beagle_wlan_data)) +- pr_err("error setting wl12xx data\n"); ++ pr_info("Beagle expansionboard: initializing wl12xx platform\n"); ++ ++ if (!strcmp(wl12xx_name, "wl12xx_26mhz")) { ++ pr_info("wl12xx: 26Mhz reference clock (TiWi5)\n"); ++ omap_beagle_wlan_data_26mhz.irq = gpio_to_irq(OMAP_BEAGLE_WLAN_IRQ_GPIO); ++ if (wl12xx_set_platform_data(&omap_beagle_wlan_data_26mhz)) ++ pr_err("error setting wl12xx data\n"); ++ } else { ++ pr_info("wl12xx: 38.4Mhz reference clock (TiWi2/TiWi-BLE)\n"); ++ pr_info("wl12xx: for (TiWi5) support pass kernel [wl12xx_clk=wl12xx_26mhz]\n"); ++ omap_beagle_wlan_data.irq = gpio_to_irq(OMAP_BEAGLE_WLAN_IRQ_GPIO); ++ if (wl12xx_set_platform_data(&omap_beagle_wlan_data)) ++ pr_err("error setting wl12xx data\n"); ++ } ++ + pr_info("Beagle expansionboard: registering wl12xx bt platform device\n"); + platform_device_register(&wl12xx_device); + platform_device_register(&btwilink_device); +@@ -1307,6 +1356,7 @@ static int __init omap3_beagle_late_initcall(void) + early_param("buddy", expansionboard_setup); + early_param("buddy2", expansionboard2_setup); + early_param("camera", camera_setup); ++early_param("wl12xx_clk", wl12xx_setup); + + late_initcall(omap3_beagle_late_initcall); + +-- +1.7.10.4 + diff --git a/src/patches/kernel/omap/beagle/expansion/0011-Beagle-expansion-LSR-COM6L-Adapter-Board-also-initia.patch b/src/patches/kernel/omap/beagle/expansion/0011-Beagle-expansion-LSR-COM6L-Adapter-Board-also-initia.patch new file mode 100644 index 0000000..a8edc77 --- /dev/null +++ b/src/patches/kernel/omap/beagle/expansion/0011-Beagle-expansion-LSR-COM6L-Adapter-Board-also-initia.patch @@ -0,0 +1,73 @@ +From 89eb49ac0268518799984fa035ac3fea0ae758ec Mon Sep 17 00:00:00 2001 +From: Robert Nelson robertcnelson@gmail.com +Date: Mon, 21 Jan 2013 11:52:20 -0600 +Subject: [PATCH 11/11] Beagle: expansion: LSR COM6L Adapter Board also + initialize the 24c256 eeprom + +Signed-off-by: Robert Nelson robertcnelson@gmail.com +--- + arch/arm/mach-omap2/board-omap3beagle.c | 20 ++++++++++++++++++++ + 1 file changed, 20 insertions(+) + +diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c +index 5a7e7b5..6797488 100644 +--- a/arch/arm/mach-omap2/board-omap3beagle.c ++++ b/arch/arm/mach-omap2/board-omap3beagle.c +@@ -39,6 +39,7 @@ + #include <linux/regulator/machine.h> + #include <linux/regulator/fixed.h> + #include <linux/i2c/twl.h> ++#include <linux/i2c/at24.h> + + #include <asm/mach-types.h> + #include <asm/mach/arch.h> +@@ -214,6 +215,7 @@ enum { + EXPANSION_I2C_NONE = 0, + EXPANSION_I2C_ZIPPY, + EXPANSION_I2C_7ULCD, ++ EXPANSION_I2C_COM6L, + }; + + static struct { +@@ -856,6 +858,20 @@ static struct isp_platform_data beagle_isp_platform_data = { + }; + #endif + ++static struct at24_platform_data beagle_at24_eeprom_info = { ++ .byte_len = (256*1024) / 8, ++ .page_size = 64, ++ .flags = AT24_FLAG_ADDR16, ++ .context = (void *)NULL, ++}; ++ ++static struct i2c_board_info __initdata com6l_adpt_eeprom[] = { ++ { ++ I2C_BOARD_INFO("24c256", 0x50), ++ .platform_data = &beagle_at24_eeprom_info, ++ }, ++}; ++ + static int __init omap3_beagle_i2c_init(void) + { + omap3_pmic_get_config(&beagle_twldata, +@@ -875,6 +891,9 @@ static int __init omap3_beagle_i2c_init(void) + case EXPANSION_I2C_ZIPPY: + omap_register_i2c_bus(2, 400, zippy_i2c2_rtc, ARRAY_SIZE(zippy_i2c2_rtc)); + break; ++ case EXPANSION_I2C_COM6L: ++ omap_register_i2c_bus(2, 400, com6l_adpt_eeprom, ARRAY_SIZE(com6l_adpt_eeprom)); ++ break; + default: + omap_register_i2c_bus(2, 400, NULL, 0); + } +@@ -1155,6 +1174,7 @@ static void __init omap3_beagle_init(void) + omap_mux_init_signal("sdmmc2_dat3.sdmmc2_dat3", OMAP_PIN_INPUT_PULLUP); + + expansion_config.mmc_settings = EXPANSION_MMC_WIFI; ++ expansion_config.i2c_settings = EXPANSION_I2C_COM6L; + #endif + } + +-- +1.7.10.4 + diff --git a/src/patches/kernel/omap/beagle/expansion/0011-WIP-Beagle-expansion-extend-spidev-to-uart2.patch b/src/patches/kernel/omap/beagle/expansion/0011-WIP-Beagle-expansion-extend-spidev-to-uart2.patch new file mode 100644 index 0000000..2039e4a --- /dev/null +++ b/src/patches/kernel/omap/beagle/expansion/0011-WIP-Beagle-expansion-extend-spidev-to-uart2.patch @@ -0,0 +1,43 @@ +From d78f1a01cc52ebad5d59edad772f2b403bfe67bd Mon Sep 17 00:00:00 2001 +From: Robert Nelson robertcnelson@gmail.com +Date: Wed, 12 Dec 2012 11:34:29 -0600 +Subject: [PATCH 11/11] WIP: Beagle: expansion: extend spidev to uart2 + +Signed-off-by: Robert Nelson robertcnelson@gmail.com +--- + arch/arm/mach-omap2/board-omap3beagle.c | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) + +diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c +index 4fa880a..e4cfd5f 100644 +--- a/arch/arm/mach-omap2/board-omap3beagle.c ++++ b/arch/arm/mach-omap2/board-omap3beagle.c +@@ -1162,6 +1162,16 @@ static void __init omap3_beagle_init(void) + if (gpio_is_valid(beagle_config.dvi_pd_gpio)) + omap_mux_init_gpio(beagle_config.dvi_pd_gpio, OMAP_PIN_OUTPUT); + omap_display_init(&beagle_dss_data); ++ ++ if (!strcmp(expansionboard_name, "spidev")) ++ { ++ pr_info("Beagle expansion: spidev: enable uart2/ttyO1\n"); ++ omap_mux_init_signal("uart2_tx.uart2_tx", OMAP_PIN_OUTPUT); ++ omap_mux_init_signal("uart2_rts.uart2_rts", OMAP_PIN_OUTPUT); ++ omap_mux_init_signal("uart2_cts.uart2_cts", OMAP_PIN_INPUT); ++ omap_mux_init_signal("mcbsp3_fsx.uart2_rx", OMAP_PIN_INPUT); ++ } ++ + omap_serial_init(); + omap_sdrc_init(mt46h32m32lf6_sdrc_params, + mt46h32m32lf6_sdrc_params); +@@ -1248,7 +1258,7 @@ static void __init omap3_beagle_init(void) + + if (!strcmp(expansionboard_name, "spidev")) + { +- pr_info("Beagle expansionboard: registering spidev\n"); ++ pr_info("Beagle expansionboard: spidev: enabling spi3/spi4\n"); + omap3_beagle_config_mcspi3_mux(); + omap3_beagle_config_mcspi4_mux(); + spi_register_board_info(beagle_mcspi_board_info, ARRAY_SIZE(beagle_mcspi_board_info)); +-- +1.7.10.4 + diff --git a/src/patches/kernel/omap/panda/0001-panda-fix-wl12xx-regulator.patch b/src/patches/kernel/omap/panda/0001-panda-fix-wl12xx-regulator.patch new file mode 100644 index 0000000..de0e84b --- /dev/null +++ b/src/patches/kernel/omap/panda/0001-panda-fix-wl12xx-regulator.patch @@ -0,0 +1,27 @@ +From a3abd1593e381deb4b1f358a55069988996eeae4 Mon Sep 17 00:00:00 2001 +From: Robert Nelson robertcnelson@gmail.com +Date: Tue, 2 Aug 2011 21:55:34 -0500 +Subject: [PATCH 1/2] panda: fix wl12xx regulator + +pulled from: http://elinux.org/Panda_How_to_kernel_3_0_rel + +Signed-off-by: Robert Nelson robertcnelson@gmail.com +--- + arch/arm/mach-omap2/twl-common.c | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +diff --git a/arch/arm/mach-omap2/twl-common.c b/arch/arm/mach-omap2/twl-common.c +index e49b40b..0fd1a70 100644 +--- a/arch/arm/mach-omap2/twl-common.c ++++ b/arch/arm/mach-omap2/twl-common.c +@@ -360,6 +360,7 @@ static struct regulator_init_data omap4_vusb_idata = { + static struct regulator_init_data omap4_clk32kg_idata = { + .constraints = { + .valid_ops_mask = REGULATOR_CHANGE_STATUS, ++ .always_on = true, + }, + }; + +-- +1.7.7.6 + diff --git a/src/patches/kernel/omap/panda/0002-ti-st-st-kim-fixing-firmware-path.patch b/src/patches/kernel/omap/panda/0002-ti-st-st-kim-fixing-firmware-path.patch new file mode 100644 index 0000000..694bc36 --- /dev/null +++ b/src/patches/kernel/omap/panda/0002-ti-st-st-kim-fixing-firmware-path.patch @@ -0,0 +1,36 @@ +From 8de5d11f076ee25182df805ab78e0823ce4dd2be Mon Sep 17 00:00:00 2001 +From: Ricardo Salveti de Araujo ricardo.salveti@linaro.org +Date: Tue, 25 Oct 2011 10:06:39 +0200 +Subject: [PATCH 2/2] ti-st/st-kim: fixing firmware path + +Signed-off-by: Ricardo Salveti de Araujo ricardo.salveti@linaro.org +Signed-off-by: Robert Nelson robertcnelson@gmail.com +--- + drivers/misc/ti-st/st_kim.c | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/drivers/misc/ti-st/st_kim.c b/drivers/misc/ti-st/st_kim.c +index 9ff942a..f673464 100644 +--- a/drivers/misc/ti-st/st_kim.c ++++ b/drivers/misc/ti-st/st_kim.c +@@ -244,7 +244,7 @@ static long read_local_version(struct kim_data_s *kim_gdata, char *bts_scr_name) + if (version & 0x8000) + maj_ver |= 0x0008; + +- sprintf(bts_scr_name, "TIInit_%d.%d.%d.bts", chip, maj_ver, min_ver); ++ sprintf(bts_scr_name, "ti-connectivity/TIInit_%d.%d.%d.bts", chip, maj_ver, min_ver); + + /* to be accessed later via sysfs entry */ + kim_gdata->version.full = version; +@@ -287,7 +287,7 @@ static long download_firmware(struct kim_data_s *kim_gdata) + long len = 0; + unsigned char *ptr = NULL; + unsigned char *action_ptr = NULL; +- unsigned char bts_scr_name[30] = { 0 }; /* 30 char long bts scr name? */ ++ unsigned char bts_scr_name[50] = { 0 }; /* 50 char long bts scr name? */ + int wr_room_space; + int cmd_size; + unsigned long timeout; +-- +1.7.7.6 + diff --git a/src/patches/kernel/omap/panda/0003-Panda-expansion-add-spidev.patch b/src/patches/kernel/omap/panda/0003-Panda-expansion-add-spidev.patch new file mode 100644 index 0000000..9369852 --- /dev/null +++ b/src/patches/kernel/omap/panda/0003-Panda-expansion-add-spidev.patch @@ -0,0 +1,112 @@ +From 3304f2feba4999fc1013911f0cf0d9acc33a0117 Mon Sep 17 00:00:00 2001 +From: Adrien Ferre ferre.adrien@gmail.com +Date: Mon, 25 Mar 2013 12:00:38 -0500 +Subject: [PATCH 3/3] Panda: expansion: add spidev + +I've made a patch to enable spidev on pandaboards using buddy=spidev just like for beagle. + +https://github.com/RobertCNelson/stable-kernel/issues/22 + +Signed-off-by: Adrien Ferre ferre.adrien@gmail.com +Signed-off-by: Robert Nelson robertcnelson@gmail.com +--- + arch/arm/mach-omap2/board-omap4panda.c | 43 ++++++++++++++++++++++++++++++++ + 1 file changed, 43 insertions(+) + +diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c +index 1e2c75e..3563f86 100644 +--- a/arch/arm/mach-omap2/board-omap4panda.c ++++ b/arch/arm/mach-omap2/board-omap4panda.c +@@ -22,6 +22,7 @@ + #include <linux/clk.h> + #include <linux/io.h> + #include <linux/leds.h> ++#include <linux/irq.h> + #include <linux/gpio.h> + #include <linux/usb/otg.h> + #include <linux/i2c/twl.h> +@@ -35,6 +36,7 @@ + #include <linux/wl12xx.h> + #include <linux/irqchip/arm-gic.h> + #include <linux/platform_data/omap-abe-twl6040.h> ++#include <linux/spi/spi.h> + + #include <asm/mach-types.h> + #include <asm/mach/arch.h> +@@ -54,6 +56,8 @@ + #define GPIO_WIFI_PMENA 43 + #define GPIO_WIFI_IRQ 53 + ++char expboard_name[16]; ++ + /* wl127x BT, FM, GPS connectivity chip */ + static struct ti_st_plat_data wilink_platform_data = { + .nshutdown_gpio = 46, +@@ -99,6 +103,25 @@ static struct platform_device leds_gpio = { + }, + }; + ++static struct spi_board_info panda_mcspi_board_info[] = { ++ /* spi 1.0 */ ++ { ++ .modalias = "spidev", ++ .max_speed_hz = 48000000, //48 Mbps ++ .bus_num = 1, ++ .chip_select = 0, ++ .mode = SPI_MODE_1, ++ }, ++ /* spi 1.1 */ ++ { ++ .modalias = "spidev", ++ .max_speed_hz = 48000000, //48 Mbps ++ .bus_num = 1, ++ .chip_select = 1, ++ .mode = SPI_MODE_1, ++ }, ++}; ++ + static struct omap_abe_twl6040_data panda_abe_audio_data = { + /* Audio out */ + .has_hs = ABE_TWL6040_LEFT | ABE_TWL6040_RIGHT, +@@ -161,6 +184,18 @@ static struct usbhs_omap_platform_data usbhs_bdata __initdata = { + .port_mode[0] = OMAP_EHCI_PORT_MODE_PHY, + }; + ++static int __init expansionboard_setup(char *str) ++{ ++ if (!machine_is_omap4_panda()) ++ return 0; ++ ++ if (!str) ++ return -EINVAL; ++ strncpy(expboard_name, str, 16); ++ pr_info("Panda expansionboard: %s\n", expboard_name); ++ return 0; ++} ++ + static void __init omap4_ehci_init(void) + { + int ret; +@@ -435,11 +470,19 @@ static void __init omap4_panda_init(void) + omap_sdrc_init(NULL, NULL); + omap4_twl6030_hsmmc_init(mmc); + omap4_ehci_init(); ++ if (!strcmp(expboard_name, "spidev")) { ++ #if IS_ENABLED(CONFIG_SPI_SPIDEV) ++ pr_info("Panda expansionboard: spidev: enabling spi3/spi4\n"); ++ spi_register_board_info(panda_mcspi_board_info, ARRAY_SIZE(panda_mcspi_board_info)); ++ #endif ++ } + usb_bind_phy("musb-hdrc.2.auto", 0, "omap-usb2.3.auto"); + usb_musb_init(&musb_board_data); + omap4_panda_display_init(); + } + ++early_param("buddy", expansionboard_setup); ++ + MACHINE_START(OMAP4_PANDA, "OMAP4 Panda board") + /* Maintainer: David Anders - Texas Instruments Inc */ + .atag_offset = 0x100, +-- +1.7.10.4 + diff --git a/src/patches/kernel/omap/panda/0004-HACK-PandaES-disable-cpufreq-so-board-will-boot.patch b/src/patches/kernel/omap/panda/0004-HACK-PandaES-disable-cpufreq-so-board-will-boot.patch new file mode 100644 index 0000000..12194e4 --- /dev/null +++ b/src/patches/kernel/omap/panda/0004-HACK-PandaES-disable-cpufreq-so-board-will-boot.patch @@ -0,0 +1,38 @@ +From 359104632fa556e3c5c78e4016c2585896225716 Mon Sep 17 00:00:00 2001 +From: Robert Nelson robertcnelson@gmail.com +Date: Mon, 1 Apr 2013 12:17:50 -0500 +Subject: [PATCH 4/4] HACK: PandaES: disable cpufreq so board will boot + +Signed-off-by: Robert Nelson robertcnelson@gmail.com +--- + drivers/cpufreq/omap-cpufreq.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/drivers/cpufreq/omap-cpufreq.c b/drivers/cpufreq/omap-cpufreq.c +index 0279d18..0a8ac09 100644 +--- a/drivers/cpufreq/omap-cpufreq.c ++++ b/drivers/cpufreq/omap-cpufreq.c +@@ -31,6 +31,8 @@ + #include <asm/smp_plat.h> + #include <asm/cpu.h> + ++#include "../../arch/arm/mach-omap2/soc.h" ++ + /* OPP tolerance in percentage */ + #define OPP_TOLERANCE 4 + +@@ -246,6 +248,11 @@ static struct cpufreq_driver omap_driver = { + + static int omap_cpufreq_probe(struct platform_device *pdev) + { ++ if (cpu_is_omap446x()) { ++ pr_err("%s: unsupported Silicon?\n", __func__); ++ return -EINVAL; ++ } ++ + mpu_dev = get_cpu_device(0); + if (!mpu_dev) { + pr_warning("%s: unable to get the mpu device\n", __func__); +-- +1.7.10.4 + diff --git a/src/patches/kernel/omap/panda/0006-ARM-hw_breakpoint-Enable-debug-powerdown-only-if-sys.patch b/src/patches/kernel/omap/panda/0006-ARM-hw_breakpoint-Enable-debug-powerdown-only-if-sys.patch new file mode 100644 index 0000000..fa64934 --- /dev/null +++ b/src/patches/kernel/omap/panda/0006-ARM-hw_breakpoint-Enable-debug-powerdown-only-if-sys.patch @@ -0,0 +1,122 @@ +From 76c1d8cdfa0967b04ca8168a77bb101d4ea71150 Mon Sep 17 00:00:00 2001 +From: Santosh Shilimkar santosh.shilimkar@ti.com +Date: Mon, 18 Mar 2013 06:51:30 +0000 +Subject: [PATCH 6/6] ARM: hw_breakpoint: Enable debug powerdown only if + system supports 'has_ossr' + +On Friday 15 March 2013 10:30 AM, Will Deacon wrote: +> On Thu, Mar 14, 2013 at 01:08:00PM +0530, Santosh Shilimkar wrote: +>> Will, +> +> Hi guys, +> +> I'm out of the office at the moment and have really terrible connectivity, +> so I can't do too much until next week. However, I don't think adding the +> has_ossr check is the right fix for this problem. +> +>> On Wednesday 13 March 2013 05:59 PM, Lokesh Vutla wrote: +>>> Hi Dietmar, +>>> On Wednesday 13 March 2013 05:35 PM, Dietmar Eggemann wrote: +>>>> On 13/03/13 06:52, Lokesh Vutla wrote: +>>>>> Commit {9a6eb31 ARM: hw_breakpoint: Debug powerdown support for +>>>>> self-hosted +>>>>> debug} introduces debug powerdown support for self-hosted debug. +>>>>> While merging the patch 'has_ossr' check was removed which +>>>>> was needed for hardwares which doesn't support self-hosted debug. +>>>>> Pandaboard (A9) is one such hardware and Dietmar's orginial +>>>>> patch did mention this issue. +>>>>> Without that check on Panda with CPUIDLE enabled, a flood of +>>>>> below messages thrown. +>>>>> +>>>>> [ 3.597930] hw-breakpoint: CPU 0 failed to disable vector catch +>>>>> [ 3.597991] hw-breakpoint: CPU 1 failed to disable vector catch +> +> Ok, so this means that we've taken an undefined instruction exception while +> trying to reset the debug registers on the PM_EXIT path. Now, the code there +> deals with CPUs that don't have the save/restore registers just fine, so +> that shouldn't have anything to do with this problem, particularly if the +> bit that is tripping us up is related to clearing vector catch. +> +Agree. + +> Furthermore, I was under the impression that hw_breakpoint did actually +> work on panda, which implies that a cold boot *does* manage to reset the +> registers (can you please confirm this by looking in your dmesg during +> boot?). In that case, it seems as though a PM cycle is powering down a +> bunch of debug logic that was powered up during boot, and then we trip over +> because we can't access the register bank. +> +Actually it seems to be without PM. Thanks to analysis from Lokesh, the issue +can be seen even with just suspend or cpu hotplug. So cold boot as such is +fine. + +> The proper solution to this problem requires us to establish exactly what is +> turning off the debug registers, and then having an OMAP PM notifier to +> enable it again. Assuming this has always been the case, I expect hardware +> debug across PM fails silently with older kernels. +> +This has been always the case it seems with CPU power cycle. +After the CPU is power cycled, 'DBGAUTHSTATUS' reads '0xaa' rather +than '0xaf' which means 'DBGEN = 0' and hence code fails to enable +monitor mode. This happens on both secure and GP devices and it can not +be patched since the secure code is ROM'ed. We didn't notice so far +because hw_breakpoint support was not default enabled on OMAP till the +multi-platform build. + +>> I was also wondering whether we should just warn once rather +>> than continuous warnings in the notifier. Patch is end of the +>> email. +> +> Could do, but I'd like to see a fix for the real issue before we simply hide +> the warnings :) +> +Agree here too. As evident above, the feature won't work on OMAP4 +devices with PM and hence some solution is needed. + +What you think of below ? + +>From d74b4264f6a5967b0f7ada96aad77ab0ac30dbed Mon Sep 17 00:00:00 2001 +From: Santosh Shilimkar santosh.shilimkar@ti.com +Date: Mon, 18 Mar 2013 11:59:04 +0530 +Subject: [PATCH] ARM: hw_breakpoints: Check for CPU debug availability before + enabling it + +CPU debug features like hardware break, watchpoints can be used only when +the debug mode is enabled and available for non-secure mode. + +Hence check 'DBGAUTHSTATUS.DBGEN' before proceeding to enable the +features. + +Thanks to Will for pointers and Lokesh for the analysis of the issue on +OMAP4 where after a CPU power cycle, debug mode gets disabled. + +Cc: Will Deacon Will.Deacon@arm.com + +Tested-by: Lokesh Vutla lokeshvutla@ti.com +Signed-off-by: Santosh Shilimkar santosh.shilimkar@ti.com +--- + arch/arm/kernel/hw_breakpoint.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/arch/arm/kernel/hw_breakpoint.c b/arch/arm/kernel/hw_breakpoint.c +index 96093b7..683a7cf 100644 +--- a/arch/arm/kernel/hw_breakpoint.c ++++ b/arch/arm/kernel/hw_breakpoint.c +@@ -930,6 +930,14 @@ static void reset_ctrl_regs(void *unused) + int i, raw_num_brps, err = 0, cpu = smp_processor_id(); + u32 val; + ++ /* Check if we have access to CPU debug features */ ++ ARM_DBG_READ(c7, c14, 6, val); ++ if ((val & 0x1) == 0) { ++ pr_warn_once("CPU %d debug is unavailable\n", cpu); ++ cpumask_or(&debug_err_mask, &debug_err_mask, cpumask_of(cpu)); ++ return; ++ } ++ + /* + * v7 debug contains save and restore registers so that debug state + * can be maintained across low-power modes without leaving the debug +-- +1.7.10.4 + diff --git a/src/patches/kernel/omap/panda/0007-Revert-regulator-twl-Remove-TWL6030_FIXED_RESOURCE.patch b/src/patches/kernel/omap/panda/0007-Revert-regulator-twl-Remove-TWL6030_FIXED_RESOURCE.patch new file mode 100644 index 0000000..0799d83 --- /dev/null +++ b/src/patches/kernel/omap/panda/0007-Revert-regulator-twl-Remove-TWL6030_FIXED_RESOURCE.patch @@ -0,0 +1,39 @@ +From 42d8b74383b670412107c943efd2fec46aa04158 Mon Sep 17 00:00:00 2001 +From: Robert Nelson robertcnelson@gmail.com +Date: Sat, 1 Jun 2013 16:32:46 -0500 +Subject: [PATCH 07/10] Revert "regulator: twl: Remove TWL6030_FIXED_RESOURCE" + +This reverts commit d1924519fe1dada0cfd9a228bf2ff1ea15840c84. + +Signed-off-by: Robert Nelson robertcnelson@gmail.com +--- + drivers/regulator/twl-regulator.c | 13 +++++++++++++ + 1 file changed, 13 insertions(+) + +diff --git a/drivers/regulator/twl-regulator.c b/drivers/regulator/twl-regulator.c +index fb6e67d..7ce7edf 100644 +--- a/drivers/regulator/twl-regulator.c ++++ b/drivers/regulator/twl-regulator.c +@@ -933,6 +933,19 @@ static const struct twlreg_info TWLFIXED_INFO_##label = { \ + }, \ + } + ++#define TWL6030_FIXED_RESOURCE(label, offset, turnon_delay) \ ++static struct twlreg_info TWLRES_INFO_##label = { \ ++ .base = offset, \ ++ .desc = { \ ++ .name = #label, \ ++ .id = TWL6030_REG_##label, \ ++ .ops = &twl6030_fixed_resource, \ ++ .type = REGULATOR_VOLTAGE, \ ++ .owner = THIS_MODULE, \ ++ .enable_time = turnon_delay, \ ++ }, \ ++ } ++ + #define TWL6025_ADJUSTABLE_SMPS(label, offset) \ + static const struct twlreg_info TWLSMPS_INFO_##label = { \ + .base = offset, \ +-- +1.7.10.4 + diff --git a/src/patches/kernel/omap/panda/0008-Revert-regulator-twl-Remove-another-unused-variable-.patch b/src/patches/kernel/omap/panda/0008-Revert-regulator-twl-Remove-another-unused-variable-.patch new file mode 100644 index 0000000..4abbd05 --- /dev/null +++ b/src/patches/kernel/omap/panda/0008-Revert-regulator-twl-Remove-another-unused-variable-.patch @@ -0,0 +1,34 @@ +From 48e4598f1b8e9dd486d551b76c5f5021d0dc946d Mon Sep 17 00:00:00 2001 +From: Robert Nelson robertcnelson@gmail.com +Date: Sat, 1 Jun 2013 16:32:48 -0500 +Subject: [PATCH 08/10] Revert "regulator: twl: Remove another unused variable + warning" + +This reverts commit 029dd3cefa46ecdd879f9b4e2df3bdf4371cc22c. + +Signed-off-by: Robert Nelson robertcnelson@gmail.com +--- + drivers/regulator/twl-regulator.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/drivers/regulator/twl-regulator.c b/drivers/regulator/twl-regulator.c +index 7ce7edf..124a2f2 100644 +--- a/drivers/regulator/twl-regulator.c ++++ b/drivers/regulator/twl-regulator.c +@@ -633,6 +633,13 @@ static struct regulator_ops twl6030fixed_ops = { + .get_status = twl6030reg_get_status, + }; + ++static struct regulator_ops twl6030_fixed_resource = { ++ .enable = twl6030reg_enable, ++ .disable = twl6030reg_disable, ++ .is_enabled = twl6030reg_is_enabled, ++ .get_status = twl6030reg_get_status, ++}; ++ + /* + * SMPS status and control + */ +-- +1.7.10.4 + diff --git a/src/patches/kernel/omap/panda/0009-Revert-regulator-twl-Remove-references-to-the-twl403.patch b/src/patches/kernel/omap/panda/0009-Revert-regulator-twl-Remove-references-to-the-twl403.patch new file mode 100644 index 0000000..27bc6ea --- /dev/null +++ b/src/patches/kernel/omap/panda/0009-Revert-regulator-twl-Remove-references-to-the-twl403.patch @@ -0,0 +1,28 @@ +From 76cc643690032d9789bbd17c9a3542cae4b0603e Mon Sep 17 00:00:00 2001 +From: Robert Nelson robertcnelson@gmail.com +Date: Sat, 1 Jun 2013 16:32:51 -0500 +Subject: [PATCH 09/10] Revert "regulator: twl: Remove references to the + twl4030 regulator" + +This reverts commit e76ab829cc2d8b6350a3f01fffb208df4d7d8c1b. + +Signed-off-by: Robert Nelson robertcnelson@gmail.com +--- + drivers/regulator/twl-regulator.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/regulator/twl-regulator.c b/drivers/regulator/twl-regulator.c +index 124a2f2..5a18317 100644 +--- a/drivers/regulator/twl-regulator.c ++++ b/drivers/regulator/twl-regulator.c +@@ -1021,6 +1021,7 @@ TWL6030_FIXED_LDO(VDAC, 0x64, 1800, 0); + TWL6030_FIXED_LDO(VUSB, 0x70, 3300, 0); + TWL6030_FIXED_LDO(V1V8, 0x16, 1800, 0); + TWL6030_FIXED_LDO(V2V1, 0x1c, 2100, 0); ++TWL6030_FIXED_RESOURCE(CLK32KG, 0x8C, 0); + TWL6025_ADJUSTABLE_SMPS(SMPS3, 0x34); + TWL6025_ADJUSTABLE_SMPS(SMPS4, 0x10); + TWL6025_ADJUSTABLE_SMPS(VIO, 0x16); +-- +1.7.10.4 + diff --git a/src/patches/kernel/omap/panda/0010-Revert-regulator-twl-Remove-references-to-32kHz-cloc.patch b/src/patches/kernel/omap/panda/0010-Revert-regulator-twl-Remove-references-to-32kHz-cloc.patch new file mode 100644 index 0000000..ad18b29 --- /dev/null +++ b/src/patches/kernel/omap/panda/0010-Revert-regulator-twl-Remove-references-to-32kHz-cloc.patch @@ -0,0 +1,49 @@ +From ffdb3fad79cf70dcc943764f075215d6525435be Mon Sep 17 00:00:00 2001 +From: Robert Nelson robertcnelson@gmail.com +Date: Sat, 1 Jun 2013 16:32:54 -0500 +Subject: [PATCH 10/10] Revert "regulator: twl: Remove references to 32kHz + clock from DT bindings" + +This reverts commit 0e8e5c34cf1a8beaaf0a6a05c053592693bf8cb4. + +Signed-off-by: Robert Nelson robertcnelson@gmail.com +--- + Documentation/devicetree/bindings/regulator/twl-regulator.txt | 1 + + drivers/regulator/twl-regulator.c | 2 ++ + 2 files changed, 3 insertions(+) + +diff --git a/Documentation/devicetree/bindings/regulator/twl-regulator.txt b/Documentation/devicetree/bindings/regulator/twl-regulator.txt +index 658749b..0c3395d 100644 +--- a/Documentation/devicetree/bindings/regulator/twl-regulator.txt ++++ b/Documentation/devicetree/bindings/regulator/twl-regulator.txt +@@ -15,6 +15,7 @@ For twl6030 regulators/LDOs + - "ti,twl6030-vusb" for VUSB LDO + - "ti,twl6030-v1v8" for V1V8 LDO + - "ti,twl6030-v2v1" for V2V1 LDO ++ - "ti,twl6030-clk32kg" for CLK32KG RESOURCE + - "ti,twl6030-vdd1" for VDD1 SMPS + - "ti,twl6030-vdd2" for VDD2 SMPS + - "ti,twl6030-vdd3" for VDD3 SMPS +diff --git a/drivers/regulator/twl-regulator.c b/drivers/regulator/twl-regulator.c +index 5a18317..40f27bb 100644 +--- a/drivers/regulator/twl-regulator.c ++++ b/drivers/regulator/twl-regulator.c +@@ -1054,6 +1054,7 @@ static u8 twl_get_smps_mult(void) + #define TWL6030_OF_MATCH(comp, label) TWL_OF_MATCH(comp, TWL6030, label) + #define TWL6025_OF_MATCH(comp, label) TWL_OF_MATCH(comp, TWL6025, label) + #define TWLFIXED_OF_MATCH(comp, label) TWL_OF_MATCH(comp, TWLFIXED, label) ++#define TWLRES_OF_MATCH(comp, label) TWL_OF_MATCH(comp, TWLRES, label) + #define TWLSMPS_OF_MATCH(comp, label) TWL_OF_MATCH(comp, TWLSMPS, label) + + static const struct of_device_id twl_of_match[] = { +@@ -1101,6 +1102,7 @@ static const struct of_device_id twl_of_match[] = { + TWLFIXED_OF_MATCH("ti,twl6030-vusb", VUSB), + TWLFIXED_OF_MATCH("ti,twl6030-v1v8", V1V8), + TWLFIXED_OF_MATCH("ti,twl6030-v2v1", V2V1), ++ TWLRES_OF_MATCH("ti,twl6030-clk32kg", CLK32KG), + TWLSMPS_OF_MATCH("ti,twl6025-smps3", SMPS3), + TWLSMPS_OF_MATCH("ti,twl6025-smps4", SMPS4), + TWLSMPS_OF_MATCH("ti,twl6025-vio", VIO), +-- +1.7.10.4 + diff --git a/src/patches/kernel/omap/panda/0011-panda-spidev-setup-pinmux.patch b/src/patches/kernel/omap/panda/0011-panda-spidev-setup-pinmux.patch new file mode 100644 index 0000000..da9fcda --- /dev/null +++ b/src/patches/kernel/omap/panda/0011-panda-spidev-setup-pinmux.patch @@ -0,0 +1,50 @@ +From 9f5066a898b77f2fe2b1f0946bb6afebe3d08f6d Mon Sep 17 00:00:00 2001 +From: Yann yann.wanwanscappel@free.fr +Date: Sat, 8 Jun 2013 13:06:37 -0500 +Subject: [PATCH 7/7] panda: spidev: setup pinmux + +It works fine on my board, I've been able to perform data transfers using the spidev_test program provided in kernel documentation +(shortcut between SIMO and SOMI to perform an hardware loopback). I also checked that CS0 and CS1 and CLK are properly driven using my scope. + +The clock is strangely configured as input, but it is also the case for omap3 beagle board, so I guess this is fine. + +Signed-off-by: Yann yann.wanwanscappel@free.fr +Signed-off-by: Robert Nelson robertcnelson@gmail.com +--- + arch/arm/mach-omap2/board-omap4panda.c | 13 ++++++++++++- + 1 file changed, 12 insertions(+), 1 deletion(-) + +diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c +index 3563f86..10bb576 100644 +--- a/arch/arm/mach-omap2/board-omap4panda.c ++++ b/arch/arm/mach-omap2/board-omap4panda.c +@@ -103,6 +103,16 @@ static struct platform_device leds_gpio = { + }, + }; + ++static void __init omap4_panda_config_mcspi1_mux(void) ++{ ++ /* NOTE: Clock pins need to be in input mode */ ++ omap_mux_init_signal("mcspi1_clk", OMAP_PIN_INPUT); ++ omap_mux_init_signal("mcspi1_simo", OMAP_PIN_OUTPUT); ++ omap_mux_init_signal("mcspi1_somi", OMAP_PIN_INPUT_PULLUP); ++ omap_mux_init_signal("mcspi1_cs0", OMAP_PIN_OUTPUT); ++ omap_mux_init_signal("mcspi1_cs1", OMAP_PIN_OUTPUT); ++} ++ + static struct spi_board_info panda_mcspi_board_info[] = { + /* spi 1.0 */ + { +@@ -472,7 +482,8 @@ static void __init omap4_panda_init(void) + omap4_ehci_init(); + if (!strcmp(expboard_name, "spidev")) { + #if IS_ENABLED(CONFIG_SPI_SPIDEV) +- pr_info("Panda expansionboard: spidev: enabling spi3/spi4\n"); ++ pr_info("Panda expansionboard: spidev: enabling spi1.0 and spi1.1\n"); ++ omap4_panda_config_mcspi1_mux(); + spi_register_board_info(panda_mcspi_board_info, ARRAY_SIZE(panda_mcspi_board_info)); + #endif + } +-- +1.7.10.4 + diff --git a/src/patches/kernel/omap/sakoman/0001-OMAP-DSS2-add-bootarg-for-selecting-svideo.patch b/src/patches/kernel/omap/sakoman/0001-OMAP-DSS2-add-bootarg-for-selecting-svideo.patch new file mode 100644 index 0000000..8e8a08e --- /dev/null +++ b/src/patches/kernel/omap/sakoman/0001-OMAP-DSS2-add-bootarg-for-selecting-svideo.patch @@ -0,0 +1,78 @@ +From 6bce72b21600d9f52ae60d5bf80d00152eb75b50 Mon Sep 17 00:00:00 2001 +From: Steve Sakoman steve@sakoman.com +Date: Tue, 19 Jan 2010 21:19:15 -0800 +Subject: [PATCH 1/2] OMAP: DSS2: add bootarg for selecting svideo + + OMAP: DSS2: add bootarg for selecting svideo or composite for tv output + also add pal-16 and ntsc-16 omapfb.mode settings for 16bpp + +Signed-off-by: Robert Nelson robertcnelson@gmail.com +--- + drivers/video/omap2/dss/venc.c | 22 ++++++++++++++++++++++ + drivers/video/omap2/omapfb/omapfb-main.c | 10 +++++++++- + 2 files changed, 31 insertions(+), 1 deletions(-) + +diff --git a/drivers/video/omap2/dss/venc.c b/drivers/video/omap2/dss/venc.c +index 56efa3b..d46f7f8 100644 +--- a/drivers/video/omap2/dss/venc.c ++++ b/drivers/video/omap2/dss/venc.c +@@ -86,6 +86,11 @@ + #define VENC_OUTPUT_TEST 0xC8 + #define VENC_DAC_B__DAC_C 0xC8 + ++static char *tv_connection; ++ ++module_param_named(tvcable, tv_connection, charp, 0); ++MODULE_PARM_DESC(tvcable, "TV connection type (svideo, composite)"); ++ + struct venc_config { + u32 f_control; + u32 vidout_ctrl; +@@ -465,6 +470,23 @@ static int venc_power_on(struct omap_dss_device *dssdev) + if (r) + goto err2; + ++ /* Allow the TV output to be overriden */ ++ if (tv_connection) { ++ if (strcmp(tv_connection, "svideo") == 0) { ++ printk(KERN_INFO ++ "omapdss: tv output is svideo.\n"); ++ dssdev->phy.venc.type = OMAP_DSS_VENC_TYPE_SVIDEO; ++ } else if (strcmp(tv_connection, "composite") == 0) { ++ printk(KERN_INFO ++ "omapdss: tv output is composite.\n"); ++ dssdev->phy.venc.type = OMAP_DSS_VENC_TYPE_COMPOSITE; ++ } else { ++ printk(KERN_INFO ++ "omapdss: unsupported output type'%s'.\n", ++ tv_connection); ++ } ++ } ++ + return 0; + + err2: +diff --git a/drivers/video/omap2/omapfb/omapfb-main.c b/drivers/video/omap2/omapfb/omapfb-main.c +index bc225e4..34d6679 100644 +--- a/drivers/video/omap2/omapfb/omapfb-main.c ++++ b/drivers/video/omap2/omapfb/omapfb-main.c +@@ -2032,7 +2032,15 @@ static int omapfb_mode_to_timings(const char *mode_str, + int r; + + #ifdef CONFIG_OMAP2_DSS_VENC +- if (strcmp(mode_str, "pal") == 0) { ++ if (strcmp(mode_str, "pal-16") == 0) { ++ *timings = omap_dss_pal_timings; ++ *bpp = 16; ++ return 0; ++ } else if (strcmp(mode_str, "ntsc-16") == 0) { ++ *timings = omap_dss_ntsc_timings; ++ *bpp = 16; ++ return 0; ++ } else if (strcmp(mode_str, "pal") == 0) { + *timings = omap_dss_pal_timings; + *bpp = 24; + return 0; +-- +1.7.7.6 + diff --git a/src/patches/kernel/omap/sakoman/0002-video-add-timings-for-hd720.patch b/src/patches/kernel/omap/sakoman/0002-video-add-timings-for-hd720.patch new file mode 100644 index 0000000..1b936f5 --- /dev/null +++ b/src/patches/kernel/omap/sakoman/0002-video-add-timings-for-hd720.patch @@ -0,0 +1,28 @@ +From 747de06d5cc69b2407684ba0455fff5c1d6af797 Mon Sep 17 00:00:00 2001 +From: Steve Sakoman steve@sakoman.com +Date: Sat, 19 Dec 2009 06:52:43 -0800 +Subject: [PATCH 2/2] video: add timings for hd720 + +Signed-off-by: Robert Nelson robertcnelson@gmail.com +--- + drivers/video/modedb.c | 4 ++++ + 1 files changed, 4 insertions(+), 0 deletions(-) + +diff --git a/drivers/video/modedb.c b/drivers/video/modedb.c +index a9a907c..5b686de 100644 +--- a/drivers/video/modedb.c ++++ b/drivers/video/modedb.c +@@ -103,6 +103,10 @@ static const struct fb_videomode modedb[] = { + { NULL, 70, 1024, 768, 13333, 144, 24, 29, 3, 136, 6, 0, + FB_VMODE_NONINTERLACED }, + ++ /* 1280x720 @ 60 Hz, 45 kHz hsync, CEA 681-E Format 4 */ ++ { "hd720", 60, 1280, 720, 13468, 220, 110, 20, 5, 40, 5, 0, ++ FB_VMODE_NONINTERLACED }, ++ + /* 1280x1024 @ 87 Hz interlaced, 51 kHz hsync */ + { NULL, 87, 1280, 1024, 12500, 56, 16, 128, 1, 216, 12, 0, + FB_VMODE_INTERLACED }, +-- +1.7.7.6 + diff --git a/src/patches/kernel/omap/sgx/0001-arm-Export-cache-flush-management-symbols-when-MULTI.patch b/src/patches/kernel/omap/sgx/0001-arm-Export-cache-flush-management-symbols-when-MULTI.patch new file mode 100644 index 0000000..1ca1e70 --- /dev/null +++ b/src/patches/kernel/omap/sgx/0001-arm-Export-cache-flush-management-symbols-when-MULTI.patch @@ -0,0 +1,34 @@ +From 29885f2f3d700341d322274db6ad085e601c0994 Mon Sep 17 00:00:00 2001 +From: Pantelis Antoniou panto@antoniou-consulting.com +Date: Fri, 4 Jan 2013 00:32:33 +0200 +Subject: [PATCH 3/3] arm: Export cache flush management symbols when + !MULTI_CACHE + +When compiling a kernel without CONFIG_MULTI_CACHE enabled the +dma access functions end up not being exported. Fix it. + +Signed-off-by: Pantelis Antoniou panto@antoniou-consulting.com +--- + arch/arm/kernel/setup.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c +index da1d1aa..dcb678c 100644 +--- a/arch/arm/kernel/setup.c ++++ b/arch/arm/kernel/setup.c +@@ -923,3 +923,12 @@ const struct seq_operations cpuinfo_op = { + .stop = c_stop, + .show = c_show + }; ++ ++/* export the cache management functions */ ++#ifndef MULTI_CACHE ++ ++EXPORT_SYMBOL(__glue(_CACHE,_dma_map_area)); ++EXPORT_SYMBOL(__glue(_CACHE,_dma_unmap_area)); ++EXPORT_SYMBOL(__glue(_CACHE,_dma_flush_range)); ++ ++#endif +-- +1.7.10.4 + diff --git a/src/patches/kernel/utilite/linux-3.10-compulab-utilite-support.patch b/src/patches/kernel/utilite/linux-3.10-compulab-utilite-support.patch new file mode 100644 index 0000000..3d7f676 --- /dev/null +++ b/src/patches/kernel/utilite/linux-3.10-compulab-utilite-support.patch @@ -0,0 +1,96 @@ +Add initial support for cm-fx6 module. + +cm-fx6 is a module based on mx6q SoC with the following features: +- Up to 4GB of DDR3 +- 1 LCD/DVI output port +- 1 HDMI output port +- 2 LVDS LCD ports +- Gigabit Ethernet +- Analog Audio +- CAN +- SATA +- NAND +- PCIE + +This patch allows to boot up the module, configures the serial console, +the Ethernet adapter and the heartbeat led. + +cm-fx6 is embedded inside the Utilite computer. + +Signed-off-by: Valentin Raevsky valentin@compulab.co.il +Signed-off-by: Igor Grinberg grinberg@compulab.co.il +--- + +Shawn, can this still be applied for 3.13 ? + +diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile +index f0895c5..7521a34 100644 +--- a/arch/arm/boot/dts/Makefile ++++ b/arch/arm/boot/dts/Makefile +@@ -117,6 +117,7 @@ dtb-$(CONFIG_ARCH_MXC) += \ + imx6dl-sabresd.dtb \ + imx6dl-wandboard.dtb \ + imx6q-arm2.dtb \ ++ imx6q-cm-fx6.dtb \ + imx6q-sabreauto.dtb \ + imx6q-sabrelite.dtb \ + imx6q-sabresd.dtb \ +diff --git a/arch/arm/boot/dts/imx6q-cm-fx6.dts b/arch/arm/boot/dts/imx6q-cm-fx6.dts +new file mode 100644 +index 0000000..2419751 +--- /dev/null ++++ b/arch/arm/boot/dts/imx6q-cm-fx6.dts +@@ -0,0 +1,53 @@ ++/* ++ * Copyright 2013 CompuLab Ltd. ++ * ++ * Author: Valentin Raevsky valentin@compulab.co.il ++ * ++ * The code contained herein is licensed under the GNU General Public ++ * License. You may obtain a copy of the GNU General Public License ++ * Version 2 or later at the following locations: ++ * ++ * http://www.opensource.org/licenses/gpl-license.html ++ * http://www.gnu.org/copyleft/gpl.html ++ */ ++ ++/dts-v1/; ++#include "imx6q.dtsi" ++ ++/ { ++ model = "CompuLab CM-FX6"; ++ compatible = "compulab,cm-fx6", "fsl,imx6q"; ++ ++ memory { ++ reg = <0x10000000 0x80000000>; ++ }; ++ ++ leds { ++ compatible = "gpio-leds"; ++ ++ heartbeat-led { ++ label = "Heartbeat"; ++ gpios = <&gpio2 31 0>; ++ linux,default-trigger = "heartbeat"; ++ }; ++ }; ++}; ++ ++&fec { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_enet_1>; ++ phy-mode = "rgmii"; ++ status = "okay"; ++}; ++ ++&gpmi { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_gpmi_nand_1>; ++ status = "okay"; ++}; ++ ++&uart4 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_uart4_1>; ++ status = "okay"; ++}; diff --git a/src/patches/kernel/wandboard/dts/0001-imx6qdl-wandboard-dts-backport.patch b/src/patches/kernel/wandboard/dts/0001-imx6qdl-wandboard-dts-backport.patch new file mode 100644 index 0000000..e1c6bea --- /dev/null +++ b/src/patches/kernel/wandboard/dts/0001-imx6qdl-wandboard-dts-backport.patch @@ -0,0 +1,6354 @@ +commit a97d4c27dd2eef64af9e5d778d05a8915cba6822 +Author: Stefan Schantl stefan.schantl@ipfire.org +Date: Mon Nov 18 21:34:31 2013 +0100 + + Backport dts for imx6qdl. + +diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile +index f0895c5..a3d2869 100644 +--- a/arch/arm/boot/dts/Makefile ++++ b/arch/arm/boot/dts/Makefile +@@ -120,7 +120,8 @@ dtb-$(CONFIG_ARCH_MXC) += \ + imx6q-sabreauto.dtb \ + imx6q-sabrelite.dtb \ + imx6q-sabresd.dtb \ +- imx6q-sbc6x.dtb ++ imx6q-sbc6x.dtb \ ++ imx6q-wandboard.dtb + dtb-$(CONFIG_ARCH_MXS) += imx23-evk.dtb \ + imx23-olinuxino.dtb \ + imx23-stmp378x_devb.dtb \ +diff --git a/arch/arm/boot/dts/imx6dl-pinfunc.h b/arch/arm/boot/dts/imx6dl-pinfunc.h +index 9aab950..b81a7a4 100644 +--- a/arch/arm/boot/dts/imx6dl-pinfunc.h ++++ b/arch/arm/boot/dts/imx6dl-pinfunc.h +@@ -14,1072 +14,1076 @@ + * The pin function ID is a tuple of + * <mux_reg conf_reg input_reg mux_mode input_val> + */ +-#define MX6DL_PAD_CSI0_DAT10__IPU1_CSI0_DATA10 0x04c 0x360 0x000 0x0 0x0 +-#define MX6DL_PAD_CSI0_DAT10__AUD3_RXC 0x04c 0x360 0x000 0x1 0x0 +-#define MX6DL_PAD_CSI0_DAT10__ECSPI2_MISO 0x04c 0x360 0x7f8 0x2 0x0 +-#define MX6DL_PAD_CSI0_DAT10__UART1_TX_DATA 0x04c 0x360 0x000 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT10__UART1_RX_DATA 0x04c 0x360 0x8fc 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT10__GPIO5_IO28 0x04c 0x360 0x000 0x5 0x0 +-#define MX6DL_PAD_CSI0_DAT10__ARM_TRACE07 0x04c 0x360 0x000 0x7 0x0 +-#define MX6DL_PAD_CSI0_DAT11__IPU1_CSI0_DATA11 0x050 0x364 0x000 0x0 0x0 +-#define MX6DL_PAD_CSI0_DAT11__AUD3_RXFS 0x050 0x364 0x000 0x1 0x0 +-#define MX6DL_PAD_CSI0_DAT11__ECSPI2_SS0 0x050 0x364 0x800 0x2 0x0 +-#define MX6DL_PAD_CSI0_DAT11__UART1_RX_DATA 0x050 0x364 0x8fc 0x3 0x1 +-#define MX6DL_PAD_CSI0_DAT11__UART1_TX_DATA 0x050 0x364 0x000 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT11__GPIO5_IO29 0x050 0x364 0x000 0x5 0x0 +-#define MX6DL_PAD_CSI0_DAT11__ARM_TRACE08 0x050 0x364 0x000 0x7 0x0 +-#define MX6DL_PAD_CSI0_DAT12__IPU1_CSI0_DATA12 0x054 0x368 0x000 0x0 0x0 +-#define MX6DL_PAD_CSI0_DAT12__EIM_DATA08 0x054 0x368 0x000 0x1 0x0 +-#define MX6DL_PAD_CSI0_DAT12__UART4_TX_DATA 0x054 0x368 0x000 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT12__UART4_RX_DATA 0x054 0x368 0x914 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT12__GPIO5_IO30 0x054 0x368 0x000 0x5 0x0 +-#define MX6DL_PAD_CSI0_DAT12__ARM_TRACE09 0x054 0x368 0x000 0x7 0x0 +-#define MX6DL_PAD_CSI0_DAT13__IPU1_CSI0_DATA13 0x058 0x36c 0x000 0x0 0x0 +-#define MX6DL_PAD_CSI0_DAT13__EIM_DATA09 0x058 0x36c 0x000 0x1 0x0 +-#define MX6DL_PAD_CSI0_DAT13__UART4_RX_DATA 0x058 0x36c 0x914 0x3 0x1 +-#define MX6DL_PAD_CSI0_DAT13__UART4_TX_DATA 0x058 0x36c 0x000 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT13__GPIO5_IO31 0x058 0x36c 0x000 0x5 0x0 +-#define MX6DL_PAD_CSI0_DAT13__ARM_TRACE10 0x058 0x36c 0x000 0x7 0x0 +-#define MX6DL_PAD_CSI0_DAT14__IPU1_CSI0_DATA14 0x05c 0x370 0x000 0x0 0x0 +-#define MX6DL_PAD_CSI0_DAT14__EIM_DATA10 0x05c 0x370 0x000 0x1 0x0 +-#define MX6DL_PAD_CSI0_DAT14__UART5_TX_DATA 0x05c 0x370 0x000 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT14__UART5_RX_DATA 0x05c 0x370 0x91c 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT14__GPIO6_IO00 0x05c 0x370 0x000 0x5 0x0 +-#define MX6DL_PAD_CSI0_DAT14__ARM_TRACE11 0x05c 0x370 0x000 0x7 0x0 +-#define MX6DL_PAD_CSI0_DAT15__IPU1_CSI0_DATA15 0x060 0x374 0x000 0x0 0x0 +-#define MX6DL_PAD_CSI0_DAT15__EIM_DATA11 0x060 0x374 0x000 0x1 0x0 +-#define MX6DL_PAD_CSI0_DAT15__UART5_RX_DATA 0x060 0x374 0x91c 0x3 0x1 +-#define MX6DL_PAD_CSI0_DAT15__UART5_TX_DATA 0x060 0x374 0x000 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT15__GPIO6_IO01 0x060 0x374 0x000 0x5 0x0 +-#define MX6DL_PAD_CSI0_DAT15__ARM_TRACE12 0x060 0x374 0x000 0x7 0x0 +-#define MX6DL_PAD_CSI0_DAT16__IPU1_CSI0_DATA16 0x064 0x378 0x000 0x0 0x0 +-#define MX6DL_PAD_CSI0_DAT16__EIM_DATA12 0x064 0x378 0x000 0x1 0x0 +-#define MX6DL_PAD_CSI0_DAT16__UART4_RTS_B 0x064 0x378 0x910 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT16__UART4_CTS_B 0x064 0x378 0x000 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT16__GPIO6_IO02 0x064 0x378 0x000 0x5 0x0 +-#define MX6DL_PAD_CSI0_DAT16__ARM_TRACE13 0x064 0x378 0x000 0x7 0x0 +-#define MX6DL_PAD_CSI0_DAT17__IPU1_CSI0_DATA17 0x068 0x37c 0x000 0x0 0x0 +-#define MX6DL_PAD_CSI0_DAT17__EIM_DATA13 0x068 0x37c 0x000 0x1 0x0 +-#define MX6DL_PAD_CSI0_DAT17__UART4_CTS_B 0x068 0x37c 0x000 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT17__UART4_RTS_B 0x068 0x37c 0x910 0x3 0x1 +-#define MX6DL_PAD_CSI0_DAT17__GPIO6_IO03 0x068 0x37c 0x000 0x5 0x0 +-#define MX6DL_PAD_CSI0_DAT17__ARM_TRACE14 0x068 0x37c 0x000 0x7 0x0 +-#define MX6DL_PAD_CSI0_DAT18__IPU1_CSI0_DATA18 0x06c 0x380 0x000 0x0 0x0 +-#define MX6DL_PAD_CSI0_DAT18__EIM_DATA14 0x06c 0x380 0x000 0x1 0x0 +-#define MX6DL_PAD_CSI0_DAT18__UART5_RTS_B 0x06c 0x380 0x918 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT18__UART5_CTS_B 0x06c 0x380 0x000 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT18__GPIO6_IO04 0x06c 0x380 0x000 0x5 0x0 +-#define MX6DL_PAD_CSI0_DAT18__ARM_TRACE15 0x06c 0x380 0x000 0x7 0x0 +-#define MX6DL_PAD_CSI0_DAT19__IPU1_CSI0_DATA19 0x070 0x384 0x000 0x0 0x0 +-#define MX6DL_PAD_CSI0_DAT19__EIM_DATA15 0x070 0x384 0x000 0x1 0x0 +-#define MX6DL_PAD_CSI0_DAT19__UART5_CTS_B 0x070 0x384 0x000 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT19__UART5_RTS_B 0x070 0x384 0x918 0x3 0x1 +-#define MX6DL_PAD_CSI0_DAT19__GPIO6_IO05 0x070 0x384 0x000 0x5 0x0 +-#define MX6DL_PAD_CSI0_DAT4__IPU1_CSI0_DATA04 0x074 0x388 0x000 0x0 0x0 +-#define MX6DL_PAD_CSI0_DAT4__EIM_DATA02 0x074 0x388 0x000 0x1 0x0 +-#define MX6DL_PAD_CSI0_DAT4__ECSPI1_SCLK 0x074 0x388 0x7d8 0x2 0x0 +-#define MX6DL_PAD_CSI0_DAT4__KEY_COL5 0x074 0x388 0x8c0 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT4__AUD3_TXC 0x074 0x388 0x000 0x4 0x0 +-#define MX6DL_PAD_CSI0_DAT4__GPIO5_IO22 0x074 0x388 0x000 0x5 0x0 +-#define MX6DL_PAD_CSI0_DAT4__ARM_TRACE01 0x074 0x388 0x000 0x7 0x0 +-#define MX6DL_PAD_CSI0_DAT5__IPU1_CSI0_DATA05 0x078 0x38c 0x000 0x0 0x0 +-#define MX6DL_PAD_CSI0_DAT5__EIM_DATA03 0x078 0x38c 0x000 0x1 0x0 +-#define MX6DL_PAD_CSI0_DAT5__ECSPI1_MOSI 0x078 0x38c 0x7e0 0x2 0x0 +-#define MX6DL_PAD_CSI0_DAT5__KEY_ROW5 0x078 0x38c 0x8cc 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT5__AUD3_TXD 0x078 0x38c 0x000 0x4 0x0 +-#define MX6DL_PAD_CSI0_DAT5__GPIO5_IO23 0x078 0x38c 0x000 0x5 0x0 +-#define MX6DL_PAD_CSI0_DAT5__ARM_TRACE02 0x078 0x38c 0x000 0x7 0x0 +-#define MX6DL_PAD_CSI0_DAT6__IPU1_CSI0_DATA06 0x07c 0x390 0x000 0x0 0x0 +-#define MX6DL_PAD_CSI0_DAT6__EIM_DATA04 0x07c 0x390 0x000 0x1 0x0 +-#define MX6DL_PAD_CSI0_DAT6__ECSPI1_MISO 0x07c 0x390 0x7dc 0x2 0x0 +-#define MX6DL_PAD_CSI0_DAT6__KEY_COL6 0x07c 0x390 0x8c4 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT6__AUD3_TXFS 0x07c 0x390 0x000 0x4 0x0 +-#define MX6DL_PAD_CSI0_DAT6__GPIO5_IO24 0x07c 0x390 0x000 0x5 0x0 +-#define MX6DL_PAD_CSI0_DAT6__ARM_TRACE03 0x07c 0x390 0x000 0x7 0x0 +-#define MX6DL_PAD_CSI0_DAT7__IPU1_CSI0_DATA07 0x080 0x394 0x000 0x0 0x0 +-#define MX6DL_PAD_CSI0_DAT7__EIM_DATA05 0x080 0x394 0x000 0x1 0x0 +-#define MX6DL_PAD_CSI0_DAT7__ECSPI1_SS0 0x080 0x394 0x7e4 0x2 0x0 +-#define MX6DL_PAD_CSI0_DAT7__KEY_ROW6 0x080 0x394 0x8d0 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT7__AUD3_RXD 0x080 0x394 0x000 0x4 0x0 +-#define MX6DL_PAD_CSI0_DAT7__GPIO5_IO25 0x080 0x394 0x000 0x5 0x0 +-#define MX6DL_PAD_CSI0_DAT7__ARM_TRACE04 0x080 0x394 0x000 0x7 0x0 +-#define MX6DL_PAD_CSI0_DAT8__IPU1_CSI0_DATA08 0x084 0x398 0x000 0x0 0x0 +-#define MX6DL_PAD_CSI0_DAT8__EIM_DATA06 0x084 0x398 0x000 0x1 0x0 +-#define MX6DL_PAD_CSI0_DAT8__ECSPI2_SCLK 0x084 0x398 0x7f4 0x2 0x0 +-#define MX6DL_PAD_CSI0_DAT8__KEY_COL7 0x084 0x398 0x8c8 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT8__I2C1_SDA 0x084 0x398 0x86c 0x4 0x0 +-#define MX6DL_PAD_CSI0_DAT8__GPIO5_IO26 0x084 0x398 0x000 0x5 0x0 +-#define MX6DL_PAD_CSI0_DAT8__ARM_TRACE05 0x084 0x398 0x000 0x7 0x0 +-#define MX6DL_PAD_CSI0_DAT9__IPU1_CSI0_DATA09 0x088 0x39c 0x000 0x0 0x0 +-#define MX6DL_PAD_CSI0_DAT9__EIM_DATA07 0x088 0x39c 0x000 0x1 0x0 +-#define MX6DL_PAD_CSI0_DAT9__ECSPI2_MOSI 0x088 0x39c 0x7fc 0x2 0x0 +-#define MX6DL_PAD_CSI0_DAT9__KEY_ROW7 0x088 0x39c 0x8d4 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT9__I2C1_SCL 0x088 0x39c 0x868 0x4 0x0 +-#define MX6DL_PAD_CSI0_DAT9__GPIO5_IO27 0x088 0x39c 0x000 0x5 0x0 +-#define MX6DL_PAD_CSI0_DAT9__ARM_TRACE06 0x088 0x39c 0x000 0x7 0x0 +-#define MX6DL_PAD_CSI0_DATA_EN__IPU1_CSI0_DATA_EN 0x08c 0x3a0 0x000 0x0 0x0 +-#define MX6DL_PAD_CSI0_DATA_EN__EIM_DATA00 0x08c 0x3a0 0x000 0x1 0x0 +-#define MX6DL_PAD_CSI0_DATA_EN__GPIO5_IO20 0x08c 0x3a0 0x000 0x5 0x0 +-#define MX6DL_PAD_CSI0_DATA_EN__ARM_TRACE_CLK 0x08c 0x3a0 0x000 0x7 0x0 +-#define MX6DL_PAD_CSI0_MCLK__IPU1_CSI0_HSYNC 0x090 0x3a4 0x000 0x0 0x0 +-#define MX6DL_PAD_CSI0_MCLK__CCM_CLKO1 0x090 0x3a4 0x000 0x3 0x0 +-#define MX6DL_PAD_CSI0_MCLK__GPIO5_IO19 0x090 0x3a4 0x000 0x5 0x0 +-#define MX6DL_PAD_CSI0_MCLK__ARM_TRACE_CTL 0x090 0x3a4 0x000 0x7 0x0 +-#define MX6DL_PAD_CSI0_PIXCLK__IPU1_CSI0_PIXCLK 0x094 0x3a8 0x000 0x0 0x0 +-#define MX6DL_PAD_CSI0_PIXCLK__GPIO5_IO18 0x094 0x3a8 0x000 0x5 0x0 +-#define MX6DL_PAD_CSI0_PIXCLK__ARM_EVENTO 0x094 0x3a8 0x000 0x7 0x0 +-#define MX6DL_PAD_CSI0_VSYNC__IPU1_CSI0_VSYNC 0x098 0x3ac 0x000 0x0 0x0 +-#define MX6DL_PAD_CSI0_VSYNC__EIM_DATA01 0x098 0x3ac 0x000 0x1 0x0 +-#define MX6DL_PAD_CSI0_VSYNC__GPIO5_IO21 0x098 0x3ac 0x000 0x5 0x0 +-#define MX6DL_PAD_CSI0_VSYNC__ARM_TRACE00 0x098 0x3ac 0x000 0x7 0x0 +-#define MX6DL_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK 0x09c 0x3b0 0x000 0x0 0x0 +-#define MX6DL_PAD_DI0_DISP_CLK__LCD_CLK 0x09c 0x3b0 0x000 0x1 0x0 +-#define MX6DL_PAD_DI0_DISP_CLK__GPIO4_IO16 0x09c 0x3b0 0x000 0x5 0x0 +-#define MX6DL_PAD_DI0_DISP_CLK__LCD_WR_RWN 0x09c 0x3b0 0x000 0x8 0x0 +-#define MX6DL_PAD_DI0_PIN15__IPU1_DI0_PIN15 0x0a0 0x3b4 0x000 0x0 0x0 +-#define MX6DL_PAD_DI0_PIN15__LCD_ENABLE 0x0a0 0x3b4 0x000 0x1 0x0 +-#define MX6DL_PAD_DI0_PIN15__AUD6_TXC 0x0a0 0x3b4 0x000 0x2 0x0 +-#define MX6DL_PAD_DI0_PIN15__GPIO4_IO17 0x0a0 0x3b4 0x000 0x5 0x0 +-#define MX6DL_PAD_DI0_PIN15__LCD_RD_E 0x0a0 0x3b4 0x000 0x8 0x0 +-#define MX6DL_PAD_DI0_PIN2__IPU1_DI0_PIN02 0x0a4 0x3b8 0x000 0x0 0x0 +-#define MX6DL_PAD_DI0_PIN2__LCD_HSYNC 0x0a4 0x3b8 0x8d8 0x1 0x0 +-#define MX6DL_PAD_DI0_PIN2__AUD6_TXD 0x0a4 0x3b8 0x000 0x2 0x0 +-#define MX6DL_PAD_DI0_PIN2__GPIO4_IO18 0x0a4 0x3b8 0x000 0x5 0x0 +-#define MX6DL_PAD_DI0_PIN2__LCD_RS 0x0a4 0x3b8 0x000 0x8 0x0 +-#define MX6DL_PAD_DI0_PIN3__IPU1_DI0_PIN03 0x0a8 0x3bc 0x000 0x0 0x0 +-#define MX6DL_PAD_DI0_PIN3__LCD_VSYNC 0x0a8 0x3bc 0x000 0x1 0x0 +-#define MX6DL_PAD_DI0_PIN3__AUD6_TXFS 0x0a8 0x3bc 0x000 0x2 0x0 +-#define MX6DL_PAD_DI0_PIN3__GPIO4_IO19 0x0a8 0x3bc 0x000 0x5 0x0 +-#define MX6DL_PAD_DI0_PIN3__LCD_CS 0x0a8 0x3bc 0x000 0x8 0x0 +-#define MX6DL_PAD_DI0_PIN4__IPU1_DI0_PIN04 0x0ac 0x3c0 0x000 0x0 0x0 +-#define MX6DL_PAD_DI0_PIN4__LCD_BUSY 0x0ac 0x3c0 0x8d8 0x1 0x1 +-#define MX6DL_PAD_DI0_PIN4__AUD6_RXD 0x0ac 0x3c0 0x000 0x2 0x0 +-#define MX6DL_PAD_DI0_PIN4__SD1_WP 0x0ac 0x3c0 0x92c 0x3 0x0 +-#define MX6DL_PAD_DI0_PIN4__GPIO4_IO20 0x0ac 0x3c0 0x000 0x5 0x0 +-#define MX6DL_PAD_DI0_PIN4__LCD_RESET 0x0ac 0x3c0 0x000 0x8 0x0 +-#define MX6DL_PAD_DISP0_DAT0__IPU1_DISP0_DATA00 0x0b0 0x3c4 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT0__LCD_DATA00 0x0b0 0x3c4 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT0__ECSPI3_SCLK 0x0b0 0x3c4 0x000 0x2 0x0 +-#define MX6DL_PAD_DISP0_DAT0__GPIO4_IO21 0x0b0 0x3c4 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT1__IPU1_DISP0_DATA01 0x0b4 0x3c8 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT1__LCD_DATA01 0x0b4 0x3c8 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT1__ECSPI3_MOSI 0x0b4 0x3c8 0x000 0x2 0x0 +-#define MX6DL_PAD_DISP0_DAT1__GPIO4_IO22 0x0b4 0x3c8 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT10__IPU1_DISP0_DATA10 0x0b8 0x3cc 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT10__LCD_DATA10 0x0b8 0x3cc 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT10__GPIO4_IO31 0x0b8 0x3cc 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT11__IPU1_DISP0_DATA11 0x0bc 0x3d0 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT11__LCD_DATA11 0x0bc 0x3d0 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT11__GPIO5_IO05 0x0bc 0x3d0 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT12__IPU1_DISP0_DATA12 0x0c0 0x3d4 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT12__LCD_DATA12 0x0c0 0x3d4 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT12__GPIO5_IO06 0x0c0 0x3d4 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT13__IPU1_DISP0_DATA13 0x0c4 0x3d8 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT13__LCD_DATA13 0x0c4 0x3d8 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT13__AUD5_RXFS 0x0c4 0x3d8 0x7bc 0x3 0x0 +-#define MX6DL_PAD_DISP0_DAT13__GPIO5_IO07 0x0c4 0x3d8 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT14__IPU1_DISP0_DATA14 0x0c8 0x3dc 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT14__LCD_DATA14 0x0c8 0x3dc 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT14__AUD5_RXC 0x0c8 0x3dc 0x7b8 0x3 0x0 +-#define MX6DL_PAD_DISP0_DAT14__GPIO5_IO08 0x0c8 0x3dc 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT15__IPU1_DISP0_DATA15 0x0cc 0x3e0 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT15__LCD_DATA15 0x0cc 0x3e0 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT15__ECSPI1_SS1 0x0cc 0x3e0 0x7e8 0x2 0x0 +-#define MX6DL_PAD_DISP0_DAT15__ECSPI2_SS1 0x0cc 0x3e0 0x804 0x3 0x0 +-#define MX6DL_PAD_DISP0_DAT15__GPIO5_IO09 0x0cc 0x3e0 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT16__IPU1_DISP0_DATA16 0x0d0 0x3e4 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT16__LCD_DATA16 0x0d0 0x3e4 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT16__ECSPI2_MOSI 0x0d0 0x3e4 0x7fc 0x2 0x1 +-#define MX6DL_PAD_DISP0_DAT16__AUD5_TXC 0x0d0 0x3e4 0x7c0 0x3 0x0 +-#define MX6DL_PAD_DISP0_DAT16__SDMA_EXT_EVENT0 0x0d0 0x3e4 0x8e8 0x4 0x0 +-#define MX6DL_PAD_DISP0_DAT16__GPIO5_IO10 0x0d0 0x3e4 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT17__IPU1_DISP0_DATA17 0x0d4 0x3e8 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT17__LCD_DATA17 0x0d4 0x3e8 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT17__ECSPI2_MISO 0x0d4 0x3e8 0x7f8 0x2 0x1 +-#define MX6DL_PAD_DISP0_DAT17__AUD5_TXD 0x0d4 0x3e8 0x7b4 0x3 0x0 +-#define MX6DL_PAD_DISP0_DAT17__SDMA_EXT_EVENT1 0x0d4 0x3e8 0x8ec 0x4 0x0 +-#define MX6DL_PAD_DISP0_DAT17__GPIO5_IO11 0x0d4 0x3e8 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT18__IPU1_DISP0_DATA18 0x0d8 0x3ec 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT18__LCD_DATA18 0x0d8 0x3ec 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT18__ECSPI2_SS0 0x0d8 0x3ec 0x800 0x2 0x1 +-#define MX6DL_PAD_DISP0_DAT18__AUD5_TXFS 0x0d8 0x3ec 0x7c4 0x3 0x0 +-#define MX6DL_PAD_DISP0_DAT18__AUD4_RXFS 0x0d8 0x3ec 0x7a4 0x4 0x0 +-#define MX6DL_PAD_DISP0_DAT18__GPIO5_IO12 0x0d8 0x3ec 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT18__EIM_CS2_B 0x0d8 0x3ec 0x000 0x7 0x0 +-#define MX6DL_PAD_DISP0_DAT19__IPU1_DISP0_DATA19 0x0dc 0x3f0 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT19__LCD_DATA19 0x0dc 0x3f0 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT19__ECSPI2_SCLK 0x0dc 0x3f0 0x7f4 0x2 0x1 +-#define MX6DL_PAD_DISP0_DAT19__AUD5_RXD 0x0dc 0x3f0 0x7b0 0x3 0x0 +-#define MX6DL_PAD_DISP0_DAT19__AUD4_RXC 0x0dc 0x3f0 0x7a0 0x4 0x0 +-#define MX6DL_PAD_DISP0_DAT19__GPIO5_IO13 0x0dc 0x3f0 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT19__EIM_CS3_B 0x0dc 0x3f0 0x000 0x7 0x0 +-#define MX6DL_PAD_DISP0_DAT2__IPU1_DISP0_DATA02 0x0e0 0x3f4 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT2__LCD_DATA02 0x0e0 0x3f4 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT2__ECSPI3_MISO 0x0e0 0x3f4 0x000 0x2 0x0 +-#define MX6DL_PAD_DISP0_DAT2__GPIO4_IO23 0x0e0 0x3f4 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT20__IPU1_DISP0_DATA20 0x0e4 0x3f8 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT20__LCD_DATA20 0x0e4 0x3f8 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT20__ECSPI1_SCLK 0x0e4 0x3f8 0x7d8 0x2 0x1 +-#define MX6DL_PAD_DISP0_DAT20__AUD4_TXC 0x0e4 0x3f8 0x7a8 0x3 0x0 +-#define MX6DL_PAD_DISP0_DAT20__GPIO5_IO14 0x0e4 0x3f8 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT21__IPU1_DISP0_DATA21 0x0e8 0x3fc 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT21__LCD_DATA21 0x0e8 0x3fc 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT21__ECSPI1_MOSI 0x0e8 0x3fc 0x7e0 0x2 0x1 +-#define MX6DL_PAD_DISP0_DAT21__AUD4_TXD 0x0e8 0x3fc 0x79c 0x3 0x0 +-#define MX6DL_PAD_DISP0_DAT21__GPIO5_IO15 0x0e8 0x3fc 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT22__IPU1_DISP0_DATA22 0x0ec 0x400 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT22__LCD_DATA22 0x0ec 0x400 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT22__ECSPI1_MISO 0x0ec 0x400 0x7dc 0x2 0x1 +-#define MX6DL_PAD_DISP0_DAT22__AUD4_TXFS 0x0ec 0x400 0x7ac 0x3 0x0 +-#define MX6DL_PAD_DISP0_DAT22__GPIO5_IO16 0x0ec 0x400 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT23__IPU1_DISP0_DATA23 0x0f0 0x404 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT23__LCD_DATA23 0x0f0 0x404 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT23__ECSPI1_SS0 0x0f0 0x404 0x7e4 0x2 0x1 +-#define MX6DL_PAD_DISP0_DAT23__AUD4_RXD 0x0f0 0x404 0x798 0x3 0x0 +-#define MX6DL_PAD_DISP0_DAT23__GPIO5_IO17 0x0f0 0x404 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT3__IPU1_DISP0_DATA03 0x0f4 0x408 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT3__LCD_DATA03 0x0f4 0x408 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT3__ECSPI3_SS0 0x0f4 0x408 0x000 0x2 0x0 +-#define MX6DL_PAD_DISP0_DAT3__GPIO4_IO24 0x0f4 0x408 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT4__IPU1_DISP0_DATA04 0x0f8 0x40c 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT4__LCD_DATA04 0x0f8 0x40c 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT4__ECSPI3_SS1 0x0f8 0x40c 0x000 0x2 0x0 +-#define MX6DL_PAD_DISP0_DAT4__GPIO4_IO25 0x0f8 0x40c 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT5__IPU1_DISP0_DATA05 0x0fc 0x410 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT5__LCD_DATA05 0x0fc 0x410 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT5__ECSPI3_SS2 0x0fc 0x410 0x000 0x2 0x0 +-#define MX6DL_PAD_DISP0_DAT5__AUD6_RXFS 0x0fc 0x410 0x000 0x3 0x0 +-#define MX6DL_PAD_DISP0_DAT5__GPIO4_IO26 0x0fc 0x410 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT6__IPU1_DISP0_DATA06 0x100 0x414 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT6__LCD_DATA06 0x100 0x414 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT6__ECSPI3_SS3 0x100 0x414 0x000 0x2 0x0 +-#define MX6DL_PAD_DISP0_DAT6__AUD6_RXC 0x100 0x414 0x000 0x3 0x0 +-#define MX6DL_PAD_DISP0_DAT6__GPIO4_IO27 0x100 0x414 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT7__IPU1_DISP0_DATA07 0x104 0x418 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT7__LCD_DATA07 0x104 0x418 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT7__ECSPI3_RDY 0x104 0x418 0x000 0x2 0x0 +-#define MX6DL_PAD_DISP0_DAT7__GPIO4_IO28 0x104 0x418 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT8__IPU1_DISP0_DATA08 0x108 0x41c 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT8__LCD_DATA08 0x108 0x41c 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT8__PWM1_OUT 0x108 0x41c 0x000 0x2 0x0 +-#define MX6DL_PAD_DISP0_DAT8__WDOG1_B 0x108 0x41c 0x000 0x3 0x0 +-#define MX6DL_PAD_DISP0_DAT8__GPIO4_IO29 0x108 0x41c 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT9__IPU1_DISP0_DATA09 0x10c 0x420 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT9__LCD_DATA09 0x10c 0x420 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT9__PWM2_OUT 0x10c 0x420 0x000 0x2 0x0 +-#define MX6DL_PAD_DISP0_DAT9__WDOG2_B 0x10c 0x420 0x000 0x3 0x0 +-#define MX6DL_PAD_DISP0_DAT9__GPIO4_IO30 0x10c 0x420 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_A16__EIM_ADDR16 0x110 0x4e0 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_A16__IPU1_DI1_DISP_CLK 0x110 0x4e0 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_A16__IPU1_CSI1_PIXCLK 0x110 0x4e0 0x8b8 0x2 0x0 +-#define MX6DL_PAD_EIM_A16__GPIO2_IO22 0x110 0x4e0 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_A16__SRC_BOOT_CFG16 0x110 0x4e0 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_A16__EPDC_DATA00 0x110 0x4e0 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_A17__EIM_ADDR17 0x114 0x4e4 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_A17__IPU1_DISP1_DATA12 0x114 0x4e4 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_A17__IPU1_CSI1_DATA12 0x114 0x4e4 0x890 0x2 0x0 +-#define MX6DL_PAD_EIM_A17__GPIO2_IO21 0x114 0x4e4 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_A17__SRC_BOOT_CFG17 0x114 0x4e4 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_A17__EPDC_PWR_STAT 0x114 0x4e4 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_A18__EIM_ADDR18 0x118 0x4e8 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_A18__IPU1_DISP1_DATA13 0x118 0x4e8 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_A18__IPU1_CSI1_DATA13 0x118 0x4e8 0x894 0x2 0x0 +-#define MX6DL_PAD_EIM_A18__GPIO2_IO20 0x118 0x4e8 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_A18__SRC_BOOT_CFG18 0x118 0x4e8 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_A18__EPDC_PWR_CTRL0 0x118 0x4e8 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_A19__EIM_ADDR19 0x11c 0x4ec 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_A19__IPU1_DISP1_DATA14 0x11c 0x4ec 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_A19__IPU1_CSI1_DATA14 0x11c 0x4ec 0x898 0x2 0x0 +-#define MX6DL_PAD_EIM_A19__GPIO2_IO19 0x11c 0x4ec 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_A19__SRC_BOOT_CFG19 0x11c 0x4ec 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_A19__EPDC_PWR_CTRL1 0x11c 0x4ec 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_A20__EIM_ADDR20 0x120 0x4f0 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_A20__IPU1_DISP1_DATA15 0x120 0x4f0 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_A20__IPU1_CSI1_DATA15 0x120 0x4f0 0x89c 0x2 0x0 +-#define MX6DL_PAD_EIM_A20__GPIO2_IO18 0x120 0x4f0 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_A20__SRC_BOOT_CFG20 0x120 0x4f0 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_A20__EPDC_PWR_CTRL2 0x120 0x4f0 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_A21__EIM_ADDR21 0x124 0x4f4 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_A21__IPU1_DISP1_DATA16 0x124 0x4f4 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_A21__IPU1_CSI1_DATA16 0x124 0x4f4 0x8a0 0x2 0x0 +-#define MX6DL_PAD_EIM_A21__GPIO2_IO17 0x124 0x4f4 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_A21__SRC_BOOT_CFG21 0x124 0x4f4 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_A21__EPDC_GDCLK 0x124 0x4f4 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_A22__EIM_ADDR22 0x128 0x4f8 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_A22__IPU1_DISP1_DATA17 0x128 0x4f8 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_A22__IPU1_CSI1_DATA17 0x128 0x4f8 0x8a4 0x2 0x0 +-#define MX6DL_PAD_EIM_A22__GPIO2_IO16 0x128 0x4f8 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_A22__SRC_BOOT_CFG22 0x128 0x4f8 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_A22__EPDC_GDSP 0x128 0x4f8 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_A23__EIM_ADDR23 0x12c 0x4fc 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_A23__IPU1_DISP1_DATA18 0x12c 0x4fc 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_A23__IPU1_CSI1_DATA18 0x12c 0x4fc 0x8a8 0x2 0x0 +-#define MX6DL_PAD_EIM_A23__IPU1_SISG3 0x12c 0x4fc 0x000 0x4 0x0 +-#define MX6DL_PAD_EIM_A23__GPIO6_IO06 0x12c 0x4fc 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_A23__SRC_BOOT_CFG23 0x12c 0x4fc 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_A23__EPDC_GDOE 0x12c 0x4fc 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_A24__EIM_ADDR24 0x130 0x500 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_A24__IPU1_DISP1_DATA19 0x130 0x500 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_A24__IPU1_CSI1_DATA19 0x130 0x500 0x8ac 0x2 0x0 +-#define MX6DL_PAD_EIM_A24__IPU1_SISG2 0x130 0x500 0x000 0x4 0x0 +-#define MX6DL_PAD_EIM_A24__GPIO5_IO04 0x130 0x500 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_A24__SRC_BOOT_CFG24 0x130 0x500 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_A24__EPDC_GDRL 0x130 0x500 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_A25__EIM_ADDR25 0x134 0x504 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_A25__ECSPI4_SS1 0x134 0x504 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_A25__ECSPI2_RDY 0x134 0x504 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_A25__IPU1_DI1_PIN12 0x134 0x504 0x000 0x3 0x0 +-#define MX6DL_PAD_EIM_A25__IPU1_DI0_D1_CS 0x134 0x504 0x000 0x4 0x0 +-#define MX6DL_PAD_EIM_A25__GPIO5_IO02 0x134 0x504 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_A25__HDMI_TX_CEC_LINE 0x134 0x504 0x85c 0x6 0x0 +-#define MX6DL_PAD_EIM_A25__EPDC_DATA15 0x134 0x504 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_A25__EIM_ACLK_FREERUN 0x134 0x504 0x000 0x9 0x0 +-#define MX6DL_PAD_EIM_BCLK__EIM_BCLK 0x138 0x508 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_BCLK__IPU1_DI1_PIN16 0x138 0x508 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_BCLK__GPIO6_IO31 0x138 0x508 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_BCLK__EPDC_SDCE9 0x138 0x508 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_CS0__EIM_CS0_B 0x13c 0x50c 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_CS0__IPU1_DI1_PIN05 0x13c 0x50c 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_CS0__ECSPI2_SCLK 0x13c 0x50c 0x7f4 0x2 0x2 +-#define MX6DL_PAD_EIM_CS0__GPIO2_IO23 0x13c 0x50c 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_CS0__EPDC_DATA06 0x13c 0x50c 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_CS1__EIM_CS1_B 0x140 0x510 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_CS1__IPU1_DI1_PIN06 0x140 0x510 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_CS1__ECSPI2_MOSI 0x140 0x510 0x7fc 0x2 0x2 +-#define MX6DL_PAD_EIM_CS1__GPIO2_IO24 0x140 0x510 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_CS1__EPDC_DATA08 0x140 0x510 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_D16__EIM_DATA16 0x144 0x514 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_D16__ECSPI1_SCLK 0x144 0x514 0x7d8 0x1 0x2 +-#define MX6DL_PAD_EIM_D16__IPU1_DI0_PIN05 0x144 0x514 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_D16__IPU1_CSI1_DATA18 0x144 0x514 0x8a8 0x3 0x1 +-#define MX6DL_PAD_EIM_D16__HDMI_TX_DDC_SDA 0x144 0x514 0x864 0x4 0x0 +-#define MX6DL_PAD_EIM_D16__GPIO3_IO16 0x144 0x514 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_D16__I2C2_SDA 0x144 0x514 0x874 0x6 0x0 +-#define MX6DL_PAD_EIM_D16__EPDC_DATA10 0x144 0x514 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_D17__EIM_DATA17 0x148 0x518 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_D17__ECSPI1_MISO 0x148 0x518 0x7dc 0x1 0x2 +-#define MX6DL_PAD_EIM_D17__IPU1_DI0_PIN06 0x148 0x518 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_D17__IPU1_CSI1_PIXCLK 0x148 0x518 0x8b8 0x3 0x1 +-#define MX6DL_PAD_EIM_D17__DCIC1_OUT 0x148 0x518 0x000 0x4 0x0 +-#define MX6DL_PAD_EIM_D17__GPIO3_IO17 0x148 0x518 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_D17__I2C3_SCL 0x148 0x518 0x878 0x6 0x0 +-#define MX6DL_PAD_EIM_D17__EPDC_VCOM0 0x148 0x518 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_D18__EIM_DATA18 0x14c 0x51c 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_D18__ECSPI1_MOSI 0x14c 0x51c 0x7e0 0x1 0x2 +-#define MX6DL_PAD_EIM_D18__IPU1_DI0_PIN07 0x14c 0x51c 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_D18__IPU1_CSI1_DATA17 0x14c 0x51c 0x8a4 0x3 0x1 +-#define MX6DL_PAD_EIM_D18__IPU1_DI1_D0_CS 0x14c 0x51c 0x000 0x4 0x0 +-#define MX6DL_PAD_EIM_D18__GPIO3_IO18 0x14c 0x51c 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_D18__I2C3_SDA 0x14c 0x51c 0x87c 0x6 0x0 +-#define MX6DL_PAD_EIM_D18__EPDC_VCOM1 0x14c 0x51c 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_D19__EIM_DATA19 0x150 0x520 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_D19__ECSPI1_SS1 0x150 0x520 0x7e8 0x1 0x1 +-#define MX6DL_PAD_EIM_D19__IPU1_DI0_PIN08 0x150 0x520 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_D19__IPU1_CSI1_DATA16 0x150 0x520 0x8a0 0x3 0x1 +-#define MX6DL_PAD_EIM_D19__UART1_CTS_B 0x150 0x520 0x000 0x4 0x0 +-#define MX6DL_PAD_EIM_D19__UART1_RTS_B 0x150 0x520 0x8f8 0x4 0x0 +-#define MX6DL_PAD_EIM_D19__GPIO3_IO19 0x150 0x520 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_D19__EPIT1_OUT 0x150 0x520 0x000 0x6 0x0 +-#define MX6DL_PAD_EIM_D19__EPDC_DATA12 0x150 0x520 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_D20__EIM_DATA20 0x154 0x524 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_D20__ECSPI4_SS0 0x154 0x524 0x808 0x1 0x0 +-#define MX6DL_PAD_EIM_D20__IPU1_DI0_PIN16 0x154 0x524 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_D20__IPU1_CSI1_DATA15 0x154 0x524 0x89c 0x3 0x1 +-#define MX6DL_PAD_EIM_D20__UART1_RTS_B 0x154 0x524 0x8f8 0x4 0x1 +-#define MX6DL_PAD_EIM_D20__UART1_CTS_B 0x154 0x524 0x000 0x4 0x0 +-#define MX6DL_PAD_EIM_D20__GPIO3_IO20 0x154 0x524 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_D20__EPIT2_OUT 0x154 0x524 0x000 0x6 0x0 +-#define MX6DL_PAD_EIM_D21__EIM_DATA21 0x158 0x528 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_D21__ECSPI4_SCLK 0x158 0x528 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_D21__IPU1_DI0_PIN17 0x158 0x528 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_D21__IPU1_CSI1_DATA11 0x158 0x528 0x88c 0x3 0x0 +-#define MX6DL_PAD_EIM_D21__USB_OTG_OC 0x158 0x528 0x920 0x4 0x0 +-#define MX6DL_PAD_EIM_D21__GPIO3_IO21 0x158 0x528 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_D21__I2C1_SCL 0x158 0x528 0x868 0x6 0x1 +-#define MX6DL_PAD_EIM_D21__SPDIF_IN 0x158 0x528 0x8f0 0x7 0x0 +-#define MX6DL_PAD_EIM_D22__EIM_DATA22 0x15c 0x52c 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_D22__ECSPI4_MISO 0x15c 0x52c 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_D22__IPU1_DI0_PIN01 0x15c 0x52c 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_D22__IPU1_CSI1_DATA10 0x15c 0x52c 0x888 0x3 0x0 +-#define MX6DL_PAD_EIM_D22__USB_OTG_PWR 0x15c 0x52c 0x000 0x4 0x0 +-#define MX6DL_PAD_EIM_D22__GPIO3_IO22 0x15c 0x52c 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_D22__SPDIF_OUT 0x15c 0x52c 0x000 0x6 0x0 +-#define MX6DL_PAD_EIM_D22__EPDC_SDCE6 0x15c 0x52c 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_D23__EIM_DATA23 0x160 0x530 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_D23__IPU1_DI0_D0_CS 0x160 0x530 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_D23__UART3_CTS_B 0x160 0x530 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_D23__UART3_RTS_B 0x160 0x530 0x908 0x2 0x0 +-#define MX6DL_PAD_EIM_D23__UART1_DCD_B 0x160 0x530 0x000 0x3 0x0 +-#define MX6DL_PAD_EIM_D23__IPU1_CSI1_DATA_EN 0x160 0x530 0x8b0 0x4 0x0 +-#define MX6DL_PAD_EIM_D23__GPIO3_IO23 0x160 0x530 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_D23__IPU1_DI1_PIN02 0x160 0x530 0x000 0x6 0x0 +-#define MX6DL_PAD_EIM_D23__IPU1_DI1_PIN14 0x160 0x530 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_D23__EPDC_DATA11 0x160 0x530 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_D24__EIM_DATA24 0x164 0x534 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_D24__ECSPI4_SS2 0x164 0x534 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_D24__UART3_TX_DATA 0x164 0x534 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_D24__UART3_RX_DATA 0x164 0x534 0x90c 0x2 0x0 +-#define MX6DL_PAD_EIM_D24__ECSPI1_SS2 0x164 0x534 0x7ec 0x3 0x0 +-#define MX6DL_PAD_EIM_D24__ECSPI2_SS2 0x164 0x534 0x000 0x4 0x0 +-#define MX6DL_PAD_EIM_D24__GPIO3_IO24 0x164 0x534 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_D24__AUD5_RXFS 0x164 0x534 0x7bc 0x6 0x1 +-#define MX6DL_PAD_EIM_D24__UART1_DTR_B 0x164 0x534 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_D24__EPDC_SDCE7 0x164 0x534 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_D25__EIM_DATA25 0x168 0x538 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_D25__ECSPI4_SS3 0x168 0x538 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_D25__UART3_RX_DATA 0x168 0x538 0x90c 0x2 0x1 +-#define MX6DL_PAD_EIM_D25__UART3_TX_DATA 0x168 0x538 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_D25__ECSPI1_SS3 0x168 0x538 0x7f0 0x3 0x0 +-#define MX6DL_PAD_EIM_D25__ECSPI2_SS3 0x168 0x538 0x000 0x4 0x0 +-#define MX6DL_PAD_EIM_D25__GPIO3_IO25 0x168 0x538 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_D25__AUD5_RXC 0x168 0x538 0x7b8 0x6 0x1 +-#define MX6DL_PAD_EIM_D25__UART1_DSR_B 0x168 0x538 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_D25__EPDC_SDCE8 0x168 0x538 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_D26__EIM_DATA26 0x16c 0x53c 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_D26__IPU1_DI1_PIN11 0x16c 0x53c 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_D26__IPU1_CSI0_DATA01 0x16c 0x53c 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_D26__IPU1_CSI1_DATA14 0x16c 0x53c 0x898 0x3 0x1 +-#define MX6DL_PAD_EIM_D26__UART2_TX_DATA 0x16c 0x53c 0x000 0x4 0x0 +-#define MX6DL_PAD_EIM_D26__UART2_RX_DATA 0x16c 0x53c 0x904 0x4 0x0 +-#define MX6DL_PAD_EIM_D26__GPIO3_IO26 0x16c 0x53c 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_D26__IPU1_SISG2 0x16c 0x53c 0x000 0x6 0x0 +-#define MX6DL_PAD_EIM_D26__IPU1_DISP1_DATA22 0x16c 0x53c 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_D26__EPDC_SDOED 0x16c 0x53c 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_D27__EIM_DATA27 0x170 0x540 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_D27__IPU1_DI1_PIN13 0x170 0x540 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_D27__IPU1_CSI0_DATA00 0x170 0x540 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_D27__IPU1_CSI1_DATA13 0x170 0x540 0x894 0x3 0x1 +-#define MX6DL_PAD_EIM_D27__UART2_RX_DATA 0x170 0x540 0x904 0x4 0x1 +-#define MX6DL_PAD_EIM_D27__UART2_TX_DATA 0x170 0x540 0x000 0x4 0x0 +-#define MX6DL_PAD_EIM_D27__GPIO3_IO27 0x170 0x540 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_D27__IPU1_SISG3 0x170 0x540 0x000 0x6 0x0 +-#define MX6DL_PAD_EIM_D27__IPU1_DISP1_DATA23 0x170 0x540 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_D27__EPDC_SDOE 0x170 0x540 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_D28__EIM_DATA28 0x174 0x544 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_D28__I2C1_SDA 0x174 0x544 0x86c 0x1 0x1 +-#define MX6DL_PAD_EIM_D28__ECSPI4_MOSI 0x174 0x544 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_D28__IPU1_CSI1_DATA12 0x174 0x544 0x890 0x3 0x1 +-#define MX6DL_PAD_EIM_D28__UART2_CTS_B 0x174 0x544 0x000 0x4 0x0 +-#define MX6DL_PAD_EIM_D28__UART2_RTS_B 0x174 0x544 0x900 0x4 0x0 +-#define MX6DL_PAD_EIM_D28__GPIO3_IO28 0x174 0x544 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_D28__IPU1_EXT_TRIG 0x174 0x544 0x000 0x6 0x0 +-#define MX6DL_PAD_EIM_D28__IPU1_DI0_PIN13 0x174 0x544 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_D28__EPDC_PWR_CTRL3 0x174 0x544 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_D29__EIM_DATA29 0x178 0x548 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_D29__IPU1_DI1_PIN15 0x178 0x548 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_D29__ECSPI4_SS0 0x178 0x548 0x808 0x2 0x1 +-#define MX6DL_PAD_EIM_D29__UART2_RTS_B 0x178 0x548 0x900 0x4 0x1 +-#define MX6DL_PAD_EIM_D29__UART2_CTS_B 0x178 0x548 0x000 0x4 0x0 +-#define MX6DL_PAD_EIM_D29__GPIO3_IO29 0x178 0x548 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_D29__IPU1_CSI1_VSYNC 0x178 0x548 0x8bc 0x6 0x0 +-#define MX6DL_PAD_EIM_D29__IPU1_DI0_PIN14 0x178 0x548 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_D29__EPDC_PWR_WAKE 0x178 0x548 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_D30__EIM_DATA30 0x17c 0x54c 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_D30__IPU1_DISP1_DATA21 0x17c 0x54c 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_D30__IPU1_DI0_PIN11 0x17c 0x54c 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_D30__IPU1_CSI0_DATA03 0x17c 0x54c 0x000 0x3 0x0 +-#define MX6DL_PAD_EIM_D30__UART3_CTS_B 0x17c 0x54c 0x000 0x4 0x0 +-#define MX6DL_PAD_EIM_D30__UART3_RTS_B 0x17c 0x54c 0x908 0x4 0x1 +-#define MX6DL_PAD_EIM_D30__GPIO3_IO30 0x17c 0x54c 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_D30__USB_H1_OC 0x17c 0x54c 0x924 0x6 0x0 +-#define MX6DL_PAD_EIM_D30__EPDC_SDOEZ 0x17c 0x54c 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_D31__EIM_DATA31 0x180 0x550 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_D31__IPU1_DISP1_DATA20 0x180 0x550 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_D31__IPU1_DI0_PIN12 0x180 0x550 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_D31__IPU1_CSI0_DATA02 0x180 0x550 0x000 0x3 0x0 +-#define MX6DL_PAD_EIM_D31__UART3_RTS_B 0x180 0x550 0x908 0x4 0x2 +-#define MX6DL_PAD_EIM_D31__UART3_CTS_B 0x180 0x550 0x000 0x4 0x0 +-#define MX6DL_PAD_EIM_D31__GPIO3_IO31 0x180 0x550 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_D31__USB_H1_PWR 0x180 0x550 0x000 0x6 0x0 +-#define MX6DL_PAD_EIM_D31__EPDC_SDCLK_P 0x180 0x550 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_D31__EIM_ACLK_FREERUN 0x180 0x550 0x000 0x9 0x0 +-#define MX6DL_PAD_EIM_DA0__EIM_AD00 0x184 0x554 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_DA0__IPU1_DISP1_DATA09 0x184 0x554 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_DA0__IPU1_CSI1_DATA09 0x184 0x554 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_DA0__GPIO3_IO00 0x184 0x554 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_DA0__SRC_BOOT_CFG00 0x184 0x554 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_DA0__EPDC_SDCLK_N 0x184 0x554 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_DA1__EIM_AD01 0x188 0x558 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_DA1__IPU1_DISP1_DATA08 0x188 0x558 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_DA1__IPU1_CSI1_DATA08 0x188 0x558 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_DA1__GPIO3_IO01 0x188 0x558 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_DA1__SRC_BOOT_CFG01 0x188 0x558 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_DA1__EPDC_SDLE 0x188 0x558 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_DA10__EIM_AD10 0x18c 0x55c 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_DA10__IPU1_DI1_PIN15 0x18c 0x55c 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_DA10__IPU1_CSI1_DATA_EN 0x18c 0x55c 0x8b0 0x2 0x1 +-#define MX6DL_PAD_EIM_DA10__GPIO3_IO10 0x18c 0x55c 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_DA10__SRC_BOOT_CFG10 0x18c 0x55c 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_DA10__EPDC_DATA01 0x18c 0x55c 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_DA11__EIM_AD11 0x190 0x560 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_DA11__IPU1_DI1_PIN02 0x190 0x560 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_DA11__IPU1_CSI1_HSYNC 0x190 0x560 0x8b4 0x2 0x0 +-#define MX6DL_PAD_EIM_DA11__GPIO3_IO11 0x190 0x560 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_DA11__SRC_BOOT_CFG11 0x190 0x560 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_DA11__EPDC_DATA03 0x190 0x560 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_DA12__EIM_AD12 0x194 0x564 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_DA12__IPU1_DI1_PIN03 0x194 0x564 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_DA12__IPU1_CSI1_VSYNC 0x194 0x564 0x8bc 0x2 0x1 +-#define MX6DL_PAD_EIM_DA12__GPIO3_IO12 0x194 0x564 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_DA12__SRC_BOOT_CFG12 0x194 0x564 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_DA12__EPDC_DATA02 0x194 0x564 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_DA13__EIM_AD13 0x198 0x568 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_DA13__IPU1_DI1_D0_CS 0x198 0x568 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_DA13__GPIO3_IO13 0x198 0x568 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_DA13__SRC_BOOT_CFG13 0x198 0x568 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_DA13__EPDC_DATA13 0x198 0x568 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_DA14__EIM_AD14 0x19c 0x56c 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_DA14__IPU1_DI1_D1_CS 0x19c 0x56c 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_DA14__GPIO3_IO14 0x19c 0x56c 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_DA14__SRC_BOOT_CFG14 0x19c 0x56c 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_DA14__EPDC_DATA14 0x19c 0x56c 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_DA15__EIM_AD15 0x1a0 0x570 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_DA15__IPU1_DI1_PIN01 0x1a0 0x570 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_DA15__IPU1_DI1_PIN04 0x1a0 0x570 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_DA15__GPIO3_IO15 0x1a0 0x570 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_DA15__SRC_BOOT_CFG15 0x1a0 0x570 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_DA15__EPDC_DATA09 0x1a0 0x570 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_DA2__EIM_AD02 0x1a4 0x574 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_DA2__IPU1_DISP1_DATA07 0x1a4 0x574 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_DA2__IPU1_CSI1_DATA07 0x1a4 0x574 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_DA2__GPIO3_IO02 0x1a4 0x574 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_DA2__SRC_BOOT_CFG02 0x1a4 0x574 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_DA2__EPDC_BDR0 0x1a4 0x574 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_DA3__EIM_AD03 0x1a8 0x578 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_DA3__IPU1_DISP1_DATA06 0x1a8 0x578 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_DA3__IPU1_CSI1_DATA06 0x1a8 0x578 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_DA3__GPIO3_IO03 0x1a8 0x578 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_DA3__SRC_BOOT_CFG03 0x1a8 0x578 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_DA3__EPDC_BDR1 0x1a8 0x578 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_DA4__EIM_AD04 0x1ac 0x57c 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_DA4__IPU1_DISP1_DATA05 0x1ac 0x57c 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_DA4__IPU1_CSI1_DATA05 0x1ac 0x57c 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_DA4__GPIO3_IO04 0x1ac 0x57c 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_DA4__SRC_BOOT_CFG04 0x1ac 0x57c 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_DA4__EPDC_SDCE0 0x1ac 0x57c 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_DA5__EIM_AD05 0x1b0 0x580 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_DA5__IPU1_DISP1_DATA04 0x1b0 0x580 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_DA5__IPU1_CSI1_DATA04 0x1b0 0x580 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_DA5__GPIO3_IO05 0x1b0 0x580 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_DA5__SRC_BOOT_CFG05 0x1b0 0x580 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_DA5__EPDC_SDCE1 0x1b0 0x580 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_DA6__EIM_AD06 0x1b4 0x584 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_DA6__IPU1_DISP1_DATA03 0x1b4 0x584 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_DA6__IPU1_CSI1_DATA03 0x1b4 0x584 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_DA6__GPIO3_IO06 0x1b4 0x584 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_DA6__SRC_BOOT_CFG06 0x1b4 0x584 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_DA6__EPDC_SDCE2 0x1b4 0x584 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_DA7__EIM_AD07 0x1b8 0x588 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_DA7__IPU1_DISP1_DATA02 0x1b8 0x588 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_DA7__IPU1_CSI1_DATA02 0x1b8 0x588 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_DA7__GPIO3_IO07 0x1b8 0x588 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_DA7__SRC_BOOT_CFG07 0x1b8 0x588 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_DA7__EPDC_SDCE3 0x1b8 0x588 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_DA8__EIM_AD08 0x1bc 0x58c 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_DA8__IPU1_DISP1_DATA01 0x1bc 0x58c 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_DA8__IPU1_CSI1_DATA01 0x1bc 0x58c 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_DA8__GPIO3_IO08 0x1bc 0x58c 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_DA8__SRC_BOOT_CFG08 0x1bc 0x58c 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_DA8__EPDC_SDCE4 0x1bc 0x58c 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_DA9__EIM_AD09 0x1c0 0x590 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_DA9__IPU1_DISP1_DATA00 0x1c0 0x590 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_DA9__IPU1_CSI1_DATA00 0x1c0 0x590 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_DA9__GPIO3_IO09 0x1c0 0x590 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_DA9__SRC_BOOT_CFG09 0x1c0 0x590 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_DA9__EPDC_SDCE5 0x1c0 0x590 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_EB0__EIM_EB0_B 0x1c4 0x594 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_EB0__IPU1_DISP1_DATA11 0x1c4 0x594 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_EB0__IPU1_CSI1_DATA11 0x1c4 0x594 0x88c 0x2 0x1 +-#define MX6DL_PAD_EIM_EB0__CCM_PMIC_READY 0x1c4 0x594 0x7d4 0x4 0x0 +-#define MX6DL_PAD_EIM_EB0__GPIO2_IO28 0x1c4 0x594 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_EB0__SRC_BOOT_CFG27 0x1c4 0x594 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_EB0__EPDC_PWR_COM 0x1c4 0x594 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_EB1__EIM_EB1_B 0x1c8 0x598 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_EB1__IPU1_DISP1_DATA10 0x1c8 0x598 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_EB1__IPU1_CSI1_DATA10 0x1c8 0x598 0x888 0x2 0x1 +-#define MX6DL_PAD_EIM_EB1__GPIO2_IO29 0x1c8 0x598 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_EB1__SRC_BOOT_CFG28 0x1c8 0x598 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_EB1__EPDC_SDSHR 0x1c8 0x598 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_EB2__EIM_EB2_B 0x1cc 0x59c 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_EB2__ECSPI1_SS0 0x1cc 0x59c 0x7e4 0x1 0x2 +-#define MX6DL_PAD_EIM_EB2__IPU1_CSI1_DATA19 0x1cc 0x59c 0x8ac 0x3 0x1 +-#define MX6DL_PAD_EIM_EB2__HDMI_TX_DDC_SCL 0x1cc 0x59c 0x860 0x4 0x0 +-#define MX6DL_PAD_EIM_EB2__GPIO2_IO30 0x1cc 0x59c 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_EB2__I2C2_SCL 0x1cc 0x59c 0x870 0x6 0x0 +-#define MX6DL_PAD_EIM_EB2__SRC_BOOT_CFG30 0x1cc 0x59c 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_EB2__EPDC_DATA05 0x1cc 0x59c 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_EB3__EIM_EB3_B 0x1d0 0x5a0 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_EB3__ECSPI4_RDY 0x1d0 0x5a0 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_EB3__UART3_RTS_B 0x1d0 0x5a0 0x908 0x2 0x3 +-#define MX6DL_PAD_EIM_EB3__UART3_CTS_B 0x1d0 0x5a0 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_EB3__UART1_RI_B 0x1d0 0x5a0 0x000 0x3 0x0 +-#define MX6DL_PAD_EIM_EB3__IPU1_CSI1_HSYNC 0x1d0 0x5a0 0x8b4 0x4 0x1 +-#define MX6DL_PAD_EIM_EB3__GPIO2_IO31 0x1d0 0x5a0 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_EB3__IPU1_DI1_PIN03 0x1d0 0x5a0 0x000 0x6 0x0 +-#define MX6DL_PAD_EIM_EB3__SRC_BOOT_CFG31 0x1d0 0x5a0 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_EB3__EPDC_SDCE0 0x1d0 0x5a0 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_EB3__EIM_ACLK_FREERUN 0x1d0 0x5a0 0x000 0x9 0x0 +-#define MX6DL_PAD_EIM_LBA__EIM_LBA_B 0x1d4 0x5a4 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_LBA__IPU1_DI1_PIN17 0x1d4 0x5a4 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_LBA__ECSPI2_SS1 0x1d4 0x5a4 0x804 0x2 0x1 +-#define MX6DL_PAD_EIM_LBA__GPIO2_IO27 0x1d4 0x5a4 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_LBA__SRC_BOOT_CFG26 0x1d4 0x5a4 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_LBA__EPDC_DATA04 0x1d4 0x5a4 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_OE__EIM_OE_B 0x1d8 0x5a8 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_OE__IPU1_DI1_PIN07 0x1d8 0x5a8 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_OE__ECSPI2_MISO 0x1d8 0x5a8 0x7f8 0x2 0x2 +-#define MX6DL_PAD_EIM_OE__GPIO2_IO25 0x1d8 0x5a8 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_OE__EPDC_PWR_IRQ 0x1d8 0x5a8 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_RW__EIM_RW 0x1dc 0x5ac 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_RW__IPU1_DI1_PIN08 0x1dc 0x5ac 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_RW__ECSPI2_SS0 0x1dc 0x5ac 0x800 0x2 0x2 +-#define MX6DL_PAD_EIM_RW__GPIO2_IO26 0x1dc 0x5ac 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_RW__SRC_BOOT_CFG29 0x1dc 0x5ac 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_RW__EPDC_DATA07 0x1dc 0x5ac 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_WAIT__EIM_WAIT_B 0x1e0 0x5b0 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_WAIT__EIM_DTACK_B 0x1e0 0x5b0 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_WAIT__GPIO5_IO00 0x1e0 0x5b0 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_WAIT__SRC_BOOT_CFG25 0x1e0 0x5b0 0x000 0x7 0x0 +-#define MX6DL_PAD_ENET_CRS_DV__ENET_RX_EN 0x1e4 0x5b4 0x828 0x1 0x0 +-#define MX6DL_PAD_ENET_CRS_DV__ESAI_TX_CLK 0x1e4 0x5b4 0x840 0x2 0x0 +-#define MX6DL_PAD_ENET_CRS_DV__SPDIF_EXT_CLK 0x1e4 0x5b4 0x8f4 0x3 0x0 +-#define MX6DL_PAD_ENET_CRS_DV__GPIO1_IO25 0x1e4 0x5b4 0x000 0x5 0x0 +-#define MX6DL_PAD_ENET_MDC__MLB_DATA 0x1e8 0x5b8 0x8e0 0x0 0x0 +-#define MX6DL_PAD_ENET_MDC__ENET_MDC 0x1e8 0x5b8 0x000 0x1 0x0 +-#define MX6DL_PAD_ENET_MDC__ESAI_TX5_RX0 0x1e8 0x5b8 0x858 0x2 0x0 +-#define MX6DL_PAD_ENET_MDC__ENET_1588_EVENT1_IN 0x1e8 0x5b8 0x000 0x4 0x0 +-#define MX6DL_PAD_ENET_MDC__GPIO1_IO31 0x1e8 0x5b8 0x000 0x5 0x0 +-#define MX6DL_PAD_ENET_MDIO__ENET_MDIO 0x1ec 0x5bc 0x810 0x1 0x0 +-#define MX6DL_PAD_ENET_MDIO__ESAI_RX_CLK 0x1ec 0x5bc 0x83c 0x2 0x0 +-#define MX6DL_PAD_ENET_MDIO__ENET_1588_EVENT1_OUT 0x1ec 0x5bc 0x000 0x4 0x0 +-#define MX6DL_PAD_ENET_MDIO__GPIO1_IO22 0x1ec 0x5bc 0x000 0x5 0x0 +-#define MX6DL_PAD_ENET_MDIO__SPDIF_LOCK 0x1ec 0x5bc 0x000 0x6 0x0 +-#define MX6DL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1f0 0x5c0 0x000 0x1 0x0 +-#define MX6DL_PAD_ENET_REF_CLK__ESAI_RX_FS 0x1f0 0x5c0 0x82c 0x2 0x0 +-#define MX6DL_PAD_ENET_REF_CLK__GPIO1_IO23 0x1f0 0x5c0 0x000 0x5 0x0 +-#define MX6DL_PAD_ENET_REF_CLK__SPDIF_SR_CLK 0x1f0 0x5c0 0x000 0x6 0x0 +-#define MX6DL_PAD_ENET_RX_ER__USB_OTG_ID 0x1f4 0x5c4 0x790 0x0 0x0 +-#define MX6DL_PAD_ENET_RX_ER__ENET_RX_ER 0x1f4 0x5c4 0x000 0x1 0x0 +-#define MX6DL_PAD_ENET_RX_ER__ESAI_RX_HF_CLK 0x1f4 0x5c4 0x834 0x2 0x0 +-#define MX6DL_PAD_ENET_RX_ER__SPDIF_IN 0x1f4 0x5c4 0x8f0 0x3 0x1 +-#define MX6DL_PAD_ENET_RX_ER__ENET_1588_EVENT2_OUT 0x1f4 0x5c4 0x000 0x4 0x0 +-#define MX6DL_PAD_ENET_RX_ER__GPIO1_IO24 0x1f4 0x5c4 0x000 0x5 0x0 +-#define MX6DL_PAD_ENET_RXD0__ENET_RX_DATA0 0x1f8 0x5c8 0x818 0x1 0x0 +-#define MX6DL_PAD_ENET_RXD0__ESAI_TX_HF_CLK 0x1f8 0x5c8 0x838 0x2 0x0 +-#define MX6DL_PAD_ENET_RXD0__SPDIF_OUT 0x1f8 0x5c8 0x000 0x3 0x0 +-#define MX6DL_PAD_ENET_RXD0__GPIO1_IO27 0x1f8 0x5c8 0x000 0x5 0x0 +-#define MX6DL_PAD_ENET_RXD1__MLB_SIG 0x1fc 0x5cc 0x8e4 0x0 0x0 +-#define MX6DL_PAD_ENET_RXD1__ENET_RX_DATA1 0x1fc 0x5cc 0x81c 0x1 0x0 +-#define MX6DL_PAD_ENET_RXD1__ESAI_TX_FS 0x1fc 0x5cc 0x830 0x2 0x0 +-#define MX6DL_PAD_ENET_RXD1__ENET_1588_EVENT3_OUT 0x1fc 0x5cc 0x000 0x4 0x0 +-#define MX6DL_PAD_ENET_RXD1__GPIO1_IO26 0x1fc 0x5cc 0x000 0x5 0x0 +-#define MX6DL_PAD_ENET_TX_EN__ENET_TX_EN 0x200 0x5d0 0x000 0x1 0x0 +-#define MX6DL_PAD_ENET_TX_EN__ESAI_TX3_RX2 0x200 0x5d0 0x850 0x2 0x0 +-#define MX6DL_PAD_ENET_TX_EN__GPIO1_IO28 0x200 0x5d0 0x000 0x5 0x0 +-#define MX6DL_PAD_ENET_TX_EN__I2C4_SCL 0x200 0x5d0 0x880 0x9 0x0 +-#define MX6DL_PAD_ENET_TXD0__ENET_TX_DATA0 0x204 0x5d4 0x000 0x1 0x0 +-#define MX6DL_PAD_ENET_TXD0__ESAI_TX4_RX1 0x204 0x5d4 0x854 0x2 0x0 +-#define MX6DL_PAD_ENET_TXD0__GPIO1_IO30 0x204 0x5d4 0x000 0x5 0x0 +-#define MX6DL_PAD_ENET_TXD1__MLB_CLK 0x208 0x5d8 0x8dc 0x0 0x0 +-#define MX6DL_PAD_ENET_TXD1__ENET_TX_DATA1 0x208 0x5d8 0x000 0x1 0x0 +-#define MX6DL_PAD_ENET_TXD1__ESAI_TX2_RX3 0x208 0x5d8 0x84c 0x2 0x0 +-#define MX6DL_PAD_ENET_TXD1__ENET_1588_EVENT0_IN 0x208 0x5d8 0x000 0x4 0x0 +-#define MX6DL_PAD_ENET_TXD1__GPIO1_IO29 0x208 0x5d8 0x000 0x5 0x0 +-#define MX6DL_PAD_ENET_TXD1__I2C4_SDA 0x208 0x5d8 0x884 0x9 0x0 +-#define MX6DL_PAD_GPIO_0__CCM_CLKO1 0x20c 0x5dc 0x000 0x0 0x0 +-#define MX6DL_PAD_GPIO_0__KEY_COL5 0x20c 0x5dc 0x8c0 0x2 0x1 +-#define MX6DL_PAD_GPIO_0__ASRC_EXT_CLK 0x20c 0x5dc 0x794 0x3 0x0 +-#define MX6DL_PAD_GPIO_0__EPIT1_OUT 0x20c 0x5dc 0x000 0x4 0x0 +-#define MX6DL_PAD_GPIO_0__GPIO1_IO00 0x20c 0x5dc 0x000 0x5 0x0 +-#define MX6DL_PAD_GPIO_0__USB_H1_PWR 0x20c 0x5dc 0x000 0x6 0x0 +-#define MX6DL_PAD_GPIO_0__SNVS_VIO_5 0x20c 0x5dc 0x000 0x7 0x0 +-#define MX6DL_PAD_GPIO_1__ESAI_RX_CLK 0x210 0x5e0 0x83c 0x0 0x1 +-#define MX6DL_PAD_GPIO_1__WDOG2_B 0x210 0x5e0 0x000 0x1 0x0 +-#define MX6DL_PAD_GPIO_1__KEY_ROW5 0x210 0x5e0 0x8cc 0x2 0x1 +-#define MX6DL_PAD_GPIO_1__USB_OTG_ID 0x210 0x5e0 0x790 0x3 0x1 +-#define MX6DL_PAD_GPIO_1__PWM2_OUT 0x210 0x5e0 0x000 0x4 0x0 +-#define MX6DL_PAD_GPIO_1__GPIO1_IO01 0x210 0x5e0 0x000 0x5 0x0 +-#define MX6DL_PAD_GPIO_1__SD1_CD_B 0x210 0x5e0 0x000 0x6 0x0 +-#define MX6DL_PAD_GPIO_16__ESAI_TX3_RX2 0x214 0x5e4 0x850 0x0 0x1 +-#define MX6DL_PAD_GPIO_16__ENET_1588_EVENT2_IN 0x214 0x5e4 0x000 0x1 0x0 +-#define MX6DL_PAD_GPIO_16__ENET_REF_CLK 0x214 0x5e4 0x80c 0x2 0x0 +-#define MX6DL_PAD_GPIO_16__SD1_LCTL 0x214 0x5e4 0x000 0x3 0x0 +-#define MX6DL_PAD_GPIO_16__SPDIF_IN 0x214 0x5e4 0x8f0 0x4 0x2 +-#define MX6DL_PAD_GPIO_16__GPIO7_IO11 0x214 0x5e4 0x000 0x5 0x0 +-#define MX6DL_PAD_GPIO_16__I2C3_SDA 0x214 0x5e4 0x87c 0x6 0x1 +-#define MX6DL_PAD_GPIO_16__JTAG_DE_B 0x214 0x5e4 0x000 0x7 0x0 +-#define MX6DL_PAD_GPIO_17__ESAI_TX0 0x218 0x5e8 0x844 0x0 0x0 +-#define MX6DL_PAD_GPIO_17__ENET_1588_EVENT3_IN 0x218 0x5e8 0x000 0x1 0x0 +-#define MX6DL_PAD_GPIO_17__CCM_PMIC_READY 0x218 0x5e8 0x7d4 0x2 0x1 +-#define MX6DL_PAD_GPIO_17__SDMA_EXT_EVENT0 0x218 0x5e8 0x8e8 0x3 0x1 +-#define MX6DL_PAD_GPIO_17__SPDIF_OUT 0x218 0x5e8 0x000 0x4 0x0 +-#define MX6DL_PAD_GPIO_17__GPIO7_IO12 0x218 0x5e8 0x000 0x5 0x0 +-#define MX6DL_PAD_GPIO_18__ESAI_TX1 0x21c 0x5ec 0x848 0x0 0x0 +-#define MX6DL_PAD_GPIO_18__ENET_RX_CLK 0x21c 0x5ec 0x814 0x1 0x0 +-#define MX6DL_PAD_GPIO_18__SD3_VSELECT 0x21c 0x5ec 0x000 0x2 0x0 +-#define MX6DL_PAD_GPIO_18__SDMA_EXT_EVENT1 0x21c 0x5ec 0x8ec 0x3 0x1 +-#define MX6DL_PAD_GPIO_18__ASRC_EXT_CLK 0x21c 0x5ec 0x794 0x4 0x1 +-#define MX6DL_PAD_GPIO_18__GPIO7_IO13 0x21c 0x5ec 0x000 0x5 0x0 +-#define MX6DL_PAD_GPIO_18__SNVS_VIO_5_CTL 0x21c 0x5ec 0x000 0x6 0x0 +-#define MX6DL_PAD_GPIO_19__KEY_COL5 0x220 0x5f0 0x8c0 0x0 0x2 +-#define MX6DL_PAD_GPIO_19__ENET_1588_EVENT0_OUT 0x220 0x5f0 0x000 0x1 0x0 +-#define MX6DL_PAD_GPIO_19__SPDIF_OUT 0x220 0x5f0 0x000 0x2 0x0 +-#define MX6DL_PAD_GPIO_19__CCM_CLKO1 0x220 0x5f0 0x000 0x3 0x0 +-#define MX6DL_PAD_GPIO_19__ECSPI1_RDY 0x220 0x5f0 0x000 0x4 0x0 +-#define MX6DL_PAD_GPIO_19__GPIO4_IO05 0x220 0x5f0 0x000 0x5 0x0 +-#define MX6DL_PAD_GPIO_19__ENET_TX_ER 0x220 0x5f0 0x000 0x6 0x0 +-#define MX6DL_PAD_GPIO_2__ESAI_TX_FS 0x224 0x5f4 0x830 0x0 0x1 +-#define MX6DL_PAD_GPIO_2__KEY_ROW6 0x224 0x5f4 0x8d0 0x2 0x1 +-#define MX6DL_PAD_GPIO_2__GPIO1_IO02 0x224 0x5f4 0x000 0x5 0x0 +-#define MX6DL_PAD_GPIO_2__SD2_WP 0x224 0x5f4 0x000 0x6 0x0 +-#define MX6DL_PAD_GPIO_2__MLB_DATA 0x224 0x5f4 0x8e0 0x7 0x1 +-#define MX6DL_PAD_GPIO_3__ESAI_RX_HF_CLK 0x228 0x5f8 0x834 0x0 0x1 +-#define MX6DL_PAD_GPIO_3__I2C3_SCL 0x228 0x5f8 0x878 0x2 0x1 +-#define MX6DL_PAD_GPIO_3__XTALOSC_REF_CLK_24M 0x228 0x5f8 0x000 0x3 0x0 +-#define MX6DL_PAD_GPIO_3__CCM_CLKO2 0x228 0x5f8 0x000 0x4 0x0 +-#define MX6DL_PAD_GPIO_3__GPIO1_IO03 0x228 0x5f8 0x000 0x5 0x0 +-#define MX6DL_PAD_GPIO_3__USB_H1_OC 0x228 0x5f8 0x924 0x6 0x1 +-#define MX6DL_PAD_GPIO_3__MLB_CLK 0x228 0x5f8 0x8dc 0x7 0x1 +-#define MX6DL_PAD_GPIO_4__ESAI_TX_HF_CLK 0x22c 0x5fc 0x838 0x0 0x1 +-#define MX6DL_PAD_GPIO_4__KEY_COL7 0x22c 0x5fc 0x8c8 0x2 0x1 +-#define MX6DL_PAD_GPIO_4__GPIO1_IO04 0x22c 0x5fc 0x000 0x5 0x0 +-#define MX6DL_PAD_GPIO_4__SD2_CD_B 0x22c 0x5fc 0x000 0x6 0x0 +-#define MX6DL_PAD_GPIO_5__ESAI_TX2_RX3 0x230 0x600 0x84c 0x0 0x1 +-#define MX6DL_PAD_GPIO_5__KEY_ROW7 0x230 0x600 0x8d4 0x2 0x1 +-#define MX6DL_PAD_GPIO_5__CCM_CLKO1 0x230 0x600 0x000 0x3 0x0 +-#define MX6DL_PAD_GPIO_5__GPIO1_IO05 0x230 0x600 0x000 0x5 0x0 +-#define MX6DL_PAD_GPIO_5__I2C3_SCL 0x230 0x600 0x878 0x6 0x2 +-#define MX6DL_PAD_GPIO_5__ARM_EVENTI 0x230 0x600 0x000 0x7 0x0 +-#define MX6DL_PAD_GPIO_6__ESAI_TX_CLK 0x234 0x604 0x840 0x0 0x1 +-#define MX6DL_PAD_GPIO_6__I2C3_SDA 0x234 0x604 0x87c 0x2 0x2 +-#define MX6DL_PAD_GPIO_6__GPIO1_IO06 0x234 0x604 0x000 0x5 0x0 +-#define MX6DL_PAD_GPIO_6__SD2_LCTL 0x234 0x604 0x000 0x6 0x0 +-#define MX6DL_PAD_GPIO_6__MLB_SIG 0x234 0x604 0x8e4 0x7 0x1 +-#define MX6DL_PAD_GPIO_7__ESAI_TX4_RX1 0x238 0x608 0x854 0x0 0x1 +-#define MX6DL_PAD_GPIO_7__EPIT1_OUT 0x238 0x608 0x000 0x2 0x0 +-#define MX6DL_PAD_GPIO_7__FLEXCAN1_TX 0x238 0x608 0x000 0x3 0x0 +-#define MX6DL_PAD_GPIO_7__UART2_TX_DATA 0x238 0x608 0x000 0x4 0x0 +-#define MX6DL_PAD_GPIO_7__UART2_RX_DATA 0x238 0x608 0x904 0x4 0x2 +-#define MX6DL_PAD_GPIO_7__GPIO1_IO07 0x238 0x608 0x000 0x5 0x0 +-#define MX6DL_PAD_GPIO_7__SPDIF_LOCK 0x238 0x608 0x000 0x6 0x0 +-#define MX6DL_PAD_GPIO_7__USB_OTG_HOST_MODE 0x238 0x608 0x000 0x7 0x0 +-#define MX6DL_PAD_GPIO_7__I2C4_SCL 0x238 0x608 0x880 0x8 0x1 +-#define MX6DL_PAD_GPIO_8__ESAI_TX5_RX0 0x23c 0x60c 0x858 0x0 0x1 +-#define MX6DL_PAD_GPIO_8__XTALOSC_REF_CLK_32K 0x23c 0x60c 0x000 0x1 0x0 +-#define MX6DL_PAD_GPIO_8__EPIT2_OUT 0x23c 0x60c 0x000 0x2 0x0 +-#define MX6DL_PAD_GPIO_8__FLEXCAN1_RX 0x23c 0x60c 0x7c8 0x3 0x0 +-#define MX6DL_PAD_GPIO_8__UART2_RX_DATA 0x23c 0x60c 0x904 0x4 0x3 +-#define MX6DL_PAD_GPIO_8__UART2_TX_DATA 0x23c 0x60c 0x000 0x4 0x0 +-#define MX6DL_PAD_GPIO_8__GPIO1_IO08 0x23c 0x60c 0x000 0x5 0x0 +-#define MX6DL_PAD_GPIO_8__SPDIF_SR_CLK 0x23c 0x60c 0x000 0x6 0x0 +-#define MX6DL_PAD_GPIO_8__USB_OTG_PWR_CTL_WAKE 0x23c 0x60c 0x000 0x7 0x0 +-#define MX6DL_PAD_GPIO_8__I2C4_SDA 0x23c 0x60c 0x884 0x8 0x1 +-#define MX6DL_PAD_GPIO_9__ESAI_RX_FS 0x240 0x610 0x82c 0x0 0x1 +-#define MX6DL_PAD_GPIO_9__WDOG1_B 0x240 0x610 0x000 0x1 0x0 +-#define MX6DL_PAD_GPIO_9__KEY_COL6 0x240 0x610 0x8c4 0x2 0x1 +-#define MX6DL_PAD_GPIO_9__CCM_REF_EN_B 0x240 0x610 0x000 0x3 0x0 +-#define MX6DL_PAD_GPIO_9__PWM1_OUT 0x240 0x610 0x000 0x4 0x0 +-#define MX6DL_PAD_GPIO_9__GPIO1_IO09 0x240 0x610 0x000 0x5 0x0 +-#define MX6DL_PAD_GPIO_9__SD1_WP 0x240 0x610 0x92c 0x6 0x1 +-#define MX6DL_PAD_KEY_COL0__ECSPI1_SCLK 0x244 0x62c 0x7d8 0x0 0x3 +-#define MX6DL_PAD_KEY_COL0__ENET_RX_DATA3 0x244 0x62c 0x824 0x1 0x0 +-#define MX6DL_PAD_KEY_COL0__AUD5_TXC 0x244 0x62c 0x7c0 0x2 0x1 +-#define MX6DL_PAD_KEY_COL0__KEY_COL0 0x244 0x62c 0x000 0x3 0x0 +-#define MX6DL_PAD_KEY_COL0__UART4_TX_DATA 0x244 0x62c 0x000 0x4 0x0 +-#define MX6DL_PAD_KEY_COL0__UART4_RX_DATA 0x244 0x62c 0x914 0x4 0x2 +-#define MX6DL_PAD_KEY_COL0__GPIO4_IO06 0x244 0x62c 0x000 0x5 0x0 +-#define MX6DL_PAD_KEY_COL0__DCIC1_OUT 0x244 0x62c 0x000 0x6 0x0 +-#define MX6DL_PAD_KEY_COL1__ECSPI1_MISO 0x248 0x630 0x7dc 0x0 0x3 +-#define MX6DL_PAD_KEY_COL1__ENET_MDIO 0x248 0x630 0x810 0x1 0x1 +-#define MX6DL_PAD_KEY_COL1__AUD5_TXFS 0x248 0x630 0x7c4 0x2 0x1 +-#define MX6DL_PAD_KEY_COL1__KEY_COL1 0x248 0x630 0x000 0x3 0x0 +-#define MX6DL_PAD_KEY_COL1__UART5_TX_DATA 0x248 0x630 0x000 0x4 0x0 +-#define MX6DL_PAD_KEY_COL1__UART5_RX_DATA 0x248 0x630 0x91c 0x4 0x2 +-#define MX6DL_PAD_KEY_COL1__GPIO4_IO08 0x248 0x630 0x000 0x5 0x0 +-#define MX6DL_PAD_KEY_COL1__SD1_VSELECT 0x248 0x630 0x000 0x6 0x0 +-#define MX6DL_PAD_KEY_COL2__ECSPI1_SS1 0x24c 0x634 0x7e8 0x0 0x2 +-#define MX6DL_PAD_KEY_COL2__ENET_RX_DATA2 0x24c 0x634 0x820 0x1 0x0 +-#define MX6DL_PAD_KEY_COL2__FLEXCAN1_TX 0x24c 0x634 0x000 0x2 0x0 +-#define MX6DL_PAD_KEY_COL2__KEY_COL2 0x24c 0x634 0x000 0x3 0x0 +-#define MX6DL_PAD_KEY_COL2__ENET_MDC 0x24c 0x634 0x000 0x4 0x0 +-#define MX6DL_PAD_KEY_COL2__GPIO4_IO10 0x24c 0x634 0x000 0x5 0x0 +-#define MX6DL_PAD_KEY_COL2__USB_H1_PWR_CTL_WAKE 0x24c 0x634 0x000 0x6 0x0 +-#define MX6DL_PAD_KEY_COL3__ECSPI1_SS3 0x250 0x638 0x7f0 0x0 0x1 +-#define MX6DL_PAD_KEY_COL3__ENET_CRS 0x250 0x638 0x000 0x1 0x0 +-#define MX6DL_PAD_KEY_COL3__HDMI_TX_DDC_SCL 0x250 0x638 0x860 0x2 0x1 +-#define MX6DL_PAD_KEY_COL3__KEY_COL3 0x250 0x638 0x000 0x3 0x0 +-#define MX6DL_PAD_KEY_COL3__I2C2_SCL 0x250 0x638 0x870 0x4 0x1 +-#define MX6DL_PAD_KEY_COL3__GPIO4_IO12 0x250 0x638 0x000 0x5 0x0 +-#define MX6DL_PAD_KEY_COL3__SPDIF_IN 0x250 0x638 0x8f0 0x6 0x3 +-#define MX6DL_PAD_KEY_COL4__FLEXCAN2_TX 0x254 0x63c 0x000 0x0 0x0 +-#define MX6DL_PAD_KEY_COL4__IPU1_SISG4 0x254 0x63c 0x000 0x1 0x0 +-#define MX6DL_PAD_KEY_COL4__USB_OTG_OC 0x254 0x63c 0x920 0x2 0x1 +-#define MX6DL_PAD_KEY_COL4__KEY_COL4 0x254 0x63c 0x000 0x3 0x0 +-#define MX6DL_PAD_KEY_COL4__UART5_RTS_B 0x254 0x63c 0x918 0x4 0x2 +-#define MX6DL_PAD_KEY_COL4__UART5_CTS_B 0x254 0x63c 0x000 0x4 0x0 +-#define MX6DL_PAD_KEY_COL4__GPIO4_IO14 0x254 0x63c 0x000 0x5 0x0 +-#define MX6DL_PAD_KEY_ROW0__ECSPI1_MOSI 0x258 0x640 0x7e0 0x0 0x3 +-#define MX6DL_PAD_KEY_ROW0__ENET_TX_DATA3 0x258 0x640 0x000 0x1 0x0 +-#define MX6DL_PAD_KEY_ROW0__AUD5_TXD 0x258 0x640 0x7b4 0x2 0x1 +-#define MX6DL_PAD_KEY_ROW0__KEY_ROW0 0x258 0x640 0x000 0x3 0x0 +-#define MX6DL_PAD_KEY_ROW0__UART4_RX_DATA 0x258 0x640 0x914 0x4 0x3 +-#define MX6DL_PAD_KEY_ROW0__UART4_TX_DATA 0x258 0x640 0x000 0x4 0x0 +-#define MX6DL_PAD_KEY_ROW0__GPIO4_IO07 0x258 0x640 0x000 0x5 0x0 +-#define MX6DL_PAD_KEY_ROW0__DCIC2_OUT 0x258 0x640 0x000 0x6 0x0 +-#define MX6DL_PAD_KEY_ROW1__ECSPI1_SS0 0x25c 0x644 0x7e4 0x0 0x3 +-#define MX6DL_PAD_KEY_ROW1__ENET_COL 0x25c 0x644 0x000 0x1 0x0 +-#define MX6DL_PAD_KEY_ROW1__AUD5_RXD 0x25c 0x644 0x7b0 0x2 0x1 +-#define MX6DL_PAD_KEY_ROW1__KEY_ROW1 0x25c 0x644 0x000 0x3 0x0 +-#define MX6DL_PAD_KEY_ROW1__UART5_RX_DATA 0x25c 0x644 0x91c 0x4 0x3 +-#define MX6DL_PAD_KEY_ROW1__UART5_TX_DATA 0x25c 0x644 0x000 0x4 0x0 +-#define MX6DL_PAD_KEY_ROW1__GPIO4_IO09 0x25c 0x644 0x000 0x5 0x0 +-#define MX6DL_PAD_KEY_ROW1__SD2_VSELECT 0x25c 0x644 0x000 0x6 0x0 +-#define MX6DL_PAD_KEY_ROW2__ECSPI1_SS2 0x260 0x648 0x7ec 0x0 0x1 +-#define MX6DL_PAD_KEY_ROW2__ENET_TX_DATA2 0x260 0x648 0x000 0x1 0x0 +-#define MX6DL_PAD_KEY_ROW2__FLEXCAN1_RX 0x260 0x648 0x7c8 0x2 0x1 +-#define MX6DL_PAD_KEY_ROW2__KEY_ROW2 0x260 0x648 0x000 0x3 0x0 +-#define MX6DL_PAD_KEY_ROW2__SD2_VSELECT 0x260 0x648 0x000 0x4 0x0 +-#define MX6DL_PAD_KEY_ROW2__GPIO4_IO11 0x260 0x648 0x000 0x5 0x0 +-#define MX6DL_PAD_KEY_ROW2__HDMI_TX_CEC_LINE 0x260 0x648 0x85c 0x6 0x1 +-#define MX6DL_PAD_KEY_ROW3__ASRC_EXT_CLK 0x264 0x64c 0x794 0x1 0x2 +-#define MX6DL_PAD_KEY_ROW3__HDMI_TX_DDC_SDA 0x264 0x64c 0x864 0x2 0x1 +-#define MX6DL_PAD_KEY_ROW3__KEY_ROW3 0x264 0x64c 0x000 0x3 0x0 +-#define MX6DL_PAD_KEY_ROW3__I2C2_SDA 0x264 0x64c 0x874 0x4 0x1 +-#define MX6DL_PAD_KEY_ROW3__GPIO4_IO13 0x264 0x64c 0x000 0x5 0x0 +-#define MX6DL_PAD_KEY_ROW3__SD1_VSELECT 0x264 0x64c 0x000 0x6 0x0 +-#define MX6DL_PAD_KEY_ROW4__FLEXCAN2_RX 0x268 0x650 0x7cc 0x0 0x0 +-#define MX6DL_PAD_KEY_ROW4__IPU1_SISG5 0x268 0x650 0x000 0x1 0x0 +-#define MX6DL_PAD_KEY_ROW4__USB_OTG_PWR 0x268 0x650 0x000 0x2 0x0 +-#define MX6DL_PAD_KEY_ROW4__KEY_ROW4 0x268 0x650 0x000 0x3 0x0 +-#define MX6DL_PAD_KEY_ROW4__UART5_CTS_B 0x268 0x650 0x000 0x4 0x0 +-#define MX6DL_PAD_KEY_ROW4__UART5_RTS_B 0x268 0x650 0x918 0x4 0x3 +-#define MX6DL_PAD_KEY_ROW4__GPIO4_IO15 0x268 0x650 0x000 0x5 0x0 +-#define MX6DL_PAD_NANDF_ALE__NAND_ALE 0x26c 0x654 0x000 0x0 0x0 +-#define MX6DL_PAD_NANDF_ALE__SD4_RESET 0x26c 0x654 0x000 0x1 0x0 +-#define MX6DL_PAD_NANDF_ALE__GPIO6_IO08 0x26c 0x654 0x000 0x5 0x0 +-#define MX6DL_PAD_NANDF_CLE__NAND_CLE 0x270 0x658 0x000 0x0 0x0 +-#define MX6DL_PAD_NANDF_CLE__GPIO6_IO07 0x270 0x658 0x000 0x5 0x0 +-#define MX6DL_PAD_NANDF_CS0__NAND_CE0_B 0x274 0x65c 0x000 0x0 0x0 +-#define MX6DL_PAD_NANDF_CS0__GPIO6_IO11 0x274 0x65c 0x000 0x5 0x0 +-#define MX6DL_PAD_NANDF_CS1__NAND_CE1_B 0x278 0x660 0x000 0x0 0x0 +-#define MX6DL_PAD_NANDF_CS1__SD4_VSELECT 0x278 0x660 0x000 0x1 0x0 +-#define MX6DL_PAD_NANDF_CS1__SD3_VSELECT 0x278 0x660 0x000 0x2 0x0 +-#define MX6DL_PAD_NANDF_CS1__GPIO6_IO14 0x278 0x660 0x000 0x5 0x0 +-#define MX6DL_PAD_NANDF_CS2__NAND_CE2_B 0x27c 0x664 0x000 0x0 0x0 +-#define MX6DL_PAD_NANDF_CS2__IPU1_SISG0 0x27c 0x664 0x000 0x1 0x0 +-#define MX6DL_PAD_NANDF_CS2__ESAI_TX0 0x27c 0x664 0x844 0x2 0x1 +-#define MX6DL_PAD_NANDF_CS2__EIM_CRE 0x27c 0x664 0x000 0x3 0x0 +-#define MX6DL_PAD_NANDF_CS2__CCM_CLKO2 0x27c 0x664 0x000 0x4 0x0 +-#define MX6DL_PAD_NANDF_CS2__GPIO6_IO15 0x27c 0x664 0x000 0x5 0x0 +-#define MX6DL_PAD_NANDF_CS3__NAND_CE3_B 0x280 0x668 0x000 0x0 0x0 +-#define MX6DL_PAD_NANDF_CS3__IPU1_SISG1 0x280 0x668 0x000 0x1 0x0 +-#define MX6DL_PAD_NANDF_CS3__ESAI_TX1 0x280 0x668 0x848 0x2 0x1 +-#define MX6DL_PAD_NANDF_CS3__EIM_ADDR26 0x280 0x668 0x000 0x3 0x0 +-#define MX6DL_PAD_NANDF_CS3__GPIO6_IO16 0x280 0x668 0x000 0x5 0x0 +-#define MX6DL_PAD_NANDF_CS3__I2C4_SDA 0x280 0x668 0x884 0x9 0x2 +-#define MX6DL_PAD_NANDF_D0__NAND_DATA00 0x284 0x66c 0x000 0x0 0x0 +-#define MX6DL_PAD_NANDF_D0__SD1_DATA4 0x284 0x66c 0x000 0x1 0x0 +-#define MX6DL_PAD_NANDF_D0__GPIO2_IO00 0x284 0x66c 0x000 0x5 0x0 +-#define MX6DL_PAD_NANDF_D1__NAND_DATA01 0x288 0x670 0x000 0x0 0x0 +-#define MX6DL_PAD_NANDF_D1__SD1_DATA5 0x288 0x670 0x000 0x1 0x0 +-#define MX6DL_PAD_NANDF_D1__GPIO2_IO01 0x288 0x670 0x000 0x5 0x0 +-#define MX6DL_PAD_NANDF_D2__NAND_DATA02 0x28c 0x674 0x000 0x0 0x0 +-#define MX6DL_PAD_NANDF_D2__SD1_DATA6 0x28c 0x674 0x000 0x1 0x0 +-#define MX6DL_PAD_NANDF_D2__GPIO2_IO02 0x28c 0x674 0x000 0x5 0x0 +-#define MX6DL_PAD_NANDF_D3__NAND_DATA03 0x290 0x678 0x000 0x0 0x0 +-#define MX6DL_PAD_NANDF_D3__SD1_DATA7 0x290 0x678 0x000 0x1 0x0 +-#define MX6DL_PAD_NANDF_D3__GPIO2_IO03 0x290 0x678 0x000 0x5 0x0 +-#define MX6DL_PAD_NANDF_D4__NAND_DATA04 0x294 0x67c 0x000 0x0 0x0 +-#define MX6DL_PAD_NANDF_D4__SD2_DATA4 0x294 0x67c 0x000 0x1 0x0 +-#define MX6DL_PAD_NANDF_D4__GPIO2_IO04 0x294 0x67c 0x000 0x5 0x0 +-#define MX6DL_PAD_NANDF_D5__NAND_DATA05 0x298 0x680 0x000 0x0 0x0 +-#define MX6DL_PAD_NANDF_D5__SD2_DATA5 0x298 0x680 0x000 0x1 0x0 +-#define MX6DL_PAD_NANDF_D5__GPIO2_IO05 0x298 0x680 0x000 0x5 0x0 +-#define MX6DL_PAD_NANDF_D6__NAND_DATA06 0x29c 0x684 0x000 0x0 0x0 +-#define MX6DL_PAD_NANDF_D6__SD2_DATA6 0x29c 0x684 0x000 0x1 0x0 +-#define MX6DL_PAD_NANDF_D6__GPIO2_IO06 0x29c 0x684 0x000 0x5 0x0 +-#define MX6DL_PAD_NANDF_D7__NAND_DATA07 0x2a0 0x688 0x000 0x0 0x0 +-#define MX6DL_PAD_NANDF_D7__SD2_DATA7 0x2a0 0x688 0x000 0x1 0x0 +-#define MX6DL_PAD_NANDF_D7__GPIO2_IO07 0x2a0 0x688 0x000 0x5 0x0 +-#define MX6DL_PAD_NANDF_RB0__NAND_READY_B 0x2a4 0x68c 0x000 0x0 0x0 +-#define MX6DL_PAD_NANDF_RB0__GPIO6_IO10 0x2a4 0x68c 0x000 0x5 0x0 +-#define MX6DL_PAD_NANDF_WP_B__NAND_WP_B 0x2a8 0x690 0x000 0x0 0x0 +-#define MX6DL_PAD_NANDF_WP_B__GPIO6_IO09 0x2a8 0x690 0x000 0x5 0x0 +-#define MX6DL_PAD_NANDF_WP_B__I2C4_SCL 0x2a8 0x690 0x880 0x9 0x2 +-#define MX6DL_PAD_RGMII_RD0__HSI_RX_READY 0x2ac 0x694 0x000 0x0 0x0 +-#define MX6DL_PAD_RGMII_RD0__RGMII_RD0 0x2ac 0x694 0x818 0x1 0x1 +-#define MX6DL_PAD_RGMII_RD0__GPIO6_IO25 0x2ac 0x694 0x000 0x5 0x0 +-#define MX6DL_PAD_RGMII_RD1__HSI_TX_FLAG 0x2b0 0x698 0x000 0x0 0x0 +-#define MX6DL_PAD_RGMII_RD1__RGMII_RD1 0x2b0 0x698 0x81c 0x1 0x1 +-#define MX6DL_PAD_RGMII_RD1__GPIO6_IO27 0x2b0 0x698 0x000 0x5 0x0 +-#define MX6DL_PAD_RGMII_RD2__HSI_TX_DATA 0x2b4 0x69c 0x000 0x0 0x0 +-#define MX6DL_PAD_RGMII_RD2__RGMII_RD2 0x2b4 0x69c 0x820 0x1 0x1 +-#define MX6DL_PAD_RGMII_RD2__GPIO6_IO28 0x2b4 0x69c 0x000 0x5 0x0 +-#define MX6DL_PAD_RGMII_RD3__HSI_TX_WAKE 0x2b8 0x6a0 0x000 0x0 0x0 +-#define MX6DL_PAD_RGMII_RD3__RGMII_RD3 0x2b8 0x6a0 0x824 0x1 0x1 +-#define MX6DL_PAD_RGMII_RD3__GPIO6_IO29 0x2b8 0x6a0 0x000 0x5 0x0 +-#define MX6DL_PAD_RGMII_RX_CTL__USB_H3_DATA 0x2bc 0x6a4 0x000 0x0 0x0 +-#define MX6DL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x2bc 0x6a4 0x828 0x1 0x1 +-#define MX6DL_PAD_RGMII_RX_CTL__GPIO6_IO24 0x2bc 0x6a4 0x000 0x5 0x0 +-#define MX6DL_PAD_RGMII_RXC__USB_H3_STROBE 0x2c0 0x6a8 0x000 0x0 0x0 +-#define MX6DL_PAD_RGMII_RXC__RGMII_RXC 0x2c0 0x6a8 0x814 0x1 0x1 +-#define MX6DL_PAD_RGMII_RXC__GPIO6_IO30 0x2c0 0x6a8 0x000 0x5 0x0 +-#define MX6DL_PAD_RGMII_TD0__HSI_TX_READY 0x2c4 0x6ac 0x000 0x0 0x0 +-#define MX6DL_PAD_RGMII_TD0__RGMII_TD0 0x2c4 0x6ac 0x000 0x1 0x0 +-#define MX6DL_PAD_RGMII_TD0__GPIO6_IO20 0x2c4 0x6ac 0x000 0x5 0x0 +-#define MX6DL_PAD_RGMII_TD1__HSI_RX_FLAG 0x2c8 0x6b0 0x000 0x0 0x0 +-#define MX6DL_PAD_RGMII_TD1__RGMII_TD1 0x2c8 0x6b0 0x000 0x1 0x0 +-#define MX6DL_PAD_RGMII_TD1__GPIO6_IO21 0x2c8 0x6b0 0x000 0x5 0x0 +-#define MX6DL_PAD_RGMII_TD2__HSI_RX_DATA 0x2cc 0x6b4 0x000 0x0 0x0 +-#define MX6DL_PAD_RGMII_TD2__RGMII_TD2 0x2cc 0x6b4 0x000 0x1 0x0 +-#define MX6DL_PAD_RGMII_TD2__GPIO6_IO22 0x2cc 0x6b4 0x000 0x5 0x0 +-#define MX6DL_PAD_RGMII_TD3__HSI_RX_WAKE 0x2d0 0x6b8 0x000 0x0 0x0 +-#define MX6DL_PAD_RGMII_TD3__RGMII_TD3 0x2d0 0x6b8 0x000 0x1 0x0 +-#define MX6DL_PAD_RGMII_TD3__GPIO6_IO23 0x2d0 0x6b8 0x000 0x5 0x0 +-#define MX6DL_PAD_RGMII_TX_CTL__USB_H2_STROBE 0x2d4 0x6bc 0x000 0x0 0x0 +-#define MX6DL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x2d4 0x6bc 0x000 0x1 0x0 +-#define MX6DL_PAD_RGMII_TX_CTL__GPIO6_IO26 0x2d4 0x6bc 0x000 0x5 0x0 +-#define MX6DL_PAD_RGMII_TX_CTL__ENET_REF_CLK 0x2d4 0x6bc 0x80c 0x7 0x1 +-#define MX6DL_PAD_RGMII_TXC__USB_H2_DATA 0x2d8 0x6c0 0x000 0x0 0x0 +-#define MX6DL_PAD_RGMII_TXC__RGMII_TXC 0x2d8 0x6c0 0x000 0x1 0x0 +-#define MX6DL_PAD_RGMII_TXC__SPDIF_EXT_CLK 0x2d8 0x6c0 0x8f4 0x2 0x1 +-#define MX6DL_PAD_RGMII_TXC__GPIO6_IO19 0x2d8 0x6c0 0x000 0x5 0x0 +-#define MX6DL_PAD_RGMII_TXC__XTALOSC_REF_CLK_24M 0x2d8 0x6c0 0x000 0x7 0x0 +-#define MX6DL_PAD_SD1_CLK__SD1_CLK 0x2dc 0x6c4 0x928 0x0 0x1 +-#define MX6DL_PAD_SD1_CLK__GPT_CLKIN 0x2dc 0x6c4 0x000 0x3 0x0 +-#define MX6DL_PAD_SD1_CLK__GPIO1_IO20 0x2dc 0x6c4 0x000 0x5 0x0 +-#define MX6DL_PAD_SD1_CMD__SD1_CMD 0x2e0 0x6c8 0x000 0x0 0x0 +-#define MX6DL_PAD_SD1_CMD__PWM4_OUT 0x2e0 0x6c8 0x000 0x2 0x0 +-#define MX6DL_PAD_SD1_CMD__GPT_COMPARE1 0x2e0 0x6c8 0x000 0x3 0x0 +-#define MX6DL_PAD_SD1_CMD__GPIO1_IO18 0x2e0 0x6c8 0x000 0x5 0x0 +-#define MX6DL_PAD_SD1_DAT0__SD1_DATA0 0x2e4 0x6cc 0x000 0x0 0x0 +-#define MX6DL_PAD_SD1_DAT0__GPT_CAPTURE1 0x2e4 0x6cc 0x000 0x3 0x0 +-#define MX6DL_PAD_SD1_DAT0__GPIO1_IO16 0x2e4 0x6cc 0x000 0x5 0x0 +-#define MX6DL_PAD_SD1_DAT1__SD1_DATA1 0x2e8 0x6d0 0x000 0x0 0x0 +-#define MX6DL_PAD_SD1_DAT1__PWM3_OUT 0x2e8 0x6d0 0x000 0x2 0x0 +-#define MX6DL_PAD_SD1_DAT1__GPT_CAPTURE2 0x2e8 0x6d0 0x000 0x3 0x0 +-#define MX6DL_PAD_SD1_DAT1__GPIO1_IO17 0x2e8 0x6d0 0x000 0x5 0x0 +-#define MX6DL_PAD_SD1_DAT2__SD1_DATA2 0x2ec 0x6d4 0x000 0x0 0x0 +-#define MX6DL_PAD_SD1_DAT2__GPT_COMPARE2 0x2ec 0x6d4 0x000 0x2 0x0 +-#define MX6DL_PAD_SD1_DAT2__PWM2_OUT 0x2ec 0x6d4 0x000 0x3 0x0 +-#define MX6DL_PAD_SD1_DAT2__WDOG1_B 0x2ec 0x6d4 0x000 0x4 0x0 +-#define MX6DL_PAD_SD1_DAT2__GPIO1_IO19 0x2ec 0x6d4 0x000 0x5 0x0 +-#define MX6DL_PAD_SD1_DAT2__WDOG1_RESET_B_DEB 0x2ec 0x6d4 0x000 0x6 0x0 +-#define MX6DL_PAD_SD1_DAT3__SD1_DATA3 0x2f0 0x6d8 0x000 0x0 0x0 +-#define MX6DL_PAD_SD1_DAT3__GPT_COMPARE3 0x2f0 0x6d8 0x000 0x2 0x0 +-#define MX6DL_PAD_SD1_DAT3__PWM1_OUT 0x2f0 0x6d8 0x000 0x3 0x0 +-#define MX6DL_PAD_SD1_DAT3__WDOG2_B 0x2f0 0x6d8 0x000 0x4 0x0 +-#define MX6DL_PAD_SD1_DAT3__GPIO1_IO21 0x2f0 0x6d8 0x000 0x5 0x0 +-#define MX6DL_PAD_SD1_DAT3__WDOG2_RESET_B_DEB 0x2f0 0x6d8 0x000 0x6 0x0 +-#define MX6DL_PAD_SD2_CLK__SD2_CLK 0x2f4 0x6dc 0x930 0x0 0x1 +-#define MX6DL_PAD_SD2_CLK__KEY_COL5 0x2f4 0x6dc 0x8c0 0x2 0x3 +-#define MX6DL_PAD_SD2_CLK__AUD4_RXFS 0x2f4 0x6dc 0x7a4 0x3 0x1 +-#define MX6DL_PAD_SD2_CLK__GPIO1_IO10 0x2f4 0x6dc 0x000 0x5 0x0 +-#define MX6DL_PAD_SD2_CMD__SD2_CMD 0x2f8 0x6e0 0x000 0x0 0x0 +-#define MX6DL_PAD_SD2_CMD__KEY_ROW5 0x2f8 0x6e0 0x8cc 0x2 0x2 +-#define MX6DL_PAD_SD2_CMD__AUD4_RXC 0x2f8 0x6e0 0x7a0 0x3 0x1 +-#define MX6DL_PAD_SD2_CMD__GPIO1_IO11 0x2f8 0x6e0 0x000 0x5 0x0 +-#define MX6DL_PAD_SD2_DAT0__SD2_DATA0 0x2fc 0x6e4 0x000 0x0 0x0 +-#define MX6DL_PAD_SD2_DAT0__AUD4_RXD 0x2fc 0x6e4 0x798 0x3 0x1 +-#define MX6DL_PAD_SD2_DAT0__KEY_ROW7 0x2fc 0x6e4 0x8d4 0x4 0x2 +-#define MX6DL_PAD_SD2_DAT0__GPIO1_IO15 0x2fc 0x6e4 0x000 0x5 0x0 +-#define MX6DL_PAD_SD2_DAT0__DCIC2_OUT 0x2fc 0x6e4 0x000 0x6 0x0 +-#define MX6DL_PAD_SD2_DAT1__SD2_DATA1 0x300 0x6e8 0x000 0x0 0x0 +-#define MX6DL_PAD_SD2_DAT1__EIM_CS2_B 0x300 0x6e8 0x000 0x2 0x0 +-#define MX6DL_PAD_SD2_DAT1__AUD4_TXFS 0x300 0x6e8 0x7ac 0x3 0x1 +-#define MX6DL_PAD_SD2_DAT1__KEY_COL7 0x300 0x6e8 0x8c8 0x4 0x2 +-#define MX6DL_PAD_SD2_DAT1__GPIO1_IO14 0x300 0x6e8 0x000 0x5 0x0 +-#define MX6DL_PAD_SD2_DAT2__SD2_DATA2 0x304 0x6ec 0x000 0x0 0x0 +-#define MX6DL_PAD_SD2_DAT2__EIM_CS3_B 0x304 0x6ec 0x000 0x2 0x0 +-#define MX6DL_PAD_SD2_DAT2__AUD4_TXD 0x304 0x6ec 0x79c 0x3 0x1 +-#define MX6DL_PAD_SD2_DAT2__KEY_ROW6 0x304 0x6ec 0x8d0 0x4 0x2 +-#define MX6DL_PAD_SD2_DAT2__GPIO1_IO13 0x304 0x6ec 0x000 0x5 0x0 +-#define MX6DL_PAD_SD2_DAT3__SD2_DATA3 0x308 0x6f0 0x000 0x0 0x0 +-#define MX6DL_PAD_SD2_DAT3__KEY_COL6 0x308 0x6f0 0x8c4 0x2 0x2 +-#define MX6DL_PAD_SD2_DAT3__AUD4_TXC 0x308 0x6f0 0x7a8 0x3 0x1 +-#define MX6DL_PAD_SD2_DAT3__GPIO1_IO12 0x308 0x6f0 0x000 0x5 0x0 +-#define MX6DL_PAD_SD3_CLK__SD3_CLK 0x30c 0x6f4 0x934 0x0 0x1 +-#define MX6DL_PAD_SD3_CLK__UART2_RTS_B 0x30c 0x6f4 0x900 0x1 0x2 +-#define MX6DL_PAD_SD3_CLK__UART2_CTS_B 0x30c 0x6f4 0x000 0x1 0x0 +-#define MX6DL_PAD_SD3_CLK__FLEXCAN1_RX 0x30c 0x6f4 0x7c8 0x2 0x2 +-#define MX6DL_PAD_SD3_CLK__GPIO7_IO03 0x30c 0x6f4 0x000 0x5 0x0 +-#define MX6DL_PAD_SD3_CMD__SD3_CMD 0x310 0x6f8 0x000 0x0 0x0 +-#define MX6DL_PAD_SD3_CMD__UART2_CTS_B 0x310 0x6f8 0x000 0x1 0x0 +-#define MX6DL_PAD_SD3_CMD__UART2_RTS_B 0x310 0x6f8 0x900 0x1 0x3 +-#define MX6DL_PAD_SD3_CMD__FLEXCAN1_TX 0x310 0x6f8 0x000 0x2 0x0 +-#define MX6DL_PAD_SD3_CMD__GPIO7_IO02 0x310 0x6f8 0x000 0x5 0x0 +-#define MX6DL_PAD_SD3_DAT0__SD3_DATA0 0x314 0x6fc 0x000 0x0 0x0 +-#define MX6DL_PAD_SD3_DAT0__UART1_CTS_B 0x314 0x6fc 0x000 0x1 0x0 +-#define MX6DL_PAD_SD3_DAT0__UART1_RTS_B 0x314 0x6fc 0x8f8 0x1 0x2 +-#define MX6DL_PAD_SD3_DAT0__FLEXCAN2_TX 0x314 0x6fc 0x000 0x2 0x0 +-#define MX6DL_PAD_SD3_DAT0__GPIO7_IO04 0x314 0x6fc 0x000 0x5 0x0 +-#define MX6DL_PAD_SD3_DAT1__SD3_DATA1 0x318 0x700 0x000 0x0 0x0 +-#define MX6DL_PAD_SD3_DAT1__UART1_RTS_B 0x318 0x700 0x8f8 0x1 0x3 +-#define MX6DL_PAD_SD3_DAT1__UART1_CTS_B 0x318 0x700 0x000 0x1 0x0 +-#define MX6DL_PAD_SD3_DAT1__FLEXCAN2_RX 0x318 0x700 0x7cc 0x2 0x1 +-#define MX6DL_PAD_SD3_DAT1__GPIO7_IO05 0x318 0x700 0x000 0x5 0x0 +-#define MX6DL_PAD_SD3_DAT2__SD3_DATA2 0x31c 0x704 0x000 0x0 0x0 +-#define MX6DL_PAD_SD3_DAT2__GPIO7_IO06 0x31c 0x704 0x000 0x5 0x0 +-#define MX6DL_PAD_SD3_DAT3__SD3_DATA3 0x320 0x708 0x000 0x0 0x0 +-#define MX6DL_PAD_SD3_DAT3__UART3_CTS_B 0x320 0x708 0x000 0x1 0x0 +-#define MX6DL_PAD_SD3_DAT3__UART3_RTS_B 0x320 0x708 0x908 0x1 0x4 +-#define MX6DL_PAD_SD3_DAT3__GPIO7_IO07 0x320 0x708 0x000 0x5 0x0 +-#define MX6DL_PAD_SD3_DAT4__SD3_DATA4 0x324 0x70c 0x000 0x0 0x0 +-#define MX6DL_PAD_SD3_DAT4__UART2_RX_DATA 0x324 0x70c 0x904 0x1 0x4 +-#define MX6DL_PAD_SD3_DAT4__UART2_TX_DATA 0x324 0x70c 0x000 0x1 0x0 +-#define MX6DL_PAD_SD3_DAT4__GPIO7_IO01 0x324 0x70c 0x000 0x5 0x0 +-#define MX6DL_PAD_SD3_DAT5__SD3_DATA5 0x328 0x710 0x000 0x0 0x0 +-#define MX6DL_PAD_SD3_DAT5__UART2_TX_DATA 0x328 0x710 0x000 0x1 0x0 +-#define MX6DL_PAD_SD3_DAT5__UART2_RX_DATA 0x328 0x710 0x904 0x1 0x5 +-#define MX6DL_PAD_SD3_DAT5__GPIO7_IO00 0x328 0x710 0x000 0x5 0x0 +-#define MX6DL_PAD_SD3_DAT6__SD3_DATA6 0x32c 0x714 0x000 0x0 0x0 +-#define MX6DL_PAD_SD3_DAT6__UART1_RX_DATA 0x32c 0x714 0x8fc 0x1 0x2 +-#define MX6DL_PAD_SD3_DAT6__UART1_TX_DATA 0x32c 0x714 0x000 0x1 0x0 +-#define MX6DL_PAD_SD3_DAT6__GPIO6_IO18 0x32c 0x714 0x000 0x5 0x0 +-#define MX6DL_PAD_SD3_DAT7__SD3_DATA7 0x330 0x718 0x000 0x0 0x0 +-#define MX6DL_PAD_SD3_DAT7__UART1_TX_DATA 0x330 0x718 0x000 0x1 0x0 +-#define MX6DL_PAD_SD3_DAT7__UART1_RX_DATA 0x330 0x718 0x8fc 0x1 0x3 +-#define MX6DL_PAD_SD3_DAT7__GPIO6_IO17 0x330 0x718 0x000 0x5 0x0 +-#define MX6DL_PAD_SD3_RST__SD3_RESET 0x334 0x71c 0x000 0x0 0x0 +-#define MX6DL_PAD_SD3_RST__UART3_RTS_B 0x334 0x71c 0x908 0x1 0x5 +-#define MX6DL_PAD_SD3_RST__UART3_CTS_B 0x334 0x71c 0x000 0x1 0x0 +-#define MX6DL_PAD_SD3_RST__GPIO7_IO08 0x334 0x71c 0x000 0x5 0x0 +-#define MX6DL_PAD_SD4_CLK__SD4_CLK 0x338 0x720 0x938 0x0 0x1 +-#define MX6DL_PAD_SD4_CLK__NAND_WE_B 0x338 0x720 0x000 0x1 0x0 +-#define MX6DL_PAD_SD4_CLK__UART3_RX_DATA 0x338 0x720 0x90c 0x2 0x2 +-#define MX6DL_PAD_SD4_CLK__UART3_TX_DATA 0x338 0x720 0x000 0x2 0x0 +-#define MX6DL_PAD_SD4_CLK__GPIO7_IO10 0x338 0x720 0x000 0x5 0x0 +-#define MX6DL_PAD_SD4_CMD__SD4_CMD 0x33c 0x724 0x000 0x0 0x0 +-#define MX6DL_PAD_SD4_CMD__NAND_RE_B 0x33c 0x724 0x000 0x1 0x0 +-#define MX6DL_PAD_SD4_CMD__UART3_TX_DATA 0x33c 0x724 0x000 0x2 0x0 +-#define MX6DL_PAD_SD4_CMD__UART3_RX_DATA 0x33c 0x724 0x90c 0x2 0x3 +-#define MX6DL_PAD_SD4_CMD__GPIO7_IO09 0x33c 0x724 0x000 0x5 0x0 +-#define MX6DL_PAD_SD4_DAT0__SD4_DATA0 0x340 0x728 0x000 0x1 0x0 +-#define MX6DL_PAD_SD4_DAT0__NAND_DQS 0x340 0x728 0x000 0x2 0x0 +-#define MX6DL_PAD_SD4_DAT0__GPIO2_IO08 0x340 0x728 0x000 0x5 0x0 +-#define MX6DL_PAD_SD4_DAT1__SD4_DATA1 0x344 0x72c 0x000 0x1 0x0 +-#define MX6DL_PAD_SD4_DAT1__PWM3_OUT 0x344 0x72c 0x000 0x2 0x0 +-#define MX6DL_PAD_SD4_DAT1__GPIO2_IO09 0x344 0x72c 0x000 0x5 0x0 +-#define MX6DL_PAD_SD4_DAT2__SD4_DATA2 0x348 0x730 0x000 0x1 0x0 +-#define MX6DL_PAD_SD4_DAT2__PWM4_OUT 0x348 0x730 0x000 0x2 0x0 +-#define MX6DL_PAD_SD4_DAT2__GPIO2_IO10 0x348 0x730 0x000 0x5 0x0 +-#define MX6DL_PAD_SD4_DAT3__SD4_DATA3 0x34c 0x734 0x000 0x1 0x0 +-#define MX6DL_PAD_SD4_DAT3__GPIO2_IO11 0x34c 0x734 0x000 0x5 0x0 +-#define MX6DL_PAD_SD4_DAT4__SD4_DATA4 0x350 0x738 0x000 0x1 0x0 +-#define MX6DL_PAD_SD4_DAT4__UART2_RX_DATA 0x350 0x738 0x904 0x2 0x6 +-#define MX6DL_PAD_SD4_DAT4__UART2_TX_DATA 0x350 0x738 0x000 0x2 0x0 +-#define MX6DL_PAD_SD4_DAT4__GPIO2_IO12 0x350 0x738 0x000 0x5 0x0 +-#define MX6DL_PAD_SD4_DAT5__SD4_DATA5 0x354 0x73c 0x000 0x1 0x0 +-#define MX6DL_PAD_SD4_DAT5__UART2_RTS_B 0x354 0x73c 0x900 0x2 0x4 +-#define MX6DL_PAD_SD4_DAT5__UART2_CTS_B 0x354 0x73c 0x000 0x2 0x0 +-#define MX6DL_PAD_SD4_DAT5__GPIO2_IO13 0x354 0x73c 0x000 0x5 0x0 +-#define MX6DL_PAD_SD4_DAT6__SD4_DATA6 0x358 0x740 0x000 0x1 0x0 +-#define MX6DL_PAD_SD4_DAT6__UART2_CTS_B 0x358 0x740 0x000 0x2 0x0 +-#define MX6DL_PAD_SD4_DAT6__UART2_RTS_B 0x358 0x740 0x900 0x2 0x5 +-#define MX6DL_PAD_SD4_DAT6__GPIO2_IO14 0x358 0x740 0x000 0x5 0x0 +-#define MX6DL_PAD_SD4_DAT7__SD4_DATA7 0x35c 0x744 0x000 0x1 0x0 +-#define MX6DL_PAD_SD4_DAT7__UART2_TX_DATA 0x35c 0x744 0x000 0x2 0x0 +-#define MX6DL_PAD_SD4_DAT7__UART2_RX_DATA 0x35c 0x744 0x904 0x2 0x7 +-#define MX6DL_PAD_SD4_DAT7__GPIO2_IO15 0x35c 0x744 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT10__IPU1_CSI0_DATA10 0x04c 0x360 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT10__AUD3_RXC 0x04c 0x360 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT10__ECSPI2_MISO 0x04c 0x360 0x7f8 0x2 0x0 ++#define MX6QDL_PAD_CSI0_DAT10__UART1_TX_DATA 0x04c 0x360 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT10__UART1_RX_DATA 0x04c 0x360 0x8fc 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT10__GPIO5_IO28 0x04c 0x360 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT10__ARM_TRACE07 0x04c 0x360 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT11__IPU1_CSI0_DATA11 0x050 0x364 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT11__AUD3_RXFS 0x050 0x364 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT11__ECSPI2_SS0 0x050 0x364 0x800 0x2 0x0 ++#define MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA 0x050 0x364 0x8fc 0x3 0x1 ++#define MX6QDL_PAD_CSI0_DAT11__UART1_TX_DATA 0x050 0x364 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT11__GPIO5_IO29 0x050 0x364 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT11__ARM_TRACE08 0x050 0x364 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT12__IPU1_CSI0_DATA12 0x054 0x368 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT12__EIM_DATA08 0x054 0x368 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT12__UART4_TX_DATA 0x054 0x368 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT12__UART4_RX_DATA 0x054 0x368 0x914 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT12__GPIO5_IO30 0x054 0x368 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT12__ARM_TRACE09 0x054 0x368 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT13__IPU1_CSI0_DATA13 0x058 0x36c 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT13__EIM_DATA09 0x058 0x36c 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT13__UART4_RX_DATA 0x058 0x36c 0x914 0x3 0x1 ++#define MX6QDL_PAD_CSI0_DAT13__UART4_TX_DATA 0x058 0x36c 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT13__GPIO5_IO31 0x058 0x36c 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT13__ARM_TRACE10 0x058 0x36c 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT14__IPU1_CSI0_DATA14 0x05c 0x370 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT14__EIM_DATA10 0x05c 0x370 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT14__UART5_TX_DATA 0x05c 0x370 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT14__UART5_RX_DATA 0x05c 0x370 0x91c 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT14__GPIO6_IO00 0x05c 0x370 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT14__ARM_TRACE11 0x05c 0x370 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT15__IPU1_CSI0_DATA15 0x060 0x374 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT15__EIM_DATA11 0x060 0x374 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT15__UART5_RX_DATA 0x060 0x374 0x91c 0x3 0x1 ++#define MX6QDL_PAD_CSI0_DAT15__UART5_TX_DATA 0x060 0x374 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT15__GPIO6_IO01 0x060 0x374 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT15__ARM_TRACE12 0x060 0x374 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT16__IPU1_CSI0_DATA16 0x064 0x378 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT16__EIM_DATA12 0x064 0x378 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT16__UART4_RTS_B 0x064 0x378 0x910 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT16__UART4_CTS_B 0x064 0x378 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT16__GPIO6_IO02 0x064 0x378 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT16__ARM_TRACE13 0x064 0x378 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT17__IPU1_CSI0_DATA17 0x068 0x37c 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT17__EIM_DATA13 0x068 0x37c 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT17__UART4_CTS_B 0x068 0x37c 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT17__UART4_RTS_B 0x068 0x37c 0x910 0x3 0x1 ++#define MX6QDL_PAD_CSI0_DAT17__GPIO6_IO03 0x068 0x37c 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT17__ARM_TRACE14 0x068 0x37c 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT18__IPU1_CSI0_DATA18 0x06c 0x380 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT18__EIM_DATA14 0x06c 0x380 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT18__UART5_RTS_B 0x06c 0x380 0x918 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT18__UART5_CTS_B 0x06c 0x380 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT18__GPIO6_IO04 0x06c 0x380 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT18__ARM_TRACE15 0x06c 0x380 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT19__IPU1_CSI0_DATA19 0x070 0x384 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT19__EIM_DATA15 0x070 0x384 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT19__UART5_CTS_B 0x070 0x384 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT19__UART5_RTS_B 0x070 0x384 0x918 0x3 0x1 ++#define MX6QDL_PAD_CSI0_DAT19__GPIO6_IO05 0x070 0x384 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT4__IPU1_CSI0_DATA04 0x074 0x388 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT4__EIM_DATA02 0x074 0x388 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT4__ECSPI1_SCLK 0x074 0x388 0x7d8 0x2 0x0 ++#define MX6QDL_PAD_CSI0_DAT4__KEY_COL5 0x074 0x388 0x8c0 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT4__AUD3_TXC 0x074 0x388 0x000 0x4 0x0 ++#define MX6QDL_PAD_CSI0_DAT4__GPIO5_IO22 0x074 0x388 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT4__ARM_TRACE01 0x074 0x388 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT5__IPU1_CSI0_DATA05 0x078 0x38c 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT5__EIM_DATA03 0x078 0x38c 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT5__ECSPI1_MOSI 0x078 0x38c 0x7e0 0x2 0x0 ++#define MX6QDL_PAD_CSI0_DAT5__KEY_ROW5 0x078 0x38c 0x8cc 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT5__AUD3_TXD 0x078 0x38c 0x000 0x4 0x0 ++#define MX6QDL_PAD_CSI0_DAT5__GPIO5_IO23 0x078 0x38c 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT5__ARM_TRACE02 0x078 0x38c 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT6__IPU1_CSI0_DATA06 0x07c 0x390 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT6__EIM_DATA04 0x07c 0x390 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT6__ECSPI1_MISO 0x07c 0x390 0x7dc 0x2 0x0 ++#define MX6QDL_PAD_CSI0_DAT6__KEY_COL6 0x07c 0x390 0x8c4 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT6__AUD3_TXFS 0x07c 0x390 0x000 0x4 0x0 ++#define MX6QDL_PAD_CSI0_DAT6__GPIO5_IO24 0x07c 0x390 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT6__ARM_TRACE03 0x07c 0x390 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT7__IPU1_CSI0_DATA07 0x080 0x394 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT7__EIM_DATA05 0x080 0x394 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT7__ECSPI1_SS0 0x080 0x394 0x7e4 0x2 0x0 ++#define MX6QDL_PAD_CSI0_DAT7__KEY_ROW6 0x080 0x394 0x8d0 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT7__AUD3_RXD 0x080 0x394 0x000 0x4 0x0 ++#define MX6QDL_PAD_CSI0_DAT7__GPIO5_IO25 0x080 0x394 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT7__ARM_TRACE04 0x080 0x394 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT8__IPU1_CSI0_DATA08 0x084 0x398 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT8__EIM_DATA06 0x084 0x398 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT8__ECSPI2_SCLK 0x084 0x398 0x7f4 0x2 0x0 ++#define MX6QDL_PAD_CSI0_DAT8__KEY_COL7 0x084 0x398 0x8c8 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT8__I2C1_SDA 0x084 0x398 0x86c 0x4 0x0 ++#define MX6QDL_PAD_CSI0_DAT8__GPIO5_IO26 0x084 0x398 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT8__ARM_TRACE05 0x084 0x398 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT9__IPU1_CSI0_DATA09 0x088 0x39c 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT9__EIM_DATA07 0x088 0x39c 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT9__ECSPI2_MOSI 0x088 0x39c 0x7fc 0x2 0x0 ++#define MX6QDL_PAD_CSI0_DAT9__KEY_ROW7 0x088 0x39c 0x8d4 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT9__I2C1_SCL 0x088 0x39c 0x868 0x4 0x0 ++#define MX6QDL_PAD_CSI0_DAT9__GPIO5_IO27 0x088 0x39c 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT9__ARM_TRACE06 0x088 0x39c 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DATA_EN__IPU1_CSI0_DATA_EN 0x08c 0x3a0 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DATA_EN__EIM_DATA00 0x08c 0x3a0 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DATA_EN__GPIO5_IO20 0x08c 0x3a0 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DATA_EN__ARM_TRACE_CLK 0x08c 0x3a0 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_MCLK__IPU1_CSI0_HSYNC 0x090 0x3a4 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_MCLK__CCM_CLKO1 0x090 0x3a4 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_MCLK__GPIO5_IO19 0x090 0x3a4 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_MCLK__ARM_TRACE_CTL 0x090 0x3a4 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_PIXCLK__IPU1_CSI0_PIXCLK 0x094 0x3a8 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_PIXCLK__GPIO5_IO18 0x094 0x3a8 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_PIXCLK__ARM_EVENTO 0x094 0x3a8 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_VSYNC__IPU1_CSI0_VSYNC 0x098 0x3ac 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_VSYNC__EIM_DATA01 0x098 0x3ac 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_VSYNC__GPIO5_IO21 0x098 0x3ac 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_VSYNC__ARM_TRACE00 0x098 0x3ac 0x000 0x7 0x0 ++#define MX6QDL_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK 0x09c 0x3b0 0x000 0x0 0x0 ++#define MX6QDL_PAD_DI0_DISP_CLK__LCD_CLK 0x09c 0x3b0 0x000 0x1 0x0 ++#define MX6QDL_PAD_DI0_DISP_CLK__GPIO4_IO16 0x09c 0x3b0 0x000 0x5 0x0 ++#define MX6QDL_PAD_DI0_DISP_CLK__LCD_WR_RWN 0x09c 0x3b0 0x000 0x8 0x0 ++#define MX6QDL_PAD_DI0_PIN15__IPU1_DI0_PIN15 0x0a0 0x3b4 0x000 0x0 0x0 ++#define MX6QDL_PAD_DI0_PIN15__LCD_ENABLE 0x0a0 0x3b4 0x000 0x1 0x0 ++#define MX6QDL_PAD_DI0_PIN15__AUD6_TXC 0x0a0 0x3b4 0x000 0x2 0x0 ++#define MX6QDL_PAD_DI0_PIN15__GPIO4_IO17 0x0a0 0x3b4 0x000 0x5 0x0 ++#define MX6QDL_PAD_DI0_PIN15__LCD_RD_E 0x0a0 0x3b4 0x000 0x8 0x0 ++#define MX6QDL_PAD_DI0_PIN2__IPU1_DI0_PIN02 0x0a4 0x3b8 0x000 0x0 0x0 ++#define MX6QDL_PAD_DI0_PIN2__LCD_HSYNC 0x0a4 0x3b8 0x8d8 0x1 0x0 ++#define MX6QDL_PAD_DI0_PIN2__AUD6_TXD 0x0a4 0x3b8 0x000 0x2 0x0 ++#define MX6QDL_PAD_DI0_PIN2__GPIO4_IO18 0x0a4 0x3b8 0x000 0x5 0x0 ++#define MX6QDL_PAD_DI0_PIN2__LCD_RS 0x0a4 0x3b8 0x000 0x8 0x0 ++#define MX6QDL_PAD_DI0_PIN3__IPU1_DI0_PIN03 0x0a8 0x3bc 0x000 0x0 0x0 ++#define MX6QDL_PAD_DI0_PIN3__LCD_VSYNC 0x0a8 0x3bc 0x000 0x1 0x0 ++#define MX6QDL_PAD_DI0_PIN3__AUD6_TXFS 0x0a8 0x3bc 0x000 0x2 0x0 ++#define MX6QDL_PAD_DI0_PIN3__GPIO4_IO19 0x0a8 0x3bc 0x000 0x5 0x0 ++#define MX6QDL_PAD_DI0_PIN3__LCD_CS 0x0a8 0x3bc 0x000 0x8 0x0 ++#define MX6QDL_PAD_DI0_PIN4__IPU1_DI0_PIN04 0x0ac 0x3c0 0x000 0x0 0x0 ++#define MX6QDL_PAD_DI0_PIN4__LCD_BUSY 0x0ac 0x3c0 0x8d8 0x1 0x1 ++#define MX6QDL_PAD_DI0_PIN4__AUD6_RXD 0x0ac 0x3c0 0x000 0x2 0x0 ++#define MX6QDL_PAD_DI0_PIN4__SD1_WP 0x0ac 0x3c0 0x92c 0x3 0x0 ++#define MX6QDL_PAD_DI0_PIN4__GPIO4_IO20 0x0ac 0x3c0 0x000 0x5 0x0 ++#define MX6QDL_PAD_DI0_PIN4__LCD_RESET 0x0ac 0x3c0 0x000 0x8 0x0 ++#define MX6QDL_PAD_DISP0_DAT0__IPU1_DISP0_DATA00 0x0b0 0x3c4 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT0__LCD_DATA00 0x0b0 0x3c4 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT0__ECSPI3_SCLK 0x0b0 0x3c4 0x000 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT0__GPIO4_IO21 0x0b0 0x3c4 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT1__IPU1_DISP0_DATA01 0x0b4 0x3c8 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT1__LCD_DATA01 0x0b4 0x3c8 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT1__ECSPI3_MOSI 0x0b4 0x3c8 0x000 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT1__GPIO4_IO22 0x0b4 0x3c8 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT10__IPU1_DISP0_DATA10 0x0b8 0x3cc 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT10__LCD_DATA10 0x0b8 0x3cc 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT10__GPIO4_IO31 0x0b8 0x3cc 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT11__IPU1_DISP0_DATA11 0x0bc 0x3d0 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT11__LCD_DATA11 0x0bc 0x3d0 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT11__GPIO5_IO05 0x0bc 0x3d0 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT12__IPU1_DISP0_DATA12 0x0c0 0x3d4 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT12__LCD_DATA12 0x0c0 0x3d4 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT12__GPIO5_IO06 0x0c0 0x3d4 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT13__IPU1_DISP0_DATA13 0x0c4 0x3d8 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT13__LCD_DATA13 0x0c4 0x3d8 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT13__AUD5_RXFS 0x0c4 0x3d8 0x7bc 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT13__GPIO5_IO07 0x0c4 0x3d8 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT14__IPU1_DISP0_DATA14 0x0c8 0x3dc 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT14__LCD_DATA14 0x0c8 0x3dc 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT14__AUD5_RXC 0x0c8 0x3dc 0x7b8 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT14__GPIO5_IO08 0x0c8 0x3dc 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT15__IPU1_DISP0_DATA15 0x0cc 0x3e0 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT15__LCD_DATA15 0x0cc 0x3e0 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT15__ECSPI1_SS1 0x0cc 0x3e0 0x7e8 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT15__ECSPI2_SS1 0x0cc 0x3e0 0x804 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT15__GPIO5_IO09 0x0cc 0x3e0 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT16__IPU1_DISP0_DATA16 0x0d0 0x3e4 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT16__LCD_DATA16 0x0d0 0x3e4 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT16__ECSPI2_MOSI 0x0d0 0x3e4 0x7fc 0x2 0x1 ++#define MX6QDL_PAD_DISP0_DAT16__AUD5_TXC 0x0d0 0x3e4 0x7c0 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT16__SDMA_EXT_EVENT0 0x0d0 0x3e4 0x8e8 0x4 0x0 ++#define MX6QDL_PAD_DISP0_DAT16__GPIO5_IO10 0x0d0 0x3e4 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT17__IPU1_DISP0_DATA17 0x0d4 0x3e8 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT17__LCD_DATA17 0x0d4 0x3e8 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT17__ECSPI2_MISO 0x0d4 0x3e8 0x7f8 0x2 0x1 ++#define MX6QDL_PAD_DISP0_DAT17__AUD5_TXD 0x0d4 0x3e8 0x7b4 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT17__SDMA_EXT_EVENT1 0x0d4 0x3e8 0x8ec 0x4 0x0 ++#define MX6QDL_PAD_DISP0_DAT17__GPIO5_IO11 0x0d4 0x3e8 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT18__IPU1_DISP0_DATA18 0x0d8 0x3ec 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT18__LCD_DATA18 0x0d8 0x3ec 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT18__ECSPI2_SS0 0x0d8 0x3ec 0x800 0x2 0x1 ++#define MX6QDL_PAD_DISP0_DAT18__AUD5_TXFS 0x0d8 0x3ec 0x7c4 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT18__AUD4_RXFS 0x0d8 0x3ec 0x7a4 0x4 0x0 ++#define MX6QDL_PAD_DISP0_DAT18__GPIO5_IO12 0x0d8 0x3ec 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT18__EIM_CS2_B 0x0d8 0x3ec 0x000 0x7 0x0 ++#define MX6QDL_PAD_DISP0_DAT19__IPU1_DISP0_DATA19 0x0dc 0x3f0 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT19__LCD_DATA19 0x0dc 0x3f0 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT19__ECSPI2_SCLK 0x0dc 0x3f0 0x7f4 0x2 0x1 ++#define MX6QDL_PAD_DISP0_DAT19__AUD5_RXD 0x0dc 0x3f0 0x7b0 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT19__AUD4_RXC 0x0dc 0x3f0 0x7a0 0x4 0x0 ++#define MX6QDL_PAD_DISP0_DAT19__GPIO5_IO13 0x0dc 0x3f0 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT19__EIM_CS3_B 0x0dc 0x3f0 0x000 0x7 0x0 ++#define MX6QDL_PAD_DISP0_DAT2__IPU1_DISP0_DATA02 0x0e0 0x3f4 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT2__LCD_DATA02 0x0e0 0x3f4 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT2__ECSPI3_MISO 0x0e0 0x3f4 0x000 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT2__GPIO4_IO23 0x0e0 0x3f4 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT20__IPU1_DISP0_DATA20 0x0e4 0x3f8 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT20__LCD_DATA20 0x0e4 0x3f8 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT20__ECSPI1_SCLK 0x0e4 0x3f8 0x7d8 0x2 0x1 ++#define MX6QDL_PAD_DISP0_DAT20__AUD4_TXC 0x0e4 0x3f8 0x7a8 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT20__GPIO5_IO14 0x0e4 0x3f8 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT21__IPU1_DISP0_DATA21 0x0e8 0x3fc 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT21__LCD_DATA21 0x0e8 0x3fc 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT21__ECSPI1_MOSI 0x0e8 0x3fc 0x7e0 0x2 0x1 ++#define MX6QDL_PAD_DISP0_DAT21__AUD4_TXD 0x0e8 0x3fc 0x79c 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT21__GPIO5_IO15 0x0e8 0x3fc 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT22__IPU1_DISP0_DATA22 0x0ec 0x400 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT22__LCD_DATA22 0x0ec 0x400 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT22__ECSPI1_MISO 0x0ec 0x400 0x7dc 0x2 0x1 ++#define MX6QDL_PAD_DISP0_DAT22__AUD4_TXFS 0x0ec 0x400 0x7ac 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT22__GPIO5_IO16 0x0ec 0x400 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT23__IPU1_DISP0_DATA23 0x0f0 0x404 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT23__LCD_DATA23 0x0f0 0x404 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT23__ECSPI1_SS0 0x0f0 0x404 0x7e4 0x2 0x1 ++#define MX6QDL_PAD_DISP0_DAT23__AUD4_RXD 0x0f0 0x404 0x798 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT23__GPIO5_IO17 0x0f0 0x404 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT3__IPU1_DISP0_DATA03 0x0f4 0x408 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT3__LCD_DATA03 0x0f4 0x408 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT3__ECSPI3_SS0 0x0f4 0x408 0x000 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT3__GPIO4_IO24 0x0f4 0x408 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT4__IPU1_DISP0_DATA04 0x0f8 0x40c 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT4__LCD_DATA04 0x0f8 0x40c 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT4__ECSPI3_SS1 0x0f8 0x40c 0x000 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT4__GPIO4_IO25 0x0f8 0x40c 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT5__IPU1_DISP0_DATA05 0x0fc 0x410 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT5__LCD_DATA05 0x0fc 0x410 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT5__ECSPI3_SS2 0x0fc 0x410 0x000 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT5__AUD6_RXFS 0x0fc 0x410 0x000 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT5__GPIO4_IO26 0x0fc 0x410 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT6__IPU1_DISP0_DATA06 0x100 0x414 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT6__LCD_DATA06 0x100 0x414 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT6__ECSPI3_SS3 0x100 0x414 0x000 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT6__AUD6_RXC 0x100 0x414 0x000 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT6__GPIO4_IO27 0x100 0x414 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT7__IPU1_DISP0_DATA07 0x104 0x418 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT7__LCD_DATA07 0x104 0x418 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT7__ECSPI3_RDY 0x104 0x418 0x000 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT7__GPIO4_IO28 0x104 0x418 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT8__IPU1_DISP0_DATA08 0x108 0x41c 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT8__LCD_DATA08 0x108 0x41c 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT8__PWM1_OUT 0x108 0x41c 0x000 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT8__WDOG1_B 0x108 0x41c 0x000 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT8__GPIO4_IO29 0x108 0x41c 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT9__IPU1_DISP0_DATA09 0x10c 0x420 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT9__LCD_DATA09 0x10c 0x420 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT9__PWM2_OUT 0x10c 0x420 0x000 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT9__WDOG2_B 0x10c 0x420 0x000 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT9__GPIO4_IO30 0x10c 0x420 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A16__EIM_ADDR16 0x110 0x4e0 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_A16__IPU1_DI1_DISP_CLK 0x110 0x4e0 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_A16__IPU1_CSI1_PIXCLK 0x110 0x4e0 0x8b8 0x2 0x0 ++#define MX6QDL_PAD_EIM_A16__GPIO2_IO22 0x110 0x4e0 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A16__SRC_BOOT_CFG16 0x110 0x4e0 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_A16__EPDC_DATA00 0x110 0x4e0 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_A17__EIM_ADDR17 0x114 0x4e4 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_A17__IPU1_DISP1_DATA12 0x114 0x4e4 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_A17__IPU1_CSI1_DATA12 0x114 0x4e4 0x890 0x2 0x0 ++#define MX6QDL_PAD_EIM_A17__GPIO2_IO21 0x114 0x4e4 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A17__SRC_BOOT_CFG17 0x114 0x4e4 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_A17__EPDC_PWR_STAT 0x114 0x4e4 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_A18__EIM_ADDR18 0x118 0x4e8 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_A18__IPU1_DISP1_DATA13 0x118 0x4e8 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_A18__IPU1_CSI1_DATA13 0x118 0x4e8 0x894 0x2 0x0 ++#define MX6QDL_PAD_EIM_A18__GPIO2_IO20 0x118 0x4e8 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A18__SRC_BOOT_CFG18 0x118 0x4e8 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_A18__EPDC_PWR_CTRL0 0x118 0x4e8 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_A19__EIM_ADDR19 0x11c 0x4ec 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_A19__IPU1_DISP1_DATA14 0x11c 0x4ec 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_A19__IPU1_CSI1_DATA14 0x11c 0x4ec 0x898 0x2 0x0 ++#define MX6QDL_PAD_EIM_A19__GPIO2_IO19 0x11c 0x4ec 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A19__SRC_BOOT_CFG19 0x11c 0x4ec 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_A19__EPDC_PWR_CTRL1 0x11c 0x4ec 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_A20__EIM_ADDR20 0x120 0x4f0 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_A20__IPU1_DISP1_DATA15 0x120 0x4f0 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_A20__IPU1_CSI1_DATA15 0x120 0x4f0 0x89c 0x2 0x0 ++#define MX6QDL_PAD_EIM_A20__GPIO2_IO18 0x120 0x4f0 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A20__SRC_BOOT_CFG20 0x120 0x4f0 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_A20__EPDC_PWR_CTRL2 0x120 0x4f0 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_A21__EIM_ADDR21 0x124 0x4f4 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_A21__IPU1_DISP1_DATA16 0x124 0x4f4 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_A21__IPU1_CSI1_DATA16 0x124 0x4f4 0x8a0 0x2 0x0 ++#define MX6QDL_PAD_EIM_A21__GPIO2_IO17 0x124 0x4f4 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A21__SRC_BOOT_CFG21 0x124 0x4f4 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_A21__EPDC_GDCLK 0x124 0x4f4 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_A22__EIM_ADDR22 0x128 0x4f8 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_A22__IPU1_DISP1_DATA17 0x128 0x4f8 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_A22__IPU1_CSI1_DATA17 0x128 0x4f8 0x8a4 0x2 0x0 ++#define MX6QDL_PAD_EIM_A22__GPIO2_IO16 0x128 0x4f8 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A22__SRC_BOOT_CFG22 0x128 0x4f8 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_A22__EPDC_GDSP 0x128 0x4f8 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_A23__EIM_ADDR23 0x12c 0x4fc 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_A23__IPU1_DISP1_DATA18 0x12c 0x4fc 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_A23__IPU1_CSI1_DATA18 0x12c 0x4fc 0x8a8 0x2 0x0 ++#define MX6QDL_PAD_EIM_A23__IPU1_SISG3 0x12c 0x4fc 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_A23__GPIO6_IO06 0x12c 0x4fc 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A23__SRC_BOOT_CFG23 0x12c 0x4fc 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_A23__EPDC_GDOE 0x12c 0x4fc 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_A24__EIM_ADDR24 0x130 0x500 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_A24__IPU1_DISP1_DATA19 0x130 0x500 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_A24__IPU1_CSI1_DATA19 0x130 0x500 0x8ac 0x2 0x0 ++#define MX6QDL_PAD_EIM_A24__IPU1_SISG2 0x130 0x500 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_A24__GPIO5_IO04 0x130 0x500 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A24__SRC_BOOT_CFG24 0x130 0x500 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_A24__EPDC_GDRL 0x130 0x500 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_A25__EIM_ADDR25 0x134 0x504 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_A25__ECSPI4_SS1 0x134 0x504 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_A25__ECSPI2_RDY 0x134 0x504 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_A25__IPU1_DI1_PIN12 0x134 0x504 0x000 0x3 0x0 ++#define MX6QDL_PAD_EIM_A25__IPU1_DI0_D1_CS 0x134 0x504 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_A25__GPIO5_IO02 0x134 0x504 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A25__HDMI_TX_CEC_LINE 0x134 0x504 0x85c 0x6 0x0 ++#define MX6QDL_PAD_EIM_A25__EPDC_DATA15 0x134 0x504 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_A25__EIM_ACLK_FREERUN 0x134 0x504 0x000 0x9 0x0 ++#define MX6QDL_PAD_EIM_BCLK__EIM_BCLK 0x138 0x508 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_BCLK__IPU1_DI1_PIN16 0x138 0x508 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_BCLK__GPIO6_IO31 0x138 0x508 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_BCLK__EPDC_SDCE9 0x138 0x508 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_CS0__EIM_CS0_B 0x13c 0x50c 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_CS0__IPU1_DI1_PIN05 0x13c 0x50c 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_CS0__ECSPI2_SCLK 0x13c 0x50c 0x7f4 0x2 0x2 ++#define MX6QDL_PAD_EIM_CS0__GPIO2_IO23 0x13c 0x50c 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_CS0__EPDC_DATA06 0x13c 0x50c 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_CS1__EIM_CS1_B 0x140 0x510 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_CS1__IPU1_DI1_PIN06 0x140 0x510 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_CS1__ECSPI2_MOSI 0x140 0x510 0x7fc 0x2 0x2 ++#define MX6QDL_PAD_EIM_CS1__GPIO2_IO24 0x140 0x510 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_CS1__EPDC_DATA08 0x140 0x510 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_D16__EIM_DATA16 0x144 0x514 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D16__ECSPI1_SCLK 0x144 0x514 0x7d8 0x1 0x2 ++#define MX6QDL_PAD_EIM_D16__IPU1_DI0_PIN05 0x144 0x514 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D16__IPU1_CSI1_DATA18 0x144 0x514 0x8a8 0x3 0x1 ++#define MX6QDL_PAD_EIM_D16__HDMI_TX_DDC_SDA 0x144 0x514 0x864 0x4 0x0 ++#define MX6QDL_PAD_EIM_D16__GPIO3_IO16 0x144 0x514 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D16__I2C2_SDA 0x144 0x514 0x874 0x6 0x0 ++#define MX6QDL_PAD_EIM_D16__EPDC_DATA10 0x144 0x514 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_D17__EIM_DATA17 0x148 0x518 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D17__ECSPI1_MISO 0x148 0x518 0x7dc 0x1 0x2 ++#define MX6QDL_PAD_EIM_D17__IPU1_DI0_PIN06 0x148 0x518 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D17__IPU1_CSI1_PIXCLK 0x148 0x518 0x8b8 0x3 0x1 ++#define MX6QDL_PAD_EIM_D17__DCIC1_OUT 0x148 0x518 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D17__GPIO3_IO17 0x148 0x518 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D17__I2C3_SCL 0x148 0x518 0x878 0x6 0x0 ++#define MX6QDL_PAD_EIM_D17__EPDC_VCOM0 0x148 0x518 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_D18__EIM_DATA18 0x14c 0x51c 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D18__ECSPI1_MOSI 0x14c 0x51c 0x7e0 0x1 0x2 ++#define MX6QDL_PAD_EIM_D18__IPU1_DI0_PIN07 0x14c 0x51c 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D18__IPU1_CSI1_DATA17 0x14c 0x51c 0x8a4 0x3 0x1 ++#define MX6QDL_PAD_EIM_D18__IPU1_DI1_D0_CS 0x14c 0x51c 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D18__GPIO3_IO18 0x14c 0x51c 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D18__I2C3_SDA 0x14c 0x51c 0x87c 0x6 0x0 ++#define MX6QDL_PAD_EIM_D18__EPDC_VCOM1 0x14c 0x51c 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_D19__EIM_DATA19 0x150 0x520 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D19__ECSPI1_SS1 0x150 0x520 0x7e8 0x1 0x1 ++#define MX6QDL_PAD_EIM_D19__IPU1_DI0_PIN08 0x150 0x520 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D19__IPU1_CSI1_DATA16 0x150 0x520 0x8a0 0x3 0x1 ++#define MX6QDL_PAD_EIM_D19__UART1_CTS_B 0x150 0x520 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D19__UART1_RTS_B 0x150 0x520 0x8f8 0x4 0x0 ++#define MX6QDL_PAD_EIM_D19__GPIO3_IO19 0x150 0x520 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D19__EPIT1_OUT 0x150 0x520 0x000 0x6 0x0 ++#define MX6QDL_PAD_EIM_D19__EPDC_DATA12 0x150 0x520 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_D20__EIM_DATA20 0x154 0x524 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D20__ECSPI4_SS0 0x154 0x524 0x808 0x1 0x0 ++#define MX6QDL_PAD_EIM_D20__IPU1_DI0_PIN16 0x154 0x524 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D20__IPU1_CSI1_DATA15 0x154 0x524 0x89c 0x3 0x1 ++#define MX6QDL_PAD_EIM_D20__UART1_RTS_B 0x154 0x524 0x8f8 0x4 0x1 ++#define MX6QDL_PAD_EIM_D20__UART1_CTS_B 0x154 0x524 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D20__GPIO3_IO20 0x154 0x524 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D20__EPIT2_OUT 0x154 0x524 0x000 0x6 0x0 ++#define MX6QDL_PAD_EIM_D21__EIM_DATA21 0x158 0x528 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D21__ECSPI4_SCLK 0x158 0x528 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_D21__IPU1_DI0_PIN17 0x158 0x528 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D21__IPU1_CSI1_DATA11 0x158 0x528 0x88c 0x3 0x0 ++#define MX6QDL_PAD_EIM_D21__USB_OTG_OC 0x158 0x528 0x920 0x4 0x0 ++#define MX6QDL_PAD_EIM_D21__GPIO3_IO21 0x158 0x528 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D21__I2C1_SCL 0x158 0x528 0x868 0x6 0x1 ++#define MX6QDL_PAD_EIM_D21__SPDIF_IN 0x158 0x528 0x8f0 0x7 0x0 ++#define MX6QDL_PAD_EIM_D22__EIM_DATA22 0x15c 0x52c 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D22__ECSPI4_MISO 0x15c 0x52c 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_D22__IPU1_DI0_PIN01 0x15c 0x52c 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D22__IPU1_CSI1_DATA10 0x15c 0x52c 0x888 0x3 0x0 ++#define MX6QDL_PAD_EIM_D22__USB_OTG_PWR 0x15c 0x52c 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x15c 0x52c 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D22__SPDIF_OUT 0x15c 0x52c 0x000 0x6 0x0 ++#define MX6QDL_PAD_EIM_D22__EPDC_SDCE6 0x15c 0x52c 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_D23__EIM_DATA23 0x160 0x530 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D23__IPU1_DI0_D0_CS 0x160 0x530 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_D23__UART3_CTS_B 0x160 0x530 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D23__UART3_RTS_B 0x160 0x530 0x908 0x2 0x0 ++#define MX6QDL_PAD_EIM_D23__UART1_DCD_B 0x160 0x530 0x000 0x3 0x0 ++#define MX6QDL_PAD_EIM_D23__IPU1_CSI1_DATA_EN 0x160 0x530 0x8b0 0x4 0x0 ++#define MX6QDL_PAD_EIM_D23__GPIO3_IO23 0x160 0x530 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D23__IPU1_DI1_PIN02 0x160 0x530 0x000 0x6 0x0 ++#define MX6QDL_PAD_EIM_D23__IPU1_DI1_PIN14 0x160 0x530 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_D23__EPDC_DATA11 0x160 0x530 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_D24__EIM_DATA24 0x164 0x534 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D24__ECSPI4_SS2 0x164 0x534 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_D24__UART3_TX_DATA 0x164 0x534 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D24__UART3_RX_DATA 0x164 0x534 0x90c 0x2 0x0 ++#define MX6QDL_PAD_EIM_D24__ECSPI1_SS2 0x164 0x534 0x7ec 0x3 0x0 ++#define MX6QDL_PAD_EIM_D24__ECSPI2_SS2 0x164 0x534 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D24__GPIO3_IO24 0x164 0x534 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D24__AUD5_RXFS 0x164 0x534 0x7bc 0x6 0x1 ++#define MX6QDL_PAD_EIM_D24__UART1_DTR_B 0x164 0x534 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_D24__EPDC_SDCE7 0x164 0x534 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_D25__EIM_DATA25 0x168 0x538 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D25__ECSPI4_SS3 0x168 0x538 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_D25__UART3_RX_DATA 0x168 0x538 0x90c 0x2 0x1 ++#define MX6QDL_PAD_EIM_D25__UART3_TX_DATA 0x168 0x538 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D25__ECSPI1_SS3 0x168 0x538 0x7f0 0x3 0x0 ++#define MX6QDL_PAD_EIM_D25__ECSPI2_SS3 0x168 0x538 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D25__GPIO3_IO25 0x168 0x538 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D25__AUD5_RXC 0x168 0x538 0x7b8 0x6 0x1 ++#define MX6QDL_PAD_EIM_D25__UART1_DSR_B 0x168 0x538 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_D25__EPDC_SDCE8 0x168 0x538 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_D26__EIM_DATA26 0x16c 0x53c 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D26__IPU1_DI1_PIN11 0x16c 0x53c 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_D26__IPU1_CSI0_DATA01 0x16c 0x53c 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D26__IPU1_CSI1_DATA14 0x16c 0x53c 0x898 0x3 0x1 ++#define MX6QDL_PAD_EIM_D26__UART2_TX_DATA 0x16c 0x53c 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D26__UART2_RX_DATA 0x16c 0x53c 0x904 0x4 0x0 ++#define MX6QDL_PAD_EIM_D26__GPIO3_IO26 0x16c 0x53c 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D26__IPU1_SISG2 0x16c 0x53c 0x000 0x6 0x0 ++#define MX6QDL_PAD_EIM_D26__IPU1_DISP1_DATA22 0x16c 0x53c 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_D26__EPDC_SDOED 0x16c 0x53c 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_D27__EIM_DATA27 0x170 0x540 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D27__IPU1_DI1_PIN13 0x170 0x540 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_D27__IPU1_CSI0_DATA00 0x170 0x540 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D27__IPU1_CSI1_DATA13 0x170 0x540 0x894 0x3 0x1 ++#define MX6QDL_PAD_EIM_D27__UART2_RX_DATA 0x170 0x540 0x904 0x4 0x1 ++#define MX6QDL_PAD_EIM_D27__UART2_TX_DATA 0x170 0x540 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D27__GPIO3_IO27 0x170 0x540 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D27__IPU1_SISG3 0x170 0x540 0x000 0x6 0x0 ++#define MX6QDL_PAD_EIM_D27__IPU1_DISP1_DATA23 0x170 0x540 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_D27__EPDC_SDOE 0x170 0x540 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_D28__EIM_DATA28 0x174 0x544 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D28__I2C1_SDA 0x174 0x544 0x86c 0x1 0x1 ++#define MX6QDL_PAD_EIM_D28__ECSPI4_MOSI 0x174 0x544 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D28__IPU1_CSI1_DATA12 0x174 0x544 0x890 0x3 0x1 ++#define MX6QDL_PAD_EIM_D28__UART2_CTS_B 0x174 0x544 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D28__UART2_RTS_B 0x174 0x544 0x900 0x4 0x0 ++#define MX6QDL_PAD_EIM_D28__UART2_DTE_CTS_B 0x174 0x544 0x900 0x4 0x0 ++#define MX6QDL_PAD_EIM_D28__UART2_DTE_RTS_B 0x174 0x544 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D28__GPIO3_IO28 0x174 0x544 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D28__IPU1_EXT_TRIG 0x174 0x544 0x000 0x6 0x0 ++#define MX6QDL_PAD_EIM_D28__IPU1_DI0_PIN13 0x174 0x544 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_D28__EPDC_PWR_CTRL3 0x174 0x544 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_D29__EIM_DATA29 0x178 0x548 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D29__IPU1_DI1_PIN15 0x178 0x548 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_D29__ECSPI4_SS0 0x178 0x548 0x808 0x2 0x1 ++#define MX6QDL_PAD_EIM_D29__UART2_RTS_B 0x178 0x548 0x900 0x4 0x1 ++#define MX6QDL_PAD_EIM_D29__UART2_CTS_B 0x178 0x548 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D29__UART2_DTE_RTS_B 0x178 0x548 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D29__UART2_DTE_CTS_B 0x178 0x548 0x900 0x4 0x1 ++#define MX6QDL_PAD_EIM_D29__GPIO3_IO29 0x178 0x548 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D29__IPU1_CSI1_VSYNC 0x178 0x548 0x8bc 0x6 0x0 ++#define MX6QDL_PAD_EIM_D29__IPU1_DI0_PIN14 0x178 0x548 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_D29__EPDC_PWR_WAKE 0x178 0x548 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_D30__EIM_DATA30 0x17c 0x54c 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D30__IPU1_DISP1_DATA21 0x17c 0x54c 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_D30__IPU1_DI0_PIN11 0x17c 0x54c 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D30__IPU1_CSI0_DATA03 0x17c 0x54c 0x000 0x3 0x0 ++#define MX6QDL_PAD_EIM_D30__UART3_CTS_B 0x17c 0x54c 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D30__UART3_RTS_B 0x17c 0x54c 0x908 0x4 0x1 ++#define MX6QDL_PAD_EIM_D30__GPIO3_IO30 0x17c 0x54c 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D30__USB_H1_OC 0x17c 0x54c 0x924 0x6 0x0 ++#define MX6QDL_PAD_EIM_D30__EPDC_SDOEZ 0x17c 0x54c 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_D31__EIM_DATA31 0x180 0x550 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D31__IPU1_DISP1_DATA20 0x180 0x550 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_D31__IPU1_DI0_PIN12 0x180 0x550 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D31__IPU1_CSI0_DATA02 0x180 0x550 0x000 0x3 0x0 ++#define MX6QDL_PAD_EIM_D31__UART3_RTS_B 0x180 0x550 0x908 0x4 0x2 ++#define MX6QDL_PAD_EIM_D31__UART3_CTS_B 0x180 0x550 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D31__GPIO3_IO31 0x180 0x550 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D31__USB_H1_PWR 0x180 0x550 0x000 0x6 0x0 ++#define MX6QDL_PAD_EIM_D31__EPDC_SDCLK_P 0x180 0x550 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_D31__EIM_ACLK_FREERUN 0x180 0x550 0x000 0x9 0x0 ++#define MX6QDL_PAD_EIM_DA0__EIM_AD00 0x184 0x554 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA0__IPU1_DISP1_DATA09 0x184 0x554 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA0__IPU1_CSI1_DATA09 0x184 0x554 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA0__GPIO3_IO00 0x184 0x554 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA0__SRC_BOOT_CFG00 0x184 0x554 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA0__EPDC_SDCLK_N 0x184 0x554 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_DA1__EIM_AD01 0x188 0x558 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA1__IPU1_DISP1_DATA08 0x188 0x558 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA1__IPU1_CSI1_DATA08 0x188 0x558 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA1__GPIO3_IO01 0x188 0x558 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA1__SRC_BOOT_CFG01 0x188 0x558 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA1__EPDC_SDLE 0x188 0x558 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_DA10__EIM_AD10 0x18c 0x55c 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA10__IPU1_DI1_PIN15 0x18c 0x55c 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA10__IPU1_CSI1_DATA_EN 0x18c 0x55c 0x8b0 0x2 0x1 ++#define MX6QDL_PAD_EIM_DA10__GPIO3_IO10 0x18c 0x55c 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA10__SRC_BOOT_CFG10 0x18c 0x55c 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA10__EPDC_DATA01 0x18c 0x55c 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_DA11__EIM_AD11 0x190 0x560 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA11__IPU1_DI1_PIN02 0x190 0x560 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA11__IPU1_CSI1_HSYNC 0x190 0x560 0x8b4 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA11__GPIO3_IO11 0x190 0x560 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA11__SRC_BOOT_CFG11 0x190 0x560 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA11__EPDC_DATA03 0x190 0x560 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_DA12__EIM_AD12 0x194 0x564 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA12__IPU1_DI1_PIN03 0x194 0x564 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA12__IPU1_CSI1_VSYNC 0x194 0x564 0x8bc 0x2 0x1 ++#define MX6QDL_PAD_EIM_DA12__GPIO3_IO12 0x194 0x564 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA12__SRC_BOOT_CFG12 0x194 0x564 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA12__EPDC_DATA02 0x194 0x564 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_DA13__EIM_AD13 0x198 0x568 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA13__IPU1_DI1_D0_CS 0x198 0x568 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA13__GPIO3_IO13 0x198 0x568 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA13__SRC_BOOT_CFG13 0x198 0x568 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA13__EPDC_DATA13 0x198 0x568 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_DA14__EIM_AD14 0x19c 0x56c 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA14__IPU1_DI1_D1_CS 0x19c 0x56c 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA14__GPIO3_IO14 0x19c 0x56c 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA14__SRC_BOOT_CFG14 0x19c 0x56c 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA14__EPDC_DATA14 0x19c 0x56c 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_DA15__EIM_AD15 0x1a0 0x570 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA15__IPU1_DI1_PIN01 0x1a0 0x570 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA15__IPU1_DI1_PIN04 0x1a0 0x570 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA15__GPIO3_IO15 0x1a0 0x570 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA15__SRC_BOOT_CFG15 0x1a0 0x570 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA15__EPDC_DATA09 0x1a0 0x570 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_DA2__EIM_AD02 0x1a4 0x574 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA2__IPU1_DISP1_DATA07 0x1a4 0x574 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA2__IPU1_CSI1_DATA07 0x1a4 0x574 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA2__GPIO3_IO02 0x1a4 0x574 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA2__SRC_BOOT_CFG02 0x1a4 0x574 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA2__EPDC_BDR0 0x1a4 0x574 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_DA3__EIM_AD03 0x1a8 0x578 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA3__IPU1_DISP1_DATA06 0x1a8 0x578 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA3__IPU1_CSI1_DATA06 0x1a8 0x578 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA3__GPIO3_IO03 0x1a8 0x578 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA3__SRC_BOOT_CFG03 0x1a8 0x578 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA3__EPDC_BDR1 0x1a8 0x578 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_DA4__EIM_AD04 0x1ac 0x57c 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA4__IPU1_DISP1_DATA05 0x1ac 0x57c 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA4__IPU1_CSI1_DATA05 0x1ac 0x57c 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA4__GPIO3_IO04 0x1ac 0x57c 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA4__SRC_BOOT_CFG04 0x1ac 0x57c 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA4__EPDC_SDCE0 0x1ac 0x57c 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_DA5__EIM_AD05 0x1b0 0x580 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA5__IPU1_DISP1_DATA04 0x1b0 0x580 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA5__IPU1_CSI1_DATA04 0x1b0 0x580 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA5__GPIO3_IO05 0x1b0 0x580 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA5__SRC_BOOT_CFG05 0x1b0 0x580 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA5__EPDC_SDCE1 0x1b0 0x580 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_DA6__EIM_AD06 0x1b4 0x584 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA6__IPU1_DISP1_DATA03 0x1b4 0x584 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA6__IPU1_CSI1_DATA03 0x1b4 0x584 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA6__GPIO3_IO06 0x1b4 0x584 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA6__SRC_BOOT_CFG06 0x1b4 0x584 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA6__EPDC_SDCE2 0x1b4 0x584 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_DA7__EIM_AD07 0x1b8 0x588 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA7__IPU1_DISP1_DATA02 0x1b8 0x588 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA7__IPU1_CSI1_DATA02 0x1b8 0x588 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA7__GPIO3_IO07 0x1b8 0x588 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA7__SRC_BOOT_CFG07 0x1b8 0x588 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA7__EPDC_SDCE3 0x1b8 0x588 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_DA8__EIM_AD08 0x1bc 0x58c 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA8__IPU1_DISP1_DATA01 0x1bc 0x58c 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA8__IPU1_CSI1_DATA01 0x1bc 0x58c 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA8__GPIO3_IO08 0x1bc 0x58c 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA8__SRC_BOOT_CFG08 0x1bc 0x58c 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA8__EPDC_SDCE4 0x1bc 0x58c 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_DA9__EIM_AD09 0x1c0 0x590 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA9__IPU1_DISP1_DATA00 0x1c0 0x590 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA9__IPU1_CSI1_DATA00 0x1c0 0x590 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA9__GPIO3_IO09 0x1c0 0x590 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA9__SRC_BOOT_CFG09 0x1c0 0x590 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA9__EPDC_SDCE5 0x1c0 0x590 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_EB0__EIM_EB0_B 0x1c4 0x594 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_EB0__IPU1_DISP1_DATA11 0x1c4 0x594 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_EB0__IPU1_CSI1_DATA11 0x1c4 0x594 0x88c 0x2 0x1 ++#define MX6QDL_PAD_EIM_EB0__CCM_PMIC_READY 0x1c4 0x594 0x7d4 0x4 0x0 ++#define MX6QDL_PAD_EIM_EB0__GPIO2_IO28 0x1c4 0x594 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_EB0__SRC_BOOT_CFG27 0x1c4 0x594 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_EB0__EPDC_PWR_COM 0x1c4 0x594 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_EB1__EIM_EB1_B 0x1c8 0x598 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_EB1__IPU1_DISP1_DATA10 0x1c8 0x598 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_EB1__IPU1_CSI1_DATA10 0x1c8 0x598 0x888 0x2 0x1 ++#define MX6QDL_PAD_EIM_EB1__GPIO2_IO29 0x1c8 0x598 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_EB1__SRC_BOOT_CFG28 0x1c8 0x598 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_EB1__EPDC_SDSHR 0x1c8 0x598 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_EB2__EIM_EB2_B 0x1cc 0x59c 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_EB2__ECSPI1_SS0 0x1cc 0x59c 0x7e4 0x1 0x2 ++#define MX6QDL_PAD_EIM_EB2__IPU1_CSI1_DATA19 0x1cc 0x59c 0x8ac 0x3 0x1 ++#define MX6QDL_PAD_EIM_EB2__HDMI_TX_DDC_SCL 0x1cc 0x59c 0x860 0x4 0x0 ++#define MX6QDL_PAD_EIM_EB2__GPIO2_IO30 0x1cc 0x59c 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_EB2__I2C2_SCL 0x1cc 0x59c 0x870 0x6 0x0 ++#define MX6QDL_PAD_EIM_EB2__SRC_BOOT_CFG30 0x1cc 0x59c 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_EB2__EPDC_DATA05 0x1cc 0x59c 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_EB3__EIM_EB3_B 0x1d0 0x5a0 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_EB3__ECSPI4_RDY 0x1d0 0x5a0 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_EB3__UART3_RTS_B 0x1d0 0x5a0 0x908 0x2 0x3 ++#define MX6QDL_PAD_EIM_EB3__UART3_CTS_B 0x1d0 0x5a0 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_EB3__UART1_RI_B 0x1d0 0x5a0 0x000 0x3 0x0 ++#define MX6QDL_PAD_EIM_EB3__IPU1_CSI1_HSYNC 0x1d0 0x5a0 0x8b4 0x4 0x1 ++#define MX6QDL_PAD_EIM_EB3__GPIO2_IO31 0x1d0 0x5a0 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_EB3__IPU1_DI1_PIN03 0x1d0 0x5a0 0x000 0x6 0x0 ++#define MX6QDL_PAD_EIM_EB3__SRC_BOOT_CFG31 0x1d0 0x5a0 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_EB3__EPDC_SDCE0 0x1d0 0x5a0 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_EB3__EIM_ACLK_FREERUN 0x1d0 0x5a0 0x000 0x9 0x0 ++#define MX6QDL_PAD_EIM_LBA__EIM_LBA_B 0x1d4 0x5a4 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_LBA__IPU1_DI1_PIN17 0x1d4 0x5a4 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_LBA__ECSPI2_SS1 0x1d4 0x5a4 0x804 0x2 0x1 ++#define MX6QDL_PAD_EIM_LBA__GPIO2_IO27 0x1d4 0x5a4 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_LBA__SRC_BOOT_CFG26 0x1d4 0x5a4 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_LBA__EPDC_DATA04 0x1d4 0x5a4 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_OE__EIM_OE_B 0x1d8 0x5a8 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_OE__IPU1_DI1_PIN07 0x1d8 0x5a8 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_OE__ECSPI2_MISO 0x1d8 0x5a8 0x7f8 0x2 0x2 ++#define MX6QDL_PAD_EIM_OE__GPIO2_IO25 0x1d8 0x5a8 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_OE__EPDC_PWR_IRQ 0x1d8 0x5a8 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_RW__EIM_RW 0x1dc 0x5ac 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_RW__IPU1_DI1_PIN08 0x1dc 0x5ac 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_RW__ECSPI2_SS0 0x1dc 0x5ac 0x800 0x2 0x2 ++#define MX6QDL_PAD_EIM_RW__GPIO2_IO26 0x1dc 0x5ac 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_RW__SRC_BOOT_CFG29 0x1dc 0x5ac 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_RW__EPDC_DATA07 0x1dc 0x5ac 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_WAIT__EIM_WAIT_B 0x1e0 0x5b0 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_WAIT__EIM_DTACK_B 0x1e0 0x5b0 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_WAIT__GPIO5_IO00 0x1e0 0x5b0 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_WAIT__SRC_BOOT_CFG25 0x1e0 0x5b0 0x000 0x7 0x0 ++#define MX6QDL_PAD_ENET_CRS_DV__ENET_RX_EN 0x1e4 0x5b4 0x828 0x1 0x0 ++#define MX6QDL_PAD_ENET_CRS_DV__ESAI_TX_CLK 0x1e4 0x5b4 0x840 0x2 0x0 ++#define MX6QDL_PAD_ENET_CRS_DV__SPDIF_EXT_CLK 0x1e4 0x5b4 0x8f4 0x3 0x0 ++#define MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25 0x1e4 0x5b4 0x000 0x5 0x0 ++#define MX6QDL_PAD_ENET_MDC__MLB_DATA 0x1e8 0x5b8 0x8e0 0x0 0x0 ++#define MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1e8 0x5b8 0x000 0x1 0x0 ++#define MX6QDL_PAD_ENET_MDC__ESAI_TX5_RX0 0x1e8 0x5b8 0x858 0x2 0x0 ++#define MX6QDL_PAD_ENET_MDC__ENET_1588_EVENT1_IN 0x1e8 0x5b8 0x000 0x4 0x0 ++#define MX6QDL_PAD_ENET_MDC__GPIO1_IO31 0x1e8 0x5b8 0x000 0x5 0x0 ++#define MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1ec 0x5bc 0x810 0x1 0x0 ++#define MX6QDL_PAD_ENET_MDIO__ESAI_RX_CLK 0x1ec 0x5bc 0x83c 0x2 0x0 ++#define MX6QDL_PAD_ENET_MDIO__ENET_1588_EVENT1_OUT 0x1ec 0x5bc 0x000 0x4 0x0 ++#define MX6QDL_PAD_ENET_MDIO__GPIO1_IO22 0x1ec 0x5bc 0x000 0x5 0x0 ++#define MX6QDL_PAD_ENET_MDIO__SPDIF_LOCK 0x1ec 0x5bc 0x000 0x6 0x0 ++#define MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1f0 0x5c0 0x000 0x1 0x0 ++#define MX6QDL_PAD_ENET_REF_CLK__ESAI_RX_FS 0x1f0 0x5c0 0x82c 0x2 0x0 ++#define MX6QDL_PAD_ENET_REF_CLK__GPIO1_IO23 0x1f0 0x5c0 0x000 0x5 0x0 ++#define MX6QDL_PAD_ENET_REF_CLK__SPDIF_SR_CLK 0x1f0 0x5c0 0x000 0x6 0x0 ++#define MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID 0x1f4 0x5c4 0x790 0x0 0x0 ++#define MX6QDL_PAD_ENET_RX_ER__ENET_RX_ER 0x1f4 0x5c4 0x000 0x1 0x0 ++#define MX6QDL_PAD_ENET_RX_ER__ESAI_RX_HF_CLK 0x1f4 0x5c4 0x834 0x2 0x0 ++#define MX6QDL_PAD_ENET_RX_ER__SPDIF_IN 0x1f4 0x5c4 0x8f0 0x3 0x1 ++#define MX6QDL_PAD_ENET_RX_ER__ENET_1588_EVENT2_OUT 0x1f4 0x5c4 0x000 0x4 0x0 ++#define MX6QDL_PAD_ENET_RX_ER__GPIO1_IO24 0x1f4 0x5c4 0x000 0x5 0x0 ++#define MX6QDL_PAD_ENET_RXD0__ENET_RX_DATA0 0x1f8 0x5c8 0x818 0x1 0x0 ++#define MX6QDL_PAD_ENET_RXD0__ESAI_TX_HF_CLK 0x1f8 0x5c8 0x838 0x2 0x0 ++#define MX6QDL_PAD_ENET_RXD0__SPDIF_OUT 0x1f8 0x5c8 0x000 0x3 0x0 ++#define MX6QDL_PAD_ENET_RXD0__GPIO1_IO27 0x1f8 0x5c8 0x000 0x5 0x0 ++#define MX6QDL_PAD_ENET_RXD1__MLB_SIG 0x1fc 0x5cc 0x8e4 0x0 0x0 ++#define MX6QDL_PAD_ENET_RXD1__ENET_RX_DATA1 0x1fc 0x5cc 0x81c 0x1 0x0 ++#define MX6QDL_PAD_ENET_RXD1__ESAI_TX_FS 0x1fc 0x5cc 0x830 0x2 0x0 ++#define MX6QDL_PAD_ENET_RXD1__ENET_1588_EVENT3_OUT 0x1fc 0x5cc 0x000 0x4 0x0 ++#define MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x1fc 0x5cc 0x000 0x5 0x0 ++#define MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN 0x200 0x5d0 0x000 0x1 0x0 ++#define MX6QDL_PAD_ENET_TX_EN__ESAI_TX3_RX2 0x200 0x5d0 0x850 0x2 0x0 ++#define MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28 0x200 0x5d0 0x000 0x5 0x0 ++#define MX6QDL_PAD_ENET_TX_EN__I2C4_SCL 0x200 0x5d0 0x880 0x9 0x0 ++#define MX6QDL_PAD_ENET_TXD0__ENET_TX_DATA0 0x204 0x5d4 0x000 0x1 0x0 ++#define MX6QDL_PAD_ENET_TXD0__ESAI_TX4_RX1 0x204 0x5d4 0x854 0x2 0x0 ++#define MX6QDL_PAD_ENET_TXD0__GPIO1_IO30 0x204 0x5d4 0x000 0x5 0x0 ++#define MX6QDL_PAD_ENET_TXD1__MLB_CLK 0x208 0x5d8 0x8dc 0x0 0x0 ++#define MX6QDL_PAD_ENET_TXD1__ENET_TX_DATA1 0x208 0x5d8 0x000 0x1 0x0 ++#define MX6QDL_PAD_ENET_TXD1__ESAI_TX2_RX3 0x208 0x5d8 0x84c 0x2 0x0 ++#define MX6QDL_PAD_ENET_TXD1__ENET_1588_EVENT0_IN 0x208 0x5d8 0x000 0x4 0x0 ++#define MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x208 0x5d8 0x000 0x5 0x0 ++#define MX6QDL_PAD_ENET_TXD1__I2C4_SDA 0x208 0x5d8 0x884 0x9 0x0 ++#define MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x20c 0x5dc 0x000 0x0 0x0 ++#define MX6QDL_PAD_GPIO_0__KEY_COL5 0x20c 0x5dc 0x8c0 0x2 0x1 ++#define MX6QDL_PAD_GPIO_0__ASRC_EXT_CLK 0x20c 0x5dc 0x794 0x3 0x0 ++#define MX6QDL_PAD_GPIO_0__EPIT1_OUT 0x20c 0x5dc 0x000 0x4 0x0 ++#define MX6QDL_PAD_GPIO_0__GPIO1_IO00 0x20c 0x5dc 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_0__USB_H1_PWR 0x20c 0x5dc 0x000 0x6 0x0 ++#define MX6QDL_PAD_GPIO_0__SNVS_VIO_5 0x20c 0x5dc 0x000 0x7 0x0 ++#define MX6QDL_PAD_GPIO_1__ESAI_RX_CLK 0x210 0x5e0 0x83c 0x0 0x1 ++#define MX6QDL_PAD_GPIO_1__WDOG2_B 0x210 0x5e0 0x000 0x1 0x0 ++#define MX6QDL_PAD_GPIO_1__KEY_ROW5 0x210 0x5e0 0x8cc 0x2 0x1 ++#define MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x210 0x5e0 0x790 0x3 0x1 ++#define MX6QDL_PAD_GPIO_1__PWM2_OUT 0x210 0x5e0 0x000 0x4 0x0 ++#define MX6QDL_PAD_GPIO_1__GPIO1_IO01 0x210 0x5e0 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_1__SD1_CD_B 0x210 0x5e0 0x000 0x6 0x0 ++#define MX6QDL_PAD_GPIO_16__ESAI_TX3_RX2 0x214 0x5e4 0x850 0x0 0x1 ++#define MX6QDL_PAD_GPIO_16__ENET_1588_EVENT2_IN 0x214 0x5e4 0x000 0x1 0x0 ++#define MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x214 0x5e4 0x80c 0x2 0x0 ++#define MX6QDL_PAD_GPIO_16__SD1_LCTL 0x214 0x5e4 0x000 0x3 0x0 ++#define MX6QDL_PAD_GPIO_16__SPDIF_IN 0x214 0x5e4 0x8f0 0x4 0x2 ++#define MX6QDL_PAD_GPIO_16__GPIO7_IO11 0x214 0x5e4 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_16__I2C3_SDA 0x214 0x5e4 0x87c 0x6 0x1 ++#define MX6QDL_PAD_GPIO_16__JTAG_DE_B 0x214 0x5e4 0x000 0x7 0x0 ++#define MX6QDL_PAD_GPIO_17__ESAI_TX0 0x218 0x5e8 0x844 0x0 0x0 ++#define MX6QDL_PAD_GPIO_17__ENET_1588_EVENT3_IN 0x218 0x5e8 0x000 0x1 0x0 ++#define MX6QDL_PAD_GPIO_17__CCM_PMIC_READY 0x218 0x5e8 0x7d4 0x2 0x1 ++#define MX6QDL_PAD_GPIO_17__SDMA_EXT_EVENT0 0x218 0x5e8 0x8e8 0x3 0x1 ++#define MX6QDL_PAD_GPIO_17__SPDIF_OUT 0x218 0x5e8 0x000 0x4 0x0 ++#define MX6QDL_PAD_GPIO_17__GPIO7_IO12 0x218 0x5e8 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_18__ESAI_TX1 0x21c 0x5ec 0x848 0x0 0x0 ++#define MX6QDL_PAD_GPIO_18__ENET_RX_CLK 0x21c 0x5ec 0x814 0x1 0x0 ++#define MX6QDL_PAD_GPIO_18__SD3_VSELECT 0x21c 0x5ec 0x000 0x2 0x0 ++#define MX6QDL_PAD_GPIO_18__SDMA_EXT_EVENT1 0x21c 0x5ec 0x8ec 0x3 0x1 ++#define MX6QDL_PAD_GPIO_18__ASRC_EXT_CLK 0x21c 0x5ec 0x794 0x4 0x1 ++#define MX6QDL_PAD_GPIO_18__GPIO7_IO13 0x21c 0x5ec 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_18__SNVS_VIO_5_CTL 0x21c 0x5ec 0x000 0x6 0x0 ++#define MX6QDL_PAD_GPIO_19__KEY_COL5 0x220 0x5f0 0x8c0 0x0 0x2 ++#define MX6QDL_PAD_GPIO_19__ENET_1588_EVENT0_OUT 0x220 0x5f0 0x000 0x1 0x0 ++#define MX6QDL_PAD_GPIO_19__SPDIF_OUT 0x220 0x5f0 0x000 0x2 0x0 ++#define MX6QDL_PAD_GPIO_19__CCM_CLKO1 0x220 0x5f0 0x000 0x3 0x0 ++#define MX6QDL_PAD_GPIO_19__ECSPI1_RDY 0x220 0x5f0 0x000 0x4 0x0 ++#define MX6QDL_PAD_GPIO_19__GPIO4_IO05 0x220 0x5f0 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_19__ENET_TX_ER 0x220 0x5f0 0x000 0x6 0x0 ++#define MX6QDL_PAD_GPIO_2__ESAI_TX_FS 0x224 0x5f4 0x830 0x0 0x1 ++#define MX6QDL_PAD_GPIO_2__KEY_ROW6 0x224 0x5f4 0x8d0 0x2 0x1 ++#define MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x224 0x5f4 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_2__SD2_WP 0x224 0x5f4 0x000 0x6 0x0 ++#define MX6QDL_PAD_GPIO_2__MLB_DATA 0x224 0x5f4 0x8e0 0x7 0x1 ++#define MX6QDL_PAD_GPIO_3__ESAI_RX_HF_CLK 0x228 0x5f8 0x834 0x0 0x1 ++#define MX6QDL_PAD_GPIO_3__I2C3_SCL 0x228 0x5f8 0x878 0x2 0x1 ++#define MX6QDL_PAD_GPIO_3__XTALOSC_REF_CLK_24M 0x228 0x5f8 0x000 0x3 0x0 ++#define MX6QDL_PAD_GPIO_3__CCM_CLKO2 0x228 0x5f8 0x000 0x4 0x0 ++#define MX6QDL_PAD_GPIO_3__GPIO1_IO03 0x228 0x5f8 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_3__USB_H1_OC 0x228 0x5f8 0x924 0x6 0x1 ++#define MX6QDL_PAD_GPIO_3__MLB_CLK 0x228 0x5f8 0x8dc 0x7 0x1 ++#define MX6QDL_PAD_GPIO_4__ESAI_TX_HF_CLK 0x22c 0x5fc 0x838 0x0 0x1 ++#define MX6QDL_PAD_GPIO_4__KEY_COL7 0x22c 0x5fc 0x8c8 0x2 0x1 ++#define MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x22c 0x5fc 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_4__SD2_CD_B 0x22c 0x5fc 0x000 0x6 0x0 ++#define MX6QDL_PAD_GPIO_5__ESAI_TX2_RX3 0x230 0x600 0x84c 0x0 0x1 ++#define MX6QDL_PAD_GPIO_5__KEY_ROW7 0x230 0x600 0x8d4 0x2 0x1 ++#define MX6QDL_PAD_GPIO_5__CCM_CLKO1 0x230 0x600 0x000 0x3 0x0 ++#define MX6QDL_PAD_GPIO_5__GPIO1_IO05 0x230 0x600 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_5__I2C3_SCL 0x230 0x600 0x878 0x6 0x2 ++#define MX6QDL_PAD_GPIO_5__ARM_EVENTI 0x230 0x600 0x000 0x7 0x0 ++#define MX6QDL_PAD_GPIO_6__ESAI_TX_CLK 0x234 0x604 0x840 0x0 0x1 ++#define MX6QDL_PAD_GPIO_6__I2C3_SDA 0x234 0x604 0x87c 0x2 0x2 ++#define MX6QDL_PAD_GPIO_6__GPIO1_IO06 0x234 0x604 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_6__SD2_LCTL 0x234 0x604 0x000 0x6 0x0 ++#define MX6QDL_PAD_GPIO_6__MLB_SIG 0x234 0x604 0x8e4 0x7 0x1 ++#define MX6QDL_PAD_GPIO_7__ESAI_TX4_RX1 0x238 0x608 0x854 0x0 0x1 ++#define MX6QDL_PAD_GPIO_7__EPIT1_OUT 0x238 0x608 0x000 0x2 0x0 ++#define MX6QDL_PAD_GPIO_7__FLEXCAN1_TX 0x238 0x608 0x000 0x3 0x0 ++#define MX6QDL_PAD_GPIO_7__UART2_TX_DATA 0x238 0x608 0x000 0x4 0x0 ++#define MX6QDL_PAD_GPIO_7__UART2_RX_DATA 0x238 0x608 0x904 0x4 0x2 ++#define MX6QDL_PAD_GPIO_7__GPIO1_IO07 0x238 0x608 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_7__SPDIF_LOCK 0x238 0x608 0x000 0x6 0x0 ++#define MX6QDL_PAD_GPIO_7__USB_OTG_HOST_MODE 0x238 0x608 0x000 0x7 0x0 ++#define MX6QDL_PAD_GPIO_7__I2C4_SCL 0x238 0x608 0x880 0x8 0x1 ++#define MX6QDL_PAD_GPIO_8__ESAI_TX5_RX0 0x23c 0x60c 0x858 0x0 0x1 ++#define MX6QDL_PAD_GPIO_8__XTALOSC_REF_CLK_32K 0x23c 0x60c 0x000 0x1 0x0 ++#define MX6QDL_PAD_GPIO_8__EPIT2_OUT 0x23c 0x60c 0x000 0x2 0x0 ++#define MX6QDL_PAD_GPIO_8__FLEXCAN1_RX 0x23c 0x60c 0x7c8 0x3 0x0 ++#define MX6QDL_PAD_GPIO_8__UART2_RX_DATA 0x23c 0x60c 0x904 0x4 0x3 ++#define MX6QDL_PAD_GPIO_8__UART2_TX_DATA 0x23c 0x60c 0x000 0x4 0x0 ++#define MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x23c 0x60c 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_8__SPDIF_SR_CLK 0x23c 0x60c 0x000 0x6 0x0 ++#define MX6QDL_PAD_GPIO_8__USB_OTG_PWR_CTL_WAKE 0x23c 0x60c 0x000 0x7 0x0 ++#define MX6QDL_PAD_GPIO_8__I2C4_SDA 0x23c 0x60c 0x884 0x8 0x1 ++#define MX6QDL_PAD_GPIO_9__ESAI_RX_FS 0x240 0x610 0x82c 0x0 0x1 ++#define MX6QDL_PAD_GPIO_9__WDOG1_B 0x240 0x610 0x000 0x1 0x0 ++#define MX6QDL_PAD_GPIO_9__KEY_COL6 0x240 0x610 0x8c4 0x2 0x1 ++#define MX6QDL_PAD_GPIO_9__CCM_REF_EN_B 0x240 0x610 0x000 0x3 0x0 ++#define MX6QDL_PAD_GPIO_9__PWM1_OUT 0x240 0x610 0x000 0x4 0x0 ++#define MX6QDL_PAD_GPIO_9__GPIO1_IO09 0x240 0x610 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_9__SD1_WP 0x240 0x610 0x92c 0x6 0x1 ++#define MX6QDL_PAD_KEY_COL0__ECSPI1_SCLK 0x244 0x62c 0x7d8 0x0 0x3 ++#define MX6QDL_PAD_KEY_COL0__ENET_RX_DATA3 0x244 0x62c 0x824 0x1 0x0 ++#define MX6QDL_PAD_KEY_COL0__AUD5_TXC 0x244 0x62c 0x7c0 0x2 0x1 ++#define MX6QDL_PAD_KEY_COL0__KEY_COL0 0x244 0x62c 0x000 0x3 0x0 ++#define MX6QDL_PAD_KEY_COL0__UART4_TX_DATA 0x244 0x62c 0x000 0x4 0x0 ++#define MX6QDL_PAD_KEY_COL0__UART4_RX_DATA 0x244 0x62c 0x914 0x4 0x2 ++#define MX6QDL_PAD_KEY_COL0__GPIO4_IO06 0x244 0x62c 0x000 0x5 0x0 ++#define MX6QDL_PAD_KEY_COL0__DCIC1_OUT 0x244 0x62c 0x000 0x6 0x0 ++#define MX6QDL_PAD_KEY_COL1__ECSPI1_MISO 0x248 0x630 0x7dc 0x0 0x3 ++#define MX6QDL_PAD_KEY_COL1__ENET_MDIO 0x248 0x630 0x810 0x1 0x1 ++#define MX6QDL_PAD_KEY_COL1__AUD5_TXFS 0x248 0x630 0x7c4 0x2 0x1 ++#define MX6QDL_PAD_KEY_COL1__KEY_COL1 0x248 0x630 0x000 0x3 0x0 ++#define MX6QDL_PAD_KEY_COL1__UART5_TX_DATA 0x248 0x630 0x000 0x4 0x0 ++#define MX6QDL_PAD_KEY_COL1__UART5_RX_DATA 0x248 0x630 0x91c 0x4 0x2 ++#define MX6QDL_PAD_KEY_COL1__GPIO4_IO08 0x248 0x630 0x000 0x5 0x0 ++#define MX6QDL_PAD_KEY_COL1__SD1_VSELECT 0x248 0x630 0x000 0x6 0x0 ++#define MX6QDL_PAD_KEY_COL2__ECSPI1_SS1 0x24c 0x634 0x7e8 0x0 0x2 ++#define MX6QDL_PAD_KEY_COL2__ENET_RX_DATA2 0x24c 0x634 0x820 0x1 0x0 ++#define MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX 0x24c 0x634 0x000 0x2 0x0 ++#define MX6QDL_PAD_KEY_COL2__KEY_COL2 0x24c 0x634 0x000 0x3 0x0 ++#define MX6QDL_PAD_KEY_COL2__ENET_MDC 0x24c 0x634 0x000 0x4 0x0 ++#define MX6QDL_PAD_KEY_COL2__GPIO4_IO10 0x24c 0x634 0x000 0x5 0x0 ++#define MX6QDL_PAD_KEY_COL2__USB_H1_PWR_CTL_WAKE 0x24c 0x634 0x000 0x6 0x0 ++#define MX6QDL_PAD_KEY_COL3__ECSPI1_SS3 0x250 0x638 0x7f0 0x0 0x1 ++#define MX6QDL_PAD_KEY_COL3__ENET_CRS 0x250 0x638 0x000 0x1 0x0 ++#define MX6QDL_PAD_KEY_COL3__HDMI_TX_DDC_SCL 0x250 0x638 0x860 0x2 0x1 ++#define MX6QDL_PAD_KEY_COL3__KEY_COL3 0x250 0x638 0x000 0x3 0x0 ++#define MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x250 0x638 0x870 0x4 0x1 ++#define MX6QDL_PAD_KEY_COL3__GPIO4_IO12 0x250 0x638 0x000 0x5 0x0 ++#define MX6QDL_PAD_KEY_COL3__SPDIF_IN 0x250 0x638 0x8f0 0x6 0x3 ++#define MX6QDL_PAD_KEY_COL4__FLEXCAN2_TX 0x254 0x63c 0x000 0x0 0x0 ++#define MX6QDL_PAD_KEY_COL4__IPU1_SISG4 0x254 0x63c 0x000 0x1 0x0 ++#define MX6QDL_PAD_KEY_COL4__USB_OTG_OC 0x254 0x63c 0x920 0x2 0x1 ++#define MX6QDL_PAD_KEY_COL4__KEY_COL4 0x254 0x63c 0x000 0x3 0x0 ++#define MX6QDL_PAD_KEY_COL4__UART5_RTS_B 0x254 0x63c 0x918 0x4 0x2 ++#define MX6QDL_PAD_KEY_COL4__UART5_CTS_B 0x254 0x63c 0x000 0x4 0x0 ++#define MX6QDL_PAD_KEY_COL4__GPIO4_IO14 0x254 0x63c 0x000 0x5 0x0 ++#define MX6QDL_PAD_KEY_ROW0__ECSPI1_MOSI 0x258 0x640 0x7e0 0x0 0x3 ++#define MX6QDL_PAD_KEY_ROW0__ENET_TX_DATA3 0x258 0x640 0x000 0x1 0x0 ++#define MX6QDL_PAD_KEY_ROW0__AUD5_TXD 0x258 0x640 0x7b4 0x2 0x1 ++#define MX6QDL_PAD_KEY_ROW0__KEY_ROW0 0x258 0x640 0x000 0x3 0x0 ++#define MX6QDL_PAD_KEY_ROW0__UART4_RX_DATA 0x258 0x640 0x914 0x4 0x3 ++#define MX6QDL_PAD_KEY_ROW0__UART4_TX_DATA 0x258 0x640 0x000 0x4 0x0 ++#define MX6QDL_PAD_KEY_ROW0__GPIO4_IO07 0x258 0x640 0x000 0x5 0x0 ++#define MX6QDL_PAD_KEY_ROW0__DCIC2_OUT 0x258 0x640 0x000 0x6 0x0 ++#define MX6QDL_PAD_KEY_ROW1__ECSPI1_SS0 0x25c 0x644 0x7e4 0x0 0x3 ++#define MX6QDL_PAD_KEY_ROW1__ENET_COL 0x25c 0x644 0x000 0x1 0x0 ++#define MX6QDL_PAD_KEY_ROW1__AUD5_RXD 0x25c 0x644 0x7b0 0x2 0x1 ++#define MX6QDL_PAD_KEY_ROW1__KEY_ROW1 0x25c 0x644 0x000 0x3 0x0 ++#define MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA 0x25c 0x644 0x91c 0x4 0x3 ++#define MX6QDL_PAD_KEY_ROW1__UART5_TX_DATA 0x25c 0x644 0x000 0x4 0x0 ++#define MX6QDL_PAD_KEY_ROW1__GPIO4_IO09 0x25c 0x644 0x000 0x5 0x0 ++#define MX6QDL_PAD_KEY_ROW1__SD2_VSELECT 0x25c 0x644 0x000 0x6 0x0 ++#define MX6QDL_PAD_KEY_ROW2__ECSPI1_SS2 0x260 0x648 0x7ec 0x0 0x1 ++#define MX6QDL_PAD_KEY_ROW2__ENET_TX_DATA2 0x260 0x648 0x000 0x1 0x0 ++#define MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX 0x260 0x648 0x7c8 0x2 0x1 ++#define MX6QDL_PAD_KEY_ROW2__KEY_ROW2 0x260 0x648 0x000 0x3 0x0 ++#define MX6QDL_PAD_KEY_ROW2__SD2_VSELECT 0x260 0x648 0x000 0x4 0x0 ++#define MX6QDL_PAD_KEY_ROW2__GPIO4_IO11 0x260 0x648 0x000 0x5 0x0 ++#define MX6QDL_PAD_KEY_ROW2__HDMI_TX_CEC_LINE 0x260 0x648 0x85c 0x6 0x1 ++#define MX6QDL_PAD_KEY_ROW3__ASRC_EXT_CLK 0x264 0x64c 0x794 0x1 0x2 ++#define MX6QDL_PAD_KEY_ROW3__HDMI_TX_DDC_SDA 0x264 0x64c 0x864 0x2 0x1 ++#define MX6QDL_PAD_KEY_ROW3__KEY_ROW3 0x264 0x64c 0x000 0x3 0x0 ++#define MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x264 0x64c 0x874 0x4 0x1 ++#define MX6QDL_PAD_KEY_ROW3__GPIO4_IO13 0x264 0x64c 0x000 0x5 0x0 ++#define MX6QDL_PAD_KEY_ROW3__SD1_VSELECT 0x264 0x64c 0x000 0x6 0x0 ++#define MX6QDL_PAD_KEY_ROW4__FLEXCAN2_RX 0x268 0x650 0x7cc 0x0 0x0 ++#define MX6QDL_PAD_KEY_ROW4__IPU1_SISG5 0x268 0x650 0x000 0x1 0x0 ++#define MX6QDL_PAD_KEY_ROW4__USB_OTG_PWR 0x268 0x650 0x000 0x2 0x0 ++#define MX6QDL_PAD_KEY_ROW4__KEY_ROW4 0x268 0x650 0x000 0x3 0x0 ++#define MX6QDL_PAD_KEY_ROW4__UART5_CTS_B 0x268 0x650 0x000 0x4 0x0 ++#define MX6QDL_PAD_KEY_ROW4__UART5_RTS_B 0x268 0x650 0x918 0x4 0x3 ++#define MX6QDL_PAD_KEY_ROW4__GPIO4_IO15 0x268 0x650 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_ALE__NAND_ALE 0x26c 0x654 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_ALE__SD4_RESET 0x26c 0x654 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_ALE__GPIO6_IO08 0x26c 0x654 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_CLE__NAND_CLE 0x270 0x658 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_CLE__GPIO6_IO07 0x270 0x658 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_CS0__NAND_CE0_B 0x274 0x65c 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_CS0__GPIO6_IO11 0x274 0x65c 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_CS1__NAND_CE1_B 0x278 0x660 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_CS1__SD4_VSELECT 0x278 0x660 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_CS1__SD3_VSELECT 0x278 0x660 0x000 0x2 0x0 ++#define MX6QDL_PAD_NANDF_CS1__GPIO6_IO14 0x278 0x660 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_CS2__NAND_CE2_B 0x27c 0x664 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_CS2__IPU1_SISG0 0x27c 0x664 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_CS2__ESAI_TX0 0x27c 0x664 0x844 0x2 0x1 ++#define MX6QDL_PAD_NANDF_CS2__EIM_CRE 0x27c 0x664 0x000 0x3 0x0 ++#define MX6QDL_PAD_NANDF_CS2__CCM_CLKO2 0x27c 0x664 0x000 0x4 0x0 ++#define MX6QDL_PAD_NANDF_CS2__GPIO6_IO15 0x27c 0x664 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_CS3__NAND_CE3_B 0x280 0x668 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_CS3__IPU1_SISG1 0x280 0x668 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_CS3__ESAI_TX1 0x280 0x668 0x848 0x2 0x1 ++#define MX6QDL_PAD_NANDF_CS3__EIM_ADDR26 0x280 0x668 0x000 0x3 0x0 ++#define MX6QDL_PAD_NANDF_CS3__GPIO6_IO16 0x280 0x668 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_CS3__I2C4_SDA 0x280 0x668 0x884 0x9 0x2 ++#define MX6QDL_PAD_NANDF_D0__NAND_DATA00 0x284 0x66c 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_D0__SD1_DATA4 0x284 0x66c 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_D0__GPIO2_IO00 0x284 0x66c 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_D1__NAND_DATA01 0x288 0x670 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_D1__SD1_DATA5 0x288 0x670 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_D1__GPIO2_IO01 0x288 0x670 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_D2__NAND_DATA02 0x28c 0x674 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_D2__SD1_DATA6 0x28c 0x674 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_D2__GPIO2_IO02 0x28c 0x674 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_D3__NAND_DATA03 0x290 0x678 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_D3__SD1_DATA7 0x290 0x678 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_D3__GPIO2_IO03 0x290 0x678 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_D4__NAND_DATA04 0x294 0x67c 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_D4__SD2_DATA4 0x294 0x67c 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_D4__GPIO2_IO04 0x294 0x67c 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_D5__NAND_DATA05 0x298 0x680 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_D5__SD2_DATA5 0x298 0x680 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_D5__GPIO2_IO05 0x298 0x680 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_D6__NAND_DATA06 0x29c 0x684 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_D6__SD2_DATA6 0x29c 0x684 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_D6__GPIO2_IO06 0x29c 0x684 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_D7__NAND_DATA07 0x2a0 0x688 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_D7__SD2_DATA7 0x2a0 0x688 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_D7__GPIO2_IO07 0x2a0 0x688 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_RB0__NAND_READY_B 0x2a4 0x68c 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_RB0__GPIO6_IO10 0x2a4 0x68c 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_WP_B__NAND_WP_B 0x2a8 0x690 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_WP_B__GPIO6_IO09 0x2a8 0x690 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_WP_B__I2C4_SCL 0x2a8 0x690 0x880 0x9 0x2 ++#define MX6QDL_PAD_RGMII_RD0__HSI_RX_READY 0x2ac 0x694 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x2ac 0x694 0x818 0x1 0x1 ++#define MX6QDL_PAD_RGMII_RD0__GPIO6_IO25 0x2ac 0x694 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_RD1__HSI_TX_FLAG 0x2b0 0x698 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x2b0 0x698 0x81c 0x1 0x1 ++#define MX6QDL_PAD_RGMII_RD1__GPIO6_IO27 0x2b0 0x698 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_RD2__HSI_TX_DATA 0x2b4 0x69c 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x2b4 0x69c 0x820 0x1 0x1 ++#define MX6QDL_PAD_RGMII_RD2__GPIO6_IO28 0x2b4 0x69c 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_RD3__HSI_TX_WAKE 0x2b8 0x6a0 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x2b8 0x6a0 0x824 0x1 0x1 ++#define MX6QDL_PAD_RGMII_RD3__GPIO6_IO29 0x2b8 0x6a0 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_RX_CTL__USB_H3_DATA 0x2bc 0x6a4 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x2bc 0x6a4 0x828 0x1 0x1 ++#define MX6QDL_PAD_RGMII_RX_CTL__GPIO6_IO24 0x2bc 0x6a4 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_RXC__USB_H3_STROBE 0x2c0 0x6a8 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x2c0 0x6a8 0x814 0x1 0x1 ++#define MX6QDL_PAD_RGMII_RXC__GPIO6_IO30 0x2c0 0x6a8 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_TD0__HSI_TX_READY 0x2c4 0x6ac 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x2c4 0x6ac 0x000 0x1 0x0 ++#define MX6QDL_PAD_RGMII_TD0__GPIO6_IO20 0x2c4 0x6ac 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_TD1__HSI_RX_FLAG 0x2c8 0x6b0 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x2c8 0x6b0 0x000 0x1 0x0 ++#define MX6QDL_PAD_RGMII_TD1__GPIO6_IO21 0x2c8 0x6b0 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_TD2__HSI_RX_DATA 0x2cc 0x6b4 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x2cc 0x6b4 0x000 0x1 0x0 ++#define MX6QDL_PAD_RGMII_TD2__GPIO6_IO22 0x2cc 0x6b4 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_TD3__HSI_RX_WAKE 0x2d0 0x6b8 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x2d0 0x6b8 0x000 0x1 0x0 ++#define MX6QDL_PAD_RGMII_TD3__GPIO6_IO23 0x2d0 0x6b8 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_TX_CTL__USB_H2_STROBE 0x2d4 0x6bc 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x2d4 0x6bc 0x000 0x1 0x0 ++#define MX6QDL_PAD_RGMII_TX_CTL__GPIO6_IO26 0x2d4 0x6bc 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_TX_CTL__ENET_REF_CLK 0x2d4 0x6bc 0x80c 0x7 0x1 ++#define MX6QDL_PAD_RGMII_TXC__USB_H2_DATA 0x2d8 0x6c0 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x2d8 0x6c0 0x000 0x1 0x0 ++#define MX6QDL_PAD_RGMII_TXC__SPDIF_EXT_CLK 0x2d8 0x6c0 0x8f4 0x2 0x1 ++#define MX6QDL_PAD_RGMII_TXC__GPIO6_IO19 0x2d8 0x6c0 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_TXC__XTALOSC_REF_CLK_24M 0x2d8 0x6c0 0x000 0x7 0x0 ++#define MX6QDL_PAD_SD1_CLK__SD1_CLK 0x2dc 0x6c4 0x928 0x0 0x1 ++#define MX6QDL_PAD_SD1_CLK__GPT_CLKIN 0x2dc 0x6c4 0x000 0x3 0x0 ++#define MX6QDL_PAD_SD1_CLK__GPIO1_IO20 0x2dc 0x6c4 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD1_CMD__SD1_CMD 0x2e0 0x6c8 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD1_CMD__PWM4_OUT 0x2e0 0x6c8 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD1_CMD__GPT_COMPARE1 0x2e0 0x6c8 0x000 0x3 0x0 ++#define MX6QDL_PAD_SD1_CMD__GPIO1_IO18 0x2e0 0x6c8 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x2e4 0x6cc 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD1_DAT0__GPT_CAPTURE1 0x2e4 0x6cc 0x000 0x3 0x0 ++#define MX6QDL_PAD_SD1_DAT0__GPIO1_IO16 0x2e4 0x6cc 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x2e8 0x6d0 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD1_DAT1__PWM3_OUT 0x2e8 0x6d0 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD1_DAT1__GPT_CAPTURE2 0x2e8 0x6d0 0x000 0x3 0x0 ++#define MX6QDL_PAD_SD1_DAT1__GPIO1_IO17 0x2e8 0x6d0 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x2ec 0x6d4 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD1_DAT2__GPT_COMPARE2 0x2ec 0x6d4 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD1_DAT2__PWM2_OUT 0x2ec 0x6d4 0x000 0x3 0x0 ++#define MX6QDL_PAD_SD1_DAT2__WDOG1_B 0x2ec 0x6d4 0x000 0x4 0x0 ++#define MX6QDL_PAD_SD1_DAT2__GPIO1_IO19 0x2ec 0x6d4 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD1_DAT2__WDOG1_RESET_B_DEB 0x2ec 0x6d4 0x000 0x6 0x0 ++#define MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x2f0 0x6d8 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD1_DAT3__GPT_COMPARE3 0x2f0 0x6d8 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD1_DAT3__PWM1_OUT 0x2f0 0x6d8 0x000 0x3 0x0 ++#define MX6QDL_PAD_SD1_DAT3__WDOG2_B 0x2f0 0x6d8 0x000 0x4 0x0 ++#define MX6QDL_PAD_SD1_DAT3__GPIO1_IO21 0x2f0 0x6d8 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD1_DAT3__WDOG2_RESET_B_DEB 0x2f0 0x6d8 0x000 0x6 0x0 ++#define MX6QDL_PAD_SD2_CLK__SD2_CLK 0x2f4 0x6dc 0x930 0x0 0x1 ++#define MX6QDL_PAD_SD2_CLK__KEY_COL5 0x2f4 0x6dc 0x8c0 0x2 0x3 ++#define MX6QDL_PAD_SD2_CLK__AUD4_RXFS 0x2f4 0x6dc 0x7a4 0x3 0x1 ++#define MX6QDL_PAD_SD2_CLK__GPIO1_IO10 0x2f4 0x6dc 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD2_CMD__SD2_CMD 0x2f8 0x6e0 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD2_CMD__KEY_ROW5 0x2f8 0x6e0 0x8cc 0x2 0x2 ++#define MX6QDL_PAD_SD2_CMD__AUD4_RXC 0x2f8 0x6e0 0x7a0 0x3 0x1 ++#define MX6QDL_PAD_SD2_CMD__GPIO1_IO11 0x2f8 0x6e0 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x2fc 0x6e4 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD2_DAT0__AUD4_RXD 0x2fc 0x6e4 0x798 0x3 0x1 ++#define MX6QDL_PAD_SD2_DAT0__KEY_ROW7 0x2fc 0x6e4 0x8d4 0x4 0x2 ++#define MX6QDL_PAD_SD2_DAT0__GPIO1_IO15 0x2fc 0x6e4 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD2_DAT0__DCIC2_OUT 0x2fc 0x6e4 0x000 0x6 0x0 ++#define MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x300 0x6e8 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD2_DAT1__EIM_CS2_B 0x300 0x6e8 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD2_DAT1__AUD4_TXFS 0x300 0x6e8 0x7ac 0x3 0x1 ++#define MX6QDL_PAD_SD2_DAT1__KEY_COL7 0x300 0x6e8 0x8c8 0x4 0x2 ++#define MX6QDL_PAD_SD2_DAT1__GPIO1_IO14 0x300 0x6e8 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x304 0x6ec 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD2_DAT2__EIM_CS3_B 0x304 0x6ec 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD2_DAT2__AUD4_TXD 0x304 0x6ec 0x79c 0x3 0x1 ++#define MX6QDL_PAD_SD2_DAT2__KEY_ROW6 0x304 0x6ec 0x8d0 0x4 0x2 ++#define MX6QDL_PAD_SD2_DAT2__GPIO1_IO13 0x304 0x6ec 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x308 0x6f0 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD2_DAT3__KEY_COL6 0x308 0x6f0 0x8c4 0x2 0x2 ++#define MX6QDL_PAD_SD2_DAT3__AUD4_TXC 0x308 0x6f0 0x7a8 0x3 0x1 ++#define MX6QDL_PAD_SD2_DAT3__GPIO1_IO12 0x308 0x6f0 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_CLK__SD3_CLK 0x30c 0x6f4 0x934 0x0 0x1 ++#define MX6QDL_PAD_SD3_CLK__UART2_RTS_B 0x30c 0x6f4 0x900 0x1 0x2 ++#define MX6QDL_PAD_SD3_CLK__UART2_CTS_B 0x30c 0x6f4 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD3_CLK__FLEXCAN1_RX 0x30c 0x6f4 0x7c8 0x2 0x2 ++#define MX6QDL_PAD_SD3_CLK__GPIO7_IO03 0x30c 0x6f4 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_CMD__SD3_CMD 0x310 0x6f8 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_CMD__UART2_CTS_B 0x310 0x6f8 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD3_CMD__UART2_RTS_B 0x310 0x6f8 0x900 0x1 0x3 ++#define MX6QDL_PAD_SD3_CMD__FLEXCAN1_TX 0x310 0x6f8 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD3_CMD__GPIO7_IO02 0x310 0x6f8 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x314 0x6fc 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_DAT0__UART1_CTS_B 0x314 0x6fc 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD3_DAT0__UART1_RTS_B 0x314 0x6fc 0x8f8 0x1 0x2 ++#define MX6QDL_PAD_SD3_DAT0__FLEXCAN2_TX 0x314 0x6fc 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD3_DAT0__GPIO7_IO04 0x314 0x6fc 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x318 0x700 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_DAT1__UART1_RTS_B 0x318 0x700 0x8f8 0x1 0x3 ++#define MX6QDL_PAD_SD3_DAT1__UART1_CTS_B 0x318 0x700 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD3_DAT1__FLEXCAN2_RX 0x318 0x700 0x7cc 0x2 0x1 ++#define MX6QDL_PAD_SD3_DAT1__GPIO7_IO05 0x318 0x700 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x31c 0x704 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_DAT2__GPIO7_IO06 0x31c 0x704 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x320 0x708 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_DAT3__UART3_CTS_B 0x320 0x708 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD3_DAT3__UART3_RTS_B 0x320 0x708 0x908 0x1 0x4 ++#define MX6QDL_PAD_SD3_DAT3__GPIO7_IO07 0x320 0x708 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_DAT4__SD3_DATA4 0x324 0x70c 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_DAT4__UART2_RX_DATA 0x324 0x70c 0x904 0x1 0x4 ++#define MX6QDL_PAD_SD3_DAT4__UART2_TX_DATA 0x324 0x70c 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD3_DAT4__GPIO7_IO01 0x324 0x70c 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_DAT5__SD3_DATA5 0x328 0x710 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_DAT5__UART2_TX_DATA 0x328 0x710 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD3_DAT5__UART2_RX_DATA 0x328 0x710 0x904 0x1 0x5 ++#define MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x328 0x710 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_DAT6__SD3_DATA6 0x32c 0x714 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA 0x32c 0x714 0x8fc 0x1 0x2 ++#define MX6QDL_PAD_SD3_DAT6__UART1_TX_DATA 0x32c 0x714 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD3_DAT6__GPIO6_IO18 0x32c 0x714 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_DAT7__SD3_DATA7 0x330 0x718 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA 0x330 0x718 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD3_DAT7__UART1_RX_DATA 0x330 0x718 0x8fc 0x1 0x3 ++#define MX6QDL_PAD_SD3_DAT7__GPIO6_IO17 0x330 0x718 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_RST__SD3_RESET 0x334 0x71c 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_RST__UART3_RTS_B 0x334 0x71c 0x908 0x1 0x5 ++#define MX6QDL_PAD_SD3_RST__UART3_CTS_B 0x334 0x71c 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD3_RST__GPIO7_IO08 0x334 0x71c 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD4_CLK__SD4_CLK 0x338 0x720 0x938 0x0 0x1 ++#define MX6QDL_PAD_SD4_CLK__NAND_WE_B 0x338 0x720 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD4_CLK__UART3_RX_DATA 0x338 0x720 0x90c 0x2 0x2 ++#define MX6QDL_PAD_SD4_CLK__UART3_TX_DATA 0x338 0x720 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD4_CLK__GPIO7_IO10 0x338 0x720 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD4_CMD__SD4_CMD 0x33c 0x724 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD4_CMD__NAND_RE_B 0x33c 0x724 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD4_CMD__UART3_TX_DATA 0x33c 0x724 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD4_CMD__UART3_RX_DATA 0x33c 0x724 0x90c 0x2 0x3 ++#define MX6QDL_PAD_SD4_CMD__GPIO7_IO09 0x33c 0x724 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD4_DAT0__SD4_DATA0 0x340 0x728 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD4_DAT0__NAND_DQS 0x340 0x728 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD4_DAT0__GPIO2_IO08 0x340 0x728 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD4_DAT1__SD4_DATA1 0x344 0x72c 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD4_DAT1__PWM3_OUT 0x344 0x72c 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD4_DAT1__GPIO2_IO09 0x344 0x72c 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD4_DAT2__SD4_DATA2 0x348 0x730 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD4_DAT2__PWM4_OUT 0x348 0x730 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD4_DAT2__GPIO2_IO10 0x348 0x730 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD4_DAT3__SD4_DATA3 0x34c 0x734 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD4_DAT3__GPIO2_IO11 0x34c 0x734 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD4_DAT4__SD4_DATA4 0x350 0x738 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA 0x350 0x738 0x904 0x2 0x6 ++#define MX6QDL_PAD_SD4_DAT4__UART2_TX_DATA 0x350 0x738 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD4_DAT4__GPIO2_IO12 0x350 0x738 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD4_DAT5__SD4_DATA5 0x354 0x73c 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD4_DAT5__UART2_RTS_B 0x354 0x73c 0x900 0x2 0x4 ++#define MX6QDL_PAD_SD4_DAT5__UART2_CTS_B 0x354 0x73c 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD4_DAT5__GPIO2_IO13 0x354 0x73c 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD4_DAT6__SD4_DATA6 0x358 0x740 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD4_DAT6__UART2_CTS_B 0x358 0x740 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD4_DAT6__UART2_RTS_B 0x358 0x740 0x900 0x2 0x5 ++#define MX6QDL_PAD_SD4_DAT6__GPIO2_IO14 0x358 0x740 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD4_DAT7__SD4_DATA7 0x35c 0x744 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA 0x35c 0x744 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD4_DAT7__UART2_RX_DATA 0x35c 0x744 0x904 0x2 0x7 ++#define MX6QDL_PAD_SD4_DAT7__GPIO2_IO15 0x35c 0x744 0x000 0x5 0x0 + + #endif /* __DTS_IMX6DL_PINFUNC_H */ +diff --git a/arch/arm/boot/dts/imx6dl-sabreauto.dts b/arch/arm/boot/dts/imx6dl-sabreauto.dts +index 7adcec3..a6ce7b4 100644 +--- a/arch/arm/boot/dts/imx6dl-sabreauto.dts ++++ b/arch/arm/boot/dts/imx6dl-sabreauto.dts +@@ -15,17 +15,3 @@ + model = "Freescale i.MX6 DualLite/Solo SABRE Automotive Board"; + compatible = "fsl,imx6dl-sabreauto", "fsl,imx6dl"; + }; +- +-&iomuxc { +- pinctrl-names = "default"; +- pinctrl-0 = <&pinctrl_hog>; +- +- hog { +- pinctrl_hog: hoggrp { +- fsl,pins = < +- MX6DL_PAD_NANDF_CS2__GPIO6_IO15 0x80000000 +- MX6DL_PAD_SD2_DAT2__GPIO1_IO13 0x80000000 +- >; +- }; +- }; +-}; +diff --git a/arch/arm/boot/dts/imx6dl-sabresd.dts b/arch/arm/boot/dts/imx6dl-sabresd.dts +index 7efb05d..1e45f2f 100644 +--- a/arch/arm/boot/dts/imx6dl-sabresd.dts ++++ b/arch/arm/boot/dts/imx6dl-sabresd.dts +@@ -15,21 +15,3 @@ + model = "Freescale i.MX6 DualLite SABRE Smart Device Board"; + compatible = "fsl,imx6dl-sabresd", "fsl,imx6dl"; + }; +- +-&iomuxc { +- pinctrl-names = "default"; +- pinctrl-0 = <&pinctrl_hog>; +- +- hog { +- pinctrl_hog: hoggrp { +- fsl,pins = < +- MX6DL_PAD_GPIO_4__GPIO1_IO04 0x80000000 +- MX6DL_PAD_GPIO_5__GPIO1_IO05 0x80000000 +- MX6DL_PAD_NANDF_D0__GPIO2_IO00 0x80000000 +- MX6DL_PAD_NANDF_D1__GPIO2_IO01 0x80000000 +- MX6DL_PAD_NANDF_D2__GPIO2_IO02 0x80000000 +- MX6DL_PAD_NANDF_D3__GPIO2_IO03 0x80000000 +- >; +- }; +- }; +-}; +diff --git a/arch/arm/boot/dts/imx6dl-wandboard.dts b/arch/arm/boot/dts/imx6dl-wandboard.dts +index bfc59c3..e672891 100644 +--- a/arch/arm/boot/dts/imx6dl-wandboard.dts ++++ b/arch/arm/boot/dts/imx6dl-wandboard.dts +@@ -10,6 +10,7 @@ + */ + /dts-v1/; + #include "imx6dl.dtsi" ++#include "imx6qdl-wandboard.dtsi" + + / { + model = "Wandboard i.MX6 Dual Lite Board"; +@@ -19,26 +20,3 @@ + reg = <0x10000000 0x40000000>; + }; + }; +- +-&fec { +- pinctrl-names = "default"; +- pinctrl-0 = <&pinctrl_enet_1>; +- phy-mode = "rgmii"; +- status = "okay"; +-}; +- +-&uart1 { +- pinctrl-names = "default"; +- pinctrl-0 = <&pinctrl_uart1_1>; +- status = "okay"; +-}; +- +-&usbh1 { +- status = "okay"; +-}; +- +-&usdhc3 { +- pinctrl-names = "default"; +- pinctrl-0 = <&pinctrl_usdhc3_2>; +- status = "okay"; +-}; +diff --git a/arch/arm/boot/dts/imx6dl.dtsi b/arch/arm/boot/dts/imx6dl.dtsi +index 62dc781..9e8ae11 100644 +--- a/arch/arm/boot/dts/imx6dl.dtsi ++++ b/arch/arm/boot/dts/imx6dl.dtsi +@@ -8,8 +8,8 @@ + * + */ + +-#include "imx6qdl.dtsi" + #include "imx6dl-pinfunc.h" ++#include "imx6qdl.dtsi" + + / { + cpus { +@@ -32,126 +32,15 @@ + }; + + soc { ++ ocram: sram@00900000 { ++ compatible = "mmio-sram"; ++ reg = <0x00900000 0x20000>; ++ clocks = <&clks 142>; ++ }; ++ + aips1: aips-bus@02000000 { + iomuxc: iomuxc@020e0000 { + compatible = "fsl,imx6dl-iomuxc"; +- reg = <0x020e0000 0x4000>; +- +- enet { +- pinctrl_enet_1: enetgrp-1 { +- fsl,pins = < +- MX6DL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0 +- MX6DL_PAD_ENET_MDC__ENET_MDC 0x1b0b0 +- MX6DL_PAD_RGMII_TXC__RGMII_TXC 0x1b0b0 +- MX6DL_PAD_RGMII_TD0__RGMII_TD0 0x1b0b0 +- MX6DL_PAD_RGMII_TD1__RGMII_TD1 0x1b0b0 +- MX6DL_PAD_RGMII_TD2__RGMII_TD2 0x1b0b0 +- MX6DL_PAD_RGMII_TD3__RGMII_TD3 0x1b0b0 +- MX6DL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b0b0 +- MX6DL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0 +- MX6DL_PAD_RGMII_RXC__RGMII_RXC 0x1b0b0 +- MX6DL_PAD_RGMII_RD0__RGMII_RD0 0x1b0b0 +- MX6DL_PAD_RGMII_RD1__RGMII_RD1 0x1b0b0 +- MX6DL_PAD_RGMII_RD2__RGMII_RD2 0x1b0b0 +- MX6DL_PAD_RGMII_RD3__RGMII_RD3 0x1b0b0 +- MX6DL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0 +- MX6DL_PAD_GPIO_16__ENET_REF_CLK 0x4001b0a8 +- >; +- }; +- +- pinctrl_enet_2: enetgrp-2 { +- fsl,pins = < +- MX6DL_PAD_KEY_COL1__ENET_MDIO 0x1b0b0 +- MX6DL_PAD_KEY_COL2__ENET_MDC 0x1b0b0 +- MX6DL_PAD_RGMII_TXC__RGMII_TXC 0x1b0b0 +- MX6DL_PAD_RGMII_TD0__RGMII_TD0 0x1b0b0 +- MX6DL_PAD_RGMII_TD1__RGMII_TD1 0x1b0b0 +- MX6DL_PAD_RGMII_TD2__RGMII_TD2 0x1b0b0 +- MX6DL_PAD_RGMII_TD3__RGMII_TD3 0x1b0b0 +- MX6DL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b0b0 +- MX6DL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0 +- MX6DL_PAD_RGMII_RXC__RGMII_RXC 0x1b0b0 +- MX6DL_PAD_RGMII_RD0__RGMII_RD0 0x1b0b0 +- MX6DL_PAD_RGMII_RD1__RGMII_RD1 0x1b0b0 +- MX6DL_PAD_RGMII_RD2__RGMII_RD2 0x1b0b0 +- MX6DL_PAD_RGMII_RD3__RGMII_RD3 0x1b0b0 +- MX6DL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0 +- >; +- }; +- }; +- +- uart1 { +- pinctrl_uart1_1: uart1grp-1 { +- fsl,pins = < +- MX6DL_PAD_CSI0_DAT10__UART1_TX_DATA 0x1b0b1 +- MX6DL_PAD_CSI0_DAT11__UART1_RX_DATA 0x1b0b1 +- >; +- }; +- }; +- +- uart4 { +- pinctrl_uart4_1: uart4grp-1 { +- fsl,pins = < +- MX6DL_PAD_KEY_COL0__UART4_TX_DATA 0x1b0b1 +- MX6DL_PAD_KEY_ROW0__UART4_RX_DATA 0x1b0b1 +- >; +- }; +- }; +- +- usbotg { +- pinctrl_usbotg_2: usbotggrp-2 { +- fsl,pins = < +- MX6DL_PAD_ENET_RX_ER__USB_OTG_ID 0x17059 +- >; +- }; +- }; +- +- usdhc2 { +- pinctrl_usdhc2_1: usdhc2grp-1 { +- fsl,pins = < +- MX6DL_PAD_SD2_CMD__SD2_CMD 0x17059 +- MX6DL_PAD_SD2_CLK__SD2_CLK 0x10059 +- MX6DL_PAD_SD2_DAT0__SD2_DATA0 0x17059 +- MX6DL_PAD_SD2_DAT1__SD2_DATA1 0x17059 +- MX6DL_PAD_SD2_DAT2__SD2_DATA2 0x17059 +- MX6DL_PAD_SD2_DAT3__SD2_DATA3 0x17059 +- MX6DL_PAD_NANDF_D4__SD2_DATA4 0x17059 +- MX6DL_PAD_NANDF_D5__SD2_DATA5 0x17059 +- MX6DL_PAD_NANDF_D6__SD2_DATA6 0x17059 +- MX6DL_PAD_NANDF_D7__SD2_DATA7 0x17059 +- >; +- }; +- }; +- +- usdhc3 { +- pinctrl_usdhc3_1: usdhc3grp-1 { +- fsl,pins = < +- MX6DL_PAD_SD3_CMD__SD3_CMD 0x17059 +- MX6DL_PAD_SD3_CLK__SD3_CLK 0x10059 +- MX6DL_PAD_SD3_DAT0__SD3_DATA0 0x17059 +- MX6DL_PAD_SD3_DAT1__SD3_DATA1 0x17059 +- MX6DL_PAD_SD3_DAT2__SD3_DATA2 0x17059 +- MX6DL_PAD_SD3_DAT3__SD3_DATA3 0x17059 +- MX6DL_PAD_SD3_DAT4__SD3_DATA4 0x17059 +- MX6DL_PAD_SD3_DAT5__SD3_DATA5 0x17059 +- MX6DL_PAD_SD3_DAT6__SD3_DATA6 0x17059 +- MX6DL_PAD_SD3_DAT7__SD3_DATA7 0x17059 +- >; +- }; +- +- pinctrl_usdhc3_2: usdhc3grp_2 { +- fsl,pins = < +- MX6DL_PAD_SD3_CMD__SD3_CMD 0x17059 +- MX6DL_PAD_SD3_CLK__SD3_CLK 0x10059 +- MX6DL_PAD_SD3_DAT0__SD3_DATA0 0x17059 +- MX6DL_PAD_SD3_DAT1__SD3_DATA1 0x17059 +- MX6DL_PAD_SD3_DAT2__SD3_DATA2 0x17059 +- MX6DL_PAD_SD3_DAT3__SD3_DATA3 0x17059 +- >; +- }; +- }; +- +- + }; + + pxp: pxp@020f0000 { +@@ -182,3 +71,20 @@ + }; + }; + }; ++ ++&ldb { ++ clocks = <&clks 33>, <&clks 34>, ++ <&clks 39>, <&clks 40>, ++ <&clks 135>, <&clks 136>; ++ clock-names = "di0_pll", "di1_pll", ++ "di0_sel", "di1_sel", ++ "di0", "di1"; ++ ++ lvds-channel@0 { ++ crtcs = <&ipu1 0>, <&ipu1 1>; ++ }; ++ ++ lvds-channel@1 { ++ crtcs = <&ipu1 0>, <&ipu1 1>; ++ }; ++}; +diff --git a/arch/arm/boot/dts/imx6q-arm2.dts b/arch/arm/boot/dts/imx6q-arm2.dts +index 4e54fde..edf1bd9 100644 +--- a/arch/arm/boot/dts/imx6q-arm2.dts ++++ b/arch/arm/boot/dts/imx6q-arm2.dts +@@ -57,7 +57,7 @@ + hog { + pinctrl_hog: hoggrp { + fsl,pins = < +- MX6Q_PAD_EIM_D25__GPIO3_IO25 0x80000000 ++ MX6QDL_PAD_EIM_D25__GPIO3_IO25 0x80000000 + >; + }; + }; +@@ -65,8 +65,8 @@ + arm2 { + pinctrl_usdhc3_arm2: usdhc3grp-arm2 { + fsl,pins = < +- MX6Q_PAD_NANDF_CS0__GPIO6_IO11 0x80000000 +- MX6Q_PAD_NANDF_CS1__GPIO6_IO14 0x80000000 ++ MX6QDL_PAD_NANDF_CS0__GPIO6_IO11 0x80000000 ++ MX6QDL_PAD_NANDF_CS1__GPIO6_IO14 0x80000000 + >; + }; + }; +@@ -97,6 +97,14 @@ + status = "okay"; + }; + ++&uart2 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_uart2_2>; ++ fsl,dte-mode; ++ fsl,uart-has-rtscts; ++ status = "okay"; ++}; ++ + &uart4 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart4_1>; +diff --git a/arch/arm/boot/dts/imx6q-pinfunc.h b/arch/arm/boot/dts/imx6q-pinfunc.h +index faea6e1..9bbe82b 100644 +--- a/arch/arm/boot/dts/imx6q-pinfunc.h ++++ b/arch/arm/boot/dts/imx6q-pinfunc.h +@@ -14,1028 +14,1032 @@ + * The pin function ID is a tuple of + * <mux_reg conf_reg input_reg mux_mode input_val> + */ +-#define MX6Q_PAD_SD2_DAT1__SD2_DATA1 0x04c 0x360 0x000 0x0 0x0 +-#define MX6Q_PAD_SD2_DAT1__ECSPI5_SS0 0x04c 0x360 0x834 0x1 0x0 +-#define MX6Q_PAD_SD2_DAT1__EIM_CS2_B 0x04c 0x360 0x000 0x2 0x0 +-#define MX6Q_PAD_SD2_DAT1__AUD4_TXFS 0x04c 0x360 0x7c8 0x3 0x0 +-#define MX6Q_PAD_SD2_DAT1__KEY_COL7 0x04c 0x360 0x8f0 0x4 0x0 +-#define MX6Q_PAD_SD2_DAT1__GPIO1_IO14 0x04c 0x360 0x000 0x5 0x0 +-#define MX6Q_PAD_SD2_DAT2__SD2_DATA2 0x050 0x364 0x000 0x0 0x0 +-#define MX6Q_PAD_SD2_DAT2__ECSPI5_SS1 0x050 0x364 0x838 0x1 0x0 +-#define MX6Q_PAD_SD2_DAT2__EIM_CS3_B 0x050 0x364 0x000 0x2 0x0 +-#define MX6Q_PAD_SD2_DAT2__AUD4_TXD 0x050 0x364 0x7b8 0x3 0x0 +-#define MX6Q_PAD_SD2_DAT2__KEY_ROW6 0x050 0x364 0x8f8 0x4 0x0 +-#define MX6Q_PAD_SD2_DAT2__GPIO1_IO13 0x050 0x364 0x000 0x5 0x0 +-#define MX6Q_PAD_SD2_DAT0__SD2_DATA0 0x054 0x368 0x000 0x0 0x0 +-#define MX6Q_PAD_SD2_DAT0__ECSPI5_MISO 0x054 0x368 0x82c 0x1 0x0 +-#define MX6Q_PAD_SD2_DAT0__AUD4_RXD 0x054 0x368 0x7b4 0x3 0x0 +-#define MX6Q_PAD_SD2_DAT0__KEY_ROW7 0x054 0x368 0x8fc 0x4 0x0 +-#define MX6Q_PAD_SD2_DAT0__GPIO1_IO15 0x054 0x368 0x000 0x5 0x0 +-#define MX6Q_PAD_SD2_DAT0__DCIC2_OUT 0x054 0x368 0x000 0x6 0x0 +-#define MX6Q_PAD_RGMII_TXC__USB_H2_DATA 0x058 0x36c 0x000 0x0 0x0 +-#define MX6Q_PAD_RGMII_TXC__RGMII_TXC 0x058 0x36c 0x000 0x1 0x0 +-#define MX6Q_PAD_RGMII_TXC__SPDIF_EXT_CLK 0x058 0x36c 0x918 0x2 0x0 +-#define MX6Q_PAD_RGMII_TXC__GPIO6_IO19 0x058 0x36c 0x000 0x5 0x0 +-#define MX6Q_PAD_RGMII_TXC__XTALOSC_REF_CLK_24M 0x058 0x36c 0x000 0x7 0x0 +-#define MX6Q_PAD_RGMII_TD0__HSI_TX_READY 0x05c 0x370 0x000 0x0 0x0 +-#define MX6Q_PAD_RGMII_TD0__RGMII_TD0 0x05c 0x370 0x000 0x1 0x0 +-#define MX6Q_PAD_RGMII_TD0__GPIO6_IO20 0x05c 0x370 0x000 0x5 0x0 +-#define MX6Q_PAD_RGMII_TD1__HSI_RX_FLAG 0x060 0x374 0x000 0x0 0x0 +-#define MX6Q_PAD_RGMII_TD1__RGMII_TD1 0x060 0x374 0x000 0x1 0x0 +-#define MX6Q_PAD_RGMII_TD1__GPIO6_IO21 0x060 0x374 0x000 0x5 0x0 +-#define MX6Q_PAD_RGMII_TD2__HSI_RX_DATA 0x064 0x378 0x000 0x0 0x0 +-#define MX6Q_PAD_RGMII_TD2__RGMII_TD2 0x064 0x378 0x000 0x1 0x0 +-#define MX6Q_PAD_RGMII_TD2__GPIO6_IO22 0x064 0x378 0x000 0x5 0x0 +-#define MX6Q_PAD_RGMII_TD3__HSI_RX_WAKE 0x068 0x37c 0x000 0x0 0x0 +-#define MX6Q_PAD_RGMII_TD3__RGMII_TD3 0x068 0x37c 0x000 0x1 0x0 +-#define MX6Q_PAD_RGMII_TD3__GPIO6_IO23 0x068 0x37c 0x000 0x5 0x0 +-#define MX6Q_PAD_RGMII_RX_CTL__USB_H3_DATA 0x06c 0x380 0x000 0x0 0x0 +-#define MX6Q_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x06c 0x380 0x858 0x1 0x0 +-#define MX6Q_PAD_RGMII_RX_CTL__GPIO6_IO24 0x06c 0x380 0x000 0x5 0x0 +-#define MX6Q_PAD_RGMII_RD0__HSI_RX_READY 0x070 0x384 0x000 0x0 0x0 +-#define MX6Q_PAD_RGMII_RD0__RGMII_RD0 0x070 0x384 0x848 0x1 0x0 +-#define MX6Q_PAD_RGMII_RD0__GPIO6_IO25 0x070 0x384 0x000 0x5 0x0 +-#define MX6Q_PAD_RGMII_TX_CTL__USB_H2_STROBE 0x074 0x388 0x000 0x0 0x0 +-#define MX6Q_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x074 0x388 0x000 0x1 0x0 +-#define MX6Q_PAD_RGMII_TX_CTL__GPIO6_IO26 0x074 0x388 0x000 0x5 0x0 +-#define MX6Q_PAD_RGMII_TX_CTL__ENET_REF_CLK 0x074 0x388 0x83c 0x7 0x0 +-#define MX6Q_PAD_RGMII_RD1__HSI_TX_FLAG 0x078 0x38c 0x000 0x0 0x0 +-#define MX6Q_PAD_RGMII_RD1__RGMII_RD1 0x078 0x38c 0x84c 0x1 0x0 +-#define MX6Q_PAD_RGMII_RD1__GPIO6_IO27 0x078 0x38c 0x000 0x5 0x0 +-#define MX6Q_PAD_RGMII_RD2__HSI_TX_DATA 0x07c 0x390 0x000 0x0 0x0 +-#define MX6Q_PAD_RGMII_RD2__RGMII_RD2 0x07c 0x390 0x850 0x1 0x0 +-#define MX6Q_PAD_RGMII_RD2__GPIO6_IO28 0x07c 0x390 0x000 0x5 0x0 +-#define MX6Q_PAD_RGMII_RD3__HSI_TX_WAKE 0x080 0x394 0x000 0x0 0x0 +-#define MX6Q_PAD_RGMII_RD3__RGMII_RD3 0x080 0x394 0x854 0x1 0x0 +-#define MX6Q_PAD_RGMII_RD3__GPIO6_IO29 0x080 0x394 0x000 0x5 0x0 +-#define MX6Q_PAD_RGMII_RXC__USB_H3_STROBE 0x084 0x398 0x000 0x0 0x0 +-#define MX6Q_PAD_RGMII_RXC__RGMII_RXC 0x084 0x398 0x844 0x1 0x0 +-#define MX6Q_PAD_RGMII_RXC__GPIO6_IO30 0x084 0x398 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_A25__EIM_ADDR25 0x088 0x39c 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_A25__ECSPI4_SS1 0x088 0x39c 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_A25__ECSPI2_RDY 0x088 0x39c 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_A25__IPU1_DI1_PIN12 0x088 0x39c 0x000 0x3 0x0 +-#define MX6Q_PAD_EIM_A25__IPU1_DI0_D1_CS 0x088 0x39c 0x000 0x4 0x0 +-#define MX6Q_PAD_EIM_A25__GPIO5_IO02 0x088 0x39c 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_A25__HDMI_TX_CEC_LINE 0x088 0x39c 0x88c 0x6 0x0 +-#define MX6Q_PAD_EIM_EB2__EIM_EB2_B 0x08c 0x3a0 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_EB2__ECSPI1_SS0 0x08c 0x3a0 0x800 0x1 0x0 +-#define MX6Q_PAD_EIM_EB2__IPU2_CSI1_DATA19 0x08c 0x3a0 0x8d4 0x3 0x0 +-#define MX6Q_PAD_EIM_EB2__HDMI_TX_DDC_SCL 0x08c 0x3a0 0x890 0x4 0x0 +-#define MX6Q_PAD_EIM_EB2__GPIO2_IO30 0x08c 0x3a0 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_EB2__I2C2_SCL 0x08c 0x3a0 0x8a0 0x6 0x0 +-#define MX6Q_PAD_EIM_EB2__SRC_BOOT_CFG30 0x08c 0x3a0 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_D16__EIM_DATA16 0x090 0x3a4 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_D16__ECSPI1_SCLK 0x090 0x3a4 0x7f4 0x1 0x0 +-#define MX6Q_PAD_EIM_D16__IPU1_DI0_PIN05 0x090 0x3a4 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_D16__IPU2_CSI1_DATA18 0x090 0x3a4 0x8d0 0x3 0x0 +-#define MX6Q_PAD_EIM_D16__HDMI_TX_DDC_SDA 0x090 0x3a4 0x894 0x4 0x0 +-#define MX6Q_PAD_EIM_D16__GPIO3_IO16 0x090 0x3a4 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_D16__I2C2_SDA 0x090 0x3a4 0x8a4 0x6 0x0 +-#define MX6Q_PAD_EIM_D17__EIM_DATA17 0x094 0x3a8 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_D17__ECSPI1_MISO 0x094 0x3a8 0x7f8 0x1 0x0 +-#define MX6Q_PAD_EIM_D17__IPU1_DI0_PIN06 0x094 0x3a8 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_D17__IPU2_CSI1_PIXCLK 0x094 0x3a8 0x8e0 0x3 0x0 +-#define MX6Q_PAD_EIM_D17__DCIC1_OUT 0x094 0x3a8 0x000 0x4 0x0 +-#define MX6Q_PAD_EIM_D17__GPIO3_IO17 0x094 0x3a8 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_D17__I2C3_SCL 0x094 0x3a8 0x8a8 0x6 0x0 +-#define MX6Q_PAD_EIM_D18__EIM_DATA18 0x098 0x3ac 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_D18__ECSPI1_MOSI 0x098 0x3ac 0x7fc 0x1 0x0 +-#define MX6Q_PAD_EIM_D18__IPU1_DI0_PIN07 0x098 0x3ac 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_D18__IPU2_CSI1_DATA17 0x098 0x3ac 0x8cc 0x3 0x0 +-#define MX6Q_PAD_EIM_D18__IPU1_DI1_D0_CS 0x098 0x3ac 0x000 0x4 0x0 +-#define MX6Q_PAD_EIM_D18__GPIO3_IO18 0x098 0x3ac 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_D18__I2C3_SDA 0x098 0x3ac 0x8ac 0x6 0x0 +-#define MX6Q_PAD_EIM_D19__EIM_DATA19 0x09c 0x3b0 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_D19__ECSPI1_SS1 0x09c 0x3b0 0x804 0x1 0x0 +-#define MX6Q_PAD_EIM_D19__IPU1_DI0_PIN08 0x09c 0x3b0 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_D19__IPU2_CSI1_DATA16 0x09c 0x3b0 0x8c8 0x3 0x0 +-#define MX6Q_PAD_EIM_D19__UART1_CTS_B 0x09c 0x3b0 0x000 0x4 0x0 +-#define MX6Q_PAD_EIM_D19__UART1_RTS_B 0x09c 0x3b0 0x91c 0x4 0x0 +-#define MX6Q_PAD_EIM_D19__GPIO3_IO19 0x09c 0x3b0 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_D19__EPIT1_OUT 0x09c 0x3b0 0x000 0x6 0x0 +-#define MX6Q_PAD_EIM_D20__EIM_DATA20 0x0a0 0x3b4 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_D20__ECSPI4_SS0 0x0a0 0x3b4 0x824 0x1 0x0 +-#define MX6Q_PAD_EIM_D20__IPU1_DI0_PIN16 0x0a0 0x3b4 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_D20__IPU2_CSI1_DATA15 0x0a0 0x3b4 0x8c4 0x3 0x0 +-#define MX6Q_PAD_EIM_D20__UART1_RTS_B 0x0a0 0x3b4 0x91c 0x4 0x1 +-#define MX6Q_PAD_EIM_D20__UART1_CTS_B 0x0a0 0x3b4 0x000 0x4 0x0 +-#define MX6Q_PAD_EIM_D20__GPIO3_IO20 0x0a0 0x3b4 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_D20__EPIT2_OUT 0x0a0 0x3b4 0x000 0x6 0x0 +-#define MX6Q_PAD_EIM_D21__EIM_DATA21 0x0a4 0x3b8 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_D21__ECSPI4_SCLK 0x0a4 0x3b8 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_D21__IPU1_DI0_PIN17 0x0a4 0x3b8 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_D21__IPU2_CSI1_DATA11 0x0a4 0x3b8 0x8b4 0x3 0x0 +-#define MX6Q_PAD_EIM_D21__USB_OTG_OC 0x0a4 0x3b8 0x944 0x4 0x0 +-#define MX6Q_PAD_EIM_D21__GPIO3_IO21 0x0a4 0x3b8 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_D21__I2C1_SCL 0x0a4 0x3b8 0x898 0x6 0x0 +-#define MX6Q_PAD_EIM_D21__SPDIF_IN 0x0a4 0x3b8 0x914 0x7 0x0 +-#define MX6Q_PAD_EIM_D22__EIM_DATA22 0x0a8 0x3bc 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_D22__ECSPI4_MISO 0x0a8 0x3bc 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_D22__IPU1_DI0_PIN01 0x0a8 0x3bc 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_D22__IPU2_CSI1_DATA10 0x0a8 0x3bc 0x8b0 0x3 0x0 +-#define MX6Q_PAD_EIM_D22__USB_OTG_PWR 0x0a8 0x3bc 0x000 0x4 0x0 +-#define MX6Q_PAD_EIM_D22__GPIO3_IO22 0x0a8 0x3bc 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_D22__SPDIF_OUT 0x0a8 0x3bc 0x000 0x6 0x0 +-#define MX6Q_PAD_EIM_D23__EIM_DATA23 0x0ac 0x3c0 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_D23__IPU1_DI0_D0_CS 0x0ac 0x3c0 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_D23__UART3_CTS_B 0x0ac 0x3c0 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_D23__UART3_RTS_B 0x0ac 0x3c0 0x92c 0x2 0x0 +-#define MX6Q_PAD_EIM_D23__UART1_DCD_B 0x0ac 0x3c0 0x000 0x3 0x0 +-#define MX6Q_PAD_EIM_D23__IPU2_CSI1_DATA_EN 0x0ac 0x3c0 0x8d8 0x4 0x0 +-#define MX6Q_PAD_EIM_D23__GPIO3_IO23 0x0ac 0x3c0 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_D23__IPU1_DI1_PIN02 0x0ac 0x3c0 0x000 0x6 0x0 +-#define MX6Q_PAD_EIM_D23__IPU1_DI1_PIN14 0x0ac 0x3c0 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_EB3__EIM_EB3_B 0x0b0 0x3c4 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_EB3__ECSPI4_RDY 0x0b0 0x3c4 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_EB3__UART3_RTS_B 0x0b0 0x3c4 0x92c 0x2 0x1 +-#define MX6Q_PAD_EIM_EB3__UART3_CTS_B 0x0b0 0x3c4 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_EB3__UART1_RI_B 0x0b0 0x3c4 0x000 0x3 0x0 +-#define MX6Q_PAD_EIM_EB3__IPU2_CSI1_HSYNC 0x0b0 0x3c4 0x8dc 0x4 0x0 +-#define MX6Q_PAD_EIM_EB3__GPIO2_IO31 0x0b0 0x3c4 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_EB3__IPU1_DI1_PIN03 0x0b0 0x3c4 0x000 0x6 0x0 +-#define MX6Q_PAD_EIM_EB3__SRC_BOOT_CFG31 0x0b0 0x3c4 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_D24__EIM_DATA24 0x0b4 0x3c8 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_D24__ECSPI4_SS2 0x0b4 0x3c8 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_D24__UART3_TX_DATA 0x0b4 0x3c8 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_D24__UART3_RX_DATA 0x0b4 0x3c8 0x930 0x2 0x0 +-#define MX6Q_PAD_EIM_D24__ECSPI1_SS2 0x0b4 0x3c8 0x808 0x3 0x0 +-#define MX6Q_PAD_EIM_D24__ECSPI2_SS2 0x0b4 0x3c8 0x000 0x4 0x0 +-#define MX6Q_PAD_EIM_D24__GPIO3_IO24 0x0b4 0x3c8 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_D24__AUD5_RXFS 0x0b4 0x3c8 0x7d8 0x6 0x0 +-#define MX6Q_PAD_EIM_D24__UART1_DTR_B 0x0b4 0x3c8 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_D25__EIM_DATA25 0x0b8 0x3cc 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_D25__ECSPI4_SS3 0x0b8 0x3cc 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_D25__UART3_RX_DATA 0x0b8 0x3cc 0x930 0x2 0x1 +-#define MX6Q_PAD_EIM_D25__UART3_TX_DATA 0x0b8 0x3cc 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_D25__ECSPI1_SS3 0x0b8 0x3cc 0x80c 0x3 0x0 +-#define MX6Q_PAD_EIM_D25__ECSPI2_SS3 0x0b8 0x3cc 0x000 0x4 0x0 +-#define MX6Q_PAD_EIM_D25__GPIO3_IO25 0x0b8 0x3cc 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_D25__AUD5_RXC 0x0b8 0x3cc 0x7d4 0x6 0x0 +-#define MX6Q_PAD_EIM_D25__UART1_DSR_B 0x0b8 0x3cc 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_D26__EIM_DATA26 0x0bc 0x3d0 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_D26__IPU1_DI1_PIN11 0x0bc 0x3d0 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_D26__IPU1_CSI0_DATA01 0x0bc 0x3d0 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_D26__IPU2_CSI1_DATA14 0x0bc 0x3d0 0x8c0 0x3 0x0 +-#define MX6Q_PAD_EIM_D26__UART2_TX_DATA 0x0bc 0x3d0 0x000 0x4 0x0 +-#define MX6Q_PAD_EIM_D26__UART2_RX_DATA 0x0bc 0x3d0 0x928 0x4 0x0 +-#define MX6Q_PAD_EIM_D26__GPIO3_IO26 0x0bc 0x3d0 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_D26__IPU1_SISG2 0x0bc 0x3d0 0x000 0x6 0x0 +-#define MX6Q_PAD_EIM_D26__IPU1_DISP1_DATA22 0x0bc 0x3d0 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_D27__EIM_DATA27 0x0c0 0x3d4 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_D27__IPU1_DI1_PIN13 0x0c0 0x3d4 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_D27__IPU1_CSI0_DATA00 0x0c0 0x3d4 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_D27__IPU2_CSI1_DATA13 0x0c0 0x3d4 0x8bc 0x3 0x0 +-#define MX6Q_PAD_EIM_D27__UART2_RX_DATA 0x0c0 0x3d4 0x928 0x4 0x1 +-#define MX6Q_PAD_EIM_D27__UART2_TX_DATA 0x0c0 0x3d4 0x000 0x4 0x0 +-#define MX6Q_PAD_EIM_D27__GPIO3_IO27 0x0c0 0x3d4 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_D27__IPU1_SISG3 0x0c0 0x3d4 0x000 0x6 0x0 +-#define MX6Q_PAD_EIM_D27__IPU1_DISP1_DATA23 0x0c0 0x3d4 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_D28__EIM_DATA28 0x0c4 0x3d8 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_D28__I2C1_SDA 0x0c4 0x3d8 0x89c 0x1 0x0 +-#define MX6Q_PAD_EIM_D28__ECSPI4_MOSI 0x0c4 0x3d8 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_D28__IPU2_CSI1_DATA12 0x0c4 0x3d8 0x8b8 0x3 0x0 +-#define MX6Q_PAD_EIM_D28__UART2_CTS_B 0x0c4 0x3d8 0x000 0x4 0x0 +-#define MX6Q_PAD_EIM_D28__UART2_RTS_B 0x0c4 0x3d8 0x924 0x4 0x0 +-#define MX6Q_PAD_EIM_D28__GPIO3_IO28 0x0c4 0x3d8 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_D28__IPU1_EXT_TRIG 0x0c4 0x3d8 0x000 0x6 0x0 +-#define MX6Q_PAD_EIM_D28__IPU1_DI0_PIN13 0x0c4 0x3d8 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_D29__EIM_DATA29 0x0c8 0x3dc 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_D29__IPU1_DI1_PIN15 0x0c8 0x3dc 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_D29__ECSPI4_SS0 0x0c8 0x3dc 0x824 0x2 0x1 +-#define MX6Q_PAD_EIM_D29__UART2_RTS_B 0x0c8 0x3dc 0x924 0x4 0x1 +-#define MX6Q_PAD_EIM_D29__UART2_CTS_B 0x0c8 0x3dc 0x000 0x4 0x0 +-#define MX6Q_PAD_EIM_D29__GPIO3_IO29 0x0c8 0x3dc 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_D29__IPU2_CSI1_VSYNC 0x0c8 0x3dc 0x8e4 0x6 0x0 +-#define MX6Q_PAD_EIM_D29__IPU1_DI0_PIN14 0x0c8 0x3dc 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_D30__EIM_DATA30 0x0cc 0x3e0 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_D30__IPU1_DISP1_DATA21 0x0cc 0x3e0 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_D30__IPU1_DI0_PIN11 0x0cc 0x3e0 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_D30__IPU1_CSI0_DATA03 0x0cc 0x3e0 0x000 0x3 0x0 +-#define MX6Q_PAD_EIM_D30__UART3_CTS_B 0x0cc 0x3e0 0x000 0x4 0x0 +-#define MX6Q_PAD_EIM_D30__UART3_RTS_B 0x0cc 0x3e0 0x92c 0x4 0x2 +-#define MX6Q_PAD_EIM_D30__GPIO3_IO30 0x0cc 0x3e0 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_D30__USB_H1_OC 0x0cc 0x3e0 0x948 0x6 0x0 +-#define MX6Q_PAD_EIM_D31__EIM_DATA31 0x0d0 0x3e4 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_D31__IPU1_DISP1_DATA20 0x0d0 0x3e4 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_D31__IPU1_DI0_PIN12 0x0d0 0x3e4 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_D31__IPU1_CSI0_DATA02 0x0d0 0x3e4 0x000 0x3 0x0 +-#define MX6Q_PAD_EIM_D31__UART3_RTS_B 0x0d0 0x3e4 0x92c 0x4 0x3 +-#define MX6Q_PAD_EIM_D31__UART3_CTS_B 0x0d0 0x3e4 0x000 0x4 0x0 +-#define MX6Q_PAD_EIM_D31__GPIO3_IO31 0x0d0 0x3e4 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_D31__USB_H1_PWR 0x0d0 0x3e4 0x000 0x6 0x0 +-#define MX6Q_PAD_EIM_A24__EIM_ADDR24 0x0d4 0x3e8 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_A24__IPU1_DISP1_DATA19 0x0d4 0x3e8 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_A24__IPU2_CSI1_DATA19 0x0d4 0x3e8 0x8d4 0x2 0x1 +-#define MX6Q_PAD_EIM_A24__IPU2_SISG2 0x0d4 0x3e8 0x000 0x3 0x0 +-#define MX6Q_PAD_EIM_A24__IPU1_SISG2 0x0d4 0x3e8 0x000 0x4 0x0 +-#define MX6Q_PAD_EIM_A24__GPIO5_IO04 0x0d4 0x3e8 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_A24__SRC_BOOT_CFG24 0x0d4 0x3e8 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_A23__EIM_ADDR23 0x0d8 0x3ec 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_A23__IPU1_DISP1_DATA18 0x0d8 0x3ec 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_A23__IPU2_CSI1_DATA18 0x0d8 0x3ec 0x8d0 0x2 0x1 +-#define MX6Q_PAD_EIM_A23__IPU2_SISG3 0x0d8 0x3ec 0x000 0x3 0x0 +-#define MX6Q_PAD_EIM_A23__IPU1_SISG3 0x0d8 0x3ec 0x000 0x4 0x0 +-#define MX6Q_PAD_EIM_A23__GPIO6_IO06 0x0d8 0x3ec 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_A23__SRC_BOOT_CFG23 0x0d8 0x3ec 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_A22__EIM_ADDR22 0x0dc 0x3f0 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_A22__IPU1_DISP1_DATA17 0x0dc 0x3f0 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_A22__IPU2_CSI1_DATA17 0x0dc 0x3f0 0x8cc 0x2 0x1 +-#define MX6Q_PAD_EIM_A22__GPIO2_IO16 0x0dc 0x3f0 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_A22__SRC_BOOT_CFG22 0x0dc 0x3f0 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_A21__EIM_ADDR21 0x0e0 0x3f4 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_A21__IPU1_DISP1_DATA16 0x0e0 0x3f4 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_A21__IPU2_CSI1_DATA16 0x0e0 0x3f4 0x8c8 0x2 0x1 +-#define MX6Q_PAD_EIM_A21__GPIO2_IO17 0x0e0 0x3f4 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_A21__SRC_BOOT_CFG21 0x0e0 0x3f4 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_A20__EIM_ADDR20 0x0e4 0x3f8 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_A20__IPU1_DISP1_DATA15 0x0e4 0x3f8 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_A20__IPU2_CSI1_DATA15 0x0e4 0x3f8 0x8c4 0x2 0x1 +-#define MX6Q_PAD_EIM_A20__GPIO2_IO18 0x0e4 0x3f8 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_A20__SRC_BOOT_CFG20 0x0e4 0x3f8 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_A19__EIM_ADDR19 0x0e8 0x3fc 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_A19__IPU1_DISP1_DATA14 0x0e8 0x3fc 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_A19__IPU2_CSI1_DATA14 0x0e8 0x3fc 0x8c0 0x2 0x1 +-#define MX6Q_PAD_EIM_A19__GPIO2_IO19 0x0e8 0x3fc 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_A19__SRC_BOOT_CFG19 0x0e8 0x3fc 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_A18__EIM_ADDR18 0x0ec 0x400 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_A18__IPU1_DISP1_DATA13 0x0ec 0x400 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_A18__IPU2_CSI1_DATA13 0x0ec 0x400 0x8bc 0x2 0x1 +-#define MX6Q_PAD_EIM_A18__GPIO2_IO20 0x0ec 0x400 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_A18__SRC_BOOT_CFG18 0x0ec 0x400 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_A17__EIM_ADDR17 0x0f0 0x404 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_A17__IPU1_DISP1_DATA12 0x0f0 0x404 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_A17__IPU2_CSI1_DATA12 0x0f0 0x404 0x8b8 0x2 0x1 +-#define MX6Q_PAD_EIM_A17__GPIO2_IO21 0x0f0 0x404 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_A17__SRC_BOOT_CFG17 0x0f0 0x404 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_A16__EIM_ADDR16 0x0f4 0x408 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_A16__IPU1_DI1_DISP_CLK 0x0f4 0x408 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_A16__IPU2_CSI1_PIXCLK 0x0f4 0x408 0x8e0 0x2 0x1 +-#define MX6Q_PAD_EIM_A16__GPIO2_IO22 0x0f4 0x408 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_A16__SRC_BOOT_CFG16 0x0f4 0x408 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_CS0__EIM_CS0_B 0x0f8 0x40c 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_CS0__IPU1_DI1_PIN05 0x0f8 0x40c 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_CS0__ECSPI2_SCLK 0x0f8 0x40c 0x810 0x2 0x0 +-#define MX6Q_PAD_EIM_CS0__GPIO2_IO23 0x0f8 0x40c 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_CS1__EIM_CS1_B 0x0fc 0x410 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_CS1__IPU1_DI1_PIN06 0x0fc 0x410 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_CS1__ECSPI2_MOSI 0x0fc 0x410 0x818 0x2 0x0 +-#define MX6Q_PAD_EIM_CS1__GPIO2_IO24 0x0fc 0x410 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_OE__EIM_OE_B 0x100 0x414 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_OE__IPU1_DI1_PIN07 0x100 0x414 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_OE__ECSPI2_MISO 0x100 0x414 0x814 0x2 0x0 +-#define MX6Q_PAD_EIM_OE__GPIO2_IO25 0x100 0x414 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_RW__EIM_RW 0x104 0x418 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_RW__IPU1_DI1_PIN08 0x104 0x418 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_RW__ECSPI2_SS0 0x104 0x418 0x81c 0x2 0x0 +-#define MX6Q_PAD_EIM_RW__GPIO2_IO26 0x104 0x418 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_RW__SRC_BOOT_CFG29 0x104 0x418 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_LBA__EIM_LBA_B 0x108 0x41c 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_LBA__IPU1_DI1_PIN17 0x108 0x41c 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_LBA__ECSPI2_SS1 0x108 0x41c 0x820 0x2 0x0 +-#define MX6Q_PAD_EIM_LBA__GPIO2_IO27 0x108 0x41c 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_LBA__SRC_BOOT_CFG26 0x108 0x41c 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_EB0__EIM_EB0_B 0x10c 0x420 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_EB0__IPU1_DISP1_DATA11 0x10c 0x420 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_EB0__IPU2_CSI1_DATA11 0x10c 0x420 0x8b4 0x2 0x1 +-#define MX6Q_PAD_EIM_EB0__CCM_PMIC_READY 0x10c 0x420 0x7f0 0x4 0x0 +-#define MX6Q_PAD_EIM_EB0__GPIO2_IO28 0x10c 0x420 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_EB0__SRC_BOOT_CFG27 0x10c 0x420 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_EB1__EIM_EB1_B 0x110 0x424 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_EB1__IPU1_DISP1_DATA10 0x110 0x424 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_EB1__IPU2_CSI1_DATA10 0x110 0x424 0x8b0 0x2 0x1 +-#define MX6Q_PAD_EIM_EB1__GPIO2_IO29 0x110 0x424 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_EB1__SRC_BOOT_CFG28 0x110 0x424 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_DA0__EIM_AD00 0x114 0x428 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_DA0__IPU1_DISP1_DATA09 0x114 0x428 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_DA0__IPU2_CSI1_DATA09 0x114 0x428 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_DA0__GPIO3_IO00 0x114 0x428 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_DA0__SRC_BOOT_CFG00 0x114 0x428 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_DA1__EIM_AD01 0x118 0x42c 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_DA1__IPU1_DISP1_DATA08 0x118 0x42c 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_DA1__IPU2_CSI1_DATA08 0x118 0x42c 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_DA1__GPIO3_IO01 0x118 0x42c 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_DA1__SRC_BOOT_CFG01 0x118 0x42c 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_DA2__EIM_AD02 0x11c 0x430 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_DA2__IPU1_DISP1_DATA07 0x11c 0x430 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_DA2__IPU2_CSI1_DATA07 0x11c 0x430 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_DA2__GPIO3_IO02 0x11c 0x430 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_DA2__SRC_BOOT_CFG02 0x11c 0x430 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_DA3__EIM_AD03 0x120 0x434 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_DA3__IPU1_DISP1_DATA06 0x120 0x434 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_DA3__IPU2_CSI1_DATA06 0x120 0x434 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_DA3__GPIO3_IO03 0x120 0x434 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_DA3__SRC_BOOT_CFG03 0x120 0x434 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_DA4__EIM_AD04 0x124 0x438 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_DA4__IPU1_DISP1_DATA05 0x124 0x438 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_DA4__IPU2_CSI1_DATA05 0x124 0x438 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_DA4__GPIO3_IO04 0x124 0x438 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_DA4__SRC_BOOT_CFG04 0x124 0x438 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_DA5__EIM_AD05 0x128 0x43c 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_DA5__IPU1_DISP1_DATA04 0x128 0x43c 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_DA5__IPU2_CSI1_DATA04 0x128 0x43c 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_DA5__GPIO3_IO05 0x128 0x43c 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_DA5__SRC_BOOT_CFG05 0x128 0x43c 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_DA6__EIM_AD06 0x12c 0x440 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_DA6__IPU1_DISP1_DATA03 0x12c 0x440 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_DA6__IPU2_CSI1_DATA03 0x12c 0x440 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_DA6__GPIO3_IO06 0x12c 0x440 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_DA6__SRC_BOOT_CFG06 0x12c 0x440 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_DA7__EIM_AD07 0x130 0x444 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_DA7__IPU1_DISP1_DATA02 0x130 0x444 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_DA7__IPU2_CSI1_DATA02 0x130 0x444 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_DA7__GPIO3_IO07 0x130 0x444 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_DA7__SRC_BOOT_CFG07 0x130 0x444 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_DA8__EIM_AD08 0x134 0x448 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_DA8__IPU1_DISP1_DATA01 0x134 0x448 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_DA8__IPU2_CSI1_DATA01 0x134 0x448 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_DA8__GPIO3_IO08 0x134 0x448 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_DA8__SRC_BOOT_CFG08 0x134 0x448 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_DA9__EIM_AD09 0x138 0x44c 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_DA9__IPU1_DISP1_DATA00 0x138 0x44c 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_DA9__IPU2_CSI1_DATA00 0x138 0x44c 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_DA9__GPIO3_IO09 0x138 0x44c 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_DA9__SRC_BOOT_CFG09 0x138 0x44c 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_DA10__EIM_AD10 0x13c 0x450 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_DA10__IPU1_DI1_PIN15 0x13c 0x450 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_DA10__IPU2_CSI1_DATA_EN 0x13c 0x450 0x8d8 0x2 0x1 +-#define MX6Q_PAD_EIM_DA10__GPIO3_IO10 0x13c 0x450 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_DA10__SRC_BOOT_CFG10 0x13c 0x450 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_DA11__EIM_AD11 0x140 0x454 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_DA11__IPU1_DI1_PIN02 0x140 0x454 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_DA11__IPU2_CSI1_HSYNC 0x140 0x454 0x8dc 0x2 0x1 +-#define MX6Q_PAD_EIM_DA11__GPIO3_IO11 0x140 0x454 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_DA11__SRC_BOOT_CFG11 0x140 0x454 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_DA12__EIM_AD12 0x144 0x458 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_DA12__IPU1_DI1_PIN03 0x144 0x458 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_DA12__IPU2_CSI1_VSYNC 0x144 0x458 0x8e4 0x2 0x1 +-#define MX6Q_PAD_EIM_DA12__GPIO3_IO12 0x144 0x458 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_DA12__SRC_BOOT_CFG12 0x144 0x458 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_DA13__EIM_AD13 0x148 0x45c 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_DA13__IPU1_DI1_D0_CS 0x148 0x45c 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_DA13__GPIO3_IO13 0x148 0x45c 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_DA13__SRC_BOOT_CFG13 0x148 0x45c 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_DA14__EIM_AD14 0x14c 0x460 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_DA14__IPU1_DI1_D1_CS 0x14c 0x460 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_DA14__GPIO3_IO14 0x14c 0x460 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_DA14__SRC_BOOT_CFG14 0x14c 0x460 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_DA15__EIM_AD15 0x150 0x464 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_DA15__IPU1_DI1_PIN01 0x150 0x464 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_DA15__IPU1_DI1_PIN04 0x150 0x464 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_DA15__GPIO3_IO15 0x150 0x464 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_DA15__SRC_BOOT_CFG15 0x150 0x464 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_WAIT__EIM_WAIT_B 0x154 0x468 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_WAIT__EIM_DTACK_B 0x154 0x468 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_WAIT__GPIO5_IO00 0x154 0x468 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_WAIT__SRC_BOOT_CFG25 0x154 0x468 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_BCLK__EIM_BCLK 0x158 0x46c 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_BCLK__IPU1_DI1_PIN16 0x158 0x46c 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_BCLK__GPIO6_IO31 0x158 0x46c 0x000 0x5 0x0 +-#define MX6Q_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK 0x15c 0x470 0x000 0x0 0x0 +-#define MX6Q_PAD_DI0_DISP_CLK__IPU2_DI0_DISP_CLK 0x15c 0x470 0x000 0x1 0x0 +-#define MX6Q_PAD_DI0_DISP_CLK__GPIO4_IO16 0x15c 0x470 0x000 0x5 0x0 +-#define MX6Q_PAD_DI0_PIN15__IPU1_DI0_PIN15 0x160 0x474 0x000 0x0 0x0 +-#define MX6Q_PAD_DI0_PIN15__IPU2_DI0_PIN15 0x160 0x474 0x000 0x1 0x0 +-#define MX6Q_PAD_DI0_PIN15__AUD6_TXC 0x160 0x474 0x000 0x2 0x0 +-#define MX6Q_PAD_DI0_PIN15__GPIO4_IO17 0x160 0x474 0x000 0x5 0x0 +-#define MX6Q_PAD_DI0_PIN2__IPU1_DI0_PIN02 0x164 0x478 0x000 0x0 0x0 +-#define MX6Q_PAD_DI0_PIN2__IPU2_DI0_PIN02 0x164 0x478 0x000 0x1 0x0 +-#define MX6Q_PAD_DI0_PIN2__AUD6_TXD 0x164 0x478 0x000 0x2 0x0 +-#define MX6Q_PAD_DI0_PIN2__GPIO4_IO18 0x164 0x478 0x000 0x5 0x0 +-#define MX6Q_PAD_DI0_PIN3__IPU1_DI0_PIN03 0x168 0x47c 0x000 0x0 0x0 +-#define MX6Q_PAD_DI0_PIN3__IPU2_DI0_PIN03 0x168 0x47c 0x000 0x1 0x0 +-#define MX6Q_PAD_DI0_PIN3__AUD6_TXFS 0x168 0x47c 0x000 0x2 0x0 +-#define MX6Q_PAD_DI0_PIN3__GPIO4_IO19 0x168 0x47c 0x000 0x5 0x0 +-#define MX6Q_PAD_DI0_PIN4__IPU1_DI0_PIN04 0x16c 0x480 0x000 0x0 0x0 +-#define MX6Q_PAD_DI0_PIN4__IPU2_DI0_PIN04 0x16c 0x480 0x000 0x1 0x0 +-#define MX6Q_PAD_DI0_PIN4__AUD6_RXD 0x16c 0x480 0x000 0x2 0x0 +-#define MX6Q_PAD_DI0_PIN4__SD1_WP 0x16c 0x480 0x94c 0x3 0x0 +-#define MX6Q_PAD_DI0_PIN4__GPIO4_IO20 0x16c 0x480 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT0__IPU1_DISP0_DATA00 0x170 0x484 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT0__IPU2_DISP0_DATA00 0x170 0x484 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT0__ECSPI3_SCLK 0x170 0x484 0x000 0x2 0x0 +-#define MX6Q_PAD_DISP0_DAT0__GPIO4_IO21 0x170 0x484 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT1__IPU1_DISP0_DATA01 0x174 0x488 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT1__IPU2_DISP0_DATA01 0x174 0x488 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT1__ECSPI3_MOSI 0x174 0x488 0x000 0x2 0x0 +-#define MX6Q_PAD_DISP0_DAT1__GPIO4_IO22 0x174 0x488 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT2__IPU1_DISP0_DATA02 0x178 0x48c 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT2__IPU2_DISP0_DATA02 0x178 0x48c 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT2__ECSPI3_MISO 0x178 0x48c 0x000 0x2 0x0 +-#define MX6Q_PAD_DISP0_DAT2__GPIO4_IO23 0x178 0x48c 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT3__IPU1_DISP0_DATA03 0x17c 0x490 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT3__IPU2_DISP0_DATA03 0x17c 0x490 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT3__ECSPI3_SS0 0x17c 0x490 0x000 0x2 0x0 +-#define MX6Q_PAD_DISP0_DAT3__GPIO4_IO24 0x17c 0x490 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT4__IPU1_DISP0_DATA04 0x180 0x494 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT4__IPU2_DISP0_DATA04 0x180 0x494 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT4__ECSPI3_SS1 0x180 0x494 0x000 0x2 0x0 +-#define MX6Q_PAD_DISP0_DAT4__GPIO4_IO25 0x180 0x494 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT5__IPU1_DISP0_DATA05 0x184 0x498 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT5__IPU2_DISP0_DATA05 0x184 0x498 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT5__ECSPI3_SS2 0x184 0x498 0x000 0x2 0x0 +-#define MX6Q_PAD_DISP0_DAT5__AUD6_RXFS 0x184 0x498 0x000 0x3 0x0 +-#define MX6Q_PAD_DISP0_DAT5__GPIO4_IO26 0x184 0x498 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT6__IPU1_DISP0_DATA06 0x188 0x49c 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT6__IPU2_DISP0_DATA06 0x188 0x49c 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT6__ECSPI3_SS3 0x188 0x49c 0x000 0x2 0x0 +-#define MX6Q_PAD_DISP0_DAT6__AUD6_RXC 0x188 0x49c 0x000 0x3 0x0 +-#define MX6Q_PAD_DISP0_DAT6__GPIO4_IO27 0x188 0x49c 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT7__IPU1_DISP0_DATA07 0x18c 0x4a0 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT7__IPU2_DISP0_DATA07 0x18c 0x4a0 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT7__ECSPI3_RDY 0x18c 0x4a0 0x000 0x2 0x0 +-#define MX6Q_PAD_DISP0_DAT7__GPIO4_IO28 0x18c 0x4a0 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT8__IPU1_DISP0_DATA08 0x190 0x4a4 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT8__IPU2_DISP0_DATA08 0x190 0x4a4 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT8__PWM1_OUT 0x190 0x4a4 0x000 0x2 0x0 +-#define MX6Q_PAD_DISP0_DAT8__WDOG1_B 0x190 0x4a4 0x000 0x3 0x0 +-#define MX6Q_PAD_DISP0_DAT8__GPIO4_IO29 0x190 0x4a4 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT9__IPU1_DISP0_DATA09 0x194 0x4a8 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT9__IPU2_DISP0_DATA09 0x194 0x4a8 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT9__PWM2_OUT 0x194 0x4a8 0x000 0x2 0x0 +-#define MX6Q_PAD_DISP0_DAT9__WDOG2_B 0x194 0x4a8 0x000 0x3 0x0 +-#define MX6Q_PAD_DISP0_DAT9__GPIO4_IO30 0x194 0x4a8 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT10__IPU1_DISP0_DATA10 0x198 0x4ac 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT10__IPU2_DISP0_DATA10 0x198 0x4ac 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT10__GPIO4_IO31 0x198 0x4ac 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT11__IPU1_DISP0_DATA11 0x19c 0x4b0 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT11__IPU2_DISP0_DATA11 0x19c 0x4b0 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT11__GPIO5_IO05 0x19c 0x4b0 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT12__IPU1_DISP0_DATA12 0x1a0 0x4b4 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT12__IPU2_DISP0_DATA12 0x1a0 0x4b4 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT12__GPIO5_IO06 0x1a0 0x4b4 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT13__IPU1_DISP0_DATA13 0x1a4 0x4b8 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT13__IPU2_DISP0_DATA13 0x1a4 0x4b8 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT13__AUD5_RXFS 0x1a4 0x4b8 0x7d8 0x3 0x1 +-#define MX6Q_PAD_DISP0_DAT13__GPIO5_IO07 0x1a4 0x4b8 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT14__IPU1_DISP0_DATA14 0x1a8 0x4bc 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT14__IPU2_DISP0_DATA14 0x1a8 0x4bc 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT14__AUD5_RXC 0x1a8 0x4bc 0x7d4 0x3 0x1 +-#define MX6Q_PAD_DISP0_DAT14__GPIO5_IO08 0x1a8 0x4bc 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT15__IPU1_DISP0_DATA15 0x1ac 0x4c0 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT15__IPU2_DISP0_DATA15 0x1ac 0x4c0 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT15__ECSPI1_SS1 0x1ac 0x4c0 0x804 0x2 0x1 +-#define MX6Q_PAD_DISP0_DAT15__ECSPI2_SS1 0x1ac 0x4c0 0x820 0x3 0x1 +-#define MX6Q_PAD_DISP0_DAT15__GPIO5_IO09 0x1ac 0x4c0 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT16__IPU1_DISP0_DATA16 0x1b0 0x4c4 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT16__IPU2_DISP0_DATA16 0x1b0 0x4c4 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT16__ECSPI2_MOSI 0x1b0 0x4c4 0x818 0x2 0x1 +-#define MX6Q_PAD_DISP0_DAT16__AUD5_TXC 0x1b0 0x4c4 0x7dc 0x3 0x0 +-#define MX6Q_PAD_DISP0_DAT16__SDMA_EXT_EVENT0 0x1b0 0x4c4 0x90c 0x4 0x0 +-#define MX6Q_PAD_DISP0_DAT16__GPIO5_IO10 0x1b0 0x4c4 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT17__IPU1_DISP0_DATA17 0x1b4 0x4c8 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT17__IPU2_DISP0_DATA17 0x1b4 0x4c8 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT17__ECSPI2_MISO 0x1b4 0x4c8 0x814 0x2 0x1 +-#define MX6Q_PAD_DISP0_DAT17__AUD5_TXD 0x1b4 0x4c8 0x7d0 0x3 0x0 +-#define MX6Q_PAD_DISP0_DAT17__SDMA_EXT_EVENT1 0x1b4 0x4c8 0x910 0x4 0x0 +-#define MX6Q_PAD_DISP0_DAT17__GPIO5_IO11 0x1b4 0x4c8 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT18__IPU1_DISP0_DATA18 0x1b8 0x4cc 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT18__IPU2_DISP0_DATA18 0x1b8 0x4cc 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT18__ECSPI2_SS0 0x1b8 0x4cc 0x81c 0x2 0x1 +-#define MX6Q_PAD_DISP0_DAT18__AUD5_TXFS 0x1b8 0x4cc 0x7e0 0x3 0x0 +-#define MX6Q_PAD_DISP0_DAT18__AUD4_RXFS 0x1b8 0x4cc 0x7c0 0x4 0x0 +-#define MX6Q_PAD_DISP0_DAT18__GPIO5_IO12 0x1b8 0x4cc 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT18__EIM_CS2_B 0x1b8 0x4cc 0x000 0x7 0x0 +-#define MX6Q_PAD_DISP0_DAT19__IPU1_DISP0_DATA19 0x1bc 0x4d0 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT19__IPU2_DISP0_DATA19 0x1bc 0x4d0 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT19__ECSPI2_SCLK 0x1bc 0x4d0 0x810 0x2 0x1 +-#define MX6Q_PAD_DISP0_DAT19__AUD5_RXD 0x1bc 0x4d0 0x7cc 0x3 0x0 +-#define MX6Q_PAD_DISP0_DAT19__AUD4_RXC 0x1bc 0x4d0 0x7bc 0x4 0x0 +-#define MX6Q_PAD_DISP0_DAT19__GPIO5_IO13 0x1bc 0x4d0 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT19__EIM_CS3_B 0x1bc 0x4d0 0x000 0x7 0x0 +-#define MX6Q_PAD_DISP0_DAT20__IPU1_DISP0_DATA20 0x1c0 0x4d4 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT20__IPU2_DISP0_DATA20 0x1c0 0x4d4 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT20__ECSPI1_SCLK 0x1c0 0x4d4 0x7f4 0x2 0x1 +-#define MX6Q_PAD_DISP0_DAT20__AUD4_TXC 0x1c0 0x4d4 0x7c4 0x3 0x0 +-#define MX6Q_PAD_DISP0_DAT20__GPIO5_IO14 0x1c0 0x4d4 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT21__IPU1_DISP0_DATA21 0x1c4 0x4d8 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT21__IPU2_DISP0_DATA21 0x1c4 0x4d8 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT21__ECSPI1_MOSI 0x1c4 0x4d8 0x7fc 0x2 0x1 +-#define MX6Q_PAD_DISP0_DAT21__AUD4_TXD 0x1c4 0x4d8 0x7b8 0x3 0x1 +-#define MX6Q_PAD_DISP0_DAT21__GPIO5_IO15 0x1c4 0x4d8 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT22__IPU1_DISP0_DATA22 0x1c8 0x4dc 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT22__IPU2_DISP0_DATA22 0x1c8 0x4dc 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT22__ECSPI1_MISO 0x1c8 0x4dc 0x7f8 0x2 0x1 +-#define MX6Q_PAD_DISP0_DAT22__AUD4_TXFS 0x1c8 0x4dc 0x7c8 0x3 0x1 +-#define MX6Q_PAD_DISP0_DAT22__GPIO5_IO16 0x1c8 0x4dc 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT23__IPU1_DISP0_DATA23 0x1cc 0x4e0 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT23__IPU2_DISP0_DATA23 0x1cc 0x4e0 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT23__ECSPI1_SS0 0x1cc 0x4e0 0x800 0x2 0x1 +-#define MX6Q_PAD_DISP0_DAT23__AUD4_RXD 0x1cc 0x4e0 0x7b4 0x3 0x1 +-#define MX6Q_PAD_DISP0_DAT23__GPIO5_IO17 0x1cc 0x4e0 0x000 0x5 0x0 +-#define MX6Q_PAD_ENET_MDIO__ENET_MDIO 0x1d0 0x4e4 0x840 0x1 0x0 +-#define MX6Q_PAD_ENET_MDIO__ESAI_RX_CLK 0x1d0 0x4e4 0x86c 0x2 0x0 +-#define MX6Q_PAD_ENET_MDIO__ENET_1588_EVENT1_OUT 0x1d0 0x4e4 0x000 0x4 0x0 +-#define MX6Q_PAD_ENET_MDIO__GPIO1_IO22 0x1d0 0x4e4 0x000 0x5 0x0 +-#define MX6Q_PAD_ENET_MDIO__SPDIF_LOCK 0x1d0 0x4e4 0x000 0x6 0x0 +-#define MX6Q_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1d4 0x4e8 0x000 0x1 0x0 +-#define MX6Q_PAD_ENET_REF_CLK__ESAI_RX_FS 0x1d4 0x4e8 0x85c 0x2 0x0 +-#define MX6Q_PAD_ENET_REF_CLK__GPIO1_IO23 0x1d4 0x4e8 0x000 0x5 0x0 +-#define MX6Q_PAD_ENET_REF_CLK__SPDIF_SR_CLK 0x1d4 0x4e8 0x000 0x6 0x0 +-#define MX6Q_PAD_ENET_RX_ER__USB_OTG_ID 0x1d8 0x4ec 0x000 0x0 0x0 +-#define MX6Q_PAD_ENET_RX_ER__ENET_RX_ER 0x1d8 0x4ec 0x000 0x1 0x0 +-#define MX6Q_PAD_ENET_RX_ER__ESAI_RX_HF_CLK 0x1d8 0x4ec 0x864 0x2 0x0 +-#define MX6Q_PAD_ENET_RX_ER__SPDIF_IN 0x1d8 0x4ec 0x914 0x3 0x1 +-#define MX6Q_PAD_ENET_RX_ER__ENET_1588_EVENT2_OUT 0x1d8 0x4ec 0x000 0x4 0x0 +-#define MX6Q_PAD_ENET_RX_ER__GPIO1_IO24 0x1d8 0x4ec 0x000 0x5 0x0 +-#define MX6Q_PAD_ENET_CRS_DV__ENET_RX_EN 0x1dc 0x4f0 0x858 0x1 0x1 +-#define MX6Q_PAD_ENET_CRS_DV__ESAI_TX_CLK 0x1dc 0x4f0 0x870 0x2 0x0 +-#define MX6Q_PAD_ENET_CRS_DV__SPDIF_EXT_CLK 0x1dc 0x4f0 0x918 0x3 0x1 +-#define MX6Q_PAD_ENET_CRS_DV__GPIO1_IO25 0x1dc 0x4f0 0x000 0x5 0x0 +-#define MX6Q_PAD_ENET_RXD1__MLB_SIG 0x1e0 0x4f4 0x908 0x0 0x0 +-#define MX6Q_PAD_ENET_RXD1__ENET_RX_DATA1 0x1e0 0x4f4 0x84c 0x1 0x1 +-#define MX6Q_PAD_ENET_RXD1__ESAI_TX_FS 0x1e0 0x4f4 0x860 0x2 0x0 +-#define MX6Q_PAD_ENET_RXD1__ENET_1588_EVENT3_OUT 0x1e0 0x4f4 0x000 0x4 0x0 +-#define MX6Q_PAD_ENET_RXD1__GPIO1_IO26 0x1e0 0x4f4 0x000 0x5 0x0 +-#define MX6Q_PAD_ENET_RXD0__ENET_RX_DATA0 0x1e4 0x4f8 0x848 0x1 0x1 +-#define MX6Q_PAD_ENET_RXD0__ESAI_TX_HF_CLK 0x1e4 0x4f8 0x868 0x2 0x0 +-#define MX6Q_PAD_ENET_RXD0__SPDIF_OUT 0x1e4 0x4f8 0x000 0x3 0x0 +-#define MX6Q_PAD_ENET_RXD0__GPIO1_IO27 0x1e4 0x4f8 0x000 0x5 0x0 +-#define MX6Q_PAD_ENET_TX_EN__ENET_TX_EN 0x1e8 0x4fc 0x000 0x1 0x0 +-#define MX6Q_PAD_ENET_TX_EN__ESAI_TX3_RX2 0x1e8 0x4fc 0x880 0x2 0x0 +-#define MX6Q_PAD_ENET_TX_EN__GPIO1_IO28 0x1e8 0x4fc 0x000 0x5 0x0 +-#define MX6Q_PAD_ENET_TXD1__MLB_CLK 0x1ec 0x500 0x900 0x0 0x0 +-#define MX6Q_PAD_ENET_TXD1__ENET_TX_DATA1 0x1ec 0x500 0x000 0x1 0x0 +-#define MX6Q_PAD_ENET_TXD1__ESAI_TX2_RX3 0x1ec 0x500 0x87c 0x2 0x0 +-#define MX6Q_PAD_ENET_TXD1__ENET_1588_EVENT0_IN 0x1ec 0x500 0x000 0x4 0x0 +-#define MX6Q_PAD_ENET_TXD1__GPIO1_IO29 0x1ec 0x500 0x000 0x5 0x0 +-#define MX6Q_PAD_ENET_TXD0__ENET_TX_DATA0 0x1f0 0x504 0x000 0x1 0x0 +-#define MX6Q_PAD_ENET_TXD0__ESAI_TX4_RX1 0x1f0 0x504 0x884 0x2 0x0 +-#define MX6Q_PAD_ENET_TXD0__GPIO1_IO30 0x1f0 0x504 0x000 0x5 0x0 +-#define MX6Q_PAD_ENET_MDC__MLB_DATA 0x1f4 0x508 0x904 0x0 0x0 +-#define MX6Q_PAD_ENET_MDC__ENET_MDC 0x1f4 0x508 0x000 0x1 0x0 +-#define MX6Q_PAD_ENET_MDC__ESAI_TX5_RX0 0x1f4 0x508 0x888 0x2 0x0 +-#define MX6Q_PAD_ENET_MDC__ENET_1588_EVENT1_IN 0x1f4 0x508 0x000 0x4 0x0 +-#define MX6Q_PAD_ENET_MDC__GPIO1_IO31 0x1f4 0x508 0x000 0x5 0x0 +-#define MX6Q_PAD_KEY_COL0__ECSPI1_SCLK 0x1f8 0x5c8 0x7f4 0x0 0x2 +-#define MX6Q_PAD_KEY_COL0__ENET_RX_DATA3 0x1f8 0x5c8 0x854 0x1 0x1 +-#define MX6Q_PAD_KEY_COL0__AUD5_TXC 0x1f8 0x5c8 0x7dc 0x2 0x1 +-#define MX6Q_PAD_KEY_COL0__KEY_COL0 0x1f8 0x5c8 0x000 0x3 0x0 +-#define MX6Q_PAD_KEY_COL0__UART4_TX_DATA 0x1f8 0x5c8 0x000 0x4 0x0 +-#define MX6Q_PAD_KEY_COL0__UART4_RX_DATA 0x1f8 0x5c8 0x938 0x4 0x0 +-#define MX6Q_PAD_KEY_COL0__GPIO4_IO06 0x1f8 0x5c8 0x000 0x5 0x0 +-#define MX6Q_PAD_KEY_COL0__DCIC1_OUT 0x1f8 0x5c8 0x000 0x6 0x0 +-#define MX6Q_PAD_KEY_ROW0__ECSPI1_MOSI 0x1fc 0x5cc 0x7fc 0x0 0x2 +-#define MX6Q_PAD_KEY_ROW0__ENET_TX_DATA3 0x1fc 0x5cc 0x000 0x1 0x0 +-#define MX6Q_PAD_KEY_ROW0__AUD5_TXD 0x1fc 0x5cc 0x7d0 0x2 0x1 +-#define MX6Q_PAD_KEY_ROW0__KEY_ROW0 0x1fc 0x5cc 0x000 0x3 0x0 +-#define MX6Q_PAD_KEY_ROW0__UART4_RX_DATA 0x1fc 0x5cc 0x938 0x4 0x1 +-#define MX6Q_PAD_KEY_ROW0__UART4_TX_DATA 0x1fc 0x5cc 0x000 0x4 0x0 +-#define MX6Q_PAD_KEY_ROW0__GPIO4_IO07 0x1fc 0x5cc 0x000 0x5 0x0 +-#define MX6Q_PAD_KEY_ROW0__DCIC2_OUT 0x1fc 0x5cc 0x000 0x6 0x0 +-#define MX6Q_PAD_KEY_COL1__ECSPI1_MISO 0x200 0x5d0 0x7f8 0x0 0x2 +-#define MX6Q_PAD_KEY_COL1__ENET_MDIO 0x200 0x5d0 0x840 0x1 0x1 +-#define MX6Q_PAD_KEY_COL1__AUD5_TXFS 0x200 0x5d0 0x7e0 0x2 0x1 +-#define MX6Q_PAD_KEY_COL1__KEY_COL1 0x200 0x5d0 0x000 0x3 0x0 +-#define MX6Q_PAD_KEY_COL1__UART5_TX_DATA 0x200 0x5d0 0x000 0x4 0x0 +-#define MX6Q_PAD_KEY_COL1__UART5_RX_DATA 0x200 0x5d0 0x940 0x4 0x0 +-#define MX6Q_PAD_KEY_COL1__GPIO4_IO08 0x200 0x5d0 0x000 0x5 0x0 +-#define MX6Q_PAD_KEY_COL1__SD1_VSELECT 0x200 0x5d0 0x000 0x6 0x0 +-#define MX6Q_PAD_KEY_ROW1__ECSPI1_SS0 0x204 0x5d4 0x800 0x0 0x2 +-#define MX6Q_PAD_KEY_ROW1__ENET_COL 0x204 0x5d4 0x000 0x1 0x0 +-#define MX6Q_PAD_KEY_ROW1__AUD5_RXD 0x204 0x5d4 0x7cc 0x2 0x1 +-#define MX6Q_PAD_KEY_ROW1__KEY_ROW1 0x204 0x5d4 0x000 0x3 0x0 +-#define MX6Q_PAD_KEY_ROW1__UART5_RX_DATA 0x204 0x5d4 0x940 0x4 0x1 +-#define MX6Q_PAD_KEY_ROW1__UART5_TX_DATA 0x204 0x5d4 0x000 0x4 0x0 +-#define MX6Q_PAD_KEY_ROW1__GPIO4_IO09 0x204 0x5d4 0x000 0x5 0x0 +-#define MX6Q_PAD_KEY_ROW1__SD2_VSELECT 0x204 0x5d4 0x000 0x6 0x0 +-#define MX6Q_PAD_KEY_COL2__ECSPI1_SS1 0x208 0x5d8 0x804 0x0 0x2 +-#define MX6Q_PAD_KEY_COL2__ENET_RX_DATA2 0x208 0x5d8 0x850 0x1 0x1 +-#define MX6Q_PAD_KEY_COL2__FLEXCAN1_TX 0x208 0x5d8 0x000 0x2 0x0 +-#define MX6Q_PAD_KEY_COL2__KEY_COL2 0x208 0x5d8 0x000 0x3 0x0 +-#define MX6Q_PAD_KEY_COL2__ENET_MDC 0x208 0x5d8 0x000 0x4 0x0 +-#define MX6Q_PAD_KEY_COL2__GPIO4_IO10 0x208 0x5d8 0x000 0x5 0x0 +-#define MX6Q_PAD_KEY_COL2__USB_H1_PWR_CTL_WAKE 0x208 0x5d8 0x000 0x6 0x0 +-#define MX6Q_PAD_KEY_ROW2__ECSPI1_SS2 0x20c 0x5dc 0x808 0x0 0x1 +-#define MX6Q_PAD_KEY_ROW2__ENET_TX_DATA2 0x20c 0x5dc 0x000 0x1 0x0 +-#define MX6Q_PAD_KEY_ROW2__FLEXCAN1_RX 0x20c 0x5dc 0x7e4 0x2 0x0 +-#define MX6Q_PAD_KEY_ROW2__KEY_ROW2 0x20c 0x5dc 0x000 0x3 0x0 +-#define MX6Q_PAD_KEY_ROW2__SD2_VSELECT 0x20c 0x5dc 0x000 0x4 0x0 +-#define MX6Q_PAD_KEY_ROW2__GPIO4_IO11 0x20c 0x5dc 0x000 0x5 0x0 +-#define MX6Q_PAD_KEY_ROW2__HDMI_TX_CEC_LINE 0x20c 0x5dc 0x88c 0x6 0x1 +-#define MX6Q_PAD_KEY_COL3__ECSPI1_SS3 0x210 0x5e0 0x80c 0x0 0x1 +-#define MX6Q_PAD_KEY_COL3__ENET_CRS 0x210 0x5e0 0x000 0x1 0x0 +-#define MX6Q_PAD_KEY_COL3__HDMI_TX_DDC_SCL 0x210 0x5e0 0x890 0x2 0x1 +-#define MX6Q_PAD_KEY_COL3__KEY_COL3 0x210 0x5e0 0x000 0x3 0x0 +-#define MX6Q_PAD_KEY_COL3__I2C2_SCL 0x210 0x5e0 0x8a0 0x4 0x1 +-#define MX6Q_PAD_KEY_COL3__GPIO4_IO12 0x210 0x5e0 0x000 0x5 0x0 +-#define MX6Q_PAD_KEY_COL3__SPDIF_IN 0x210 0x5e0 0x914 0x6 0x2 +-#define MX6Q_PAD_KEY_ROW3__ASRC_EXT_CLK 0x214 0x5e4 0x7b0 0x1 0x0 +-#define MX6Q_PAD_KEY_ROW3__HDMI_TX_DDC_SDA 0x214 0x5e4 0x894 0x2 0x1 +-#define MX6Q_PAD_KEY_ROW3__KEY_ROW3 0x214 0x5e4 0x000 0x3 0x0 +-#define MX6Q_PAD_KEY_ROW3__I2C2_SDA 0x214 0x5e4 0x8a4 0x4 0x1 +-#define MX6Q_PAD_KEY_ROW3__GPIO4_IO13 0x214 0x5e4 0x000 0x5 0x0 +-#define MX6Q_PAD_KEY_ROW3__SD1_VSELECT 0x214 0x5e4 0x000 0x6 0x0 +-#define MX6Q_PAD_KEY_COL4__FLEXCAN2_TX 0x218 0x5e8 0x000 0x0 0x0 +-#define MX6Q_PAD_KEY_COL4__IPU1_SISG4 0x218 0x5e8 0x000 0x1 0x0 +-#define MX6Q_PAD_KEY_COL4__USB_OTG_OC 0x218 0x5e8 0x944 0x2 0x1 +-#define MX6Q_PAD_KEY_COL4__KEY_COL4 0x218 0x5e8 0x000 0x3 0x0 +-#define MX6Q_PAD_KEY_COL4__UART5_RTS_B 0x218 0x5e8 0x93c 0x4 0x0 +-#define MX6Q_PAD_KEY_COL4__UART5_CTS_B 0x218 0x5e8 0x000 0x4 0x0 +-#define MX6Q_PAD_KEY_COL4__GPIO4_IO14 0x218 0x5e8 0x000 0x5 0x0 +-#define MX6Q_PAD_KEY_ROW4__FLEXCAN2_RX 0x21c 0x5ec 0x7e8 0x0 0x0 +-#define MX6Q_PAD_KEY_ROW4__IPU1_SISG5 0x21c 0x5ec 0x000 0x1 0x0 +-#define MX6Q_PAD_KEY_ROW4__USB_OTG_PWR 0x21c 0x5ec 0x000 0x2 0x0 +-#define MX6Q_PAD_KEY_ROW4__KEY_ROW4 0x21c 0x5ec 0x000 0x3 0x0 +-#define MX6Q_PAD_KEY_ROW4__UART5_CTS_B 0x21c 0x5ec 0x000 0x4 0x0 +-#define MX6Q_PAD_KEY_ROW4__UART5_RTS_B 0x21c 0x5ec 0x93c 0x4 0x1 +-#define MX6Q_PAD_KEY_ROW4__GPIO4_IO15 0x21c 0x5ec 0x000 0x5 0x0 +-#define MX6Q_PAD_GPIO_0__CCM_CLKO1 0x220 0x5f0 0x000 0x0 0x0 +-#define MX6Q_PAD_GPIO_0__KEY_COL5 0x220 0x5f0 0x8e8 0x2 0x0 +-#define MX6Q_PAD_GPIO_0__ASRC_EXT_CLK 0x220 0x5f0 0x7b0 0x3 0x1 +-#define MX6Q_PAD_GPIO_0__EPIT1_OUT 0x220 0x5f0 0x000 0x4 0x0 +-#define MX6Q_PAD_GPIO_0__GPIO1_IO00 0x220 0x5f0 0x000 0x5 0x0 +-#define MX6Q_PAD_GPIO_0__USB_H1_PWR 0x220 0x5f0 0x000 0x6 0x0 +-#define MX6Q_PAD_GPIO_0__SNVS_VIO_5 0x220 0x5f0 0x000 0x7 0x0 +-#define MX6Q_PAD_GPIO_1__ESAI_RX_CLK 0x224 0x5f4 0x86c 0x0 0x1 +-#define MX6Q_PAD_GPIO_1__WDOG2_B 0x224 0x5f4 0x000 0x1 0x0 +-#define MX6Q_PAD_GPIO_1__KEY_ROW5 0x224 0x5f4 0x8f4 0x2 0x0 +-#define MX6Q_PAD_GPIO_1__USB_OTG_ID 0x224 0x5f4 0x000 0x3 0x0 +-#define MX6Q_PAD_GPIO_1__PWM2_OUT 0x224 0x5f4 0x000 0x4 0x0 +-#define MX6Q_PAD_GPIO_1__GPIO1_IO01 0x224 0x5f4 0x000 0x5 0x0 +-#define MX6Q_PAD_GPIO_1__SD1_CD_B 0x224 0x5f4 0x000 0x6 0x0 +-#define MX6Q_PAD_GPIO_9__ESAI_RX_FS 0x228 0x5f8 0x85c 0x0 0x1 +-#define MX6Q_PAD_GPIO_9__WDOG1_B 0x228 0x5f8 0x000 0x1 0x0 +-#define MX6Q_PAD_GPIO_9__KEY_COL6 0x228 0x5f8 0x8ec 0x2 0x0 +-#define MX6Q_PAD_GPIO_9__CCM_REF_EN_B 0x228 0x5f8 0x000 0x3 0x0 +-#define MX6Q_PAD_GPIO_9__PWM1_OUT 0x228 0x5f8 0x000 0x4 0x0 +-#define MX6Q_PAD_GPIO_9__GPIO1_IO09 0x228 0x5f8 0x000 0x5 0x0 +-#define MX6Q_PAD_GPIO_9__SD1_WP 0x228 0x5f8 0x94c 0x6 0x1 +-#define MX6Q_PAD_GPIO_3__ESAI_RX_HF_CLK 0x22c 0x5fc 0x864 0x0 0x1 +-#define MX6Q_PAD_GPIO_3__I2C3_SCL 0x22c 0x5fc 0x8a8 0x2 0x1 +-#define MX6Q_PAD_GPIO_3__XTALOSC_REF_CLK_24M 0x22c 0x5fc 0x000 0x3 0x0 +-#define MX6Q_PAD_GPIO_3__CCM_CLKO2 0x22c 0x5fc 0x000 0x4 0x0 +-#define MX6Q_PAD_GPIO_3__GPIO1_IO03 0x22c 0x5fc 0x000 0x5 0x0 +-#define MX6Q_PAD_GPIO_3__USB_H1_OC 0x22c 0x5fc 0x948 0x6 0x1 +-#define MX6Q_PAD_GPIO_3__MLB_CLK 0x22c 0x5fc 0x900 0x7 0x1 +-#define MX6Q_PAD_GPIO_6__ESAI_TX_CLK 0x230 0x600 0x870 0x0 0x1 +-#define MX6Q_PAD_GPIO_6__I2C3_SDA 0x230 0x600 0x8ac 0x2 0x1 +-#define MX6Q_PAD_GPIO_6__GPIO1_IO06 0x230 0x600 0x000 0x5 0x0 +-#define MX6Q_PAD_GPIO_6__SD2_LCTL 0x230 0x600 0x000 0x6 0x0 +-#define MX6Q_PAD_GPIO_6__MLB_SIG 0x230 0x600 0x908 0x7 0x1 +-#define MX6Q_PAD_GPIO_2__ESAI_TX_FS 0x234 0x604 0x860 0x0 0x1 +-#define MX6Q_PAD_GPIO_2__KEY_ROW6 0x234 0x604 0x8f8 0x2 0x1 +-#define MX6Q_PAD_GPIO_2__GPIO1_IO02 0x234 0x604 0x000 0x5 0x0 +-#define MX6Q_PAD_GPIO_2__SD2_WP 0x234 0x604 0x000 0x6 0x0 +-#define MX6Q_PAD_GPIO_2__MLB_DATA 0x234 0x604 0x904 0x7 0x1 +-#define MX6Q_PAD_GPIO_4__ESAI_TX_HF_CLK 0x238 0x608 0x868 0x0 0x1 +-#define MX6Q_PAD_GPIO_4__KEY_COL7 0x238 0x608 0x8f0 0x2 0x1 +-#define MX6Q_PAD_GPIO_4__GPIO1_IO04 0x238 0x608 0x000 0x5 0x0 +-#define MX6Q_PAD_GPIO_4__SD2_CD_B 0x238 0x608 0x000 0x6 0x0 +-#define MX6Q_PAD_GPIO_5__ESAI_TX2_RX3 0x23c 0x60c 0x87c 0x0 0x1 +-#define MX6Q_PAD_GPIO_5__KEY_ROW7 0x23c 0x60c 0x8fc 0x2 0x1 +-#define MX6Q_PAD_GPIO_5__CCM_CLKO1 0x23c 0x60c 0x000 0x3 0x0 +-#define MX6Q_PAD_GPIO_5__GPIO1_IO05 0x23c 0x60c 0x000 0x5 0x0 +-#define MX6Q_PAD_GPIO_5__I2C3_SCL 0x23c 0x60c 0x8a8 0x6 0x2 +-#define MX6Q_PAD_GPIO_5__ARM_EVENTI 0x23c 0x60c 0x000 0x7 0x0 +-#define MX6Q_PAD_GPIO_7__ESAI_TX4_RX1 0x240 0x610 0x884 0x0 0x1 +-#define MX6Q_PAD_GPIO_7__ECSPI5_RDY 0x240 0x610 0x000 0x1 0x0 +-#define MX6Q_PAD_GPIO_7__EPIT1_OUT 0x240 0x610 0x000 0x2 0x0 +-#define MX6Q_PAD_GPIO_7__FLEXCAN1_TX 0x240 0x610 0x000 0x3 0x0 +-#define MX6Q_PAD_GPIO_7__UART2_TX_DATA 0x240 0x610 0x000 0x4 0x0 +-#define MX6Q_PAD_GPIO_7__UART2_RX_DATA 0x240 0x610 0x928 0x4 0x2 +-#define MX6Q_PAD_GPIO_7__GPIO1_IO07 0x240 0x610 0x000 0x5 0x0 +-#define MX6Q_PAD_GPIO_7__SPDIF_LOCK 0x240 0x610 0x000 0x6 0x0 +-#define MX6Q_PAD_GPIO_7__USB_OTG_HOST_MODE 0x240 0x610 0x000 0x7 0x0 +-#define MX6Q_PAD_GPIO_8__ESAI_TX5_RX0 0x244 0x614 0x888 0x0 0x1 +-#define MX6Q_PAD_GPIO_8__XTALOSC_REF_CLK_32K 0x244 0x614 0x000 0x1 0x0 +-#define MX6Q_PAD_GPIO_8__EPIT2_OUT 0x244 0x614 0x000 0x2 0x0 +-#define MX6Q_PAD_GPIO_8__FLEXCAN1_RX 0x244 0x614 0x7e4 0x3 0x1 +-#define MX6Q_PAD_GPIO_8__UART2_RX_DATA 0x244 0x614 0x928 0x4 0x3 +-#define MX6Q_PAD_GPIO_8__UART2_TX_DATA 0x244 0x614 0x000 0x4 0x0 +-#define MX6Q_PAD_GPIO_8__GPIO1_IO08 0x244 0x614 0x000 0x5 0x0 +-#define MX6Q_PAD_GPIO_8__SPDIF_SR_CLK 0x244 0x614 0x000 0x6 0x0 +-#define MX6Q_PAD_GPIO_8__USB_OTG_PWR_CTL_WAKE 0x244 0x614 0x000 0x7 0x0 +-#define MX6Q_PAD_GPIO_16__ESAI_TX3_RX2 0x248 0x618 0x880 0x0 0x1 +-#define MX6Q_PAD_GPIO_16__ENET_1588_EVENT2_IN 0x248 0x618 0x000 0x1 0x0 +-#define MX6Q_PAD_GPIO_16__ENET_REF_CLK 0x248 0x618 0x83c 0x2 0x1 +-#define MX6Q_PAD_GPIO_16__SD1_LCTL 0x248 0x618 0x000 0x3 0x0 +-#define MX6Q_PAD_GPIO_16__SPDIF_IN 0x248 0x618 0x914 0x4 0x3 +-#define MX6Q_PAD_GPIO_16__GPIO7_IO11 0x248 0x618 0x000 0x5 0x0 +-#define MX6Q_PAD_GPIO_16__I2C3_SDA 0x248 0x618 0x8ac 0x6 0x2 +-#define MX6Q_PAD_GPIO_16__JTAG_DE_B 0x248 0x618 0x000 0x7 0x0 +-#define MX6Q_PAD_GPIO_17__ESAI_TX0 0x24c 0x61c 0x874 0x0 0x0 +-#define MX6Q_PAD_GPIO_17__ENET_1588_EVENT3_IN 0x24c 0x61c 0x000 0x1 0x0 +-#define MX6Q_PAD_GPIO_17__CCM_PMIC_READY 0x24c 0x61c 0x7f0 0x2 0x1 +-#define MX6Q_PAD_GPIO_17__SDMA_EXT_EVENT0 0x24c 0x61c 0x90c 0x3 0x1 +-#define MX6Q_PAD_GPIO_17__SPDIF_OUT 0x24c 0x61c 0x000 0x4 0x0 +-#define MX6Q_PAD_GPIO_17__GPIO7_IO12 0x24c 0x61c 0x000 0x5 0x0 +-#define MX6Q_PAD_GPIO_18__ESAI_TX1 0x250 0x620 0x878 0x0 0x0 +-#define MX6Q_PAD_GPIO_18__ENET_RX_CLK 0x250 0x620 0x844 0x1 0x1 +-#define MX6Q_PAD_GPIO_18__SD3_VSELECT 0x250 0x620 0x000 0x2 0x0 +-#define MX6Q_PAD_GPIO_18__SDMA_EXT_EVENT1 0x250 0x620 0x910 0x3 0x1 +-#define MX6Q_PAD_GPIO_18__ASRC_EXT_CLK 0x250 0x620 0x7b0 0x4 0x2 +-#define MX6Q_PAD_GPIO_18__GPIO7_IO13 0x250 0x620 0x000 0x5 0x0 +-#define MX6Q_PAD_GPIO_18__SNVS_VIO_5_CTL 0x250 0x620 0x000 0x6 0x0 +-#define MX6Q_PAD_GPIO_19__KEY_COL5 0x254 0x624 0x8e8 0x0 0x1 +-#define MX6Q_PAD_GPIO_19__ENET_1588_EVENT0_OUT 0x254 0x624 0x000 0x1 0x0 +-#define MX6Q_PAD_GPIO_19__SPDIF_OUT 0x254 0x624 0x000 0x2 0x0 +-#define MX6Q_PAD_GPIO_19__CCM_CLKO1 0x254 0x624 0x000 0x3 0x0 +-#define MX6Q_PAD_GPIO_19__ECSPI1_RDY 0x254 0x624 0x000 0x4 0x0 +-#define MX6Q_PAD_GPIO_19__GPIO4_IO05 0x254 0x624 0x000 0x5 0x0 +-#define MX6Q_PAD_GPIO_19__ENET_TX_ER 0x254 0x624 0x000 0x6 0x0 +-#define MX6Q_PAD_CSI0_PIXCLK__IPU1_CSI0_PIXCLK 0x258 0x628 0x000 0x0 0x0 +-#define MX6Q_PAD_CSI0_PIXCLK__GPIO5_IO18 0x258 0x628 0x000 0x5 0x0 +-#define MX6Q_PAD_CSI0_PIXCLK__ARM_EVENTO 0x258 0x628 0x000 0x7 0x0 +-#define MX6Q_PAD_CSI0_MCLK__IPU1_CSI0_HSYNC 0x25c 0x62c 0x000 0x0 0x0 +-#define MX6Q_PAD_CSI0_MCLK__CCM_CLKO1 0x25c 0x62c 0x000 0x3 0x0 +-#define MX6Q_PAD_CSI0_MCLK__GPIO5_IO19 0x25c 0x62c 0x000 0x5 0x0 +-#define MX6Q_PAD_CSI0_MCLK__ARM_TRACE_CTL 0x25c 0x62c 0x000 0x7 0x0 +-#define MX6Q_PAD_CSI0_DATA_EN__IPU1_CSI0_DATA_EN 0x260 0x630 0x000 0x0 0x0 +-#define MX6Q_PAD_CSI0_DATA_EN__EIM_DATA00 0x260 0x630 0x000 0x1 0x0 +-#define MX6Q_PAD_CSI0_DATA_EN__GPIO5_IO20 0x260 0x630 0x000 0x5 0x0 +-#define MX6Q_PAD_CSI0_DATA_EN__ARM_TRACE_CLK 0x260 0x630 0x000 0x7 0x0 +-#define MX6Q_PAD_CSI0_VSYNC__IPU1_CSI0_VSYNC 0x264 0x634 0x000 0x0 0x0 +-#define MX6Q_PAD_CSI0_VSYNC__EIM_DATA01 0x264 0x634 0x000 0x1 0x0 +-#define MX6Q_PAD_CSI0_VSYNC__GPIO5_IO21 0x264 0x634 0x000 0x5 0x0 +-#define MX6Q_PAD_CSI0_VSYNC__ARM_TRACE00 0x264 0x634 0x000 0x7 0x0 +-#define MX6Q_PAD_CSI0_DAT4__IPU1_CSI0_DATA04 0x268 0x638 0x000 0x0 0x0 +-#define MX6Q_PAD_CSI0_DAT4__EIM_DATA02 0x268 0x638 0x000 0x1 0x0 +-#define MX6Q_PAD_CSI0_DAT4__ECSPI1_SCLK 0x268 0x638 0x7f4 0x2 0x3 +-#define MX6Q_PAD_CSI0_DAT4__KEY_COL5 0x268 0x638 0x8e8 0x3 0x2 +-#define MX6Q_PAD_CSI0_DAT4__AUD3_TXC 0x268 0x638 0x000 0x4 0x0 +-#define MX6Q_PAD_CSI0_DAT4__GPIO5_IO22 0x268 0x638 0x000 0x5 0x0 +-#define MX6Q_PAD_CSI0_DAT4__ARM_TRACE01 0x268 0x638 0x000 0x7 0x0 +-#define MX6Q_PAD_CSI0_DAT5__IPU1_CSI0_DATA05 0x26c 0x63c 0x000 0x0 0x0 +-#define MX6Q_PAD_CSI0_DAT5__EIM_DATA03 0x26c 0x63c 0x000 0x1 0x0 +-#define MX6Q_PAD_CSI0_DAT5__ECSPI1_MOSI 0x26c 0x63c 0x7fc 0x2 0x3 +-#define MX6Q_PAD_CSI0_DAT5__KEY_ROW5 0x26c 0x63c 0x8f4 0x3 0x1 +-#define MX6Q_PAD_CSI0_DAT5__AUD3_TXD 0x26c 0x63c 0x000 0x4 0x0 +-#define MX6Q_PAD_CSI0_DAT5__GPIO5_IO23 0x26c 0x63c 0x000 0x5 0x0 +-#define MX6Q_PAD_CSI0_DAT5__ARM_TRACE02 0x26c 0x63c 0x000 0x7 0x0 +-#define MX6Q_PAD_CSI0_DAT6__IPU1_CSI0_DATA06 0x270 0x640 0x000 0x0 0x0 +-#define MX6Q_PAD_CSI0_DAT6__EIM_DATA04 0x270 0x640 0x000 0x1 0x0 +-#define MX6Q_PAD_CSI0_DAT6__ECSPI1_MISO 0x270 0x640 0x7f8 0x2 0x3 +-#define MX6Q_PAD_CSI0_DAT6__KEY_COL6 0x270 0x640 0x8ec 0x3 0x1 +-#define MX6Q_PAD_CSI0_DAT6__AUD3_TXFS 0x270 0x640 0x000 0x4 0x0 +-#define MX6Q_PAD_CSI0_DAT6__GPIO5_IO24 0x270 0x640 0x000 0x5 0x0 +-#define MX6Q_PAD_CSI0_DAT6__ARM_TRACE03 0x270 0x640 0x000 0x7 0x0 +-#define MX6Q_PAD_CSI0_DAT7__IPU1_CSI0_DATA07 0x274 0x644 0x000 0x0 0x0 +-#define MX6Q_PAD_CSI0_DAT7__EIM_DATA05 0x274 0x644 0x000 0x1 0x0 +-#define MX6Q_PAD_CSI0_DAT7__ECSPI1_SS0 0x274 0x644 0x800 0x2 0x3 +-#define MX6Q_PAD_CSI0_DAT7__KEY_ROW6 0x274 0x644 0x8f8 0x3 0x2 +-#define MX6Q_PAD_CSI0_DAT7__AUD3_RXD 0x274 0x644 0x000 0x4 0x0 +-#define MX6Q_PAD_CSI0_DAT7__GPIO5_IO25 0x274 0x644 0x000 0x5 0x0 +-#define MX6Q_PAD_CSI0_DAT7__ARM_TRACE04 0x274 0x644 0x000 0x7 0x0 +-#define MX6Q_PAD_CSI0_DAT8__IPU1_CSI0_DATA08 0x278 0x648 0x000 0x0 0x0 +-#define MX6Q_PAD_CSI0_DAT8__EIM_DATA06 0x278 0x648 0x000 0x1 0x0 +-#define MX6Q_PAD_CSI0_DAT8__ECSPI2_SCLK 0x278 0x648 0x810 0x2 0x2 +-#define MX6Q_PAD_CSI0_DAT8__KEY_COL7 0x278 0x648 0x8f0 0x3 0x2 +-#define MX6Q_PAD_CSI0_DAT8__I2C1_SDA 0x278 0x648 0x89c 0x4 0x1 +-#define MX6Q_PAD_CSI0_DAT8__GPIO5_IO26 0x278 0x648 0x000 0x5 0x0 +-#define MX6Q_PAD_CSI0_DAT8__ARM_TRACE05 0x278 0x648 0x000 0x7 0x0 +-#define MX6Q_PAD_CSI0_DAT9__IPU1_CSI0_DATA09 0x27c 0x64c 0x000 0x0 0x0 +-#define MX6Q_PAD_CSI0_DAT9__EIM_DATA07 0x27c 0x64c 0x000 0x1 0x0 +-#define MX6Q_PAD_CSI0_DAT9__ECSPI2_MOSI 0x27c 0x64c 0x818 0x2 0x2 +-#define MX6Q_PAD_CSI0_DAT9__KEY_ROW7 0x27c 0x64c 0x8fc 0x3 0x2 +-#define MX6Q_PAD_CSI0_DAT9__I2C1_SCL 0x27c 0x64c 0x898 0x4 0x1 +-#define MX6Q_PAD_CSI0_DAT9__GPIO5_IO27 0x27c 0x64c 0x000 0x5 0x0 +-#define MX6Q_PAD_CSI0_DAT9__ARM_TRACE06 0x27c 0x64c 0x000 0x7 0x0 +-#define MX6Q_PAD_CSI0_DAT10__IPU1_CSI0_DATA10 0x280 0x650 0x000 0x0 0x0 +-#define MX6Q_PAD_CSI0_DAT10__AUD3_RXC 0x280 0x650 0x000 0x1 0x0 +-#define MX6Q_PAD_CSI0_DAT10__ECSPI2_MISO 0x280 0x650 0x814 0x2 0x2 +-#define MX6Q_PAD_CSI0_DAT10__UART1_TX_DATA 0x280 0x650 0x000 0x3 0x0 +-#define MX6Q_PAD_CSI0_DAT10__UART1_RX_DATA 0x280 0x650 0x920 0x3 0x0 +-#define MX6Q_PAD_CSI0_DAT10__GPIO5_IO28 0x280 0x650 0x000 0x5 0x0 +-#define MX6Q_PAD_CSI0_DAT10__ARM_TRACE07 0x280 0x650 0x000 0x7 0x0 +-#define MX6Q_PAD_CSI0_DAT11__IPU1_CSI0_DATA11 0x284 0x654 0x000 0x0 0x0 +-#define MX6Q_PAD_CSI0_DAT11__AUD3_RXFS 0x284 0x654 0x000 0x1 0x0 +-#define MX6Q_PAD_CSI0_DAT11__ECSPI2_SS0 0x284 0x654 0x81c 0x2 0x2 +-#define MX6Q_PAD_CSI0_DAT11__UART1_RX_DATA 0x284 0x654 0x920 0x3 0x1 +-#define MX6Q_PAD_CSI0_DAT11__UART1_TX_DATA 0x284 0x654 0x000 0x3 0x0 +-#define MX6Q_PAD_CSI0_DAT11__GPIO5_IO29 0x284 0x654 0x000 0x5 0x0 +-#define MX6Q_PAD_CSI0_DAT11__ARM_TRACE08 0x284 0x654 0x000 0x7 0x0 +-#define MX6Q_PAD_CSI0_DAT12__IPU1_CSI0_DATA12 0x288 0x658 0x000 0x0 0x0 +-#define MX6Q_PAD_CSI0_DAT12__EIM_DATA08 0x288 0x658 0x000 0x1 0x0 +-#define MX6Q_PAD_CSI0_DAT12__UART4_TX_DATA 0x288 0x658 0x000 0x3 0x0 +-#define MX6Q_PAD_CSI0_DAT12__UART4_RX_DATA 0x288 0x658 0x938 0x3 0x2 +-#define MX6Q_PAD_CSI0_DAT12__GPIO5_IO30 0x288 0x658 0x000 0x5 0x0 +-#define MX6Q_PAD_CSI0_DAT12__ARM_TRACE09 0x288 0x658 0x000 0x7 0x0 +-#define MX6Q_PAD_CSI0_DAT13__IPU1_CSI0_DATA13 0x28c 0x65c 0x000 0x0 0x0 +-#define MX6Q_PAD_CSI0_DAT13__EIM_DATA09 0x28c 0x65c 0x000 0x1 0x0 +-#define MX6Q_PAD_CSI0_DAT13__UART4_RX_DATA 0x28c 0x65c 0x938 0x3 0x3 +-#define MX6Q_PAD_CSI0_DAT13__UART4_TX_DATA 0x28c 0x65c 0x000 0x3 0x0 +-#define MX6Q_PAD_CSI0_DAT13__GPIO5_IO31 0x28c 0x65c 0x000 0x5 0x0 +-#define MX6Q_PAD_CSI0_DAT13__ARM_TRACE10 0x28c 0x65c 0x000 0x7 0x0 +-#define MX6Q_PAD_CSI0_DAT14__IPU1_CSI0_DATA14 0x290 0x660 0x000 0x0 0x0 +-#define MX6Q_PAD_CSI0_DAT14__EIM_DATA10 0x290 0x660 0x000 0x1 0x0 +-#define MX6Q_PAD_CSI0_DAT14__UART5_TX_DATA 0x290 0x660 0x000 0x3 0x0 +-#define MX6Q_PAD_CSI0_DAT14__UART5_RX_DATA 0x290 0x660 0x940 0x3 0x2 +-#define MX6Q_PAD_CSI0_DAT14__GPIO6_IO00 0x290 0x660 0x000 0x5 0x0 +-#define MX6Q_PAD_CSI0_DAT14__ARM_TRACE11 0x290 0x660 0x000 0x7 0x0 +-#define MX6Q_PAD_CSI0_DAT15__IPU1_CSI0_DATA15 0x294 0x664 0x000 0x0 0x0 +-#define MX6Q_PAD_CSI0_DAT15__EIM_DATA11 0x294 0x664 0x000 0x1 0x0 +-#define MX6Q_PAD_CSI0_DAT15__UART5_RX_DATA 0x294 0x664 0x940 0x3 0x3 +-#define MX6Q_PAD_CSI0_DAT15__UART5_TX_DATA 0x294 0x664 0x000 0x3 0x0 +-#define MX6Q_PAD_CSI0_DAT15__GPIO6_IO01 0x294 0x664 0x000 0x5 0x0 +-#define MX6Q_PAD_CSI0_DAT15__ARM_TRACE12 0x294 0x664 0x000 0x7 0x0 +-#define MX6Q_PAD_CSI0_DAT16__IPU1_CSI0_DATA16 0x298 0x668 0x000 0x0 0x0 +-#define MX6Q_PAD_CSI0_DAT16__EIM_DATA12 0x298 0x668 0x000 0x1 0x0 +-#define MX6Q_PAD_CSI0_DAT16__UART4_RTS_B 0x298 0x668 0x934 0x3 0x0 +-#define MX6Q_PAD_CSI0_DAT16__UART4_CTS_B 0x298 0x668 0x000 0x3 0x0 +-#define MX6Q_PAD_CSI0_DAT16__GPIO6_IO02 0x298 0x668 0x000 0x5 0x0 +-#define MX6Q_PAD_CSI0_DAT16__ARM_TRACE13 0x298 0x668 0x000 0x7 0x0 +-#define MX6Q_PAD_CSI0_DAT17__IPU1_CSI0_DATA17 0x29c 0x66c 0x000 0x0 0x0 +-#define MX6Q_PAD_CSI0_DAT17__EIM_DATA13 0x29c 0x66c 0x000 0x1 0x0 +-#define MX6Q_PAD_CSI0_DAT17__UART4_CTS_B 0x29c 0x66c 0x000 0x3 0x0 +-#define MX6Q_PAD_CSI0_DAT17__UART4_RTS_B 0x29c 0x66c 0x934 0x3 0x1 +-#define MX6Q_PAD_CSI0_DAT17__GPIO6_IO03 0x29c 0x66c 0x000 0x5 0x0 +-#define MX6Q_PAD_CSI0_DAT17__ARM_TRACE14 0x29c 0x66c 0x000 0x7 0x0 +-#define MX6Q_PAD_CSI0_DAT18__IPU1_CSI0_DATA18 0x2a0 0x670 0x000 0x0 0x0 +-#define MX6Q_PAD_CSI0_DAT18__EIM_DATA14 0x2a0 0x670 0x000 0x1 0x0 +-#define MX6Q_PAD_CSI0_DAT18__UART5_RTS_B 0x2a0 0x670 0x93c 0x3 0x2 +-#define MX6Q_PAD_CSI0_DAT18__UART5_CTS_B 0x2a0 0x670 0x000 0x3 0x0 +-#define MX6Q_PAD_CSI0_DAT18__GPIO6_IO04 0x2a0 0x670 0x000 0x5 0x0 +-#define MX6Q_PAD_CSI0_DAT18__ARM_TRACE15 0x2a0 0x670 0x000 0x7 0x0 +-#define MX6Q_PAD_CSI0_DAT19__IPU1_CSI0_DATA19 0x2a4 0x674 0x000 0x0 0x0 +-#define MX6Q_PAD_CSI0_DAT19__EIM_DATA15 0x2a4 0x674 0x000 0x1 0x0 +-#define MX6Q_PAD_CSI0_DAT19__UART5_CTS_B 0x2a4 0x674 0x000 0x3 0x0 +-#define MX6Q_PAD_CSI0_DAT19__UART5_RTS_B 0x2a4 0x674 0x93c 0x3 0x3 +-#define MX6Q_PAD_CSI0_DAT19__GPIO6_IO05 0x2a4 0x674 0x000 0x5 0x0 +-#define MX6Q_PAD_SD3_DAT7__SD3_DATA7 0x2a8 0x690 0x000 0x0 0x0 +-#define MX6Q_PAD_SD3_DAT7__UART1_TX_DATA 0x2a8 0x690 0x000 0x1 0x0 +-#define MX6Q_PAD_SD3_DAT7__UART1_RX_DATA 0x2a8 0x690 0x920 0x1 0x2 +-#define MX6Q_PAD_SD3_DAT7__GPIO6_IO17 0x2a8 0x690 0x000 0x5 0x0 +-#define MX6Q_PAD_SD3_DAT6__SD3_DATA6 0x2ac 0x694 0x000 0x0 0x0 +-#define MX6Q_PAD_SD3_DAT6__UART1_RX_DATA 0x2ac 0x694 0x920 0x1 0x3 +-#define MX6Q_PAD_SD3_DAT6__UART1_TX_DATA 0x2ac 0x694 0x000 0x1 0x0 +-#define MX6Q_PAD_SD3_DAT6__GPIO6_IO18 0x2ac 0x694 0x000 0x5 0x0 +-#define MX6Q_PAD_SD3_DAT5__SD3_DATA5 0x2b0 0x698 0x000 0x0 0x0 +-#define MX6Q_PAD_SD3_DAT5__UART2_TX_DATA 0x2b0 0x698 0x000 0x1 0x0 +-#define MX6Q_PAD_SD3_DAT5__UART2_RX_DATA 0x2b0 0x698 0x928 0x1 0x4 +-#define MX6Q_PAD_SD3_DAT5__GPIO7_IO00 0x2b0 0x698 0x000 0x5 0x0 +-#define MX6Q_PAD_SD3_DAT4__SD3_DATA4 0x2b4 0x69c 0x000 0x0 0x0 +-#define MX6Q_PAD_SD3_DAT4__UART2_RX_DATA 0x2b4 0x69c 0x928 0x1 0x5 +-#define MX6Q_PAD_SD3_DAT4__UART2_TX_DATA 0x2b4 0x69c 0x000 0x1 0x0 +-#define MX6Q_PAD_SD3_DAT4__GPIO7_IO01 0x2b4 0x69c 0x000 0x5 0x0 +-#define MX6Q_PAD_SD3_CMD__SD3_CMD 0x2b8 0x6a0 0x000 0x0 0x0 +-#define MX6Q_PAD_SD3_CMD__UART2_CTS_B 0x2b8 0x6a0 0x000 0x1 0x0 +-#define MX6Q_PAD_SD3_CMD__UART2_RTS_B 0x2b8 0x6a0 0x924 0x1 0x2 +-#define MX6Q_PAD_SD3_CMD__FLEXCAN1_TX 0x2b8 0x6a0 0x000 0x2 0x0 +-#define MX6Q_PAD_SD3_CMD__GPIO7_IO02 0x2b8 0x6a0 0x000 0x5 0x0 +-#define MX6Q_PAD_SD3_CLK__SD3_CLK 0x2bc 0x6a4 0x000 0x0 0x0 +-#define MX6Q_PAD_SD3_CLK__UART2_RTS_B 0x2bc 0x6a4 0x924 0x1 0x3 +-#define MX6Q_PAD_SD3_CLK__UART2_CTS_B 0x2bc 0x6a4 0x000 0x1 0x0 +-#define MX6Q_PAD_SD3_CLK__FLEXCAN1_RX 0x2bc 0x6a4 0x7e4 0x2 0x2 +-#define MX6Q_PAD_SD3_CLK__GPIO7_IO03 0x2bc 0x6a4 0x000 0x5 0x0 +-#define MX6Q_PAD_SD3_DAT0__SD3_DATA0 0x2c0 0x6a8 0x000 0x0 0x0 +-#define MX6Q_PAD_SD3_DAT0__UART1_CTS_B 0x2c0 0x6a8 0x000 0x1 0x0 +-#define MX6Q_PAD_SD3_DAT0__UART1_RTS_B 0x2c0 0x6a8 0x91c 0x1 0x2 +-#define MX6Q_PAD_SD3_DAT0__FLEXCAN2_TX 0x2c0 0x6a8 0x000 0x2 0x0 +-#define MX6Q_PAD_SD3_DAT0__GPIO7_IO04 0x2c0 0x6a8 0x000 0x5 0x0 +-#define MX6Q_PAD_SD3_DAT1__SD3_DATA1 0x2c4 0x6ac 0x000 0x0 0x0 +-#define MX6Q_PAD_SD3_DAT1__UART1_RTS_B 0x2c4 0x6ac 0x91c 0x1 0x3 +-#define MX6Q_PAD_SD3_DAT1__UART1_CTS_B 0x2c4 0x6ac 0x000 0x1 0x0 +-#define MX6Q_PAD_SD3_DAT1__FLEXCAN2_RX 0x2c4 0x6ac 0x7e8 0x2 0x1 +-#define MX6Q_PAD_SD3_DAT1__GPIO7_IO05 0x2c4 0x6ac 0x000 0x5 0x0 +-#define MX6Q_PAD_SD3_DAT2__SD3_DATA2 0x2c8 0x6b0 0x000 0x0 0x0 +-#define MX6Q_PAD_SD3_DAT2__GPIO7_IO06 0x2c8 0x6b0 0x000 0x5 0x0 +-#define MX6Q_PAD_SD3_DAT3__SD3_DATA3 0x2cc 0x6b4 0x000 0x0 0x0 +-#define MX6Q_PAD_SD3_DAT3__UART3_CTS_B 0x2cc 0x6b4 0x000 0x1 0x0 +-#define MX6Q_PAD_SD3_DAT3__UART3_RTS_B 0x2cc 0x6b4 0x92c 0x1 0x4 +-#define MX6Q_PAD_SD3_DAT3__GPIO7_IO07 0x2cc 0x6b4 0x000 0x5 0x0 +-#define MX6Q_PAD_SD3_RST__SD3_RESET 0x2d0 0x6b8 0x000 0x0 0x0 +-#define MX6Q_PAD_SD3_RST__UART3_RTS_B 0x2d0 0x6b8 0x92c 0x1 0x5 +-#define MX6Q_PAD_SD3_RST__UART3_CTS_B 0x2d0 0x6b8 0x000 0x1 0x0 +-#define MX6Q_PAD_SD3_RST__GPIO7_IO08 0x2d0 0x6b8 0x000 0x5 0x0 +-#define MX6Q_PAD_NANDF_CLE__NAND_CLE 0x2d4 0x6bc 0x000 0x0 0x0 +-#define MX6Q_PAD_NANDF_CLE__IPU2_SISG4 0x2d4 0x6bc 0x000 0x1 0x0 +-#define MX6Q_PAD_NANDF_CLE__GPIO6_IO07 0x2d4 0x6bc 0x000 0x5 0x0 +-#define MX6Q_PAD_NANDF_ALE__NAND_ALE 0x2d8 0x6c0 0x000 0x0 0x0 +-#define MX6Q_PAD_NANDF_ALE__SD4_RESET 0x2d8 0x6c0 0x000 0x1 0x0 +-#define MX6Q_PAD_NANDF_ALE__GPIO6_IO08 0x2d8 0x6c0 0x000 0x5 0x0 +-#define MX6Q_PAD_NANDF_WP_B__NAND_WP_B 0x2dc 0x6c4 0x000 0x0 0x0 +-#define MX6Q_PAD_NANDF_WP_B__IPU2_SISG5 0x2dc 0x6c4 0x000 0x1 0x0 +-#define MX6Q_PAD_NANDF_WP_B__GPIO6_IO09 0x2dc 0x6c4 0x000 0x5 0x0 +-#define MX6Q_PAD_NANDF_RB0__NAND_READY_B 0x2e0 0x6c8 0x000 0x0 0x0 +-#define MX6Q_PAD_NANDF_RB0__IPU2_DI0_PIN01 0x2e0 0x6c8 0x000 0x1 0x0 +-#define MX6Q_PAD_NANDF_RB0__GPIO6_IO10 0x2e0 0x6c8 0x000 0x5 0x0 +-#define MX6Q_PAD_NANDF_CS0__NAND_CE0_B 0x2e4 0x6cc 0x000 0x0 0x0 +-#define MX6Q_PAD_NANDF_CS0__GPIO6_IO11 0x2e4 0x6cc 0x000 0x5 0x0 +-#define MX6Q_PAD_NANDF_CS1__NAND_CE1_B 0x2e8 0x6d0 0x000 0x0 0x0 +-#define MX6Q_PAD_NANDF_CS1__SD4_VSELECT 0x2e8 0x6d0 0x000 0x1 0x0 +-#define MX6Q_PAD_NANDF_CS1__SD3_VSELECT 0x2e8 0x6d0 0x000 0x2 0x0 +-#define MX6Q_PAD_NANDF_CS1__GPIO6_IO14 0x2e8 0x6d0 0x000 0x5 0x0 +-#define MX6Q_PAD_NANDF_CS2__NAND_CE2_B 0x2ec 0x6d4 0x000 0x0 0x0 +-#define MX6Q_PAD_NANDF_CS2__IPU1_SISG0 0x2ec 0x6d4 0x000 0x1 0x0 +-#define MX6Q_PAD_NANDF_CS2__ESAI_TX0 0x2ec 0x6d4 0x874 0x2 0x1 +-#define MX6Q_PAD_NANDF_CS2__EIM_CRE 0x2ec 0x6d4 0x000 0x3 0x0 +-#define MX6Q_PAD_NANDF_CS2__CCM_CLKO2 0x2ec 0x6d4 0x000 0x4 0x0 +-#define MX6Q_PAD_NANDF_CS2__GPIO6_IO15 0x2ec 0x6d4 0x000 0x5 0x0 +-#define MX6Q_PAD_NANDF_CS2__IPU2_SISG0 0x2ec 0x6d4 0x000 0x6 0x0 +-#define MX6Q_PAD_NANDF_CS3__NAND_CE3_B 0x2f0 0x6d8 0x000 0x0 0x0 +-#define MX6Q_PAD_NANDF_CS3__IPU1_SISG1 0x2f0 0x6d8 0x000 0x1 0x0 +-#define MX6Q_PAD_NANDF_CS3__ESAI_TX1 0x2f0 0x6d8 0x878 0x2 0x1 +-#define MX6Q_PAD_NANDF_CS3__EIM_ADDR26 0x2f0 0x6d8 0x000 0x3 0x0 +-#define MX6Q_PAD_NANDF_CS3__GPIO6_IO16 0x2f0 0x6d8 0x000 0x5 0x0 +-#define MX6Q_PAD_NANDF_CS3__IPU2_SISG1 0x2f0 0x6d8 0x000 0x6 0x0 +-#define MX6Q_PAD_SD4_CMD__SD4_CMD 0x2f4 0x6dc 0x000 0x0 0x0 +-#define MX6Q_PAD_SD4_CMD__NAND_RE_B 0x2f4 0x6dc 0x000 0x1 0x0 +-#define MX6Q_PAD_SD4_CMD__UART3_TX_DATA 0x2f4 0x6dc 0x000 0x2 0x0 +-#define MX6Q_PAD_SD4_CMD__UART3_RX_DATA 0x2f4 0x6dc 0x930 0x2 0x2 +-#define MX6Q_PAD_SD4_CMD__GPIO7_IO09 0x2f4 0x6dc 0x000 0x5 0x0 +-#define MX6Q_PAD_SD4_CLK__SD4_CLK 0x2f8 0x6e0 0x000 0x0 0x0 +-#define MX6Q_PAD_SD4_CLK__NAND_WE_B 0x2f8 0x6e0 0x000 0x1 0x0 +-#define MX6Q_PAD_SD4_CLK__UART3_RX_DATA 0x2f8 0x6e0 0x930 0x2 0x3 +-#define MX6Q_PAD_SD4_CLK__UART3_TX_DATA 0x2f8 0x6e0 0x000 0x2 0x0 +-#define MX6Q_PAD_SD4_CLK__GPIO7_IO10 0x2f8 0x6e0 0x000 0x5 0x0 +-#define MX6Q_PAD_NANDF_D0__NAND_DATA00 0x2fc 0x6e4 0x000 0x0 0x0 +-#define MX6Q_PAD_NANDF_D0__SD1_DATA4 0x2fc 0x6e4 0x000 0x1 0x0 +-#define MX6Q_PAD_NANDF_D0__GPIO2_IO00 0x2fc 0x6e4 0x000 0x5 0x0 +-#define MX6Q_PAD_NANDF_D1__NAND_DATA01 0x300 0x6e8 0x000 0x0 0x0 +-#define MX6Q_PAD_NANDF_D1__SD1_DATA5 0x300 0x6e8 0x000 0x1 0x0 +-#define MX6Q_PAD_NANDF_D1__GPIO2_IO01 0x300 0x6e8 0x000 0x5 0x0 +-#define MX6Q_PAD_NANDF_D2__NAND_DATA02 0x304 0x6ec 0x000 0x0 0x0 +-#define MX6Q_PAD_NANDF_D2__SD1_DATA6 0x304 0x6ec 0x000 0x1 0x0 +-#define MX6Q_PAD_NANDF_D2__GPIO2_IO02 0x304 0x6ec 0x000 0x5 0x0 +-#define MX6Q_PAD_NANDF_D3__NAND_DATA03 0x308 0x6f0 0x000 0x0 0x0 +-#define MX6Q_PAD_NANDF_D3__SD1_DATA7 0x308 0x6f0 0x000 0x1 0x0 +-#define MX6Q_PAD_NANDF_D3__GPIO2_IO03 0x308 0x6f0 0x000 0x5 0x0 +-#define MX6Q_PAD_NANDF_D4__NAND_DATA04 0x30c 0x6f4 0x000 0x0 0x0 +-#define MX6Q_PAD_NANDF_D4__SD2_DATA4 0x30c 0x6f4 0x000 0x1 0x0 +-#define MX6Q_PAD_NANDF_D4__GPIO2_IO04 0x30c 0x6f4 0x000 0x5 0x0 +-#define MX6Q_PAD_NANDF_D5__NAND_DATA05 0x310 0x6f8 0x000 0x0 0x0 +-#define MX6Q_PAD_NANDF_D5__SD2_DATA5 0x310 0x6f8 0x000 0x1 0x0 +-#define MX6Q_PAD_NANDF_D5__GPIO2_IO05 0x310 0x6f8 0x000 0x5 0x0 +-#define MX6Q_PAD_NANDF_D6__NAND_DATA06 0x314 0x6fc 0x000 0x0 0x0 +-#define MX6Q_PAD_NANDF_D6__SD2_DATA6 0x314 0x6fc 0x000 0x1 0x0 +-#define MX6Q_PAD_NANDF_D6__GPIO2_IO06 0x314 0x6fc 0x000 0x5 0x0 +-#define MX6Q_PAD_NANDF_D7__NAND_DATA07 0x318 0x700 0x000 0x0 0x0 +-#define MX6Q_PAD_NANDF_D7__SD2_DATA7 0x318 0x700 0x000 0x1 0x0 +-#define MX6Q_PAD_NANDF_D7__GPIO2_IO07 0x318 0x700 0x000 0x5 0x0 +-#define MX6Q_PAD_SD4_DAT0__SD4_DATA0 0x31c 0x704 0x000 0x1 0x0 +-#define MX6Q_PAD_SD4_DAT0__NAND_DQS 0x31c 0x704 0x000 0x2 0x0 +-#define MX6Q_PAD_SD4_DAT0__GPIO2_IO08 0x31c 0x704 0x000 0x5 0x0 +-#define MX6Q_PAD_SD4_DAT1__SD4_DATA1 0x320 0x708 0x000 0x1 0x0 +-#define MX6Q_PAD_SD4_DAT1__PWM3_OUT 0x320 0x708 0x000 0x2 0x0 +-#define MX6Q_PAD_SD4_DAT1__GPIO2_IO09 0x320 0x708 0x000 0x5 0x0 +-#define MX6Q_PAD_SD4_DAT2__SD4_DATA2 0x324 0x70c 0x000 0x1 0x0 +-#define MX6Q_PAD_SD4_DAT2__PWM4_OUT 0x324 0x70c 0x000 0x2 0x0 +-#define MX6Q_PAD_SD4_DAT2__GPIO2_IO10 0x324 0x70c 0x000 0x5 0x0 +-#define MX6Q_PAD_SD4_DAT3__SD4_DATA3 0x328 0x710 0x000 0x1 0x0 +-#define MX6Q_PAD_SD4_DAT3__GPIO2_IO11 0x328 0x710 0x000 0x5 0x0 +-#define MX6Q_PAD_SD4_DAT4__SD4_DATA4 0x32c 0x714 0x000 0x1 0x0 +-#define MX6Q_PAD_SD4_DAT4__UART2_RX_DATA 0x32c 0x714 0x928 0x2 0x6 +-#define MX6Q_PAD_SD4_DAT4__UART2_TX_DATA 0x32c 0x714 0x000 0x2 0x0 +-#define MX6Q_PAD_SD4_DAT4__GPIO2_IO12 0x32c 0x714 0x000 0x5 0x0 +-#define MX6Q_PAD_SD4_DAT5__SD4_DATA5 0x330 0x718 0x000 0x1 0x0 +-#define MX6Q_PAD_SD4_DAT5__UART2_RTS_B 0x330 0x718 0x924 0x2 0x4 +-#define MX6Q_PAD_SD4_DAT5__UART2_CTS_B 0x330 0x718 0x000 0x2 0x0 +-#define MX6Q_PAD_SD4_DAT5__GPIO2_IO13 0x330 0x718 0x000 0x5 0x0 +-#define MX6Q_PAD_SD4_DAT6__SD4_DATA6 0x334 0x71c 0x000 0x1 0x0 +-#define MX6Q_PAD_SD4_DAT6__UART2_CTS_B 0x334 0x71c 0x000 0x2 0x0 +-#define MX6Q_PAD_SD4_DAT6__UART2_RTS_B 0x334 0x71c 0x924 0x2 0x5 +-#define MX6Q_PAD_SD4_DAT6__GPIO2_IO14 0x334 0x71c 0x000 0x5 0x0 +-#define MX6Q_PAD_SD4_DAT7__SD4_DATA7 0x338 0x720 0x000 0x1 0x0 +-#define MX6Q_PAD_SD4_DAT7__UART2_TX_DATA 0x338 0x720 0x000 0x2 0x0 +-#define MX6Q_PAD_SD4_DAT7__UART2_RX_DATA 0x338 0x720 0x928 0x2 0x7 +-#define MX6Q_PAD_SD4_DAT7__GPIO2_IO15 0x338 0x720 0x000 0x5 0x0 +-#define MX6Q_PAD_SD1_DAT1__SD1_DATA1 0x33c 0x724 0x000 0x0 0x0 +-#define MX6Q_PAD_SD1_DAT1__ECSPI5_SS0 0x33c 0x724 0x834 0x1 0x1 +-#define MX6Q_PAD_SD1_DAT1__PWM3_OUT 0x33c 0x724 0x000 0x2 0x0 +-#define MX6Q_PAD_SD1_DAT1__GPT_CAPTURE2 0x33c 0x724 0x000 0x3 0x0 +-#define MX6Q_PAD_SD1_DAT1__GPIO1_IO17 0x33c 0x724 0x000 0x5 0x0 +-#define MX6Q_PAD_SD1_DAT0__SD1_DATA0 0x340 0x728 0x000 0x0 0x0 +-#define MX6Q_PAD_SD1_DAT0__ECSPI5_MISO 0x340 0x728 0x82c 0x1 0x1 +-#define MX6Q_PAD_SD1_DAT0__GPT_CAPTURE1 0x340 0x728 0x000 0x3 0x0 +-#define MX6Q_PAD_SD1_DAT0__GPIO1_IO16 0x340 0x728 0x000 0x5 0x0 +-#define MX6Q_PAD_SD1_DAT3__SD1_DATA3 0x344 0x72c 0x000 0x0 0x0 +-#define MX6Q_PAD_SD1_DAT3__ECSPI5_SS2 0x344 0x72c 0x000 0x1 0x0 +-#define MX6Q_PAD_SD1_DAT3__GPT_COMPARE3 0x344 0x72c 0x000 0x2 0x0 +-#define MX6Q_PAD_SD1_DAT3__PWM1_OUT 0x344 0x72c 0x000 0x3 0x0 +-#define MX6Q_PAD_SD1_DAT3__WDOG2_B 0x344 0x72c 0x000 0x4 0x0 +-#define MX6Q_PAD_SD1_DAT3__GPIO1_IO21 0x344 0x72c 0x000 0x5 0x0 +-#define MX6Q_PAD_SD1_DAT3__WDOG2_RESET_B_DEB 0x344 0x72c 0x000 0x6 0x0 +-#define MX6Q_PAD_SD1_CMD__SD1_CMD 0x348 0x730 0x000 0x0 0x0 +-#define MX6Q_PAD_SD1_CMD__ECSPI5_MOSI 0x348 0x730 0x830 0x1 0x0 +-#define MX6Q_PAD_SD1_CMD__PWM4_OUT 0x348 0x730 0x000 0x2 0x0 +-#define MX6Q_PAD_SD1_CMD__GPT_COMPARE1 0x348 0x730 0x000 0x3 0x0 +-#define MX6Q_PAD_SD1_CMD__GPIO1_IO18 0x348 0x730 0x000 0x5 0x0 +-#define MX6Q_PAD_SD1_DAT2__SD1_DATA2 0x34c 0x734 0x000 0x0 0x0 +-#define MX6Q_PAD_SD1_DAT2__ECSPI5_SS1 0x34c 0x734 0x838 0x1 0x1 +-#define MX6Q_PAD_SD1_DAT2__GPT_COMPARE2 0x34c 0x734 0x000 0x2 0x0 +-#define MX6Q_PAD_SD1_DAT2__PWM2_OUT 0x34c 0x734 0x000 0x3 0x0 +-#define MX6Q_PAD_SD1_DAT2__WDOG1_B 0x34c 0x734 0x000 0x4 0x0 +-#define MX6Q_PAD_SD1_DAT2__GPIO1_IO19 0x34c 0x734 0x000 0x5 0x0 +-#define MX6Q_PAD_SD1_DAT2__WDOG1_RESET_B_DEB 0x34c 0x734 0x000 0x6 0x0 +-#define MX6Q_PAD_SD1_CLK__SD1_CLK 0x350 0x738 0x000 0x0 0x0 +-#define MX6Q_PAD_SD1_CLK__ECSPI5_SCLK 0x350 0x738 0x828 0x1 0x0 +-#define MX6Q_PAD_SD1_CLK__GPT_CLKIN 0x350 0x738 0x000 0x3 0x0 +-#define MX6Q_PAD_SD1_CLK__GPIO1_IO20 0x350 0x738 0x000 0x5 0x0 +-#define MX6Q_PAD_SD2_CLK__SD2_CLK 0x354 0x73c 0x000 0x0 0x0 +-#define MX6Q_PAD_SD2_CLK__ECSPI5_SCLK 0x354 0x73c 0x828 0x1 0x1 +-#define MX6Q_PAD_SD2_CLK__KEY_COL5 0x354 0x73c 0x8e8 0x2 0x3 +-#define MX6Q_PAD_SD2_CLK__AUD4_RXFS 0x354 0x73c 0x7c0 0x3 0x1 +-#define MX6Q_PAD_SD2_CLK__GPIO1_IO10 0x354 0x73c 0x000 0x5 0x0 +-#define MX6Q_PAD_SD2_CMD__SD2_CMD 0x358 0x740 0x000 0x0 0x0 +-#define MX6Q_PAD_SD2_CMD__ECSPI5_MOSI 0x358 0x740 0x830 0x1 0x1 +-#define MX6Q_PAD_SD2_CMD__KEY_ROW5 0x358 0x740 0x8f4 0x2 0x2 +-#define MX6Q_PAD_SD2_CMD__AUD4_RXC 0x358 0x740 0x7bc 0x3 0x1 +-#define MX6Q_PAD_SD2_CMD__GPIO1_IO11 0x358 0x740 0x000 0x5 0x0 +-#define MX6Q_PAD_SD2_DAT3__SD2_DATA3 0x35c 0x744 0x000 0x0 0x0 +-#define MX6Q_PAD_SD2_DAT3__ECSPI5_SS3 0x35c 0x744 0x000 0x1 0x0 +-#define MX6Q_PAD_SD2_DAT3__KEY_COL6 0x35c 0x744 0x8ec 0x2 0x2 +-#define MX6Q_PAD_SD2_DAT3__AUD4_TXC 0x35c 0x744 0x7c4 0x3 0x1 +-#define MX6Q_PAD_SD2_DAT3__GPIO1_IO12 0x35c 0x744 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x04c 0x360 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD2_DAT1__ECSPI5_SS0 0x04c 0x360 0x834 0x1 0x0 ++#define MX6QDL_PAD_SD2_DAT1__EIM_CS2_B 0x04c 0x360 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD2_DAT1__AUD4_TXFS 0x04c 0x360 0x7c8 0x3 0x0 ++#define MX6QDL_PAD_SD2_DAT1__KEY_COL7 0x04c 0x360 0x8f0 0x4 0x0 ++#define MX6QDL_PAD_SD2_DAT1__GPIO1_IO14 0x04c 0x360 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x050 0x364 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD2_DAT2__ECSPI5_SS1 0x050 0x364 0x838 0x1 0x0 ++#define MX6QDL_PAD_SD2_DAT2__EIM_CS3_B 0x050 0x364 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD2_DAT2__AUD4_TXD 0x050 0x364 0x7b8 0x3 0x0 ++#define MX6QDL_PAD_SD2_DAT2__KEY_ROW6 0x050 0x364 0x8f8 0x4 0x0 ++#define MX6QDL_PAD_SD2_DAT2__GPIO1_IO13 0x050 0x364 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x054 0x368 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD2_DAT0__ECSPI5_MISO 0x054 0x368 0x82c 0x1 0x0 ++#define MX6QDL_PAD_SD2_DAT0__AUD4_RXD 0x054 0x368 0x7b4 0x3 0x0 ++#define MX6QDL_PAD_SD2_DAT0__KEY_ROW7 0x054 0x368 0x8fc 0x4 0x0 ++#define MX6QDL_PAD_SD2_DAT0__GPIO1_IO15 0x054 0x368 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD2_DAT0__DCIC2_OUT 0x054 0x368 0x000 0x6 0x0 ++#define MX6QDL_PAD_RGMII_TXC__USB_H2_DATA 0x058 0x36c 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x058 0x36c 0x000 0x1 0x0 ++#define MX6QDL_PAD_RGMII_TXC__SPDIF_EXT_CLK 0x058 0x36c 0x918 0x2 0x0 ++#define MX6QDL_PAD_RGMII_TXC__GPIO6_IO19 0x058 0x36c 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_TXC__XTALOSC_REF_CLK_24M 0x058 0x36c 0x000 0x7 0x0 ++#define MX6QDL_PAD_RGMII_TD0__HSI_TX_READY 0x05c 0x370 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x05c 0x370 0x000 0x1 0x0 ++#define MX6QDL_PAD_RGMII_TD0__GPIO6_IO20 0x05c 0x370 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_TD1__HSI_RX_FLAG 0x060 0x374 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x060 0x374 0x000 0x1 0x0 ++#define MX6QDL_PAD_RGMII_TD1__GPIO6_IO21 0x060 0x374 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_TD2__HSI_RX_DATA 0x064 0x378 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x064 0x378 0x000 0x1 0x0 ++#define MX6QDL_PAD_RGMII_TD2__GPIO6_IO22 0x064 0x378 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_TD3__HSI_RX_WAKE 0x068 0x37c 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x068 0x37c 0x000 0x1 0x0 ++#define MX6QDL_PAD_RGMII_TD3__GPIO6_IO23 0x068 0x37c 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_RX_CTL__USB_H3_DATA 0x06c 0x380 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x06c 0x380 0x858 0x1 0x0 ++#define MX6QDL_PAD_RGMII_RX_CTL__GPIO6_IO24 0x06c 0x380 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_RD0__HSI_RX_READY 0x070 0x384 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x070 0x384 0x848 0x1 0x0 ++#define MX6QDL_PAD_RGMII_RD0__GPIO6_IO25 0x070 0x384 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_TX_CTL__USB_H2_STROBE 0x074 0x388 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x074 0x388 0x000 0x1 0x0 ++#define MX6QDL_PAD_RGMII_TX_CTL__GPIO6_IO26 0x074 0x388 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_TX_CTL__ENET_REF_CLK 0x074 0x388 0x83c 0x7 0x0 ++#define MX6QDL_PAD_RGMII_RD1__HSI_TX_FLAG 0x078 0x38c 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x078 0x38c 0x84c 0x1 0x0 ++#define MX6QDL_PAD_RGMII_RD1__GPIO6_IO27 0x078 0x38c 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_RD2__HSI_TX_DATA 0x07c 0x390 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x07c 0x390 0x850 0x1 0x0 ++#define MX6QDL_PAD_RGMII_RD2__GPIO6_IO28 0x07c 0x390 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_RD3__HSI_TX_WAKE 0x080 0x394 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x080 0x394 0x854 0x1 0x0 ++#define MX6QDL_PAD_RGMII_RD3__GPIO6_IO29 0x080 0x394 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_RXC__USB_H3_STROBE 0x084 0x398 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x084 0x398 0x844 0x1 0x0 ++#define MX6QDL_PAD_RGMII_RXC__GPIO6_IO30 0x084 0x398 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A25__EIM_ADDR25 0x088 0x39c 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_A25__ECSPI4_SS1 0x088 0x39c 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_A25__ECSPI2_RDY 0x088 0x39c 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_A25__IPU1_DI1_PIN12 0x088 0x39c 0x000 0x3 0x0 ++#define MX6QDL_PAD_EIM_A25__IPU1_DI0_D1_CS 0x088 0x39c 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_A25__GPIO5_IO02 0x088 0x39c 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A25__HDMI_TX_CEC_LINE 0x088 0x39c 0x88c 0x6 0x0 ++#define MX6QDL_PAD_EIM_EB2__EIM_EB2_B 0x08c 0x3a0 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_EB2__ECSPI1_SS0 0x08c 0x3a0 0x800 0x1 0x0 ++#define MX6QDL_PAD_EIM_EB2__IPU2_CSI1_DATA19 0x08c 0x3a0 0x8d4 0x3 0x0 ++#define MX6QDL_PAD_EIM_EB2__HDMI_TX_DDC_SCL 0x08c 0x3a0 0x890 0x4 0x0 ++#define MX6QDL_PAD_EIM_EB2__GPIO2_IO30 0x08c 0x3a0 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_EB2__I2C2_SCL 0x08c 0x3a0 0x8a0 0x6 0x0 ++#define MX6QDL_PAD_EIM_EB2__SRC_BOOT_CFG30 0x08c 0x3a0 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_D16__EIM_DATA16 0x090 0x3a4 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D16__ECSPI1_SCLK 0x090 0x3a4 0x7f4 0x1 0x0 ++#define MX6QDL_PAD_EIM_D16__IPU1_DI0_PIN05 0x090 0x3a4 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D16__IPU2_CSI1_DATA18 0x090 0x3a4 0x8d0 0x3 0x0 ++#define MX6QDL_PAD_EIM_D16__HDMI_TX_DDC_SDA 0x090 0x3a4 0x894 0x4 0x0 ++#define MX6QDL_PAD_EIM_D16__GPIO3_IO16 0x090 0x3a4 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D16__I2C2_SDA 0x090 0x3a4 0x8a4 0x6 0x0 ++#define MX6QDL_PAD_EIM_D17__EIM_DATA17 0x094 0x3a8 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D17__ECSPI1_MISO 0x094 0x3a8 0x7f8 0x1 0x0 ++#define MX6QDL_PAD_EIM_D17__IPU1_DI0_PIN06 0x094 0x3a8 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D17__IPU2_CSI1_PIXCLK 0x094 0x3a8 0x8e0 0x3 0x0 ++#define MX6QDL_PAD_EIM_D17__DCIC1_OUT 0x094 0x3a8 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D17__GPIO3_IO17 0x094 0x3a8 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D17__I2C3_SCL 0x094 0x3a8 0x8a8 0x6 0x0 ++#define MX6QDL_PAD_EIM_D18__EIM_DATA18 0x098 0x3ac 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D18__ECSPI1_MOSI 0x098 0x3ac 0x7fc 0x1 0x0 ++#define MX6QDL_PAD_EIM_D18__IPU1_DI0_PIN07 0x098 0x3ac 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D18__IPU2_CSI1_DATA17 0x098 0x3ac 0x8cc 0x3 0x0 ++#define MX6QDL_PAD_EIM_D18__IPU1_DI1_D0_CS 0x098 0x3ac 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D18__GPIO3_IO18 0x098 0x3ac 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D18__I2C3_SDA 0x098 0x3ac 0x8ac 0x6 0x0 ++#define MX6QDL_PAD_EIM_D19__EIM_DATA19 0x09c 0x3b0 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D19__ECSPI1_SS1 0x09c 0x3b0 0x804 0x1 0x0 ++#define MX6QDL_PAD_EIM_D19__IPU1_DI0_PIN08 0x09c 0x3b0 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D19__IPU2_CSI1_DATA16 0x09c 0x3b0 0x8c8 0x3 0x0 ++#define MX6QDL_PAD_EIM_D19__UART1_CTS_B 0x09c 0x3b0 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D19__UART1_RTS_B 0x09c 0x3b0 0x91c 0x4 0x0 ++#define MX6QDL_PAD_EIM_D19__GPIO3_IO19 0x09c 0x3b0 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D19__EPIT1_OUT 0x09c 0x3b0 0x000 0x6 0x0 ++#define MX6QDL_PAD_EIM_D20__EIM_DATA20 0x0a0 0x3b4 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D20__ECSPI4_SS0 0x0a0 0x3b4 0x824 0x1 0x0 ++#define MX6QDL_PAD_EIM_D20__IPU1_DI0_PIN16 0x0a0 0x3b4 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D20__IPU2_CSI1_DATA15 0x0a0 0x3b4 0x8c4 0x3 0x0 ++#define MX6QDL_PAD_EIM_D20__UART1_RTS_B 0x0a0 0x3b4 0x91c 0x4 0x1 ++#define MX6QDL_PAD_EIM_D20__UART1_CTS_B 0x0a0 0x3b4 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D20__GPIO3_IO20 0x0a0 0x3b4 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D20__EPIT2_OUT 0x0a0 0x3b4 0x000 0x6 0x0 ++#define MX6QDL_PAD_EIM_D21__EIM_DATA21 0x0a4 0x3b8 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D21__ECSPI4_SCLK 0x0a4 0x3b8 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_D21__IPU1_DI0_PIN17 0x0a4 0x3b8 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D21__IPU2_CSI1_DATA11 0x0a4 0x3b8 0x8b4 0x3 0x0 ++#define MX6QDL_PAD_EIM_D21__USB_OTG_OC 0x0a4 0x3b8 0x944 0x4 0x0 ++#define MX6QDL_PAD_EIM_D21__GPIO3_IO21 0x0a4 0x3b8 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D21__I2C1_SCL 0x0a4 0x3b8 0x898 0x6 0x0 ++#define MX6QDL_PAD_EIM_D21__SPDIF_IN 0x0a4 0x3b8 0x914 0x7 0x0 ++#define MX6QDL_PAD_EIM_D22__EIM_DATA22 0x0a8 0x3bc 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D22__ECSPI4_MISO 0x0a8 0x3bc 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_D22__IPU1_DI0_PIN01 0x0a8 0x3bc 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D22__IPU2_CSI1_DATA10 0x0a8 0x3bc 0x8b0 0x3 0x0 ++#define MX6QDL_PAD_EIM_D22__USB_OTG_PWR 0x0a8 0x3bc 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x0a8 0x3bc 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D22__SPDIF_OUT 0x0a8 0x3bc 0x000 0x6 0x0 ++#define MX6QDL_PAD_EIM_D23__EIM_DATA23 0x0ac 0x3c0 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D23__IPU1_DI0_D0_CS 0x0ac 0x3c0 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_D23__UART3_CTS_B 0x0ac 0x3c0 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D23__UART3_RTS_B 0x0ac 0x3c0 0x92c 0x2 0x0 ++#define MX6QDL_PAD_EIM_D23__UART1_DCD_B 0x0ac 0x3c0 0x000 0x3 0x0 ++#define MX6QDL_PAD_EIM_D23__IPU2_CSI1_DATA_EN 0x0ac 0x3c0 0x8d8 0x4 0x0 ++#define MX6QDL_PAD_EIM_D23__GPIO3_IO23 0x0ac 0x3c0 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D23__IPU1_DI1_PIN02 0x0ac 0x3c0 0x000 0x6 0x0 ++#define MX6QDL_PAD_EIM_D23__IPU1_DI1_PIN14 0x0ac 0x3c0 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_EB3__EIM_EB3_B 0x0b0 0x3c4 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_EB3__ECSPI4_RDY 0x0b0 0x3c4 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_EB3__UART3_RTS_B 0x0b0 0x3c4 0x92c 0x2 0x1 ++#define MX6QDL_PAD_EIM_EB3__UART3_CTS_B 0x0b0 0x3c4 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_EB3__UART1_RI_B 0x0b0 0x3c4 0x000 0x3 0x0 ++#define MX6QDL_PAD_EIM_EB3__IPU2_CSI1_HSYNC 0x0b0 0x3c4 0x8dc 0x4 0x0 ++#define MX6QDL_PAD_EIM_EB3__GPIO2_IO31 0x0b0 0x3c4 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_EB3__IPU1_DI1_PIN03 0x0b0 0x3c4 0x000 0x6 0x0 ++#define MX6QDL_PAD_EIM_EB3__SRC_BOOT_CFG31 0x0b0 0x3c4 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_D24__EIM_DATA24 0x0b4 0x3c8 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D24__ECSPI4_SS2 0x0b4 0x3c8 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_D24__UART3_TX_DATA 0x0b4 0x3c8 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D24__UART3_RX_DATA 0x0b4 0x3c8 0x930 0x2 0x0 ++#define MX6QDL_PAD_EIM_D24__ECSPI1_SS2 0x0b4 0x3c8 0x808 0x3 0x0 ++#define MX6QDL_PAD_EIM_D24__ECSPI2_SS2 0x0b4 0x3c8 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D24__GPIO3_IO24 0x0b4 0x3c8 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D24__AUD5_RXFS 0x0b4 0x3c8 0x7d8 0x6 0x0 ++#define MX6QDL_PAD_EIM_D24__UART1_DTR_B 0x0b4 0x3c8 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_D25__EIM_DATA25 0x0b8 0x3cc 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D25__ECSPI4_SS3 0x0b8 0x3cc 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_D25__UART3_RX_DATA 0x0b8 0x3cc 0x930 0x2 0x1 ++#define MX6QDL_PAD_EIM_D25__UART3_TX_DATA 0x0b8 0x3cc 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D25__ECSPI1_SS3 0x0b8 0x3cc 0x80c 0x3 0x0 ++#define MX6QDL_PAD_EIM_D25__ECSPI2_SS3 0x0b8 0x3cc 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D25__GPIO3_IO25 0x0b8 0x3cc 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D25__AUD5_RXC 0x0b8 0x3cc 0x7d4 0x6 0x0 ++#define MX6QDL_PAD_EIM_D25__UART1_DSR_B 0x0b8 0x3cc 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_D26__EIM_DATA26 0x0bc 0x3d0 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D26__IPU1_DI1_PIN11 0x0bc 0x3d0 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_D26__IPU1_CSI0_DATA01 0x0bc 0x3d0 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D26__IPU2_CSI1_DATA14 0x0bc 0x3d0 0x8c0 0x3 0x0 ++#define MX6QDL_PAD_EIM_D26__UART2_TX_DATA 0x0bc 0x3d0 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D26__UART2_RX_DATA 0x0bc 0x3d0 0x928 0x4 0x0 ++#define MX6QDL_PAD_EIM_D26__GPIO3_IO26 0x0bc 0x3d0 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D26__IPU1_SISG2 0x0bc 0x3d0 0x000 0x6 0x0 ++#define MX6QDL_PAD_EIM_D26__IPU1_DISP1_DATA22 0x0bc 0x3d0 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_D27__EIM_DATA27 0x0c0 0x3d4 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D27__IPU1_DI1_PIN13 0x0c0 0x3d4 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_D27__IPU1_CSI0_DATA00 0x0c0 0x3d4 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D27__IPU2_CSI1_DATA13 0x0c0 0x3d4 0x8bc 0x3 0x0 ++#define MX6QDL_PAD_EIM_D27__UART2_RX_DATA 0x0c0 0x3d4 0x928 0x4 0x1 ++#define MX6QDL_PAD_EIM_D27__UART2_TX_DATA 0x0c0 0x3d4 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D27__GPIO3_IO27 0x0c0 0x3d4 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D27__IPU1_SISG3 0x0c0 0x3d4 0x000 0x6 0x0 ++#define MX6QDL_PAD_EIM_D27__IPU1_DISP1_DATA23 0x0c0 0x3d4 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_D28__EIM_DATA28 0x0c4 0x3d8 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D28__I2C1_SDA 0x0c4 0x3d8 0x89c 0x1 0x0 ++#define MX6QDL_PAD_EIM_D28__ECSPI4_MOSI 0x0c4 0x3d8 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D28__IPU2_CSI1_DATA12 0x0c4 0x3d8 0x8b8 0x3 0x0 ++#define MX6QDL_PAD_EIM_D28__UART2_CTS_B 0x0c4 0x3d8 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D28__UART2_RTS_B 0x0c4 0x3d8 0x924 0x4 0x0 ++#define MX6QDL_PAD_EIM_D28__UART2_DTE_CTS_B 0x0c4 0x3d8 0x924 0x4 0x0 ++#define MX6QDL_PAD_EIM_D28__UART2_DTE_RTS_B 0x0c4 0x3d8 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D28__GPIO3_IO28 0x0c4 0x3d8 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D28__IPU1_EXT_TRIG 0x0c4 0x3d8 0x000 0x6 0x0 ++#define MX6QDL_PAD_EIM_D28__IPU1_DI0_PIN13 0x0c4 0x3d8 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_D29__EIM_DATA29 0x0c8 0x3dc 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D29__IPU1_DI1_PIN15 0x0c8 0x3dc 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_D29__ECSPI4_SS0 0x0c8 0x3dc 0x824 0x2 0x1 ++#define MX6QDL_PAD_EIM_D29__UART2_RTS_B 0x0c8 0x3dc 0x924 0x4 0x1 ++#define MX6QDL_PAD_EIM_D29__UART2_CTS_B 0x0c8 0x3dc 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D29__UART2_DTE_RTS_B 0x0c8 0x3dc 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D29__UART2_DTE_CTS_B 0x0c8 0x3dc 0x924 0x4 0x1 ++#define MX6QDL_PAD_EIM_D29__GPIO3_IO29 0x0c8 0x3dc 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D29__IPU2_CSI1_VSYNC 0x0c8 0x3dc 0x8e4 0x6 0x0 ++#define MX6QDL_PAD_EIM_D29__IPU1_DI0_PIN14 0x0c8 0x3dc 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_D30__EIM_DATA30 0x0cc 0x3e0 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D30__IPU1_DISP1_DATA21 0x0cc 0x3e0 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_D30__IPU1_DI0_PIN11 0x0cc 0x3e0 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D30__IPU1_CSI0_DATA03 0x0cc 0x3e0 0x000 0x3 0x0 ++#define MX6QDL_PAD_EIM_D30__UART3_CTS_B 0x0cc 0x3e0 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D30__UART3_RTS_B 0x0cc 0x3e0 0x92c 0x4 0x2 ++#define MX6QDL_PAD_EIM_D30__GPIO3_IO30 0x0cc 0x3e0 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D30__USB_H1_OC 0x0cc 0x3e0 0x948 0x6 0x0 ++#define MX6QDL_PAD_EIM_D31__EIM_DATA31 0x0d0 0x3e4 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D31__IPU1_DISP1_DATA20 0x0d0 0x3e4 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_D31__IPU1_DI0_PIN12 0x0d0 0x3e4 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D31__IPU1_CSI0_DATA02 0x0d0 0x3e4 0x000 0x3 0x0 ++#define MX6QDL_PAD_EIM_D31__UART3_RTS_B 0x0d0 0x3e4 0x92c 0x4 0x3 ++#define MX6QDL_PAD_EIM_D31__UART3_CTS_B 0x0d0 0x3e4 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D31__GPIO3_IO31 0x0d0 0x3e4 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D31__USB_H1_PWR 0x0d0 0x3e4 0x000 0x6 0x0 ++#define MX6QDL_PAD_EIM_A24__EIM_ADDR24 0x0d4 0x3e8 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_A24__IPU1_DISP1_DATA19 0x0d4 0x3e8 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_A24__IPU2_CSI1_DATA19 0x0d4 0x3e8 0x8d4 0x2 0x1 ++#define MX6QDL_PAD_EIM_A24__IPU2_SISG2 0x0d4 0x3e8 0x000 0x3 0x0 ++#define MX6QDL_PAD_EIM_A24__IPU1_SISG2 0x0d4 0x3e8 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_A24__GPIO5_IO04 0x0d4 0x3e8 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A24__SRC_BOOT_CFG24 0x0d4 0x3e8 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_A23__EIM_ADDR23 0x0d8 0x3ec 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_A23__IPU1_DISP1_DATA18 0x0d8 0x3ec 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_A23__IPU2_CSI1_DATA18 0x0d8 0x3ec 0x8d0 0x2 0x1 ++#define MX6QDL_PAD_EIM_A23__IPU2_SISG3 0x0d8 0x3ec 0x000 0x3 0x0 ++#define MX6QDL_PAD_EIM_A23__IPU1_SISG3 0x0d8 0x3ec 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_A23__GPIO6_IO06 0x0d8 0x3ec 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A23__SRC_BOOT_CFG23 0x0d8 0x3ec 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_A22__EIM_ADDR22 0x0dc 0x3f0 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_A22__IPU1_DISP1_DATA17 0x0dc 0x3f0 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_A22__IPU2_CSI1_DATA17 0x0dc 0x3f0 0x8cc 0x2 0x1 ++#define MX6QDL_PAD_EIM_A22__GPIO2_IO16 0x0dc 0x3f0 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A22__SRC_BOOT_CFG22 0x0dc 0x3f0 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_A21__EIM_ADDR21 0x0e0 0x3f4 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_A21__IPU1_DISP1_DATA16 0x0e0 0x3f4 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_A21__IPU2_CSI1_DATA16 0x0e0 0x3f4 0x8c8 0x2 0x1 ++#define MX6QDL_PAD_EIM_A21__GPIO2_IO17 0x0e0 0x3f4 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A21__SRC_BOOT_CFG21 0x0e0 0x3f4 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_A20__EIM_ADDR20 0x0e4 0x3f8 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_A20__IPU1_DISP1_DATA15 0x0e4 0x3f8 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_A20__IPU2_CSI1_DATA15 0x0e4 0x3f8 0x8c4 0x2 0x1 ++#define MX6QDL_PAD_EIM_A20__GPIO2_IO18 0x0e4 0x3f8 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A20__SRC_BOOT_CFG20 0x0e4 0x3f8 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_A19__EIM_ADDR19 0x0e8 0x3fc 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_A19__IPU1_DISP1_DATA14 0x0e8 0x3fc 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_A19__IPU2_CSI1_DATA14 0x0e8 0x3fc 0x8c0 0x2 0x1 ++#define MX6QDL_PAD_EIM_A19__GPIO2_IO19 0x0e8 0x3fc 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A19__SRC_BOOT_CFG19 0x0e8 0x3fc 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_A18__EIM_ADDR18 0x0ec 0x400 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_A18__IPU1_DISP1_DATA13 0x0ec 0x400 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_A18__IPU2_CSI1_DATA13 0x0ec 0x400 0x8bc 0x2 0x1 ++#define MX6QDL_PAD_EIM_A18__GPIO2_IO20 0x0ec 0x400 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A18__SRC_BOOT_CFG18 0x0ec 0x400 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_A17__EIM_ADDR17 0x0f0 0x404 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_A17__IPU1_DISP1_DATA12 0x0f0 0x404 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_A17__IPU2_CSI1_DATA12 0x0f0 0x404 0x8b8 0x2 0x1 ++#define MX6QDL_PAD_EIM_A17__GPIO2_IO21 0x0f0 0x404 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A17__SRC_BOOT_CFG17 0x0f0 0x404 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_A16__EIM_ADDR16 0x0f4 0x408 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_A16__IPU1_DI1_DISP_CLK 0x0f4 0x408 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_A16__IPU2_CSI1_PIXCLK 0x0f4 0x408 0x8e0 0x2 0x1 ++#define MX6QDL_PAD_EIM_A16__GPIO2_IO22 0x0f4 0x408 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A16__SRC_BOOT_CFG16 0x0f4 0x408 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_CS0__EIM_CS0_B 0x0f8 0x40c 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_CS0__IPU1_DI1_PIN05 0x0f8 0x40c 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_CS0__ECSPI2_SCLK 0x0f8 0x40c 0x810 0x2 0x0 ++#define MX6QDL_PAD_EIM_CS0__GPIO2_IO23 0x0f8 0x40c 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_CS1__EIM_CS1_B 0x0fc 0x410 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_CS1__IPU1_DI1_PIN06 0x0fc 0x410 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_CS1__ECSPI2_MOSI 0x0fc 0x410 0x818 0x2 0x0 ++#define MX6QDL_PAD_EIM_CS1__GPIO2_IO24 0x0fc 0x410 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_OE__EIM_OE_B 0x100 0x414 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_OE__IPU1_DI1_PIN07 0x100 0x414 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_OE__ECSPI2_MISO 0x100 0x414 0x814 0x2 0x0 ++#define MX6QDL_PAD_EIM_OE__GPIO2_IO25 0x100 0x414 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_RW__EIM_RW 0x104 0x418 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_RW__IPU1_DI1_PIN08 0x104 0x418 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_RW__ECSPI2_SS0 0x104 0x418 0x81c 0x2 0x0 ++#define MX6QDL_PAD_EIM_RW__GPIO2_IO26 0x104 0x418 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_RW__SRC_BOOT_CFG29 0x104 0x418 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_LBA__EIM_LBA_B 0x108 0x41c 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_LBA__IPU1_DI1_PIN17 0x108 0x41c 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_LBA__ECSPI2_SS1 0x108 0x41c 0x820 0x2 0x0 ++#define MX6QDL_PAD_EIM_LBA__GPIO2_IO27 0x108 0x41c 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_LBA__SRC_BOOT_CFG26 0x108 0x41c 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_EB0__EIM_EB0_B 0x10c 0x420 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_EB0__IPU1_DISP1_DATA11 0x10c 0x420 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_EB0__IPU2_CSI1_DATA11 0x10c 0x420 0x8b4 0x2 0x1 ++#define MX6QDL_PAD_EIM_EB0__CCM_PMIC_READY 0x10c 0x420 0x7f0 0x4 0x0 ++#define MX6QDL_PAD_EIM_EB0__GPIO2_IO28 0x10c 0x420 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_EB0__SRC_BOOT_CFG27 0x10c 0x420 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_EB1__EIM_EB1_B 0x110 0x424 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_EB1__IPU1_DISP1_DATA10 0x110 0x424 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_EB1__IPU2_CSI1_DATA10 0x110 0x424 0x8b0 0x2 0x1 ++#define MX6QDL_PAD_EIM_EB1__GPIO2_IO29 0x110 0x424 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_EB1__SRC_BOOT_CFG28 0x110 0x424 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA0__EIM_AD00 0x114 0x428 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA0__IPU1_DISP1_DATA09 0x114 0x428 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA0__IPU2_CSI1_DATA09 0x114 0x428 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA0__GPIO3_IO00 0x114 0x428 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA0__SRC_BOOT_CFG00 0x114 0x428 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA1__EIM_AD01 0x118 0x42c 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA1__IPU1_DISP1_DATA08 0x118 0x42c 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA1__IPU2_CSI1_DATA08 0x118 0x42c 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA1__GPIO3_IO01 0x118 0x42c 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA1__SRC_BOOT_CFG01 0x118 0x42c 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA2__EIM_AD02 0x11c 0x430 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA2__IPU1_DISP1_DATA07 0x11c 0x430 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA2__IPU2_CSI1_DATA07 0x11c 0x430 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA2__GPIO3_IO02 0x11c 0x430 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA2__SRC_BOOT_CFG02 0x11c 0x430 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA3__EIM_AD03 0x120 0x434 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA3__IPU1_DISP1_DATA06 0x120 0x434 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA3__IPU2_CSI1_DATA06 0x120 0x434 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA3__GPIO3_IO03 0x120 0x434 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA3__SRC_BOOT_CFG03 0x120 0x434 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA4__EIM_AD04 0x124 0x438 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA4__IPU1_DISP1_DATA05 0x124 0x438 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA4__IPU2_CSI1_DATA05 0x124 0x438 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA4__GPIO3_IO04 0x124 0x438 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA4__SRC_BOOT_CFG04 0x124 0x438 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA5__EIM_AD05 0x128 0x43c 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA5__IPU1_DISP1_DATA04 0x128 0x43c 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA5__IPU2_CSI1_DATA04 0x128 0x43c 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA5__GPIO3_IO05 0x128 0x43c 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA5__SRC_BOOT_CFG05 0x128 0x43c 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA6__EIM_AD06 0x12c 0x440 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA6__IPU1_DISP1_DATA03 0x12c 0x440 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA6__IPU2_CSI1_DATA03 0x12c 0x440 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA6__GPIO3_IO06 0x12c 0x440 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA6__SRC_BOOT_CFG06 0x12c 0x440 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA7__EIM_AD07 0x130 0x444 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA7__IPU1_DISP1_DATA02 0x130 0x444 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA7__IPU2_CSI1_DATA02 0x130 0x444 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA7__GPIO3_IO07 0x130 0x444 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA7__SRC_BOOT_CFG07 0x130 0x444 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA8__EIM_AD08 0x134 0x448 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA8__IPU1_DISP1_DATA01 0x134 0x448 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA8__IPU2_CSI1_DATA01 0x134 0x448 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA8__GPIO3_IO08 0x134 0x448 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA8__SRC_BOOT_CFG08 0x134 0x448 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA9__EIM_AD09 0x138 0x44c 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA9__IPU1_DISP1_DATA00 0x138 0x44c 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA9__IPU2_CSI1_DATA00 0x138 0x44c 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA9__GPIO3_IO09 0x138 0x44c 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA9__SRC_BOOT_CFG09 0x138 0x44c 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA10__EIM_AD10 0x13c 0x450 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA10__IPU1_DI1_PIN15 0x13c 0x450 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA10__IPU2_CSI1_DATA_EN 0x13c 0x450 0x8d8 0x2 0x1 ++#define MX6QDL_PAD_EIM_DA10__GPIO3_IO10 0x13c 0x450 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA10__SRC_BOOT_CFG10 0x13c 0x450 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA11__EIM_AD11 0x140 0x454 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA11__IPU1_DI1_PIN02 0x140 0x454 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA11__IPU2_CSI1_HSYNC 0x140 0x454 0x8dc 0x2 0x1 ++#define MX6QDL_PAD_EIM_DA11__GPIO3_IO11 0x140 0x454 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA11__SRC_BOOT_CFG11 0x140 0x454 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA12__EIM_AD12 0x144 0x458 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA12__IPU1_DI1_PIN03 0x144 0x458 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA12__IPU2_CSI1_VSYNC 0x144 0x458 0x8e4 0x2 0x1 ++#define MX6QDL_PAD_EIM_DA12__GPIO3_IO12 0x144 0x458 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA12__SRC_BOOT_CFG12 0x144 0x458 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA13__EIM_AD13 0x148 0x45c 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA13__IPU1_DI1_D0_CS 0x148 0x45c 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA13__GPIO3_IO13 0x148 0x45c 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA13__SRC_BOOT_CFG13 0x148 0x45c 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA14__EIM_AD14 0x14c 0x460 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA14__IPU1_DI1_D1_CS 0x14c 0x460 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA14__GPIO3_IO14 0x14c 0x460 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA14__SRC_BOOT_CFG14 0x14c 0x460 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA15__EIM_AD15 0x150 0x464 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA15__IPU1_DI1_PIN01 0x150 0x464 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA15__IPU1_DI1_PIN04 0x150 0x464 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA15__GPIO3_IO15 0x150 0x464 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA15__SRC_BOOT_CFG15 0x150 0x464 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_WAIT__EIM_WAIT_B 0x154 0x468 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_WAIT__EIM_DTACK_B 0x154 0x468 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_WAIT__GPIO5_IO00 0x154 0x468 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_WAIT__SRC_BOOT_CFG25 0x154 0x468 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_BCLK__EIM_BCLK 0x158 0x46c 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_BCLK__IPU1_DI1_PIN16 0x158 0x46c 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_BCLK__GPIO6_IO31 0x158 0x46c 0x000 0x5 0x0 ++#define MX6QDL_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK 0x15c 0x470 0x000 0x0 0x0 ++#define MX6QDL_PAD_DI0_DISP_CLK__IPU2_DI0_DISP_CLK 0x15c 0x470 0x000 0x1 0x0 ++#define MX6QDL_PAD_DI0_DISP_CLK__GPIO4_IO16 0x15c 0x470 0x000 0x5 0x0 ++#define MX6QDL_PAD_DI0_PIN15__IPU1_DI0_PIN15 0x160 0x474 0x000 0x0 0x0 ++#define MX6QDL_PAD_DI0_PIN15__IPU2_DI0_PIN15 0x160 0x474 0x000 0x1 0x0 ++#define MX6QDL_PAD_DI0_PIN15__AUD6_TXC 0x160 0x474 0x000 0x2 0x0 ++#define MX6QDL_PAD_DI0_PIN15__GPIO4_IO17 0x160 0x474 0x000 0x5 0x0 ++#define MX6QDL_PAD_DI0_PIN2__IPU1_DI0_PIN02 0x164 0x478 0x000 0x0 0x0 ++#define MX6QDL_PAD_DI0_PIN2__IPU2_DI0_PIN02 0x164 0x478 0x000 0x1 0x0 ++#define MX6QDL_PAD_DI0_PIN2__AUD6_TXD 0x164 0x478 0x000 0x2 0x0 ++#define MX6QDL_PAD_DI0_PIN2__GPIO4_IO18 0x164 0x478 0x000 0x5 0x0 ++#define MX6QDL_PAD_DI0_PIN3__IPU1_DI0_PIN03 0x168 0x47c 0x000 0x0 0x0 ++#define MX6QDL_PAD_DI0_PIN3__IPU2_DI0_PIN03 0x168 0x47c 0x000 0x1 0x0 ++#define MX6QDL_PAD_DI0_PIN3__AUD6_TXFS 0x168 0x47c 0x000 0x2 0x0 ++#define MX6QDL_PAD_DI0_PIN3__GPIO4_IO19 0x168 0x47c 0x000 0x5 0x0 ++#define MX6QDL_PAD_DI0_PIN4__IPU1_DI0_PIN04 0x16c 0x480 0x000 0x0 0x0 ++#define MX6QDL_PAD_DI0_PIN4__IPU2_DI0_PIN04 0x16c 0x480 0x000 0x1 0x0 ++#define MX6QDL_PAD_DI0_PIN4__AUD6_RXD 0x16c 0x480 0x000 0x2 0x0 ++#define MX6QDL_PAD_DI0_PIN4__SD1_WP 0x16c 0x480 0x94c 0x3 0x0 ++#define MX6QDL_PAD_DI0_PIN4__GPIO4_IO20 0x16c 0x480 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT0__IPU1_DISP0_DATA00 0x170 0x484 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT0__IPU2_DISP0_DATA00 0x170 0x484 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT0__ECSPI3_SCLK 0x170 0x484 0x000 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT0__GPIO4_IO21 0x170 0x484 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT1__IPU1_DISP0_DATA01 0x174 0x488 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT1__IPU2_DISP0_DATA01 0x174 0x488 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT1__ECSPI3_MOSI 0x174 0x488 0x000 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT1__GPIO4_IO22 0x174 0x488 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT2__IPU1_DISP0_DATA02 0x178 0x48c 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT2__IPU2_DISP0_DATA02 0x178 0x48c 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT2__ECSPI3_MISO 0x178 0x48c 0x000 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT2__GPIO4_IO23 0x178 0x48c 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT3__IPU1_DISP0_DATA03 0x17c 0x490 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT3__IPU2_DISP0_DATA03 0x17c 0x490 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT3__ECSPI3_SS0 0x17c 0x490 0x000 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT3__GPIO4_IO24 0x17c 0x490 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT4__IPU1_DISP0_DATA04 0x180 0x494 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT4__IPU2_DISP0_DATA04 0x180 0x494 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT4__ECSPI3_SS1 0x180 0x494 0x000 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT4__GPIO4_IO25 0x180 0x494 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT5__IPU1_DISP0_DATA05 0x184 0x498 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT5__IPU2_DISP0_DATA05 0x184 0x498 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT5__ECSPI3_SS2 0x184 0x498 0x000 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT5__AUD6_RXFS 0x184 0x498 0x000 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT5__GPIO4_IO26 0x184 0x498 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT6__IPU1_DISP0_DATA06 0x188 0x49c 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT6__IPU2_DISP0_DATA06 0x188 0x49c 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT6__ECSPI3_SS3 0x188 0x49c 0x000 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT6__AUD6_RXC 0x188 0x49c 0x000 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT6__GPIO4_IO27 0x188 0x49c 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT7__IPU1_DISP0_DATA07 0x18c 0x4a0 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT7__IPU2_DISP0_DATA07 0x18c 0x4a0 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT7__ECSPI3_RDY 0x18c 0x4a0 0x000 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT7__GPIO4_IO28 0x18c 0x4a0 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT8__IPU1_DISP0_DATA08 0x190 0x4a4 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT8__IPU2_DISP0_DATA08 0x190 0x4a4 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT8__PWM1_OUT 0x190 0x4a4 0x000 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT8__WDOG1_B 0x190 0x4a4 0x000 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT8__GPIO4_IO29 0x190 0x4a4 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT9__IPU1_DISP0_DATA09 0x194 0x4a8 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT9__IPU2_DISP0_DATA09 0x194 0x4a8 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT9__PWM2_OUT 0x194 0x4a8 0x000 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT9__WDOG2_B 0x194 0x4a8 0x000 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT9__GPIO4_IO30 0x194 0x4a8 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT10__IPU1_DISP0_DATA10 0x198 0x4ac 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT10__IPU2_DISP0_DATA10 0x198 0x4ac 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT10__GPIO4_IO31 0x198 0x4ac 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT11__IPU1_DISP0_DATA11 0x19c 0x4b0 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT11__IPU2_DISP0_DATA11 0x19c 0x4b0 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT11__GPIO5_IO05 0x19c 0x4b0 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT12__IPU1_DISP0_DATA12 0x1a0 0x4b4 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT12__IPU2_DISP0_DATA12 0x1a0 0x4b4 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT12__GPIO5_IO06 0x1a0 0x4b4 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT13__IPU1_DISP0_DATA13 0x1a4 0x4b8 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT13__IPU2_DISP0_DATA13 0x1a4 0x4b8 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT13__AUD5_RXFS 0x1a4 0x4b8 0x7d8 0x3 0x1 ++#define MX6QDL_PAD_DISP0_DAT13__GPIO5_IO07 0x1a4 0x4b8 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT14__IPU1_DISP0_DATA14 0x1a8 0x4bc 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT14__IPU2_DISP0_DATA14 0x1a8 0x4bc 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT14__AUD5_RXC 0x1a8 0x4bc 0x7d4 0x3 0x1 ++#define MX6QDL_PAD_DISP0_DAT14__GPIO5_IO08 0x1a8 0x4bc 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT15__IPU1_DISP0_DATA15 0x1ac 0x4c0 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT15__IPU2_DISP0_DATA15 0x1ac 0x4c0 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT15__ECSPI1_SS1 0x1ac 0x4c0 0x804 0x2 0x1 ++#define MX6QDL_PAD_DISP0_DAT15__ECSPI2_SS1 0x1ac 0x4c0 0x820 0x3 0x1 ++#define MX6QDL_PAD_DISP0_DAT15__GPIO5_IO09 0x1ac 0x4c0 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT16__IPU1_DISP0_DATA16 0x1b0 0x4c4 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT16__IPU2_DISP0_DATA16 0x1b0 0x4c4 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT16__ECSPI2_MOSI 0x1b0 0x4c4 0x818 0x2 0x1 ++#define MX6QDL_PAD_DISP0_DAT16__AUD5_TXC 0x1b0 0x4c4 0x7dc 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT16__SDMA_EXT_EVENT0 0x1b0 0x4c4 0x90c 0x4 0x0 ++#define MX6QDL_PAD_DISP0_DAT16__GPIO5_IO10 0x1b0 0x4c4 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT17__IPU1_DISP0_DATA17 0x1b4 0x4c8 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT17__IPU2_DISP0_DATA17 0x1b4 0x4c8 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT17__ECSPI2_MISO 0x1b4 0x4c8 0x814 0x2 0x1 ++#define MX6QDL_PAD_DISP0_DAT17__AUD5_TXD 0x1b4 0x4c8 0x7d0 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT17__SDMA_EXT_EVENT1 0x1b4 0x4c8 0x910 0x4 0x0 ++#define MX6QDL_PAD_DISP0_DAT17__GPIO5_IO11 0x1b4 0x4c8 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT18__IPU1_DISP0_DATA18 0x1b8 0x4cc 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT18__IPU2_DISP0_DATA18 0x1b8 0x4cc 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT18__ECSPI2_SS0 0x1b8 0x4cc 0x81c 0x2 0x1 ++#define MX6QDL_PAD_DISP0_DAT18__AUD5_TXFS 0x1b8 0x4cc 0x7e0 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT18__AUD4_RXFS 0x1b8 0x4cc 0x7c0 0x4 0x0 ++#define MX6QDL_PAD_DISP0_DAT18__GPIO5_IO12 0x1b8 0x4cc 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT18__EIM_CS2_B 0x1b8 0x4cc 0x000 0x7 0x0 ++#define MX6QDL_PAD_DISP0_DAT19__IPU1_DISP0_DATA19 0x1bc 0x4d0 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT19__IPU2_DISP0_DATA19 0x1bc 0x4d0 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT19__ECSPI2_SCLK 0x1bc 0x4d0 0x810 0x2 0x1 ++#define MX6QDL_PAD_DISP0_DAT19__AUD5_RXD 0x1bc 0x4d0 0x7cc 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT19__AUD4_RXC 0x1bc 0x4d0 0x7bc 0x4 0x0 ++#define MX6QDL_PAD_DISP0_DAT19__GPIO5_IO13 0x1bc 0x4d0 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT19__EIM_CS3_B 0x1bc 0x4d0 0x000 0x7 0x0 ++#define MX6QDL_PAD_DISP0_DAT20__IPU1_DISP0_DATA20 0x1c0 0x4d4 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT20__IPU2_DISP0_DATA20 0x1c0 0x4d4 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT20__ECSPI1_SCLK 0x1c0 0x4d4 0x7f4 0x2 0x1 ++#define MX6QDL_PAD_DISP0_DAT20__AUD4_TXC 0x1c0 0x4d4 0x7c4 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT20__GPIO5_IO14 0x1c0 0x4d4 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT21__IPU1_DISP0_DATA21 0x1c4 0x4d8 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT21__IPU2_DISP0_DATA21 0x1c4 0x4d8 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT21__ECSPI1_MOSI 0x1c4 0x4d8 0x7fc 0x2 0x1 ++#define MX6QDL_PAD_DISP0_DAT21__AUD4_TXD 0x1c4 0x4d8 0x7b8 0x3 0x1 ++#define MX6QDL_PAD_DISP0_DAT21__GPIO5_IO15 0x1c4 0x4d8 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT22__IPU1_DISP0_DATA22 0x1c8 0x4dc 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT22__IPU2_DISP0_DATA22 0x1c8 0x4dc 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT22__ECSPI1_MISO 0x1c8 0x4dc 0x7f8 0x2 0x1 ++#define MX6QDL_PAD_DISP0_DAT22__AUD4_TXFS 0x1c8 0x4dc 0x7c8 0x3 0x1 ++#define MX6QDL_PAD_DISP0_DAT22__GPIO5_IO16 0x1c8 0x4dc 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT23__IPU1_DISP0_DATA23 0x1cc 0x4e0 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT23__IPU2_DISP0_DATA23 0x1cc 0x4e0 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT23__ECSPI1_SS0 0x1cc 0x4e0 0x800 0x2 0x1 ++#define MX6QDL_PAD_DISP0_DAT23__AUD4_RXD 0x1cc 0x4e0 0x7b4 0x3 0x1 ++#define MX6QDL_PAD_DISP0_DAT23__GPIO5_IO17 0x1cc 0x4e0 0x000 0x5 0x0 ++#define MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1d0 0x4e4 0x840 0x1 0x0 ++#define MX6QDL_PAD_ENET_MDIO__ESAI_RX_CLK 0x1d0 0x4e4 0x86c 0x2 0x0 ++#define MX6QDL_PAD_ENET_MDIO__ENET_1588_EVENT1_OUT 0x1d0 0x4e4 0x000 0x4 0x0 ++#define MX6QDL_PAD_ENET_MDIO__GPIO1_IO22 0x1d0 0x4e4 0x000 0x5 0x0 ++#define MX6QDL_PAD_ENET_MDIO__SPDIF_LOCK 0x1d0 0x4e4 0x000 0x6 0x0 ++#define MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1d4 0x4e8 0x000 0x1 0x0 ++#define MX6QDL_PAD_ENET_REF_CLK__ESAI_RX_FS 0x1d4 0x4e8 0x85c 0x2 0x0 ++#define MX6QDL_PAD_ENET_REF_CLK__GPIO1_IO23 0x1d4 0x4e8 0x000 0x5 0x0 ++#define MX6QDL_PAD_ENET_REF_CLK__SPDIF_SR_CLK 0x1d4 0x4e8 0x000 0x6 0x0 ++#define MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID 0x1d8 0x4ec 0x000 0x0 0x0 ++#define MX6QDL_PAD_ENET_RX_ER__ENET_RX_ER 0x1d8 0x4ec 0x000 0x1 0x0 ++#define MX6QDL_PAD_ENET_RX_ER__ESAI_RX_HF_CLK 0x1d8 0x4ec 0x864 0x2 0x0 ++#define MX6QDL_PAD_ENET_RX_ER__SPDIF_IN 0x1d8 0x4ec 0x914 0x3 0x1 ++#define MX6QDL_PAD_ENET_RX_ER__ENET_1588_EVENT2_OUT 0x1d8 0x4ec 0x000 0x4 0x0 ++#define MX6QDL_PAD_ENET_RX_ER__GPIO1_IO24 0x1d8 0x4ec 0x000 0x5 0x0 ++#define MX6QDL_PAD_ENET_CRS_DV__ENET_RX_EN 0x1dc 0x4f0 0x858 0x1 0x1 ++#define MX6QDL_PAD_ENET_CRS_DV__ESAI_TX_CLK 0x1dc 0x4f0 0x870 0x2 0x0 ++#define MX6QDL_PAD_ENET_CRS_DV__SPDIF_EXT_CLK 0x1dc 0x4f0 0x918 0x3 0x1 ++#define MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25 0x1dc 0x4f0 0x000 0x5 0x0 ++#define MX6QDL_PAD_ENET_RXD1__MLB_SIG 0x1e0 0x4f4 0x908 0x0 0x0 ++#define MX6QDL_PAD_ENET_RXD1__ENET_RX_DATA1 0x1e0 0x4f4 0x84c 0x1 0x1 ++#define MX6QDL_PAD_ENET_RXD1__ESAI_TX_FS 0x1e0 0x4f4 0x860 0x2 0x0 ++#define MX6QDL_PAD_ENET_RXD1__ENET_1588_EVENT3_OUT 0x1e0 0x4f4 0x000 0x4 0x0 ++#define MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x1e0 0x4f4 0x000 0x5 0x0 ++#define MX6QDL_PAD_ENET_RXD0__ENET_RX_DATA0 0x1e4 0x4f8 0x848 0x1 0x1 ++#define MX6QDL_PAD_ENET_RXD0__ESAI_TX_HF_CLK 0x1e4 0x4f8 0x868 0x2 0x0 ++#define MX6QDL_PAD_ENET_RXD0__SPDIF_OUT 0x1e4 0x4f8 0x000 0x3 0x0 ++#define MX6QDL_PAD_ENET_RXD0__GPIO1_IO27 0x1e4 0x4f8 0x000 0x5 0x0 ++#define MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN 0x1e8 0x4fc 0x000 0x1 0x0 ++#define MX6QDL_PAD_ENET_TX_EN__ESAI_TX3_RX2 0x1e8 0x4fc 0x880 0x2 0x0 ++#define MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28 0x1e8 0x4fc 0x000 0x5 0x0 ++#define MX6QDL_PAD_ENET_TXD1__MLB_CLK 0x1ec 0x500 0x900 0x0 0x0 ++#define MX6QDL_PAD_ENET_TXD1__ENET_TX_DATA1 0x1ec 0x500 0x000 0x1 0x0 ++#define MX6QDL_PAD_ENET_TXD1__ESAI_TX2_RX3 0x1ec 0x500 0x87c 0x2 0x0 ++#define MX6QDL_PAD_ENET_TXD1__ENET_1588_EVENT0_IN 0x1ec 0x500 0x000 0x4 0x0 ++#define MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x1ec 0x500 0x000 0x5 0x0 ++#define MX6QDL_PAD_ENET_TXD0__ENET_TX_DATA0 0x1f0 0x504 0x000 0x1 0x0 ++#define MX6QDL_PAD_ENET_TXD0__ESAI_TX4_RX1 0x1f0 0x504 0x884 0x2 0x0 ++#define MX6QDL_PAD_ENET_TXD0__GPIO1_IO30 0x1f0 0x504 0x000 0x5 0x0 ++#define MX6QDL_PAD_ENET_MDC__MLB_DATA 0x1f4 0x508 0x904 0x0 0x0 ++#define MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1f4 0x508 0x000 0x1 0x0 ++#define MX6QDL_PAD_ENET_MDC__ESAI_TX5_RX0 0x1f4 0x508 0x888 0x2 0x0 ++#define MX6QDL_PAD_ENET_MDC__ENET_1588_EVENT1_IN 0x1f4 0x508 0x000 0x4 0x0 ++#define MX6QDL_PAD_ENET_MDC__GPIO1_IO31 0x1f4 0x508 0x000 0x5 0x0 ++#define MX6QDL_PAD_KEY_COL0__ECSPI1_SCLK 0x1f8 0x5c8 0x7f4 0x0 0x2 ++#define MX6QDL_PAD_KEY_COL0__ENET_RX_DATA3 0x1f8 0x5c8 0x854 0x1 0x1 ++#define MX6QDL_PAD_KEY_COL0__AUD5_TXC 0x1f8 0x5c8 0x7dc 0x2 0x1 ++#define MX6QDL_PAD_KEY_COL0__KEY_COL0 0x1f8 0x5c8 0x000 0x3 0x0 ++#define MX6QDL_PAD_KEY_COL0__UART4_TX_DATA 0x1f8 0x5c8 0x000 0x4 0x0 ++#define MX6QDL_PAD_KEY_COL0__UART4_RX_DATA 0x1f8 0x5c8 0x938 0x4 0x0 ++#define MX6QDL_PAD_KEY_COL0__GPIO4_IO06 0x1f8 0x5c8 0x000 0x5 0x0 ++#define MX6QDL_PAD_KEY_COL0__DCIC1_OUT 0x1f8 0x5c8 0x000 0x6 0x0 ++#define MX6QDL_PAD_KEY_ROW0__ECSPI1_MOSI 0x1fc 0x5cc 0x7fc 0x0 0x2 ++#define MX6QDL_PAD_KEY_ROW0__ENET_TX_DATA3 0x1fc 0x5cc 0x000 0x1 0x0 ++#define MX6QDL_PAD_KEY_ROW0__AUD5_TXD 0x1fc 0x5cc 0x7d0 0x2 0x1 ++#define MX6QDL_PAD_KEY_ROW0__KEY_ROW0 0x1fc 0x5cc 0x000 0x3 0x0 ++#define MX6QDL_PAD_KEY_ROW0__UART4_RX_DATA 0x1fc 0x5cc 0x938 0x4 0x1 ++#define MX6QDL_PAD_KEY_ROW0__UART4_TX_DATA 0x1fc 0x5cc 0x000 0x4 0x0 ++#define MX6QDL_PAD_KEY_ROW0__GPIO4_IO07 0x1fc 0x5cc 0x000 0x5 0x0 ++#define MX6QDL_PAD_KEY_ROW0__DCIC2_OUT 0x1fc 0x5cc 0x000 0x6 0x0 ++#define MX6QDL_PAD_KEY_COL1__ECSPI1_MISO 0x200 0x5d0 0x7f8 0x0 0x2 ++#define MX6QDL_PAD_KEY_COL1__ENET_MDIO 0x200 0x5d0 0x840 0x1 0x1 ++#define MX6QDL_PAD_KEY_COL1__AUD5_TXFS 0x200 0x5d0 0x7e0 0x2 0x1 ++#define MX6QDL_PAD_KEY_COL1__KEY_COL1 0x200 0x5d0 0x000 0x3 0x0 ++#define MX6QDL_PAD_KEY_COL1__UART5_TX_DATA 0x200 0x5d0 0x000 0x4 0x0 ++#define MX6QDL_PAD_KEY_COL1__UART5_RX_DATA 0x200 0x5d0 0x940 0x4 0x0 ++#define MX6QDL_PAD_KEY_COL1__GPIO4_IO08 0x200 0x5d0 0x000 0x5 0x0 ++#define MX6QDL_PAD_KEY_COL1__SD1_VSELECT 0x200 0x5d0 0x000 0x6 0x0 ++#define MX6QDL_PAD_KEY_ROW1__ECSPI1_SS0 0x204 0x5d4 0x800 0x0 0x2 ++#define MX6QDL_PAD_KEY_ROW1__ENET_COL 0x204 0x5d4 0x000 0x1 0x0 ++#define MX6QDL_PAD_KEY_ROW1__AUD5_RXD 0x204 0x5d4 0x7cc 0x2 0x1 ++#define MX6QDL_PAD_KEY_ROW1__KEY_ROW1 0x204 0x5d4 0x000 0x3 0x0 ++#define MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA 0x204 0x5d4 0x940 0x4 0x1 ++#define MX6QDL_PAD_KEY_ROW1__UART5_TX_DATA 0x204 0x5d4 0x000 0x4 0x0 ++#define MX6QDL_PAD_KEY_ROW1__GPIO4_IO09 0x204 0x5d4 0x000 0x5 0x0 ++#define MX6QDL_PAD_KEY_ROW1__SD2_VSELECT 0x204 0x5d4 0x000 0x6 0x0 ++#define MX6QDL_PAD_KEY_COL2__ECSPI1_SS1 0x208 0x5d8 0x804 0x0 0x2 ++#define MX6QDL_PAD_KEY_COL2__ENET_RX_DATA2 0x208 0x5d8 0x850 0x1 0x1 ++#define MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX 0x208 0x5d8 0x000 0x2 0x0 ++#define MX6QDL_PAD_KEY_COL2__KEY_COL2 0x208 0x5d8 0x000 0x3 0x0 ++#define MX6QDL_PAD_KEY_COL2__ENET_MDC 0x208 0x5d8 0x000 0x4 0x0 ++#define MX6QDL_PAD_KEY_COL2__GPIO4_IO10 0x208 0x5d8 0x000 0x5 0x0 ++#define MX6QDL_PAD_KEY_COL2__USB_H1_PWR_CTL_WAKE 0x208 0x5d8 0x000 0x6 0x0 ++#define MX6QDL_PAD_KEY_ROW2__ECSPI1_SS2 0x20c 0x5dc 0x808 0x0 0x1 ++#define MX6QDL_PAD_KEY_ROW2__ENET_TX_DATA2 0x20c 0x5dc 0x000 0x1 0x0 ++#define MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX 0x20c 0x5dc 0x7e4 0x2 0x0 ++#define MX6QDL_PAD_KEY_ROW2__KEY_ROW2 0x20c 0x5dc 0x000 0x3 0x0 ++#define MX6QDL_PAD_KEY_ROW2__SD2_VSELECT 0x20c 0x5dc 0x000 0x4 0x0 ++#define MX6QDL_PAD_KEY_ROW2__GPIO4_IO11 0x20c 0x5dc 0x000 0x5 0x0 ++#define MX6QDL_PAD_KEY_ROW2__HDMI_TX_CEC_LINE 0x20c 0x5dc 0x88c 0x6 0x1 ++#define MX6QDL_PAD_KEY_COL3__ECSPI1_SS3 0x210 0x5e0 0x80c 0x0 0x1 ++#define MX6QDL_PAD_KEY_COL3__ENET_CRS 0x210 0x5e0 0x000 0x1 0x0 ++#define MX6QDL_PAD_KEY_COL3__HDMI_TX_DDC_SCL 0x210 0x5e0 0x890 0x2 0x1 ++#define MX6QDL_PAD_KEY_COL3__KEY_COL3 0x210 0x5e0 0x000 0x3 0x0 ++#define MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x210 0x5e0 0x8a0 0x4 0x1 ++#define MX6QDL_PAD_KEY_COL3__GPIO4_IO12 0x210 0x5e0 0x000 0x5 0x0 ++#define MX6QDL_PAD_KEY_COL3__SPDIF_IN 0x210 0x5e0 0x914 0x6 0x2 ++#define MX6QDL_PAD_KEY_ROW3__ASRC_EXT_CLK 0x214 0x5e4 0x7b0 0x1 0x0 ++#define MX6QDL_PAD_KEY_ROW3__HDMI_TX_DDC_SDA 0x214 0x5e4 0x894 0x2 0x1 ++#define MX6QDL_PAD_KEY_ROW3__KEY_ROW3 0x214 0x5e4 0x000 0x3 0x0 ++#define MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x214 0x5e4 0x8a4 0x4 0x1 ++#define MX6QDL_PAD_KEY_ROW3__GPIO4_IO13 0x214 0x5e4 0x000 0x5 0x0 ++#define MX6QDL_PAD_KEY_ROW3__SD1_VSELECT 0x214 0x5e4 0x000 0x6 0x0 ++#define MX6QDL_PAD_KEY_COL4__FLEXCAN2_TX 0x218 0x5e8 0x000 0x0 0x0 ++#define MX6QDL_PAD_KEY_COL4__IPU1_SISG4 0x218 0x5e8 0x000 0x1 0x0 ++#define MX6QDL_PAD_KEY_COL4__USB_OTG_OC 0x218 0x5e8 0x944 0x2 0x1 ++#define MX6QDL_PAD_KEY_COL4__KEY_COL4 0x218 0x5e8 0x000 0x3 0x0 ++#define MX6QDL_PAD_KEY_COL4__UART5_RTS_B 0x218 0x5e8 0x93c 0x4 0x0 ++#define MX6QDL_PAD_KEY_COL4__UART5_CTS_B 0x218 0x5e8 0x000 0x4 0x0 ++#define MX6QDL_PAD_KEY_COL4__GPIO4_IO14 0x218 0x5e8 0x000 0x5 0x0 ++#define MX6QDL_PAD_KEY_ROW4__FLEXCAN2_RX 0x21c 0x5ec 0x7e8 0x0 0x0 ++#define MX6QDL_PAD_KEY_ROW4__IPU1_SISG5 0x21c 0x5ec 0x000 0x1 0x0 ++#define MX6QDL_PAD_KEY_ROW4__USB_OTG_PWR 0x21c 0x5ec 0x000 0x2 0x0 ++#define MX6QDL_PAD_KEY_ROW4__KEY_ROW4 0x21c 0x5ec 0x000 0x3 0x0 ++#define MX6QDL_PAD_KEY_ROW4__UART5_CTS_B 0x21c 0x5ec 0x000 0x4 0x0 ++#define MX6QDL_PAD_KEY_ROW4__UART5_RTS_B 0x21c 0x5ec 0x93c 0x4 0x1 ++#define MX6QDL_PAD_KEY_ROW4__GPIO4_IO15 0x21c 0x5ec 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x220 0x5f0 0x000 0x0 0x0 ++#define MX6QDL_PAD_GPIO_0__KEY_COL5 0x220 0x5f0 0x8e8 0x2 0x0 ++#define MX6QDL_PAD_GPIO_0__ASRC_EXT_CLK 0x220 0x5f0 0x7b0 0x3 0x1 ++#define MX6QDL_PAD_GPIO_0__EPIT1_OUT 0x220 0x5f0 0x000 0x4 0x0 ++#define MX6QDL_PAD_GPIO_0__GPIO1_IO00 0x220 0x5f0 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_0__USB_H1_PWR 0x220 0x5f0 0x000 0x6 0x0 ++#define MX6QDL_PAD_GPIO_0__SNVS_VIO_5 0x220 0x5f0 0x000 0x7 0x0 ++#define MX6QDL_PAD_GPIO_1__ESAI_RX_CLK 0x224 0x5f4 0x86c 0x0 0x1 ++#define MX6QDL_PAD_GPIO_1__WDOG2_B 0x224 0x5f4 0x000 0x1 0x0 ++#define MX6QDL_PAD_GPIO_1__KEY_ROW5 0x224 0x5f4 0x8f4 0x2 0x0 ++#define MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x224 0x5f4 0x000 0x3 0x0 ++#define MX6QDL_PAD_GPIO_1__PWM2_OUT 0x224 0x5f4 0x000 0x4 0x0 ++#define MX6QDL_PAD_GPIO_1__GPIO1_IO01 0x224 0x5f4 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_1__SD1_CD_B 0x224 0x5f4 0x000 0x6 0x0 ++#define MX6QDL_PAD_GPIO_9__ESAI_RX_FS 0x228 0x5f8 0x85c 0x0 0x1 ++#define MX6QDL_PAD_GPIO_9__WDOG1_B 0x228 0x5f8 0x000 0x1 0x0 ++#define MX6QDL_PAD_GPIO_9__KEY_COL6 0x228 0x5f8 0x8ec 0x2 0x0 ++#define MX6QDL_PAD_GPIO_9__CCM_REF_EN_B 0x228 0x5f8 0x000 0x3 0x0 ++#define MX6QDL_PAD_GPIO_9__PWM1_OUT 0x228 0x5f8 0x000 0x4 0x0 ++#define MX6QDL_PAD_GPIO_9__GPIO1_IO09 0x228 0x5f8 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_9__SD1_WP 0x228 0x5f8 0x94c 0x6 0x1 ++#define MX6QDL_PAD_GPIO_3__ESAI_RX_HF_CLK 0x22c 0x5fc 0x864 0x0 0x1 ++#define MX6QDL_PAD_GPIO_3__I2C3_SCL 0x22c 0x5fc 0x8a8 0x2 0x1 ++#define MX6QDL_PAD_GPIO_3__XTALOSC_REF_CLK_24M 0x22c 0x5fc 0x000 0x3 0x0 ++#define MX6QDL_PAD_GPIO_3__CCM_CLKO2 0x22c 0x5fc 0x000 0x4 0x0 ++#define MX6QDL_PAD_GPIO_3__GPIO1_IO03 0x22c 0x5fc 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_3__USB_H1_OC 0x22c 0x5fc 0x948 0x6 0x1 ++#define MX6QDL_PAD_GPIO_3__MLB_CLK 0x22c 0x5fc 0x900 0x7 0x1 ++#define MX6QDL_PAD_GPIO_6__ESAI_TX_CLK 0x230 0x600 0x870 0x0 0x1 ++#define MX6QDL_PAD_GPIO_6__I2C3_SDA 0x230 0x600 0x8ac 0x2 0x1 ++#define MX6QDL_PAD_GPIO_6__GPIO1_IO06 0x230 0x600 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_6__SD2_LCTL 0x230 0x600 0x000 0x6 0x0 ++#define MX6QDL_PAD_GPIO_6__MLB_SIG 0x230 0x600 0x908 0x7 0x1 ++#define MX6QDL_PAD_GPIO_2__ESAI_TX_FS 0x234 0x604 0x860 0x0 0x1 ++#define MX6QDL_PAD_GPIO_2__KEY_ROW6 0x234 0x604 0x8f8 0x2 0x1 ++#define MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x234 0x604 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_2__SD2_WP 0x234 0x604 0x000 0x6 0x0 ++#define MX6QDL_PAD_GPIO_2__MLB_DATA 0x234 0x604 0x904 0x7 0x1 ++#define MX6QDL_PAD_GPIO_4__ESAI_TX_HF_CLK 0x238 0x608 0x868 0x0 0x1 ++#define MX6QDL_PAD_GPIO_4__KEY_COL7 0x238 0x608 0x8f0 0x2 0x1 ++#define MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x238 0x608 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_4__SD2_CD_B 0x238 0x608 0x000 0x6 0x0 ++#define MX6QDL_PAD_GPIO_5__ESAI_TX2_RX3 0x23c 0x60c 0x87c 0x0 0x1 ++#define MX6QDL_PAD_GPIO_5__KEY_ROW7 0x23c 0x60c 0x8fc 0x2 0x1 ++#define MX6QDL_PAD_GPIO_5__CCM_CLKO1 0x23c 0x60c 0x000 0x3 0x0 ++#define MX6QDL_PAD_GPIO_5__GPIO1_IO05 0x23c 0x60c 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_5__I2C3_SCL 0x23c 0x60c 0x8a8 0x6 0x2 ++#define MX6QDL_PAD_GPIO_5__ARM_EVENTI 0x23c 0x60c 0x000 0x7 0x0 ++#define MX6QDL_PAD_GPIO_7__ESAI_TX4_RX1 0x240 0x610 0x884 0x0 0x1 ++#define MX6QDL_PAD_GPIO_7__ECSPI5_RDY 0x240 0x610 0x000 0x1 0x0 ++#define MX6QDL_PAD_GPIO_7__EPIT1_OUT 0x240 0x610 0x000 0x2 0x0 ++#define MX6QDL_PAD_GPIO_7__FLEXCAN1_TX 0x240 0x610 0x000 0x3 0x0 ++#define MX6QDL_PAD_GPIO_7__UART2_TX_DATA 0x240 0x610 0x000 0x4 0x0 ++#define MX6QDL_PAD_GPIO_7__UART2_RX_DATA 0x240 0x610 0x928 0x4 0x2 ++#define MX6QDL_PAD_GPIO_7__GPIO1_IO07 0x240 0x610 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_7__SPDIF_LOCK 0x240 0x610 0x000 0x6 0x0 ++#define MX6QDL_PAD_GPIO_7__USB_OTG_HOST_MODE 0x240 0x610 0x000 0x7 0x0 ++#define MX6QDL_PAD_GPIO_8__ESAI_TX5_RX0 0x244 0x614 0x888 0x0 0x1 ++#define MX6QDL_PAD_GPIO_8__XTALOSC_REF_CLK_32K 0x244 0x614 0x000 0x1 0x0 ++#define MX6QDL_PAD_GPIO_8__EPIT2_OUT 0x244 0x614 0x000 0x2 0x0 ++#define MX6QDL_PAD_GPIO_8__FLEXCAN1_RX 0x244 0x614 0x7e4 0x3 0x1 ++#define MX6QDL_PAD_GPIO_8__UART2_RX_DATA 0x244 0x614 0x928 0x4 0x3 ++#define MX6QDL_PAD_GPIO_8__UART2_TX_DATA 0x244 0x614 0x000 0x4 0x0 ++#define MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x244 0x614 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_8__SPDIF_SR_CLK 0x244 0x614 0x000 0x6 0x0 ++#define MX6QDL_PAD_GPIO_8__USB_OTG_PWR_CTL_WAKE 0x244 0x614 0x000 0x7 0x0 ++#define MX6QDL_PAD_GPIO_16__ESAI_TX3_RX2 0x248 0x618 0x880 0x0 0x1 ++#define MX6QDL_PAD_GPIO_16__ENET_1588_EVENT2_IN 0x248 0x618 0x000 0x1 0x0 ++#define MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x248 0x618 0x83c 0x2 0x1 ++#define MX6QDL_PAD_GPIO_16__SD1_LCTL 0x248 0x618 0x000 0x3 0x0 ++#define MX6QDL_PAD_GPIO_16__SPDIF_IN 0x248 0x618 0x914 0x4 0x3 ++#define MX6QDL_PAD_GPIO_16__GPIO7_IO11 0x248 0x618 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_16__I2C3_SDA 0x248 0x618 0x8ac 0x6 0x2 ++#define MX6QDL_PAD_GPIO_16__JTAG_DE_B 0x248 0x618 0x000 0x7 0x0 ++#define MX6QDL_PAD_GPIO_17__ESAI_TX0 0x24c 0x61c 0x874 0x0 0x0 ++#define MX6QDL_PAD_GPIO_17__ENET_1588_EVENT3_IN 0x24c 0x61c 0x000 0x1 0x0 ++#define MX6QDL_PAD_GPIO_17__CCM_PMIC_READY 0x24c 0x61c 0x7f0 0x2 0x1 ++#define MX6QDL_PAD_GPIO_17__SDMA_EXT_EVENT0 0x24c 0x61c 0x90c 0x3 0x1 ++#define MX6QDL_PAD_GPIO_17__SPDIF_OUT 0x24c 0x61c 0x000 0x4 0x0 ++#define MX6QDL_PAD_GPIO_17__GPIO7_IO12 0x24c 0x61c 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_18__ESAI_TX1 0x250 0x620 0x878 0x0 0x0 ++#define MX6QDL_PAD_GPIO_18__ENET_RX_CLK 0x250 0x620 0x844 0x1 0x1 ++#define MX6QDL_PAD_GPIO_18__SD3_VSELECT 0x250 0x620 0x000 0x2 0x0 ++#define MX6QDL_PAD_GPIO_18__SDMA_EXT_EVENT1 0x250 0x620 0x910 0x3 0x1 ++#define MX6QDL_PAD_GPIO_18__ASRC_EXT_CLK 0x250 0x620 0x7b0 0x4 0x2 ++#define MX6QDL_PAD_GPIO_18__GPIO7_IO13 0x250 0x620 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_18__SNVS_VIO_5_CTL 0x250 0x620 0x000 0x6 0x0 ++#define MX6QDL_PAD_GPIO_19__KEY_COL5 0x254 0x624 0x8e8 0x0 0x1 ++#define MX6QDL_PAD_GPIO_19__ENET_1588_EVENT0_OUT 0x254 0x624 0x000 0x1 0x0 ++#define MX6QDL_PAD_GPIO_19__SPDIF_OUT 0x254 0x624 0x000 0x2 0x0 ++#define MX6QDL_PAD_GPIO_19__CCM_CLKO1 0x254 0x624 0x000 0x3 0x0 ++#define MX6QDL_PAD_GPIO_19__ECSPI1_RDY 0x254 0x624 0x000 0x4 0x0 ++#define MX6QDL_PAD_GPIO_19__GPIO4_IO05 0x254 0x624 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_19__ENET_TX_ER 0x254 0x624 0x000 0x6 0x0 ++#define MX6QDL_PAD_CSI0_PIXCLK__IPU1_CSI0_PIXCLK 0x258 0x628 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_PIXCLK__GPIO5_IO18 0x258 0x628 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_PIXCLK__ARM_EVENTO 0x258 0x628 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_MCLK__IPU1_CSI0_HSYNC 0x25c 0x62c 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_MCLK__CCM_CLKO1 0x25c 0x62c 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_MCLK__GPIO5_IO19 0x25c 0x62c 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_MCLK__ARM_TRACE_CTL 0x25c 0x62c 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DATA_EN__IPU1_CSI0_DATA_EN 0x260 0x630 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DATA_EN__EIM_DATA00 0x260 0x630 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DATA_EN__GPIO5_IO20 0x260 0x630 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DATA_EN__ARM_TRACE_CLK 0x260 0x630 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_VSYNC__IPU1_CSI0_VSYNC 0x264 0x634 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_VSYNC__EIM_DATA01 0x264 0x634 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_VSYNC__GPIO5_IO21 0x264 0x634 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_VSYNC__ARM_TRACE00 0x264 0x634 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT4__IPU1_CSI0_DATA04 0x268 0x638 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT4__EIM_DATA02 0x268 0x638 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT4__ECSPI1_SCLK 0x268 0x638 0x7f4 0x2 0x3 ++#define MX6QDL_PAD_CSI0_DAT4__KEY_COL5 0x268 0x638 0x8e8 0x3 0x2 ++#define MX6QDL_PAD_CSI0_DAT4__AUD3_TXC 0x268 0x638 0x000 0x4 0x0 ++#define MX6QDL_PAD_CSI0_DAT4__GPIO5_IO22 0x268 0x638 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT4__ARM_TRACE01 0x268 0x638 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT5__IPU1_CSI0_DATA05 0x26c 0x63c 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT5__EIM_DATA03 0x26c 0x63c 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT5__ECSPI1_MOSI 0x26c 0x63c 0x7fc 0x2 0x3 ++#define MX6QDL_PAD_CSI0_DAT5__KEY_ROW5 0x26c 0x63c 0x8f4 0x3 0x1 ++#define MX6QDL_PAD_CSI0_DAT5__AUD3_TXD 0x26c 0x63c 0x000 0x4 0x0 ++#define MX6QDL_PAD_CSI0_DAT5__GPIO5_IO23 0x26c 0x63c 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT5__ARM_TRACE02 0x26c 0x63c 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT6__IPU1_CSI0_DATA06 0x270 0x640 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT6__EIM_DATA04 0x270 0x640 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT6__ECSPI1_MISO 0x270 0x640 0x7f8 0x2 0x3 ++#define MX6QDL_PAD_CSI0_DAT6__KEY_COL6 0x270 0x640 0x8ec 0x3 0x1 ++#define MX6QDL_PAD_CSI0_DAT6__AUD3_TXFS 0x270 0x640 0x000 0x4 0x0 ++#define MX6QDL_PAD_CSI0_DAT6__GPIO5_IO24 0x270 0x640 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT6__ARM_TRACE03 0x270 0x640 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT7__IPU1_CSI0_DATA07 0x274 0x644 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT7__EIM_DATA05 0x274 0x644 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT7__ECSPI1_SS0 0x274 0x644 0x800 0x2 0x3 ++#define MX6QDL_PAD_CSI0_DAT7__KEY_ROW6 0x274 0x644 0x8f8 0x3 0x2 ++#define MX6QDL_PAD_CSI0_DAT7__AUD3_RXD 0x274 0x644 0x000 0x4 0x0 ++#define MX6QDL_PAD_CSI0_DAT7__GPIO5_IO25 0x274 0x644 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT7__ARM_TRACE04 0x274 0x644 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT8__IPU1_CSI0_DATA08 0x278 0x648 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT8__EIM_DATA06 0x278 0x648 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT8__ECSPI2_SCLK 0x278 0x648 0x810 0x2 0x2 ++#define MX6QDL_PAD_CSI0_DAT8__KEY_COL7 0x278 0x648 0x8f0 0x3 0x2 ++#define MX6QDL_PAD_CSI0_DAT8__I2C1_SDA 0x278 0x648 0x89c 0x4 0x1 ++#define MX6QDL_PAD_CSI0_DAT8__GPIO5_IO26 0x278 0x648 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT8__ARM_TRACE05 0x278 0x648 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT9__IPU1_CSI0_DATA09 0x27c 0x64c 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT9__EIM_DATA07 0x27c 0x64c 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT9__ECSPI2_MOSI 0x27c 0x64c 0x818 0x2 0x2 ++#define MX6QDL_PAD_CSI0_DAT9__KEY_ROW7 0x27c 0x64c 0x8fc 0x3 0x2 ++#define MX6QDL_PAD_CSI0_DAT9__I2C1_SCL 0x27c 0x64c 0x898 0x4 0x1 ++#define MX6QDL_PAD_CSI0_DAT9__GPIO5_IO27 0x27c 0x64c 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT9__ARM_TRACE06 0x27c 0x64c 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT10__IPU1_CSI0_DATA10 0x280 0x650 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT10__AUD3_RXC 0x280 0x650 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT10__ECSPI2_MISO 0x280 0x650 0x814 0x2 0x2 ++#define MX6QDL_PAD_CSI0_DAT10__UART1_TX_DATA 0x280 0x650 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT10__UART1_RX_DATA 0x280 0x650 0x920 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT10__GPIO5_IO28 0x280 0x650 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT10__ARM_TRACE07 0x280 0x650 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT11__IPU1_CSI0_DATA11 0x284 0x654 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT11__AUD3_RXFS 0x284 0x654 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT11__ECSPI2_SS0 0x284 0x654 0x81c 0x2 0x2 ++#define MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA 0x284 0x654 0x920 0x3 0x1 ++#define MX6QDL_PAD_CSI0_DAT11__UART1_TX_DATA 0x284 0x654 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT11__GPIO5_IO29 0x284 0x654 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT11__ARM_TRACE08 0x284 0x654 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT12__IPU1_CSI0_DATA12 0x288 0x658 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT12__EIM_DATA08 0x288 0x658 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT12__UART4_TX_DATA 0x288 0x658 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT12__UART4_RX_DATA 0x288 0x658 0x938 0x3 0x2 ++#define MX6QDL_PAD_CSI0_DAT12__GPIO5_IO30 0x288 0x658 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT12__ARM_TRACE09 0x288 0x658 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT13__IPU1_CSI0_DATA13 0x28c 0x65c 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT13__EIM_DATA09 0x28c 0x65c 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT13__UART4_RX_DATA 0x28c 0x65c 0x938 0x3 0x3 ++#define MX6QDL_PAD_CSI0_DAT13__UART4_TX_DATA 0x28c 0x65c 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT13__GPIO5_IO31 0x28c 0x65c 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT13__ARM_TRACE10 0x28c 0x65c 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT14__IPU1_CSI0_DATA14 0x290 0x660 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT14__EIM_DATA10 0x290 0x660 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT14__UART5_TX_DATA 0x290 0x660 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT14__UART5_RX_DATA 0x290 0x660 0x940 0x3 0x2 ++#define MX6QDL_PAD_CSI0_DAT14__GPIO6_IO00 0x290 0x660 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT14__ARM_TRACE11 0x290 0x660 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT15__IPU1_CSI0_DATA15 0x294 0x664 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT15__EIM_DATA11 0x294 0x664 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT15__UART5_RX_DATA 0x294 0x664 0x940 0x3 0x3 ++#define MX6QDL_PAD_CSI0_DAT15__UART5_TX_DATA 0x294 0x664 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT15__GPIO6_IO01 0x294 0x664 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT15__ARM_TRACE12 0x294 0x664 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT16__IPU1_CSI0_DATA16 0x298 0x668 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT16__EIM_DATA12 0x298 0x668 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT16__UART4_RTS_B 0x298 0x668 0x934 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT16__UART4_CTS_B 0x298 0x668 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT16__GPIO6_IO02 0x298 0x668 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT16__ARM_TRACE13 0x298 0x668 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT17__IPU1_CSI0_DATA17 0x29c 0x66c 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT17__EIM_DATA13 0x29c 0x66c 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT17__UART4_CTS_B 0x29c 0x66c 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT17__UART4_RTS_B 0x29c 0x66c 0x934 0x3 0x1 ++#define MX6QDL_PAD_CSI0_DAT17__GPIO6_IO03 0x29c 0x66c 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT17__ARM_TRACE14 0x29c 0x66c 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT18__IPU1_CSI0_DATA18 0x2a0 0x670 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT18__EIM_DATA14 0x2a0 0x670 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT18__UART5_RTS_B 0x2a0 0x670 0x93c 0x3 0x2 ++#define MX6QDL_PAD_CSI0_DAT18__UART5_CTS_B 0x2a0 0x670 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT18__GPIO6_IO04 0x2a0 0x670 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT18__ARM_TRACE15 0x2a0 0x670 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT19__IPU1_CSI0_DATA19 0x2a4 0x674 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT19__EIM_DATA15 0x2a4 0x674 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT19__UART5_CTS_B 0x2a4 0x674 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT19__UART5_RTS_B 0x2a4 0x674 0x93c 0x3 0x3 ++#define MX6QDL_PAD_CSI0_DAT19__GPIO6_IO05 0x2a4 0x674 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_DAT7__SD3_DATA7 0x2a8 0x690 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA 0x2a8 0x690 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD3_DAT7__UART1_RX_DATA 0x2a8 0x690 0x920 0x1 0x2 ++#define MX6QDL_PAD_SD3_DAT7__GPIO6_IO17 0x2a8 0x690 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_DAT6__SD3_DATA6 0x2ac 0x694 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA 0x2ac 0x694 0x920 0x1 0x3 ++#define MX6QDL_PAD_SD3_DAT6__UART1_TX_DATA 0x2ac 0x694 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD3_DAT6__GPIO6_IO18 0x2ac 0x694 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_DAT5__SD3_DATA5 0x2b0 0x698 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_DAT5__UART2_TX_DATA 0x2b0 0x698 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD3_DAT5__UART2_RX_DATA 0x2b0 0x698 0x928 0x1 0x4 ++#define MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x2b0 0x698 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_DAT4__SD3_DATA4 0x2b4 0x69c 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_DAT4__UART2_RX_DATA 0x2b4 0x69c 0x928 0x1 0x5 ++#define MX6QDL_PAD_SD3_DAT4__UART2_TX_DATA 0x2b4 0x69c 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD3_DAT4__GPIO7_IO01 0x2b4 0x69c 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_CMD__SD3_CMD 0x2b8 0x6a0 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_CMD__UART2_CTS_B 0x2b8 0x6a0 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD3_CMD__UART2_RTS_B 0x2b8 0x6a0 0x924 0x1 0x2 ++#define MX6QDL_PAD_SD3_CMD__FLEXCAN1_TX 0x2b8 0x6a0 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD3_CMD__GPIO7_IO02 0x2b8 0x6a0 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_CLK__SD3_CLK 0x2bc 0x6a4 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_CLK__UART2_RTS_B 0x2bc 0x6a4 0x924 0x1 0x3 ++#define MX6QDL_PAD_SD3_CLK__UART2_CTS_B 0x2bc 0x6a4 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD3_CLK__FLEXCAN1_RX 0x2bc 0x6a4 0x7e4 0x2 0x2 ++#define MX6QDL_PAD_SD3_CLK__GPIO7_IO03 0x2bc 0x6a4 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x2c0 0x6a8 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_DAT0__UART1_CTS_B 0x2c0 0x6a8 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD3_DAT0__UART1_RTS_B 0x2c0 0x6a8 0x91c 0x1 0x2 ++#define MX6QDL_PAD_SD3_DAT0__FLEXCAN2_TX 0x2c0 0x6a8 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD3_DAT0__GPIO7_IO04 0x2c0 0x6a8 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x2c4 0x6ac 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_DAT1__UART1_RTS_B 0x2c4 0x6ac 0x91c 0x1 0x3 ++#define MX6QDL_PAD_SD3_DAT1__UART1_CTS_B 0x2c4 0x6ac 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD3_DAT1__FLEXCAN2_RX 0x2c4 0x6ac 0x7e8 0x2 0x1 ++#define MX6QDL_PAD_SD3_DAT1__GPIO7_IO05 0x2c4 0x6ac 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x2c8 0x6b0 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_DAT2__GPIO7_IO06 0x2c8 0x6b0 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x2cc 0x6b4 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_DAT3__UART3_CTS_B 0x2cc 0x6b4 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD3_DAT3__UART3_RTS_B 0x2cc 0x6b4 0x92c 0x1 0x4 ++#define MX6QDL_PAD_SD3_DAT3__GPIO7_IO07 0x2cc 0x6b4 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_RST__SD3_RESET 0x2d0 0x6b8 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_RST__UART3_RTS_B 0x2d0 0x6b8 0x92c 0x1 0x5 ++#define MX6QDL_PAD_SD3_RST__UART3_CTS_B 0x2d0 0x6b8 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD3_RST__GPIO7_IO08 0x2d0 0x6b8 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_CLE__NAND_CLE 0x2d4 0x6bc 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_CLE__IPU2_SISG4 0x2d4 0x6bc 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_CLE__GPIO6_IO07 0x2d4 0x6bc 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_ALE__NAND_ALE 0x2d8 0x6c0 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_ALE__SD4_RESET 0x2d8 0x6c0 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_ALE__GPIO6_IO08 0x2d8 0x6c0 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_WP_B__NAND_WP_B 0x2dc 0x6c4 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_WP_B__IPU2_SISG5 0x2dc 0x6c4 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_WP_B__GPIO6_IO09 0x2dc 0x6c4 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_RB0__NAND_READY_B 0x2e0 0x6c8 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_RB0__IPU2_DI0_PIN01 0x2e0 0x6c8 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_RB0__GPIO6_IO10 0x2e0 0x6c8 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_CS0__NAND_CE0_B 0x2e4 0x6cc 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_CS0__GPIO6_IO11 0x2e4 0x6cc 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_CS1__NAND_CE1_B 0x2e8 0x6d0 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_CS1__SD4_VSELECT 0x2e8 0x6d0 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_CS1__SD3_VSELECT 0x2e8 0x6d0 0x000 0x2 0x0 ++#define MX6QDL_PAD_NANDF_CS1__GPIO6_IO14 0x2e8 0x6d0 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_CS2__NAND_CE2_B 0x2ec 0x6d4 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_CS2__IPU1_SISG0 0x2ec 0x6d4 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_CS2__ESAI_TX0 0x2ec 0x6d4 0x874 0x2 0x1 ++#define MX6QDL_PAD_NANDF_CS2__EIM_CRE 0x2ec 0x6d4 0x000 0x3 0x0 ++#define MX6QDL_PAD_NANDF_CS2__CCM_CLKO2 0x2ec 0x6d4 0x000 0x4 0x0 ++#define MX6QDL_PAD_NANDF_CS2__GPIO6_IO15 0x2ec 0x6d4 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_CS2__IPU2_SISG0 0x2ec 0x6d4 0x000 0x6 0x0 ++#define MX6QDL_PAD_NANDF_CS3__NAND_CE3_B 0x2f0 0x6d8 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_CS3__IPU1_SISG1 0x2f0 0x6d8 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_CS3__ESAI_TX1 0x2f0 0x6d8 0x878 0x2 0x1 ++#define MX6QDL_PAD_NANDF_CS3__EIM_ADDR26 0x2f0 0x6d8 0x000 0x3 0x0 ++#define MX6QDL_PAD_NANDF_CS3__GPIO6_IO16 0x2f0 0x6d8 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_CS3__IPU2_SISG1 0x2f0 0x6d8 0x000 0x6 0x0 ++#define MX6QDL_PAD_SD4_CMD__SD4_CMD 0x2f4 0x6dc 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD4_CMD__NAND_RE_B 0x2f4 0x6dc 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD4_CMD__UART3_TX_DATA 0x2f4 0x6dc 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD4_CMD__UART3_RX_DATA 0x2f4 0x6dc 0x930 0x2 0x2 ++#define MX6QDL_PAD_SD4_CMD__GPIO7_IO09 0x2f4 0x6dc 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD4_CLK__SD4_CLK 0x2f8 0x6e0 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD4_CLK__NAND_WE_B 0x2f8 0x6e0 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD4_CLK__UART3_RX_DATA 0x2f8 0x6e0 0x930 0x2 0x3 ++#define MX6QDL_PAD_SD4_CLK__UART3_TX_DATA 0x2f8 0x6e0 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD4_CLK__GPIO7_IO10 0x2f8 0x6e0 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_D0__NAND_DATA00 0x2fc 0x6e4 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_D0__SD1_DATA4 0x2fc 0x6e4 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_D0__GPIO2_IO00 0x2fc 0x6e4 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_D1__NAND_DATA01 0x300 0x6e8 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_D1__SD1_DATA5 0x300 0x6e8 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_D1__GPIO2_IO01 0x300 0x6e8 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_D2__NAND_DATA02 0x304 0x6ec 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_D2__SD1_DATA6 0x304 0x6ec 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_D2__GPIO2_IO02 0x304 0x6ec 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_D3__NAND_DATA03 0x308 0x6f0 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_D3__SD1_DATA7 0x308 0x6f0 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_D3__GPIO2_IO03 0x308 0x6f0 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_D4__NAND_DATA04 0x30c 0x6f4 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_D4__SD2_DATA4 0x30c 0x6f4 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_D4__GPIO2_IO04 0x30c 0x6f4 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_D5__NAND_DATA05 0x310 0x6f8 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_D5__SD2_DATA5 0x310 0x6f8 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_D5__GPIO2_IO05 0x310 0x6f8 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_D6__NAND_DATA06 0x314 0x6fc 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_D6__SD2_DATA6 0x314 0x6fc 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_D6__GPIO2_IO06 0x314 0x6fc 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_D7__NAND_DATA07 0x318 0x700 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_D7__SD2_DATA7 0x318 0x700 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_D7__GPIO2_IO07 0x318 0x700 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD4_DAT0__SD4_DATA0 0x31c 0x704 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD4_DAT0__NAND_DQS 0x31c 0x704 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD4_DAT0__GPIO2_IO08 0x31c 0x704 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD4_DAT1__SD4_DATA1 0x320 0x708 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD4_DAT1__PWM3_OUT 0x320 0x708 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD4_DAT1__GPIO2_IO09 0x320 0x708 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD4_DAT2__SD4_DATA2 0x324 0x70c 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD4_DAT2__PWM4_OUT 0x324 0x70c 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD4_DAT2__GPIO2_IO10 0x324 0x70c 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD4_DAT3__SD4_DATA3 0x328 0x710 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD4_DAT3__GPIO2_IO11 0x328 0x710 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD4_DAT4__SD4_DATA4 0x32c 0x714 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA 0x32c 0x714 0x928 0x2 0x6 ++#define MX6QDL_PAD_SD4_DAT4__UART2_TX_DATA 0x32c 0x714 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD4_DAT4__GPIO2_IO12 0x32c 0x714 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD4_DAT5__SD4_DATA5 0x330 0x718 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD4_DAT5__UART2_RTS_B 0x330 0x718 0x924 0x2 0x4 ++#define MX6QDL_PAD_SD4_DAT5__UART2_CTS_B 0x330 0x718 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD4_DAT5__GPIO2_IO13 0x330 0x718 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD4_DAT6__SD4_DATA6 0x334 0x71c 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD4_DAT6__UART2_CTS_B 0x334 0x71c 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD4_DAT6__UART2_RTS_B 0x334 0x71c 0x924 0x2 0x5 ++#define MX6QDL_PAD_SD4_DAT6__GPIO2_IO14 0x334 0x71c 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD4_DAT7__SD4_DATA7 0x338 0x720 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA 0x338 0x720 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD4_DAT7__UART2_RX_DATA 0x338 0x720 0x928 0x2 0x7 ++#define MX6QDL_PAD_SD4_DAT7__GPIO2_IO15 0x338 0x720 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x33c 0x724 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD1_DAT1__ECSPI5_SS0 0x33c 0x724 0x834 0x1 0x1 ++#define MX6QDL_PAD_SD1_DAT1__PWM3_OUT 0x33c 0x724 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD1_DAT1__GPT_CAPTURE2 0x33c 0x724 0x000 0x3 0x0 ++#define MX6QDL_PAD_SD1_DAT1__GPIO1_IO17 0x33c 0x724 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x340 0x728 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD1_DAT0__ECSPI5_MISO 0x340 0x728 0x82c 0x1 0x1 ++#define MX6QDL_PAD_SD1_DAT0__GPT_CAPTURE1 0x340 0x728 0x000 0x3 0x0 ++#define MX6QDL_PAD_SD1_DAT0__GPIO1_IO16 0x340 0x728 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x344 0x72c 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD1_DAT3__ECSPI5_SS2 0x344 0x72c 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD1_DAT3__GPT_COMPARE3 0x344 0x72c 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD1_DAT3__PWM1_OUT 0x344 0x72c 0x000 0x3 0x0 ++#define MX6QDL_PAD_SD1_DAT3__WDOG2_B 0x344 0x72c 0x000 0x4 0x0 ++#define MX6QDL_PAD_SD1_DAT3__GPIO1_IO21 0x344 0x72c 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD1_DAT3__WDOG2_RESET_B_DEB 0x344 0x72c 0x000 0x6 0x0 ++#define MX6QDL_PAD_SD1_CMD__SD1_CMD 0x348 0x730 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD1_CMD__ECSPI5_MOSI 0x348 0x730 0x830 0x1 0x0 ++#define MX6QDL_PAD_SD1_CMD__PWM4_OUT 0x348 0x730 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD1_CMD__GPT_COMPARE1 0x348 0x730 0x000 0x3 0x0 ++#define MX6QDL_PAD_SD1_CMD__GPIO1_IO18 0x348 0x730 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x34c 0x734 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD1_DAT2__ECSPI5_SS1 0x34c 0x734 0x838 0x1 0x1 ++#define MX6QDL_PAD_SD1_DAT2__GPT_COMPARE2 0x34c 0x734 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD1_DAT2__PWM2_OUT 0x34c 0x734 0x000 0x3 0x0 ++#define MX6QDL_PAD_SD1_DAT2__WDOG1_B 0x34c 0x734 0x000 0x4 0x0 ++#define MX6QDL_PAD_SD1_DAT2__GPIO1_IO19 0x34c 0x734 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD1_DAT2__WDOG1_RESET_B_DEB 0x34c 0x734 0x000 0x6 0x0 ++#define MX6QDL_PAD_SD1_CLK__SD1_CLK 0x350 0x738 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD1_CLK__ECSPI5_SCLK 0x350 0x738 0x828 0x1 0x0 ++#define MX6QDL_PAD_SD1_CLK__GPT_CLKIN 0x350 0x738 0x000 0x3 0x0 ++#define MX6QDL_PAD_SD1_CLK__GPIO1_IO20 0x350 0x738 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD2_CLK__SD2_CLK 0x354 0x73c 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD2_CLK__ECSPI5_SCLK 0x354 0x73c 0x828 0x1 0x1 ++#define MX6QDL_PAD_SD2_CLK__KEY_COL5 0x354 0x73c 0x8e8 0x2 0x3 ++#define MX6QDL_PAD_SD2_CLK__AUD4_RXFS 0x354 0x73c 0x7c0 0x3 0x1 ++#define MX6QDL_PAD_SD2_CLK__GPIO1_IO10 0x354 0x73c 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD2_CMD__SD2_CMD 0x358 0x740 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD2_CMD__ECSPI5_MOSI 0x358 0x740 0x830 0x1 0x1 ++#define MX6QDL_PAD_SD2_CMD__KEY_ROW5 0x358 0x740 0x8f4 0x2 0x2 ++#define MX6QDL_PAD_SD2_CMD__AUD4_RXC 0x358 0x740 0x7bc 0x3 0x1 ++#define MX6QDL_PAD_SD2_CMD__GPIO1_IO11 0x358 0x740 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x35c 0x744 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD2_DAT3__ECSPI5_SS3 0x35c 0x744 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD2_DAT3__KEY_COL6 0x35c 0x744 0x8ec 0x2 0x2 ++#define MX6QDL_PAD_SD2_DAT3__AUD4_TXC 0x35c 0x744 0x7c4 0x3 0x1 ++#define MX6QDL_PAD_SD2_DAT3__GPIO1_IO12 0x35c 0x744 0x000 0x5 0x0 + + #endif /* __DTS_IMX6Q_PINFUNC_H */ +diff --git a/arch/arm/boot/dts/imx6q-sabreauto.dts b/arch/arm/boot/dts/imx6q-sabreauto.dts +index 49d6f28..334b924 100644 +--- a/arch/arm/boot/dts/imx6q-sabreauto.dts ++++ b/arch/arm/boot/dts/imx6q-sabreauto.dts +@@ -20,16 +20,6 @@ + compatible = "fsl,imx6q-sabreauto", "fsl,imx6q"; + }; + +-&iomuxc { +- pinctrl-names = "default"; +- pinctrl-0 = <&pinctrl_hog>; +- +- hog { +- pinctrl_hog: hoggrp { +- fsl,pins = < +- MX6Q_PAD_NANDF_CS2__GPIO6_IO15 0x80000000 +- MX6Q_PAD_SD2_DAT2__GPIO1_IO13 0x80000000 +- >; +- }; +- }; ++&sata { ++ status = "okay"; + }; +diff --git a/arch/arm/boot/dts/imx6q-sabrelite.dts b/arch/arm/boot/dts/imx6q-sabrelite.dts +index 6a00066..3530280 100644 +--- a/arch/arm/boot/dts/imx6q-sabrelite.dts ++++ b/arch/arm/boot/dts/imx6q-sabrelite.dts +@@ -65,6 +65,10 @@ + }; + }; + ++&sata { ++ status = "okay"; ++}; ++ + &ecspi1 { + fsl,spi-num-chipselects = <1>; + cs-gpios = <&gpio3 19 0>; +@@ -91,14 +95,14 @@ + hog { + pinctrl_hog: hoggrp { + fsl,pins = < +- MX6Q_PAD_NANDF_D6__GPIO2_IO06 0x80000000 +- MX6Q_PAD_NANDF_D7__GPIO2_IO07 0x80000000 +- MX6Q_PAD_EIM_D19__GPIO3_IO19 0x80000000 +- MX6Q_PAD_EIM_D22__GPIO3_IO22 0x80000000 +- MX6Q_PAD_EIM_D23__GPIO3_IO23 0x80000000 +- MX6Q_PAD_SD3_DAT5__GPIO7_IO00 0x80000000 +- MX6Q_PAD_SD3_DAT4__GPIO7_IO01 0x1f0b0 +- MX6Q_PAD_GPIO_0__CCM_CLKO1 0x80000000 ++ MX6QDL_PAD_NANDF_D6__GPIO2_IO06 0x80000000 ++ MX6QDL_PAD_NANDF_D7__GPIO2_IO07 0x80000000 ++ MX6QDL_PAD_EIM_D19__GPIO3_IO19 0x80000000 ++ MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x80000000 ++ MX6QDL_PAD_EIM_D23__GPIO3_IO23 0x80000000 ++ MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x80000000 ++ MX6QDL_PAD_SD3_DAT4__GPIO7_IO01 0x1f0b0 ++ MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x80000000 + >; + }; + }; +@@ -163,7 +167,7 @@ + codec: sgtl5000@0a { + compatible = "fsl,sgtl5000"; + reg = <0x0a>; +- clocks = <&clks 169>; ++ clocks = <&clks 201>; + VDDA-supply = <®_2p5v>; + VDDIO-supply = <®_3p3v>; + }; +diff --git a/arch/arm/boot/dts/imx6q-sabresd.dts b/arch/arm/boot/dts/imx6q-sabresd.dts +index 4420513..9cbdfe7 100644 +--- a/arch/arm/boot/dts/imx6q-sabresd.dts ++++ b/arch/arm/boot/dts/imx6q-sabresd.dts +@@ -20,20 +20,6 @@ + compatible = "fsl,imx6q-sabresd", "fsl,imx6q"; + }; + +-&iomuxc { +- pinctrl-names = "default"; +- pinctrl-0 = <&pinctrl_hog>; +- +- hog { +- pinctrl_hog: hoggrp { +- fsl,pins = < +- MX6Q_PAD_GPIO_4__GPIO1_IO04 0x80000000 +- MX6Q_PAD_GPIO_5__GPIO1_IO05 0x80000000 +- MX6Q_PAD_NANDF_D0__GPIO2_IO00 0x80000000 +- MX6Q_PAD_NANDF_D1__GPIO2_IO01 0x80000000 +- MX6Q_PAD_NANDF_D2__GPIO2_IO02 0x80000000 +- MX6Q_PAD_NANDF_D3__GPIO2_IO03 0x80000000 +- >; +- }; +- }; ++&sata { ++ status = "okay"; + }; +diff --git a/arch/arm/boot/dts/imx6q-wandboard.dts b/arch/arm/boot/dts/imx6q-wandboard.dts +new file mode 100644 +index 0000000..36be17f +--- /dev/null ++++ b/arch/arm/boot/dts/imx6q-wandboard.dts +@@ -0,0 +1,26 @@ ++/* ++ * Copyright 2013 Freescale Semiconductor, Inc. ++ * ++ * Author: Fabio Estevam fabio.estevam@freescale.com ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ * ++ */ ++/dts-v1/; ++#include "imx6q.dtsi" ++#include "imx6qdl-wandboard.dtsi" ++ ++/ { ++ model = "Wandboard i.MX6 Quad Board"; ++ compatible = "wand,imx6q-wandboard", "fsl,imx6q"; ++ ++ memory { ++ reg = <0x10000000 0x80000000>; ++ }; ++}; ++ ++&sata { ++ status = "okay"; ++}; +diff --git a/arch/arm/boot/dts/imx6q.dtsi b/arch/arm/boot/dts/imx6q.dtsi +index dc54a72..f024ef2 100644 +--- a/arch/arm/boot/dts/imx6q.dtsi ++++ b/arch/arm/boot/dts/imx6q.dtsi +@@ -8,8 +8,8 @@ + * + */ + +-#include "imx6qdl.dtsi" + #include "imx6q-pinfunc.h" ++#include "imx6qdl.dtsi" + + / { + cpus { +@@ -61,6 +61,12 @@ + }; + + soc { ++ ocram: sram@00900000 { ++ compatible = "mmio-sram"; ++ reg = <0x00900000 0x40000>; ++ clocks = <&clks 142>; ++ }; ++ + aips-bus@02000000 { /* AIPS1 */ + spba-bus@02000000 { + ecspi5: ecspi@02018000 { +@@ -77,261 +83,54 @@ + + iomuxc: iomuxc@020e0000 { + compatible = "fsl,imx6q-iomuxc"; +- reg = <0x020e0000 0x4000>; + +- /* shared pinctrl settings */ +- audmux { +- pinctrl_audmux_1: audmux-1 { +- fsl,pins = < +- MX6Q_PAD_SD2_DAT0__AUD4_RXD 0x80000000 +- MX6Q_PAD_SD2_DAT3__AUD4_TXC 0x80000000 +- MX6Q_PAD_SD2_DAT2__AUD4_TXD 0x80000000 +- MX6Q_PAD_SD2_DAT1__AUD4_TXFS 0x80000000 +- >; +- }; +- +- pinctrl_audmux_2: audmux-2 { +- fsl,pins = < +- MX6Q_PAD_CSI0_DAT7__AUD3_RXD 0x80000000 +- MX6Q_PAD_CSI0_DAT4__AUD3_TXC 0x80000000 +- MX6Q_PAD_CSI0_DAT5__AUD3_TXD 0x80000000 +- MX6Q_PAD_CSI0_DAT6__AUD3_TXFS 0x80000000 +- >; +- }; +- }; +- +- ecspi1 { +- pinctrl_ecspi1_1: ecspi1grp-1 { +- fsl,pins = < +- MX6Q_PAD_EIM_D17__ECSPI1_MISO 0x100b1 +- MX6Q_PAD_EIM_D18__ECSPI1_MOSI 0x100b1 +- MX6Q_PAD_EIM_D16__ECSPI1_SCLK 0x100b1 +- >; +- }; +- }; +- +- ecspi3 { +- pinctrl_ecspi3_1: ecspi3grp-1 { +- fsl,pins = < +- MX6Q_PAD_DISP0_DAT2__ECSPI3_MISO 0x100b1 +- MX6Q_PAD_DISP0_DAT1__ECSPI3_MOSI 0x100b1 +- MX6Q_PAD_DISP0_DAT0__ECSPI3_SCLK 0x100b1 +- >; +- }; +- }; +- +- enet { +- pinctrl_enet_1: enetgrp-1 { +- fsl,pins = < +- MX6Q_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0 +- MX6Q_PAD_ENET_MDC__ENET_MDC 0x1b0b0 +- MX6Q_PAD_RGMII_TXC__RGMII_TXC 0x1b0b0 +- MX6Q_PAD_RGMII_TD0__RGMII_TD0 0x1b0b0 +- MX6Q_PAD_RGMII_TD1__RGMII_TD1 0x1b0b0 +- MX6Q_PAD_RGMII_TD2__RGMII_TD2 0x1b0b0 +- MX6Q_PAD_RGMII_TD3__RGMII_TD3 0x1b0b0 +- MX6Q_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b0b0 +- MX6Q_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0 +- MX6Q_PAD_RGMII_RXC__RGMII_RXC 0x1b0b0 +- MX6Q_PAD_RGMII_RD0__RGMII_RD0 0x1b0b0 +- MX6Q_PAD_RGMII_RD1__RGMII_RD1 0x1b0b0 +- MX6Q_PAD_RGMII_RD2__RGMII_RD2 0x1b0b0 +- MX6Q_PAD_RGMII_RD3__RGMII_RD3 0x1b0b0 +- MX6Q_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0 +- MX6Q_PAD_GPIO_16__ENET_REF_CLK 0x4001b0a8 +- >; +- }; +- +- pinctrl_enet_2: enetgrp-2 { +- fsl,pins = < +- MX6Q_PAD_KEY_COL1__ENET_MDIO 0x1b0b0 +- MX6Q_PAD_KEY_COL2__ENET_MDC 0x1b0b0 +- MX6Q_PAD_RGMII_TXC__RGMII_TXC 0x1b0b0 +- MX6Q_PAD_RGMII_TD0__RGMII_TD0 0x1b0b0 +- MX6Q_PAD_RGMII_TD1__RGMII_TD1 0x1b0b0 +- MX6Q_PAD_RGMII_TD2__RGMII_TD2 0x1b0b0 +- MX6Q_PAD_RGMII_TD3__RGMII_TD3 0x1b0b0 +- MX6Q_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b0b0 +- MX6Q_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0 +- MX6Q_PAD_RGMII_RXC__RGMII_RXC 0x1b0b0 +- MX6Q_PAD_RGMII_RD0__RGMII_RD0 0x1b0b0 +- MX6Q_PAD_RGMII_RD1__RGMII_RD1 0x1b0b0 +- MX6Q_PAD_RGMII_RD2__RGMII_RD2 0x1b0b0 +- MX6Q_PAD_RGMII_RD3__RGMII_RD3 0x1b0b0 +- MX6Q_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0 +- >; +- }; +- }; +- +- gpmi-nand { +- pinctrl_gpmi_nand_1: gpmi-nand-1 { +- fsl,pins = < +- MX6Q_PAD_NANDF_CLE__NAND_CLE 0xb0b1 +- MX6Q_PAD_NANDF_ALE__NAND_ALE 0xb0b1 +- MX6Q_PAD_NANDF_WP_B__NAND_WP_B 0xb0b1 +- MX6Q_PAD_NANDF_RB0__NAND_READY_B 0xb000 +- MX6Q_PAD_NANDF_CS0__NAND_CE0_B 0xb0b1 +- MX6Q_PAD_NANDF_CS1__NAND_CE1_B 0xb0b1 +- MX6Q_PAD_NANDF_CS2__NAND_CE2_B 0xb0b1 +- MX6Q_PAD_NANDF_CS3__NAND_CE3_B 0xb0b1 +- MX6Q_PAD_SD4_CMD__NAND_RE_B 0xb0b1 +- MX6Q_PAD_SD4_CLK__NAND_WE_B 0xb0b1 +- MX6Q_PAD_NANDF_D0__NAND_DATA00 0xb0b1 +- MX6Q_PAD_NANDF_D1__NAND_DATA01 0xb0b1 +- MX6Q_PAD_NANDF_D2__NAND_DATA02 0xb0b1 +- MX6Q_PAD_NANDF_D3__NAND_DATA03 0xb0b1 +- MX6Q_PAD_NANDF_D4__NAND_DATA04 0xb0b1 +- MX6Q_PAD_NANDF_D5__NAND_DATA05 0xb0b1 +- MX6Q_PAD_NANDF_D6__NAND_DATA06 0xb0b1 +- MX6Q_PAD_NANDF_D7__NAND_DATA07 0xb0b1 +- MX6Q_PAD_SD4_DAT0__NAND_DQS 0x00b1 +- >; +- }; +- }; +- +- i2c1 { +- pinctrl_i2c1_1: i2c1grp-1 { +- fsl,pins = < +- MX6Q_PAD_EIM_D21__I2C1_SCL 0x4001b8b1 +- MX6Q_PAD_EIM_D28__I2C1_SDA 0x4001b8b1 +- >; +- }; +- }; +- +- i2c2 { +- pinctrl_i2c2_1: i2c2grp-1 { +- fsl,pins = < +- MX6Q_PAD_EIM_EB2__I2C2_SCL 0x4001b8b1 +- MX6Q_PAD_EIM_D16__I2C2_SDA 0x4001b8b1 +- >; +- }; +- }; +- +- i2c3 { +- pinctrl_i2c3_1: i2c3grp-1 { +- fsl,pins = < +- MX6Q_PAD_EIM_D17__I2C3_SCL 0x4001b8b1 +- MX6Q_PAD_EIM_D18__I2C3_SDA 0x4001b8b1 +- >; +- }; +- }; +- +- uart1 { +- pinctrl_uart1_1: uart1grp-1 { +- fsl,pins = < +- MX6Q_PAD_CSI0_DAT10__UART1_TX_DATA 0x1b0b1 +- MX6Q_PAD_CSI0_DAT11__UART1_RX_DATA 0x1b0b1 +- >; +- }; +- }; +- +- uart2 { +- pinctrl_uart2_1: uart2grp-1 { +- fsl,pins = < +- MX6Q_PAD_EIM_D26__UART2_TX_DATA 0x1b0b1 +- MX6Q_PAD_EIM_D27__UART2_RX_DATA 0x1b0b1 +- >; +- }; +- }; +- +- uart4 { +- pinctrl_uart4_1: uart4grp-1 { +- fsl,pins = < +- MX6Q_PAD_KEY_COL0__UART4_TX_DATA 0x1b0b1 +- MX6Q_PAD_KEY_ROW0__UART4_RX_DATA 0x1b0b1 +- >; +- }; +- }; +- +- usbotg { +- pinctrl_usbotg_1: usbotggrp-1 { +- fsl,pins = < +- MX6Q_PAD_GPIO_1__USB_OTG_ID 0x17059 +- >; +- }; +- +- pinctrl_usbotg_2: usbotggrp-2 { +- fsl,pins = < +- MX6Q_PAD_ENET_RX_ER__USB_OTG_ID 0x17059 +- >; +- }; +- }; +- +- usdhc2 { +- pinctrl_usdhc2_1: usdhc2grp-1 { +- fsl,pins = < +- MX6Q_PAD_SD2_CMD__SD2_CMD 0x17059 +- MX6Q_PAD_SD2_CLK__SD2_CLK 0x10059 +- MX6Q_PAD_SD2_DAT0__SD2_DATA0 0x17059 +- MX6Q_PAD_SD2_DAT1__SD2_DATA1 0x17059 +- MX6Q_PAD_SD2_DAT2__SD2_DATA2 0x17059 +- MX6Q_PAD_SD2_DAT3__SD2_DATA3 0x17059 +- MX6Q_PAD_NANDF_D4__SD2_DATA4 0x17059 +- MX6Q_PAD_NANDF_D5__SD2_DATA5 0x17059 +- MX6Q_PAD_NANDF_D6__SD2_DATA6 0x17059 +- MX6Q_PAD_NANDF_D7__SD2_DATA7 0x17059 +- >; +- }; +- }; +- +- usdhc3 { +- pinctrl_usdhc3_1: usdhc3grp-1 { +- fsl,pins = < +- MX6Q_PAD_SD3_CMD__SD3_CMD 0x17059 +- MX6Q_PAD_SD3_CLK__SD3_CLK 0x10059 +- MX6Q_PAD_SD3_DAT0__SD3_DATA0 0x17059 +- MX6Q_PAD_SD3_DAT1__SD3_DATA1 0x17059 +- MX6Q_PAD_SD3_DAT2__SD3_DATA2 0x17059 +- MX6Q_PAD_SD3_DAT3__SD3_DATA3 0x17059 +- MX6Q_PAD_SD3_DAT4__SD3_DATA4 0x17059 +- MX6Q_PAD_SD3_DAT5__SD3_DATA5 0x17059 +- MX6Q_PAD_SD3_DAT6__SD3_DATA6 0x17059 +- MX6Q_PAD_SD3_DAT7__SD3_DATA7 0x17059 +- >; +- }; +- +- pinctrl_usdhc3_2: usdhc3grp-2 { +- fsl,pins = < +- MX6Q_PAD_SD3_CMD__SD3_CMD 0x17059 +- MX6Q_PAD_SD3_CLK__SD3_CLK 0x10059 +- MX6Q_PAD_SD3_DAT0__SD3_DATA0 0x17059 +- MX6Q_PAD_SD3_DAT1__SD3_DATA1 0x17059 +- MX6Q_PAD_SD3_DAT2__SD3_DATA2 0x17059 +- MX6Q_PAD_SD3_DAT3__SD3_DATA3 0x17059 +- >; +- }; +- }; +- +- usdhc4 { +- pinctrl_usdhc4_1: usdhc4grp-1 { +- fsl,pins = < +- MX6Q_PAD_SD4_CMD__SD4_CMD 0x17059 +- MX6Q_PAD_SD4_CLK__SD4_CLK 0x10059 +- MX6Q_PAD_SD4_DAT0__SD4_DATA0 0x17059 +- MX6Q_PAD_SD4_DAT1__SD4_DATA1 0x17059 +- MX6Q_PAD_SD4_DAT2__SD4_DATA2 0x17059 +- MX6Q_PAD_SD4_DAT3__SD4_DATA3 0x17059 +- MX6Q_PAD_SD4_DAT4__SD4_DATA4 0x17059 +- MX6Q_PAD_SD4_DAT5__SD4_DATA5 0x17059 +- MX6Q_PAD_SD4_DAT6__SD4_DATA6 0x17059 +- MX6Q_PAD_SD4_DAT7__SD4_DATA7 0x17059 +- >; +- }; +- +- pinctrl_usdhc4_2: usdhc4grp-2 { +- fsl,pins = < +- MX6Q_PAD_SD4_CMD__SD4_CMD 0x17059 +- MX6Q_PAD_SD4_CLK__SD4_CLK 0x10059 +- MX6Q_PAD_SD4_DAT0__SD4_DATA0 0x17059 +- MX6Q_PAD_SD4_DAT1__SD4_DATA1 0x17059 +- MX6Q_PAD_SD4_DAT2__SD4_DATA2 0x17059 +- MX6Q_PAD_SD4_DAT3__SD4_DATA3 0x17059 ++ ipu2 { ++ pinctrl_ipu2_1: ipu2grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_DI0_DISP_CLK__IPU2_DI0_DISP_CLK 0x10 ++ MX6QDL_PAD_DI0_PIN15__IPU2_DI0_PIN15 0x10 ++ MX6QDL_PAD_DI0_PIN2__IPU2_DI0_PIN02 0x10 ++ MX6QDL_PAD_DI0_PIN3__IPU2_DI0_PIN03 0x10 ++ MX6QDL_PAD_DI0_PIN4__IPU2_DI0_PIN04 0x80000000 ++ MX6QDL_PAD_DISP0_DAT0__IPU2_DISP0_DATA00 0x10 ++ MX6QDL_PAD_DISP0_DAT1__IPU2_DISP0_DATA01 0x10 ++ MX6QDL_PAD_DISP0_DAT2__IPU2_DISP0_DATA02 0x10 ++ MX6QDL_PAD_DISP0_DAT3__IPU2_DISP0_DATA03 0x10 ++ MX6QDL_PAD_DISP0_DAT4__IPU2_DISP0_DATA04 0x10 ++ MX6QDL_PAD_DISP0_DAT5__IPU2_DISP0_DATA05 0x10 ++ MX6QDL_PAD_DISP0_DAT6__IPU2_DISP0_DATA06 0x10 ++ MX6QDL_PAD_DISP0_DAT7__IPU2_DISP0_DATA07 0x10 ++ MX6QDL_PAD_DISP0_DAT8__IPU2_DISP0_DATA08 0x10 ++ MX6QDL_PAD_DISP0_DAT9__IPU2_DISP0_DATA09 0x10 ++ MX6QDL_PAD_DISP0_DAT10__IPU2_DISP0_DATA10 0x10 ++ MX6QDL_PAD_DISP0_DAT11__IPU2_DISP0_DATA11 0x10 ++ MX6QDL_PAD_DISP0_DAT12__IPU2_DISP0_DATA12 0x10 ++ MX6QDL_PAD_DISP0_DAT13__IPU2_DISP0_DATA13 0x10 ++ MX6QDL_PAD_DISP0_DAT14__IPU2_DISP0_DATA14 0x10 ++ MX6QDL_PAD_DISP0_DAT15__IPU2_DISP0_DATA15 0x10 ++ MX6QDL_PAD_DISP0_DAT16__IPU2_DISP0_DATA16 0x10 ++ MX6QDL_PAD_DISP0_DAT17__IPU2_DISP0_DATA17 0x10 ++ MX6QDL_PAD_DISP0_DAT18__IPU2_DISP0_DATA18 0x10 ++ MX6QDL_PAD_DISP0_DAT19__IPU2_DISP0_DATA19 0x10 ++ MX6QDL_PAD_DISP0_DAT20__IPU2_DISP0_DATA20 0x10 ++ MX6QDL_PAD_DISP0_DAT21__IPU2_DISP0_DATA21 0x10 ++ MX6QDL_PAD_DISP0_DAT22__IPU2_DISP0_DATA22 0x10 ++ MX6QDL_PAD_DISP0_DAT23__IPU2_DISP0_DATA23 0x10 + >; + }; + }; + }; + }; + ++ sata: sata@02200000 { ++ compatible = "fsl,imx6q-ahci"; ++ reg = <0x02200000 0x4000>; ++ interrupts = <0 39 0x04>; ++ clocks = <&clks 154>, <&clks 187>, <&clks 105>; ++ clock-names = "sata", "sata_ref", "ahb"; ++ status = "disabled"; ++ }; ++ + ipu2: ipu@02800000 { + #crtc-cells = <1>; + compatible = "fsl,imx6q-ipu"; +diff --git a/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi b/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi +index 4d237cf..1cbbc51 100644 +--- a/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi ++++ b/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi +@@ -16,6 +16,22 @@ + }; + }; + ++&ecspi1 { ++ fsl,spi-num-chipselects = <1>; ++ cs-gpios = <&gpio3 19 0>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_ecspi1_1 &pinctrl_ecspi1_sabreauto>; ++ status = "disabled"; /* pin conflict with WEIM NOR */ ++ ++ flash: m25p80@0 { ++ #address-cells = <1>; ++ #size-cells = <1>; ++ compatible = "st,m25p32"; ++ spi-max-frequency = <20000000>; ++ reg = <0>; ++ }; ++}; ++ + &fec { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_enet_2>; +@@ -23,6 +39,34 @@ + status = "okay"; + }; + ++&gpmi { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_gpmi_nand_1>; ++ status = "okay"; ++}; ++ ++&iomuxc { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_hog>; ++ ++ hog { ++ pinctrl_hog: hoggrp { ++ fsl,pins = < ++ MX6QDL_PAD_NANDF_CS2__GPIO6_IO15 0x80000000 ++ MX6QDL_PAD_SD2_DAT2__GPIO1_IO13 0x80000000 ++ >; ++ }; ++ }; ++ ++ ecspi1 { ++ pinctrl_ecspi1_sabreauto: ecspi1-sabreauto { ++ fsl,pins = < ++ MX6QDL_PAD_EIM_D19__GPIO3_IO19 0x80000000 ++ >; ++ }; ++ }; ++}; ++ + &uart4 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart4_1>; +@@ -36,3 +80,22 @@ + wp-gpios = <&gpio1 13 0>; + status = "okay"; + }; ++ ++&weim { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_weim_nor_1 &pinctrl_weim_cs0_1>; ++ #address-cells = <2>; ++ #size-cells = <1>; ++ ranges = <0 0 0x08000000 0x08000000>; ++ status = "disabled"; /* pin conflict with SPI NOR */ ++ ++ nor@0,0 { ++ compatible = "cfi-flash"; ++ reg = <0 0 0x02000000>; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ bank-width = <2>; ++ fsl,weim-cs-timing = <0x00620081 0x00000001 0x1c022000 ++ 0x0000c000 0x1404a38e 0x00000000>; ++ }; ++}; +diff --git a/arch/arm/boot/dts/imx6qdl-sabresd.dtsi b/arch/arm/boot/dts/imx6qdl-sabresd.dtsi +index e21f6a8..39eafc2 100644 +--- a/arch/arm/boot/dts/imx6qdl-sabresd.dtsi ++++ b/arch/arm/boot/dts/imx6qdl-sabresd.dtsi +@@ -26,6 +26,22 @@ + gpio = <&gpio3 22 0>; + enable-active-high; + }; ++ ++ reg_usb_h1_vbus: usb_h1_vbus { ++ compatible = "regulator-fixed"; ++ regulator-name = "usb_h1_vbus"; ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5000000>; ++ gpio = <&gpio1 29 0>; ++ enable-active-high; ++ }; ++ ++ reg_audio: wm8962_supply { ++ compatible = "regulator-fixed"; ++ regulator-name = "wm8962-supply"; ++ gpio = <&gpio4 10 0>; ++ enable-active-high; ++ }; + }; + + gpio-keys { +@@ -34,15 +50,58 @@ + volume-up { + label = "Volume Up"; + gpios = <&gpio1 4 0>; ++ gpio-key,wakeup; + linux,code = <115>; /* KEY_VOLUMEUP */ + }; + + volume-down { + label = "Volume Down"; + gpios = <&gpio1 5 0>; ++ gpio-key,wakeup; + linux,code = <114>; /* KEY_VOLUMEDOWN */ + }; + }; ++ ++ sound { ++ compatible = "fsl,imx6q-sabresd-wm8962", ++ "fsl,imx-audio-wm8962"; ++ model = "wm8962-audio"; ++ ssi-controller = <&ssi2>; ++ audio-codec = <&codec>; ++ audio-routing = ++ "Headphone Jack", "HPOUTL", ++ "Headphone Jack", "HPOUTR", ++ "Ext Spk", "SPKOUTL", ++ "Ext Spk", "SPKOUTR", ++ "MICBIAS", "AMIC", ++ "IN3R", "MICBIAS", ++ "DMIC", "MICBIAS", ++ "DMICDAT", "DMIC"; ++ mux-int-port = <2>; ++ mux-ext-port = <3>; ++ }; ++}; ++ ++&audmux { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_audmux_2>; ++ status = "okay"; ++}; ++ ++&ecspi1 { ++ fsl,spi-num-chipselects = <1>; ++ cs-gpios = <&gpio4 9 0>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_ecspi1_2>; ++ status = "okay"; ++ ++ flash: m25p80@0 { ++ #address-cells = <1>; ++ #size-cells = <1>; ++ compatible = "st,m25p32"; ++ spi-max-frequency = <20000000>; ++ reg = <0>; ++ }; + }; + + &fec { +@@ -52,6 +111,102 @@ + status = "okay"; + }; + ++&i2c1 { ++ clock-frequency = <100000>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_i2c1_2>; ++ status = "okay"; ++ ++ codec: wm8962@1a { ++ compatible = "wlf,wm8962"; ++ reg = <0x1a>; ++ clocks = <&clks 201>; ++ DCVDD-supply = <®_audio>; ++ DBVDD-supply = <®_audio>; ++ AVDD-supply = <®_audio>; ++ CPVDD-supply = <®_audio>; ++ MICVDD-supply = <®_audio>; ++ PLLVDD-supply = <®_audio>; ++ SPKVDD1-supply = <®_audio>; ++ SPKVDD2-supply = <®_audio>; ++ gpio-cfg = < ++ 0x0000 /* 0:Default */ ++ 0x0000 /* 1:Default */ ++ 0x0013 /* 2:FN_DMICCLK */ ++ 0x0000 /* 3:Default */ ++ 0x8014 /* 4:FN_DMICCDAT */ ++ 0x0000 /* 5:Default */ ++ >; ++ }; ++}; ++ ++&i2c3 { ++ clock-frequency = <100000>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_i2c3_2>; ++ status = "okay"; ++ ++ egalax_ts@04 { ++ compatible = "eeti,egalax_ts"; ++ reg = <0x04>; ++ interrupt-parent = <&gpio6>; ++ interrupts = <7 2>; ++ wakeup-gpios = <&gpio6 7 0>; ++ }; ++}; ++ ++&iomuxc { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_hog>; ++ ++ hog { ++ pinctrl_hog: hoggrp { ++ fsl,pins = < ++ MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x80000000 ++ MX6QDL_PAD_GPIO_5__GPIO1_IO05 0x80000000 ++ MX6QDL_PAD_NANDF_D0__GPIO2_IO00 0x80000000 ++ MX6QDL_PAD_NANDF_D1__GPIO2_IO01 0x80000000 ++ MX6QDL_PAD_NANDF_D2__GPIO2_IO02 0x80000000 ++ MX6QDL_PAD_NANDF_D3__GPIO2_IO03 0x80000000 ++ MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x130b0 ++ MX6QDL_PAD_NANDF_CLE__GPIO6_IO07 0x80000000 ++ MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x80000000 ++ MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x80000000 ++ >; ++ }; ++ }; ++}; ++ ++&ldb { ++ status = "okay"; ++ ++ lvds-channel@1 { ++ fsl,data-mapping = "spwg"; ++ fsl,data-width = <18>; ++ status = "okay"; ++ ++ display-timings { ++ native-mode = <&timing0>; ++ timing0: hsd100pxn1 { ++ clock-frequency = <65000000>; ++ hactive = <1024>; ++ vactive = <768>; ++ hback-porch = <220>; ++ hfront-porch = <40>; ++ vback-porch = <21>; ++ vfront-porch = <7>; ++ hsync-len = <60>; ++ vsync-len = <10>; ++ }; ++ }; ++ }; ++}; ++ ++&ssi2 { ++ fsl,mode = "i2s-slave"; ++ status = "okay"; ++}; ++ + &uart1 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart1_1>; +@@ -59,6 +214,7 @@ + }; + + &usbh1 { ++ vbus-supply = <®_usb_h1_vbus>; + status = "okay"; + }; + +diff --git a/arch/arm/boot/dts/imx6qdl-wandboard.dtsi b/arch/arm/boot/dts/imx6qdl-wandboard.dtsi +new file mode 100644 +index 0000000..a55113e +--- /dev/null ++++ b/arch/arm/boot/dts/imx6qdl-wandboard.dtsi +@@ -0,0 +1,137 @@ ++/* ++ * Copyright 2013 Freescale Semiconductor, Inc. ++ * ++ * Author: Fabio Estevam fabio.estevam@freescale.com ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ * ++ */ ++ ++/ { ++ regulators { ++ compatible = "simple-bus"; ++ ++ reg_2p5v: 2p5v { ++ compatible = "regulator-fixed"; ++ regulator-name = "2P5V"; ++ regulator-min-microvolt = <2500000>; ++ regulator-max-microvolt = <2500000>; ++ regulator-always-on; ++ }; ++ ++ reg_3p3v: 3p3v { ++ compatible = "regulator-fixed"; ++ regulator-name = "3P3V"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-always-on; ++ }; ++ }; ++ ++ sound { ++ compatible = "fsl,imx6-wandboard-sgtl5000", ++ "fsl,imx-audio-sgtl5000"; ++ model = "imx6-wandboard-sgtl5000"; ++ ssi-controller = <&ssi1>; ++ audio-codec = <&codec>; ++ audio-routing = ++ "MIC_IN", "Mic Jack", ++ "Mic Jack", "Mic Bias", ++ "Headphone Jack", "HP_OUT"; ++ mux-int-port = <1>; ++ mux-ext-port = <3>; ++ }; ++}; ++ ++&audmux { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_audmux_2>; ++ status = "okay"; ++}; ++ ++&i2c2 { ++ clock-frequency = <100000>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_i2c2_2>; ++ status = "okay"; ++ ++ codec: sgtl5000@0a { ++ compatible = "fsl,sgtl5000"; ++ reg = <0x0a>; ++ clocks = <&clks 201>; ++ VDDA-supply = <®_2p5v>; ++ VDDIO-supply = <®_3p3v>; ++ }; ++}; ++ ++&iomuxc { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_hog>; ++ ++ hog { ++ pinctrl_hog: hoggrp { ++ fsl,pins = < ++ MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x130b0 ++ MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x80000000 ++ MX6QDL_PAD_EIM_DA9__GPIO3_IO09 0x80000000 ++ MX6QDL_PAD_EIM_EB1__GPIO2_IO29 0x80000000 /* WL_REF_ON */ ++ MX6QDL_PAD_EIM_A25__GPIO5_IO02 0x80000000 /* WL_RST_N */ ++ MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x80000000 /* WL_REG_ON */ ++ MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x80000000 /* WL_HOST_WAKE */ ++ MX6QDL_PAD_ENET_TXD0__GPIO1_IO30 0x80000000 /* WL_WAKE */ ++ >; ++ }; ++ }; ++}; ++ ++&fec { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_enet_1>; ++ phy-mode = "rgmii"; ++ status = "okay"; ++}; ++ ++&ssi1 { ++ fsl,mode = "i2s-slave"; ++ status = "okay"; ++}; ++ ++&uart1 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_uart1_1>; ++ status = "okay"; ++}; ++ ++&uart3 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_uart3_2>; ++ fsl,uart-has-rtscts; ++ status = "okay"; ++}; ++ ++&usbh1 { ++ status = "okay"; ++}; ++ ++&usdhc1 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_usdhc1_2>; ++ cd-gpios = <&gpio1 2 0>; ++ status = "okay"; ++}; ++ ++&usdhc2 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_usdhc2_2>; ++ non-removable; ++ status = "okay"; ++}; ++ ++&usdhc3 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_usdhc3_2>; ++ cd-gpios = <&gpio3 9 0>; ++ status = "okay"; ++}; +diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi +index 9e8296e..ccd55c2 100644 +--- a/arch/arm/boot/dts/imx6qdl.dtsi ++++ b/arch/arm/boot/dts/imx6qdl.dtsi +@@ -14,11 +14,6 @@ + + / { + aliases { +- serial0 = &uart1; +- serial1 = &uart2; +- serial2 = &uart3; +- serial3 = &uart4; +- serial4 = &uart5; + gpio0 = &gpio1; + gpio1 = &gpio2; + gpio2 = &gpio3; +@@ -26,6 +21,18 @@ + gpio4 = &gpio5; + gpio5 = &gpio6; + gpio6 = &gpio7; ++ i2c0 = &i2c1; ++ i2c1 = &i2c2; ++ i2c2 = &i2c3; ++ serial0 = &uart1; ++ serial1 = &uart2; ++ serial2 = &uart3; ++ serial3 = &uart4; ++ serial4 = &uart5; ++ spi0 = &ecspi1; ++ spi1 = &ecspi2; ++ spi2 = &ecspi3; ++ spi3 = &ecspi4; + }; + + intc: interrupt-controller@00a01000 { +@@ -81,15 +88,14 @@ + #size-cells = <1>; + reg = <0x00112000 0x2000>, <0x00114000 0x2000>; + reg-names = "gpmi-nand", "bch"; +- interrupts = <0 13 0x04>, <0 15 0x04>; +- interrupt-names = "gpmi-dma", "bch"; ++ interrupts = <0 15 0x04>; ++ interrupt-names = "bch"; + clocks = <&clks 152>, <&clks 153>, <&clks 151>, + <&clks 150>, <&clks 149>; + clock-names = "gpmi_io", "gpmi_apb", "gpmi_bch", + "gpmi_bch_apb", "per1_bch"; + dmas = <&dma_apbh 0>; + dma-names = "rx-tx"; +- fsl,gpmi-dma-channel = <0>; + status = "disabled"; + }; + +@@ -106,6 +112,8 @@ + interrupts = <0 92 0x04>; + cache-unified; + cache-level = <2>; ++ arm,tag-latency = <4 2 3>; ++ arm,data-latency = <4 2 3>; + }; + + pmu { +@@ -182,6 +190,8 @@ + interrupts = <0 26 0x04>; + clocks = <&clks 160>, <&clks 161>; + clock-names = "ipg", "per"; ++ dmas = <&sdma 25 4 0>, <&sdma 26 4 0>; ++ dma-names = "rx", "tx"; + status = "disabled"; + }; + +@@ -195,6 +205,9 @@ + reg = <0x02028000 0x4000>; + interrupts = <0 46 0x04>; + clocks = <&clks 178>; ++ dmas = <&sdma 37 1 0>, ++ <&sdma 38 1 0>; ++ dma-names = "rx", "tx"; + fsl,fifo-depth = <15>; + fsl,ssi-dma-events = <38 37>; + status = "disabled"; +@@ -205,6 +218,9 @@ + reg = <0x0202c000 0x4000>; + interrupts = <0 47 0x04>; + clocks = <&clks 179>; ++ dmas = <&sdma 41 1 0>, ++ <&sdma 42 1 0>; ++ dma-names = "rx", "tx"; + fsl,fifo-depth = <15>; + fsl,ssi-dma-events = <42 41>; + status = "disabled"; +@@ -215,6 +231,9 @@ + reg = <0x02030000 0x4000>; + interrupts = <0 48 0x04>; + clocks = <&clks 180>; ++ dmas = <&sdma 45 1 0>, ++ <&sdma 46 1 0>; ++ dma-names = "rx", "tx"; + fsl,fifo-depth = <15>; + fsl,ssi-dma-events = <46 45>; + status = "disabled"; +@@ -276,17 +295,23 @@ + }; + + can1: flexcan@02090000 { ++ compatible = "fsl,imx6q-flexcan"; + reg = <0x02090000 0x4000>; + interrupts = <0 110 0x04>; ++ clocks = <&clks 108>, <&clks 109>; ++ clock-names = "ipg", "per"; + }; + + can2: flexcan@02094000 { ++ compatible = "fsl,imx6q-flexcan"; + reg = <0x02094000 0x4000>; + interrupts = <0 111 0x04>; ++ clocks = <&clks 110>, <&clks 111>; ++ clock-names = "ipg", "per"; + }; + + gpt: gpt@02098000 { +- compatible = "fsl,imx6q-gpt"; ++ compatible = "fsl,imx6q-gpt", "fsl,imx31-gpt"; + reg = <0x02098000 0x4000>; + interrupts = <0 55 0x04>; + clocks = <&clks 119>, <&clks 120>; +@@ -489,6 +514,13 @@ + }; + }; + ++ tempmon: tempmon { ++ compatible = "fsl,imx6q-tempmon"; ++ interrupts = <0 49 0x04>; ++ fsl,tempmon = <&anatop>; ++ fsl,tempmon-data = <&ocotp>; ++ }; ++ + usbphy1: usbphy@020c9000 { + compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy"; + reg = <0x020c9000 0x1000>; +@@ -544,6 +576,713 @@ + reg = <0x020e0000 0x38>; + }; + ++ iomuxc: iomuxc@020e0000 { ++ compatible = "fsl,imx6dl-iomuxc", "fsl,imx6q-iomuxc"; ++ reg = <0x020e0000 0x4000>; ++ ++ audmux { ++ pinctrl_audmux_1: audmux-1 { ++ fsl,pins = < ++ MX6QDL_PAD_SD2_DAT0__AUD4_RXD 0x80000000 ++ MX6QDL_PAD_SD2_DAT3__AUD4_TXC 0x80000000 ++ MX6QDL_PAD_SD2_DAT2__AUD4_TXD 0x80000000 ++ MX6QDL_PAD_SD2_DAT1__AUD4_TXFS 0x80000000 ++ >; ++ }; ++ ++ pinctrl_audmux_2: audmux-2 { ++ fsl,pins = < ++ MX6QDL_PAD_CSI0_DAT7__AUD3_RXD 0x80000000 ++ MX6QDL_PAD_CSI0_DAT4__AUD3_TXC 0x80000000 ++ MX6QDL_PAD_CSI0_DAT5__AUD3_TXD 0x80000000 ++ MX6QDL_PAD_CSI0_DAT6__AUD3_TXFS 0x80000000 ++ >; ++ }; ++ ++ pinctrl_audmux_3: audmux-3 { ++ fsl,pins = < ++ MX6QDL_PAD_DISP0_DAT16__AUD5_TXC 0x80000000 ++ MX6QDL_PAD_DISP0_DAT18__AUD5_TXFS 0x80000000 ++ MX6QDL_PAD_DISP0_DAT19__AUD5_RXD 0x80000000 ++ >; ++ }; ++ }; ++ ++ ecspi1 { ++ pinctrl_ecspi1_1: ecspi1grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_EIM_D17__ECSPI1_MISO 0x100b1 ++ MX6QDL_PAD_EIM_D18__ECSPI1_MOSI 0x100b1 ++ MX6QDL_PAD_EIM_D16__ECSPI1_SCLK 0x100b1 ++ >; ++ }; ++ ++ pinctrl_ecspi1_2: ecspi1grp-2 { ++ fsl,pins = < ++ MX6QDL_PAD_KEY_COL1__ECSPI1_MISO 0x100b1 ++ MX6QDL_PAD_KEY_ROW0__ECSPI1_MOSI 0x100b1 ++ MX6QDL_PAD_KEY_COL0__ECSPI1_SCLK 0x100b1 ++ >; ++ }; ++ }; ++ ++ ecspi3 { ++ pinctrl_ecspi3_1: ecspi3grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_DISP0_DAT2__ECSPI3_MISO 0x100b1 ++ MX6QDL_PAD_DISP0_DAT1__ECSPI3_MOSI 0x100b1 ++ MX6QDL_PAD_DISP0_DAT0__ECSPI3_SCLK 0x100b1 ++ >; ++ }; ++ }; ++ ++ enet { ++ pinctrl_enet_1: enetgrp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0 ++ MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0 ++ MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b0b0 ++ MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b0b0 ++ MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b0b0 ++ MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b0b0 ++ MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b0b0 ++ MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b0b0 ++ MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0 ++ MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b0b0 ++ MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b0b0 ++ MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b0b0 ++ MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b0b0 ++ MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b0b0 ++ MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0 ++ MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x4001b0a8 ++ >; ++ }; ++ ++ pinctrl_enet_2: enetgrp-2 { ++ fsl,pins = < ++ MX6QDL_PAD_KEY_COL1__ENET_MDIO 0x1b0b0 ++ MX6QDL_PAD_KEY_COL2__ENET_MDC 0x1b0b0 ++ MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b0b0 ++ MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b0b0 ++ MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b0b0 ++ MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b0b0 ++ MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b0b0 ++ MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b0b0 ++ MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0 ++ MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b0b0 ++ MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b0b0 ++ MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b0b0 ++ MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b0b0 ++ MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b0b0 ++ MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0 ++ >; ++ }; ++ ++ pinctrl_enet_3: enetgrp-3 { ++ fsl,pins = < ++ MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0 ++ MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0 ++ MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b0b0 ++ MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b0b0 ++ MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b0b0 ++ MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b0b0 ++ MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b0b0 ++ MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b0b0 ++ MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0 ++ MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b0b0 ++ MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b0b0 ++ MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b0b0 ++ MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b0b0 ++ MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b0b0 ++ MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0 ++ MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN 0x1b0b0 ++ >; ++ }; ++ }; ++ ++ esai { ++ pinctrl_esai_1: esaigrp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_ENET_RXD0__ESAI_TX_HF_CLK 0x1b030 ++ MX6QDL_PAD_ENET_CRS_DV__ESAI_TX_CLK 0x1b030 ++ MX6QDL_PAD_ENET_RXD1__ESAI_TX_FS 0x1b030 ++ MX6QDL_PAD_ENET_TX_EN__ESAI_TX3_RX2 0x1b030 ++ MX6QDL_PAD_ENET_TXD1__ESAI_TX2_RX3 0x1b030 ++ MX6QDL_PAD_ENET_TXD0__ESAI_TX4_RX1 0x1b030 ++ MX6QDL_PAD_ENET_MDC__ESAI_TX5_RX0 0x1b030 ++ MX6QDL_PAD_NANDF_CS2__ESAI_TX0 0x1b030 ++ MX6QDL_PAD_NANDF_CS3__ESAI_TX1 0x1b030 ++ >; ++ }; ++ ++ pinctrl_esai_2: esaigrp-2 { ++ fsl,pins = < ++ MX6QDL_PAD_ENET_CRS_DV__ESAI_TX_CLK 0x1b030 ++ MX6QDL_PAD_ENET_RXD1__ESAI_TX_FS 0x1b030 ++ MX6QDL_PAD_ENET_TX_EN__ESAI_TX3_RX2 0x1b030 ++ MX6QDL_PAD_GPIO_5__ESAI_TX2_RX3 0x1b030 ++ MX6QDL_PAD_ENET_TXD0__ESAI_TX4_RX1 0x1b030 ++ MX6QDL_PAD_ENET_MDC__ESAI_TX5_RX0 0x1b030 ++ MX6QDL_PAD_GPIO_17__ESAI_TX0 0x1b030 ++ MX6QDL_PAD_NANDF_CS3__ESAI_TX1 0x1b030 ++ MX6QDL_PAD_ENET_MDIO__ESAI_RX_CLK 0x1b030 ++ MX6QDL_PAD_GPIO_9__ESAI_RX_FS 0x1b030 ++ >; ++ }; ++ }; ++ ++ flexcan1 { ++ pinctrl_flexcan1_1: flexcan1grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX 0x80000000 ++ MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX 0x80000000 ++ >; ++ }; ++ ++ pinctrl_flexcan1_2: flexcan1grp-2 { ++ fsl,pins = < ++ MX6QDL_PAD_GPIO_7__FLEXCAN1_TX 0x80000000 ++ MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX 0x80000000 ++ >; ++ }; ++ }; ++ ++ flexcan2 { ++ pinctrl_flexcan2_1: flexcan2grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_KEY_COL4__FLEXCAN2_TX 0x80000000 ++ MX6QDL_PAD_KEY_ROW4__FLEXCAN2_RX 0x80000000 ++ >; ++ }; ++ }; ++ ++ gpmi-nand { ++ pinctrl_gpmi_nand_1: gpmi-nand-1 { ++ fsl,pins = < ++ MX6QDL_PAD_NANDF_CLE__NAND_CLE 0xb0b1 ++ MX6QDL_PAD_NANDF_ALE__NAND_ALE 0xb0b1 ++ MX6QDL_PAD_NANDF_WP_B__NAND_WP_B 0xb0b1 ++ MX6QDL_PAD_NANDF_RB0__NAND_READY_B 0xb000 ++ MX6QDL_PAD_NANDF_CS0__NAND_CE0_B 0xb0b1 ++ MX6QDL_PAD_NANDF_CS1__NAND_CE1_B 0xb0b1 ++ MX6QDL_PAD_SD4_CMD__NAND_RE_B 0xb0b1 ++ MX6QDL_PAD_SD4_CLK__NAND_WE_B 0xb0b1 ++ MX6QDL_PAD_NANDF_D0__NAND_DATA00 0xb0b1 ++ MX6QDL_PAD_NANDF_D1__NAND_DATA01 0xb0b1 ++ MX6QDL_PAD_NANDF_D2__NAND_DATA02 0xb0b1 ++ MX6QDL_PAD_NANDF_D3__NAND_DATA03 0xb0b1 ++ MX6QDL_PAD_NANDF_D4__NAND_DATA04 0xb0b1 ++ MX6QDL_PAD_NANDF_D5__NAND_DATA05 0xb0b1 ++ MX6QDL_PAD_NANDF_D6__NAND_DATA06 0xb0b1 ++ MX6QDL_PAD_NANDF_D7__NAND_DATA07 0xb0b1 ++ MX6QDL_PAD_SD4_DAT0__NAND_DQS 0x00b1 ++ >; ++ }; ++ }; ++ ++ hdmi_hdcp { ++ pinctrl_hdmi_hdcp_1: hdmihdcpgrp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_KEY_COL3__HDMI_TX_DDC_SCL 0x4001b8b1 ++ MX6QDL_PAD_KEY_ROW3__HDMI_TX_DDC_SDA 0x4001b8b1 ++ >; ++ }; ++ ++ pinctrl_hdmi_hdcp_2: hdmihdcpgrp-2 { ++ fsl,pins = < ++ MX6QDL_PAD_EIM_EB2__HDMI_TX_DDC_SCL 0x4001b8b1 ++ MX6QDL_PAD_EIM_D16__HDMI_TX_DDC_SDA 0x4001b8b1 ++ >; ++ }; ++ ++ pinctrl_hdmi_hdcp_3: hdmihdcpgrp-3 { ++ fsl,pins = < ++ MX6QDL_PAD_EIM_EB2__HDMI_TX_DDC_SCL 0x4001b8b1 ++ MX6QDL_PAD_KEY_ROW3__HDMI_TX_DDC_SDA 0x4001b8b1 ++ >; ++ }; ++ }; ++ ++ hdmi_cec { ++ pinctrl_hdmi_cec_1: hdmicecgrp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_EIM_A25__HDMI_TX_CEC_LINE 0x1f8b0 ++ >; ++ }; ++ ++ pinctrl_hdmi_cec_2: hdmicecgrp-2 { ++ fsl,pins = < ++ MX6QDL_PAD_KEY_ROW2__HDMI_TX_CEC_LINE 0x1f8b0 ++ >; ++ }; ++ }; ++ ++ i2c1 { ++ pinctrl_i2c1_1: i2c1grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1 ++ MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1 ++ >; ++ }; ++ ++ pinctrl_i2c1_2: i2c1grp-2 { ++ fsl,pins = < ++ MX6QDL_PAD_CSI0_DAT8__I2C1_SDA 0x4001b8b1 ++ MX6QDL_PAD_CSI0_DAT9__I2C1_SCL 0x4001b8b1 ++ >; ++ }; ++ }; ++ ++ i2c2 { ++ pinctrl_i2c2_1: i2c2grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_EIM_EB2__I2C2_SCL 0x4001b8b1 ++ MX6QDL_PAD_EIM_D16__I2C2_SDA 0x4001b8b1 ++ >; ++ }; ++ ++ pinctrl_i2c2_2: i2c2grp-2 { ++ fsl,pins = < ++ MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1 ++ MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1 ++ >; ++ }; ++ ++ pinctrl_i2c2_3: i2c2grp-3 { ++ fsl,pins = < ++ MX6QDL_PAD_EIM_EB2__I2C2_SCL 0x4001b8b1 ++ MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1 ++ >; ++ }; ++ }; ++ ++ i2c3 { ++ pinctrl_i2c3_1: i2c3grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_EIM_D17__I2C3_SCL 0x4001b8b1 ++ MX6QDL_PAD_EIM_D18__I2C3_SDA 0x4001b8b1 ++ >; ++ }; ++ ++ pinctrl_i2c3_2: i2c3grp-2 { ++ fsl,pins = < ++ MX6QDL_PAD_GPIO_3__I2C3_SCL 0x4001b8b1 ++ MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b8b1 ++ >; ++ }; ++ ++ pinctrl_i2c3_3: i2c3grp-3 { ++ fsl,pins = < ++ MX6QDL_PAD_GPIO_5__I2C3_SCL 0x4001b8b1 ++ MX6QDL_PAD_GPIO_16__I2C3_SDA 0x4001b8b1 ++ >; ++ }; ++ ++ pinctrl_i2c3_4: i2c3grp-4 { ++ fsl,pins = < ++ MX6QDL_PAD_GPIO_3__I2C3_SCL 0x4001b8b1 ++ MX6QDL_PAD_EIM_D18__I2C3_SDA 0x4001b8b1 ++ >; ++ }; ++ }; ++ ++ ipu1 { ++ pinctrl_ipu1_1: ipu1grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK 0x10 ++ MX6QDL_PAD_DI0_PIN15__IPU1_DI0_PIN15 0x10 ++ MX6QDL_PAD_DI0_PIN2__IPU1_DI0_PIN02 0x10 ++ MX6QDL_PAD_DI0_PIN3__IPU1_DI0_PIN03 0x10 ++ MX6QDL_PAD_DI0_PIN4__IPU1_DI0_PIN04 0x80000000 ++ MX6QDL_PAD_DISP0_DAT0__IPU1_DISP0_DATA00 0x10 ++ MX6QDL_PAD_DISP0_DAT1__IPU1_DISP0_DATA01 0x10 ++ MX6QDL_PAD_DISP0_DAT2__IPU1_DISP0_DATA02 0x10 ++ MX6QDL_PAD_DISP0_DAT3__IPU1_DISP0_DATA03 0x10 ++ MX6QDL_PAD_DISP0_DAT4__IPU1_DISP0_DATA04 0x10 ++ MX6QDL_PAD_DISP0_DAT5__IPU1_DISP0_DATA05 0x10 ++ MX6QDL_PAD_DISP0_DAT6__IPU1_DISP0_DATA06 0x10 ++ MX6QDL_PAD_DISP0_DAT7__IPU1_DISP0_DATA07 0x10 ++ MX6QDL_PAD_DISP0_DAT8__IPU1_DISP0_DATA08 0x10 ++ MX6QDL_PAD_DISP0_DAT9__IPU1_DISP0_DATA09 0x10 ++ MX6QDL_PAD_DISP0_DAT10__IPU1_DISP0_DATA10 0x10 ++ MX6QDL_PAD_DISP0_DAT11__IPU1_DISP0_DATA11 0x10 ++ MX6QDL_PAD_DISP0_DAT12__IPU1_DISP0_DATA12 0x10 ++ MX6QDL_PAD_DISP0_DAT13__IPU1_DISP0_DATA13 0x10 ++ MX6QDL_PAD_DISP0_DAT14__IPU1_DISP0_DATA14 0x10 ++ MX6QDL_PAD_DISP0_DAT15__IPU1_DISP0_DATA15 0x10 ++ MX6QDL_PAD_DISP0_DAT16__IPU1_DISP0_DATA16 0x10 ++ MX6QDL_PAD_DISP0_DAT17__IPU1_DISP0_DATA17 0x10 ++ MX6QDL_PAD_DISP0_DAT18__IPU1_DISP0_DATA18 0x10 ++ MX6QDL_PAD_DISP0_DAT19__IPU1_DISP0_DATA19 0x10 ++ MX6QDL_PAD_DISP0_DAT20__IPU1_DISP0_DATA20 0x10 ++ MX6QDL_PAD_DISP0_DAT21__IPU1_DISP0_DATA21 0x10 ++ MX6QDL_PAD_DISP0_DAT22__IPU1_DISP0_DATA22 0x10 ++ MX6QDL_PAD_DISP0_DAT23__IPU1_DISP0_DATA23 0x10 ++ >; ++ }; ++ ++ pinctrl_ipu1_2: ipu1grp-2 { /* parallel camera */ ++ fsl,pins = < ++ MX6QDL_PAD_CSI0_DAT12__IPU1_CSI0_DATA12 0x80000000 ++ MX6QDL_PAD_CSI0_DAT13__IPU1_CSI0_DATA13 0x80000000 ++ MX6QDL_PAD_CSI0_DAT14__IPU1_CSI0_DATA14 0x80000000 ++ MX6QDL_PAD_CSI0_DAT15__IPU1_CSI0_DATA15 0x80000000 ++ MX6QDL_PAD_CSI0_DAT16__IPU1_CSI0_DATA16 0x80000000 ++ MX6QDL_PAD_CSI0_DAT17__IPU1_CSI0_DATA17 0x80000000 ++ MX6QDL_PAD_CSI0_DAT18__IPU1_CSI0_DATA18 0x80000000 ++ MX6QDL_PAD_CSI0_DAT19__IPU1_CSI0_DATA19 0x80000000 ++ MX6QDL_PAD_CSI0_DATA_EN__IPU1_CSI0_DATA_EN 0x80000000 ++ MX6QDL_PAD_CSI0_PIXCLK__IPU1_CSI0_PIXCLK 0x80000000 ++ MX6QDL_PAD_CSI0_MCLK__IPU1_CSI0_HSYNC 0x80000000 ++ MX6QDL_PAD_CSI0_VSYNC__IPU1_CSI0_VSYNC 0x80000000 ++ >; ++ }; ++ ++ pinctrl_ipu1_3: ipu1grp-3 { /* parallel port 16-bit */ ++ fsl,pins = < ++ MX6QDL_PAD_CSI0_DAT4__IPU1_CSI0_DATA04 0x80000000 ++ MX6QDL_PAD_CSI0_DAT5__IPU1_CSI0_DATA05 0x80000000 ++ MX6QDL_PAD_CSI0_DAT6__IPU1_CSI0_DATA06 0x80000000 ++ MX6QDL_PAD_CSI0_DAT7__IPU1_CSI0_DATA07 0x80000000 ++ MX6QDL_PAD_CSI0_DAT8__IPU1_CSI0_DATA08 0x80000000 ++ MX6QDL_PAD_CSI0_DAT9__IPU1_CSI0_DATA09 0x80000000 ++ MX6QDL_PAD_CSI0_DAT10__IPU1_CSI0_DATA10 0x80000000 ++ MX6QDL_PAD_CSI0_DAT11__IPU1_CSI0_DATA11 0x80000000 ++ MX6QDL_PAD_CSI0_DAT12__IPU1_CSI0_DATA12 0x80000000 ++ MX6QDL_PAD_CSI0_DAT13__IPU1_CSI0_DATA13 0x80000000 ++ MX6QDL_PAD_CSI0_DAT14__IPU1_CSI0_DATA14 0x80000000 ++ MX6QDL_PAD_CSI0_DAT15__IPU1_CSI0_DATA15 0x80000000 ++ MX6QDL_PAD_CSI0_DAT16__IPU1_CSI0_DATA16 0x80000000 ++ MX6QDL_PAD_CSI0_DAT17__IPU1_CSI0_DATA17 0x80000000 ++ MX6QDL_PAD_CSI0_DAT18__IPU1_CSI0_DATA18 0x80000000 ++ MX6QDL_PAD_CSI0_DAT19__IPU1_CSI0_DATA19 0x80000000 ++ MX6QDL_PAD_CSI0_PIXCLK__IPU1_CSI0_PIXCLK 0x80000000 ++ MX6QDL_PAD_CSI0_MCLK__IPU1_CSI0_HSYNC 0x80000000 ++ MX6QDL_PAD_CSI0_VSYNC__IPU1_CSI0_VSYNC 0x80000000 ++ >; ++ }; ++ }; ++ ++ mlb { ++ pinctrl_mlb_1: mlbgrp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_GPIO_3__MLB_CLK 0x71 ++ MX6QDL_PAD_GPIO_6__MLB_SIG 0x71 ++ MX6QDL_PAD_GPIO_2__MLB_DATA 0x71 ++ >; ++ }; ++ ++ pinctrl_mlb_2: mlbgrp-2 { ++ fsl,pins = < ++ MX6QDL_PAD_ENET_TXD1__MLB_CLK 0x71 ++ MX6QDL_PAD_GPIO_6__MLB_SIG 0x71 ++ MX6QDL_PAD_GPIO_2__MLB_DATA 0x71 ++ >; ++ }; ++ }; ++ ++ pwm0 { ++ pinctrl_pwm0_1: pwm0grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_SD1_DAT3__PWM1_OUT 0x1b0b1 ++ >; ++ }; ++ }; ++ ++ pwm3 { ++ pinctrl_pwm3_1: pwm3grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_SD4_DAT1__PWM3_OUT 0x1b0b1 ++ >; ++ }; ++ }; ++ ++ spdif { ++ pinctrl_spdif_1: spdifgrp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_KEY_COL3__SPDIF_IN 0x1b0b0 ++ >; ++ }; ++ ++ pinctrl_spdif_2: spdifgrp-2 { ++ fsl,pins = < ++ MX6QDL_PAD_GPIO_16__SPDIF_IN 0x1b0b0 ++ MX6QDL_PAD_GPIO_17__SPDIF_OUT 0x1b0b0 ++ >; ++ }; ++ }; ++ ++ uart1 { ++ pinctrl_uart1_1: uart1grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_CSI0_DAT10__UART1_TX_DATA 0x1b0b1 ++ MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA 0x1b0b1 ++ >; ++ }; ++ }; ++ ++ uart2 { ++ pinctrl_uart2_1: uart2grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_EIM_D26__UART2_TX_DATA 0x1b0b1 ++ MX6QDL_PAD_EIM_D27__UART2_RX_DATA 0x1b0b1 ++ >; ++ }; ++ ++ pinctrl_uart2_2: uart2grp-2 { /* DTE mode */ ++ fsl,pins = < ++ MX6QDL_PAD_EIM_D26__UART2_RX_DATA 0x1b0b1 ++ MX6QDL_PAD_EIM_D27__UART2_TX_DATA 0x1b0b1 ++ MX6QDL_PAD_EIM_D28__UART2_DTE_CTS_B 0x1b0b1 ++ MX6QDL_PAD_EIM_D29__UART2_DTE_RTS_B 0x1b0b1 ++ >; ++ }; ++ }; ++ ++ uart3 { ++ pinctrl_uart3_1: uart3grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_SD4_CLK__UART3_RX_DATA 0x1b0b1 ++ MX6QDL_PAD_SD4_CMD__UART3_TX_DATA 0x1b0b1 ++ MX6QDL_PAD_EIM_D30__UART3_CTS_B 0x1b0b1 ++ MX6QDL_PAD_EIM_EB3__UART3_RTS_B 0x1b0b1 ++ >; ++ }; ++ ++ pinctrl_uart3_2: uart3grp-2 { ++ fsl,pins = < ++ MX6QDL_PAD_EIM_D24__UART3_TX_DATA 0x1b0b1 ++ MX6QDL_PAD_EIM_D25__UART3_RX_DATA 0x1b0b1 ++ MX6QDL_PAD_EIM_D23__UART3_CTS_B 0x1b0b1 ++ MX6QDL_PAD_EIM_EB3__UART3_RTS_B 0x1b0b1 ++ >; ++ }; ++ }; ++ ++ uart4 { ++ pinctrl_uart4_1: uart4grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_KEY_COL0__UART4_TX_DATA 0x1b0b1 ++ MX6QDL_PAD_KEY_ROW0__UART4_RX_DATA 0x1b0b1 ++ >; ++ }; ++ }; ++ ++ usbotg { ++ pinctrl_usbotg_1: usbotggrp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x17059 ++ >; ++ }; ++ ++ pinctrl_usbotg_2: usbotggrp-2 { ++ fsl,pins = < ++ MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID 0x17059 ++ >; ++ }; ++ }; ++ ++ usbh2 { ++ pinctrl_usbh2_1: usbh2grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_RGMII_TXC__USB_H2_DATA 0x40013030 ++ MX6QDL_PAD_RGMII_TX_CTL__USB_H2_STROBE 0x40013030 ++ >; ++ }; ++ ++ pinctrl_usbh2_2: usbh2grp-2 { ++ fsl,pins = < ++ MX6QDL_PAD_RGMII_TX_CTL__USB_H2_STROBE 0x40017030 ++ >; ++ }; ++ }; ++ ++ usbh3 { ++ pinctrl_usbh3_1: usbh3grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_RGMII_RX_CTL__USB_H3_DATA 0x40013030 ++ MX6QDL_PAD_RGMII_RXC__USB_H3_STROBE 0x40013030 ++ >; ++ }; ++ ++ pinctrl_usbh3_2: usbh3grp-2 { ++ fsl,pins = < ++ MX6QDL_PAD_RGMII_RXC__USB_H3_STROBE 0x40017030 ++ >; ++ }; ++ }; ++ ++ usdhc1 { ++ pinctrl_usdhc1_1: usdhc1grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_SD1_CMD__SD1_CMD 0x17059 ++ MX6QDL_PAD_SD1_CLK__SD1_CLK 0x10059 ++ MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x17059 ++ MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x17059 ++ MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x17059 ++ MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x17059 ++ MX6QDL_PAD_NANDF_D0__SD1_DATA4 0x17059 ++ MX6QDL_PAD_NANDF_D1__SD1_DATA5 0x17059 ++ MX6QDL_PAD_NANDF_D2__SD1_DATA6 0x17059 ++ MX6QDL_PAD_NANDF_D3__SD1_DATA7 0x17059 ++ >; ++ }; ++ ++ pinctrl_usdhc1_2: usdhc1grp-2 { ++ fsl,pins = < ++ MX6QDL_PAD_SD1_CMD__SD1_CMD 0x17059 ++ MX6QDL_PAD_SD1_CLK__SD1_CLK 0x10059 ++ MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x17059 ++ MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x17059 ++ MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x17059 ++ MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x17059 ++ >; ++ }; ++ }; ++ ++ usdhc2 { ++ pinctrl_usdhc2_1: usdhc2grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_SD2_CMD__SD2_CMD 0x17059 ++ MX6QDL_PAD_SD2_CLK__SD2_CLK 0x10059 ++ MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x17059 ++ MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x17059 ++ MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x17059 ++ MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x17059 ++ MX6QDL_PAD_NANDF_D4__SD2_DATA4 0x17059 ++ MX6QDL_PAD_NANDF_D5__SD2_DATA5 0x17059 ++ MX6QDL_PAD_NANDF_D6__SD2_DATA6 0x17059 ++ MX6QDL_PAD_NANDF_D7__SD2_DATA7 0x17059 ++ >; ++ }; ++ ++ pinctrl_usdhc2_2: usdhc2grp-2 { ++ fsl,pins = < ++ MX6QDL_PAD_SD2_CMD__SD2_CMD 0x17059 ++ MX6QDL_PAD_SD2_CLK__SD2_CLK 0x10059 ++ MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x17059 ++ MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x17059 ++ MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x17059 ++ MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x17059 ++ >; ++ }; ++ }; ++ ++ usdhc3 { ++ pinctrl_usdhc3_1: usdhc3grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059 ++ MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059 ++ MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059 ++ MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059 ++ MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059 ++ MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059 ++ MX6QDL_PAD_SD3_DAT4__SD3_DATA4 0x17059 ++ MX6QDL_PAD_SD3_DAT5__SD3_DATA5 0x17059 ++ MX6QDL_PAD_SD3_DAT6__SD3_DATA6 0x17059 ++ MX6QDL_PAD_SD3_DAT7__SD3_DATA7 0x17059 ++ >; ++ }; ++ ++ pinctrl_usdhc3_2: usdhc3grp-2 { ++ fsl,pins = < ++ MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059 ++ MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059 ++ MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059 ++ MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059 ++ MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059 ++ MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059 ++ >; ++ }; ++ }; ++ ++ usdhc4 { ++ pinctrl_usdhc4_1: usdhc4grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_SD4_CMD__SD4_CMD 0x17059 ++ MX6QDL_PAD_SD4_CLK__SD4_CLK 0x10059 ++ MX6QDL_PAD_SD4_DAT0__SD4_DATA0 0x17059 ++ MX6QDL_PAD_SD4_DAT1__SD4_DATA1 0x17059 ++ MX6QDL_PAD_SD4_DAT2__SD4_DATA2 0x17059 ++ MX6QDL_PAD_SD4_DAT3__SD4_DATA3 0x17059 ++ MX6QDL_PAD_SD4_DAT4__SD4_DATA4 0x17059 ++ MX6QDL_PAD_SD4_DAT5__SD4_DATA5 0x17059 ++ MX6QDL_PAD_SD4_DAT6__SD4_DATA6 0x17059 ++ MX6QDL_PAD_SD4_DAT7__SD4_DATA7 0x17059 ++ >; ++ }; ++ ++ pinctrl_usdhc4_2: usdhc4grp-2 { ++ fsl,pins = < ++ MX6QDL_PAD_SD4_CMD__SD4_CMD 0x17059 ++ MX6QDL_PAD_SD4_CLK__SD4_CLK 0x10059 ++ MX6QDL_PAD_SD4_DAT0__SD4_DATA0 0x17059 ++ MX6QDL_PAD_SD4_DAT1__SD4_DATA1 0x17059 ++ MX6QDL_PAD_SD4_DAT2__SD4_DATA2 0x17059 ++ MX6QDL_PAD_SD4_DAT3__SD4_DATA3 0x17059 ++ >; ++ }; ++ }; ++ ++ weim { ++ pinctrl_weim_cs0_1: weim_cs0grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_EIM_CS0__EIM_CS0_B 0xb0b1 ++ >; ++ }; ++ ++ pinctrl_weim_nor_1: weim_norgrp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_EIM_OE__EIM_OE_B 0xb0b1 ++ MX6QDL_PAD_EIM_RW__EIM_RW 0xb0b1 ++ MX6QDL_PAD_EIM_WAIT__EIM_WAIT_B 0xb060 ++ /* data */ ++ MX6QDL_PAD_EIM_D16__EIM_DATA16 0x1b0b0 ++ MX6QDL_PAD_EIM_D17__EIM_DATA17 0x1b0b0 ++ MX6QDL_PAD_EIM_D18__EIM_DATA18 0x1b0b0 ++ MX6QDL_PAD_EIM_D19__EIM_DATA19 0x1b0b0 ++ MX6QDL_PAD_EIM_D20__EIM_DATA20 0x1b0b0 ++ MX6QDL_PAD_EIM_D21__EIM_DATA21 0x1b0b0 ++ MX6QDL_PAD_EIM_D22__EIM_DATA22 0x1b0b0 ++ MX6QDL_PAD_EIM_D23__EIM_DATA23 0x1b0b0 ++ MX6QDL_PAD_EIM_D24__EIM_DATA24 0x1b0b0 ++ MX6QDL_PAD_EIM_D25__EIM_DATA25 0x1b0b0 ++ MX6QDL_PAD_EIM_D26__EIM_DATA26 0x1b0b0 ++ MX6QDL_PAD_EIM_D27__EIM_DATA27 0x1b0b0 ++ MX6QDL_PAD_EIM_D28__EIM_DATA28 0x1b0b0 ++ MX6QDL_PAD_EIM_D29__EIM_DATA29 0x1b0b0 ++ MX6QDL_PAD_EIM_D30__EIM_DATA30 0x1b0b0 ++ MX6QDL_PAD_EIM_D31__EIM_DATA31 0x1b0b0 ++ /* address */ ++ MX6QDL_PAD_EIM_A23__EIM_ADDR23 0xb0b1 ++ MX6QDL_PAD_EIM_A22__EIM_ADDR22 0xb0b1 ++ MX6QDL_PAD_EIM_A21__EIM_ADDR21 0xb0b1 ++ MX6QDL_PAD_EIM_A20__EIM_ADDR20 0xb0b1 ++ MX6QDL_PAD_EIM_A19__EIM_ADDR19 0xb0b1 ++ MX6QDL_PAD_EIM_A18__EIM_ADDR18 0xb0b1 ++ MX6QDL_PAD_EIM_A17__EIM_ADDR17 0xb0b1 ++ MX6QDL_PAD_EIM_A16__EIM_ADDR16 0xb0b1 ++ MX6QDL_PAD_EIM_DA15__EIM_AD15 0xb0b1 ++ MX6QDL_PAD_EIM_DA14__EIM_AD14 0xb0b1 ++ MX6QDL_PAD_EIM_DA13__EIM_AD13 0xb0b1 ++ MX6QDL_PAD_EIM_DA12__EIM_AD12 0xb0b1 ++ MX6QDL_PAD_EIM_DA11__EIM_AD11 0xb0b1 ++ MX6QDL_PAD_EIM_DA10__EIM_AD10 0xb0b1 ++ MX6QDL_PAD_EIM_DA9__EIM_AD09 0xb0b1 ++ MX6QDL_PAD_EIM_DA8__EIM_AD08 0xb0b1 ++ MX6QDL_PAD_EIM_DA7__EIM_AD07 0xb0b1 ++ MX6QDL_PAD_EIM_DA6__EIM_AD06 0xb0b1 ++ MX6QDL_PAD_EIM_DA5__EIM_AD05 0xb0b1 ++ MX6QDL_PAD_EIM_DA4__EIM_AD04 0xb0b1 ++ MX6QDL_PAD_EIM_DA3__EIM_AD03 0xb0b1 ++ MX6QDL_PAD_EIM_DA2__EIM_AD02 0xb0b1 ++ MX6QDL_PAD_EIM_DA1__EIM_AD01 0xb0b1 ++ MX6QDL_PAD_EIM_DA0__EIM_AD00 0xb0b1 ++ >; ++ }; ++ }; ++ }; ++ + ldb: ldb@020e0008 { + #address-cells = <1>; + #size-cells = <0>; +@@ -553,13 +1292,11 @@ + + lvds-channel@0 { + reg = <0>; +- crtcs = <&ipu1 0>; + status = "disabled"; + }; + + lvds-channel@1 { + reg = <1>; +- crtcs = <&ipu1 1>; + status = "disabled"; + }; + }; +@@ -580,6 +1317,7 @@ + interrupts = <0 2 0x04>; + clocks = <&clks 155>, <&clks 155>; + clock-names = "ipg", "ahb"; ++ #dma-cells = <3>; + fsl,sdma-ram-script-name = "imx/sdma/sdma-imx6q.bin"; + }; + }; +@@ -638,7 +1376,7 @@ + status = "disabled"; + }; + +- usbmisc: usbmisc: usbmisc@02184800 { ++ usbmisc: usbmisc@02184800 { + #index-cells = <1>; + compatible = "fsl,imx6q-usbmisc"; + reg = <0x02184800 0x200>; +@@ -742,21 +1480,18 @@ + reg = <0x021b4000 0x4000>; + }; + +- weim@021b8000 { ++ weim: weim@021b8000 { ++ compatible = "fsl,imx6q-weim"; + reg = <0x021b8000 0x4000>; + interrupts = <0 14 0x04>; ++ clocks = <&clks 196>; + }; + +- ocotp@021bc000 { +- compatible = "fsl,imx6q-ocotp"; ++ ocotp: ocotp@021bc000 { ++ compatible = "fsl,imx6q-ocotp", "syscon"; + reg = <0x021bc000 0x4000>; + }; + +- ocotp@021c0000 { +- reg = <0x021c0000 0x4000>; +- interrupts = <0 21 0x04>; +- }; +- + tzasc@021d0000 { /* TZASC1 */ + reg = <0x021d0000 0x4000>; + interrupts = <0 108 0x04>; +@@ -792,6 +1527,8 @@ + interrupts = <0 27 0x04>; + clocks = <&clks 160>, <&clks 161>; + clock-names = "ipg", "per"; ++ dmas = <&sdma 27 4 0>, <&sdma 28 4 0>; ++ dma-names = "rx", "tx"; + status = "disabled"; + }; + +@@ -801,6 +1538,8 @@ + interrupts = <0 28 0x04>; + clocks = <&clks 160>, <&clks 161>; + clock-names = "ipg", "per"; ++ dmas = <&sdma 29 4 0>, <&sdma 30 4 0>; ++ dma-names = "rx", "tx"; + status = "disabled"; + }; + +@@ -810,6 +1549,8 @@ + interrupts = <0 29 0x04>; + clocks = <&clks 160>, <&clks 161>; + clock-names = "ipg", "per"; ++ dmas = <&sdma 31 4 0>, <&sdma 32 4 0>; ++ dma-names = "rx", "tx"; + status = "disabled"; + }; + +@@ -819,6 +1560,8 @@ + interrupts = <0 30 0x04>; + clocks = <&clks 160>, <&clks 161>; + clock-names = "ipg", "per"; ++ dmas = <&sdma 33 4 0>, <&sdma 34 4 0>; ++ dma-names = "rx", "tx"; + status = "disabled"; + }; + }; diff --git a/src/patches/kernel/wandboard/dts/0002-ARM-dts-imx6qdl-wandboard-add-gpio-lines-to-wandboar.patch b/src/patches/kernel/wandboard/dts/0002-ARM-dts-imx6qdl-wandboard-add-gpio-lines-to-wandboar.patch new file mode 100644 index 0000000..009db26 --- /dev/null +++ b/src/patches/kernel/wandboard/dts/0002-ARM-dts-imx6qdl-wandboard-add-gpio-lines-to-wandboar.patch @@ -0,0 +1,41 @@ +From df41a18b5ac1401c96dcbce99baa50e339494eba Mon Sep 17 00:00:00 2001 +From: Mike Panetta panetta.mike@gmail.com +Date: Tue, 30 Jul 2013 20:33:26 -0400 +Subject: [PATCH 2/5] ARM: dts: imx6qdl-wandboard: add gpio lines to wandboard + +Signed-off-by: Mike Panetta panetta.mike@gmail.com +--- + arch/arm/boot/dts/imx6qdl-wandboard.dtsi | 17 +++++++++++++++++ + 1 file changed, 17 insertions(+) + +diff --git a/arch/arm/boot/dts/imx6qdl-wandboard.dtsi b/arch/arm/boot/dts/imx6qdl-wandboard.dtsi +index 35f5479..a302e95 100644 +--- a/arch/arm/boot/dts/imx6qdl-wandboard.dtsi ++++ b/arch/arm/boot/dts/imx6qdl-wandboard.dtsi +@@ -92,6 +92,23 @@ + >; + }; + }; ++ ++ gpio { ++ pinctrl_gpio: gpiogrp { ++ fsl,pins = < ++ MX6QDL_PAD_EIM_DA12__GPIO3_IO12 0x80000000 /* GPIO3_12 EDM pin 255 */ ++ MX6QDL_PAD_EIM_DA11__GPIO3_IO11 0x80000000 /* GPIO3_11 EDM pin 256 */ ++ MX6QDL_PAD_EIM_DA10__GPIO3_IO10 0x80000000 /* GPIO3_10 EDM pin 257 */ ++ MX6QDL_PAD_EIM_D27__GPIO3_IO27 0x80000000 /* GPIO3_27 EDM pin 258 */ ++ MX6QDL_PAD_EIM_D26__GPIO3_IO26 0x80000000 /* GPIO3_26 EDM pin 259 */ ++ MX6QDL_PAD_EIM_BCLK__GPIO6_IO31 0x80000000 /* GPIO6_31 EDM pin 260 */ ++ MX6QDL_PAD_EIM_DA8__GPIO3_IO08 0x80000000 /* GPIO3_8 EDM pin 261 */ ++ MX6QDL_PAD_ENET_RX_ER__GPIO1_IO24 0x80000000 /* GPIO1_24 EDM pin 262 */ ++ MX6QDL_PAD_GPIO_19__GPIO4_IO05 0x80000000 /* GPIO4_5 EDM pin 263 */ ++ MX6QDL_PAD_SD3_RST__GPIO7_IO08 0x80000000 /* GPIO7_8 EDM pin 264 */ ++ >; ++ }; ++ }; + }; + + &fec { +-- +1.8.4.rc3 + diff --git a/src/patches/kernel/wandboard/dts/0003-ARM-dts-imx6qdl-wandboard-Add-support-for-i2c1.patch b/src/patches/kernel/wandboard/dts/0003-ARM-dts-imx6qdl-wandboard-Add-support-for-i2c1.patch new file mode 100644 index 0000000..7c4e5dd --- /dev/null +++ b/src/patches/kernel/wandboard/dts/0003-ARM-dts-imx6qdl-wandboard-Add-support-for-i2c1.patch @@ -0,0 +1,33 @@ +From aefbac1e9377311240656ae5061346acb8612e1b Mon Sep 17 00:00:00 2001 +From: Michael Panetta panetta.mike@gmail.com +Date: Tue, 6 Aug 2013 21:32:50 -0400 +Subject: [PATCH 3/5] ARM: dts: imx6qdl-wandboard: Add support for i2c1. + +This patch adds support for i2c1 to the wandboard common dtsi file. + +Signed-off-by: Michael Panetta panetta.mike@gmail.com +--- + arch/arm/boot/dts/imx6qdl-wandboard.dtsi | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/arch/arm/boot/dts/imx6qdl-wandboard.dtsi b/arch/arm/boot/dts/imx6qdl-wandboard.dtsi +index a302e95..d429c0b 100644 +--- a/arch/arm/boot/dts/imx6qdl-wandboard.dtsi ++++ b/arch/arm/boot/dts/imx6qdl-wandboard.dtsi +@@ -58,6 +58,13 @@ + status = "okay"; + }; + ++&i2c1 { ++ clock-frequency = <100000>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_i2c1_1>; ++ status = "okay"; ++}; ++ + &i2c2 { + clock-frequency = <100000>; + pinctrl-names = "default"; +-- +1.8.4.rc3 + diff --git a/src/patches/kernel/wandboard/dts/0004-ARM-dts-wandboard-add-binding-for-wand-rfkill-driver.patch b/src/patches/kernel/wandboard/dts/0004-ARM-dts-wandboard-add-binding-for-wand-rfkill-driver.patch new file mode 100644 index 0000000..54bb388 --- /dev/null +++ b/src/patches/kernel/wandboard/dts/0004-ARM-dts-wandboard-add-binding-for-wand-rfkill-driver.patch @@ -0,0 +1,52 @@ +From 1305ac7e9308dcd59c3acc205bc95097cad87ed5 Mon Sep 17 00:00:00 2001 +From: Vladimir Ermakov vooon341@gmail.com +Date: Fri, 16 Aug 2013 06:52:26 +0400 +Subject: [PATCH 5/5] ARM: dts: wandboard: add binding for wand-rfkill driver + +Required gpios pincontrol selected in hog. Add binding only. +Disabled non-removable, because after unblocking need to redetect SDIO device. + +Signed-off-by: Vladimir Ermakov vooon341@gmail.com +--- + arch/arm/boot/dts/imx6qdl-wandboard.dtsi | 18 +++++++++++++++++- + 1 file changed, 17 insertions(+), 1 deletion(-) + +diff --git a/arch/arm/boot/dts/imx6qdl-wandboard.dtsi b/arch/arm/boot/dts/imx6qdl-wandboard.dtsi +index 737805b..c1ef3bd 100644 +--- a/arch/arm/boot/dts/imx6qdl-wandboard.dtsi ++++ b/arch/arm/boot/dts/imx6qdl-wandboard.dtsi +@@ -50,6 +50,22 @@ + spdif-controller = <&spdif>; + spdif-out; + }; ++ ++ rfkill { ++ compatible = "wand,imx6qdl-wandboard-rfkill"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <>; ++ ++ bluetooth-on = <&gpio3 13 0>; ++ bluetooth-wake = <&gpio3 14 0>; ++ bluetooth-host-wake = <&gpio3 15 0>; ++ ++ wifi-ref-on = <&gpio2 29 0>; ++ wifi-rst-n = <&gpio5 2 0>; ++ wifi-reg-on = <&gpio1 26 0>; ++ wifi-host-wake = <&gpio1 29 0>; ++ wifi-wake = <&gpio1 30 0>; ++ }; + }; + + &audmux { +@@ -175,7 +191,7 @@ + &usdhc2 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_usdhc2_2>; +- non-removable; ++ //non-removable; + status = "okay"; + }; + +-- +1.8.4.rc3 + diff --git a/src/patches/kernel/wandboard/dts/0005-ARM-dts-imx6qdl-add-pcie-device-node.patch b/src/patches/kernel/wandboard/dts/0005-ARM-dts-imx6qdl-add-pcie-device-node.patch new file mode 100644 index 0000000..e78d9ba --- /dev/null +++ b/src/patches/kernel/wandboard/dts/0005-ARM-dts-imx6qdl-add-pcie-device-node.patch @@ -0,0 +1,38 @@ +From 3a57291fa4ca7f7647d826f5b47082ef306d839f Mon Sep 17 00:00:00 2001 +From: Sean Cross xobs@kosagi.com +Date: Thu, 26 Sep 2013 10:51:09 +0800 +Subject: [PATCH] ARM: dts: imx6qdl: add pcie device node + +Add pcie device node for imx6qdl. + +Signed-off-by: Sean Cross xobs@kosagi.com +Signed-off-by: Shawn Guo shawn.guo@linaro.org +--- + arch/arm/boot/dts/imx6qdl.dtsi | 16 ++++++++++++++++ + 1 file changed, 16 insertions(+) + +--- a/arch/arm/boot/dts/imx6qdl.dtsi ++++ b/arch/arm/boot/dts/imx6qdl.dtsi +@@ -108,6 +108,22 @@ + cache-level = <2>; + }; + ++ pcie: pcie@0x01000000 { ++ compatible = "fsl,imx6q-pcie", "snps,dw-pcie"; ++ reg = <0x01ffc000 0x4000>; /* DBI */ ++ #address-cells = <3>; ++ #size-cells = <2>; ++ device_type = "pci"; ++ ranges = <0x00000800 0 0x01f00000 0x01f00000 0 0x00080000 /* configuration space */ ++ 0x81000000 0 0 0x01f80000 0 0x00010000 /* downstream I/O */ ++ 0x82000000 0 0x01000000 0x01000000 0 0x00f00000>; /* non-prefetchable memory */ ++ num-lanes = <1>; ++ interrupts = <0 123 0x04>; ++ clocks = <&clks 189>, <&clks 187>, <&clks 206>, <&clks 144>; ++ clock-names = "pcie_ref_125m", "sata_ref_100m", "lvds_gate", "pcie_axi"; ++ status = "disabled"; ++ }; ++ + pmu { + compatible = "arm,cortex-a9-pmu"; + interrupts = <0 94 0x04>; diff --git a/src/patches/kernel/wandboard/imx/0001-i2c-imx-retry-on-NAK.patch b/src/patches/kernel/wandboard/imx/0001-i2c-imx-retry-on-NAK.patch new file mode 100644 index 0000000..e876c6e --- /dev/null +++ b/src/patches/kernel/wandboard/imx/0001-i2c-imx-retry-on-NAK.patch @@ -0,0 +1,38 @@ +From: Tim Harvey tharvey@gateworks.com +Subject: [PATCH] i2c: imx: retry on NAK + +In case of busy i2c try again to get ACK. + +Signed-off-by: Tim Harvey tharvey@gateworks.com +Tested-by: Luka Perkov luka@openwrt.org +--- + drivers/i2c/busses/i2c-imx.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/drivers/i2c/busses/i2c-imx.c ++++ b/drivers/i2c/busses/i2c-imx.c +@@ -62,6 +62,7 @@ + + /* Default value */ + #define IMX_I2C_BIT_RATE 100000 /* 100kHz */ ++#define IMX_I2C_MAX_RETRIES 3 /* number of retries to attempt */ + + /* IMX I2C registers */ + #define IMX_I2C_IADR 0x00 /* i2c slave address */ +@@ -198,7 +199,7 @@ static int i2c_imx_acked(struct imx_i2c_ + { + if (readb(i2c_imx->base + IMX_I2C_I2SR) & I2SR_RXAK) { + dev_dbg(&i2c_imx->adapter.dev, "<%s> No ACK\n", __func__); +- return -EIO; /* No ACK */ ++ return -EAGAIN; /* try again */ + } + + dev_dbg(&i2c_imx->adapter.dev, "<%s> ACK received\n", __func__); +@@ -533,6 +534,7 @@ static int __init i2c_imx_probe(struct p + i2c_imx->adapter.dev.parent = &pdev->dev; + i2c_imx->adapter.nr = pdev->id; + i2c_imx->adapter.dev.of_node = pdev->dev.of_node; ++ i2c_imx->adapter.retries = IMX_I2C_MAX_RETRIES; + i2c_imx->base = base; + + pinctrl = devm_pinctrl_get_select_default(&pdev->dev); diff --git a/src/patches/kernel/wandboard/imx/0002-i.MX6-Wandboard-add-CKO1-clock-output.patch b/src/patches/kernel/wandboard/imx/0002-i.MX6-Wandboard-add-CKO1-clock-output.patch new file mode 100644 index 0000000..b24c7ad --- /dev/null +++ b/src/patches/kernel/wandboard/imx/0002-i.MX6-Wandboard-add-CKO1-clock-output.patch @@ -0,0 +1,29 @@ +From fc69065e84165aef5ba7a837d9d2e668bd03b146 Mon Sep 17 00:00:00 2001 +From: Vladimir Ermakov vooon341@gmail.com +Date: Wed, 10 Jul 2013 03:03:51 +0400 +Subject: [PATCH 7/8] i.MX6 Wandboard add CKO1 clock output + +stgl5000 uses clock from imx CKO1 pad. + +Signed-off-by: Vladimir Ermakov vooon341@gmail.com +--- + arch/arm/mach-imx/mach-imx6q.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/arch/arm/mach-imx/mach-imx6q.c b/arch/arm/mach-imx/mach-imx6q.c +index 5536fd8..bf9a30b 100644 +--- a/arch/arm/mach-imx/mach-imx6q.c ++++ b/arch/arm/mach-imx/mach-imx6q.c +@@ -166,6 +166,9 @@ static void __init imx6q_init_machine(void) + if (of_machine_is_compatible("fsl,imx6q-sabrelite")) + imx6q_sabrelite_init(); + ++ if (of_machine_is_compatible("wand,imx6q-wandboard")) ++ imx6q_sabrelite_cko1_setup(); ++ + of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); + + imx_anatop_init(); +-- +1.7.10.4 + diff --git a/src/patches/kernel/wandboard/imx/0003-thermal-add-imx-thermal-driver-support.patch b/src/patches/kernel/wandboard/imx/0003-thermal-add-imx-thermal-driver-support.patch new file mode 100644 index 0000000..a0a7cec --- /dev/null +++ b/src/patches/kernel/wandboard/imx/0003-thermal-add-imx-thermal-driver-support.patch @@ -0,0 +1,489 @@ +From 744af645bfdb0bfe73fa28df06da48783f85e6a9 Mon Sep 17 00:00:00 2001 +From: Shawn Guo shawn.guo@linaro.org +Date: Mon, 24 Jun 2013 14:30:44 +0800 +Subject: [PATCH 5/5] thermal: add imx thermal driver support + +This is based on the initial imx thermal work done by +Rob Lee rob.lee@linaro.org (Not sure if the email address is still +valid). Since he is no longer interested in the work and I have +rewritten a significant amount of the code, I just took the authorship +over from him. + +It adds the imx thermal support using Temperature Monitor (TEMPMON) +block found on some Freescale i.MX SoCs. The driver uses syscon regmap +interface to access TEMPMON control registers and calibration data, and +supports cpufreq as the cooling device. + +Signed-off-by: Shawn Guo shawn.guo@linaro.org +--- + .../devicetree/bindings/thermal/imx-thermal.txt | 17 + + drivers/thermal/Kconfig | 11 + + drivers/thermal/Makefile | 1 + + drivers/thermal/imx_thermal.c | 397 ++++++++++++++++++++ + 4 files changed, 426 insertions(+) + create mode 100644 Documentation/devicetree/bindings/thermal/imx-thermal.txt + create mode 100644 drivers/thermal/imx_thermal.c + +diff --git a/Documentation/devicetree/bindings/thermal/imx-thermal.txt b/Documentation/devicetree/bindings/thermal/imx-thermal.txt +new file mode 100644 +index 0000000..541c25e +--- /dev/null ++++ b/Documentation/devicetree/bindings/thermal/imx-thermal.txt +@@ -0,0 +1,17 @@ ++* Temperature Monitor (TEMPMON) on Freescale i.MX SoCs ++ ++Required properties: ++- compatible : "fsl,imx6q-thermal" ++- fsl,tempmon : phandle pointer to system controller that contains TEMPMON ++ control registers, e.g. ANATOP on imx6q. ++- fsl,tempmon-data : phandle pointer to fuse controller that contains TEMPMON ++ calibration data, e.g. OCOTP on imx6q. The details about calibration data ++ can be found in SoC Reference Manual. ++ ++Example: ++ ++tempmon { ++ compatible = "fsl,imx6q-tempmon"; ++ fsl,tempmon = <&anatop>; ++ fsl,tempmon-data = <&ocotp>; ++}; +diff --git a/drivers/thermal/Kconfig b/drivers/thermal/Kconfig +index 5e3c025..e91d78f 100644 +--- a/drivers/thermal/Kconfig ++++ b/drivers/thermal/Kconfig +@@ -91,6 +91,17 @@ config THERMAL_EMULATION + because userland can easily disable the thermal policy by simply + flooding this sysfs node with low temperature values. + ++config IMX_THERMAL ++ tristate "Temperature sensor driver for Freescale i.MX SoCs" ++ depends on CPU_THERMAL ++ depends on MFD_SYSCON ++ depends on OF ++ help ++ Support for Temperature Monitor (TEMPMON) found on Freescale i.MX SoCs. ++ It supports one critical trip point and one passive trip point. The ++ cpufreq is used as the cooling device to throttle CPUs when the ++ passive trip is crossed. ++ + config SPEAR_THERMAL + bool "SPEAr thermal sensor driver" + depends on PLAT_SPEAR +diff --git a/drivers/thermal/Makefile b/drivers/thermal/Makefile +index c054d41..6910b2d 100644 +--- a/drivers/thermal/Makefile ++++ b/drivers/thermal/Makefile +@@ -21,6 +21,7 @@ obj-$(CONFIG_EXYNOS_THERMAL) += exynos_thermal.o + obj-$(CONFIG_DOVE_THERMAL) += dove_thermal.o + obj-$(CONFIG_DB8500_THERMAL) += db8500_thermal.o + obj-$(CONFIG_ARMADA_THERMAL) += armada_thermal.o ++obj-$(CONFIG_IMX_THERMAL) += imx_thermal.o + obj-$(CONFIG_DB8500_CPUFREQ_COOLING) += db8500_cpufreq_cooling.o + obj-$(CONFIG_INTEL_POWERCLAMP) += intel_powerclamp.o + +diff --git a/drivers/thermal/imx_thermal.c b/drivers/thermal/imx_thermal.c +new file mode 100644 +index 0000000..d16c33c +--- /dev/null ++++ b/drivers/thermal/imx_thermal.c +@@ -0,0 +1,397 @@ ++/* ++ * Copyright 2013 Freescale Semiconductor, Inc. ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ * ++ */ ++ ++#include <linux/cpu_cooling.h> ++#include <linux/cpufreq.h> ++#include <linux/delay.h> ++#include <linux/device.h> ++#include <linux/init.h> ++#include <linux/io.h> ++#include <linux/kernel.h> ++#include <linux/mfd/syscon.h> ++#include <linux/module.h> ++#include <linux/of.h> ++#include <linux/platform_device.h> ++#include <linux/regmap.h> ++#include <linux/slab.h> ++#include <linux/thermal.h> ++#include <linux/types.h> ++ ++#define REG_SET 0x4 ++#define REG_CLR 0x8 ++#define REG_TOG 0xc ++ ++#define MISC0 0x0150 ++#define MISC0_REFTOP_SELBIASOFF (1 << 3) ++ ++#define TEMPSENSE0 0x0180 ++#define TEMPSENSE0_TEMP_CNT_SHIFT 8 ++#define TEMPSENSE0_TEMP_CNT_MASK (0xfff << TEMPSENSE0_TEMP_CNT_SHIFT) ++#define TEMPSENSE0_FINISHED (1 << 2) ++#define TEMPSENSE0_MEASURE_TEMP (1 << 1) ++#define TEMPSENSE0_POWER_DOWN (1 << 0) ++ ++#define TEMPSENSE1 0x0190 ++#define TEMPSENSE1_MEASURE_FREQ 0xffff ++ ++#define OCOTP_ANA1 0x04e0 ++ ++/* The driver supports 1 passive trip point and 1 critical trip point */ ++enum imx_thermal_trip { ++ IMX_TRIP_PASSIVE, ++ IMX_TRIP_CRITICAL, ++ IMX_TRIP_NUM, ++}; ++ ++/* ++ * It defines the temperature in millicelsius for passive trip point ++ * that will trigger cooling action when crossed. ++ */ ++#define IMX_TEMP_PASSIVE 85000 ++ ++/* ++ * The maximum die temperature on imx parts is 105C, let's give some cushion ++ * for noise and possible temperature rise between measurements. ++ */ ++#define IMX_TEMP_CRITICAL 100000 ++ ++#define IMX_POLLING_DELAY 2000 /* millisecond */ ++#define IMX_PASSIVE_DELAY 1000 ++ ++struct imx_thermal_data { ++ struct thermal_zone_device *tz; ++ struct thermal_cooling_device *cdev; ++ enum thermal_device_mode mode; ++ struct regmap *tempmon; ++ int c1, c2; /* See formula in imx_get_sensor_data() */ ++}; ++ ++static int imx_get_temp(struct thermal_zone_device *tz, unsigned long *temp) ++{ ++ struct imx_thermal_data *data = tz->devdata; ++ struct regmap *map = data->tempmon; ++ static unsigned long last_temp; ++ unsigned int n_meas; ++ u32 val; ++ ++ /* ++ * Every time we measure the temperature, we will power on the ++ * temperature sensor, enable measurements, take a reading, ++ * disable measurements, power off the temperature sensor. ++ */ ++ regmap_write(map, TEMPSENSE0 + REG_CLR, TEMPSENSE0_POWER_DOWN); ++ regmap_write(map, TEMPSENSE0 + REG_SET, TEMPSENSE0_MEASURE_TEMP); ++ ++ /* ++ * According to the temp sensor designers, it may require up to ~17us ++ * to complete a measurement. ++ */ ++ usleep_range(20, 50); ++ ++ regmap_read(map, TEMPSENSE0, &val); ++ regmap_write(map, TEMPSENSE0 + REG_CLR, TEMPSENSE0_MEASURE_TEMP); ++ regmap_write(map, TEMPSENSE0 + REG_SET, TEMPSENSE0_POWER_DOWN); ++ ++ if ((val & TEMPSENSE0_FINISHED) == 0) { ++ dev_dbg(&tz->device, "temp measurement never finished\n"); ++ return -EAGAIN; ++ } ++ ++ n_meas = (val & TEMPSENSE0_TEMP_CNT_MASK) >> TEMPSENSE0_TEMP_CNT_SHIFT; ++ ++ /* See imx_get_sensor_data() for formula derivation */ ++ *temp = data->c2 + data->c1 * n_meas; ++ ++ if (*temp != last_temp) { ++ dev_dbg(&tz->device, "millicelsius: %ld\n", *temp); ++ last_temp = *temp; ++ } ++ ++ return 0; ++} ++ ++static int imx_get_mode(struct thermal_zone_device *tz, ++ enum thermal_device_mode *mode) ++{ ++ struct imx_thermal_data *data = tz->devdata; ++ ++ *mode = data->mode; ++ ++ return 0; ++} ++ ++static int imx_set_mode(struct thermal_zone_device *tz, ++ enum thermal_device_mode mode) ++{ ++ struct imx_thermal_data *data = tz->devdata; ++ ++ if (mode == THERMAL_DEVICE_ENABLED) { ++ tz->polling_delay = IMX_POLLING_DELAY; ++ tz->passive_delay = IMX_PASSIVE_DELAY; ++ } else { ++ tz->polling_delay = 0; ++ tz->passive_delay = 0; ++ } ++ ++ data->mode = mode; ++ thermal_zone_device_update(tz); ++ ++ return 0; ++} ++ ++static int imx_get_trip_type(struct thermal_zone_device *tz, int trip, ++ enum thermal_trip_type *type) ++{ ++ *type = (trip == IMX_TRIP_PASSIVE) ? THERMAL_TRIP_PASSIVE : ++ THERMAL_TRIP_CRITICAL; ++ return 0; ++} ++ ++static int imx_get_crit_temp(struct thermal_zone_device *tz, ++ unsigned long *temp) ++{ ++ *temp = IMX_TEMP_CRITICAL; ++ return 0; ++} ++ ++static int imx_get_trip_temp(struct thermal_zone_device *tz, int trip, ++ unsigned long *temp) ++{ ++ *temp = (trip == IMX_TRIP_PASSIVE) ? IMX_TEMP_PASSIVE : ++ IMX_TEMP_CRITICAL; ++ return 0; ++} ++ ++static int imx_bind(struct thermal_zone_device *tz, ++ struct thermal_cooling_device *cdev) ++{ ++ int ret; ++ ++ ret = thermal_zone_bind_cooling_device(tz, IMX_TRIP_PASSIVE, cdev, ++ THERMAL_NO_LIMIT, ++ THERMAL_NO_LIMIT); ++ if (ret) { ++ dev_err(&tz->device, ++ "binding zone %s with cdev %s failed:%d\n", ++ tz->type, cdev->type, ret); ++ return ret; ++ } ++ ++ return 0; ++} ++ ++static int imx_unbind(struct thermal_zone_device *tz, ++ struct thermal_cooling_device *cdev) ++{ ++ int ret; ++ ++ ret = thermal_zone_unbind_cooling_device(tz, IMX_TRIP_PASSIVE, cdev); ++ if (ret) { ++ dev_err(&tz->device, ++ "unbinding zone %s with cdev %s failed:%d\n", ++ tz->type, cdev->type, ret); ++ return ret; ++ } ++ ++ return 0; ++} ++ ++static const struct thermal_zone_device_ops imx_tz_ops = { ++ .bind = imx_bind, ++ .unbind = imx_unbind, ++ .get_temp = imx_get_temp, ++ .get_mode = imx_get_mode, ++ .set_mode = imx_set_mode, ++ .get_trip_type = imx_get_trip_type, ++ .get_trip_temp = imx_get_trip_temp, ++ .get_crit_temp = imx_get_crit_temp, ++}; ++ ++static int imx_get_sensor_data(struct platform_device *pdev) ++{ ++ struct imx_thermal_data *data = platform_get_drvdata(pdev); ++ struct regmap *map; ++ int t1, t2, n1, n2; ++ int ret; ++ u32 val; ++ ++ map = syscon_regmap_lookup_by_phandle(pdev->dev.of_node, ++ "fsl,tempmon-data"); ++ if (IS_ERR(map)) { ++ ret = PTR_ERR(map); ++ dev_err(&pdev->dev, "failed to get sensor regmap: %d\n", ret); ++ return ret; ++ } ++ ++ ret = regmap_read(map, OCOTP_ANA1, &val); ++ if (ret) { ++ dev_err(&pdev->dev, "failed to read sensor data: %d\n", ret); ++ return ret; ++ } ++ ++ if (val == 0 || val == ~0) { ++ dev_err(&pdev->dev, "invalid sensor calibration data\n"); ++ return -EINVAL; ++ } ++ ++ /* ++ * Sensor data layout: ++ * [31:20] - sensor value @ 25C ++ * [19:8] - sensor value of hot ++ * [7:0] - hot temperature value ++ */ ++ n1 = val >> 20; ++ n2 = (val & 0xfff00) >> 8; ++ t2 = val & 0xff; ++ t1 = 25; /* t1 always 25C */ ++ ++ /* ++ * Derived from linear interpolation, ++ * Tmeas = T2 + (Nmeas - N2) * (T1 - T2) / (N1 - N2) ++ * We want to reduce this down to the minimum computation necessary ++ * for each temperature read. Also, we want Tmeas in millicelsius ++ * and we don't want to lose precision from integer division. So... ++ * milli_Tmeas = 1000 * T2 + 1000 * (Nmeas - N2) * (T1 - T2) / (N1 - N2) ++ * Let constant c1 = 1000 * (T1 - T2) / (N1 - N2) ++ * milli_Tmeas = (1000 * T2) + c1 * (Nmeas - N2) ++ * milli_Tmeas = (1000 * T2) + (c1 * Nmeas) - (c1 * N2) ++ * Let constant c2 = (1000 * T2) - (c1 * N2) ++ * milli_Tmeas = c2 + (c1 * Nmeas) ++ */ ++ data->c1 = 1000 * (t1 - t2) / (n1 - n2); ++ data->c2 = 1000 * t2 - data->c1 * n2; ++ ++ return 0; ++} ++ ++static int imx_thermal_probe(struct platform_device *pdev) ++{ ++ struct imx_thermal_data *data; ++ struct cpumask clip_cpus; ++ struct regmap *map; ++ int ret; ++ ++ data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL); ++ if (!data) ++ return -ENOMEM; ++ ++ map = syscon_regmap_lookup_by_phandle(pdev->dev.of_node, "fsl,tempmon"); ++ if (IS_ERR(map)) { ++ ret = PTR_ERR(map); ++ dev_err(&pdev->dev, "failed to get tempmon regmap: %d\n", ret); ++ return ret; ++ } ++ data->tempmon = map; ++ ++ platform_set_drvdata(pdev, data); ++ ++ ret = imx_get_sensor_data(pdev); ++ if (ret) { ++ dev_err(&pdev->dev, "failed to get sensor data\n"); ++ return ret; ++ } ++ ++ /* Make sure sensor is in known good state for measurements */ ++ regmap_write(map, TEMPSENSE0 + REG_CLR, TEMPSENSE0_POWER_DOWN); ++ regmap_write(map, TEMPSENSE0 + REG_CLR, TEMPSENSE0_MEASURE_TEMP); ++ regmap_write(map, TEMPSENSE1 + REG_CLR, TEMPSENSE1_MEASURE_FREQ); ++ regmap_write(map, MISC0 + REG_SET, MISC0_REFTOP_SELBIASOFF); ++ regmap_write(map, TEMPSENSE0 + REG_SET, TEMPSENSE0_POWER_DOWN); ++ ++ cpumask_set_cpu(0, &clip_cpus); ++ data->cdev = cpufreq_cooling_register(&clip_cpus); ++ if (IS_ERR(data->cdev)) { ++ ret = PTR_ERR(data->cdev); ++ dev_err(&pdev->dev, ++ "failed to register cpufreq cooling device: %d\n", ret); ++ return ret; ++ } ++ ++ data->tz = thermal_zone_device_register("imx_thermal_zone", ++ IMX_TRIP_NUM, 0, data, ++ &imx_tz_ops, NULL, ++ IMX_PASSIVE_DELAY, ++ IMX_POLLING_DELAY); ++ if (IS_ERR(data->tz)) { ++ ret = PTR_ERR(data->tz); ++ dev_err(&pdev->dev, ++ "failed to register thermal zone device %d\n", ret); ++ cpufreq_cooling_unregister(data->cdev); ++ return ret; ++ } ++ ++ data->mode = THERMAL_DEVICE_ENABLED; ++ ++ return 0; ++} ++ ++static int imx_thermal_remove(struct platform_device *pdev) ++{ ++ struct imx_thermal_data *data = platform_get_drvdata(pdev); ++ ++ thermal_zone_device_unregister(data->tz); ++ cpufreq_cooling_unregister(data->cdev); ++ ++ return 0; ++} ++ ++#ifdef CONFIG_PM_SLEEP ++static int imx_thermal_suspend(struct device *dev) ++{ ++ struct imx_thermal_data *data = dev_get_drvdata(dev); ++ struct regmap *map = data->tempmon; ++ u32 val; ++ ++ regmap_read(map, TEMPSENSE0, &val); ++ if ((val & TEMPSENSE0_POWER_DOWN) == 0) { ++ /* ++ * If a measurement is taking place, wait for a long enough ++ * time for it to finish, and then check again. If it still ++ * does not finish, something must go wrong. ++ */ ++ udelay(50); ++ regmap_read(map, TEMPSENSE0, &val); ++ if ((val & TEMPSENSE0_POWER_DOWN) == 0) ++ return -ETIMEDOUT; ++ } ++ ++ return 0; ++} ++ ++static int imx_thermal_resume(struct device *dev) ++{ ++ /* Nothing to do for now */ ++ return 0; ++} ++#endif ++ ++static SIMPLE_DEV_PM_OPS(imx_thermal_pm_ops, ++ imx_thermal_suspend, imx_thermal_resume); ++ ++static const struct of_device_id of_imx_thermal_match[] = { ++ { .compatible = "fsl,imx6q-tempmon", }, ++ { /* end */ } ++}; ++ ++static struct platform_driver imx_thermal = { ++ .driver = { ++ .name = "imx_thermal", ++ .owner = THIS_MODULE, ++ .pm = &imx_thermal_pm_ops, ++ .of_match_table = of_imx_thermal_match, ++ }, ++ .probe = imx_thermal_probe, ++ .remove = imx_thermal_remove, ++}; ++module_platform_driver(imx_thermal); ++ ++MODULE_AUTHOR("Freescale Semiconductor, Inc."); ++MODULE_DESCRIPTION("Thermal driver for Freescale i.MX SoCs"); ++MODULE_LICENSE("GPL v2"); ++MODULE_ALIAS("platform:imx-thermal"); +-- +1.7.10.4 + diff --git a/src/patches/kernel/wandboard/imx/0004-ARM-i.MX6-Wandboard-add-wifi-bt-rfkill-driver.patch b/src/patches/kernel/wandboard/imx/0004-ARM-i.MX6-Wandboard-add-wifi-bt-rfkill-driver.patch new file mode 100644 index 0000000..993b1d7 --- /dev/null +++ b/src/patches/kernel/wandboard/imx/0004-ARM-i.MX6-Wandboard-add-wifi-bt-rfkill-driver.patch @@ -0,0 +1,341 @@ +From adf0f7b7d7c0083dd936fe46423b89e974f8df12 Mon Sep 17 00:00:00 2001 +From: Vladimir Ermakov vooon341@gmail.com +Date: Wed, 10 Jul 2013 03:06:54 +0400 +Subject: [PATCH] ARM i.MX6 Wandboard add wifi+bt rfkill driver + +BRCM WiFi module requires initialization for control gpio; +Additional provides rfkill funcs. + +v2: fix wrong probe func in driver struct +v3: add imx6qdl compatible + +Signed-off-by: Vladimir Ermakov vooon341@gmail.com +--- + arch/arm/mach-imx/devices/Kconfig | 6 + + arch/arm/mach-imx/devices/Makefile | 1 + + arch/arm/mach-imx/devices/wand-rfkill.c | 290 ++++++++++++++++++++++++++++++++ + 3 files changed, 297 insertions(+) + create mode 100644 arch/arm/mach-imx/devices/wand-rfkill.c + +diff --git a/arch/arm/mach-imx/devices/Kconfig b/arch/arm/mach-imx/devices/Kconfig +index 68c74fb..a0adf75 100644 +--- a/arch/arm/mach-imx/devices/Kconfig ++++ b/arch/arm/mach-imx/devices/Kconfig +@@ -85,3 +85,9 @@ config IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX + + config IMX_HAVE_PLATFORM_SPI_IMX + bool ++ ++config WAND_RFKILL ++ tristate "Wandboard RF Kill support" ++ depends on SOC_IMX6Q ++ default m ++ select RFKILL +diff --git a/arch/arm/mach-imx/devices/Makefile b/arch/arm/mach-imx/devices/Makefile +index 67416fb..b2aded5 100644 +--- a/arch/arm/mach-imx/devices/Makefile ++++ b/arch/arm/mach-imx/devices/Makefile +@@ -30,3 +30,4 @@ obj-$(CONFIG_IMX_HAVE_PLATFORM_MXC_W1) += platform-mxc_w1.o + obj-$(CONFIG_IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX) += platform-sdhci-esdhc-imx.o + obj-$(CONFIG_IMX_HAVE_PLATFORM_SPI_IMX) += platform-spi_imx.o + obj-$(CONFIG_IMX_HAVE_PLATFORM_MX2_EMMA) += platform-mx2-emma.o ++obj-$(CONFIG_WAND_RFKILL) += wand-rfkill.o +diff --git a/arch/arm/mach-imx/devices/wand-rfkill.c b/arch/arm/mach-imx/devices/wand-rfkill.c +new file mode 100644 +index 0000000..da7ef9f +--- /dev/null ++++ b/arch/arm/mach-imx/devices/wand-rfkill.c +@@ -0,0 +1,290 @@ ++/* ++ * arch/arm/mach-imx/devices/wand-rfkill.c ++ * ++ * Copyright (C) 2013 Vladimir Ermakov vooon341@gmail.com ++ * ++ * based on net/rfkill/rfkill-gpio.c ++ * ++ * This software is licensed under the terms of the GNU General Public ++ * License version 2, as published by the Free Software Foundation, and ++ * may be copied, distributed, and modified under those terms. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ */ ++ ++#include <linux/of.h> ++#include <linux/of_gpio.h> ++#include <linux/of_device.h> ++#include <linux/pinctrl/consumer.h> ++#include <linux/platform_device.h> ++#include <linux/rfkill.h> ++#include <linux/delay.h> ++#include <linux/kernel.h> ++#include <linux/module.h> ++#include <linux/slab.h> ++ ++ ++struct wand_rfkill_data { ++ struct rfkill *rfkill_dev; ++ int shutdown_gpio; ++ const char *shutdown_name; ++}; ++ ++static int wand_rfkill_set_block(void *data, bool blocked) ++{ ++ struct wand_rfkill_data *rfkill = data; ++ ++ pr_debug("wandboard-rfkill: set block %d\n", blocked); ++ ++ if (blocked) { ++ if (gpio_is_valid(rfkill->shutdown_gpio)) ++ gpio_direction_output(rfkill->shutdown_gpio, 0); ++ } else { ++ if (gpio_is_valid(rfkill->shutdown_gpio)) ++ gpio_direction_output(rfkill->shutdown_gpio, 1); ++ } ++ ++ return 0; ++} ++ ++static const struct rfkill_ops wand_rfkill_ops = { ++ .set_block = wand_rfkill_set_block, ++}; ++ ++static int wand_rfkill_wifi_probe(struct device *dev, ++ struct device_node *np, ++ struct wand_rfkill_data *rfkill) ++{ ++ int ret; ++ int wl_ref_on, wl_rst_n, wl_reg_on, wl_wake, wl_host_wake; ++ ++ wl_ref_on = of_get_named_gpio(np, "wifi-ref-on", 0); ++ wl_rst_n = of_get_named_gpio(np, "wifi-rst-n", 0); ++ wl_reg_on = of_get_named_gpio(np, "wifi-reg-on", 0); ++ wl_wake = of_get_named_gpio(np, "wifi-wake", 0); ++ wl_host_wake = of_get_named_gpio(np, "wifi-host-wake", 0); ++ ++ if (!gpio_is_valid(wl_rst_n) || !gpio_is_valid(wl_ref_on) || ++ !gpio_is_valid(wl_reg_on) || !gpio_is_valid(wl_wake) || ++ !gpio_is_valid(wl_host_wake)) { ++ ++ dev_err(dev, "incorrect wifi gpios (%d %d %d %d %d)\n", ++ wl_rst_n, wl_ref_on, wl_reg_on, wl_wake, wl_host_wake); ++ return -EINVAL; ++ } ++ ++ dev_info(dev, "initialize wifi chip\n"); ++ ++ gpio_request(wl_rst_n, "wl_rst_n"); ++ gpio_direction_output(wl_rst_n, 0); ++ msleep(11); ++ gpio_set_value(wl_rst_n, 1); ++ ++ gpio_request(wl_ref_on, "wl_ref_on"); ++ gpio_direction_output(wl_ref_on, 1); ++ ++ gpio_request(wl_reg_on, "wl_reg_on"); ++ gpio_direction_output(wl_reg_on, 1); ++ ++ gpio_request(wl_wake, "wl_wake"); ++ gpio_direction_output(wl_wake, 1); ++ ++ gpio_request(wl_host_wake, "wl_host_wake"); ++ gpio_direction_input(wl_host_wake); ++ ++ rfkill->shutdown_name = "wifi_shutdown"; ++ rfkill->shutdown_gpio = wl_wake; ++ ++ rfkill->rfkill_dev = rfkill_alloc("wifi-rfkill", dev, RFKILL_TYPE_WLAN, ++ &wand_rfkill_ops, rfkill); ++ if (!rfkill->rfkill_dev) { ++ ret = -ENOMEM; ++ goto wifi_fail_free_gpio; ++ } ++ ++ ret = rfkill_register(rfkill->rfkill_dev); ++ if (ret < 0) ++ goto wifi_fail_unregister; ++ ++ dev_info(dev, "wifi-rfkill registered.\n"); ++ ++ return 0; ++ ++wifi_fail_unregister: ++ rfkill_destroy(rfkill->rfkill_dev); ++wifi_fail_free_gpio: ++ if (gpio_is_valid(wl_rst_n)) gpio_free(wl_rst_n); ++ if (gpio_is_valid(wl_ref_on)) gpio_free(wl_ref_on); ++ if (gpio_is_valid(wl_reg_on)) gpio_free(wl_reg_on); ++ if (gpio_is_valid(wl_wake)) gpio_free(wl_wake); ++ if (gpio_is_valid(wl_host_wake)) gpio_free(wl_host_wake); ++ ++ return ret; ++} ++ ++static int wand_rfkill_bt_probe(struct device *dev, ++ struct device_node *np, ++ struct wand_rfkill_data *rfkill) ++{ ++ int ret; ++ int bt_on, bt_wake, bt_host_wake; ++ ++ bt_on = of_get_named_gpio(np, "bluetooth-on", 0); ++ bt_wake = of_get_named_gpio(np, "bluetooth-wake", 0); ++ bt_host_wake = of_get_named_gpio(np, "bluetooth-host-wake", 0); ++ ++ if (!gpio_is_valid(bt_on) || !gpio_is_valid(bt_wake) || ++ !gpio_is_valid(bt_host_wake)) { ++ ++ dev_err(dev, "incorrect bt gpios (%d %d %d)\n", ++ bt_on, bt_wake, bt_host_wake); ++ return -EINVAL; ++ } ++ ++ dev_info(dev, "initialize bluetooth chip\n"); ++ ++ gpio_request(bt_on, "bt_on"); ++ gpio_direction_output(bt_on, 0); ++ msleep(11); ++ gpio_set_value(bt_on, 1); ++ ++ gpio_request(bt_wake, "bt_wake"); ++ gpio_direction_output(bt_wake, 1); ++ ++ gpio_request(bt_host_wake, "bt_host_wake"); ++ gpio_direction_input(bt_host_wake); ++ ++ rfkill->shutdown_name = "bluetooth_shutdown"; ++ rfkill->shutdown_gpio = bt_wake; ++ ++ rfkill->rfkill_dev = rfkill_alloc("bluetooth-rfkill", dev, RFKILL_TYPE_BLUETOOTH, ++ &wand_rfkill_ops, rfkill); ++ if (!rfkill->rfkill_dev) { ++ ret = -ENOMEM; ++ goto bt_fail_free_gpio; ++ } ++ ++ ret = rfkill_register(rfkill->rfkill_dev); ++ if (ret < 0) ++ goto bt_fail_unregister; ++ ++ dev_info(dev, "bluetooth-rfkill registered.\n"); ++ ++ return 0; ++ ++bt_fail_unregister: ++ rfkill_destroy(rfkill->rfkill_dev); ++bt_fail_free_gpio: ++ if (gpio_is_valid(bt_on)) gpio_free(bt_on); ++ if (gpio_is_valid(bt_wake)) gpio_free(bt_wake); ++ if (gpio_is_valid(bt_host_wake)) gpio_free(bt_host_wake); ++ ++ return ret; ++} ++ ++static int wand_rfkill_probe(struct platform_device *pdev) ++{ ++ struct wand_rfkill_data *rfkill; ++ struct pinctrl *pinctrl; ++ int ret; ++ ++ dev_info(&pdev->dev, "Wandboard rfkill initialization\n"); ++ ++ if (!pdev->dev.of_node) { ++ dev_err(&pdev->dev, "no device tree node\n"); ++ return -ENODEV; ++ } ++ ++ rfkill = kzalloc(sizeof(*rfkill) * 2, GFP_KERNEL); ++ if (!rfkill) ++ return -ENOMEM; ++ ++ pinctrl = devm_pinctrl_get_select_default(&pdev->dev); ++ if (IS_ERR(pinctrl)) { ++ int ret = PTR_ERR(pinctrl); ++ dev_err(&pdev->dev, "failed to get default pinctrl: %d\n", ret); ++ return ret; ++ } ++ ++ /* setup WiFi */ ++ ret = wand_rfkill_wifi_probe(&pdev->dev, pdev->dev.of_node, &rfkill[0]); ++ if (ret < 0) ++ goto fail_free_rfkill; ++ ++ /* setup bluetooth */ ++ ret = wand_rfkill_bt_probe(&pdev->dev, pdev->dev.of_node, &rfkill[1]); ++ if (ret < 0) ++ goto fail_unregister_wifi; ++ ++ platform_set_drvdata(pdev, rfkill); ++ ++ return 0; ++ ++fail_unregister_wifi: ++ if (rfkill[1].rfkill_dev) { ++ rfkill_unregister(rfkill[1].rfkill_dev); ++ rfkill_destroy(rfkill[1].rfkill_dev); ++ } ++ ++ /* TODO free gpio */ ++ ++fail_free_rfkill: ++ kfree(rfkill); ++ ++ return ret; ++} ++ ++static int wand_rfkill_remove(struct platform_device *pdev) ++{ ++ struct wand_rfkill_data *rfkill = platform_get_drvdata(pdev); ++ ++ dev_info(&pdev->dev, "Module unloading\n"); ++ ++ if (!rfkill) ++ return 0; ++ ++ /* WiFi */ ++ if (gpio_is_valid(rfkill[0].shutdown_gpio)) ++ gpio_free(rfkill[0].shutdown_gpio); ++ ++ rfkill_unregister(rfkill[0].rfkill_dev); ++ rfkill_destroy(rfkill[0].rfkill_dev); ++ ++ /* Bt */ ++ if (gpio_is_valid(rfkill[1].shutdown_gpio)) ++ gpio_free(rfkill[1].shutdown_gpio); ++ ++ rfkill_unregister(rfkill[1].rfkill_dev); ++ rfkill_destroy(rfkill[1].rfkill_dev); ++ ++ kfree(rfkill); ++ ++ return 0; ++} ++ ++static struct of_device_id wand_rfkill_match[] = { ++ { .compatible = "wand,imx6q-wandboard-rfkill", }, ++ { .compatible = "wand,imx6dl-wandboard-rfkill", }, ++ { .compatible = "wand,imx6qdl-wandboard-rfkill", }, ++ {} ++}; ++ ++static struct platform_driver wand_rfkill_driver = { ++ .driver = { ++ .name = "wandboard-rfkill", ++ .owner = THIS_MODULE, ++ .of_match_table = of_match_ptr(wand_rfkill_match), ++ }, ++ .probe = wand_rfkill_probe, ++ .remove = wand_rfkill_remove ++}; ++ ++module_platform_driver(wand_rfkill_driver); ++ ++MODULE_AUTHOR("Vladimir Ermakov vooon341@gmail.com"); ++MODULE_DESCRIPTION("Wandboard rfkill driver"); ++MODULE_LICENSE("GPL v2"); +-- +1.8.4.rc3 + diff --git a/src/patches/kernel/wandboard/imx/0005-Add-IMX6Q-AHCI-support.patch b/src/patches/kernel/wandboard/imx/0005-Add-IMX6Q-AHCI-support.patch new file mode 100644 index 0000000..912b3be --- /dev/null +++ b/src/patches/kernel/wandboard/imx/0005-Add-IMX6Q-AHCI-support.patch @@ -0,0 +1,85 @@ +From 8e890a259208dbe3aba6f46f7c3a213269d8f123 Mon Sep 17 00:00:00 2001 +From: Allen Ibara allen@zee.aero +Date: Tue, 4 Dec 2012 20:44:26 -0800 +Subject: [PATCH 2/5] Add IMX6Q AHCI support + +Adds ahci_platform bits to make AHCI work on sabrelite IMX6Q board. + +Signed-off-by: Allen Ibara allen@zee.aero +Signed-off-by: Robert Nelson robertcnelson@gmail.com +--- + +diff --git a/drivers/ata/ahci_platform.c b/drivers/ata/ahci_platform.c +index 7a8a284..d324cdf 100644 +--- a/drivers/ata/ahci_platform.c ++++ b/drivers/ata/ahci_platform.c +@@ -23,6 +23,9 @@ + #include <linux/platform_device.h> + #include <linux/libata.h> + #include <linux/ahci_platform.h> ++#include <linux/of.h> ++#include <linux/of_device.h> ++#include <linux/of_gpio.h> + #include "ahci.h" + + static void ahci_host_stop(struct ata_host *host); +@@ -30,6 +33,7 @@ static void ahci_host_stop(struct ata_host *host); + enum ahci_type { + AHCI, /* standard platform ahci */ + IMX53_AHCI, /* ahci on i.mx53 */ ++ IMX6Q_AHCI, /* ahci on i.mx6q */ + STRICT_AHCI, /* delayed DMA engine start */ + }; + +@@ -41,6 +45,9 @@ static struct platform_device_id ahci_devtype[] = { + .name = "imx53-ahci", + .driver_data = IMX53_AHCI, + }, { ++ .name = "imx6q-ahci", ++ .driver_data = IMX53_AHCI, ++ }, { + .name = "strict-ahci", + .driver_data = STRICT_AHCI, + }, { +@@ -86,12 +93,24 @@ static struct scsi_host_template ahci_platform_sht = { + AHCI_SHT("ahci_platform"), + }; + ++static const struct of_device_id ahci_of_match[] = { ++ { .compatible = "calxeda,hb-ahci", .data = &ahci_devtype[AHCI],}, ++ { .compatible = "fsl,imx6q-ahci", .data = &ahci_devtype[IMX6Q_AHCI],}, ++ { .compatible = "snps,spear-ahci", }, ++ {}, ++}; ++MODULE_DEVICE_TABLE(of, ahci_of_match); ++ + static int ahci_probe(struct platform_device *pdev) + { + struct device *dev = &pdev->dev; + struct ahci_platform_data *pdata = dev_get_platdata(dev); ++ const struct of_device_id *of_id = ++ of_match_device(ahci_of_match, &pdev->dev); ++ const struct platform_device_id *id_entry = of_id->data; + const struct platform_device_id *id = platform_get_device_id(pdev); +- struct ata_port_info pi = ahci_port_info[id ? id->driver_data : 0]; ++ struct ata_port_info pi = ahci_port_info[id ? id->driver_data : \ ++ id_entry->driver_data]; + const struct ata_port_info *ppi[] = { &pi, NULL }; + struct ahci_host_priv *hpriv; + struct ata_host *host; +@@ -325,12 +344,6 @@ disable_unprepare_clk: + + static SIMPLE_DEV_PM_OPS(ahci_pm_ops, ahci_suspend, ahci_resume); + +-static const struct of_device_id ahci_of_match[] = { +- { .compatible = "snps,spear-ahci", }, +- {}, +-}; +-MODULE_DEVICE_TABLE(of, ahci_of_match); +- + static struct platform_driver ahci_driver = { + .probe = ahci_probe, + .remove = ata_platform_remove_one, +-- +1.7.10.4 + diff --git a/src/patches/kernel/wandboard/imx/0006-imx-Add-IMX53-AHCI-support.patch b/src/patches/kernel/wandboard/imx/0006-imx-Add-IMX53-AHCI-support.patch new file mode 100644 index 0000000..1b96d8c --- /dev/null +++ b/src/patches/kernel/wandboard/imx/0006-imx-Add-IMX53-AHCI-support.patch @@ -0,0 +1,25 @@ +From 41cc1967181a833c3c5af30682ea85dd01c28ff4 Mon Sep 17 00:00:00 2001 +From: Robert Nelson robertcnelson@gmail.com +Date: Tue, 22 Jan 2013 22:21:03 -0600 +Subject: [PATCH 3/5] imx: Add IMX53 AHCI support + +Adds ahci_platform bits to make AHCI work on mx53 qsb board. + +Signed-off-by: Robert Nelson robertcnelson@gmail.com +--- + +diff --git a/drivers/ata/ahci_platform.c b/drivers/ata/ahci_platform.c +index d324cdf..b01eeca 100644 +--- a/drivers/ata/ahci_platform.c ++++ b/drivers/ata/ahci_platform.c +@@ -95,6 +95,7 @@ static struct scsi_host_template ahci_platform_sht = { + + static const struct of_device_id ahci_of_match[] = { + { .compatible = "calxeda,hb-ahci", .data = &ahci_devtype[AHCI],}, ++ { .compatible = "fsl,imx53-ahci", .data = &ahci_devtype[IMX53_AHCI],}, + { .compatible = "fsl,imx6q-ahci", .data = &ahci_devtype[IMX6Q_AHCI],}, + { .compatible = "snps,spear-ahci", }, + {}, +-- +1.7.10.4 + diff --git a/src/patches/kernel/wandboard/imx/0007-imx6-enable-sata-clk-if-SATA_AHCI_PLATFORM.patch b/src/patches/kernel/wandboard/imx/0007-imx6-enable-sata-clk-if-SATA_AHCI_PLATFORM.patch new file mode 100644 index 0000000..d85e3ff --- /dev/null +++ b/src/patches/kernel/wandboard/imx/0007-imx6-enable-sata-clk-if-SATA_AHCI_PLATFORM.patch @@ -0,0 +1,33 @@ +From 765561c8c72a46c2177b20d730e061ab2ff8f970 Mon Sep 17 00:00:00 2001 +From: Paolo Pisati paolo.pisati@canonical.com +Date: Thu, 31 Jan 2013 18:33:46 +0100 +Subject: [PATCH 4/5] SAUCE: imx6: enable sata clk if SATA_AHCI_PLATFORM + +Clock modifications in 24d340ac "ARM i.MX6: Fix ethernet PLL clocks" broke the +SATA clk, fix it. + +More info: http://www.spinics.net/lists/arm-kernel/msg221503.html + +Original-code-from: Shawn Guo shawn.guo@linaro.org +Signed-off-by: Paolo Pisati paolo.pisati@canonical.com +--- + arch/arm/mach-imx/clk-imx6q.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/arch/arm/mach-imx/clk-imx6q.c b/arch/arm/mach-imx/clk-imx6q.c +index 4e3148c..38d707a 100644 +--- a/arch/arm/mach-imx/clk-imx6q.c ++++ b/arch/arm/mach-imx/clk-imx6q.c +@@ -568,6 +568,9 @@ int __init mx6q_clocks_init(void) + clk_prepare_enable(clk[usbphy2_gate]); + } + ++ if (IS_ENABLED(CONFIG_SATA_AHCI_PLATFORM)) ++ clk_prepare_enable(clk[sata_ref_100m]); ++ + /* Set initial power mode */ + imx6q_set_lpm(WAIT_CLOCKED); + +-- +1.7.10.4 + diff --git a/src/patches/kernel/wandboard/imx/0008-ARM-imx6q-update-the-sata-bits-definitions-of-gpr13.patch b/src/patches/kernel/wandboard/imx/0008-ARM-imx6q-update-the-sata-bits-definitions-of-gpr13.patch new file mode 100644 index 0000000..6f6ea69 --- /dev/null +++ b/src/patches/kernel/wandboard/imx/0008-ARM-imx6q-update-the-sata-bits-definitions-of-gpr13.patch @@ -0,0 +1,150 @@ +From 371863a788db77e6092d69df17d8884cb0d94270 Mon Sep 17 00:00:00 2001 +From: Richard Zhu r65037@freescale.com +Date: Wed, 24 Jul 2013 06:15:28 +0000 +Subject: [PATCH 1/2] ARM: imx6q: update the sata bits definitions of gpr13 + +Replace the SATA_PHY_# by the more readable definitons. + +tj: Being routed through libata branch to enable implementation of + ahci_imx. + +Signed-off-by: Richard Zhu r65037@freescale.com +Acked-by: Shawn Guo shawn.guo@linaro.org +Signed-off-by: Tejun Heo tj@kernel.org +--- + include/linux/mfd/syscon/imx6q-iomuxc-gpr.h | 121 +++++++++++++++++++-------- + 1 file changed, 84 insertions(+), 37 deletions(-) + +diff --git a/include/linux/mfd/syscon/imx6q-iomuxc-gpr.h b/include/linux/mfd/syscon/imx6q-iomuxc-gpr.h +index b1521e8..b6bdcd6 100644 +--- a/include/linux/mfd/syscon/imx6q-iomuxc-gpr.h ++++ b/include/linux/mfd/syscon/imx6q-iomuxc-gpr.h +@@ -279,41 +279,88 @@ + #define IMX6Q_GPR13_CAN2_STOP_REQ BIT(29) + #define IMX6Q_GPR13_CAN1_STOP_REQ BIT(28) + #define IMX6Q_GPR13_ENET_STOP_REQ BIT(27) +-#define IMX6Q_GPR13_SATA_PHY_8_MASK (0x7 << 24) +-#define IMX6Q_GPR13_SATA_PHY_8_0_5_DB (0x0 << 24) +-#define IMX6Q_GPR13_SATA_PHY_8_1_0_DB (0x1 << 24) +-#define IMX6Q_GPR13_SATA_PHY_8_1_5_DB (0x2 << 24) +-#define IMX6Q_GPR13_SATA_PHY_8_2_0_DB (0x3 << 24) +-#define IMX6Q_GPR13_SATA_PHY_8_2_5_DB (0x4 << 24) +-#define IMX6Q_GPR13_SATA_PHY_8_3_0_DB (0x5 << 24) +-#define IMX6Q_GPR13_SATA_PHY_8_3_5_DB (0x6 << 24) +-#define IMX6Q_GPR13_SATA_PHY_8_4_0_DB (0x7 << 24) +-#define IMX6Q_GPR13_SATA_PHY_7_MASK (0x1f << 19) +-#define IMX6Q_GPR13_SATA_PHY_7_SATA1I (0x10 << 19) +-#define IMX6Q_GPR13_SATA_PHY_7_SATA1M (0x10 << 19) +-#define IMX6Q_GPR13_SATA_PHY_7_SATA1X (0x1a << 19) +-#define IMX6Q_GPR13_SATA_PHY_7_SATA2I (0x12 << 19) +-#define IMX6Q_GPR13_SATA_PHY_7_SATA2M (0x12 << 19) +-#define IMX6Q_GPR13_SATA_PHY_7_SATA2X (0x1a << 19) +-#define IMX6Q_GPR13_SATA_PHY_6_MASK (0x7 << 16) +-#define IMX6Q_GPR13_SATA_SPEED_MASK BIT(15) +-#define IMX6Q_GPR13_SATA_SPEED_1P5G 0x0 +-#define IMX6Q_GPR13_SATA_SPEED_3P0G BIT(15) +-#define IMX6Q_GPR13_SATA_PHY_5 BIT(14) +-#define IMX6Q_GPR13_SATA_PHY_4_MASK (0x7 << 11) +-#define IMX6Q_GPR13_SATA_PHY_4_16_16 (0x0 << 11) +-#define IMX6Q_GPR13_SATA_PHY_4_14_16 (0x1 << 11) +-#define IMX6Q_GPR13_SATA_PHY_4_12_16 (0x2 << 11) +-#define IMX6Q_GPR13_SATA_PHY_4_10_16 (0x3 << 11) +-#define IMX6Q_GPR13_SATA_PHY_4_9_16 (0x4 << 11) +-#define IMX6Q_GPR13_SATA_PHY_4_8_16 (0x5 << 11) +-#define IMX6Q_GPR13_SATA_PHY_3_MASK (0xf << 7) +-#define IMX6Q_GPR13_SATA_PHY_3_OFF 0x7 +-#define IMX6Q_GPR13_SATA_PHY_2_MASK (0x1f << 2) +-#define IMX6Q_GPR13_SATA_PHY_2_OFF 0x2 +-#define IMX6Q_GPR13_SATA_PHY_1_MASK (0x3 << 0) +-#define IMX6Q_GPR13_SATA_PHY_1_FAST (0x0 << 0) +-#define IMX6Q_GPR13_SATA_PHY_1_MED (0x1 << 0) +-#define IMX6Q_GPR13_SATA_PHY_1_SLOW (0x2 << 0) +- ++#define IMX6Q_GPR13_SATA_RX_EQ_VAL_MASK (0x7 << 24) ++#define IMX6Q_GPR13_SATA_RX_EQ_VAL_0_5_DB (0x0 << 24) ++#define IMX6Q_GPR13_SATA_RX_EQ_VAL_1_0_DB (0x1 << 24) ++#define IMX6Q_GPR13_SATA_RX_EQ_VAL_1_5_DB (0x2 << 24) ++#define IMX6Q_GPR13_SATA_RX_EQ_VAL_2_0_DB (0x3 << 24) ++#define IMX6Q_GPR13_SATA_RX_EQ_VAL_2_5_DB (0x4 << 24) ++#define IMX6Q_GPR13_SATA_RX_EQ_VAL_3_0_DB (0x5 << 24) ++#define IMX6Q_GPR13_SATA_RX_EQ_VAL_3_5_DB (0x6 << 24) ++#define IMX6Q_GPR13_SATA_RX_EQ_VAL_4_0_DB (0x7 << 24) ++#define IMX6Q_GPR13_SATA_RX_LOS_LVL_MASK (0x1f << 19) ++#define IMX6Q_GPR13_SATA_RX_LOS_LVL_SATA1I (0x10 << 19) ++#define IMX6Q_GPR13_SATA_RX_LOS_LVL_SATA1M (0x10 << 19) ++#define IMX6Q_GPR13_SATA_RX_LOS_LVL_SATA1X (0x1a << 19) ++#define IMX6Q_GPR13_SATA_RX_LOS_LVL_SATA2I (0x12 << 19) ++#define IMX6Q_GPR13_SATA_RX_LOS_LVL_SATA2M (0x12 << 19) ++#define IMX6Q_GPR13_SATA_RX_LOS_LVL_SATA2X (0x1a << 19) ++#define IMX6Q_GPR13_SATA_RX_DPLL_MODE_MASK (0x7 << 16) ++#define IMX6Q_GPR13_SATA_RX_DPLL_MODE_1P_1F (0x0 << 16) ++#define IMX6Q_GPR13_SATA_RX_DPLL_MODE_2P_2F (0x1 << 16) ++#define IMX6Q_GPR13_SATA_RX_DPLL_MODE_1P_4F (0x2 << 16) ++#define IMX6Q_GPR13_SATA_RX_DPLL_MODE_2P_4F (0x3 << 16) ++#define IMX6Q_GPR13_SATA_SPD_MODE_MASK BIT(15) ++#define IMX6Q_GPR13_SATA_SPD_MODE_1P5G 0x0 ++#define IMX6Q_GPR13_SATA_SPD_MODE_3P0G BIT(15) ++#define IMX6Q_GPR13_SATA_MPLL_SS_EN BIT(14) ++#define IMX6Q_GPR13_SATA_TX_ATTEN_MASK (0x7 << 11) ++#define IMX6Q_GPR13_SATA_TX_ATTEN_16_16 (0x0 << 11) ++#define IMX6Q_GPR13_SATA_TX_ATTEN_14_16 (0x1 << 11) ++#define IMX6Q_GPR13_SATA_TX_ATTEN_12_16 (0x2 << 11) ++#define IMX6Q_GPR13_SATA_TX_ATTEN_10_16 (0x3 << 11) ++#define IMX6Q_GPR13_SATA_TX_ATTEN_9_16 (0x4 << 11) ++#define IMX6Q_GPR13_SATA_TX_ATTEN_8_16 (0x5 << 11) ++#define IMX6Q_GPR13_SATA_TX_BOOST_MASK (0xf << 7) ++#define IMX6Q_GPR13_SATA_TX_BOOST_0_00_DB (0x0 << 7) ++#define IMX6Q_GPR13_SATA_TX_BOOST_0_37_DB (0x1 << 7) ++#define IMX6Q_GPR13_SATA_TX_BOOST_0_74_DB (0x2 << 7) ++#define IMX6Q_GPR13_SATA_TX_BOOST_1_11_DB (0x3 << 7) ++#define IMX6Q_GPR13_SATA_TX_BOOST_1_48_DB (0x4 << 7) ++#define IMX6Q_GPR13_SATA_TX_BOOST_1_85_DB (0x5 << 7) ++#define IMX6Q_GPR13_SATA_TX_BOOST_2_22_DB (0x6 << 7) ++#define IMX6Q_GPR13_SATA_TX_BOOST_2_59_DB (0x7 << 7) ++#define IMX6Q_GPR13_SATA_TX_BOOST_2_96_DB (0x8 << 7) ++#define IMX6Q_GPR13_SATA_TX_BOOST_3_33_DB (0x9 << 7) ++#define IMX6Q_GPR13_SATA_TX_BOOST_3_70_DB (0xa << 7) ++#define IMX6Q_GPR13_SATA_TX_BOOST_4_07_DB (0xb << 7) ++#define IMX6Q_GPR13_SATA_TX_BOOST_4_44_DB (0xc << 7) ++#define IMX6Q_GPR13_SATA_TX_BOOST_4_81_DB (0xd << 7) ++#define IMX6Q_GPR13_SATA_TX_BOOST_5_28_DB (0xe << 7) ++#define IMX6Q_GPR13_SATA_TX_BOOST_5_75_DB (0xf << 7) ++#define IMX6Q_GPR13_SATA_TX_LVL_MASK (0x1f << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_0_937_V (0x00 << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_0_947_V (0x01 << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_0_957_V (0x02 << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_0_966_V (0x03 << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_0_976_V (0x04 << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_0_986_V (0x05 << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_0_996_V (0x06 << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_005_V (0x07 << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_015_V (0x08 << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_025_V (0x09 << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_035_V (0x0a << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_045_V (0x0b << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_054_V (0x0c << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_064_V (0x0d << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_074_V (0x0e << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_084_V (0x0f << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_094_V (0x10 << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_104_V (0x11 << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_113_V (0x12 << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_123_V (0x13 << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_133_V (0x14 << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_143_V (0x15 << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_152_V (0x16 << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_162_V (0x17 << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_172_V (0x18 << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_182_V (0x19 << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_191_V (0x1a << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_201_V (0x1b << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_211_V (0x1c << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_221_V (0x1d << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_230_V (0x1e << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_240_V (0x1f << 2) ++#define IMX6Q_GPR13_SATA_MPLL_CLK_EN BIT(1) ++#define IMX6Q_GPR13_SATA_TX_EDGE_RATE BIT(0) + #endif /* __LINUX_IMX6Q_IOMUXC_GPR_H */ +-- +1.7.10.4 + diff --git a/src/patches/kernel/wandboard/imx/0009-ahci_imx-add-ahci-sata-support-on-imx-platforms.patch b/src/patches/kernel/wandboard/imx/0009-ahci_imx-add-ahci-sata-support-on-imx-platforms.patch new file mode 100644 index 0000000..758476a --- /dev/null +++ b/src/patches/kernel/wandboard/imx/0009-ahci_imx-add-ahci-sata-support-on-imx-platforms.patch @@ -0,0 +1,316 @@ +From 093f4fdd74f29031d79be747c65b95fb16601a92 Mon Sep 17 00:00:00 2001 +From: Richard Zhu r65037@freescale.com +Date: Wed, 24 Jul 2013 06:15:29 +0000 +Subject: [PATCH 2/2] ahci_imx: add ahci sata support on imx platforms + +imx6q contains one Synopsys AHCI SATA controller, But it can't share +ahci_platform driver with other controllers because there are some +misalignments of the generic AHCI controller - the bits definitions of +the HBA registers, the Vendor Specific registers, the AHCI PHY clock +and the AHCI signals adjustment window(GPR13 register). + + - CAP_SSS(bit20) of the HOST_CAP is writable, default value is '0', + should be configured to be '1' + + - bit0 (only one AHCI SATA port on imx6q) of the HOST_PORTS_IMPL + should be set to be '1'.(default 0) + + - One Vendor Specific register HOST_TIMER1MS(offset:0xe0) should be + configured regarding to the frequency of AHB bus clock. + + - Configurations of the AHCI PHY clock, and the signal parameters of + the GPR13 + +Setup its own ahci sata driver, contained the imx6q specific +initialized codes, re-use the generic ahci_platform driver, and keep +the generic ahci_platform driver clean as much as possible. + +tj: patch description reformatted + +Signed-off-by: Richard Zhu r65037@freescale.com +Reviewed-by: Shawn Guo shawn.guo@linaro.org +Signed-off-by: Tejun Heo tj@kernel.org +--- + drivers/ata/Kconfig | 9 ++ + drivers/ata/Makefile | 1 + + drivers/ata/ahci_imx.c | 236 ++++++++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 246 insertions(+) + create mode 100644 drivers/ata/ahci_imx.c + +diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig +index 80dc988..cbf7a16 100644 +--- a/drivers/ata/Kconfig ++++ b/drivers/ata/Kconfig +@@ -97,6 +97,15 @@ config SATA_AHCI_PLATFORM + + If unsure, say N. + ++config AHCI_IMX ++ tristate "Freescale i.MX AHCI SATA support" ++ depends on SATA_AHCI_PLATFORM ++ help ++ This option enables support for the Freescale i.MX SoC's ++ onboard AHCI SATA. ++ ++ If unsure, say N. ++ + config SATA_FSL + tristate "Freescale 3.0Gbps SATA support" + depends on FSL_SOC +diff --git a/drivers/ata/Makefile b/drivers/ata/Makefile +index c04d0fd..46518c6 100644 +--- a/drivers/ata/Makefile ++++ b/drivers/ata/Makefile +@@ -10,6 +10,7 @@ obj-$(CONFIG_SATA_INIC162X) += sata_inic162x.o + obj-$(CONFIG_SATA_SIL24) += sata_sil24.o + obj-$(CONFIG_SATA_DWC) += sata_dwc_460ex.o + obj-$(CONFIG_SATA_HIGHBANK) += sata_highbank.o libahci.o ++obj-$(CONFIG_AHCI_IMX) += ahci_imx.o + + # SFF w/ custom DMA + obj-$(CONFIG_PDC_ADMA) += pdc_adma.o +diff --git a/drivers/ata/ahci_imx.c b/drivers/ata/ahci_imx.c +new file mode 100644 +index 0000000..58debb0 +--- /dev/null ++++ b/drivers/ata/ahci_imx.c +@@ -0,0 +1,236 @@ ++/* ++ * Freescale IMX AHCI SATA platform driver ++ * Copyright 2013 Freescale Semiconductor, Inc. ++ * ++ * based on the AHCI SATA platform driver by Jeff Garzik and Anton Vorontsov ++ * ++ * This program is free software; you can redistribute it and/or modify it ++ * under the terms and conditions of the GNU General Public License, ++ * version 2, as published by the Free Software Foundation. ++ * ++ * This program is distributed in the hope it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for ++ * more details. ++ * ++ * You should have received a copy of the GNU General Public License along with ++ * this program. If not, see http://www.gnu.org/licenses/. ++ */ ++ ++#include <linux/kernel.h> ++#include <linux/module.h> ++#include <linux/platform_device.h> ++#include <linux/regmap.h> ++#include <linux/ahci_platform.h> ++#include <linux/of_device.h> ++#include <linux/mfd/syscon.h> ++#include <linux/mfd/syscon/imx6q-iomuxc-gpr.h> ++#include "ahci.h" ++ ++enum { ++ HOST_TIMER1MS = 0xe0, /* Timer 1-ms */ ++}; ++ ++struct imx_ahci_priv { ++ struct platform_device *ahci_pdev; ++ struct clk *sata_ref_clk; ++ struct clk *ahb_clk; ++ struct regmap *gpr; ++}; ++ ++static int imx6q_sata_init(struct device *dev, void __iomem *mmio) ++{ ++ int ret = 0; ++ unsigned int reg_val; ++ struct imx_ahci_priv *imxpriv = dev_get_drvdata(dev->parent); ++ ++ imxpriv->gpr = ++ syscon_regmap_lookup_by_compatible("fsl,imx6q-iomuxc-gpr"); ++ if (IS_ERR(imxpriv->gpr)) { ++ dev_err(dev, "failed to find fsl,imx6q-iomux-gpr regmap\n"); ++ return PTR_ERR(imxpriv->gpr); ++ } ++ ++ ret = clk_prepare_enable(imxpriv->sata_ref_clk); ++ if (ret < 0) { ++ dev_err(dev, "prepare-enable sata_ref clock err:%d\n", ret); ++ return ret; ++ } ++ ++ /* ++ * set PHY Paremeters, two steps to configure the GPR13, ++ * one write for rest of parameters, mask of first write ++ * is 0x07fffffd, and the other one write for setting ++ * the mpll_clk_en. ++ */ ++ regmap_update_bits(imxpriv->gpr, 0x34, IMX6Q_GPR13_SATA_RX_EQ_VAL_MASK ++ | IMX6Q_GPR13_SATA_RX_LOS_LVL_MASK ++ | IMX6Q_GPR13_SATA_RX_DPLL_MODE_MASK ++ | IMX6Q_GPR13_SATA_SPD_MODE_MASK ++ | IMX6Q_GPR13_SATA_MPLL_SS_EN ++ | IMX6Q_GPR13_SATA_TX_ATTEN_MASK ++ | IMX6Q_GPR13_SATA_TX_BOOST_MASK ++ | IMX6Q_GPR13_SATA_TX_LVL_MASK ++ | IMX6Q_GPR13_SATA_TX_EDGE_RATE ++ , IMX6Q_GPR13_SATA_RX_EQ_VAL_3_0_DB ++ | IMX6Q_GPR13_SATA_RX_LOS_LVL_SATA2M ++ | IMX6Q_GPR13_SATA_RX_DPLL_MODE_2P_4F ++ | IMX6Q_GPR13_SATA_SPD_MODE_3P0G ++ | IMX6Q_GPR13_SATA_MPLL_SS_EN ++ | IMX6Q_GPR13_SATA_TX_ATTEN_9_16 ++ | IMX6Q_GPR13_SATA_TX_BOOST_3_33_DB ++ | IMX6Q_GPR13_SATA_TX_LVL_1_025_V); ++ regmap_update_bits(imxpriv->gpr, 0x34, IMX6Q_GPR13_SATA_MPLL_CLK_EN, ++ IMX6Q_GPR13_SATA_MPLL_CLK_EN); ++ usleep_range(100, 200); ++ ++ /* ++ * Configure the HWINIT bits of the HOST_CAP and HOST_PORTS_IMPL, ++ * and IP vendor specific register HOST_TIMER1MS. ++ * Configure CAP_SSS (support stagered spin up). ++ * Implement the port0. ++ * Get the ahb clock rate, and configure the TIMER1MS register. ++ */ ++ reg_val = readl(mmio + HOST_CAP); ++ if (!(reg_val & HOST_CAP_SSS)) { ++ reg_val |= HOST_CAP_SSS; ++ writel(reg_val, mmio + HOST_CAP); ++ } ++ reg_val = readl(mmio + HOST_PORTS_IMPL); ++ if (!(reg_val & 0x1)) { ++ reg_val |= 0x1; ++ writel(reg_val, mmio + HOST_PORTS_IMPL); ++ } ++ ++ reg_val = clk_get_rate(imxpriv->ahb_clk) / 1000; ++ writel(reg_val, mmio + HOST_TIMER1MS); ++ ++ return 0; ++} ++ ++static void imx6q_sata_exit(struct device *dev) ++{ ++ struct imx_ahci_priv *imxpriv = dev_get_drvdata(dev->parent); ++ ++ regmap_update_bits(imxpriv->gpr, 0x34, IMX6Q_GPR13_SATA_MPLL_CLK_EN, ++ !IMX6Q_GPR13_SATA_MPLL_CLK_EN); ++ clk_disable_unprepare(imxpriv->sata_ref_clk); ++} ++ ++static struct ahci_platform_data imx6q_sata_pdata = { ++ .init = imx6q_sata_init, ++ .exit = imx6q_sata_exit, ++}; ++ ++static const struct of_device_id imx_ahci_of_match[] = { ++ { .compatible = "fsl,imx6q-ahci", .data = &imx6q_sata_pdata}, ++ {}, ++}; ++MODULE_DEVICE_TABLE(of, imx_ahci_of_match); ++ ++static int imx_ahci_probe(struct platform_device *pdev) ++{ ++ struct device *dev = &pdev->dev; ++ struct resource *mem, *irq, res[2]; ++ const struct of_device_id *of_id; ++ const struct ahci_platform_data *pdata = NULL; ++ struct imx_ahci_priv *imxpriv; ++ struct device *ahci_dev; ++ struct platform_device *ahci_pdev; ++ int ret; ++ ++ imxpriv = devm_kzalloc(dev, sizeof(*imxpriv), GFP_KERNEL); ++ if (!imxpriv) { ++ dev_err(dev, "can't alloc ahci_host_priv\n"); ++ return -ENOMEM; ++ } ++ ++ ahci_pdev = platform_device_alloc("ahci", -1); ++ if (!ahci_pdev) ++ return -ENODEV; ++ ++ ahci_dev = &ahci_pdev->dev; ++ ahci_dev->parent = dev; ++ ++ imxpriv->ahb_clk = devm_clk_get(dev, "ahb"); ++ if (IS_ERR(imxpriv->ahb_clk)) { ++ dev_err(dev, "can't get ahb clock.\n"); ++ ret = PTR_ERR(imxpriv->ahb_clk); ++ goto err_out; ++ } ++ ++ imxpriv->sata_ref_clk = devm_clk_get(dev, "sata_ref"); ++ if (IS_ERR(imxpriv->sata_ref_clk)) { ++ dev_err(dev, "can't get sata_ref clock.\n"); ++ ret = PTR_ERR(imxpriv->sata_ref_clk); ++ goto err_out; ++ } ++ ++ imxpriv->ahci_pdev = ahci_pdev; ++ platform_set_drvdata(pdev, imxpriv); ++ ++ of_id = of_match_device(imx_ahci_of_match, dev); ++ if (of_id) { ++ pdata = of_id->data; ++ } else { ++ ret = -EINVAL; ++ goto err_out; ++ } ++ ++ mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); ++ irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0); ++ if (!mem || !irq) { ++ dev_err(dev, "no mmio/irq resource\n"); ++ ret = -ENOMEM; ++ goto err_out; ++ } ++ ++ res[0] = *mem; ++ res[1] = *irq; ++ ++ ahci_dev->coherent_dma_mask = DMA_BIT_MASK(32); ++ ahci_dev->dma_mask = &ahci_dev->coherent_dma_mask; ++ ahci_dev->of_node = dev->of_node; ++ ++ ret = platform_device_add_resources(ahci_pdev, res, 2); ++ if (ret) ++ goto err_out; ++ ++ ret = platform_device_add_data(ahci_pdev, pdata, sizeof(*pdata)); ++ if (ret) ++ goto err_out; ++ ++ ret = platform_device_add(ahci_pdev); ++ if (ret) { ++err_out: ++ platform_device_put(ahci_pdev); ++ return ret; ++ } ++ ++ return 0; ++} ++ ++static int imx_ahci_remove(struct platform_device *pdev) ++{ ++ struct imx_ahci_priv *imxpriv = platform_get_drvdata(pdev); ++ struct platform_device *ahci_pdev = imxpriv->ahci_pdev; ++ ++ platform_device_unregister(ahci_pdev); ++ return 0; ++} ++ ++static struct platform_driver imx_ahci_driver = { ++ .probe = imx_ahci_probe, ++ .remove = imx_ahci_remove, ++ .driver = { ++ .name = "ahci-imx", ++ .owner = THIS_MODULE, ++ .of_match_table = imx_ahci_of_match, ++ }, ++}; ++module_platform_driver(imx_ahci_driver); ++ ++MODULE_DESCRIPTION("Freescale i.MX AHCI SATA platform driver"); ++MODULE_AUTHOR("Richard Zhu Hong-Xing.Zhu@freescale.com"); ++MODULE_LICENSE("GPL"); ++MODULE_ALIAS("ahci:imx"); +-- +1.7.10.4 + diff --git a/src/patches/kernel/wandboard/imx/0010-ahci_imx-depend-on-CONFIG_MFD_SYSCON.patch b/src/patches/kernel/wandboard/imx/0010-ahci_imx-depend-on-CONFIG_MFD_SYSCON.patch new file mode 100644 index 0000000..86e7d8f --- /dev/null +++ b/src/patches/kernel/wandboard/imx/0010-ahci_imx-depend-on-CONFIG_MFD_SYSCON.patch @@ -0,0 +1,24 @@ +From: Tejun Heo tj@kernel.org +Subject: [PATCH] ahci_imx: depend on CONFIG_MFD_SYSCON + +ahci_imx makes use of regmap but the dependency wasn't specified in +Kconfig leading build failures if CONFIG_AHCI_IMX is enabled but +CONFIG_MFD_SYSCON is not. Add the Kconfig dependency. + +Signed-off-by: Tejun Heo tj@kernel.org +Reported-by: Stephen Rothwell sfr@canb.auug.org.au +--- + drivers/ata/Kconfig | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/ata/Kconfig ++++ b/drivers/ata/Kconfig +@@ -99,7 +99,7 @@ config SATA_AHCI_PLATFORM + + config AHCI_IMX + tristate "Freescale i.MX AHCI SATA support" +- depends on SATA_AHCI_PLATFORM ++ depends on SATA_AHCI_PLATFORM && MFD_SYSCON + help + This option enables support for the Freescale i.MX SoC's + onboard AHCI SATA. diff --git a/src/patches/kernel/wandboard/imx/0011-add-pcie-designware.patch b/src/patches/kernel/wandboard/imx/0011-add-pcie-designware.patch new file mode 100644 index 0000000..3d865d3 --- /dev/null +++ b/src/patches/kernel/wandboard/imx/0011-add-pcie-designware.patch @@ -0,0 +1,636 @@ +--- /dev/null 2013-12-09 21:30:35.000000000 +0000 ++++ drivers/pci/host/pcie-designware.h 2013-09-20 01:59:32.000000000 +0000 +@@ -0,0 +1,65 @@ ++/* ++ * Synopsys Designware PCIe host controller driver ++ * ++ * Copyright (C) 2013 Samsung Electronics Co., Ltd. ++ * http://www.samsung.com ++ * ++ * Author: Jingoo Han jg1.han@samsung.com ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ */ ++ ++struct pcie_port_info { ++ u32 cfg0_size; ++ u32 cfg1_size; ++ u32 io_size; ++ u32 mem_size; ++ phys_addr_t io_bus_addr; ++ phys_addr_t mem_bus_addr; ++}; ++ ++struct pcie_port { ++ struct device *dev; ++ u8 root_bus_nr; ++ void __iomem *dbi_base; ++ u64 cfg0_base; ++ void __iomem *va_cfg0_base; ++ u64 cfg1_base; ++ void __iomem *va_cfg1_base; ++ u64 io_base; ++ u64 mem_base; ++ spinlock_t conf_lock; ++ struct resource cfg; ++ struct resource io; ++ struct resource mem; ++ struct pcie_port_info config; ++ int irq; ++ u32 lanes; ++ struct pcie_host_ops *ops; ++}; ++ ++struct pcie_host_ops { ++ void (*readl_rc)(struct pcie_port *pp, ++ void __iomem *dbi_base, u32 *val); ++ void (*writel_rc)(struct pcie_port *pp, ++ u32 val, void __iomem *dbi_base); ++ int (*rd_own_conf)(struct pcie_port *pp, int where, int size, u32 *val); ++ int (*wr_own_conf)(struct pcie_port *pp, int where, int size, u32 val); ++ int (*link_up)(struct pcie_port *pp); ++ void (*host_init)(struct pcie_port *pp); ++}; ++ ++extern unsigned long global_io_offset; ++ ++int cfg_read(void __iomem *addr, int where, int size, u32 *val); ++int cfg_write(void __iomem *addr, int where, int size, u32 val); ++int dw_pcie_wr_own_conf(struct pcie_port *pp, int where, int size, u32 val); ++int dw_pcie_rd_own_conf(struct pcie_port *pp, int where, int size, u32 *val); ++int dw_pcie_link_up(struct pcie_port *pp); ++void dw_pcie_setup_rc(struct pcie_port *pp); ++int dw_pcie_host_init(struct pcie_port *pp); ++int dw_pcie_setup(int nr, struct pci_sys_data *sys); ++struct pci_bus *dw_pcie_scan_bus(int nr, struct pci_sys_data *sys); ++int dw_pcie_map_irq(const struct pci_dev *dev, u8 slot, u8 pin); +--- /dev/null 2013-12-09 21:30:35.000000000 +0000 ++++ drivers/pci/host/pcie-designware.c 2013-09-20 01:59:32.000000000 +0000 +@@ -0,0 +1,565 @@ ++/* ++ * Synopsys Designware PCIe host controller driver ++ * ++ * Copyright (C) 2013 Samsung Electronics Co., Ltd. ++ * http://www.samsung.com ++ * ++ * Author: Jingoo Han jg1.han@samsung.com ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ */ ++ ++#include <linux/kernel.h> ++#include <linux/module.h> ++#include <linux/of_address.h> ++#include <linux/pci.h> ++#include <linux/pci_regs.h> ++#include <linux/types.h> ++ ++#include "pcie-designware.h" ++ ++/* Synopsis specific PCIE configuration registers */ ++#define PCIE_PORT_LINK_CONTROL 0x710 ++#define PORT_LINK_MODE_MASK (0x3f << 16) ++#define PORT_LINK_MODE_1_LANES (0x1 << 16) ++#define PORT_LINK_MODE_2_LANES (0x3 << 16) ++#define PORT_LINK_MODE_4_LANES (0x7 << 16) ++ ++#define PCIE_LINK_WIDTH_SPEED_CONTROL 0x80C ++#define PORT_LOGIC_SPEED_CHANGE (0x1 << 17) ++#define PORT_LOGIC_LINK_WIDTH_MASK (0x1ff << 8) ++#define PORT_LOGIC_LINK_WIDTH_1_LANES (0x1 << 8) ++#define PORT_LOGIC_LINK_WIDTH_2_LANES (0x2 << 8) ++#define PORT_LOGIC_LINK_WIDTH_4_LANES (0x4 << 8) ++ ++#define PCIE_MSI_ADDR_LO 0x820 ++#define PCIE_MSI_ADDR_HI 0x824 ++#define PCIE_MSI_INTR0_ENABLE 0x828 ++#define PCIE_MSI_INTR0_MASK 0x82C ++#define PCIE_MSI_INTR0_STATUS 0x830 ++ ++#define PCIE_ATU_VIEWPORT 0x900 ++#define PCIE_ATU_REGION_INBOUND (0x1 << 31) ++#define PCIE_ATU_REGION_OUTBOUND (0x0 << 31) ++#define PCIE_ATU_REGION_INDEX1 (0x1 << 0) ++#define PCIE_ATU_REGION_INDEX0 (0x0 << 0) ++#define PCIE_ATU_CR1 0x904 ++#define PCIE_ATU_TYPE_MEM (0x0 << 0) ++#define PCIE_ATU_TYPE_IO (0x2 << 0) ++#define PCIE_ATU_TYPE_CFG0 (0x4 << 0) ++#define PCIE_ATU_TYPE_CFG1 (0x5 << 0) ++#define PCIE_ATU_CR2 0x908 ++#define PCIE_ATU_ENABLE (0x1 << 31) ++#define PCIE_ATU_BAR_MODE_ENABLE (0x1 << 30) ++#define PCIE_ATU_LOWER_BASE 0x90C ++#define PCIE_ATU_UPPER_BASE 0x910 ++#define PCIE_ATU_LIMIT 0x914 ++#define PCIE_ATU_LOWER_TARGET 0x918 ++#define PCIE_ATU_BUS(x) (((x) & 0xff) << 24) ++#define PCIE_ATU_DEV(x) (((x) & 0x1f) << 19) ++#define PCIE_ATU_FUNC(x) (((x) & 0x7) << 16) ++#define PCIE_ATU_UPPER_TARGET 0x91C ++ ++static struct hw_pci dw_pci; ++ ++unsigned long global_io_offset; ++ ++static inline struct pcie_port *sys_to_pcie(struct pci_sys_data *sys) ++{ ++ return sys->private_data; ++} ++ ++int cfg_read(void __iomem *addr, int where, int size, u32 *val) ++{ ++ *val = readl(addr); ++ ++ if (size == 1) ++ *val = (*val >> (8 * (where & 3))) & 0xff; ++ else if (size == 2) ++ *val = (*val >> (8 * (where & 3))) & 0xffff; ++ else if (size != 4) ++ return PCIBIOS_BAD_REGISTER_NUMBER; ++ ++ return PCIBIOS_SUCCESSFUL; ++} ++ ++int cfg_write(void __iomem *addr, int where, int size, u32 val) ++{ ++ if (size == 4) ++ writel(val, addr); ++ else if (size == 2) ++ writew(val, addr + (where & 2)); ++ else if (size == 1) ++ writeb(val, addr + (where & 3)); ++ else ++ return PCIBIOS_BAD_REGISTER_NUMBER; ++ ++ return PCIBIOS_SUCCESSFUL; ++} ++ ++static inline void dw_pcie_readl_rc(struct pcie_port *pp, u32 reg, u32 *val) ++{ ++ if (pp->ops->readl_rc) ++ pp->ops->readl_rc(pp, pp->dbi_base + reg, val); ++ else ++ *val = readl(pp->dbi_base + reg); ++} ++ ++static inline void dw_pcie_writel_rc(struct pcie_port *pp, u32 val, u32 reg) ++{ ++ if (pp->ops->writel_rc) ++ pp->ops->writel_rc(pp, val, pp->dbi_base + reg); ++ else ++ writel(val, pp->dbi_base + reg); ++} ++ ++int dw_pcie_rd_own_conf(struct pcie_port *pp, int where, int size, ++ u32 *val) ++{ ++ int ret; ++ ++ if (pp->ops->rd_own_conf) ++ ret = pp->ops->rd_own_conf(pp, where, size, val); ++ else ++ ret = cfg_read(pp->dbi_base + (where & ~0x3), where, size, val); ++ ++ return ret; ++} ++ ++int dw_pcie_wr_own_conf(struct pcie_port *pp, int where, int size, ++ u32 val) ++{ ++ int ret; ++ ++ if (pp->ops->wr_own_conf) ++ ret = pp->ops->wr_own_conf(pp, where, size, val); ++ else ++ ret = cfg_write(pp->dbi_base + (where & ~0x3), where, size, ++ val); ++ ++ return ret; ++} ++ ++int dw_pcie_link_up(struct pcie_port *pp) ++{ ++ if (pp->ops->link_up) ++ return pp->ops->link_up(pp); ++ else ++ return 0; ++} ++ ++int __init dw_pcie_host_init(struct pcie_port *pp) ++{ ++ struct device_node *np = pp->dev->of_node; ++ struct of_pci_range range; ++ struct of_pci_range_parser parser; ++ u32 val; ++ ++ if (of_pci_range_parser_init(&parser, np)) { ++ dev_err(pp->dev, "missing ranges property\n"); ++ return -EINVAL; ++ } ++ ++ /* Get the I/O and memory ranges from DT */ ++ for_each_of_pci_range(&parser, &range) { ++ unsigned long restype = range.flags & IORESOURCE_TYPE_BITS; ++ if (restype == IORESOURCE_IO) { ++ of_pci_range_to_resource(&range, np, &pp->io); ++ pp->io.name = "I/O"; ++ pp->io.start = max_t(resource_size_t, ++ PCIBIOS_MIN_IO, ++ range.pci_addr + global_io_offset); ++ pp->io.end = min_t(resource_size_t, ++ IO_SPACE_LIMIT, ++ range.pci_addr + range.size ++ + global_io_offset); ++ pp->config.io_size = resource_size(&pp->io); ++ pp->config.io_bus_addr = range.pci_addr; ++ } ++ if (restype == IORESOURCE_MEM) { ++ of_pci_range_to_resource(&range, np, &pp->mem); ++ pp->mem.name = "MEM"; ++ pp->config.mem_size = resource_size(&pp->mem); ++ pp->config.mem_bus_addr = range.pci_addr; ++ } ++ if (restype == 0) { ++ of_pci_range_to_resource(&range, np, &pp->cfg); ++ pp->config.cfg0_size = resource_size(&pp->cfg)/2; ++ pp->config.cfg1_size = resource_size(&pp->cfg)/2; ++ } ++ } ++ ++ if (!pp->dbi_base) { ++ pp->dbi_base = devm_ioremap(pp->dev, pp->cfg.start, ++ resource_size(&pp->cfg)); ++ if (!pp->dbi_base) { ++ dev_err(pp->dev, "error with ioremap\n"); ++ return -ENOMEM; ++ } ++ } ++ ++ pp->cfg0_base = pp->cfg.start; ++ pp->cfg1_base = pp->cfg.start + pp->config.cfg0_size; ++ pp->io_base = pp->io.start; ++ pp->mem_base = pp->mem.start; ++ ++ pp->va_cfg0_base = devm_ioremap(pp->dev, pp->cfg0_base, ++ pp->config.cfg0_size); ++ if (!pp->va_cfg0_base) { ++ dev_err(pp->dev, "error with ioremap in function\n"); ++ return -ENOMEM; ++ } ++ pp->va_cfg1_base = devm_ioremap(pp->dev, pp->cfg1_base, ++ pp->config.cfg1_size); ++ if (!pp->va_cfg1_base) { ++ dev_err(pp->dev, "error with ioremap\n"); ++ return -ENOMEM; ++ } ++ ++ if (of_property_read_u32(np, "num-lanes", &pp->lanes)) { ++ dev_err(pp->dev, "Failed to parse the number of lanes\n"); ++ return -EINVAL; ++ } ++ ++ if (pp->ops->host_init) ++ pp->ops->host_init(pp); ++ ++ dw_pcie_wr_own_conf(pp, PCI_BASE_ADDRESS_0, 4, 0); ++ ++ /* program correct class for RC */ ++ dw_pcie_wr_own_conf(pp, PCI_CLASS_DEVICE, 2, PCI_CLASS_BRIDGE_PCI); ++ ++ dw_pcie_rd_own_conf(pp, PCIE_LINK_WIDTH_SPEED_CONTROL, 4, &val); ++ val |= PORT_LOGIC_SPEED_CHANGE; ++ dw_pcie_wr_own_conf(pp, PCIE_LINK_WIDTH_SPEED_CONTROL, 4, val); ++ ++ dw_pci.nr_controllers = 1; ++ dw_pci.private_data = (void **)&pp; ++ ++ pci_common_init(&dw_pci); ++ pci_assign_unassigned_resources(); ++#ifdef CONFIG_PCI_DOMAINS ++ dw_pci.domain++; ++#endif ++ ++ return 0; ++} ++ ++static void dw_pcie_prog_viewport_cfg0(struct pcie_port *pp, u32 busdev) ++{ ++ /* Program viewport 0 : OUTBOUND : CFG0 */ ++ dw_pcie_writel_rc(pp, PCIE_ATU_REGION_OUTBOUND | PCIE_ATU_REGION_INDEX0, ++ PCIE_ATU_VIEWPORT); ++ dw_pcie_writel_rc(pp, pp->cfg0_base, PCIE_ATU_LOWER_BASE); ++ dw_pcie_writel_rc(pp, (pp->cfg0_base >> 32), PCIE_ATU_UPPER_BASE); ++ dw_pcie_writel_rc(pp, pp->cfg0_base + pp->config.cfg0_size - 1, ++ PCIE_ATU_LIMIT); ++ dw_pcie_writel_rc(pp, busdev, PCIE_ATU_LOWER_TARGET); ++ dw_pcie_writel_rc(pp, 0, PCIE_ATU_UPPER_TARGET); ++ dw_pcie_writel_rc(pp, PCIE_ATU_TYPE_CFG0, PCIE_ATU_CR1); ++ dw_pcie_writel_rc(pp, PCIE_ATU_ENABLE, PCIE_ATU_CR2); ++} ++ ++static void dw_pcie_prog_viewport_cfg1(struct pcie_port *pp, u32 busdev) ++{ ++ /* Program viewport 1 : OUTBOUND : CFG1 */ ++ dw_pcie_writel_rc(pp, PCIE_ATU_REGION_OUTBOUND | PCIE_ATU_REGION_INDEX1, ++ PCIE_ATU_VIEWPORT); ++ dw_pcie_writel_rc(pp, PCIE_ATU_TYPE_CFG1, PCIE_ATU_CR1); ++ dw_pcie_writel_rc(pp, PCIE_ATU_ENABLE, PCIE_ATU_CR2); ++ dw_pcie_writel_rc(pp, pp->cfg1_base, PCIE_ATU_LOWER_BASE); ++ dw_pcie_writel_rc(pp, (pp->cfg1_base >> 32), PCIE_ATU_UPPER_BASE); ++ dw_pcie_writel_rc(pp, pp->cfg1_base + pp->config.cfg1_size - 1, ++ PCIE_ATU_LIMIT); ++ dw_pcie_writel_rc(pp, busdev, PCIE_ATU_LOWER_TARGET); ++ dw_pcie_writel_rc(pp, 0, PCIE_ATU_UPPER_TARGET); ++} ++ ++static void dw_pcie_prog_viewport_mem_outbound(struct pcie_port *pp) ++{ ++ /* Program viewport 0 : OUTBOUND : MEM */ ++ dw_pcie_writel_rc(pp, PCIE_ATU_REGION_OUTBOUND | PCIE_ATU_REGION_INDEX0, ++ PCIE_ATU_VIEWPORT); ++ dw_pcie_writel_rc(pp, PCIE_ATU_TYPE_MEM, PCIE_ATU_CR1); ++ dw_pcie_writel_rc(pp, PCIE_ATU_ENABLE, PCIE_ATU_CR2); ++ dw_pcie_writel_rc(pp, pp->mem_base, PCIE_ATU_LOWER_BASE); ++ dw_pcie_writel_rc(pp, (pp->mem_base >> 32), PCIE_ATU_UPPER_BASE); ++ dw_pcie_writel_rc(pp, pp->mem_base + pp->config.mem_size - 1, ++ PCIE_ATU_LIMIT); ++ dw_pcie_writel_rc(pp, pp->config.mem_bus_addr, PCIE_ATU_LOWER_TARGET); ++ dw_pcie_writel_rc(pp, upper_32_bits(pp->config.mem_bus_addr), ++ PCIE_ATU_UPPER_TARGET); ++} ++ ++static void dw_pcie_prog_viewport_io_outbound(struct pcie_port *pp) ++{ ++ /* Program viewport 1 : OUTBOUND : IO */ ++ dw_pcie_writel_rc(pp, PCIE_ATU_REGION_OUTBOUND | PCIE_ATU_REGION_INDEX1, ++ PCIE_ATU_VIEWPORT); ++ dw_pcie_writel_rc(pp, PCIE_ATU_TYPE_IO, PCIE_ATU_CR1); ++ dw_pcie_writel_rc(pp, PCIE_ATU_ENABLE, PCIE_ATU_CR2); ++ dw_pcie_writel_rc(pp, pp->io_base, PCIE_ATU_LOWER_BASE); ++ dw_pcie_writel_rc(pp, (pp->io_base >> 32), PCIE_ATU_UPPER_BASE); ++ dw_pcie_writel_rc(pp, pp->io_base + pp->config.io_size - 1, ++ PCIE_ATU_LIMIT); ++ dw_pcie_writel_rc(pp, pp->config.io_bus_addr, PCIE_ATU_LOWER_TARGET); ++ dw_pcie_writel_rc(pp, upper_32_bits(pp->config.io_bus_addr), ++ PCIE_ATU_UPPER_TARGET); ++} ++ ++static int dw_pcie_rd_other_conf(struct pcie_port *pp, struct pci_bus *bus, ++ u32 devfn, int where, int size, u32 *val) ++{ ++ int ret = PCIBIOS_SUCCESSFUL; ++ u32 address, busdev; ++ ++ busdev = PCIE_ATU_BUS(bus->number) | PCIE_ATU_DEV(PCI_SLOT(devfn)) | ++ PCIE_ATU_FUNC(PCI_FUNC(devfn)); ++ address = where & ~0x3; ++ ++ if (bus->parent->number == pp->root_bus_nr) { ++ dw_pcie_prog_viewport_cfg0(pp, busdev); ++ ret = cfg_read(pp->va_cfg0_base + address, where, size, val); ++ dw_pcie_prog_viewport_mem_outbound(pp); ++ } else { ++ dw_pcie_prog_viewport_cfg1(pp, busdev); ++ ret = cfg_read(pp->va_cfg1_base + address, where, size, val); ++ dw_pcie_prog_viewport_io_outbound(pp); ++ } ++ ++ return ret; ++} ++ ++static int dw_pcie_wr_other_conf(struct pcie_port *pp, struct pci_bus *bus, ++ u32 devfn, int where, int size, u32 val) ++{ ++ int ret = PCIBIOS_SUCCESSFUL; ++ u32 address, busdev; ++ ++ busdev = PCIE_ATU_BUS(bus->number) | PCIE_ATU_DEV(PCI_SLOT(devfn)) | ++ PCIE_ATU_FUNC(PCI_FUNC(devfn)); ++ address = where & ~0x3; ++ ++ if (bus->parent->number == pp->root_bus_nr) { ++ dw_pcie_prog_viewport_cfg0(pp, busdev); ++ ret = cfg_write(pp->va_cfg0_base + address, where, size, val); ++ dw_pcie_prog_viewport_mem_outbound(pp); ++ } else { ++ dw_pcie_prog_viewport_cfg1(pp, busdev); ++ ret = cfg_write(pp->va_cfg1_base + address, where, size, val); ++ dw_pcie_prog_viewport_io_outbound(pp); ++ } ++ ++ return ret; ++} ++ ++ ++static int dw_pcie_valid_config(struct pcie_port *pp, ++ struct pci_bus *bus, int dev) ++{ ++ /* If there is no link, then there is no device */ ++ if (bus->number != pp->root_bus_nr) { ++ if (!dw_pcie_link_up(pp)) ++ return 0; ++ } ++ ++ /* access only one slot on each root port */ ++ if (bus->number == pp->root_bus_nr && dev > 0) ++ return 0; ++ ++ /* ++ * do not read more than one device on the bus directly attached ++ * to RC's (Virtual Bridge's) DS side. ++ */ ++ if (bus->primary == pp->root_bus_nr && dev > 0) ++ return 0; ++ ++ return 1; ++} ++ ++static int dw_pcie_rd_conf(struct pci_bus *bus, u32 devfn, int where, ++ int size, u32 *val) ++{ ++ struct pcie_port *pp = sys_to_pcie(bus->sysdata); ++ unsigned long flags; ++ int ret; ++ ++ if (!pp) { ++ BUG(); ++ return -EINVAL; ++ } ++ ++ if (dw_pcie_valid_config(pp, bus, PCI_SLOT(devfn)) == 0) { ++ *val = 0xffffffff; ++ return PCIBIOS_DEVICE_NOT_FOUND; ++ } ++ ++ spin_lock_irqsave(&pp->conf_lock, flags); ++ if (bus->number != pp->root_bus_nr) ++ ret = dw_pcie_rd_other_conf(pp, bus, devfn, ++ where, size, val); ++ else ++ ret = dw_pcie_rd_own_conf(pp, where, size, val); ++ spin_unlock_irqrestore(&pp->conf_lock, flags); ++ ++ return ret; ++} ++ ++static int dw_pcie_wr_conf(struct pci_bus *bus, u32 devfn, ++ int where, int size, u32 val) ++{ ++ struct pcie_port *pp = sys_to_pcie(bus->sysdata); ++ unsigned long flags; ++ int ret; ++ ++ if (!pp) { ++ BUG(); ++ return -EINVAL; ++ } ++ ++ if (dw_pcie_valid_config(pp, bus, PCI_SLOT(devfn)) == 0) ++ return PCIBIOS_DEVICE_NOT_FOUND; ++ ++ spin_lock_irqsave(&pp->conf_lock, flags); ++ if (bus->number != pp->root_bus_nr) ++ ret = dw_pcie_wr_other_conf(pp, bus, devfn, ++ where, size, val); ++ else ++ ret = dw_pcie_wr_own_conf(pp, where, size, val); ++ spin_unlock_irqrestore(&pp->conf_lock, flags); ++ ++ return ret; ++} ++ ++static struct pci_ops dw_pcie_ops = { ++ .read = dw_pcie_rd_conf, ++ .write = dw_pcie_wr_conf, ++}; ++ ++int dw_pcie_setup(int nr, struct pci_sys_data *sys) ++{ ++ struct pcie_port *pp; ++ ++ pp = sys_to_pcie(sys); ++ ++ if (!pp) ++ return 0; ++ ++ if (global_io_offset < SZ_1M && pp->config.io_size > 0) { ++ sys->io_offset = global_io_offset - pp->config.io_bus_addr; ++ pci_ioremap_io(sys->io_offset, pp->io.start); ++ global_io_offset += SZ_64K; ++ pci_add_resource_offset(&sys->resources, &pp->io, ++ sys->io_offset); ++ } ++ ++ sys->mem_offset = pp->mem.start - pp->config.mem_bus_addr; ++ pci_add_resource_offset(&sys->resources, &pp->mem, sys->mem_offset); ++ ++ return 1; ++} ++ ++struct pci_bus *dw_pcie_scan_bus(int nr, struct pci_sys_data *sys) ++{ ++ struct pci_bus *bus; ++ struct pcie_port *pp = sys_to_pcie(sys); ++ ++ if (pp) { ++ pp->root_bus_nr = sys->busnr; ++ bus = pci_scan_root_bus(NULL, sys->busnr, &dw_pcie_ops, ++ sys, &sys->resources); ++ } else { ++ bus = NULL; ++ BUG(); ++ } ++ ++ return bus; ++} ++ ++int dw_pcie_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) ++{ ++ struct pcie_port *pp = sys_to_pcie(dev->bus->sysdata); ++ ++ return pp->irq; ++} ++ ++static struct hw_pci dw_pci = { ++ .setup = dw_pcie_setup, ++ .scan = dw_pcie_scan_bus, ++ .map_irq = dw_pcie_map_irq, ++}; ++ ++void dw_pcie_setup_rc(struct pcie_port *pp) ++{ ++ struct pcie_port_info *config = &pp->config; ++ u32 val; ++ u32 membase; ++ u32 memlimit; ++ ++ /* set the number of lines as 4 */ ++ dw_pcie_readl_rc(pp, PCIE_PORT_LINK_CONTROL, &val); ++ val &= ~PORT_LINK_MODE_MASK; ++ switch (pp->lanes) { ++ case 1: ++ val |= PORT_LINK_MODE_1_LANES; ++ break; ++ case 2: ++ val |= PORT_LINK_MODE_2_LANES; ++ break; ++ case 4: ++ val |= PORT_LINK_MODE_4_LANES; ++ break; ++ } ++ dw_pcie_writel_rc(pp, val, PCIE_PORT_LINK_CONTROL); ++ ++ /* set link width speed control register */ ++ dw_pcie_readl_rc(pp, PCIE_LINK_WIDTH_SPEED_CONTROL, &val); ++ val &= ~PORT_LOGIC_LINK_WIDTH_MASK; ++ switch (pp->lanes) { ++ case 1: ++ val |= PORT_LOGIC_LINK_WIDTH_1_LANES; ++ break; ++ case 2: ++ val |= PORT_LOGIC_LINK_WIDTH_2_LANES; ++ break; ++ case 4: ++ val |= PORT_LOGIC_LINK_WIDTH_4_LANES; ++ break; ++ } ++ dw_pcie_writel_rc(pp, val, PCIE_LINK_WIDTH_SPEED_CONTROL); ++ ++ /* setup RC BARs */ ++ dw_pcie_writel_rc(pp, 0x00000004, PCI_BASE_ADDRESS_0); ++ dw_pcie_writel_rc(pp, 0x00000004, PCI_BASE_ADDRESS_1); ++ ++ /* setup interrupt pins */ ++ dw_pcie_readl_rc(pp, PCI_INTERRUPT_LINE, &val); ++ val &= 0xffff00ff; ++ val |= 0x00000100; ++ dw_pcie_writel_rc(pp, val, PCI_INTERRUPT_LINE); ++ ++ /* setup bus numbers */ ++ dw_pcie_readl_rc(pp, PCI_PRIMARY_BUS, &val); ++ val &= 0xff000000; ++ val |= 0x00010100; ++ dw_pcie_writel_rc(pp, val, PCI_PRIMARY_BUS); ++ ++ /* setup memory base, memory limit */ ++ membase = ((u32)pp->mem_base & 0xfff00000) >> 16; ++ memlimit = (config->mem_size + (u32)pp->mem_base) & 0xfff00000; ++ val = memlimit | membase; ++ dw_pcie_writel_rc(pp, val, PCI_MEMORY_BASE); ++ ++ /* setup command register */ ++ dw_pcie_readl_rc(pp, PCI_COMMAND, &val); ++ val &= 0xffff0000; ++ val |= PCI_COMMAND_IO | PCI_COMMAND_MEMORY | ++ PCI_COMMAND_MASTER | PCI_COMMAND_SERR; ++ dw_pcie_writel_rc(pp, val, PCI_COMMAND); ++} ++ ++MODULE_AUTHOR("Jingoo Han jg1.han@samsung.com"); ++MODULE_DESCRIPTION("Designware PCIe host controller driver"); ++MODULE_LICENSE("GPL v2"); diff --git a/src/patches/kernel/wandboard/imx/0012-pcie-backport-fixes.patch b/src/patches/kernel/wandboard/imx/0012-pcie-backport-fixes.patch new file mode 100644 index 0000000..aef6b05 --- /dev/null +++ b/src/patches/kernel/wandboard/imx/0012-pcie-backport-fixes.patch @@ -0,0 +1,17 @@ +--- a/drivers/pci/Kconfig ++++ b/drivers/pci/Kconfig +@@ -125,3 +125,5 @@ config PCI_IOAPIC + config PCI_LABEL + def_bool y if (DMI || ACPI) + select NLS ++ ++source "drivers/pci/host/Kconfig" +--- a/drivers/pci/Makefile ++++ b/drivers/pci/Makefile +@@ -67,3 +67,6 @@ obj-$(CONFIG_XEN_PCIDEV_FRONTEND) += xen + obj-$(CONFIG_OF) += of.o + + ccflags-$(CONFIG_PCI_DEBUG) := -DDEBUG ++ ++# PCI host controller drivers ++obj-y += host/ diff --git a/src/patches/kernel/wandboard/imx/0013-of-pci-Provide-support-for-parsing-PCI-DT-ranges-pro.patch b/src/patches/kernel/wandboard/imx/0013-of-pci-Provide-support-for-parsing-PCI-DT-ranges-pro.patch new file mode 100644 index 0000000..ab20f7f --- /dev/null +++ b/src/patches/kernel/wandboard/imx/0013-of-pci-Provide-support-for-parsing-PCI-DT-ranges-pro.patch @@ -0,0 +1,194 @@ +From: Andrew Murray Andrew.Murray@arm.com +Subject: [PATCH] of/pci: Provide support for parsing PCI DT ranges property + +This patch factors out common implementation patterns to reduce overall kernel +code and provide a means for host bridge drivers to directly obtain struct +resources from the DT's ranges property without relying on architecture specific +DT handling. This will make it easier to write archiecture independent host bridge +drivers and mitigate against further duplication of DT parsing code. + +This patch can be used in the following way: + + struct of_pci_range_parser parser; + struct of_pci_range range; + + if (of_pci_range_parser_init(&parser, np)) + ; //no ranges property + + for_each_of_pci_range(&parser, &range) { + + /* + directly access properties of the address range, e.g.: + range.pci_space, range.pci_addr, range.cpu_addr, + range.size, range.flags + + alternatively obtain a struct resource, e.g.: + struct resource res; + of_pci_range_to_resource(&range, np, &res); + */ + } + +Additionally the implementation takes care of adjacent ranges and merges them +into a single range (as was the case with powerpc and microblaze). + +Signed-off-by: Andrew Murray Andrew.Murray@arm.com +Signed-off-by: Liviu Dudau Liviu.Dudau@arm.com +Signed-off-by: Thomas Petazzoni thomas.petazzoni@free-electrons.com +Reviewed-by: Rob Herring rob.herring@calxeda.com +Tested-by: Thomas Petazzoni thomas.petazzoni@free-electrons.com +Tested-by: Linus Walleij linus.walleij@linaro.org +Tested-by: Jingoo Han jg1.han@samsung.com +Acked-by: Grant Likely grant.likely@secretlab.ca +Signed-off-by: Jason Cooper jason@lakedaemon.net +--- + drivers/of/address.c | 67 ++++++++++++++++++++++++++++++++++++++++++++++ + include/linux/of_address.h | 48 +++++++++++++++++++++++++++++++++ + 2 files changed, 115 insertions(+) + +--- a/drivers/of/address.c ++++ b/drivers/of/address.c +@@ -231,6 +231,73 @@ int of_pci_address_to_resource(struct de + return __of_address_to_resource(dev, addrp, size, flags, NULL, r); + } + EXPORT_SYMBOL_GPL(of_pci_address_to_resource); ++ ++int of_pci_range_parser_init(struct of_pci_range_parser *parser, ++ struct device_node *node) ++{ ++ const int na = 3, ns = 2; ++ int rlen; ++ ++ parser->node = node; ++ parser->pna = of_n_addr_cells(node); ++ parser->np = parser->pna + na + ns; ++ ++ parser->range = of_get_property(node, "ranges", &rlen); ++ if (parser->range == NULL) ++ return -ENOENT; ++ ++ parser->end = parser->range + rlen / sizeof(__be32); ++ ++ return 0; ++} ++EXPORT_SYMBOL_GPL(of_pci_range_parser_init); ++ ++struct of_pci_range *of_pci_range_parser_one(struct of_pci_range_parser *parser, ++ struct of_pci_range *range) ++{ ++ const int na = 3, ns = 2; ++ ++ if (!range) ++ return NULL; ++ ++ if (!parser->range || parser->range + parser->np > parser->end) ++ return NULL; ++ ++ range->pci_space = parser->range[0]; ++ range->flags = of_bus_pci_get_flags(parser->range); ++ range->pci_addr = of_read_number(parser->range + 1, ns); ++ range->cpu_addr = of_translate_address(parser->node, ++ parser->range + na); ++ range->size = of_read_number(parser->range + parser->pna + na, ns); ++ ++ parser->range += parser->np; ++ ++ /* Now consume following elements while they are contiguous */ ++ while (parser->range + parser->np <= parser->end) { ++ u32 flags, pci_space; ++ u64 pci_addr, cpu_addr, size; ++ ++ pci_space = be32_to_cpup(parser->range); ++ flags = of_bus_pci_get_flags(parser->range); ++ pci_addr = of_read_number(parser->range + 1, ns); ++ cpu_addr = of_translate_address(parser->node, ++ parser->range + na); ++ size = of_read_number(parser->range + parser->pna + na, ns); ++ ++ if (flags != range->flags) ++ break; ++ if (pci_addr != range->pci_addr + range->size || ++ cpu_addr != range->cpu_addr + range->size) ++ break; ++ ++ range->size += size; ++ parser->range += parser->np; ++ } ++ ++ return range; ++} ++EXPORT_SYMBOL_GPL(of_pci_range_parser_one); ++ + #endif /* CONFIG_PCI */ + + /* +--- a/include/linux/of_address.h ++++ b/include/linux/of_address.h +@@ -4,6 +4,36 @@ + #include <linux/errno.h> + #include <linux/of.h> + ++struct of_pci_range_parser { ++ struct device_node *node; ++ const __be32 *range; ++ const __be32 *end; ++ int np; ++ int pna; ++}; ++ ++struct of_pci_range { ++ u32 pci_space; ++ u64 pci_addr; ++ u64 cpu_addr; ++ u64 size; ++ u32 flags; ++}; ++ ++#define for_each_of_pci_range(parser, range) \ ++ for (; of_pci_range_parser_one(parser, range);) ++ ++static inline void of_pci_range_to_resource(struct of_pci_range *range, ++ struct device_node *np, ++ struct resource *res) ++{ ++ res->flags = range->flags; ++ res->start = range->cpu_addr; ++ res->end = range->cpu_addr + range->size - 1; ++ res->parent = res->child = res->sibling = NULL; ++ res->name = np->full_name; ++} ++ + #ifdef CONFIG_OF_ADDRESS + extern u64 of_translate_address(struct device_node *np, const __be32 *addr); + extern bool of_can_translate_address(struct device_node *dev); +@@ -27,6 +57,11 @@ static inline unsigned long pci_address_ + #define pci_address_to_pio pci_address_to_pio + #endif + ++extern int of_pci_range_parser_init(struct of_pci_range_parser *parser, ++ struct device_node *node); ++extern struct of_pci_range *of_pci_range_parser_one( ++ struct of_pci_range_parser *parser, ++ struct of_pci_range *range); + #else /* CONFIG_OF_ADDRESS */ + #ifndef of_address_to_resource + static inline int of_address_to_resource(struct device_node *dev, int index, +@@ -53,6 +88,19 @@ static inline const __be32 *of_get_addre + { + return NULL; + } ++ ++static inline int of_pci_range_parser_init(struct of_pci_range_parser *parser, ++ struct device_node *node) ++{ ++ return -1; ++} ++ ++static inline struct of_pci_range *of_pci_range_parser_one( ++ struct of_pci_range_parser *parser, ++ struct of_pci_range *range) ++{ ++ return NULL; ++} + #endif /* CONFIG_OF_ADDRESS */ + + diff --git a/src/patches/kernel/wandboard/imx/0014-ARM-imx6q-Add-PCIe-bits-to-GPR-syscon-definition.patch b/src/patches/kernel/wandboard/imx/0014-ARM-imx6q-Add-PCIe-bits-to-GPR-syscon-definition.patch new file mode 100644 index 0000000..19ca079 --- /dev/null +++ b/src/patches/kernel/wandboard/imx/0014-ARM-imx6q-Add-PCIe-bits-to-GPR-syscon-definition.patch @@ -0,0 +1,37 @@ +From: Sean Cross xobs@kosagi.com +Subject: [PATCH 1/2] ARM: imx6q: Add PCIe bits to GPR syscon definition + +PCIe requires additional bits be defined for GPR8 and GPR12. + +Signed-off-by: Sean Cross xobs@kosagi.com +Signed-off-by: Shawn Guo shawn.guo@linaro.org +Signed-off-by: Bjorn Helgaas bhelgaas@google.com +--- + include/linux/mfd/syscon/imx6q-iomuxc-gpr.h | 8 ++++++++ + 1 file changed, 8 insertions(+) + +--- a/include/linux/mfd/syscon/imx6q-iomuxc-gpr.h ++++ b/include/linux/mfd/syscon/imx6q-iomuxc-gpr.h +@@ -241,6 +241,12 @@ + + #define IMX6Q_GPR5_L2_CLK_STOP BIT(8) + ++#define IMX6Q_GPR8_TX_SWING_LOW (0x7f << 25) ++#define IMX6Q_GPR8_TX_SWING_FULL (0x7f << 18) ++#define IMX6Q_GPR8_TX_DEEMPH_GEN2_6DB (0x3f << 12) ++#define IMX6Q_GPR8_TX_DEEMPH_GEN2_3P5DB (0x3f << 6) ++#define IMX6Q_GPR8_TX_DEEMPH_GEN1 (0x3f << 0) ++ + #define IMX6Q_GPR9_TZASC2_BYP BIT(1) + #define IMX6Q_GPR9_TZASC1_BYP BIT(0) + +@@ -273,7 +279,9 @@ + #define IMX6Q_GPR12_ARMP_AHB_CLK_EN BIT(26) + #define IMX6Q_GPR12_ARMP_ATB_CLK_EN BIT(25) + #define IMX6Q_GPR12_ARMP_APB_CLK_EN BIT(24) ++#define IMX6Q_GPR12_DEVICE_TYPE (0xf << 12) + #define IMX6Q_GPR12_PCIE_CTL_2 BIT(10) ++#define IMX6Q_GPR12_LOS_LEVEL (0x1f << 4) + + #define IMX6Q_GPR13_SDMA_STOP_REQ BIT(30) + #define IMX6Q_GPR13_CAN2_STOP_REQ BIT(29) diff --git a/src/patches/kernel/wandboard/imx/0015-PCI-imx6-Add-support-for-i.MX6-PCIe-controller.patch b/src/patches/kernel/wandboard/imx/0015-PCI-imx6-Add-support-for-i.MX6-PCIe-controller.patch new file mode 100644 index 0000000..599cd0e --- /dev/null +++ b/src/patches/kernel/wandboard/imx/0015-PCI-imx6-Add-support-for-i.MX6-PCIe-controller.patch @@ -0,0 +1,616 @@ +Subject: [PATCH 2/2] PCI: imx6: Add support for i.MX6 PCIe controller +From: Sean Cross xobs@kosagi.com + +Add support for the PCIe port present on the i.MX6 family of controllers. +These use the Synopsis Designware core tied to their own PHY. + +Signed-off-by: Sean Cross xobs@kosagi.com +Signed-off-by: Shawn Guo shawn.guo@linaro.org +Signed-off-by: Bjorn Helgaas bhelgaas@google.com +Acked-by: Sascha Hauer s.hauer@pengutronix.de +--- + drivers/pci/host/Kconfig | 6 + + drivers/pci/host/Makefile | 1 + + drivers/pci/host/pci-imx6.c | 575 +++++++++++++++++++++ + 4 files changed, 588 insertions(+), 1 deletion(-) + create mode 100644 drivers/pci/host/pci-imx6.c + +--- /dev/null ++++ b/drivers/pci/host/Kconfig +@@ -0,0 +1,13 @@ ++menu "PCI host controller drivers" ++ depends on PCI ++ ++config PCIE_DW ++ bool ++ ++config PCI_IMX6 ++ bool "Freescale i.MX6 PCIe controller" ++ depends on SOC_IMX6Q ++ select PCIEPORTBUS ++ select PCIE_DW ++ ++endmenu +--- /dev/null ++++ b/drivers/pci/host/Makefile +@@ -0,0 +1,2 @@ ++obj-$(CONFIG_PCIE_DW) += pcie-designware.o ++obj-$(CONFIG_PCI_IMX6) += pci-imx6.o +--- /dev/null ++++ b/drivers/pci/host/pci-imx6.c +@@ -0,0 +1,575 @@ ++/* ++ * PCIe host controller driver for Freescale i.MX6 SoCs ++ * ++ * Copyright (C) 2013 Kosagi ++ * http://www.kosagi.com ++ * ++ * Author: Sean Cross xobs@kosagi.com ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ */ ++ ++#include <linux/clk.h> ++#include <linux/delay.h> ++#include <linux/gpio.h> ++#include <linux/kernel.h> ++#include <linux/mfd/syscon.h> ++#include <linux/mfd/syscon/imx6q-iomuxc-gpr.h> ++#include <linux/module.h> ++#include <linux/of_gpio.h> ++#include <linux/pci.h> ++#include <linux/platform_device.h> ++#include <linux/regmap.h> ++#include <linux/resource.h> ++#include <linux/signal.h> ++#include <linux/types.h> ++ ++#include "pcie-designware.h" ++ ++#define to_imx6_pcie(x) container_of(x, struct imx6_pcie, pp) ++ ++struct imx6_pcie { ++ int reset_gpio; ++ int power_on_gpio; ++ int wake_up_gpio; ++ int disable_gpio; ++ struct clk *lvds_gate; ++ struct clk *sata_ref_100m; ++ struct clk *pcie_ref_125m; ++ struct clk *pcie_axi; ++ struct pcie_port pp; ++ struct regmap *iomuxc_gpr; ++ void __iomem *mem_base; ++}; ++ ++/* PCIe Port Logic registers (memory-mapped) */ ++#define PL_OFFSET 0x700 ++#define PCIE_PHY_DEBUG_R0 (PL_OFFSET + 0x28) ++#define PCIE_PHY_DEBUG_R1 (PL_OFFSET + 0x2c) ++ ++#define PCIE_PHY_CTRL (PL_OFFSET + 0x114) ++#define PCIE_PHY_CTRL_DATA_LOC 0 ++#define PCIE_PHY_CTRL_CAP_ADR_LOC 16 ++#define PCIE_PHY_CTRL_CAP_DAT_LOC 17 ++#define PCIE_PHY_CTRL_WR_LOC 18 ++#define PCIE_PHY_CTRL_RD_LOC 19 ++ ++#define PCIE_PHY_STAT (PL_OFFSET + 0x110) ++#define PCIE_PHY_STAT_ACK_LOC 16 ++ ++/* PHY registers (not memory-mapped) */ ++#define PCIE_PHY_RX_ASIC_OUT 0x100D ++ ++#define PHY_RX_OVRD_IN_LO 0x1005 ++#define PHY_RX_OVRD_IN_LO_RX_DATA_EN (1 << 5) ++#define PHY_RX_OVRD_IN_LO_RX_PLL_EN (1 << 3) ++ ++static int pcie_phy_poll_ack(void __iomem *dbi_base, int exp_val) ++{ ++ u32 val; ++ u32 max_iterations = 10; ++ u32 wait_counter = 0; ++ ++ do { ++ val = readl(dbi_base + PCIE_PHY_STAT); ++ val = (val >> PCIE_PHY_STAT_ACK_LOC) & 0x1; ++ wait_counter++; ++ ++ if (val == exp_val) ++ return 0; ++ ++ udelay(1); ++ } while (wait_counter < max_iterations); ++ ++ return -ETIMEDOUT; ++} ++ ++static int pcie_phy_wait_ack(void __iomem *dbi_base, int addr) ++{ ++ u32 val; ++ int ret; ++ ++ val = addr << PCIE_PHY_CTRL_DATA_LOC; ++ writel(val, dbi_base + PCIE_PHY_CTRL); ++ ++ val |= (0x1 << PCIE_PHY_CTRL_CAP_ADR_LOC); ++ writel(val, dbi_base + PCIE_PHY_CTRL); ++ ++ ret = pcie_phy_poll_ack(dbi_base, 1); ++ if (ret) ++ return ret; ++ ++ val = addr << PCIE_PHY_CTRL_DATA_LOC; ++ writel(val, dbi_base + PCIE_PHY_CTRL); ++ ++ ret = pcie_phy_poll_ack(dbi_base, 0); ++ if (ret) ++ return ret; ++ ++ return 0; ++} ++ ++/* Read from the 16-bit PCIe PHY control registers (not memory-mapped) */ ++static int pcie_phy_read(void __iomem *dbi_base, int addr , int *data) ++{ ++ u32 val, phy_ctl; ++ int ret; ++ ++ ret = pcie_phy_wait_ack(dbi_base, addr); ++ if (ret) ++ return ret; ++ ++ /* assert Read signal */ ++ phy_ctl = 0x1 << PCIE_PHY_CTRL_RD_LOC; ++ writel(phy_ctl, dbi_base + PCIE_PHY_CTRL); ++ ++ ret = pcie_phy_poll_ack(dbi_base, 1); ++ if (ret) ++ return ret; ++ ++ val = readl(dbi_base + PCIE_PHY_STAT); ++ *data = val & 0xffff; ++ ++ /* deassert Read signal */ ++ writel(0x00, dbi_base + PCIE_PHY_CTRL); ++ ++ ret = pcie_phy_poll_ack(dbi_base, 0); ++ if (ret) ++ return ret; ++ ++ return 0; ++} ++ ++static int pcie_phy_write(void __iomem *dbi_base, int addr, int data) ++{ ++ u32 var; ++ int ret; ++ ++ /* write addr */ ++ /* cap addr */ ++ ret = pcie_phy_wait_ack(dbi_base, addr); ++ if (ret) ++ return ret; ++ ++ var = data << PCIE_PHY_CTRL_DATA_LOC; ++ writel(var, dbi_base + PCIE_PHY_CTRL); ++ ++ /* capture data */ ++ var |= (0x1 << PCIE_PHY_CTRL_CAP_DAT_LOC); ++ writel(var, dbi_base + PCIE_PHY_CTRL); ++ ++ ret = pcie_phy_poll_ack(dbi_base, 1); ++ if (ret) ++ return ret; ++ ++ /* deassert cap data */ ++ var = data << PCIE_PHY_CTRL_DATA_LOC; ++ writel(var, dbi_base + PCIE_PHY_CTRL); ++ ++ /* wait for ack de-assertion */ ++ ret = pcie_phy_poll_ack(dbi_base, 0); ++ if (ret) ++ return ret; ++ ++ /* assert wr signal */ ++ var = 0x1 << PCIE_PHY_CTRL_WR_LOC; ++ writel(var, dbi_base + PCIE_PHY_CTRL); ++ ++ /* wait for ack */ ++ ret = pcie_phy_poll_ack(dbi_base, 1); ++ if (ret) ++ return ret; ++ ++ /* deassert wr signal */ ++ var = data << PCIE_PHY_CTRL_DATA_LOC; ++ writel(var, dbi_base + PCIE_PHY_CTRL); ++ ++ /* wait for ack de-assertion */ ++ ret = pcie_phy_poll_ack(dbi_base, 0); ++ if (ret) ++ return ret; ++ ++ writel(0x0, dbi_base + PCIE_PHY_CTRL); ++ ++ return 0; ++} ++ ++/* Added for PCI abort handling */ ++static int imx6q_pcie_abort_handler(unsigned long addr, ++ unsigned int fsr, struct pt_regs *regs) ++{ ++ /* ++ * If it was an imprecise abort, then we need to correct the ++ * return address to be _after_ the instruction. ++ */ ++ if (fsr & (1 << 10)) ++ regs->ARM_pc += 4; ++ return 0; ++} ++ ++static int imx6_pcie_assert_core_reset(struct pcie_port *pp) ++{ ++ struct imx6_pcie *imx6_pcie = to_imx6_pcie(pp); ++ ++ regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR1, ++ IMX6Q_GPR1_PCIE_TEST_PD, 1 << 18); ++ regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR12, ++ IMX6Q_GPR12_PCIE_CTL_2, 1 << 10); ++ regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR1, ++ IMX6Q_GPR1_PCIE_REF_CLK_EN, 0 << 16); ++ ++ gpio_set_value(imx6_pcie->reset_gpio, 0); ++ msleep(100); ++ gpio_set_value(imx6_pcie->reset_gpio, 1); ++ ++ return 0; ++} ++ ++static int imx6_pcie_deassert_core_reset(struct pcie_port *pp) ++{ ++ struct imx6_pcie *imx6_pcie = to_imx6_pcie(pp); ++ int ret; ++ ++ if (gpio_is_valid(imx6_pcie->power_on_gpio)) ++ gpio_set_value(imx6_pcie->power_on_gpio, 1); ++ ++ regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR1, ++ IMX6Q_GPR1_PCIE_TEST_PD, 0 << 18); ++ regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR1, ++ IMX6Q_GPR1_PCIE_REF_CLK_EN, 1 << 16); ++ ++ ret = clk_prepare_enable(imx6_pcie->sata_ref_100m); ++ if (ret) { ++ dev_err(pp->dev, "unable to enable sata_ref_100m\n"); ++ goto err_sata_ref; ++ } ++ ++ ret = clk_prepare_enable(imx6_pcie->pcie_ref_125m); ++ if (ret) { ++ dev_err(pp->dev, "unable to enable pcie_ref_125m\n"); ++ goto err_pcie_ref; ++ } ++ ++ ret = clk_prepare_enable(imx6_pcie->lvds_gate); ++ if (ret) { ++ dev_err(pp->dev, "unable to enable lvds_gate\n"); ++ goto err_lvds_gate; ++ } ++ ++ ret = clk_prepare_enable(imx6_pcie->pcie_axi); ++ if (ret) { ++ dev_err(pp->dev, "unable to enable pcie_axi\n"); ++ goto err_pcie_axi; ++ } ++ ++ /* allow the clocks to stabilize */ ++ usleep_range(200, 500); ++ ++ return 0; ++ ++err_pcie_axi: ++ clk_disable_unprepare(imx6_pcie->lvds_gate); ++err_lvds_gate: ++ clk_disable_unprepare(imx6_pcie->pcie_ref_125m); ++err_pcie_ref: ++ clk_disable_unprepare(imx6_pcie->sata_ref_100m); ++err_sata_ref: ++ return ret; ++ ++} ++ ++static void imx6_pcie_init_phy(struct pcie_port *pp) ++{ ++ struct imx6_pcie *imx6_pcie = to_imx6_pcie(pp); ++ ++ regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR12, ++ IMX6Q_GPR12_PCIE_CTL_2, 0 << 10); ++ ++ /* configure constant input signal to the pcie ctrl and phy */ ++ regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR12, ++ IMX6Q_GPR12_DEVICE_TYPE, PCI_EXP_TYPE_ROOT_PORT << 12); ++ regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR12, ++ IMX6Q_GPR12_LOS_LEVEL, 9 << 4); ++ ++ regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR8, ++ IMX6Q_GPR8_TX_DEEMPH_GEN1, 0 << 0); ++ regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR8, ++ IMX6Q_GPR8_TX_DEEMPH_GEN2_3P5DB, 0 << 6); ++ regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR8, ++ IMX6Q_GPR8_TX_DEEMPH_GEN2_6DB, 20 << 12); ++ regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR8, ++ IMX6Q_GPR8_TX_SWING_FULL, 127 << 18); ++ regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR8, ++ IMX6Q_GPR8_TX_SWING_LOW, 127 << 25); ++} ++ ++static void imx6_pcie_host_init(struct pcie_port *pp) ++{ ++ int count = 0; ++ struct imx6_pcie *imx6_pcie = to_imx6_pcie(pp); ++ ++ imx6_pcie_assert_core_reset(pp); ++ ++ imx6_pcie_init_phy(pp); ++ ++ imx6_pcie_deassert_core_reset(pp); ++ ++ dw_pcie_setup_rc(pp); ++ ++ regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR12, ++ IMX6Q_GPR12_PCIE_CTL_2, 1 << 10); ++ ++ while (!dw_pcie_link_up(pp)) { ++ usleep_range(100, 1000); ++ count++; ++ if (count >= 10) { ++ dev_err(pp->dev, "phy link never came up\n"); ++ dev_dbg(pp->dev, ++ "DEBUG_R0: 0x%08x, DEBUG_R1: 0x%08x\n", ++ readl(pp->dbi_base + PCIE_PHY_DEBUG_R0), ++ readl(pp->dbi_base + PCIE_PHY_DEBUG_R1)); ++ break; ++ } ++ } ++ ++ return; ++} ++ ++static int imx6_pcie_link_up(struct pcie_port *pp) ++{ ++ u32 rc, ltssm, rx_valid, temp; ++ ++ /* link is debug bit 36, debug register 1 starts at bit 32 */ ++ rc = readl(pp->dbi_base + PCIE_PHY_DEBUG_R1) & (0x1 << (36 - 32)); ++ if (rc) ++ return -EAGAIN; ++ ++ /* ++ * From L0, initiate MAC entry to gen2 if EP/RC supports gen2. ++ * Wait 2ms (LTSSM timeout is 24ms, PHY lock is ~5us in gen2). ++ * If (MAC/LTSSM.state == Recovery.RcvrLock) ++ * && (PHY/rx_valid==0) then pulse PHY/rx_reset. Transition ++ * to gen2 is stuck ++ */ ++ pcie_phy_read(pp->dbi_base, PCIE_PHY_RX_ASIC_OUT, &rx_valid); ++ ltssm = readl(pp->dbi_base + PCIE_PHY_DEBUG_R0) & 0x3F; ++ ++ if (rx_valid & 0x01) ++ return 0; ++ ++ if (ltssm != 0x0d) ++ return 0; ++ ++ dev_err(pp->dev, "transition to gen2 is stuck, reset PHY!\n"); ++ ++ pcie_phy_read(pp->dbi_base, ++ PHY_RX_OVRD_IN_LO, &temp); ++ temp |= (PHY_RX_OVRD_IN_LO_RX_DATA_EN ++ | PHY_RX_OVRD_IN_LO_RX_PLL_EN); ++ pcie_phy_write(pp->dbi_base, ++ PHY_RX_OVRD_IN_LO, temp); ++ ++ usleep_range(2000, 3000); ++ ++ pcie_phy_read(pp->dbi_base, ++ PHY_RX_OVRD_IN_LO, &temp); ++ temp &= ~(PHY_RX_OVRD_IN_LO_RX_DATA_EN ++ | PHY_RX_OVRD_IN_LO_RX_PLL_EN); ++ pcie_phy_write(pp->dbi_base, ++ PHY_RX_OVRD_IN_LO, temp); ++ ++ return 0; ++} ++ ++static struct pcie_host_ops imx6_pcie_host_ops = { ++ .link_up = imx6_pcie_link_up, ++ .host_init = imx6_pcie_host_init, ++}; ++ ++static int imx6_add_pcie_port(struct pcie_port *pp, ++ struct platform_device *pdev) ++{ ++ int ret; ++ ++ pp->irq = platform_get_irq(pdev, 0); ++ if (!pp->irq) { ++ dev_err(&pdev->dev, "failed to get irq\n"); ++ return -ENODEV; ++ } ++ ++ pp->root_bus_nr = -1; ++ pp->ops = &imx6_pcie_host_ops; ++ ++ spin_lock_init(&pp->conf_lock); ++ ret = dw_pcie_host_init(pp); ++ if (ret) { ++ dev_err(&pdev->dev, "failed to initialize host\n"); ++ return ret; ++ } ++ ++ return 0; ++} ++ ++static int __init imx6_pcie_probe(struct platform_device *pdev) ++{ ++ struct imx6_pcie *imx6_pcie; ++ struct pcie_port *pp; ++ struct device_node *np = pdev->dev.of_node; ++ struct resource *dbi_base; ++ int ret; ++ ++ imx6_pcie = devm_kzalloc(&pdev->dev, sizeof(*imx6_pcie), GFP_KERNEL); ++ if (!imx6_pcie) ++ return -ENOMEM; ++ ++ pp = &imx6_pcie->pp; ++ pp->dev = &pdev->dev; ++ ++ /* Added for PCI abort handling */ ++ hook_fault_code(16 + 6, imx6q_pcie_abort_handler, SIGBUS, 0, ++ "imprecise external abort"); ++ ++ dbi_base = platform_get_resource(pdev, IORESOURCE_MEM, 0); ++ if (!dbi_base) { ++ dev_err(&pdev->dev, "dbi_base memory resource not found\n"); ++ return -ENODEV; ++ } ++ ++ pp->dbi_base = devm_ioremap_resource(&pdev->dev, dbi_base); ++ if (IS_ERR(pp->dbi_base)) { ++ dev_err(&pdev->dev, "unable to remap dbi_base\n"); ++ ret = PTR_ERR(pp->dbi_base); ++ goto err; ++ } ++ ++ /* Fetch GPIOs */ ++ imx6_pcie->reset_gpio = of_get_named_gpio(np, "reset-gpio", 0); ++ if (!gpio_is_valid(imx6_pcie->reset_gpio)) { ++ dev_err(&pdev->dev, "no reset-gpio defined\n"); ++ ret = -ENODEV; ++ } ++ ret = devm_gpio_request_one(&pdev->dev, ++ imx6_pcie->reset_gpio, ++ GPIOF_OUT_INIT_LOW, ++ "PCIe reset"); ++ if (ret) { ++ dev_err(&pdev->dev, "unable to get reset gpio\n"); ++ goto err; ++ } ++ ++ imx6_pcie->power_on_gpio = of_get_named_gpio(np, "power-on-gpio", 0); ++ if (gpio_is_valid(imx6_pcie->power_on_gpio)) { ++ ret = devm_gpio_request_one(&pdev->dev, ++ imx6_pcie->power_on_gpio, ++ GPIOF_OUT_INIT_LOW, ++ "PCIe power enable"); ++ if (ret) { ++ dev_err(&pdev->dev, "unable to get power-on gpio\n"); ++ goto err; ++ } ++ } ++ ++ imx6_pcie->wake_up_gpio = of_get_named_gpio(np, "wake-up-gpio", 0); ++ if (gpio_is_valid(imx6_pcie->wake_up_gpio)) { ++ ret = devm_gpio_request_one(&pdev->dev, ++ imx6_pcie->wake_up_gpio, ++ GPIOF_IN, ++ "PCIe wake up"); ++ if (ret) { ++ dev_err(&pdev->dev, "unable to get wake-up gpio\n"); ++ goto err; ++ } ++ } ++ ++ imx6_pcie->disable_gpio = of_get_named_gpio(np, "disable-gpio", 0); ++ if (gpio_is_valid(imx6_pcie->disable_gpio)) { ++ ret = devm_gpio_request_one(&pdev->dev, ++ imx6_pcie->disable_gpio, ++ GPIOF_OUT_INIT_HIGH, ++ "PCIe disable endpoint"); ++ if (ret) { ++ dev_err(&pdev->dev, "unable to get disable-ep gpio\n"); ++ goto err; ++ } ++ } ++ ++ /* Fetch clocks */ ++ imx6_pcie->lvds_gate = devm_clk_get(&pdev->dev, "lvds_gate"); ++ if (IS_ERR(imx6_pcie->lvds_gate)) { ++ dev_err(&pdev->dev, ++ "lvds_gate clock select missing or invalid\n"); ++ ret = PTR_ERR(imx6_pcie->lvds_gate); ++ goto err; ++ } ++ ++ imx6_pcie->sata_ref_100m = devm_clk_get(&pdev->dev, "sata_ref_100m"); ++ if (IS_ERR(imx6_pcie->sata_ref_100m)) { ++ dev_err(&pdev->dev, ++ "sata_ref_100m clock source missing or invalid\n"); ++ ret = PTR_ERR(imx6_pcie->sata_ref_100m); ++ goto err; ++ } ++ ++ imx6_pcie->pcie_ref_125m = devm_clk_get(&pdev->dev, "pcie_ref_125m"); ++ if (IS_ERR(imx6_pcie->pcie_ref_125m)) { ++ dev_err(&pdev->dev, ++ "pcie_ref_125m clock source missing or invalid\n"); ++ ret = PTR_ERR(imx6_pcie->pcie_ref_125m); ++ goto err; ++ } ++ ++ imx6_pcie->pcie_axi = devm_clk_get(&pdev->dev, "pcie_axi"); ++ if (IS_ERR(imx6_pcie->pcie_axi)) { ++ dev_err(&pdev->dev, ++ "pcie_axi clock source missing or invalid\n"); ++ ret = PTR_ERR(imx6_pcie->pcie_axi); ++ goto err; ++ } ++ ++ /* Grab GPR config register range */ ++ imx6_pcie->iomuxc_gpr = ++ syscon_regmap_lookup_by_compatible("fsl,imx6q-iomuxc-gpr"); ++ if (IS_ERR(imx6_pcie->iomuxc_gpr)) { ++ dev_err(&pdev->dev, "unable to find iomuxc registers\n"); ++ ret = PTR_ERR(imx6_pcie->iomuxc_gpr); ++ goto err; ++ } ++ ++ ret = imx6_add_pcie_port(pp, pdev); ++ if (ret < 0) ++ goto err; ++ ++ platform_set_drvdata(pdev, imx6_pcie); ++ return 0; ++ ++err: ++ return ret; ++} ++ ++static const struct of_device_id imx6_pcie_of_match[] = { ++ { .compatible = "fsl,imx6q-pcie", }, ++ {}, ++}; ++MODULE_DEVICE_TABLE(of, imx6_pcie_of_match); ++ ++static struct platform_driver imx6_pcie_driver = { ++ .driver = { ++ .name = "imx6q-pcie", ++ .owner = THIS_MODULE, ++ .of_match_table = of_match_ptr(imx6_pcie_of_match), ++ }, ++}; ++ ++/* Freescale PCIe driver does not allow module unload */ ++ ++static int __init imx6_pcie_init(void) ++{ ++ return platform_driver_probe(&imx6_pcie_driver, imx6_pcie_probe); ++} ++module_init(imx6_pcie_init); ++ ++MODULE_AUTHOR("Sean Cross xobs@kosagi.com"); ++MODULE_DESCRIPTION("Freescale i.MX6 PCIe host controller driver"); ++MODULE_LICENSE("GPL v2"); diff --git a/src/patches/kernel/wandboard/imx/0016-imx6-pci-tweaks.patch b/src/patches/kernel/wandboard/imx/0016-imx6-pci-tweaks.patch new file mode 100644 index 0000000..eda007e --- /dev/null +++ b/src/patches/kernel/wandboard/imx/0016-imx6-pci-tweaks.patch @@ -0,0 +1,24 @@ +--- a/drivers/pci/host/pci-imx6.c ++++ b/drivers/pci/host/pci-imx6.c +@@ -200,12 +200,6 @@ static int pcie_phy_write(void __iomem * + static int imx6q_pcie_abort_handler(unsigned long addr, + unsigned int fsr, struct pt_regs *regs) + { +- /* +- * If it was an imprecise abort, then we need to correct the +- * return address to be _after_ the instruction. +- */ +- if (fsr & (1 << 10)) +- regs->ARM_pc += 4; + return 0; + } + +@@ -322,7 +316,7 @@ static void imx6_pcie_host_init(struct p + IMX6Q_GPR12_PCIE_CTL_2, 1 << 10); + + while (!dw_pcie_link_up(pp)) { +- usleep_range(100, 1000); ++ usleep_range(2000, 3000); + count++; + if (count >= 10) { + dev_err(pp->dev, "phy link never came up\n"); diff --git a/src/patches/kernel/wandboard/imx/0017-ARM-imx-Add-LVDS-general-purpose-clocks-to-i.MX6Q.patch b/src/patches/kernel/wandboard/imx/0017-ARM-imx-Add-LVDS-general-purpose-clocks-to-i.MX6Q.patch new file mode 100644 index 0000000..3f1b6eb --- /dev/null +++ b/src/patches/kernel/wandboard/imx/0017-ARM-imx-Add-LVDS-general-purpose-clocks-to-i.MX6Q.patch @@ -0,0 +1,70 @@ +From: Sean Cross xobs@kosagi.com +Subject: [PATCH 1/3] ARM: imx: Add LVDS general-purpose clocks to i.MX6Q + +The i.MX6 has two general-purpose LVDS clocks that can be driven +from a variety of sources. This patch adds a mux and a gate for +both of these clocks. + +Signed-off-by: Sean Cross xobs@kosagi.com +Signed-off-by: Shawn Guo shawn.guo@linaro.org +--- + .../devicetree/bindings/clock/imx6q-clock.txt | 4 ++++ + arch/arm/mach-imx/clk-imx6q.c | 20 +++++++++++++++++++- + 2 files changed, 23 insertions(+), 1 deletion(-) + +--- a/Documentation/devicetree/bindings/clock/imx6q-clock.txt ++++ b/Documentation/devicetree/bindings/clock/imx6q-clock.txt +@@ -208,6 +208,10 @@ clocks and IDs. + pll4_post_div 193 + pll5_post_div 194 + pll5_video_div 195 ++ lvds1_sel 204 ++ lvds2_sel 205 ++ lvds1_gate 206 ++ lvds2_gate 207 + + Examples: + +--- a/arch/arm/mach-imx/clk-imx6q.c ++++ b/arch/arm/mach-imx/clk-imx6q.c +@@ -205,6 +205,11 @@ static const char *vpu_axi_sels[] = { "a + static const char *cko1_sels[] = { "pll3_usb_otg", "pll2_bus", "pll1_sys", "pll5_video_div", + "dummy", "axi", "enfc", "ipu1_di0", "ipu1_di1", "ipu2_di0", + "ipu2_di1", "ahb", "ipg", "ipg_per", "ckil", "pll4_post_div", }; ++static const char *lvds_sels[] = { ++ "dummy", "dummy", "dummy", "dummy", "dummy", "dummy", ++ "pll4_audio", "pll5_video", "pll8_mlb", "enet_ref", ++ "pcie_ref", "sata_ref", ++}; + + enum mx6q_clks { + dummy, ckil, ckih, osc, pll2_pfd0_352m, pll2_pfd1_594m, pll2_pfd2_396m, +@@ -238,7 +243,8 @@ enum mx6q_clks { + pll4_audio, pll5_video, pll8_mlb, pll7_usb_host, pll6_enet, ssi1_ipg, + ssi2_ipg, ssi3_ipg, rom, usbphy1, usbphy2, ldb_di0_div_3_5, ldb_di1_div_3_5, + sata_ref, sata_ref_100m, pcie_ref, pcie_ref_125m, enet_ref, usbphy1_gate, +- usbphy2_gate, pll4_post_div, pll5_post_div, pll5_video_div, clk_max ++ usbphy2_gate, pll4_post_div, pll5_post_div, pll5_video_div, ++ lvds1_sel, lvds2_sel, lvds1_gate, lvds2_gate, clk_max + }; + + static struct clk *clk[clk_max]; +@@ -340,6 +346,18 @@ int __init mx6q_clocks_init(void) + base + 0xe0, 0, 2, 0, clk_enet_ref_table, + &imx_ccm_lock); + ++ clk[lvds1_sel] = imx_clk_mux("lvds1_sel", base + 0x160, 0, 5, lvds_sels, ARRAY_SIZE(lvds_sels)); ++ clk[lvds2_sel] = imx_clk_mux("lvds2_sel", base + 0x160, 5, 5, lvds_sels, ARRAY_SIZE(lvds_sels)); ++ ++ /* ++ * lvds1_gate and lvds2_gate are pseudo-gates. Both can be ++ * independently configured as clock inputs or outputs. We treat ++ * the "output_enable" bit as a gate, even though it's really just ++ * enabling clock output. ++ */ ++ clk[lvds1_gate] = imx_clk_gate("lvds1_gate", "dummy", base + 0x160, 10); ++ clk[lvds2_gate] = imx_clk_gate("lvds2_gate", "dummy", base + 0x160, 11); ++ + /* name parent_name reg idx */ + clk[pll2_pfd0_352m] = imx_clk_pfd("pll2_pfd0_352m", "pll2_bus", base + 0x100, 0); + clk[pll2_pfd1_594m] = imx_clk_pfd("pll2_pfd1_594m", "pll2_bus", base + 0x100, 1); diff --git a/src/patches/kernel/wandboard/imx/0018-ARM-imx6q-clock-and-Kconfig-update-for-PCIe-support.patch b/src/patches/kernel/wandboard/imx/0018-ARM-imx6q-clock-and-Kconfig-update-for-PCIe-support.patch new file mode 100644 index 0000000..25f207a --- /dev/null +++ b/src/patches/kernel/wandboard/imx/0018-ARM-imx6q-clock-and-Kconfig-update-for-PCIe-support.patch @@ -0,0 +1,38 @@ +From 4f6723e8ff497e35c8f2fb20886fccc533c58cdb Mon Sep 17 00:00:00 2001 +From: Sean Cross xobs@kosagi.com +Date: Thu, 26 Sep 2013 10:45:35 +0800 +Subject: [PATCH] ARM: imx6q: clock and Kconfig update for PCIe support + +Update imx6q clock initialization and Kconfig for PCIe support. + +Signed-off-by: Sean Cross xobs@kosagi.com +Signed-off-by: Shawn Guo shawn.guo@linaro.org +--- + arch/arm/mach-imx/Kconfig | 2 ++ + arch/arm/mach-imx/clk-imx6q.c | 4 ++++ + 2 files changed, 6 insertions(+) + +--- a/arch/arm/mach-imx/Kconfig ++++ b/arch/arm/mach-imx/Kconfig +@@ -806,6 +806,8 @@ config SOC_IMX6Q + select HAVE_IMX_SRC + select HAVE_SMP + select MFD_SYSCON ++ select MIGHT_HAVE_PCI ++ select PCI_DOMAINS if PCI + select PINCTRL + select PINCTRL_IMX6Q + select PL310_ERRATA_588369 if CACHE_PL310 +--- a/arch/arm/mach-imx/clk-imx6q.c ++++ b/arch/arm/mach-imx/clk-imx6q.c +@@ -586,6 +586,10 @@ int __init mx6q_clocks_init(void) + clk_prepare_enable(clk[usbphy2_gate]); + } + ++ /* All existing boards with PCIe use LVDS1 */ ++ if (IS_ENABLED(CONFIG_PCI_IMX6)) ++ clk_set_parent(clk[lvds1_sel], clk[sata_ref]); ++ + /* Set initial power mode */ + imx6q_set_lpm(WAIT_CLOCKED); + diff --git a/src/patches/linux-2.6-silence-acpi-blacklist.patch b/src/patches/linux-2.6-silence-acpi-blacklist.patch new file mode 100644 index 0000000..c5997bb --- /dev/null +++ b/src/patches/linux-2.6-silence-acpi-blacklist.patch @@ -0,0 +1,25 @@ +diff -up linux-2.6.26.noarch/drivers/acpi/blacklist.c.jx linux-2.6.26.noarch/drivers/acpi/blacklist.c +--- linux-2.6.26.noarch/drivers/acpi/blacklist.c.jx 2008-07-13 17:51:29.000000000 -0400 ++++ linux-2.6.26.noarch/drivers/acpi/blacklist.c 2008-08-12 14:21:39.000000000 -0400 +@@ -81,18 +81,18 @@ static int __init blacklist_by_year(void + + /* Doesn't exist? Likely an old system */ + if (!dmi_get_date(DMI_BIOS_DATE, &year, NULL, NULL)) { +- printk(KERN_ERR PREFIX "no DMI BIOS year, " ++ printk(KERN_INFO PREFIX "no DMI BIOS year, " + "acpi=force is required to enable ACPI\n" ); + return 1; + } + /* 0? Likely a buggy new BIOS */ + if (year == 0) { +- printk(KERN_ERR PREFIX "DMI BIOS year==0, " ++ printk(KERN_INFO PREFIX "DMI BIOS year==0, " + "assuming ACPI-capable machine\n" ); + return 0; + } + if (year < CONFIG_ACPI_BLACKLIST_YEAR) { +- printk(KERN_ERR PREFIX "BIOS age (%d) fails cutoff (%d), " ++ printk(KERN_INFO PREFIX "BIOS age (%d) fails cutoff (%d), " + "acpi=force is required to enable ACPI\n", + year, CONFIG_ACPI_BLACKLIST_YEAR); + return 1; diff --git a/src/patches/linux-3.10-apu_leds.patch b/src/patches/linux-3.10-apu_leds.patch new file mode 100644 index 0000000..53d389a --- /dev/null +++ b/src/patches/linux-3.10-apu_leds.patch @@ -0,0 +1,215 @@ +diff -Naur linux-3.10.33.org/arch/x86/Kconfig linux-3.10.33/arch/x86/Kconfig +--- linux-3.10.33.org/arch/x86/Kconfig 2014-03-07 06:58:45.000000000 +0100 ++++ linux-3.10.33/arch/x86/Kconfig 2014-03-17 17:02:46.703135023 +0100 +@@ -2199,6 +2199,12 @@ + - AC adapter status updates + - Battery status updates + ++config APULED ++ bool "PCEngines APU Led Support" ++ depends on DMI ++ ---help--- ++ This option enables system support for the PCEngines APU. ++ + config ALIX + bool "PCEngines ALIX System Support (LED setup)" + select GPIOLIB +diff -Naur linux-3.10.33.org/arch/x86/platform/apu/apu-led.c linux-3.10.33/arch/x86/platform/apu/apu-led.c +--- linux-3.10.33.org/arch/x86/platform/apu/apu-led.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.10.33/arch/x86/platform/apu/apu-led.c 2014-03-17 17:00:36.187188456 +0100 +@@ -0,0 +1,181 @@ ++/* ++ * LEDs driver for PCEngines apu ++ * ++ * Copyright (C) 2013 Christian Herzog daduke@daduke.org, based on ++ * Petr Leibman's leds-alix ++ * Hardware presence check added by Arne Fitzenreiter arne_f@ipfire.org ++ * Based on leds-wrap.c ++ * Hardware info taken from http://www.dpie.com/manuals/miniboards/kontron/KTD-S0043-0_KTA55_SoftwareGui... ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ */ ++ ++#include <linux/kernel.h> ++#include <linux/module.h> ++#include <linux/init.h> ++#include <linux/platform_device.h> ++#include <linux/leds.h> ++#include <linux/err.h> ++#include <asm/io.h> ++#include <linux/dmi.h> ++ ++#define DRVNAME "apu-led" ++#define BASEADDR (0xFED801BD) ++#define LEDON (0x8) ++#define LEDOFF (0xC8) ++ ++static struct platform_device *pdev; ++unsigned int *p1; ++unsigned int *p2; ++unsigned int *p3; ++ ++static void apu_led_set_1(struct led_classdev *led_cdev, ++ enum led_brightness value) { ++ if (value) ++ iowrite8(LEDON, p1); ++ else ++ iowrite8(LEDOFF, p1); ++} ++ ++static void apu_led_set_2(struct led_classdev *led_cdev, ++ enum led_brightness value) { ++ if (value) ++ iowrite8(LEDON, p2); ++ else ++ iowrite8(LEDOFF, p2); ++} ++ ++static void apu_led_set_3(struct led_classdev *led_cdev, ++ enum led_brightness value) { ++ if (value) ++ iowrite8(LEDON, p3); ++ else ++ iowrite8(LEDOFF, p3); ++} ++ ++static struct led_classdev apu_led_1 = { ++ .name = "apu:1", ++ .brightness_set = apu_led_set_1, ++}; ++ ++static struct led_classdev apu_led_2 = { ++ .name = "apu:2", ++ .brightness_set = apu_led_set_2, ++}; ++ ++static struct led_classdev apu_led_3 = { ++ .name = "apu:3", ++ .brightness_set = apu_led_set_3, ++}; ++ ++ ++#ifdef CONFIG_PM ++static int apu_led_suspend(struct platform_device *dev, ++ pm_message_t state) ++{ ++ led_classdev_suspend(&apu_led_1); ++ led_classdev_suspend(&apu_led_2); ++ led_classdev_suspend(&apu_led_3); ++ return 0; ++} ++ ++static int apu_led_resume(struct platform_device *dev) ++{ ++ led_classdev_resume(&apu_led_1); ++ led_classdev_resume(&apu_led_2); ++ led_classdev_resume(&apu_led_3); ++ return 0; ++} ++#else ++#define apu_led_suspend NULL ++#define apu_led_resume NULL ++#endif ++ ++static int apu_led_probe(struct platform_device *pdev) ++{ ++ int ret; ++ ++ ret = led_classdev_register(&pdev->dev, &apu_led_1); ++ if (ret == 0) ++ { ++ ret = led_classdev_register(&pdev->dev, &apu_led_2); ++ if (ret >= 0) ++ { ++ ret = led_classdev_register(&pdev->dev, &apu_led_3); ++ if (ret < 0) ++ led_classdev_unregister(&apu_led_2); ++ } ++ if (ret < 0) ++ led_classdev_unregister(&apu_led_1); ++ } ++ return ret; ++} ++ ++static int apu_led_remove(struct platform_device *pdev) ++{ ++ led_classdev_unregister(&apu_led_1); ++ led_classdev_unregister(&apu_led_2); ++ led_classdev_unregister(&apu_led_3); ++ return 0; ++} ++ ++static struct platform_driver apu_led_driver = { ++ .probe = apu_led_probe, ++ .remove = apu_led_remove, ++ .suspend = apu_led_suspend, ++ .resume = apu_led_resume, ++ .driver = { ++ .name = DRVNAME, ++ .owner = THIS_MODULE, ++ }, ++}; ++ ++static int __init apu_led_init(void) ++{ ++ int ret=0; ++ const char *vendor, *product; ++ ++ vendor = dmi_get_system_info(DMI_SYS_VENDOR); ++ if (!vendor || strcmp(vendor, "PC Engines")) ++ goto out; ++ ++ product = dmi_get_system_info(DMI_PRODUCT_NAME); ++ if (!product || strcmp(product, "APU")) ++ goto out; ++ ++ printk(KERN_INFO "%s: system is recognized as "%s %s"\n", ++ KBUILD_MODNAME, vendor, product); ++ ++ ret = platform_driver_register(&apu_led_driver); ++ if (ret < 0) ++ goto out; ++ ++ pdev = platform_device_register_simple(DRVNAME, -1, NULL, 0); ++ if (IS_ERR(pdev)) { ++ ret = PTR_ERR(pdev); ++ platform_driver_unregister(&apu_led_driver); ++ goto out; ++ } ++ ++ p1 = ioremap(BASEADDR, 1); ++ p2 = ioremap(BASEADDR+1, 1); ++ p3 = ioremap(BASEADDR+2, 1); ++ ++out: ++ return ret; ++} ++ ++static void __exit apu_led_exit(void) ++{ ++ platform_device_unregister(pdev); ++ platform_driver_unregister(&apu_led_driver); ++} ++ ++module_init(apu_led_init); ++module_exit(apu_led_exit); ++ ++MODULE_AUTHOR("Christian Herzog"); ++MODULE_DESCRIPTION("PCEngines apu LED driver"); ++MODULE_LICENSE("GPL"); +diff -Naur linux-3.10.33.org/arch/x86/platform/apu/Makefile linux-3.10.33/arch/x86/platform/apu/Makefile +--- linux-3.10.33.org/arch/x86/platform/apu/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.10.33/arch/x86/platform/apu/Makefile 2014-03-17 17:05:19.245651480 +0100 +@@ -0,0 +1 @@ ++obj-$(CONFIG_APULED) += apu-led.o +diff -Naur linux-3.10.33.org/arch/x86/platform/Makefile linux-3.10.33/arch/x86/platform/Makefile +--- linux-3.10.33.org/arch/x86/platform/Makefile 2014-03-07 06:58:45.000000000 +0100 ++++ linux-3.10.33/arch/x86/platform/Makefile 2014-03-17 14:53:15.078571307 +0100 +@@ -1,4 +1,5 @@ + # Platform specific code goes here ++obj-y += apu/ + obj-y += ce4100/ + obj-y += efi/ + obj-y += geode/ diff --git a/src/patches/linux-3.10-ipp2p-0.8.2-ipfire.patch b/src/patches/linux-3.10-ipp2p-0.8.2-ipfire.patch new file mode 100644 index 0000000..7393760 --- /dev/null +++ b/src/patches/linux-3.10-ipp2p-0.8.2-ipfire.patch @@ -0,0 +1,1039 @@ +diff -Naur linux-3.10.9.org/include/linux/netfilter_ipv4/ipt_ipp2p.h linux-3.10.9/include/linux/netfilter_ipv4/ipt_ipp2p.h +--- linux-3.10.9.org/include/linux/netfilter_ipv4/ipt_ipp2p.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.10.9/include/linux/netfilter_ipv4/ipt_ipp2p.h 2013-08-25 16:00:53.398088168 +0200 +@@ -0,0 +1,31 @@ ++#ifndef __IPT_IPP2P_H ++#define __IPT_IPP2P_H ++#define IPP2P_VERSION "0.8.2-ipfire" ++ ++struct ipt_p2p_info { ++ int cmd; ++ int debug; ++}; ++ ++#endif //__IPT_IPP2P_H ++ ++#define SHORT_HAND_IPP2P 1 /* --ipp2p switch*/ ++//#define SHORT_HAND_DATA 4 /* --ipp2p-data switch*/ ++#define SHORT_HAND_NONE 5 /* no short hand*/ ++ ++#define IPP2P_EDK (1 << 1) ++#define IPP2P_DATA_KAZAA (1 << 2) ++#define IPP2P_DATA_EDK (1 << 3) ++#define IPP2P_DATA_DC (1 << 4) ++#define IPP2P_DC (1 << 5) ++#define IPP2P_DATA_GNU (1 << 6) ++#define IPP2P_GNU (1 << 7) ++#define IPP2P_KAZAA (1 << 8) ++#define IPP2P_BIT (1 << 9) ++#define IPP2P_APPLE (1 << 10) ++#define IPP2P_SOUL (1 << 11) ++#define IPP2P_WINMX (1 << 12) ++#define IPP2P_ARES (1 << 13) ++#define IPP2P_MUTE (1 << 14) ++#define IPP2P_WASTE (1 << 15) ++#define IPP2P_XDCC (1 << 16) +diff -Naur linux-3.10.9.org/net/ipv4/netfilter/ipt_ipp2p.c linux-3.10.9/net/ipv4/netfilter/ipt_ipp2p.c +--- linux-3.10.9.org/net/ipv4/netfilter/ipt_ipp2p.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.10.9/net/ipv4/netfilter/ipt_ipp2p.c 2013-08-25 16:00:53.398088168 +0200 +@@ -0,0 +1,970 @@ ++#if defined(MODVERSIONS) ++#include <linux/modversions.h> ++#endif ++#include <linux/module.h> ++#include <linux/version.h> ++#include <linux/netfilter_ipv4/ip_tables.h> ++#include <linux/netfilter_ipv4/ipt_ipp2p.h> ++#include <net/tcp.h> ++#include <net/udp.h> ++ ++#define get_u8(X,O) (*(__u8 *)(X + O)) ++#define get_u16(X,O) (*(__u16 *)(X + O)) ++#define get_u32(X,O) (*(__u32 *)(X + O)) ++ ++MODULE_AUTHOR("Eicke Friedrich/Klaus Degner ipp2p@ipp2p.org"); ++MODULE_DESCRIPTION("An extension to iptables to identify P2P traffic."); ++MODULE_LICENSE("GPL"); ++ ++ ++/*Search for UDP eDonkey/eMule/Kad commands*/ ++int ++udp_search_edk (unsigned char *haystack, int packet_len) ++{ ++ unsigned char *t = haystack; ++ t += 8; ++ ++ switch (t[0]) { ++ case 0xe3: ++ { /*edonkey*/ ++ switch (t[1]) ++ { ++ /* client -> server status request */ ++ case 0x96: ++ if (packet_len == 14) return ((IPP2P_EDK * 100) + 50); ++ break; ++ /* server -> client status request */ ++ case 0x97: if (packet_len == 42) return ((IPP2P_EDK * 100) + 51); ++ break; ++ /* server description request */ ++ /* e3 2a ff f0 .. | size == 6 */ ++ case 0xa2: if ( (packet_len == 14) && ( get_u16(t,2) == __constant_htons(0xfff0) ) ) return ((IPP2P_EDK * 100) + 52); ++ break; ++ /* server description response */ ++ /* e3 a3 ff f0 .. | size > 40 && size < 200 */ ++ //case 0xa3: return ((IPP2P_EDK * 100) + 53); ++ // break; ++ case 0x9a: if (packet_len==26) return ((IPP2P_EDK * 100) + 54); ++ break; ++ ++ case 0x92: if (packet_len==18) return ((IPP2P_EDK * 100) + 55); ++ break; ++ } ++ break; ++ } ++ case 0xe4: ++ { ++ switch (t[1]) ++ { ++ /* e4 20 .. | size == 43 */ ++ case 0x20: if ((packet_len == 43) && (t[2] != 0x00) && (t[34] != 0x00)) return ((IPP2P_EDK * 100) + 60); ++ break; ++ /* e4 00 .. 00 | size == 35 ? */ ++ case 0x00: if ((packet_len == 35) && (t[26] == 0x00)) return ((IPP2P_EDK * 100) + 61); ++ break; ++ /* e4 10 .. 00 | size == 35 ? */ ++ case 0x10: if ((packet_len == 35) && (t[26] == 0x00)) return ((IPP2P_EDK * 100) + 62); ++ break; ++ /* e4 18 .. 00 | size == 35 ? */ ++ case 0x18: if ((packet_len == 35) && (t[26] == 0x00)) return ((IPP2P_EDK * 100) + 63); ++ break; ++ /* e4 52 .. | size = 44 */ ++ case 0x52: if (packet_len == 44 ) return ((IPP2P_EDK * 100) + 64); ++ break; ++ /* e4 58 .. | size == 6 */ ++ case 0x58: if (packet_len == 14 ) return ((IPP2P_EDK * 100) + 65); ++ break; ++ /* e4 59 .. | size == 2 */ ++ case 0x59: if (packet_len == 10 )return ((IPP2P_EDK * 100) + 66); ++ break; ++ /* e4 28 .. | packet_len == 52,77,102,127... */ ++ case 0x28: if (((packet_len-52) % 25) == 0) return ((IPP2P_EDK * 100) + 67); ++ break; ++ /* e4 50 xx xx | size == 4 */ ++ case 0x50: if (packet_len == 12) return ((IPP2P_EDK * 100) + 68); ++ break; ++ /* e4 40 xx xx | size == 48 */ ++ case 0x40: if (packet_len == 56) return ((IPP2P_EDK * 100) + 69); ++ break; ++ } ++ break; ++ } ++ } /* end of switch (t[0]) */ ++ return 0; ++}/*udp_search_edk*/ ++ ++ ++/*Search for UDP Gnutella commands*/ ++int ++udp_search_gnu (unsigned char *haystack, int packet_len) ++{ ++ unsigned char *t = haystack; ++ t += 8; ++ ++ if (memcmp(t, "GND", 3) == 0) return ((IPP2P_GNU * 100) + 51); ++ if (memcmp(t, "GNUTELLA ", 9) == 0) return ((IPP2P_GNU * 100) + 52); ++ return 0; ++}/*udp_search_gnu*/ ++ ++ ++/*Search for UDP KaZaA commands*/ ++int ++udp_search_kazaa (unsigned char *haystack, int packet_len) ++{ ++ unsigned char *t = haystack; ++ ++ if (t[packet_len-1] == 0x00){ ++ t += (packet_len - 6); ++ if (memcmp(t, "KaZaA", 5) == 0) return (IPP2P_KAZAA * 100 +50); ++ } ++ ++ return 0; ++}/*udp_search_kazaa*/ ++ ++/*Search for UDP DirectConnect commands*/ ++int ++udp_search_directconnect (unsigned char *haystack, int packet_len) ++{ ++ unsigned char *t = haystack; ++ if ((*(t + 8) == 0x24) && (*(t + packet_len - 1) == 0x7c)) { ++ t+=8; ++ if (memcmp(t, "SR ", 3) == 0) return ((IPP2P_DC * 100) + 60); ++ if (memcmp(t, "Ping ", 5) == 0) return ((IPP2P_DC * 100) + 61); ++ } ++ return 0; ++}/*udp_search_directconnect*/ ++ ++ ++ ++/*Search for UDP BitTorrent commands*/ ++int ++udp_search_bit (unsigned char *haystack, int packet_len) ++{ ++ switch(packet_len) ++ { ++ case 24: ++ /* ^ 00 00 04 17 27 10 19 80 */ ++ if ((ntohl(get_u32(haystack, 8)) == 0x00000417) && (ntohl(get_u32(haystack, 12)) == 0x27101980)) ++ return (IPP2P_BIT * 100 + 50); ++ break; ++ case 44: ++ if (get_u32(haystack, 16) == __constant_htonl(0x00000400) && get_u32(haystack, 36) == __constant_htonl(0x00000104)) ++ return (IPP2P_BIT * 100 + 51); ++ if (get_u32(haystack, 16) == __constant_htonl(0x00000400)) ++ return (IPP2P_BIT * 100 + 61); ++ break; ++ case 65: ++ if (get_u32(haystack, 16) == __constant_htonl(0x00000404) && get_u32(haystack, 36) == __constant_htonl(0x00000104)) ++ return (IPP2P_BIT * 100 + 52); ++ if (get_u32(haystack, 16) == __constant_htonl(0x00000404)) ++ return (IPP2P_BIT * 100 + 62); ++ break; ++ case 67: ++ if (get_u32(haystack, 16) == __constant_htonl(0x00000406) && get_u32(haystack, 36) == __constant_htonl(0x00000104)) ++ return (IPP2P_BIT * 100 + 53); ++ if (get_u32(haystack, 16) == __constant_htonl(0x00000406)) ++ return (IPP2P_BIT * 100 + 63); ++ break; ++ case 211: ++ if (get_u32(haystack, 8) == __constant_htonl(0x00000405)) ++ return (IPP2P_BIT * 100 + 54); ++ break; ++ case 29: ++ if ((get_u32(haystack, 8) == __constant_htonl(0x00000401))) ++ return (IPP2P_BIT * 100 + 55); ++ break; ++ case 52: ++ if (get_u32(haystack,8) == __constant_htonl(0x00000827) && ++ get_u32(haystack,12) == __constant_htonl(0x37502950)) ++ return (IPP2P_BIT * 100 + 80); ++ break; ++ default: ++ /* this packet does not have a constant size */ ++ if (packet_len >= 40 && get_u32(haystack, 16) == __constant_htonl(0x00000402) && get_u32(haystack, 36) == __constant_htonl(0x00000104)) ++ return (IPP2P_BIT * 100 + 56); ++ break; ++ } ++ ++ /* some extra-bitcomet rules: ++ * "d1:" [a|r] "d2:id20:" ++ */ ++ if (packet_len > 30 && get_u8(haystack, 8) == 'd' && get_u8(haystack, 9) == '1' && get_u8(haystack, 10) == ':' ) ++ { ++ if (get_u8(haystack, 11) == 'a' || get_u8(haystack, 11) == 'r') ++ { ++ if (memcmp(haystack+12,"d2:id20:",8)==0) ++ return (IPP2P_BIT * 100 + 57); ++ } ++ } ++ ++#if 0 ++ /* bitlord rules */ ++ /* packetlen must be bigger than 40 */ ++ /* first 4 bytes are zero */ ++ if (packet_len > 40 && get_u32(haystack, 8) == 0x00000000) ++ { ++ /* first rule: 00 00 00 00 01 00 00 xx xx xx xx 00 00 00 00*/ ++ if (get_u32(haystack, 12) == 0x00000000 && ++ get_u32(haystack, 16) == 0x00010000 && ++ get_u32(haystack, 24) == 0x00000000 ) ++ return (IPP2P_BIT * 100 + 71); ++ ++ /* 00 01 00 00 0d 00 00 xx xx xx xx 00 00 00 00*/ ++ if (get_u32(haystack, 12) == 0x00000001 && ++ get_u32(haystack, 16) == 0x000d0000 && ++ get_u32(haystack, 24) == 0x00000000 ) ++ return (IPP2P_BIT * 100 + 71); ++ ++ ++ } ++#endif ++ ++ return 0; ++}/*udp_search_bit*/ ++ ++ ++ ++/*Search for Ares commands*/ ++//#define IPP2P_DEBUG_ARES ++int ++search_ares (const unsigned char *payload, const u16 plen) ++//int search_ares (unsigned char *haystack, int packet_len, int head_len) ++{ ++// const unsigned char *t = haystack + head_len; ++ ++ /* all ares packets start with */ ++ if (payload[1] == 0 && (plen - payload[0]) == 3) ++ { ++ switch (payload[2]) ++ { ++ case 0x5a: ++ /* ares connect */ ++ if ( plen == 6 && payload[5] == 0x05 ) return ((IPP2P_ARES * 100) + 1); ++ break; ++ case 0x09: ++ /* ares search, min 3 chars --> 14 bytes ++ * lets define a search can be up to 30 chars --> max 34 bytes ++ */ ++ if ( plen >= 14 && plen <= 34 ) return ((IPP2P_ARES * 100) + 1); ++ break; ++#ifdef IPP2P_DEBUG_ARES ++ default: ++ printk(KERN_DEBUG "Unknown Ares command %x recognized, len: %u \n", (unsigned int) payload[2],plen); ++#endif /* IPP2P_DEBUG_ARES */ ++ } ++ } ++ ++#if 0 ++ /* found connect packet: 03 00 5a 04 03 05 */ ++ /* new version ares 1.8: 03 00 5a xx xx 05 */ ++ if ((plen) == 6){ /* possible connect command*/ ++ if ((payload[0] == 0x03) && (payload[1] == 0x00) && (payload[2] == 0x5a) && (payload[5] == 0x05)) ++ return ((IPP2P_ARES * 100) + 1); ++ } ++ if ((plen) == 60){ /* possible download command*/ ++ if ((payload[59] == 0x0a) && (payload[58] == 0x0a)){ ++ if (memcmp(t, "PUSH SHA1:", 10) == 0) /* found download command */ ++ return ((IPP2P_ARES * 100) + 2); ++ } ++ } ++#endif ++ ++ return 0; ++} /*search_ares*/ ++ ++/*Search for SoulSeek commands*/ ++int ++search_soul (const unsigned char *payload, const u16 plen) ++{ ++//#define IPP2P_DEBUG_SOUL ++ /* match: xx xx xx xx | xx = sizeof(payload) - 4 */ ++ if (get_u32(payload, 0) == (plen - 4)){ ++ const __u32 m=get_u32(payload, 4); ++ /* match 00 yy yy 00, yy can be everything */ ++ if ( get_u8(payload, 4) == 0x00 && get_u8(payload, 7) == 0x00 ) ++ { ++#ifdef IPP2P_DEBUG_SOUL ++ printk(KERN_DEBUG "0: Soulseek command 0x%x recognized\n",get_u32(payload, 4)); ++#endif /* IPP2P_DEBUG_SOUL */ ++ return ((IPP2P_SOUL * 100) + 1); ++ } ++ ++ /* next match: 01 yy 00 00 | yy can be everything */ ++ if ( get_u8(payload, 4) == 0x01 && get_u16(payload, 6) == 0x0000 ) ++ { ++#ifdef IPP2P_DEBUG_SOUL ++ printk(KERN_DEBUG "1: Soulseek command 0x%x recognized\n",get_u16(payload, 4)); ++#endif /* IPP2P_DEBUG_SOUL */ ++ return ((IPP2P_SOUL * 100) + 2); ++ } ++ ++ /* other soulseek commandos are: 1-5,7,9,13-18,22,23,26,28,35-37,40-46,50,51,60,62-69,91,92,1001 */ ++ /* try to do this in an intelligent way */ ++ /* get all small commandos */ ++ switch(m) ++ { ++ case 7: ++ case 9: ++ case 22: ++ case 23: ++ case 26: ++ case 28: ++ case 50: ++ case 51: ++ case 60: ++ case 91: ++ case 92: ++ case 1001: ++#ifdef IPP2P_DEBUG_SOUL ++ printk(KERN_DEBUG "2: Soulseek command 0x%x recognized\n",get_u16(payload, 4)); ++#endif /* IPP2P_DEBUG_SOUL */ ++ return ((IPP2P_SOUL * 100) + 3); ++ } ++ ++ if (m > 0 && m < 6 ) ++ { ++#ifdef IPP2P_DEBUG_SOUL ++ printk(KERN_DEBUG "3: Soulseek command 0x%x recognized\n",get_u16(payload, 4)); ++#endif /* IPP2P_DEBUG_SOUL */ ++ return ((IPP2P_SOUL * 100) + 4); ++ } ++ if (m > 12 && m < 19 ) ++ { ++#ifdef IPP2P_DEBUG_SOUL ++ printk(KERN_DEBUG "4: Soulseek command 0x%x recognized\n",get_u16(payload, 4)); ++#endif /* IPP2P_DEBUG_SOUL */ ++ return ((IPP2P_SOUL * 100) + 5); ++ } ++ ++ if (m > 34 && m < 38 ) ++ { ++#ifdef IPP2P_DEBUG_SOUL ++ printk(KERN_DEBUG "5: Soulseek command 0x%x recognized\n",get_u16(payload, 4)); ++#endif /* IPP2P_DEBUG_SOUL */ ++ return ((IPP2P_SOUL * 100) + 6); ++ } ++ ++ if (m > 39 && m < 47 ) ++ { ++#ifdef IPP2P_DEBUG_SOUL ++ printk(KERN_DEBUG "6: Soulseek command 0x%x recognized\n",get_u16(payload, 4)); ++#endif /* IPP2P_DEBUG_SOUL */ ++ return ((IPP2P_SOUL * 100) + 7); ++ } ++ ++ if (m > 61 && m < 70 ) ++ { ++#ifdef IPP2P_DEBUG_SOUL ++ printk(KERN_DEBUG "7: Soulseek command 0x%x recognized\n",get_u16(payload, 4)); ++#endif /* IPP2P_DEBUG_SOUL */ ++ return ((IPP2P_SOUL * 100) + 8); ++ } ++ ++#ifdef IPP2P_DEBUG_SOUL ++ printk(KERN_DEBUG "unknown SOULSEEK command: 0x%x, first 16 bit: 0x%x, first 8 bit: 0x%x ,soulseek ???\n",get_u32(payload, 4),get_u16(payload, 4) >> 16,get_u8(payload, 4) >> 24); ++#endif /* IPP2P_DEBUG_SOUL */ ++ } ++ ++ /* match 14 00 00 00 01 yy 00 00 00 STRING(YY) 01 00 00 00 00 46|50 00 00 00 00 */ ++ /* without size at the beginning !!! */ ++ if ( get_u32(payload, 0) == 0x14 && get_u8(payload, 4) == 0x01 ) ++ { ++ __u32 y=get_u32(payload, 5); ++ /* we need 19 chars + string */ ++ if ( (y + 19) <= (plen) ) ++ { ++ const unsigned char *w=payload+9+y; ++ if (get_u32(w, 0) == 0x01 && ( get_u16(w, 4) == 0x4600 || get_u16(w, 4) == 0x5000) && get_u32(w, 6) == 0x00); ++#ifdef IPP2P_DEBUG_SOUL ++ printk(KERN_DEBUG "Soulssek special client command recognized\n"); ++#endif /* IPP2P_DEBUG_SOUL */ ++ return ((IPP2P_SOUL * 100) + 9); ++ } ++ } ++ return 0; ++} ++ ++ ++/*Search for WinMX commands*/ ++int ++search_winmx (const unsigned char *payload, const u16 plen) ++{ ++//#define IPP2P_DEBUG_WINMX ++ if (((plen) == 4) && (memcmp(payload, "SEND", 4) == 0)) return ((IPP2P_WINMX * 100) + 1); ++ if (((plen) == 3) && (memcmp(payload, "GET", 3) == 0)) return ((IPP2P_WINMX * 100) + 2); ++ //if (packet_len < (head_len + 10)) return 0; ++ if (plen < 10) return 0; ++ ++ if ((memcmp(payload, "SEND", 4) == 0) || (memcmp(payload, "GET", 3) == 0)){ ++ u16 c=4; ++ const u16 end=plen-2; ++ u8 count=0; ++ while (c < end) ++ { ++ if (payload[c]== 0x20 && payload[c+1] == 0x22) ++ { ++ c++; ++ count++; ++ if (count>=2) return ((IPP2P_WINMX * 100) + 3); ++ } ++ c++; ++ } ++ } ++ ++ if ( plen == 149 && payload[0] == '8' ) ++ { ++#ifdef IPP2P_DEBUG_WINMX ++ printk(KERN_INFO "maybe WinMX\n"); ++#endif ++ if (get_u32(payload,17) == 0 && get_u32(payload,21) == 0 && get_u32(payload,25) == 0 && ++// get_u32(payload,33) == __constant_htonl(0x71182b1a) && get_u32(payload,37) == __constant_htonl(0x05050000) && ++// get_u32(payload,133) == __constant_htonl(0x31097edf) && get_u32(payload,145) == __constant_htonl(0xdcb8f792)) ++ get_u16(payload,39) == 0 && get_u16(payload,135) == __constant_htons(0x7edf) && get_u16(payload,147) == __constant_htons(0xf792)) ++ ++ { ++#ifdef IPP2P_DEBUG_WINMX ++ printk(KERN_INFO "got WinMX\n"); ++#endif ++ return ((IPP2P_WINMX * 100) + 4); ++ } ++ } ++ return 0; ++} /*search_winmx*/ ++ ++ ++/*Search for appleJuice commands*/ ++int ++search_apple (const unsigned char *payload, const u16 plen) ++{ ++ if ( (plen > 7) && (payload[6] == 0x0d) && (payload[7] == 0x0a) && (memcmp(payload, "ajprot", 6) == 0)) return (IPP2P_APPLE * 100); ++ ++ return 0; ++} ++ ++ ++/*Search for BitTorrent commands*/ ++int ++search_bittorrent (const unsigned char *payload, const u16 plen) ++{ ++ if (plen > 20) ++ { ++ /* test for match 0x13+"BitTorrent protocol" */ ++ if (payload[0] == 0x13) ++ { ++ if (memcmp(payload+1, "BitTorrent protocol", 19) == 0) return (IPP2P_BIT * 100); ++ } ++ ++ /* get tracker commandos, all starts with GET / ++ * then it can follow: scrape| announce ++ * and then ?hash_info= ++ */ ++ if (memcmp(payload,"GET /",5) == 0) ++ { ++ /* message scrape */ ++ if ( memcmp(payload+5,"scrape?info_hash=",17)==0 ) return (IPP2P_BIT * 100 + 1); ++ /* message announce */ ++ if ( memcmp(payload+5,"announce?info_hash=",19)==0 ) return (IPP2P_BIT * 100 + 2); ++ } ++ } ++ else ++ { ++ /* bitcomet encryptes the first packet, so we have to detect another ++ * one later in the flow */ ++ /* first try failed, too many missdetections */ ++ //if ( size == 5 && get_u32(t,0) == __constant_htonl(1) && t[4] < 3) return (IPP2P_BIT * 100 + 3); ++ ++ /* second try: block request packets */ ++ if ( plen == 17 && get_u32(payload,0) == __constant_htonl(0x0d) && payload[4] == 0x06 && get_u32(payload,13) == __constant_htonl(0x4000) ) return (IPP2P_BIT * 100 + 3); ++ } ++ ++ return 0; ++} ++ ++ ++ ++/*check for Kazaa get command*/ ++int ++search_kazaa (const unsigned char *payload, const u16 plen) ++ ++{ ++ if ((payload[plen-2] == 0x0d) && (payload[plen-1] == 0x0a) && memcmp(payload, "GET /.hash=", 11) == 0) ++ return (IPP2P_DATA_KAZAA * 100); ++ ++ return 0; ++} ++ ++ ++/*check for gnutella get command*/ ++int ++search_gnu (const unsigned char *payload, const u16 plen) ++{ ++ if ((payload[plen-2] == 0x0d) && (payload[plen-1] == 0x0a)) ++ { ++ if (memcmp(payload, "GET /get/", 9) == 0) return ((IPP2P_DATA_GNU * 100) + 1); ++ if (memcmp(payload, "GET /uri-res/", 13) == 0) return ((IPP2P_DATA_GNU * 100) + 2); ++ } ++ return 0; ++} ++ ++ ++/*check for gnutella get commands and other typical data*/ ++int ++search_all_gnu (const unsigned char *payload, const u16 plen) ++{ ++ ++ if ((payload[plen-2] == 0x0d) && (payload[plen-1] == 0x0a)) ++ { ++ ++ if (memcmp(payload, "GNUTELLA CONNECT/", 17) == 0) return ((IPP2P_GNU * 100) + 1); ++ if (memcmp(payload, "GNUTELLA/", 9) == 0) return ((IPP2P_GNU * 100) + 2); ++ ++ ++ if ((memcmp(payload, "GET /get/", 9) == 0) || (memcmp(payload, "GET /uri-res/", 13) == 0)) ++ { ++ u16 c=8; ++ const u16 end=plen-22; ++ while (c < end) { ++ if ( payload[c] == 0x0a && payload[c+1] == 0x0d && ((memcmp(&payload[c+2], "X-Gnutella-", 11) == 0) || (memcmp(&payload[c+2], "X-Queue:", 8) == 0))) ++ return ((IPP2P_GNU * 100) + 3); ++ c++; ++ } ++ } ++ } ++ return 0; ++} ++ ++ ++/*check for KaZaA download commands and other typical data*/ ++int ++search_all_kazaa (const unsigned char *payload, const u16 plen) ++{ ++ if ((payload[plen-2] == 0x0d) && (payload[plen-1] == 0x0a)) ++ { ++ ++ if (memcmp(payload, "GIVE ", 5) == 0) return ((IPP2P_KAZAA * 100) + 1); ++ ++ if (memcmp(payload, "GET /", 5) == 0) { ++ u16 c = 8; ++ const u16 end=plen-22; ++ while (c < end) { ++ if ( payload[c] == 0x0a && payload[c+1] == 0x0d && ((memcmp(&payload[c+2], "X-Kazaa-Username: ", 18) == 0) || (memcmp(&payload[c+2], "User-Agent: PeerEnabler/", 24) == 0))) ++ return ((IPP2P_KAZAA * 100) + 2); ++ c++; ++ } ++ } ++ } ++ return 0; ++} ++ ++/*fast check for edonkey file segment transfer command*/ ++int ++search_edk (const unsigned char *payload, const u16 plen) ++{ ++ if (payload[0] != 0xe3) ++ return 0; ++ else { ++ if (payload[5] == 0x47) ++ return (IPP2P_DATA_EDK * 100); ++ else ++ return 0; ++ } ++} ++ ++ ++ ++/*intensive but slower search for some edonkey packets including size-check*/ ++int ++search_all_edk (const unsigned char *payload, const u16 plen) ++{ ++ if (payload[0] != 0xe3) ++ return 0; ++ else { ++ //t += head_len; ++ const u16 cmd = get_u16(payload, 1); ++ if (cmd == (plen - 5)) { ++ switch (payload[5]) { ++ case 0x01: return ((IPP2P_EDK * 100) + 1); /*Client: hello or Server:hello*/ ++ case 0x4c: return ((IPP2P_EDK * 100) + 9); /*Client: Hello-Answer*/ ++ } ++ } ++ return 0; ++ } ++} ++ ++ ++/*fast check for Direct Connect send command*/ ++int ++search_dc (const unsigned char *payload, const u16 plen) ++{ ++ ++ if (payload[0] != 0x24 ) ++ return 0; ++ else { ++ if (memcmp(&payload[1], "Send|", 5) == 0) ++ return (IPP2P_DATA_DC * 100); ++ else ++ return 0; ++ } ++ ++} ++ ++ ++/*intensive but slower check for all direct connect packets*/ ++int ++search_all_dc (const unsigned char *payload, const u16 plen) ++{ ++// unsigned char *t = haystack; ++ ++ if (payload[0] == 0x24 && payload[plen-1] == 0x7c) ++ { ++ const unsigned char *t=&payload[1]; ++ /* Client-Hub-Protocol */ ++ if (memcmp(t, "Lock ", 5) == 0) return ((IPP2P_DC * 100) + 1); ++ /* Client-Client-Protocol, some are already recognized by client-hub (like lock) */ ++ if (memcmp(t, "MyNick ", 7) == 0) return ((IPP2P_DC * 100) + 38); ++ } ++ return 0; ++} ++ ++/*check for mute*/ ++int ++search_mute (const unsigned char *payload, const u16 plen) ++{ ++ if ( plen == 209 || plen == 345 || plen == 473 || plen == 609 || plen == 1121 ) ++ { ++ //printk(KERN_DEBUG "size hit: %u",size); ++ if (memcmp(payload,"PublicKey: ",11) == 0 ) ++ { ++ return ((IPP2P_MUTE * 100) + 0); ++ ++/* if (memcmp(t+size-14,"\x0aEndPublicKey\x0a",14) == 0) ++ { ++ printk(KERN_DEBUG "end pubic key hit: %u",size); ++ ++ }*/ ++ } ++ } ++ return 0; ++} ++ ++ ++/* check for xdcc */ ++int ++search_xdcc (const unsigned char *payload, const u16 plen) ++{ ++ /* search in small packets only */ ++ if (plen > 20 && plen < 200 && payload[plen-1] == 0x0a && payload[plen-2] == 0x0d && memcmp(payload,"PRIVMSG ",8) == 0) ++ { ++ ++ u16 x=10; ++ const u16 end=plen - 13; ++ ++ /* is seems to be a irc private massage, chedck for xdcc command */ ++ while (x < end) ++ { ++ if (payload[x] == ':') ++ { ++ if ( memcmp(&payload[x+1],"xdcc send #",11) == 0 ) ++ return ((IPP2P_XDCC * 100) + 0); ++ } ++ x++; ++ } ++ } ++ return 0; ++} ++ ++/* search for waste */ ++int search_waste(const unsigned char *payload, const u16 plen) ++{ ++ if ( plen >= 8 && memcmp(payload,"GET.sha1:",9) == 0) ++ return ((IPP2P_WASTE * 100) + 0); ++ ++ return 0; ++} ++ ++ ++static struct { ++ int command; ++ __u8 short_hand; /*for fucntions included in short hands*/ ++ int packet_len; ++ int (*function_name) (const unsigned char *, const u16); ++} matchlist[] = { ++ {IPP2P_EDK,SHORT_HAND_IPP2P,20, &search_all_edk}, ++// {IPP2P_DATA_KAZAA,SHORT_HAND_DATA,200, &search_kazaa}, ++// {IPP2P_DATA_EDK,SHORT_HAND_DATA,60, &search_edk}, ++// {IPP2P_DATA_DC,SHORT_HAND_DATA,26, &search_dc}, ++ {IPP2P_DC,SHORT_HAND_IPP2P,5, search_all_dc}, ++// {IPP2P_DATA_GNU,SHORT_HAND_DATA,40, &search_gnu}, ++ {IPP2P_GNU,SHORT_HAND_IPP2P,5, &search_all_gnu}, ++ {IPP2P_KAZAA,SHORT_HAND_IPP2P,5, &search_all_kazaa}, ++ {IPP2P_BIT,SHORT_HAND_IPP2P,20, &search_bittorrent}, ++ {IPP2P_APPLE,SHORT_HAND_IPP2P,5, &search_apple}, ++ {IPP2P_SOUL,SHORT_HAND_IPP2P,5, &search_soul}, ++ {IPP2P_WINMX,SHORT_HAND_IPP2P,2, &search_winmx}, ++ {IPP2P_ARES,SHORT_HAND_IPP2P,5, &search_ares}, ++ {IPP2P_MUTE,SHORT_HAND_NONE,200, &search_mute}, ++ {IPP2P_WASTE,SHORT_HAND_NONE,5, &search_waste}, ++ {IPP2P_XDCC,SHORT_HAND_NONE,5, &search_xdcc}, ++ {0,0,0,NULL} ++}; ++ ++ ++static struct { ++ int command; ++ __u8 short_hand; /*for fucntions included in short hands*/ ++ int packet_len; ++ int (*function_name) (unsigned char *, int); ++} udp_list[] = { ++ { IPP2P_KAZAA, SHORT_HAND_IPP2P, 14, &udp_search_kazaa}, ++ { IPP2P_BIT, SHORT_HAND_IPP2P, 23, &udp_search_bit}, ++ { IPP2P_GNU, SHORT_HAND_IPP2P, 11, &udp_search_gnu}, ++ { IPP2P_EDK, SHORT_HAND_IPP2P, 9, &udp_search_edk}, ++ { IPP2P_DC, SHORT_HAND_IPP2P, 12, &udp_search_directconnect}, ++ { 0, 0, 0, NULL } ++}; ++ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) ++static int ++match(const struct sk_buff *skb, ++ const struct net_device *in, ++ const struct net_device *out, ++ const void *matchinfo, ++ int offset, ++ const void *hdr, ++ u_int16_t datalen, ++ int *hotdrop) ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,16) ++static int ++match(const struct sk_buff *skb, ++ const struct net_device *in, ++ const struct net_device *out, ++ const void *matchinfo, ++ int offset, ++ int *hotdrop) ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,17) ++static int ++match(const struct sk_buff *skb, ++ const struct net_device *in, ++ const struct net_device *out, ++ const void *matchinfo, ++ int offset, ++ unsigned int protoff, ++ int *hotdrop) ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23) ++static int ++match(const struct sk_buff *skb, ++ const struct net_device *in, ++ const struct net_device *out, ++ const struct xt_match *match, ++ const void *matchinfo, ++ int offset, ++ unsigned int protoff, ++ int *hotdrop) ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28) ++static bool ++match(const struct sk_buff *skb, ++ const struct net_device *in, ++ const struct net_device *out, ++ const struct xt_match *match, ++ const void *matchinfo, ++ int offset, ++ unsigned int protoff, ++ bool *hotdrop) ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35) ++static bool ++match(const struct sk_buff *skb, ++ const struct xt_match_param *par) ++#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35) */ ++static int ++match(const struct sk_buff *skb, ++ struct xt_action_param *par) ++#endif ++{ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28) ++ const struct ipt_p2p_info *info = matchinfo; ++#else ++ const struct ipt_p2p_info *info = par->matchinfo; ++ const int offset = par->fragoff; ++#endif ++ unsigned char *haystack; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22) ++ struct iphdr *ip = ip_hdr(skb); ++#else ++ struct iphdr *ip = skb->nh.iph; ++#endif ++ int p2p_result = 0, i = 0; ++// int head_len; ++ int hlen = ntohs(ip->tot_len)-(ip->ihl*4); /*hlen = packet-data length*/ ++ ++ /*must not be a fragment*/ ++ if (offset) { ++ if (info->debug) printk("IPP2P.match: offset found %i \n",offset); ++ return 0; ++ } ++ ++ /*make sure that skb is linear*/ ++ if(skb_is_nonlinear(skb)){ ++ if (info->debug) printk("IPP2P.match: nonlinear skb found\n"); ++ return 0; ++ } ++ ++ ++ haystack=(char *)ip+(ip->ihl*4); /*haystack = packet data*/ ++ ++ switch (ip->protocol){ ++ case IPPROTO_TCP: /*what to do with a TCP packet*/ ++ { ++ struct tcphdr *tcph = (void *) ip + ip->ihl * 4; ++ ++ if (tcph->fin) return 0; /*if FIN bit is set bail out*/ ++ if (tcph->syn) return 0; /*if SYN bit is set bail out*/ ++ if (tcph->rst) return 0; /*if RST bit is set bail out*/ ++ ++ haystack += tcph->doff * 4; /*get TCP-Header-Size*/ ++ hlen -= tcph->doff * 4; ++ while (matchlist[i].command) { ++ if ((((info->cmd & matchlist[i].command) == matchlist[i].command) || ++ ((info->cmd & matchlist[i].short_hand) == matchlist[i].short_hand)) && ++ (hlen > matchlist[i].packet_len)) { ++ p2p_result = matchlist[i].function_name(haystack, hlen); ++ if (p2p_result) ++ { ++ if (info->debug) printk("IPP2P.debug:TCP-match: %i from: %pl4:%i to: %pl4:%i Length: %i\n", ++ p2p_result, &ip->saddr,ntohs(tcph->source), &ip->daddr,ntohs(tcph->dest),hlen); ++ return p2p_result; ++ } ++ } ++ i++; ++ } ++ return p2p_result; ++ } ++ ++ case IPPROTO_UDP: /*what to do with an UDP packet*/ ++ { ++ struct udphdr *udph = (void *) ip + ip->ihl * 4; ++ ++ while (udp_list[i].command){ ++ if ((((info->cmd & udp_list[i].command) == udp_list[i].command) || ++ ((info->cmd & udp_list[i].short_hand) == udp_list[i].short_hand)) && ++ (hlen > udp_list[i].packet_len)) { ++ p2p_result = udp_list[i].function_name(haystack, hlen); ++ if (p2p_result){ ++ if (info->debug) printk("IPP2P.debug:UDP-match: %i from: %pl4:%i to: %pl4:%i Length: %i\n", ++ p2p_result, &ip->saddr,ntohs(udph->source), &ip->daddr,ntohs(udph->dest),hlen); ++ return p2p_result; ++ } ++ } ++ i++; ++ } ++ return p2p_result; ++ } ++ ++ default: return 0; ++ } ++} ++ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,16) ++static int ++checkentry(const char *tablename, ++ const struct ipt_ip *ip, ++ void *matchinfo, ++ unsigned int matchsize, ++ unsigned int hook_mask) ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,17) ++static int ++checkentry(const char *tablename, ++ const void *inf, ++ void *matchinfo, ++ unsigned int matchsize, ++ unsigned int hook_mask) ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19) ++static int ++checkentry(const char *tablename, ++ const void *inf, ++ const struct xt_match *match, ++ void *matchinfo, ++ unsigned int matchsize, ++ unsigned int hook_mask) ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23) ++static int ++checkentry(const char *tablename, ++ const void *inf, ++ const struct xt_match *match, ++ void *matchinfo, ++ unsigned int hook_mask) ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28) ++static bool ++checkentry(const char *tablename, ++ const void *inf, ++ const struct xt_match *match, ++ void *matchinfo, ++ unsigned int hook_mask) ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35) ++static bool ++checkentry(const struct xt_mtchk_param *par) ++#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35) */ ++static int ++checkentry(const struct xt_mtchk_param *par) ++#endif ++{ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35) ++ return 1; ++#else ++ return 0; ++#endif ++} ++ ++ ++ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) ++static struct xt_match ipp2p_match = { ++#else ++static struct ipt_match ipp2p_match = { ++#endif ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) ++ { NULL, NULL }, ++ "ipp2p", ++ &ipp2p_match, ++ &ipp2p_checkentry, ++ NULL, ++ THIS_MODULE ++#endif ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) ++ .name = "ipp2p", ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) ++ .family = AF_INET, ++#endif ++ .match = &match, ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,17) ++ .matchsize = sizeof(struct ipt_p2p_info), ++#endif ++ .checkentry = &checkentry, ++ .me = THIS_MODULE, ++#endif ++}; ++ ++ ++static int __init init(void) ++{ ++ printk(KERN_INFO "IPP2P v%s loading\n", IPP2P_VERSION); ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) ++ return xt_register_match(&ipp2p_match); ++#else ++ return ipt_register_match(&ipp2p_match); ++#endif ++} ++ ++static void __exit fini(void) ++{ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) ++ xt_unregister_match(&ipp2p_match); ++#else ++ ipt_unregister_match(&ipp2p_match); ++#endif ++ printk(KERN_INFO "IPP2P v%s unloaded\n", IPP2P_VERSION); ++} ++ ++module_init(init); ++module_exit(fini); ++ ++ +diff -Naur linux-3.10.9.org/net/ipv4/netfilter/Kconfig linux-3.10.9/net/ipv4/netfilter/Kconfig +--- linux-3.10.9.org/net/ipv4/netfilter/Kconfig 2013-08-21 00:40:47.000000000 +0200 ++++ linux-3.10.9/net/ipv4/netfilter/Kconfig 2013-08-25 16:00:53.398088168 +0200 +@@ -320,5 +320,15 @@ + + endif # IP_NF_ARPTABLES + ++config IP_NF_MATCH_IPP2P ++ tristate 'IPP2P match support' ++ depends on IP_NF_IPTABLES ++ help ++ This option makes possible to match some P2P packets ++ therefore helps controlling such traffic. ++ ++ If you want to compile it as a module, say M here and read ++ file:Documentation/modules.txt. If unsure, say `N'. ++ + endmenu + +diff -Naur linux-3.10.9.org/net/ipv4/netfilter/Makefile linux-3.10.9/net/ipv4/netfilter/Makefile +--- linux-3.10.9.org/net/ipv4/netfilter/Makefile 2013-08-21 00:40:47.000000000 +0200 ++++ linux-3.10.9/net/ipv4/netfilter/Makefile 2013-08-25 16:03:21.634750053 +0200 +@@ -40,6 +40,7 @@ + # matches + obj-$(CONFIG_IP_NF_MATCH_AH) += ipt_ah.o + obj-$(CONFIG_IP_NF_MATCH_RPFILTER) += ipt_rpfilter.o ++obj-$(CONFIG_IP_NF_MATCH_IPP2P) += ipt_ipp2p.o + + # targets + obj-$(CONFIG_IP_NF_TARGET_CLUSTERIP) += ipt_CLUSTERIP.o diff --git a/src/patches/linux-3.10-smsc95xx-add_mac_addr_param.patch b/src/patches/linux-3.10-smsc95xx-add_mac_addr_param.patch new file mode 100644 index 0000000..6a4b3c5 --- /dev/null +++ b/src/patches/linux-3.10-smsc95xx-add_mac_addr_param.patch @@ -0,0 +1,82 @@ +diff -Naur linux-3.10.10/drivers/net/usb/smsc95xx.c linux-c1af7c6db316763b9dce7137495cb9ada8fa17b4/drivers/net/usb/smsc95xx.c +--- linux-3.10.10/drivers/net/usb/smsc95xx.c 2013-08-29 18:47:51.000000000 +0200 ++++ linux-c1af7c6db316763b9dce7137495cb9ada8fa17b4/drivers/net/usb/smsc95xx.c 2013-08-30 20:12:54.000000000 +0200 +@@ -61,6 +61,7 @@ + #define SUSPEND_SUSPEND3 (0x08) + #define SUSPEND_ALLMODES (SUSPEND_SUSPEND0 | SUSPEND_SUSPEND1 | \ + SUSPEND_SUSPEND2 | SUSPEND_SUSPEND3) ++#define MAC_ADDR_LEN (6) + + struct smsc95xx_priv { + u32 mac_cr; +@@ -76,6 +77,10 @@ + module_param(turbo_mode, bool, 0644); + MODULE_PARM_DESC(turbo_mode, "Enable multiple frames per Rx transaction"); + ++static char *macaddr = ":"; ++module_param(macaddr, charp, 0); ++MODULE_PARM_DESC(macaddr, "MAC address"); ++ + static int __must_check __smsc95xx_read_reg(struct usbnet *dev, u32 index, + u32 *data, int in_pm) + { +@@ -765,8 +770,59 @@ + return generic_mii_ioctl(&dev->mii, if_mii(rq), cmd, NULL); + } + ++/* Check the macaddr module parameter for a MAC address */ ++static int smsc95xx_is_macaddr_param(struct usbnet *dev, u8 *dev_mac) ++{ ++ int i, j, got_num, num; ++ u8 mtbl[MAC_ADDR_LEN]; ++ ++ if (macaddr[0] == ':') ++ return 0; ++ ++ i = 0; ++ j = 0; ++ num = 0; ++ got_num = 0; ++ while (j < MAC_ADDR_LEN) { ++ if (macaddr[i] && macaddr[i] != ':') { ++ got_num++; ++ if ('0' <= macaddr[i] && macaddr[i] <= '9') ++ num = num * 16 + macaddr[i] - '0'; ++ else if ('A' <= macaddr[i] && macaddr[i] <= 'F') ++ num = num * 16 + 10 + macaddr[i] - 'A'; ++ else if ('a' <= macaddr[i] && macaddr[i] <= 'f') ++ num = num * 16 + 10 + macaddr[i] - 'a'; ++ else ++ break; ++ i++; ++ } else if (got_num == 2) { ++ mtbl[j++] = (u8) num; ++ num = 0; ++ got_num = 0; ++ i++; ++ } else { ++ break; ++ } ++ } ++ ++ if (j == MAC_ADDR_LEN) { ++ netif_dbg(dev, ifup, dev->net, "Overriding MAC address with: " ++ "%02x:%02x:%02x:%02x:%02x:%02x\n", mtbl[0], mtbl[1], mtbl[2], ++ mtbl[3], mtbl[4], mtbl[5]); ++ for (i = 0; i < MAC_ADDR_LEN; i++) ++ dev_mac[i] = mtbl[i]; ++ return 1; ++ } else { ++ return 0; ++ } ++} ++ + static void smsc95xx_init_mac_address(struct usbnet *dev) + { ++ /* Check module parameters */ ++ if (smsc95xx_is_macaddr_param(dev, dev->net->dev_addr)) ++ return; ++ + /* try reading mac address from EEPROM */ + if (smsc95xx_read_eeprom(dev, EEPROM_MAC_OFFSET, ETH_ALEN, + dev->net->dev_addr) == 0) { diff --git a/src/patches/linux-3.10.10-arm_kirkwood_setups.patch b/src/patches/linux-3.10.10-arm_kirkwood_setups.patch new file mode 100644 index 0000000..3564465 --- /dev/null +++ b/src/patches/linux-3.10.10-arm_kirkwood_setups.patch @@ -0,0 +1,704 @@ +diff -Naur linux-3.10.10.org/arch/arm/Kconfig linux-3.10.10/arch/arm/Kconfig +--- linux-3.10.10.org/arch/arm/Kconfig 2013-08-29 18:47:51.000000000 +0200 ++++ linux-3.10.10/arch/arm/Kconfig 2013-09-02 19:37:01.000000000 +0200 +@@ -217,7 +217,7 @@ + + config ARM_PATCH_PHYS_VIRT + bool "Patch physical to virtual translations at runtime" if EMBEDDED +- default y ++ default n + depends on !XIP_KERNEL && MMU + depends on !ARCH_REALVIEW || !SPARSEMEM + help +diff -Naur linux-3.10.10.org/arch/arm/mach-kirkwood/dreamplug-setup.c linux-3.10.10/arch/arm/mach-kirkwood/dreamplug-setup.c +--- linux-3.10.10.org/arch/arm/mach-kirkwood/dreamplug-setup.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.10.10/arch/arm/mach-kirkwood/dreamplug-setup.c 2013-09-02 21:29:28.000000000 +0200 +@@ -0,0 +1,151 @@ ++/* ++ * arch/arm/mach-kirkwood/dreamplug-setup.c ++ * ++ * Marvell DreamPlug Reference Board Setup ++ * ++ * This file is licensed under the terms of the GNU General Public ++ * License version 2. This program is licensed "as is" without any ++ * warranty of any kind, whether express or implied. ++ */ ++ ++#include <linux/kernel.h> ++#include <linux/init.h> ++#include <linux/platform_device.h> ++#include <linux/mtd/mtd.h> ++#include <linux/mtd/partitions.h> ++#include <linux/ata_platform.h> ++#include <linux/mv643xx_eth.h> ++#include <linux/gpio.h> ++#include <linux/leds.h> ++#include <linux/spi/flash.h> ++#include <linux/spi/spi.h> ++#include <asm/mach-types.h> ++#include <asm/mach/arch.h> ++#include <mach/kirkwood.h> ++#include <linux/platform_data/mmc-mvsdio.h> ++#include "common.h" ++#include "mpp.h" ++ ++static const struct flash_platform_data dreamplug_spi_slave_data = { ++ .type = "mx25l1606e", ++}; ++ ++static struct spi_board_info __initdata dreamplug_spi_slave_info[] = { ++ { ++ .modalias = "m25p80", ++ .platform_data = &dreamplug_spi_slave_data, ++ .irq = -1, ++ .max_speed_hz = 50000000, ++ .bus_num = 0, ++ .chip_select = 0, ++ }, ++}; ++ ++static struct mv643xx_eth_platform_data dreamplug_ge00_data = { ++ .phy_addr = MV643XX_ETH_PHY_ADDR(0), ++}; ++ ++static struct mv643xx_eth_platform_data dreamplug_ge01_data = { ++ .phy_addr = MV643XX_ETH_PHY_ADDR(1), ++}; ++ ++static struct mv_sata_platform_data dreamplug_sata_data = { ++ .n_ports = 1, ++}; ++ ++static struct mvsdio_platform_data dreamplug_mvsdio_data = { ++ /* unfortunately the CD signal has not been connected */ ++}; ++ ++static struct gpio_led dreamplug_led_pins[] = { ++ { ++ .name = "dreamplug:blue:bluetooth", ++ .gpio = 47, ++ .active_low = 1, ++ }, ++ { ++ .name = "dreamplug:green:wlan", ++ .gpio = 48, ++ .active_low = 1, ++ }, ++ { ++ .name = "dreamplug:blue:wlanap", ++ .gpio = 49, ++ .active_low = 1, ++ }, ++}; ++ ++static struct gpio_led_platform_data dreamplug_led_data = { ++ .leds = dreamplug_led_pins, ++ .num_leds = ARRAY_SIZE(dreamplug_led_pins), ++}; ++ ++static struct platform_device dreamplug_leds = { ++ .name = "leds-gpio", ++ .id = -1, ++ .dev = { ++ .platform_data = &dreamplug_led_data, ++ } ++}; ++ ++static unsigned int dreamplug_mpp_config[] __initdata = { ++ MPP0_SPI_SCn, ++ MPP1_SPI_MOSI, ++ MPP2_SPI_SCK, ++ MPP3_SPI_MISO, ++ MPP4_GPIO, ++ MPP5_GPO, ++ MPP7_GPO, ++ MPP18_GPO, ++ MPP19_GPO, ++ MPP47_GPIO, /* B_BLED */ ++ MPP48_GPIO, /* W_GLED */ ++ MPP49_GPIO, /* W_BLED */ ++ 0 ++}; ++ ++static void __init dreamplug_legacy_init(void) ++{ ++ /* ++ * Basic setup. Needs to be called early. ++ */ ++ kirkwood_init(); ++ kirkwood_mpp_conf(dreamplug_mpp_config); ++ ++ kirkwood_uart0_init(); ++ ++ spi_register_board_info(dreamplug_spi_slave_info, ++ ARRAY_SIZE(dreamplug_spi_slave_info)); ++ ++ kirkwood_spi_init(); ++ kirkwood_ehci_init(); ++ ++ kirkwood_ge00_init(&dreamplug_ge00_data); ++ kirkwood_ge01_init(&dreamplug_ge01_data); ++ kirkwood_sata_init(&dreamplug_sata_data); ++ kirkwood_sdio_init(&dreamplug_mvsdio_data); ++ ++ platform_device_register(&dreamplug_leds); ++} ++ ++MACHINE_START(DREAMPLUG, "Marvell DreamPlug Reference Board") ++ /* Maintainer: Siddarth Gore <gores <at> marvell.com> */ ++ .atag_offset = 0x100, ++ .init_machine = dreamplug_legacy_init, ++ .map_io = kirkwood_map_io, ++ .init_early = kirkwood_init_early, ++ .init_irq = kirkwood_init_irq, ++ .init_time = kirkwood_timer_init, ++ .restart = kirkwood_restart, ++MACHINE_END ++ ++MACHINE_START(DREAMPLUG1, "Marvell DreamPlug Reference Board") ++ .atag_offset = 0x100, ++ .init_machine = dreamplug_legacy_init, ++ .map_io = kirkwood_map_io, ++ .init_early = kirkwood_init_early, ++ .init_irq = kirkwood_init_irq, ++ .init_time = kirkwood_timer_init, ++ .restart = kirkwood_restart, ++ ++MACHINE_END +diff -Naur linux-3.10.10.org/arch/arm/mach-kirkwood/guruplug-setup.c linux-3.10.10/arch/arm/mach-kirkwood/guruplug-setup.c +--- linux-3.10.10.org/arch/arm/mach-kirkwood/guruplug-setup.c 2013-08-29 18:47:51.000000000 +0200 ++++ linux-3.10.10/arch/arm/mach-kirkwood/guruplug-setup.c 2013-09-02 19:37:02.000000000 +0200 +@@ -11,6 +11,7 @@ + #include <linux/kernel.h> + #include <linux/init.h> + #include <linux/platform_device.h> ++#include <linux/mtd/mtd.h> + #include <linux/mtd/partitions.h> + #include <linux/ata_platform.h> + #include <linux/mv643xx_eth.h> +@@ -27,15 +28,16 @@ + { + .name = "u-boot", + .offset = 0, +- .size = SZ_1M ++ .size = SZ_1M, ++ .mask_flags = MTD_WRITEABLE, /* read only */ + }, { + .name = "uImage", + .offset = MTDPART_OFS_NXTBLK, +- .size = SZ_4M ++ .size = SZ_4M, + }, { + .name = "root", + .offset = MTDPART_OFS_NXTBLK, +- .size = MTDPART_SIZ_FULL ++ .size = MTDPART_SIZ_FULL, + }, + }; + +diff -Naur linux-3.10.10.org/arch/arm/mach-kirkwood/iconnect-setup.c linux-3.10.10/arch/arm/mach-kirkwood/iconnect-setup.c +--- linux-3.10.10.org/arch/arm/mach-kirkwood/iconnect-setup.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.10.10/arch/arm/mach-kirkwood/iconnect-setup.c 2013-09-02 21:31:09.000000000 +0200 +@@ -0,0 +1,214 @@ ++/* ++ * arch/arm/mach-kirkwood/iconnect-setup.c ++ * ++ * Iomega iConnect Wireless Data Station Board Setup ++ * ++ * This file is licensed under the terms of the GNU General Public ++ * License version 2. This program is licensed "as is" without any ++ * warranty of any kind, whether express or implied. ++ */ ++ ++#include <linux/kernel.h> ++#include <linux/init.h> ++#include <linux/platform_device.h> ++#include <linux/mtd/mtd.h> ++#include <linux/mtd/partitions.h> ++#include <linux/ata_platform.h> ++#include <linux/mv643xx_eth.h> ++#include <linux/gpio.h> ++#include <linux/gpio_keys.h> ++#include <linux/i2c.h> ++#include <linux/input.h> ++#include <linux/leds.h> ++#include <asm/mach-types.h> ++#include <asm/mach/arch.h> ++#include <mach/kirkwood.h> ++#include "common.h" ++#include "mpp.h" ++ ++static struct mtd_partition iconnect_nand_parts[] = { ++ { ++ .name = "u-boot", ++ .offset = 0, ++ .size = SZ_1M, ++ .mask_flags = MTD_WRITEABLE, /* read only */ ++ }, { ++ .name = "uImage", ++ .offset = MTDPART_OFS_NXTBLK, ++ .size = 0x440000, ++ }, { ++ .name = "uInit", ++ .offset = MTDPART_OFS_NXTBLK, ++ .size = 0x440000, ++ }, { ++ .name = "root", ++ .offset = MTDPART_OFS_NXTBLK, ++ .size = MTDPART_SIZ_FULL, ++ }, ++}; ++ ++static struct mv643xx_eth_platform_data iconnect_ge00_data = { ++ .phy_addr = MV643XX_ETH_PHY_ADDR(0xB), ++}; ++ ++static struct gpio_led iconnect_led_pins[] = { ++ { ++ .name = "iconnect:led_level", ++ .default_trigger = "default-on", ++ .gpio = 41, ++ .active_low = 0, ++ }, ++ ++ { ++ .name = "iconnect:blue:power", ++ .default_trigger = "default-on", ++ .gpio = 42, ++ .active_low = 0, ++ }, ++ { ++ .name = "iconnect:red:power", ++ .default_trigger = "none", ++ .gpio = 43, ++ .active_low = 0, ++ }, ++ { ++ .name = "iconnect:blue:usb_1", ++ .default_trigger = "none", ++ .gpio = 44, ++ .active_low = 0, ++ }, ++ { ++ .name = "iconnect:blue:usb_2", ++ .default_trigger = "none", ++ .gpio = 45, ++ .active_low = 0, ++ }, ++ { ++ .name = "iconnect:blue:usb_3", ++ .default_trigger = "none", ++ .gpio = 46, ++ .active_low = 0, ++ }, ++ { ++ .name = "iconnect:blue:usb_4", ++ .default_trigger = "none", ++ .gpio = 47, ++ .active_low = 0, ++ }, ++ { ++ .name = "iconnect:blue:otb", ++ .default_trigger = "none", ++ .gpio = 48, ++ .active_low = 0, ++ }, ++}; ++ ++static struct gpio_led_platform_data iconnect_led_data = { ++ .leds = iconnect_led_pins, ++ .num_leds = ARRAY_SIZE(iconnect_led_pins), ++}; ++ ++static struct platform_device iconnect_leds = { ++ .name = "leds-gpio", ++ .id = -1, ++ .dev = { ++ .platform_data = &iconnect_led_data, ++ } ++}; ++ ++static struct gpio_keys_button iconnect_buttons[] = { ++ { ++ .code = KEY_COPY, ++ .gpio = 35, ++ .desc = "OTB Button", ++ .active_low = 1, ++ }, ++ { ++ .code = KEY_RESTART, ++ .gpio = 12, ++ .desc = "Reset", ++ .active_low = 1, ++ }, ++}; ++ ++static struct gpio_keys_platform_data iconnect_button_data = { ++ .buttons = iconnect_buttons, ++ .nbuttons = ARRAY_SIZE(iconnect_buttons), ++}; ++ ++static struct platform_device iconnect_button_device = { ++ .name = "gpio-keys", ++ .id = -1, ++ .num_resources = 0, ++ .dev = { ++ .platform_data = &iconnect_button_data, ++ } ++}; ++ ++static unsigned int iconnect_mpp_config[] __initdata = { ++ MPP0_NF_IO2, ++ MPP1_NF_IO3, ++ MPP2_NF_IO4, ++ MPP3_NF_IO5, ++ MPP4_NF_IO6, ++ MPP5_NF_IO7, ++ MPP18_NF_IO0, ++ MPP19_NF_IO1, ++ MPP12_GPIO, /* Reset Button */ ++ MPP35_GPIO, /* OTB Button */ ++ ++ MPP41_GPIO, /* LED Level */ ++ MPP42_GPIO, /* Power LED blue */ ++ MPP43_GPIO, /* Power LED red */ ++ MPP44_GPIO, /* USB LED 1 */ ++ MPP45_GPIO, /* USB LED 2 */ ++ MPP46_GPIO, /* USB LED 3 */ ++ MPP47_GPIO, /* USB LED 4 */ ++ MPP48_GPIO, /* OTB LED */ ++ 0 ++}; ++ ++static struct i2c_board_info __initdata iconnect_i2c = { ++ I2C_BOARD_INFO("lm63", 0x4c), ++}; ++ ++static void __init iconnect_legacy_init(void) ++{ ++ /* ++ * Basic setup. Needs to be called early. ++ */ ++ kirkwood_init(); ++ kirkwood_mpp_conf(iconnect_mpp_config); ++ ++ kirkwood_nand_init(ARRAY_AND_SIZE(iconnect_nand_parts), 25); ++ kirkwood_ehci_init(); ++ kirkwood_ge00_init(&iconnect_ge00_data); ++ ++ kirkwood_uart0_init(); ++ platform_device_register(&iconnect_leds); ++ platform_device_register(&iconnect_button_device); ++ ++ kirkwood_i2c_init(); ++ i2c_register_board_info(0, &iconnect_i2c,1); ++} ++ ++static int __init iconnect_pci_init(void) ++{ ++ if (machine_is_iconnect()) { ++ kirkwood_pcie_init(KW_PCIE0); ++ } ++ return 0; ++} ++subsys_initcall(iconnect_pci_init); ++ ++MACHINE_START(ICONNECT, "Iomega iConnect Wireless Data Station") ++ /* Maintainer: Arne Fitzenreiter arne_f@ipfire.org */ ++ .atag_offset = 0x100, ++ .init_machine = iconnect_legacy_init, ++ .map_io = kirkwood_map_io, ++ .init_early = kirkwood_init_early, ++ .init_irq = kirkwood_init_irq, ++ .init_time = kirkwood_timer_init, ++ .restart = kirkwood_restart, ++ ++MACHINE_END +diff -Naur linux-3.10.10.org/arch/arm/mach-kirkwood/Kconfig linux-3.10.10/arch/arm/mach-kirkwood/Kconfig +--- linux-3.10.10.org/arch/arm/mach-kirkwood/Kconfig 2013-08-29 18:47:51.000000000 +0200 ++++ linux-3.10.10/arch/arm/mach-kirkwood/Kconfig 2013-09-02 19:37:02.000000000 +0200 +@@ -116,6 +116,12 @@ + Say 'Y' here if you want your kernel to support the + HP t5325 Thin Client. + ++config MACH_DREAMPLUG ++ bool "Marvell DreamPlug Reference Board" ++ help ++ Say 'Y' here if you want your kernel to support the ++ Marvell DreamPlug Reference Board. ++ + config MACH_TS219 + bool "QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and TS-219P+ Turbo NAS" + help +@@ -317,6 +323,18 @@ + or MV6282. If you have the wrong one, the buttons will not + work. + ++config MACH_ICONNECT ++ bool "Iomega iConnect Wireless Data Station" ++ help ++ Say 'Y' here if you want your kernel to support the ++ Iomega iConnect Wireless Data Station. ++ ++config MACH_NAS6210 ++ bool "Raidsonic ICY BOX IB-62x0" ++ help ++ Say 'Y' here if you want your kernel to support the ++ Raidsonic ICY BOX IB-62x0. ++ + endmenu + + endif +diff -Naur linux-3.10.10.org/arch/arm/mach-kirkwood/Makefile linux-3.10.10/arch/arm/mach-kirkwood/Makefile +--- linux-3.10.10.org/arch/arm/mach-kirkwood/Makefile 2013-08-29 18:47:51.000000000 +0200 ++++ linux-3.10.10/arch/arm/mach-kirkwood/Makefile 2013-09-02 19:50:19.000000000 +0200 +@@ -5,6 +5,7 @@ + obj-$(CONFIG_MACH_DOCKSTAR) += dockstar-setup.o + obj-$(CONFIG_MACH_ESATA_SHEEVAPLUG) += sheevaplug-setup.o + obj-$(CONFIG_MACH_GURUPLUG) += guruplug-setup.o ++obj-$(CONFIG_MACH_DREAMPLUG) += dreamplug-setup.o + obj-$(CONFIG_MACH_INETSPACE_V2) += netspace_v2-setup.o lacie_v2-common.o + obj-$(CONFIG_MACH_MV88F6281GTW_GE) += mv88f6281gtw_ge-setup.o + obj-$(CONFIG_MACH_NET2BIG_V2) += netxbig_v2-setup.o lacie_v2-common.o +@@ -18,6 +19,8 @@ + obj-$(CONFIG_MACH_T5325) += t5325-setup.o + obj-$(CONFIG_MACH_TS219) += ts219-setup.o tsx1x-common.o + obj-$(CONFIG_MACH_TS41X) += ts41x-setup.o tsx1x-common.o ++obj-$(CONFIG_MACH_ICONNECT) += iconnect-setup.o ++obj-$(CONFIG_MACH_NAS6210) += nas6210-setup.o + + obj-$(CONFIG_ARCH_KIRKWOOD_DT) += board-dt.o + obj-$(CONFIG_MACH_CLOUDBOX_DT) += board-ns2.o +diff -Naur linux-3.10.10.org/arch/arm/mach-kirkwood/nas6210-setup.c linux-3.10.10/arch/arm/mach-kirkwood/nas6210-setup.c +--- linux-3.10.10.org/arch/arm/mach-kirkwood/nas6210-setup.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.10.10/arch/arm/mach-kirkwood/nas6210-setup.c 2013-09-02 21:32:36.000000000 +0200 +@@ -0,0 +1,185 @@ ++/* ++ * arch/arm/mach-kirkwood/nas6210-setup.c ++ * ++ * Raidsonic ICYBOX NAS6210 and 6220 Board Setup ++ * ++ * This file is licensed under the terms of the GNU General Public ++ * License version 2. This program is licensed "as is" without any ++ * warranty of any kind, whether express or implied. ++ */ ++ ++#include <linux/kernel.h> ++#include <linux/init.h> ++#include <linux/platform_device.h> ++#include <linux/mtd/mtd.h> ++#include <linux/mtd/partitions.h> ++#include <linux/ata_platform.h> ++#include <linux/mv643xx_eth.h> ++#include <linux/gpio.h> ++#include <linux/gpio_keys.h> ++#include <linux/i2c.h> ++#include <linux/input.h> ++#include <linux/leds.h> ++#include <asm/mach-types.h> ++#include <asm/mach/arch.h> ++#include <mach/kirkwood.h> ++#include "common.h" ++#include "mpp.h" ++ ++#define NAS6210_GPIO_POWER_OFF 24 ++ ++static struct mtd_partition nas6210_nand_parts[] = { ++ { ++ .name = "u-boot", ++ .offset = 0, ++ .size = SZ_1M, ++ .mask_flags = MTD_WRITEABLE, /* read only */ ++ }, { ++ .name = "uImage", ++ .offset = MTDPART_OFS_NXTBLK, ++ .size = (SZ_1M*6), ++ }, { ++ .name = "root", ++ .offset = MTDPART_OFS_NXTBLK, ++ .size = MTDPART_SIZ_FULL, ++ }, ++}; ++ ++static struct mv643xx_eth_platform_data nas6210_ge00_data = { ++ .phy_addr = MV643XX_ETH_PHY_ADDR(8), ++}; ++ ++static struct mv_sata_platform_data nas6210_sata_data = { ++ .n_ports = 2, ++}; ++ ++static struct gpio_led nas6210_led_pins[] = { ++ { ++ .name = "nas6210:green:power", ++ .default_trigger = "default-on", ++ .gpio = 25, ++ .active_low = 0, ++ }, ++ { ++ .name = "nas6210:red:power", ++ .default_trigger = "none", ++ .gpio = 22, ++ .active_low = 0, ++ }, ++ { ++ .name = "nas6210:red:usb_copy", ++ .default_trigger = "none", ++ .gpio = 27, ++ .active_low = 0, ++ }, ++}; ++ ++static struct gpio_led_platform_data nas6210_led_data = { ++ .leds = nas6210_led_pins, ++ .num_leds = ARRAY_SIZE(nas6210_led_pins), ++}; ++ ++static struct platform_device nas6210_leds = { ++ .name = "leds-gpio", ++ .id = -1, ++ .dev = { ++ .platform_data = &nas6210_led_data, ++ } ++}; ++ ++static struct gpio_keys_button nas6210_buttons[] = { ++ { ++ .code = KEY_COPY, ++ .gpio = 29, ++ .desc = "USB Copy", ++ .active_low = 1, ++ }, ++ { ++ .code = KEY_RESTART, ++ .gpio = 28, ++ .desc = "Reset", ++ .active_low = 1, ++ }, ++}; ++ ++static struct gpio_keys_platform_data nas6210_button_data = { ++ .buttons = nas6210_buttons, ++ .nbuttons = ARRAY_SIZE(nas6210_buttons), ++}; ++ ++static struct platform_device nas6210_button_device = { ++ .name = "gpio-keys", ++ .id = -1, ++ .num_resources = 0, ++ .dev = { ++ .platform_data = &nas6210_button_data, ++ } ++}; ++ ++static unsigned int nas6210_mpp_config[] __initdata = { ++ MPP0_NF_IO2, ++ MPP1_NF_IO3, ++ MPP2_NF_IO4, ++ MPP3_NF_IO5, ++ MPP4_NF_IO6, ++ MPP5_NF_IO7, ++ MPP18_NF_IO0, ++ MPP19_NF_IO1, ++ MPP22_GPIO, /* Power LED red */ ++ MPP24_GPIO, /* Power off */ ++ MPP25_GPIO, /* Power LED green */ ++ MPP27_GPIO, /* USB transfer LED */ ++ MPP28_GPIO, /* Reset button */ ++ MPP29_GPIO, /* USB Copy button */ ++ 0 ++}; ++ ++void nas6210_power_off(void) ++{ ++ gpio_set_value(NAS6210_GPIO_POWER_OFF, 1); ++ while(1); ++} ++ ++static void __init nas6210_init(void) ++{ ++ /* ++ * Basic setup. Needs to be called early. ++ */ ++ kirkwood_init(); ++ kirkwood_mpp_conf(nas6210_mpp_config); ++ ++ kirkwood_nand_init(ARRAY_AND_SIZE(nas6210_nand_parts), 25); ++ kirkwood_ehci_init(); ++ kirkwood_ge00_init(&nas6210_ge00_data); ++ kirkwood_sata_init(&nas6210_sata_data); ++ kirkwood_uart0_init(); ++ platform_device_register(&nas6210_leds); ++ platform_device_register(&nas6210_button_device); ++ ++ if (gpio_request(NAS6210_GPIO_POWER_OFF, "power-off") == 0 && ++ gpio_direction_output(NAS6210_GPIO_POWER_OFF, 0) == 0) ++ pm_power_off = nas6210_power_off; ++ ++ else ++ pr_err("nas6210: failed to configure power-off gpio pin"); ++} ++ ++static int __init nas6210_pci_init(void) ++{ ++ if (machine_is_nas6210()) { ++ kirkwood_pcie_init(KW_PCIE0); ++ } ++ return 0; ++} ++subsys_initcall(nas6210_pci_init); ++ ++MACHINE_START(NAS6210, "RaidSonic ICY BOX IB-NAS62x0") ++ /* Maintainer: Arne Fitzenreiter arne_f@ipfire.org */ ++ .atag_offset = 0x00000100, ++ .init_machine = nas6210_init, ++ .map_io = kirkwood_map_io, ++ .init_early = kirkwood_init_early, ++ .init_irq = kirkwood_init_irq, ++ .init_time = kirkwood_timer_init, ++ .restart = kirkwood_restart, ++MACHINE_END +diff -Naur linux-3.10.10.org/arch/arm/tools/mach-types linux-3.10.10/arch/arm/tools/mach-types +--- linux-3.10.10.org/arch/arm/tools/mach-types 2013-08-29 18:47:51.000000000 +0200 ++++ linux-3.10.10/arch/arm/tools/mach-types 2013-09-02 22:06:34.000000000 +0200 +@@ -447,6 +447,7 @@ + smartq5 MACH_SMARTQ5 SMARTQ5 2534 + davinci_dm6467tevm MACH_DAVINCI_DM6467TEVM DAVINCI_DM6467TEVM 2548 + mxt_td60 MACH_MXT_TD60 MXT_TD60 2550 ++guruplug MACH_GURUPLUG GURUPLUG 2601 + capc7117 MACH_CAPC7117 CAPC7117 2612 + icontrol MACH_ICONTROL ICONTROL 2624 + gplugd MACH_GPLUGD GPLUGD 2625 +@@ -454,7 +455,7 @@ + mx23evk MACH_MX23EVK MX23EVK 2629 + ap4evb MACH_AP4EVB AP4EVB 2630 + mityomapl138 MACH_MITYOMAPL138 MITYOMAPL138 2650 +-guruplug MACH_GURUPLUG GURUPLUG 2659 ++dreamplug1 MACH_DREAMPLUG1 DREAMPLUG1 2659 + spear310 MACH_SPEAR310 SPEAR310 2660 + spear320 MACH_SPEAR320 SPEAR320 2661 + aquila MACH_AQUILA AQUILA 2676 +@@ -491,6 +492,7 @@ + t5325 MACH_T5325 T5325 2846 + income MACH_INCOME INCOME 2849 + goni MACH_GONI GONI 2862 ++iconnect MACH_ICONNECT ICONNECT 2870 + bv07 MACH_BV07 BV07 2882 + openrd_ultimate MACH_OPENRD_ULTIMATE OPENRD_ULTIMATE 2884 + devixp MACH_DEVIXP DEVIXP 2885 +@@ -520,6 +522,7 @@ + vpr200 MACH_VPR200 VPR200 3087 + torbreck MACH_TORBRECK TORBRECK 3090 + prima2_evb MACH_PRIMA2_EVB PRIMA2_EVB 3103 ++nas6210 MACH_NAS6210 NAS6210 3104 + paz00 MACH_PAZ00 PAZ00 3128 + acmenetusfoxg20 MACH_ACMENETUSFOXG20 ACMENETUSFOXG20 3129 + ag5evm MACH_AG5EVM AG5EVM 3189 +@@ -544,6 +547,7 @@ + nspire MACH_NSPIRE NSPIRE 3503 + nokia_rm696 MACH_NOKIA_RM696 NOKIA_RM696 3522 + mikrap_x168 MACH_MIKRAP_X168 MIKRAP_X168 3543 ++dreamplug MACH_DREAMPLUG DREAMPLUG 3550 + deto_macarm9 MACH_DETO_MACARM9 DETO_MACARM9 3568 + m28evk MACH_M28EVK M28EVK 3613 + kota2 MACH_KOTA2 KOTA2 3616 diff --git a/src/patches/linux-3.10.10-mv_cesa_disable_failing_hmac_sha1.patch b/src/patches/linux-3.10.10-mv_cesa_disable_failing_hmac_sha1.patch new file mode 100644 index 0000000..e892d88 --- /dev/null +++ b/src/patches/linux-3.10.10-mv_cesa_disable_failing_hmac_sha1.patch @@ -0,0 +1,19 @@ +diff -Naur linux-3.10.10.org/drivers/crypto/mv_cesa.c linux-3.10.10/drivers/crypto/mv_cesa.c +--- linux-3.10.10.org/drivers/crypto/mv_cesa.c 2013-08-29 18:47:51.000000000 +0200 ++++ linux-3.10.10/drivers/crypto/mv_cesa.c 2013-09-04 13:06:35.000000000 +0200 +@@ -1120,6 +1120,7 @@ + else + printk(KERN_WARNING MV_CESA "Could not register sha1 driver\n"); + ++/* + ret = crypto_register_ahash(&mv_hmac_sha1_alg); + if (ret == 0) { + cpg->has_hmac_sha1 = 1; +@@ -1127,6 +1128,7 @@ + printk(KERN_WARNING MV_CESA + "Could not register hmac-sha1 driver\n"); + } ++*/ + + return 0; + err_unreg_ecb: diff --git a/src/patches/linux-3.10.27-fs-exec-atomic64-operand-requires-impossible-reload.patch b/src/patches/linux-3.10.27-fs-exec-atomic64-operand-requires-impossible-reload.patch new file mode 100644 index 0000000..a829790 --- /dev/null +++ b/src/patches/linux-3.10.27-fs-exec-atomic64-operand-requires-impossible-reload.patch @@ -0,0 +1,11 @@ +--- a/fs/Makefile.orig 2014-01-16 20:17:03.000000000 +0000 ++++ b/fs/Makefile 2014-01-16 20:25:05.000000000 +0000 +@@ -13,6 +13,8 @@ + pnode.o splice.o sync.o utimes.o \ + stack.o fs_struct.o statfs.o + ++CFLAGS_exec.o += -O1 ++ + ifeq ($(CONFIG_BLOCK),y) + obj-y += buffer.o bio.o block_dev.o direct-io.o mpage.o ioprio.o + else diff --git a/src/patches/linux-3.10.30-imq.patch b/src/patches/linux-3.10.30-imq.patch new file mode 100644 index 0000000..7eebd69 --- /dev/null +++ b/src/patches/linux-3.10.30-imq.patch @@ -0,0 +1,3304 @@ +diff -Naur linux-3.10.30.org/drivers/net/imq.c linux-3.10.30/drivers/net/imq.c +--- linux-3.10.30.org/drivers/net/imq.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.10.30/drivers/net/imq.c 2014-02-14 20:29:05.379402305 +0100 +@@ -0,0 +1,1001 @@ ++/* ++ * Pseudo-driver for the intermediate queue device. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version ++ * 2 of the License, or (at your option) any later version. ++ * ++ * Authors: Patrick McHardy, kaber@trash.net ++ * ++ * The first version was written by Martin Devera, devik@cdi.cz ++ * ++ * Credits: Jan Rafaj imq2t@cedric.vabo.cz ++ * - Update patch to 2.4.21 ++ * Sebastian Strollo sstrollo@nortelnetworks.com ++ * - Fix "Dead-loop on netdevice imq"-issue ++ * Marcel Sebek sebek64@post.cz ++ * - Update to 2.6.2-rc1 ++ * ++ * After some time of inactivity there is a group taking care ++ * of IMQ again: http://www.linuximq.net ++ * ++ * ++ * 2004/06/30 - New version of IMQ patch to kernels <=2.6.7 ++ * including the following changes: ++ * ++ * - Correction of ipv6 support "+"s issue (Hasso Tepper) ++ * - Correction of imq_init_devs() issue that resulted in ++ * kernel OOPS unloading IMQ as module (Norbert Buchmuller) ++ * - Addition of functionality to choose number of IMQ devices ++ * during kernel config (Andre Correa) ++ * - Addition of functionality to choose how IMQ hooks on ++ * PRE and POSTROUTING (after or before NAT) (Andre Correa) ++ * - Cosmetic corrections (Norbert Buchmuller) (Andre Correa) ++ * ++ * ++ * 2005/12/16 - IMQ versions between 2.6.7 and 2.6.13 were ++ * released with almost no problems. 2.6.14-x was released ++ * with some important changes: nfcache was removed; After ++ * some weeks of trouble we figured out that some IMQ fields ++ * in skb were missing in skbuff.c - skb_clone and copy_skb_header. ++ * These functions are correctly patched by this new patch version. ++ * ++ * Thanks for all who helped to figure out all the problems with ++ * 2.6.14.x: Patrick McHardy, Rune Kock, VeNoMouS, Max CtRiX, ++ * Kevin Shanahan, Richard Lucassen, Valery Dachev (hopefully ++ * I didn't forget anybody). I apologize again for my lack of time. ++ * ++ * ++ * 2008/06/17 - 2.6.25 - Changed imq.c to use qdisc_run() instead ++ * of qdisc_restart() and moved qdisc_run() to tasklet to avoid ++ * recursive locking. New initialization routines to fix 'rmmod' not ++ * working anymore. Used code from ifb.c. (Jussi Kivilinna) ++ * ++ * 2008/08/06 - 2.6.26 - (JK) ++ * - Replaced tasklet with 'netif_schedule()'. ++ * - Cleaned up and added comments for imq_nf_queue(). ++ * ++ * 2009/04/12 ++ * - Add skb_save_cb/skb_restore_cb helper functions for backuping ++ * control buffer. This is needed because qdisc-layer on kernels ++ * 2.6.27 and newer overwrite control buffer. (Jussi Kivilinna) ++ * - Add better locking for IMQ device. Hopefully this will solve ++ * SMP issues. (Jussi Kivilinna) ++ * - Port to 2.6.27 ++ * - Port to 2.6.28 ++ * - Port to 2.6.29 + fix rmmod not working ++ * ++ * 2009/04/20 - (Jussi Kivilinna) ++ * - Use netdevice feature flags to avoid extra packet handling ++ * by core networking layer and possibly increase performance. ++ * ++ * 2009/09/26 - (Jussi Kivilinna) ++ * - Add imq_nf_reinject_lockless to fix deadlock with ++ * imq_nf_queue/imq_nf_reinject. ++ * ++ * 2009/12/08 - (Jussi Kivilinna) ++ * - Port to 2.6.32 ++ * - Add check for skb->nf_queue_entry==NULL in imq_dev_xmit() ++ * - Also add better error checking for skb->nf_queue_entry usage ++ * ++ * 2010/02/25 - (Jussi Kivilinna) ++ * - Port to 2.6.33 ++ * ++ * 2010/08/15 - (Jussi Kivilinna) ++ * - Port to 2.6.35 ++ * - Simplify hook registration by using nf_register_hooks. ++ * - nf_reinject doesn't need spinlock around it, therefore remove ++ * imq_nf_reinject function. Other nf_reinject users protect ++ * their own data with spinlock. With IMQ however all data is ++ * needed is stored per skbuff, so no locking is needed. ++ * - Changed IMQ to use 'separate' NF_IMQ_QUEUE instead of ++ * NF_QUEUE, this allows working coexistance of IMQ and other ++ * NF_QUEUE users. ++ * - Make IMQ multi-queue. Number of IMQ device queues can be ++ * increased with 'numqueues' module parameters. Default number ++ * of queues is 1, in other words by default IMQ works as ++ * single-queue device. Multi-queue selection is based on ++ * IFB multi-queue patch by Changli Gao xiaosuo@gmail.com. ++ * ++ * 2011/03/18 - (Jussi Kivilinna) ++ * - Port to 2.6.38 ++ * ++ * 2011/07/12 - (syoder89@gmail.com) ++ * - Crash fix that happens when the receiving interface has more ++ * than one queue (add missing skb_set_queue_mapping in ++ * imq_select_queue). ++ * ++ * 2011/07/26 - (Jussi Kivilinna) ++ * - Add queue mapping checks for packets exiting IMQ. ++ * - Port to 3.0 ++ * ++ * 2011/08/16 - (Jussi Kivilinna) ++ * - Clear IFF_TX_SKB_SHARING flag that was added for linux 3.0.2 ++ * ++ * 2011/11/03 - Germano Michel germanomichel@gmail.com ++ * - Fix IMQ for net namespaces ++ * ++ * 2011/11/04 - Jussi Kivilinna jussi.kivilinna@mbnet.fi ++ * - Port to 3.1 ++ * - Clean-up, move 'get imq device pointer by imqX name' to ++ * separate function from imq_nf_queue(). ++ * ++ * 2012/01/05 - Jussi Kivilinna jussi.kivilinna@mbnet.fi ++ * - Port to 3.2 ++ * ++ * 2012/03/19 - Jussi Kivilinna jussi.kivilinna@mbnet.fi ++ * - Port to 3.3 ++ * ++ * 2012/12/12 - Jussi Kivilinna jussi.kivilinna@mbnet.fi ++ * - Port to 3.7 ++ * - Fix checkpatch.pl warnings ++ * ++ * 2013/09/10 - Jussi Kivilinna jussi.kivilinna@iki.fi ++ * - Fixed GSO handling for 3.10, see imq_nf_queue() for comments. ++ * - Don't copy skb->cb_next when copying or cloning skbuffs. ++ * ++ * Also, many thanks to pablo Sebastian Greco for making the initial ++ * patch and to those who helped the testing. ++ * ++ * More info at: http://www.linuximq.net/ (Andre Correa) ++ */ ++ ++#include <linux/module.h> ++#include <linux/kernel.h> ++#include <linux/moduleparam.h> ++#include <linux/list.h> ++#include <linux/skbuff.h> ++#include <linux/netdevice.h> ++#include <linux/etherdevice.h> ++#include <linux/rtnetlink.h> ++#include <linux/if_arp.h> ++#include <linux/netfilter.h> ++#include <linux/netfilter_ipv4.h> ++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) ++ #include <linux/netfilter_ipv6.h> ++#endif ++#include <linux/imq.h> ++#include <net/pkt_sched.h> ++#include <net/netfilter/nf_queue.h> ++#include <net/sock.h> ++#include <linux/ip.h> ++#include <linux/ipv6.h> ++#include <linux/if_vlan.h> ++#include <linux/if_pppox.h> ++#include <net/ip.h> ++#include <net/ipv6.h> ++ ++static int imq_nf_queue(struct nf_queue_entry *entry, unsigned queue_num); ++ ++static nf_hookfn imq_nf_hook; ++ ++static struct nf_hook_ops imq_ops[] = { ++ { ++ /* imq_ingress_ipv4 */ ++ .hook = imq_nf_hook, ++ .owner = THIS_MODULE, ++ .pf = PF_INET, ++ .hooknum = NF_INET_PRE_ROUTING, ++#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB) ++ .priority = NF_IP_PRI_MANGLE + 1, ++#else ++ .priority = NF_IP_PRI_NAT_DST + 1, ++#endif ++ }, ++ { ++ /* imq_egress_ipv4 */ ++ .hook = imq_nf_hook, ++ .owner = THIS_MODULE, ++ .pf = PF_INET, ++ .hooknum = NF_INET_POST_ROUTING, ++#if defined(CONFIG_IMQ_BEHAVIOR_AA) || defined(CONFIG_IMQ_BEHAVIOR_BA) ++ .priority = NF_IP_PRI_LAST, ++#else ++ .priority = NF_IP_PRI_NAT_SRC - 1, ++#endif ++ }, ++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) ++ { ++ /* imq_ingress_ipv6 */ ++ .hook = imq_nf_hook, ++ .owner = THIS_MODULE, ++ .pf = PF_INET6, ++ .hooknum = NF_INET_PRE_ROUTING, ++#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB) ++ .priority = NF_IP6_PRI_MANGLE + 1, ++#else ++ .priority = NF_IP6_PRI_NAT_DST + 1, ++#endif ++ }, ++ { ++ /* imq_egress_ipv6 */ ++ .hook = imq_nf_hook, ++ .owner = THIS_MODULE, ++ .pf = PF_INET6, ++ .hooknum = NF_INET_POST_ROUTING, ++#if defined(CONFIG_IMQ_BEHAVIOR_AA) || defined(CONFIG_IMQ_BEHAVIOR_BA) ++ .priority = NF_IP6_PRI_LAST, ++#else ++ .priority = NF_IP6_PRI_NAT_SRC - 1, ++#endif ++ }, ++#endif ++}; ++ ++#if defined(CONFIG_IMQ_NUM_DEVS) ++static int numdevs = CONFIG_IMQ_NUM_DEVS; ++#else ++static int numdevs = IMQ_MAX_DEVS; ++#endif ++ ++static struct net_device *imq_devs_cache[IMQ_MAX_DEVS]; ++ ++#define IMQ_MAX_QUEUES 32 ++static int numqueues = 1; ++static u32 imq_hashrnd; ++ ++static inline __be16 pppoe_proto(const struct sk_buff *skb) ++{ ++ return *((__be16 *)(skb_mac_header(skb) + ETH_HLEN + ++ sizeof(struct pppoe_hdr))); ++} ++ ++static u16 imq_hash(struct net_device *dev, struct sk_buff *skb) ++{ ++ unsigned int pull_len; ++ u16 protocol = skb->protocol; ++ u32 addr1, addr2; ++ u32 hash, ihl = 0; ++ union { ++ u16 in16[2]; ++ u32 in32; ++ } ports; ++ u8 ip_proto; ++ ++ pull_len = 0; ++ ++recheck: ++ switch (protocol) { ++ case htons(ETH_P_8021Q): { ++ if (unlikely(skb_pull(skb, VLAN_HLEN) == NULL)) ++ goto other; ++ ++ pull_len += VLAN_HLEN; ++ skb->network_header += VLAN_HLEN; ++ ++ protocol = vlan_eth_hdr(skb)->h_vlan_encapsulated_proto; ++ goto recheck; ++ } ++ ++ case htons(ETH_P_PPP_SES): { ++ if (unlikely(skb_pull(skb, PPPOE_SES_HLEN) == NULL)) ++ goto other; ++ ++ pull_len += PPPOE_SES_HLEN; ++ skb->network_header += PPPOE_SES_HLEN; ++ ++ protocol = pppoe_proto(skb); ++ goto recheck; ++ } ++ ++ case htons(ETH_P_IP): { ++ const struct iphdr *iph = ip_hdr(skb); ++ ++ if (unlikely(!pskb_may_pull(skb, sizeof(struct iphdr)))) ++ goto other; ++ ++ addr1 = iph->daddr; ++ addr2 = iph->saddr; ++ ++ ip_proto = !(ip_hdr(skb)->frag_off & htons(IP_MF | IP_OFFSET)) ? ++ iph->protocol : 0; ++ ihl = ip_hdrlen(skb); ++ ++ break; ++ } ++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) ++ case htons(ETH_P_IPV6): { ++ const struct ipv6hdr *iph = ipv6_hdr(skb); ++ __be16 fo = 0; ++ ++ if (unlikely(!pskb_may_pull(skb, sizeof(struct ipv6hdr)))) ++ goto other; ++ ++ addr1 = iph->daddr.s6_addr32[3]; ++ addr2 = iph->saddr.s6_addr32[3]; ++ ihl = ipv6_skip_exthdr(skb, sizeof(struct ipv6hdr), &ip_proto, ++ &fo); ++ if (unlikely(ihl < 0)) ++ goto other; ++ ++ break; ++ } ++#endif ++ default: ++other: ++ if (pull_len != 0) { ++ skb_push(skb, pull_len); ++ skb->network_header -= pull_len; ++ } ++ ++ return (u16)(ntohs(protocol) % dev->real_num_tx_queues); ++ } ++ ++ if (addr1 > addr2) ++ swap(addr1, addr2); ++ ++ switch (ip_proto) { ++ case IPPROTO_TCP: ++ case IPPROTO_UDP: ++ case IPPROTO_DCCP: ++ case IPPROTO_ESP: ++ case IPPROTO_AH: ++ case IPPROTO_SCTP: ++ case IPPROTO_UDPLITE: { ++ if (likely(skb_copy_bits(skb, ihl, &ports.in32, 4) >= 0)) { ++ if (ports.in16[0] > ports.in16[1]) ++ swap(ports.in16[0], ports.in16[1]); ++ break; ++ } ++ /* fall-through */ ++ } ++ default: ++ ports.in32 = 0; ++ break; ++ } ++ ++ if (pull_len != 0) { ++ skb_push(skb, pull_len); ++ skb->network_header -= pull_len; ++ } ++ ++ hash = jhash_3words(addr1, addr2, ports.in32, imq_hashrnd ^ ip_proto); ++ ++ return (u16)(((u64)hash * dev->real_num_tx_queues) >> 32); ++} ++ ++static inline bool sk_tx_queue_recorded(struct sock *sk) ++{ ++ return (sk_tx_queue_get(sk) >= 0); ++} ++ ++static struct netdev_queue *imq_select_queue(struct net_device *dev, ++ struct sk_buff *skb) ++{ ++ u16 queue_index = 0; ++ u32 hash; ++ ++ if (likely(dev->real_num_tx_queues == 1)) ++ goto out; ++ ++ /* IMQ can be receiving ingress or engress packets. */ ++ ++ /* Check first for if rx_queue is set */ ++ if (skb_rx_queue_recorded(skb)) { ++ queue_index = skb_get_rx_queue(skb); ++ goto out; ++ } ++ ++ /* Check if socket has tx_queue set */ ++ if (sk_tx_queue_recorded(skb->sk)) { ++ queue_index = sk_tx_queue_get(skb->sk); ++ goto out; ++ } ++ ++ /* Try use socket hash */ ++ if (skb->sk && skb->sk->sk_hash) { ++ hash = skb->sk->sk_hash; ++ queue_index = ++ (u16)(((u64)hash * dev->real_num_tx_queues) >> 32); ++ goto out; ++ } ++ ++ /* Generate hash from packet data */ ++ queue_index = imq_hash(dev, skb); ++ ++out: ++ if (unlikely(queue_index >= dev->real_num_tx_queues)) ++ queue_index = (u16)((u32)queue_index % dev->real_num_tx_queues); ++ ++ skb_set_queue_mapping(skb, queue_index); ++ return netdev_get_tx_queue(dev, queue_index); ++} ++ ++static struct net_device_stats *imq_get_stats(struct net_device *dev) ++{ ++ return &dev->stats; ++} ++ ++/* called for packets kfree'd in qdiscs at places other than enqueue */ ++static void imq_skb_destructor(struct sk_buff *skb) ++{ ++ struct nf_queue_entry *entry = skb->nf_queue_entry; ++ ++ skb->nf_queue_entry = NULL; ++ ++ if (entry) { ++ nf_queue_entry_release_refs(entry); ++ kfree(entry); ++ } ++ ++ skb_restore_cb(skb); /* kfree backup */ ++} ++ ++static void imq_done_check_queue_mapping(struct sk_buff *skb, ++ struct net_device *dev) ++{ ++ unsigned int queue_index; ++ ++ /* Don't let queue_mapping be left too large after exiting IMQ */ ++ if (likely(skb->dev != dev && skb->dev != NULL)) { ++ queue_index = skb_get_queue_mapping(skb); ++ if (unlikely(queue_index >= skb->dev->real_num_tx_queues)) { ++ queue_index = (u16)((u32)queue_index % ++ skb->dev->real_num_tx_queues); ++ skb_set_queue_mapping(skb, queue_index); ++ } ++ } else { ++ /* skb->dev was IMQ device itself or NULL, be on safe side and ++ * just clear queue mapping. ++ */ ++ skb_set_queue_mapping(skb, 0); ++ } ++} ++ ++static netdev_tx_t imq_dev_xmit(struct sk_buff *skb, struct net_device *dev) ++{ ++ struct nf_queue_entry *entry = skb->nf_queue_entry; ++ ++ skb->nf_queue_entry = NULL; ++ dev->trans_start = jiffies; ++ ++ dev->stats.tx_bytes += skb->len; ++ dev->stats.tx_packets++; ++ ++ if (unlikely(entry == NULL)) { ++ /* We don't know what is going on here.. packet is queued for ++ * imq device, but (probably) not by us. ++ * ++ * If this packet was not send here by imq_nf_queue(), then ++ * skb_save_cb() was not used and skb_free() should not show: ++ * WARNING: IMQ: kfree_skb: skb->cb_next:.. ++ * and/or ++ * WARNING: IMQ: kfree_skb: skb->nf_queue_entry... ++ * ++ * However if this message is shown, then IMQ is somehow broken ++ * and you should report this to linuximq.net. ++ */ ++ ++ /* imq_dev_xmit is black hole that eats all packets, report that ++ * we eat this packet happily and increase dropped counters. ++ */ ++ ++ dev->stats.tx_dropped++; ++ dev_kfree_skb(skb); ++ ++ return NETDEV_TX_OK; ++ } ++ ++ skb_restore_cb(skb); /* restore skb->cb */ ++ ++ skb->imq_flags = 0; ++ skb->destructor = NULL; ++ ++ imq_done_check_queue_mapping(skb, dev); ++ ++ nf_reinject(entry, NF_ACCEPT); ++ ++ return NETDEV_TX_OK; ++} ++ ++static struct net_device *get_imq_device_by_index(int index) ++{ ++ struct net_device *dev = NULL; ++ struct net *net; ++ char buf[8]; ++ ++ /* get device by name and cache result */ ++ snprintf(buf, sizeof(buf), "imq%d", index); ++ ++ /* Search device from all namespaces. */ ++ for_each_net(net) { ++ dev = dev_get_by_name(net, buf); ++ if (dev) ++ break; ++ } ++ ++ if (WARN_ON_ONCE(dev == NULL)) { ++ /* IMQ device not found. Exotic config? */ ++ return ERR_PTR(-ENODEV); ++ } ++ ++ imq_devs_cache[index] = dev; ++ dev_put(dev); ++ ++ return dev; ++} ++ ++static struct nf_queue_entry *nf_queue_entry_dup(struct nf_queue_entry *e) ++{ ++ struct nf_queue_entry *entry = kmemdup(e, e->size, GFP_ATOMIC); ++ if (entry) { ++ if (nf_queue_entry_get_refs(entry)) ++ return entry; ++ kfree(entry); ++ } ++ return NULL; ++} ++ ++#ifdef CONFIG_BRIDGE_NETFILTER ++/* When called from bridge netfilter, skb->data must point to MAC header ++ * before calling skb_gso_segment(). Else, original MAC header is lost ++ * and segmented skbs will be sent to wrong destination. ++ */ ++static void nf_bridge_adjust_skb_data(struct sk_buff *skb) ++{ ++ if (skb->nf_bridge) ++ __skb_push(skb, skb->network_header - skb->mac_header); ++} ++ ++static void nf_bridge_adjust_segmented_data(struct sk_buff *skb) ++{ ++ if (skb->nf_bridge) ++ __skb_pull(skb, skb->network_header - skb->mac_header); ++} ++#else ++#define nf_bridge_adjust_skb_data(s) do {} while (0) ++#define nf_bridge_adjust_segmented_data(s) do {} while (0) ++#endif ++ ++static void free_entry(struct nf_queue_entry *entry) ++{ ++ nf_queue_entry_release_refs(entry); ++ kfree(entry); ++} ++ ++static int __imq_nf_queue(struct nf_queue_entry *entry, struct net_device *dev); ++ ++static int __imq_nf_queue_gso(struct nf_queue_entry *entry, ++ struct net_device *dev, struct sk_buff *skb) ++{ ++ int ret = -ENOMEM; ++ struct nf_queue_entry *entry_seg; ++ ++ nf_bridge_adjust_segmented_data(skb); ++ ++ if (skb->next == NULL) { /* last packet, no need to copy entry */ ++ struct sk_buff *gso_skb = entry->skb; ++ entry->skb = skb; ++ ret = __imq_nf_queue(entry, dev); ++ if (ret) ++ entry->skb = gso_skb; ++ return ret; ++ } ++ ++ skb->next = NULL; ++ ++ entry_seg = nf_queue_entry_dup(entry); ++ if (entry_seg) { ++ entry_seg->skb = skb; ++ ret = __imq_nf_queue(entry_seg, dev); ++ if (ret) ++ free_entry(entry_seg); ++ } ++ return ret; ++} ++ ++static int imq_nf_queue(struct nf_queue_entry *entry, unsigned queue_num) ++{ ++ struct sk_buff *skb, *segs; ++ struct net_device *dev; ++ unsigned int queued; ++ int index, retval, err; ++ ++ index = entry->skb->imq_flags & IMQ_F_IFMASK; ++ if (unlikely(index > numdevs - 1)) { ++ if (net_ratelimit()) ++ pr_warn("IMQ: invalid device specified, highest is %u\n", ++ numdevs - 1); ++ retval = -EINVAL; ++ goto out_no_dev; ++ } ++ ++ /* check for imq device by index from cache */ ++ dev = imq_devs_cache[index]; ++ if (unlikely(!dev)) { ++ dev = get_imq_device_by_index(index); ++ if (IS_ERR(dev)) { ++ retval = PTR_ERR(dev); ++ goto out_no_dev; ++ } ++ } ++ ++ if (unlikely(!(dev->flags & IFF_UP))) { ++ entry->skb->imq_flags = 0; ++ retval = -ECANCELED; ++ goto out_no_dev; ++ } ++ ++ if (!skb_is_gso(entry->skb)) ++ return __imq_nf_queue(entry, dev); ++ ++ /* Since 3.10.x, GSO handling moved here as result of upstream commit ++ * a5fedd43d5f6c94c71053a66e4c3d2e35f1731a2 (netfilter: move ++ * skb_gso_segment into nfnetlink_queue module). ++ * ++ * Following code replicates the gso handling from ++ * 'net/netfilter/nfnetlink_queue_core.c':nfqnl_enqueue_packet(). ++ */ ++ ++ skb = entry->skb; ++ ++ switch (entry->pf) { ++ case NFPROTO_IPV4: ++ skb->protocol = htons(ETH_P_IP); ++ break; ++ case NFPROTO_IPV6: ++ skb->protocol = htons(ETH_P_IPV6); ++ break; ++ } ++ ++ nf_bridge_adjust_skb_data(skb); ++ segs = skb_gso_segment(skb, 0); ++ /* Does not use PTR_ERR to limit the number of error codes that can be ++ * returned by nf_queue. For instance, callers rely on -ECANCELED to ++ * mean 'ignore this hook'. ++ */ ++ err = -ENOBUFS; ++ if (IS_ERR(segs)) ++ goto out_err; ++ queued = 0; ++ err = 0; ++ do { ++ struct sk_buff *nskb = segs->next; ++ if (nskb && nskb->next) ++ nskb->cb_next = NULL; ++ if (err == 0) ++ err = __imq_nf_queue_gso(entry, dev, segs); ++ if (err == 0) ++ queued++; ++ else ++ kfree_skb(segs); ++ segs = nskb; ++ } while (segs); ++ ++ if (queued) { ++ if (err) /* some segments are already queued */ ++ free_entry(entry); ++ kfree_skb(skb); ++ return 0; ++ } ++ ++out_err: ++ nf_bridge_adjust_segmented_data(skb); ++ retval = err; ++out_no_dev: ++ return retval; ++} ++ ++static int __imq_nf_queue(struct nf_queue_entry *entry, struct net_device *dev) ++{ ++ struct sk_buff *skb_orig, *skb, *skb_shared; ++ struct Qdisc *q; ++ struct netdev_queue *txq; ++ spinlock_t *root_lock; ++ int users; ++ int retval = -EINVAL; ++ unsigned int orig_queue_index; ++ ++ dev->last_rx = jiffies; ++ ++ skb = entry->skb; ++ skb_orig = NULL; ++ ++ /* skb has owner? => make clone */ ++ if (unlikely(skb->destructor)) { ++ skb_orig = skb; ++ skb = skb_clone(skb, GFP_ATOMIC); ++ if (unlikely(!skb)) { ++ retval = -ENOMEM; ++ goto out; ++ } ++ skb->cb_next = NULL; ++ entry->skb = skb; ++ } ++ ++ skb->nf_queue_entry = entry; ++ ++ dev->stats.rx_bytes += skb->len; ++ dev->stats.rx_packets++; ++ ++ if (!skb->dev) { ++ /* skb->dev == NULL causes problems, try the find cause. */ ++ if (net_ratelimit()) { ++ dev_warn(&dev->dev, ++ "received packet with skb->dev == NULL\n"); ++ dump_stack(); ++ } ++ ++ skb->dev = dev; ++ } ++ ++ /* Disables softirqs for lock below */ ++ rcu_read_lock_bh(); ++ ++ /* Multi-queue selection */ ++ orig_queue_index = skb_get_queue_mapping(skb); ++ txq = imq_select_queue(dev, skb); ++ ++ q = rcu_dereference(txq->qdisc); ++ if (unlikely(!q->enqueue)) ++ goto packet_not_eaten_by_imq_dev; ++ ++ root_lock = qdisc_lock(q); ++ spin_lock(root_lock); ++ ++ users = atomic_read(&skb->users); ++ ++ skb_shared = skb_get(skb); /* increase reference count by one */ ++ ++ /* backup skb->cb, as qdisc layer will overwrite it */ ++ skb_save_cb(skb_shared); ++ qdisc_enqueue_root(skb_shared, q); /* might kfree_skb */ ++ ++ if (likely(atomic_read(&skb_shared->users) == users + 1)) { ++ kfree_skb(skb_shared); /* decrease reference count by one */ ++ ++ skb->destructor = &imq_skb_destructor; ++ ++ /* cloned? */ ++ if (unlikely(skb_orig)) ++ kfree_skb(skb_orig); /* free original */ ++ ++ spin_unlock(root_lock); ++ rcu_read_unlock_bh(); ++ ++ /* schedule qdisc dequeue */ ++ __netif_schedule(q); ++ ++ retval = 0; ++ goto out; ++ } else { ++ skb_restore_cb(skb_shared); /* restore skb->cb */ ++ skb->nf_queue_entry = NULL; ++ /* ++ * qdisc dropped packet and decreased skb reference count of ++ * skb, so we don't really want to and try refree as that would ++ * actually destroy the skb. ++ */ ++ spin_unlock(root_lock); ++ goto packet_not_eaten_by_imq_dev; ++ } ++ ++packet_not_eaten_by_imq_dev: ++ skb_set_queue_mapping(skb, orig_queue_index); ++ rcu_read_unlock_bh(); ++ ++ /* cloned? restore original */ ++ if (unlikely(skb_orig)) { ++ kfree_skb(skb); ++ entry->skb = skb_orig; ++ } ++ retval = -1; ++out: ++ return retval; ++} ++ ++static unsigned int imq_nf_hook(unsigned int hook, struct sk_buff *pskb, ++ const struct net_device *indev, ++ const struct net_device *outdev, ++ int (*okfn)(struct sk_buff *)) ++{ ++ return (pskb->imq_flags & IMQ_F_ENQUEUE) ? NF_IMQ_QUEUE : NF_ACCEPT; ++} ++ ++static int imq_close(struct net_device *dev) ++{ ++ netif_stop_queue(dev); ++ return 0; ++} ++ ++static int imq_open(struct net_device *dev) ++{ ++ netif_start_queue(dev); ++ return 0; ++} ++ ++static const struct net_device_ops imq_netdev_ops = { ++ .ndo_open = imq_open, ++ .ndo_stop = imq_close, ++ .ndo_start_xmit = imq_dev_xmit, ++ .ndo_get_stats = imq_get_stats, ++}; ++ ++static void imq_setup(struct net_device *dev) ++{ ++ dev->netdev_ops = &imq_netdev_ops; ++ dev->type = ARPHRD_VOID; ++ dev->mtu = 16000; /* too small? */ ++ dev->tx_queue_len = 11000; /* too big? */ ++ dev->flags = IFF_NOARP; ++ dev->features = NETIF_F_SG | NETIF_F_FRAGLIST | ++ NETIF_F_GSO | NETIF_F_HW_CSUM | ++ NETIF_F_HIGHDMA; ++ dev->priv_flags &= ~(IFF_XMIT_DST_RELEASE | ++ IFF_TX_SKB_SHARING); ++} ++ ++static int imq_validate(struct nlattr *tb[], struct nlattr *data[]) ++{ ++ int ret = 0; ++ ++ if (tb[IFLA_ADDRESS]) { ++ if (nla_len(tb[IFLA_ADDRESS]) != ETH_ALEN) { ++ ret = -EINVAL; ++ goto end; ++ } ++ if (!is_valid_ether_addr(nla_data(tb[IFLA_ADDRESS]))) { ++ ret = -EADDRNOTAVAIL; ++ goto end; ++ } ++ } ++ return 0; ++end: ++ pr_warn("IMQ: imq_validate failed (%d)\n", ret); ++ return ret; ++} ++ ++static struct rtnl_link_ops imq_link_ops __read_mostly = { ++ .kind = "imq", ++ .priv_size = 0, ++ .setup = imq_setup, ++ .validate = imq_validate, ++}; ++ ++static const struct nf_queue_handler imq_nfqh = { ++ .outfn = imq_nf_queue, ++}; ++ ++static int __init imq_init_hooks(void) ++{ ++ int ret; ++ ++ nf_register_queue_imq_handler(&imq_nfqh); ++ ++ ret = nf_register_hooks(imq_ops, ARRAY_SIZE(imq_ops)); ++ if (ret < 0) ++ nf_unregister_queue_imq_handler(); ++ ++ return ret; ++} ++ ++static int __init imq_init_one(int index) ++{ ++ struct net_device *dev; ++ int ret; ++ ++ dev = alloc_netdev_mq(0, "imq%d", imq_setup, numqueues); ++ if (!dev) ++ return -ENOMEM; ++ ++ ret = dev_alloc_name(dev, dev->name); ++ if (ret < 0) ++ goto fail; ++ ++ dev->rtnl_link_ops = &imq_link_ops; ++ ret = register_netdevice(dev); ++ if (ret < 0) ++ goto fail; ++ ++ return 0; ++fail: ++ free_netdev(dev); ++ return ret; ++} ++ ++static int __init imq_init_devs(void) ++{ ++ int err, i; ++ ++ if (numdevs < 1 || numdevs > IMQ_MAX_DEVS) { ++ pr_err("IMQ: numdevs has to be betweed 1 and %u\n", ++ IMQ_MAX_DEVS); ++ return -EINVAL; ++ } ++ ++ if (numqueues < 1 || numqueues > IMQ_MAX_QUEUES) { ++ pr_err("IMQ: numqueues has to be betweed 1 and %u\n", ++ IMQ_MAX_QUEUES); ++ return -EINVAL; ++ } ++ ++ get_random_bytes(&imq_hashrnd, sizeof(imq_hashrnd)); ++ ++ rtnl_lock(); ++ err = __rtnl_link_register(&imq_link_ops); ++ ++ for (i = 0; i < numdevs && !err; i++) ++ err = imq_init_one(i); ++ ++ if (err) { ++ __rtnl_link_unregister(&imq_link_ops); ++ memset(imq_devs_cache, 0, sizeof(imq_devs_cache)); ++ } ++ rtnl_unlock(); ++ ++ return err; ++} ++ ++static int __init imq_init_module(void) ++{ ++ int err; ++ ++#if defined(CONFIG_IMQ_NUM_DEVS) ++ BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS > 16); ++ BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS < 2); ++ BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS - 1 > IMQ_F_IFMASK); ++#endif ++ ++ err = imq_init_devs(); ++ if (err) { ++ pr_err("IMQ: Error trying imq_init_devs(net)\n"); ++ return err; ++ } ++ ++ err = imq_init_hooks(); ++ if (err) { ++ pr_err(KERN_ERR "IMQ: Error trying imq_init_hooks()\n"); ++ rtnl_link_unregister(&imq_link_ops); ++ memset(imq_devs_cache, 0, sizeof(imq_devs_cache)); ++ return err; ++ } ++ ++ pr_info("IMQ driver loaded successfully. (numdevs = %d, numqueues = %d)\n", ++ numdevs, numqueues); ++ ++#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB) ++ pr_info("\tHooking IMQ before NAT on PREROUTING.\n"); ++#else ++ pr_info("\tHooking IMQ after NAT on PREROUTING.\n"); ++#endif ++#if defined(CONFIG_IMQ_BEHAVIOR_AB) || defined(CONFIG_IMQ_BEHAVIOR_BB) ++ pr_info("\tHooking IMQ before NAT on POSTROUTING.\n"); ++#else ++ pr_info("\tHooking IMQ after NAT on POSTROUTING.\n"); ++#endif ++ ++ return 0; ++} ++ ++static void __exit imq_unhook(void) ++{ ++ nf_unregister_hooks(imq_ops, ARRAY_SIZE(imq_ops)); ++ nf_unregister_queue_imq_handler(); ++} ++ ++static void __exit imq_cleanup_devs(void) ++{ ++ rtnl_link_unregister(&imq_link_ops); ++ memset(imq_devs_cache, 0, sizeof(imq_devs_cache)); ++} ++ ++static void __exit imq_exit_module(void) ++{ ++ imq_unhook(); ++ imq_cleanup_devs(); ++ pr_info("IMQ driver unloaded successfully.\n"); ++} ++ ++module_init(imq_init_module); ++module_exit(imq_exit_module); ++ ++module_param(numdevs, int, 0); ++module_param(numqueues, int, 0); ++MODULE_PARM_DESC(numdevs, "number of IMQ devices (how many imq* devices will be created)"); ++MODULE_PARM_DESC(numqueues, "number of queues per IMQ device"); ++MODULE_AUTHOR("http://www.linuximq.net"); ++MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See http://www.linuximq.net/ for more information."); ++MODULE_LICENSE("GPL"); ++MODULE_ALIAS_RTNL_LINK("imq"); ++ +diff -Naur linux-3.10.30.org/drivers/net/Kconfig linux-3.10.30/drivers/net/Kconfig +--- linux-3.10.30.org/drivers/net/Kconfig 2014-02-13 22:48:15.000000000 +0100 ++++ linux-3.10.30/drivers/net/Kconfig 2014-02-14 20:29:05.379402305 +0100 +@@ -207,6 +207,125 @@ + depends on RIONET + default "128" + ++config IMQ ++ tristate "IMQ (intermediate queueing device) support" ++ depends on NETDEVICES && NETFILTER ++ ---help--- ++ The IMQ device(s) is used as placeholder for QoS queueing ++ disciplines. Every packet entering/leaving the IP stack can be ++ directed through the IMQ device where it's enqueued/dequeued to the ++ attached qdisc. This allows you to treat network devices as classes ++ and distribute bandwidth among them. Iptables is used to specify ++ through which IMQ device, if any, packets travel. ++ ++ More information at: http://www.linuximq.net/ ++ ++ To compile this driver as a module, choose M here: the module ++ will be called imq. If unsure, say N. ++ ++choice ++ prompt "IMQ behavior (PRE/POSTROUTING)" ++ depends on IMQ ++ default IMQ_BEHAVIOR_AB ++ help ++ This setting defines how IMQ behaves in respect to its ++ hooking in PREROUTING and POSTROUTING. ++ ++ IMQ can work in any of the following ways: ++ ++ PREROUTING | POSTROUTING ++ -----------------|------------------- ++ #1 After NAT | After NAT ++ #2 After NAT | Before NAT ++ #3 Before NAT | After NAT ++ #4 Before NAT | Before NAT ++ ++ The default behavior is to hook before NAT on PREROUTING ++ and after NAT on POSTROUTING (#3). ++ ++ This settings are specially usefull when trying to use IMQ ++ to shape NATed clients. ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ ++config IMQ_BEHAVIOR_AA ++ bool "IMQ AA" ++ help ++ This setting defines how IMQ behaves in respect to its ++ hooking in PREROUTING and POSTROUTING. ++ ++ Choosing this option will make IMQ hook like this: ++ ++ PREROUTING: After NAT ++ POSTROUTING: After NAT ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ ++config IMQ_BEHAVIOR_AB ++ bool "IMQ AB" ++ help ++ This setting defines how IMQ behaves in respect to its ++ hooking in PREROUTING and POSTROUTING. ++ ++ Choosing this option will make IMQ hook like this: ++ ++ PREROUTING: After NAT ++ POSTROUTING: Before NAT ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ ++config IMQ_BEHAVIOR_BA ++ bool "IMQ BA" ++ help ++ This setting defines how IMQ behaves in respect to its ++ hooking in PREROUTING and POSTROUTING. ++ ++ Choosing this option will make IMQ hook like this: ++ ++ PREROUTING: Before NAT ++ POSTROUTING: After NAT ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ ++config IMQ_BEHAVIOR_BB ++ bool "IMQ BB" ++ help ++ This setting defines how IMQ behaves in respect to its ++ hooking in PREROUTING and POSTROUTING. ++ ++ Choosing this option will make IMQ hook like this: ++ ++ PREROUTING: Before NAT ++ POSTROUTING: Before NAT ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ ++endchoice ++ ++config IMQ_NUM_DEVS ++ int "Number of IMQ devices" ++ range 2 16 ++ depends on IMQ ++ default "16" ++ help ++ This setting defines how many IMQ devices will be created. ++ ++ The default value is 16. ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ + config TUN + tristate "Universal TUN/TAP device driver support" + select CRC32 +diff -Naur linux-3.10.30.org/drivers/net/Makefile linux-3.10.30/drivers/net/Makefile +--- linux-3.10.30.org/drivers/net/Makefile 2014-02-13 22:48:15.000000000 +0100 ++++ linux-3.10.30/drivers/net/Makefile 2014-02-14 20:29:05.379402305 +0100 +@@ -9,6 +9,7 @@ + obj-$(CONFIG_DUMMY) += dummy.o + obj-$(CONFIG_EQUALIZER) += eql.o + obj-$(CONFIG_IFB) += ifb.o ++obj-$(CONFIG_IMQ) += imq.o + obj-$(CONFIG_MACVLAN) += macvlan.o + obj-$(CONFIG_MACVTAP) += macvtap.o + obj-$(CONFIG_MII) += mii.o +diff -Naur linux-3.10.30.org/include/linux/imq.h linux-3.10.30/include/linux/imq.h +--- linux-3.10.30.org/include/linux/imq.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.10.30/include/linux/imq.h 2014-02-14 20:29:05.379402305 +0100 +@@ -0,0 +1,13 @@ ++#ifndef _IMQ_H ++#define _IMQ_H ++ ++/* IFMASK (16 device indexes, 0 to 15) and flag(s) fit in 5 bits */ ++#define IMQ_F_BITS 5 ++ ++#define IMQ_F_IFMASK 0x0f ++#define IMQ_F_ENQUEUE 0x10 ++ ++#define IMQ_MAX_DEVS (IMQ_F_IFMASK + 1) ++ ++#endif /* _IMQ_H */ ++ +diff -Naur linux-3.10.30.org/include/linux/netfilter/xt_IMQ.h linux-3.10.30/include/linux/netfilter/xt_IMQ.h +--- linux-3.10.30.org/include/linux/netfilter/xt_IMQ.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.10.30/include/linux/netfilter/xt_IMQ.h 2014-02-14 20:29:05.379402305 +0100 +@@ -0,0 +1,9 @@ ++#ifndef _XT_IMQ_H ++#define _XT_IMQ_H ++ ++struct xt_imq_info { ++ unsigned int todev; /* target imq device */ ++}; ++ ++#endif /* _XT_IMQ_H */ ++ +diff -Naur linux-3.10.30.org/include/linux/netfilter_ipv4/ipt_IMQ.h linux-3.10.30/include/linux/netfilter_ipv4/ipt_IMQ.h +--- linux-3.10.30.org/include/linux/netfilter_ipv4/ipt_IMQ.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.10.30/include/linux/netfilter_ipv4/ipt_IMQ.h 2014-02-14 20:29:05.379402305 +0100 +@@ -0,0 +1,10 @@ ++#ifndef _IPT_IMQ_H ++#define _IPT_IMQ_H ++ ++/* Backwards compatibility for old userspace */ ++#include <linux/netfilter/xt_IMQ.h> ++ ++#define ipt_imq_info xt_imq_info ++ ++#endif /* _IPT_IMQ_H */ ++ +diff -Naur linux-3.10.30.org/include/linux/netfilter_ipv6/ip6t_IMQ.h linux-3.10.30/include/linux/netfilter_ipv6/ip6t_IMQ.h +--- linux-3.10.30.org/include/linux/netfilter_ipv6/ip6t_IMQ.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.10.30/include/linux/netfilter_ipv6/ip6t_IMQ.h 2014-02-14 20:29:05.379402305 +0100 +@@ -0,0 +1,10 @@ ++#ifndef _IP6T_IMQ_H ++#define _IP6T_IMQ_H ++ ++/* Backwards compatibility for old userspace */ ++#include <linux/netfilter/xt_IMQ.h> ++ ++#define ip6t_imq_info xt_imq_info ++ ++#endif /* _IP6T_IMQ_H */ ++ +diff -Naur linux-3.10.30.org/include/linux/skbuff.h linux-3.10.30/include/linux/skbuff.h +--- linux-3.10.30.org/include/linux/skbuff.h 2014-02-13 22:48:15.000000000 +0100 ++++ linux-3.10.30/include/linux/skbuff.h 2014-02-14 20:29:05.379402305 +0100 +@@ -33,6 +33,9 @@ + #include <linux/dma-mapping.h> + #include <linux/netdev_features.h> + #include <net/flow_keys.h> ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++#include <linux/imq.h> ++#endif + + /* Don't change this without changing skb_csum_unnecessary! */ + #define CHECKSUM_NONE 0 +@@ -414,6 +417,9 @@ + * first. This is owned by whoever has the skb queued ATM. + */ + char cb[48] __aligned(8); ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ void *cb_next; ++#endif + + unsigned long _skb_refdst; + #ifdef CONFIG_XFRM +@@ -449,6 +455,9 @@ + #if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE) + struct nf_conntrack *nfct; + #endif ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ struct nf_queue_entry *nf_queue_entry; ++#endif + #ifdef CONFIG_BRIDGE_NETFILTER + struct nf_bridge_info *nf_bridge; + #endif +@@ -487,7 +496,9 @@ + __u8 encapsulation:1; + /* 7/9 bit hole (depending on ndisc_nodetype presence) */ + kmemcheck_bitfield_end(flags2); +- ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ __u8 imq_flags:IMQ_F_BITS; ++#endif + #ifdef CONFIG_NET_DMA + dma_cookie_t dma_cookie; + #endif +@@ -616,7 +627,10 @@ + { + return (struct rtable *)skb_dst(skb); + } +- ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++extern int skb_save_cb(struct sk_buff *skb); ++extern int skb_restore_cb(struct sk_buff *skb); ++#endif + extern void kfree_skb(struct sk_buff *skb); + extern void kfree_skb_list(struct sk_buff *segs); + extern void skb_tx_error(struct sk_buff *skb); +@@ -2735,6 +2749,10 @@ + nf_conntrack_get(src->nfct); + dst->nfctinfo = src->nfctinfo; + #endif ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ dst->imq_flags = src->imq_flags; ++ dst->nf_queue_entry = src->nf_queue_entry; ++#endif + #ifdef CONFIG_BRIDGE_NETFILTER + dst->nf_bridge = src->nf_bridge; + nf_bridge_get(src->nf_bridge); +diff -Naur linux-3.10.30.org/include/net/netfilter/nf_queue.h linux-3.10.30/include/net/netfilter/nf_queue.h +--- linux-3.10.30.org/include/net/netfilter/nf_queue.h 2014-02-13 22:48:15.000000000 +0100 ++++ linux-3.10.30/include/net/netfilter/nf_queue.h 2014-02-14 20:29:05.382736249 +0100 +@@ -29,6 +29,12 @@ + void nf_register_queue_handler(const struct nf_queue_handler *qh); + void nf_unregister_queue_handler(void); + extern void nf_reinject(struct nf_queue_entry *entry, unsigned int verdict); ++extern void nf_queue_entry_release_refs(struct nf_queue_entry *entry); ++ ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++extern void nf_register_queue_imq_handler(const struct nf_queue_handler *qh); ++extern void nf_unregister_queue_imq_handler(void); ++#endif + + bool nf_queue_entry_get_refs(struct nf_queue_entry *entry); + void nf_queue_entry_release_refs(struct nf_queue_entry *entry); +diff -Naur linux-3.10.30.org/include/uapi/linux/netfilter.h linux-3.10.30/include/uapi/linux/netfilter.h +--- linux-3.10.30.org/include/uapi/linux/netfilter.h 2014-02-13 22:48:15.000000000 +0100 ++++ linux-3.10.30/include/uapi/linux/netfilter.h 2014-02-14 20:29:05.382736249 +0100 +@@ -13,7 +13,8 @@ + #define NF_QUEUE 3 + #define NF_REPEAT 4 + #define NF_STOP 5 +-#define NF_MAX_VERDICT NF_STOP ++#define NF_IMQ_QUEUE 6 ++#define NF_MAX_VERDICT NF_IMQ_QUEUE + + /* we overload the higher bits for encoding auxiliary data such as the queue + * number or errno values. Not nice, but better than additional function +diff -Naur linux-3.10.30.org/net/core/dev.c linux-3.10.30/net/core/dev.c +--- linux-3.10.30.org/net/core/dev.c 2014-02-13 22:48:15.000000000 +0100 ++++ linux-3.10.30/net/core/dev.c 2014-02-14 20:29:05.382736249 +0100 +@@ -129,6 +129,9 @@ + #include <linux/inetdevice.h> + #include <linux/cpu_rmap.h> + #include <linux/static_key.h> ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++#include <linux/imq.h> ++#endif + + #include "net-sysfs.h" + +@@ -2573,7 +2576,12 @@ + } + } + ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ if (!list_empty(&ptype_all) && ++ !(skb->imq_flags & IMQ_F_ENQUEUE)) ++#else + if (!list_empty(&ptype_all)) ++#endif + dev_queue_xmit_nit(skb, dev); + + skb_len = skb->len; +diff -Naur linux-3.10.30.org/net/core/skbuff.c linux-3.10.30/net/core/skbuff.c +--- linux-3.10.30.org/net/core/skbuff.c 2014-02-13 22:48:15.000000000 +0100 ++++ linux-3.10.30/net/core/skbuff.c 2014-02-14 21:47:17.286039229 +0100 +@@ -73,6 +73,9 @@ + + struct kmem_cache *skbuff_head_cache __read_mostly; + static struct kmem_cache *skbuff_fclone_cache __read_mostly; ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++static struct kmem_cache *skbuff_cb_store_cache __read_mostly; ++#endif + + /** + * skb_panic - private function for out-of-line support +@@ -552,6 +555,29 @@ + WARN_ON(in_irq()); + skb->destructor(skb); + } ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ /* ++ * This should not happen. When it does, avoid memleak by restoring ++ * the chain of cb-backups. ++ */ ++ while (skb->cb_next != NULL) { ++ if (net_ratelimit()) ++ pr_warn("IMQ: kfree_skb: skb->cb_next: %08x\n", ++ (unsigned int)skb->cb_next); ++ ++ skb_restore_cb(skb); ++ } ++ /* ++ * This should not happen either, nf_queue_entry is nullified in ++ * imq_dev_xmit(). If we have non-NULL nf_queue_entry then we are ++ * leaking entry pointers, maybe memory. We don't know if this is ++ * pointer to already freed memory, or should this be freed. ++ * If this happens we need to add refcounting, etc for nf_queue_entry. ++ */ ++ if (skb->nf_queue_entry && net_ratelimit()) ++ pr_warn("%s\n", "IMQ: kfree_skb: skb->nf_queue_entry != NULL"); ++#endif ++ + #if IS_ENABLED(CONFIG_NF_CONNTRACK) + nf_conntrack_put(skb->nfct); + #endif +@@ -683,6 +709,10 @@ + new->sp = secpath_get(old->sp); + #endif + memcpy(new->cb, old->cb, sizeof(old->cb)); ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ new->cb_next = NULL; ++ /*skb_copy_stored_cb(new, old);*/ ++#endif + new->csum = old->csum; + new->local_df = old->local_df; + new->pkt_type = old->pkt_type; +@@ -3050,6 +3080,15 @@ + } + EXPORT_SYMBOL_GPL(skb_gro_receive); + ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++/* Control buffer save/restore for IMQ devices */ ++struct skb_cb_table { ++ char cb[48] __aligned(8); ++ void *cb_next; ++ atomic_t refcnt; ++}; ++#endif ++ + void __init skb_init(void) + { + skbuff_head_cache = kmem_cache_create("skbuff_head_cache", +@@ -3063,6 +3102,13 @@ + 0, + SLAB_HWCACHE_ALIGN|SLAB_PANIC, + NULL); ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ skbuff_cb_store_cache = kmem_cache_create("skbuff_cb_store_cache", ++ sizeof(struct skb_cb_table), ++ 0, ++ SLAB_HWCACHE_ALIGN|SLAB_PANIC, ++ NULL); ++#endif + } + + /** +@@ -3348,6 +3394,76 @@ + EXPORT_SYMBOL_GPL(skb_complete_wifi_ack); + + ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++static DEFINE_SPINLOCK(skb_cb_store_lock); ++ ++int skb_save_cb(struct sk_buff *skb) ++{ ++ struct skb_cb_table *next; ++ ++ next = kmem_cache_alloc(skbuff_cb_store_cache, GFP_ATOMIC); ++ if (!next) ++ return -ENOMEM; ++ ++ BUILD_BUG_ON(sizeof(skb->cb) != sizeof(next->cb)); ++ ++ memcpy(next->cb, skb->cb, sizeof(skb->cb)); ++ next->cb_next = skb->cb_next; ++ ++ atomic_set(&next->refcnt, 1); ++ ++ skb->cb_next = next; ++ return 0; ++} ++EXPORT_SYMBOL(skb_save_cb); ++ ++int skb_restore_cb(struct sk_buff *skb) ++{ ++ struct skb_cb_table *next; ++ ++ if (!skb->cb_next) ++ return 0; ++ ++ next = skb->cb_next; ++ ++ BUILD_BUG_ON(sizeof(skb->cb) != sizeof(next->cb)); ++ ++ memcpy(skb->cb, next->cb, sizeof(skb->cb)); ++ skb->cb_next = next->cb_next; ++ ++ spin_lock(&skb_cb_store_lock); ++ ++ if (atomic_dec_and_test(&next->refcnt)) ++ kmem_cache_free(skbuff_cb_store_cache, next); ++ ++ spin_unlock(&skb_cb_store_lock); ++ ++ return 0; ++} ++EXPORT_SYMBOL(skb_restore_cb); ++ ++static void skb_copy_stored_cb(struct sk_buff *new, const struct sk_buff *__old) ++{ ++ struct skb_cb_table *next; ++ struct sk_buff *old; ++ ++ if (!__old->cb_next) { ++ new->cb_next = NULL; ++ return; ++ } ++ ++ spin_lock(&skb_cb_store_lock); ++ ++ old = (struct sk_buff *)__old; ++ ++ next = old->cb_next; ++ atomic_inc(&next->refcnt); ++ new->cb_next = next; ++ ++ spin_unlock(&skb_cb_store_lock); ++} ++#endif ++ + /** + * skb_partial_csum_set - set up and verify partial csum values for packet + * @skb: the skb to set +diff -Naur linux-3.10.30.org/net/ipv6/ip6_output.c linux-3.10.30/net/ipv6/ip6_output.c +--- linux-3.10.30.org/net/ipv6/ip6_output.c 2014-02-13 22:48:15.000000000 +0100 ++++ linux-3.10.30/net/ipv6/ip6_output.c 2014-02-14 20:29:05.392738001 +0100 +@@ -89,9 +89,6 @@ + struct in6_addr *nexthop; + int ret; + +- skb->protocol = htons(ETH_P_IPV6); +- skb->dev = dev; +- + if (ipv6_addr_is_multicast(&ipv6_hdr(skb)->daddr)) { + struct inet6_dev *idev = ip6_dst_idev(skb_dst(skb)); + +@@ -168,6 +165,13 @@ + return 0; + } + ++ /* ++ * IMQ-patch: moved setting skb->dev and skb->protocol from ++ * ip6_finish_output2 to fix crashing at netif_skb_features(). ++ */ ++ skb->protocol = htons(ETH_P_IPV6); ++ skb->dev = dev; ++ + return NF_HOOK_COND(NFPROTO_IPV6, NF_INET_POST_ROUTING, skb, NULL, dev, + ip6_finish_output, + !(IP6CB(skb)->flags & IP6SKB_REROUTED)); +diff -Naur linux-3.10.30.org/net/ipv6/ip6_output.c.orig linux-3.10.30/net/ipv6/ip6_output.c.orig +--- linux-3.10.30.org/net/ipv6/ip6_output.c.orig 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.10.30/net/ipv6/ip6_output.c.orig 2014-02-14 20:29:05.392738001 +0100 +@@ -0,0 +1,1580 @@ ++/* ++ * IPv6 output functions ++ * Linux INET6 implementation ++ * ++ * Authors: ++ * Pedro Roque roque@di.fc.ul.pt ++ * ++ * Based on linux/net/ipv4/ip_output.c ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version ++ * 2 of the License, or (at your option) any later version. ++ * ++ * Changes: ++ * A.N.Kuznetsov : airthmetics in fragmentation. ++ * extension headers are implemented. ++ * route changes now work. ++ * ip6_forward does not confuse sniffers. ++ * etc. ++ * ++ * H. von Brand : Added missing #include <linux/string.h> ++ * Imran Patel : frag id should be in NBO ++ * Kazunori MIYAZAWA @USAGI ++ * : add ip6_append_data and related functions ++ * for datagram xmit ++ */ ++ ++#include <linux/errno.h> ++#include <linux/kernel.h> ++#include <linux/string.h> ++#include <linux/socket.h> ++#include <linux/net.h> ++#include <linux/netdevice.h> ++#include <linux/if_arp.h> ++#include <linux/in6.h> ++#include <linux/tcp.h> ++#include <linux/route.h> ++#include <linux/module.h> ++#include <linux/slab.h> ++ ++#include <linux/netfilter.h> ++#include <linux/netfilter_ipv6.h> ++ ++#include <net/sock.h> ++#include <net/snmp.h> ++ ++#include <net/ipv6.h> ++#include <net/ndisc.h> ++#include <net/protocol.h> ++#include <net/ip6_route.h> ++#include <net/addrconf.h> ++#include <net/rawv6.h> ++#include <net/icmp.h> ++#include <net/xfrm.h> ++#include <net/checksum.h> ++#include <linux/mroute6.h> ++ ++int __ip6_local_out(struct sk_buff *skb) ++{ ++ int len; ++ ++ len = skb->len - sizeof(struct ipv6hdr); ++ if (len > IPV6_MAXPLEN) ++ len = 0; ++ ipv6_hdr(skb)->payload_len = htons(len); ++ ++ return nf_hook(NFPROTO_IPV6, NF_INET_LOCAL_OUT, skb, NULL, ++ skb_dst(skb)->dev, dst_output); ++} ++ ++int ip6_local_out(struct sk_buff *skb) ++{ ++ int err; ++ ++ err = __ip6_local_out(skb); ++ if (likely(err == 1)) ++ err = dst_output(skb); ++ ++ return err; ++} ++EXPORT_SYMBOL_GPL(ip6_local_out); ++ ++static int ip6_finish_output2(struct sk_buff *skb) ++{ ++ struct dst_entry *dst = skb_dst(skb); ++ struct net_device *dev = dst->dev; ++ struct neighbour *neigh; ++ struct in6_addr *nexthop; ++ int ret; ++ ++ skb->protocol = htons(ETH_P_IPV6); ++ skb->dev = dev; ++ ++ if (ipv6_addr_is_multicast(&ipv6_hdr(skb)->daddr)) { ++ struct inet6_dev *idev = ip6_dst_idev(skb_dst(skb)); ++ ++ if (!(dev->flags & IFF_LOOPBACK) && sk_mc_loop(skb->sk) && ++ ((mroute6_socket(dev_net(dev), skb) && ++ !(IP6CB(skb)->flags & IP6SKB_FORWARDED)) || ++ ipv6_chk_mcast_addr(dev, &ipv6_hdr(skb)->daddr, ++ &ipv6_hdr(skb)->saddr))) { ++ struct sk_buff *newskb = skb_clone(skb, GFP_ATOMIC); ++ ++ /* Do not check for IFF_ALLMULTI; multicast routing ++ is not supported in any case. ++ */ ++ if (newskb) ++ NF_HOOK(NFPROTO_IPV6, NF_INET_POST_ROUTING, ++ newskb, NULL, newskb->dev, ++ dev_loopback_xmit); ++ ++ if (ipv6_hdr(skb)->hop_limit == 0) { ++ IP6_INC_STATS(dev_net(dev), idev, ++ IPSTATS_MIB_OUTDISCARDS); ++ kfree_skb(skb); ++ return 0; ++ } ++ } ++ ++ IP6_UPD_PO_STATS(dev_net(dev), idev, IPSTATS_MIB_OUTMCAST, ++ skb->len); ++ ++ if (IPV6_ADDR_MC_SCOPE(&ipv6_hdr(skb)->daddr) <= ++ IPV6_ADDR_SCOPE_NODELOCAL && ++ !(dev->flags & IFF_LOOPBACK)) { ++ kfree_skb(skb); ++ return 0; ++ } ++ } ++ ++ rcu_read_lock_bh(); ++ nexthop = rt6_nexthop((struct rt6_info *)dst); ++ neigh = __ipv6_neigh_lookup_noref(dst->dev, nexthop); ++ if (unlikely(!neigh)) ++ neigh = __neigh_create(&nd_tbl, nexthop, dst->dev, false); ++ if (!IS_ERR(neigh)) { ++ ret = dst_neigh_output(dst, neigh, skb); ++ rcu_read_unlock_bh(); ++ return ret; ++ } ++ rcu_read_unlock_bh(); ++ ++ IP6_INC_STATS(dev_net(dst->dev), ++ ip6_dst_idev(dst), IPSTATS_MIB_OUTNOROUTES); ++ kfree_skb(skb); ++ return -EINVAL; ++} ++ ++static int ip6_finish_output(struct sk_buff *skb) ++{ ++ if ((skb->len > ip6_skb_dst_mtu(skb) && !skb_is_gso(skb)) || ++ dst_allfrag(skb_dst(skb)) || ++ (IP6CB(skb)->frag_max_size && skb->len > IP6CB(skb)->frag_max_size)) ++ return ip6_fragment(skb, ip6_finish_output2); ++ else ++ return ip6_finish_output2(skb); ++} ++ ++int ip6_output(struct sk_buff *skb) ++{ ++ struct net_device *dev = skb_dst(skb)->dev; ++ struct inet6_dev *idev = ip6_dst_idev(skb_dst(skb)); ++ if (unlikely(idev->cnf.disable_ipv6)) { ++ IP6_INC_STATS(dev_net(dev), idev, ++ IPSTATS_MIB_OUTDISCARDS); ++ kfree_skb(skb); ++ return 0; ++ } ++ ++ return NF_HOOK_COND(NFPROTO_IPV6, NF_INET_POST_ROUTING, skb, NULL, dev, ++ ip6_finish_output, ++ !(IP6CB(skb)->flags & IP6SKB_REROUTED)); ++} ++ ++/* ++ * xmit an sk_buff (used by TCP, SCTP and DCCP) ++ */ ++ ++int ip6_xmit(struct sock *sk, struct sk_buff *skb, struct flowi6 *fl6, ++ struct ipv6_txoptions *opt, int tclass) ++{ ++ struct net *net = sock_net(sk); ++ struct ipv6_pinfo *np = inet6_sk(sk); ++ struct in6_addr *first_hop = &fl6->daddr; ++ struct dst_entry *dst = skb_dst(skb); ++ struct ipv6hdr *hdr; ++ u8 proto = fl6->flowi6_proto; ++ int seg_len = skb->len; ++ int hlimit = -1; ++ u32 mtu; ++ ++ if (opt) { ++ unsigned int head_room; ++ ++ /* First: exthdrs may take lots of space (~8K for now) ++ MAX_HEADER is not enough. ++ */ ++ head_room = opt->opt_nflen + opt->opt_flen; ++ seg_len += head_room; ++ head_room += sizeof(struct ipv6hdr) + LL_RESERVED_SPACE(dst->dev); ++ ++ if (skb_headroom(skb) < head_room) { ++ struct sk_buff *skb2 = skb_realloc_headroom(skb, head_room); ++ if (skb2 == NULL) { ++ IP6_INC_STATS(net, ip6_dst_idev(skb_dst(skb)), ++ IPSTATS_MIB_OUTDISCARDS); ++ kfree_skb(skb); ++ return -ENOBUFS; ++ } ++ consume_skb(skb); ++ skb = skb2; ++ skb_set_owner_w(skb, sk); ++ } ++ if (opt->opt_flen) ++ ipv6_push_frag_opts(skb, opt, &proto); ++ if (opt->opt_nflen) ++ ipv6_push_nfrag_opts(skb, opt, &proto, &first_hop); ++ } ++ ++ skb_push(skb, sizeof(struct ipv6hdr)); ++ skb_reset_network_header(skb); ++ hdr = ipv6_hdr(skb); ++ ++ /* ++ * Fill in the IPv6 header ++ */ ++ if (np) ++ hlimit = np->hop_limit; ++ if (hlimit < 0) ++ hlimit = ip6_dst_hoplimit(dst); ++ ++ ip6_flow_hdr(hdr, tclass, fl6->flowlabel); ++ ++ hdr->payload_len = htons(seg_len); ++ hdr->nexthdr = proto; ++ hdr->hop_limit = hlimit; ++ ++ hdr->saddr = fl6->saddr; ++ hdr->daddr = *first_hop; ++ ++ skb->priority = sk->sk_priority; ++ skb->mark = sk->sk_mark; ++ ++ mtu = dst_mtu(dst); ++ if ((skb->len <= mtu) || skb->local_df || skb_is_gso(skb)) { ++ IP6_UPD_PO_STATS(net, ip6_dst_idev(skb_dst(skb)), ++ IPSTATS_MIB_OUT, skb->len); ++ return NF_HOOK(NFPROTO_IPV6, NF_INET_LOCAL_OUT, skb, NULL, ++ dst->dev, dst_output); ++ } ++ ++ skb->dev = dst->dev; ++ ipv6_local_error(sk, EMSGSIZE, fl6, mtu); ++ IP6_INC_STATS(net, ip6_dst_idev(skb_dst(skb)), IPSTATS_MIB_FRAGFAILS); ++ kfree_skb(skb); ++ return -EMSGSIZE; ++} ++ ++EXPORT_SYMBOL(ip6_xmit); ++ ++static int ip6_call_ra_chain(struct sk_buff *skb, int sel) ++{ ++ struct ip6_ra_chain *ra; ++ struct sock *last = NULL; ++ ++ read_lock(&ip6_ra_lock); ++ for (ra = ip6_ra_chain; ra; ra = ra->next) { ++ struct sock *sk = ra->sk; ++ if (sk && ra->sel == sel && ++ (!sk->sk_bound_dev_if || ++ sk->sk_bound_dev_if == skb->dev->ifindex)) { ++ if (last) { ++ struct sk_buff *skb2 = skb_clone(skb, GFP_ATOMIC); ++ if (skb2) ++ rawv6_rcv(last, skb2); ++ } ++ last = sk; ++ } ++ } ++ ++ if (last) { ++ rawv6_rcv(last, skb); ++ read_unlock(&ip6_ra_lock); ++ return 1; ++ } ++ read_unlock(&ip6_ra_lock); ++ return 0; ++} ++ ++static int ip6_forward_proxy_check(struct sk_buff *skb) ++{ ++ struct ipv6hdr *hdr = ipv6_hdr(skb); ++ u8 nexthdr = hdr->nexthdr; ++ __be16 frag_off; ++ int offset; ++ ++ if (ipv6_ext_hdr(nexthdr)) { ++ offset = ipv6_skip_exthdr(skb, sizeof(*hdr), &nexthdr, &frag_off); ++ if (offset < 0) ++ return 0; ++ } else ++ offset = sizeof(struct ipv6hdr); ++ ++ if (nexthdr == IPPROTO_ICMPV6) { ++ struct icmp6hdr *icmp6; ++ ++ if (!pskb_may_pull(skb, (skb_network_header(skb) + ++ offset + 1 - skb->data))) ++ return 0; ++ ++ icmp6 = (struct icmp6hdr *)(skb_network_header(skb) + offset); ++ ++ switch (icmp6->icmp6_type) { ++ case NDISC_ROUTER_SOLICITATION: ++ case NDISC_ROUTER_ADVERTISEMENT: ++ case NDISC_NEIGHBOUR_SOLICITATION: ++ case NDISC_NEIGHBOUR_ADVERTISEMENT: ++ case NDISC_REDIRECT: ++ /* For reaction involving unicast neighbor discovery ++ * message destined to the proxied address, pass it to ++ * input function. ++ */ ++ return 1; ++ default: ++ break; ++ } ++ } ++ ++ /* ++ * The proxying router can't forward traffic sent to a link-local ++ * address, so signal the sender and discard the packet. This ++ * behavior is clarified by the MIPv6 specification. ++ */ ++ if (ipv6_addr_type(&hdr->daddr) & IPV6_ADDR_LINKLOCAL) { ++ dst_link_failure(skb); ++ return -1; ++ } ++ ++ return 0; ++} ++ ++static inline int ip6_forward_finish(struct sk_buff *skb) ++{ ++ return dst_output(skb); ++} ++ ++int ip6_forward(struct sk_buff *skb) ++{ ++ struct dst_entry *dst = skb_dst(skb); ++ struct ipv6hdr *hdr = ipv6_hdr(skb); ++ struct inet6_skb_parm *opt = IP6CB(skb); ++ struct net *net = dev_net(dst->dev); ++ u32 mtu; ++ ++ if (net->ipv6.devconf_all->forwarding == 0) ++ goto error; ++ ++ if (skb_warn_if_lro(skb)) ++ goto drop; ++ ++ if (!xfrm6_policy_check(NULL, XFRM_POLICY_FWD, skb)) { ++ IP6_INC_STATS(net, ip6_dst_idev(dst), IPSTATS_MIB_INDISCARDS); ++ goto drop; ++ } ++ ++ if (skb->pkt_type != PACKET_HOST) ++ goto drop; ++ ++ skb_forward_csum(skb); ++ ++ /* ++ * We DO NOT make any processing on ++ * RA packets, pushing them to user level AS IS ++ * without ane WARRANTY that application will be able ++ * to interpret them. The reason is that we ++ * cannot make anything clever here. ++ * ++ * We are not end-node, so that if packet contains ++ * AH/ESP, we cannot make anything. ++ * Defragmentation also would be mistake, RA packets ++ * cannot be fragmented, because there is no warranty ++ * that different fragments will go along one path. --ANK ++ */ ++ if (unlikely(opt->flags & IP6SKB_ROUTERALERT)) { ++ if (ip6_call_ra_chain(skb, ntohs(opt->ra))) ++ return 0; ++ } ++ ++ /* ++ * check and decrement ttl ++ */ ++ if (hdr->hop_limit <= 1) { ++ /* Force OUTPUT device used as source address */ ++ skb->dev = dst->dev; ++ icmpv6_send(skb, ICMPV6_TIME_EXCEED, ICMPV6_EXC_HOPLIMIT, 0); ++ IP6_INC_STATS_BH(net, ++ ip6_dst_idev(dst), IPSTATS_MIB_INHDRERRORS); ++ ++ kfree_skb(skb); ++ return -ETIMEDOUT; ++ } ++ ++ /* XXX: idev->cnf.proxy_ndp? */ ++ if (net->ipv6.devconf_all->proxy_ndp && ++ pneigh_lookup(&nd_tbl, net, &hdr->daddr, skb->dev, 0)) { ++ int proxied = ip6_forward_proxy_check(skb); ++ if (proxied > 0) ++ return ip6_input(skb); ++ else if (proxied < 0) { ++ IP6_INC_STATS(net, ip6_dst_idev(dst), ++ IPSTATS_MIB_INDISCARDS); ++ goto drop; ++ } ++ } ++ ++ if (!xfrm6_route_forward(skb)) { ++ IP6_INC_STATS(net, ip6_dst_idev(dst), IPSTATS_MIB_INDISCARDS); ++ goto drop; ++ } ++ dst = skb_dst(skb); ++ ++ /* IPv6 specs say nothing about it, but it is clear that we cannot ++ send redirects to source routed frames. ++ We don't send redirects to frames decapsulated from IPsec. ++ */ ++ if (skb->dev == dst->dev && opt->srcrt == 0 && !skb_sec_path(skb)) { ++ struct in6_addr *target = NULL; ++ struct inet_peer *peer; ++ struct rt6_info *rt; ++ ++ /* ++ * incoming and outgoing devices are the same ++ * send a redirect. ++ */ ++ ++ rt = (struct rt6_info *) dst; ++ if (rt->rt6i_flags & RTF_GATEWAY) ++ target = &rt->rt6i_gateway; ++ else ++ target = &hdr->daddr; ++ ++ peer = inet_getpeer_v6(net->ipv6.peers, &rt->rt6i_dst.addr, 1); ++ ++ /* Limit redirects both by destination (here) ++ and by source (inside ndisc_send_redirect) ++ */ ++ if (inet_peer_xrlim_allow(peer, 1*HZ)) ++ ndisc_send_redirect(skb, target); ++ if (peer) ++ inet_putpeer(peer); ++ } else { ++ int addrtype = ipv6_addr_type(&hdr->saddr); ++ ++ /* This check is security critical. */ ++ if (addrtype == IPV6_ADDR_ANY || ++ addrtype & (IPV6_ADDR_MULTICAST | IPV6_ADDR_LOOPBACK)) ++ goto error; ++ if (addrtype & IPV6_ADDR_LINKLOCAL) { ++ icmpv6_send(skb, ICMPV6_DEST_UNREACH, ++ ICMPV6_NOT_NEIGHBOUR, 0); ++ goto error; ++ } ++ } ++ ++ mtu = dst_mtu(dst); ++ if (mtu < IPV6_MIN_MTU) ++ mtu = IPV6_MIN_MTU; ++ ++ if ((!skb->local_df && skb->len > mtu && !skb_is_gso(skb)) || ++ (IP6CB(skb)->frag_max_size && IP6CB(skb)->frag_max_size > mtu)) { ++ /* Again, force OUTPUT device used as source address */ ++ skb->dev = dst->dev; ++ icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu); ++ IP6_INC_STATS_BH(net, ++ ip6_dst_idev(dst), IPSTATS_MIB_INTOOBIGERRORS); ++ IP6_INC_STATS_BH(net, ++ ip6_dst_idev(dst), IPSTATS_MIB_FRAGFAILS); ++ kfree_skb(skb); ++ return -EMSGSIZE; ++ } ++ ++ if (skb_cow(skb, dst->dev->hard_header_len)) { ++ IP6_INC_STATS(net, ip6_dst_idev(dst), IPSTATS_MIB_OUTDISCARDS); ++ goto drop; ++ } ++ ++ hdr = ipv6_hdr(skb); ++ ++ /* Mangling hops number delayed to point after skb COW */ ++ ++ hdr->hop_limit--; ++ ++ IP6_INC_STATS_BH(net, ip6_dst_idev(dst), IPSTATS_MIB_OUTFORWDATAGRAMS); ++ IP6_ADD_STATS_BH(net, ip6_dst_idev(dst), IPSTATS_MIB_OUTOCTETS, skb->len); ++ return NF_HOOK(NFPROTO_IPV6, NF_INET_FORWARD, skb, skb->dev, dst->dev, ++ ip6_forward_finish); ++ ++error: ++ IP6_INC_STATS_BH(net, ip6_dst_idev(dst), IPSTATS_MIB_INADDRERRORS); ++drop: ++ kfree_skb(skb); ++ return -EINVAL; ++} ++ ++static void ip6_copy_metadata(struct sk_buff *to, struct sk_buff *from) ++{ ++ to->pkt_type = from->pkt_type; ++ to->priority = from->priority; ++ to->protocol = from->protocol; ++ skb_dst_drop(to); ++ skb_dst_set(to, dst_clone(skb_dst(from))); ++ to->dev = from->dev; ++ to->mark = from->mark; ++ ++#ifdef CONFIG_NET_SCHED ++ to->tc_index = from->tc_index; ++#endif ++ nf_copy(to, from); ++#if IS_ENABLED(CONFIG_NETFILTER_XT_TARGET_TRACE) ++ to->nf_trace = from->nf_trace; ++#endif ++ skb_copy_secmark(to, from); ++} ++ ++int ip6_fragment(struct sk_buff *skb, int (*output)(struct sk_buff *)) ++{ ++ struct sk_buff *frag; ++ struct rt6_info *rt = (struct rt6_info*)skb_dst(skb); ++ struct ipv6_pinfo *np = skb->sk ? inet6_sk(skb->sk) : NULL; ++ struct ipv6hdr *tmp_hdr; ++ struct frag_hdr *fh; ++ unsigned int mtu, hlen, left, len; ++ int hroom, troom; ++ __be32 frag_id = 0; ++ int ptr, offset = 0, err=0; ++ u8 *prevhdr, nexthdr = 0; ++ struct net *net = dev_net(skb_dst(skb)->dev); ++ ++ hlen = ip6_find_1stfragopt(skb, &prevhdr); ++ nexthdr = *prevhdr; ++ ++ mtu = ip6_skb_dst_mtu(skb); ++ ++ /* We must not fragment if the socket is set to force MTU discovery ++ * or if the skb it not generated by a local socket. ++ */ ++ if (unlikely(!skb->local_df && skb->len > mtu) || ++ (IP6CB(skb)->frag_max_size && ++ IP6CB(skb)->frag_max_size > mtu)) { ++ if (skb->sk && dst_allfrag(skb_dst(skb))) ++ sk_nocaps_add(skb->sk, NETIF_F_GSO_MASK); ++ ++ skb->dev = skb_dst(skb)->dev; ++ icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu); ++ IP6_INC_STATS(net, ip6_dst_idev(skb_dst(skb)), ++ IPSTATS_MIB_FRAGFAILS); ++ kfree_skb(skb); ++ return -EMSGSIZE; ++ } ++ ++ if (np && np->frag_size < mtu) { ++ if (np->frag_size) ++ mtu = np->frag_size; ++ } ++ mtu -= hlen + sizeof(struct frag_hdr); ++ ++ if (skb_has_frag_list(skb)) { ++ int first_len = skb_pagelen(skb); ++ struct sk_buff *frag2; ++ ++ if (first_len - hlen > mtu || ++ ((first_len - hlen) & 7) || ++ skb_cloned(skb)) ++ goto slow_path; ++ ++ skb_walk_frags(skb, frag) { ++ /* Correct geometry. */ ++ if (frag->len > mtu || ++ ((frag->len & 7) && frag->next) || ++ skb_headroom(frag) < hlen) ++ goto slow_path_clean; ++ ++ /* Partially cloned skb? */ ++ if (skb_shared(frag)) ++ goto slow_path_clean; ++ ++ BUG_ON(frag->sk); ++ if (skb->sk) { ++ frag->sk = skb->sk; ++ frag->destructor = sock_wfree; ++ } ++ skb->truesize -= frag->truesize; ++ } ++ ++ err = 0; ++ offset = 0; ++ frag = skb_shinfo(skb)->frag_list; ++ skb_frag_list_init(skb); ++ /* BUILD HEADER */ ++ ++ *prevhdr = NEXTHDR_FRAGMENT; ++ tmp_hdr = kmemdup(skb_network_header(skb), hlen, GFP_ATOMIC); ++ if (!tmp_hdr) { ++ IP6_INC_STATS(net, ip6_dst_idev(skb_dst(skb)), ++ IPSTATS_MIB_FRAGFAILS); ++ return -ENOMEM; ++ } ++ ++ __skb_pull(skb, hlen); ++ fh = (struct frag_hdr*)__skb_push(skb, sizeof(struct frag_hdr)); ++ __skb_push(skb, hlen); ++ skb_reset_network_header(skb); ++ memcpy(skb_network_header(skb), tmp_hdr, hlen); ++ ++ ipv6_select_ident(fh, rt); ++ fh->nexthdr = nexthdr; ++ fh->reserved = 0; ++ fh->frag_off = htons(IP6_MF); ++ frag_id = fh->identification; ++ ++ first_len = skb_pagelen(skb); ++ skb->data_len = first_len - skb_headlen(skb); ++ skb->len = first_len; ++ ipv6_hdr(skb)->payload_len = htons(first_len - ++ sizeof(struct ipv6hdr)); ++ ++ dst_hold(&rt->dst); ++ ++ for (;;) { ++ /* Prepare header of the next frame, ++ * before previous one went down. */ ++ if (frag) { ++ frag->ip_summed = CHECKSUM_NONE; ++ skb_reset_transport_header(frag); ++ fh = (struct frag_hdr*)__skb_push(frag, sizeof(struct frag_hdr)); ++ __skb_push(frag, hlen); ++ skb_reset_network_header(frag); ++ memcpy(skb_network_header(frag), tmp_hdr, ++ hlen); ++ offset += skb->len - hlen - sizeof(struct frag_hdr); ++ fh->nexthdr = nexthdr; ++ fh->reserved = 0; ++ fh->frag_off = htons(offset); ++ if (frag->next != NULL) ++ fh->frag_off |= htons(IP6_MF); ++ fh->identification = frag_id; ++ ipv6_hdr(frag)->payload_len = ++ htons(frag->len - ++ sizeof(struct ipv6hdr)); ++ ip6_copy_metadata(frag, skb); ++ } ++ ++ err = output(skb); ++ if(!err) ++ IP6_INC_STATS(net, ip6_dst_idev(&rt->dst), ++ IPSTATS_MIB_FRAGCREATES); ++ ++ if (err || !frag) ++ break; ++ ++ skb = frag; ++ frag = skb->next; ++ skb->next = NULL; ++ } ++ ++ kfree(tmp_hdr); ++ ++ if (err == 0) { ++ IP6_INC_STATS(net, ip6_dst_idev(&rt->dst), ++ IPSTATS_MIB_FRAGOKS); ++ ip6_rt_put(rt); ++ return 0; ++ } ++ ++ while (frag) { ++ skb = frag->next; ++ kfree_skb(frag); ++ frag = skb; ++ } ++ ++ IP6_INC_STATS(net, ip6_dst_idev(&rt->dst), ++ IPSTATS_MIB_FRAGFAILS); ++ ip6_rt_put(rt); ++ return err; ++ ++slow_path_clean: ++ skb_walk_frags(skb, frag2) { ++ if (frag2 == frag) ++ break; ++ frag2->sk = NULL; ++ frag2->destructor = NULL; ++ skb->truesize += frag2->truesize; ++ } ++ } ++ ++slow_path: ++ if ((skb->ip_summed == CHECKSUM_PARTIAL) && ++ skb_checksum_help(skb)) ++ goto fail; ++ ++ left = skb->len - hlen; /* Space per frame */ ++ ptr = hlen; /* Where to start from */ ++ ++ /* ++ * Fragment the datagram. ++ */ ++ ++ *prevhdr = NEXTHDR_FRAGMENT; ++ hroom = LL_RESERVED_SPACE(rt->dst.dev); ++ troom = rt->dst.dev->needed_tailroom; ++ ++ /* ++ * Keep copying data until we run out. ++ */ ++ while(left > 0) { ++ len = left; ++ /* IF: it doesn't fit, use 'mtu' - the data space left */ ++ if (len > mtu) ++ len = mtu; ++ /* IF: we are not sending up to and including the packet end ++ then align the next start on an eight byte boundary */ ++ if (len < left) { ++ len &= ~7; ++ } ++ /* ++ * Allocate buffer. ++ */ ++ ++ if ((frag = alloc_skb(len + hlen + sizeof(struct frag_hdr) + ++ hroom + troom, GFP_ATOMIC)) == NULL) { ++ NETDEBUG(KERN_INFO "IPv6: frag: no memory for new fragment!\n"); ++ IP6_INC_STATS(net, ip6_dst_idev(skb_dst(skb)), ++ IPSTATS_MIB_FRAGFAILS); ++ err = -ENOMEM; ++ goto fail; ++ } ++ ++ /* ++ * Set up data on packet ++ */ ++ ++ ip6_copy_metadata(frag, skb); ++ skb_reserve(frag, hroom); ++ skb_put(frag, len + hlen + sizeof(struct frag_hdr)); ++ skb_reset_network_header(frag); ++ fh = (struct frag_hdr *)(skb_network_header(frag) + hlen); ++ frag->transport_header = (frag->network_header + hlen + ++ sizeof(struct frag_hdr)); ++ ++ /* ++ * Charge the memory for the fragment to any owner ++ * it might possess ++ */ ++ if (skb->sk) ++ skb_set_owner_w(frag, skb->sk); ++ ++ /* ++ * Copy the packet header into the new buffer. ++ */ ++ skb_copy_from_linear_data(skb, skb_network_header(frag), hlen); ++ ++ /* ++ * Build fragment header. ++ */ ++ fh->nexthdr = nexthdr; ++ fh->reserved = 0; ++ if (!frag_id) { ++ ipv6_select_ident(fh, rt); ++ frag_id = fh->identification; ++ } else ++ fh->identification = frag_id; ++ ++ /* ++ * Copy a block of the IP datagram. ++ */ ++ if (skb_copy_bits(skb, ptr, skb_transport_header(frag), len)) ++ BUG(); ++ left -= len; ++ ++ fh->frag_off = htons(offset); ++ if (left > 0) ++ fh->frag_off |= htons(IP6_MF); ++ ipv6_hdr(frag)->payload_len = htons(frag->len - ++ sizeof(struct ipv6hdr)); ++ ++ ptr += len; ++ offset += len; ++ ++ /* ++ * Put this fragment into the sending queue. ++ */ ++ err = output(frag); ++ if (err) ++ goto fail; ++ ++ IP6_INC_STATS(net, ip6_dst_idev(skb_dst(skb)), ++ IPSTATS_MIB_FRAGCREATES); ++ } ++ IP6_INC_STATS(net, ip6_dst_idev(skb_dst(skb)), ++ IPSTATS_MIB_FRAGOKS); ++ consume_skb(skb); ++ return err; ++ ++fail: ++ IP6_INC_STATS(net, ip6_dst_idev(skb_dst(skb)), ++ IPSTATS_MIB_FRAGFAILS); ++ kfree_skb(skb); ++ return err; ++} ++ ++static inline int ip6_rt_check(const struct rt6key *rt_key, ++ const struct in6_addr *fl_addr, ++ const struct in6_addr *addr_cache) ++{ ++ return (rt_key->plen != 128 || !ipv6_addr_equal(fl_addr, &rt_key->addr)) && ++ (addr_cache == NULL || !ipv6_addr_equal(fl_addr, addr_cache)); ++} ++ ++static struct dst_entry *ip6_sk_dst_check(struct sock *sk, ++ struct dst_entry *dst, ++ const struct flowi6 *fl6) ++{ ++ struct ipv6_pinfo *np = inet6_sk(sk); ++ struct rt6_info *rt; ++ ++ if (!dst) ++ goto out; ++ ++ if (dst->ops->family != AF_INET6) { ++ dst_release(dst); ++ return NULL; ++ } ++ ++ rt = (struct rt6_info *)dst; ++ /* Yes, checking route validity in not connected ++ * case is not very simple. Take into account, ++ * that we do not support routing by source, TOS, ++ * and MSG_DONTROUTE --ANK (980726) ++ * ++ * 1. ip6_rt_check(): If route was host route, ++ * check that cached destination is current. ++ * If it is network route, we still may ++ * check its validity using saved pointer ++ * to the last used address: daddr_cache. ++ * We do not want to save whole address now, ++ * (because main consumer of this service ++ * is tcp, which has not this problem), ++ * so that the last trick works only on connected ++ * sockets. ++ * 2. oif also should be the same. ++ */ ++ if (ip6_rt_check(&rt->rt6i_dst, &fl6->daddr, np->daddr_cache) || ++#ifdef CONFIG_IPV6_SUBTREES ++ ip6_rt_check(&rt->rt6i_src, &fl6->saddr, np->saddr_cache) || ++#endif ++ (fl6->flowi6_oif && fl6->flowi6_oif != dst->dev->ifindex)) { ++ dst_release(dst); ++ dst = NULL; ++ } ++ ++out: ++ return dst; ++} ++ ++static int ip6_dst_lookup_tail(struct sock *sk, ++ struct dst_entry **dst, struct flowi6 *fl6) ++{ ++ struct net *net = sock_net(sk); ++#ifdef CONFIG_IPV6_OPTIMISTIC_DAD ++ struct neighbour *n; ++ struct rt6_info *rt; ++#endif ++ int err; ++ ++ if (*dst == NULL) ++ *dst = ip6_route_output(net, sk, fl6); ++ ++ if ((err = (*dst)->error)) ++ goto out_err_release; ++ ++ if (ipv6_addr_any(&fl6->saddr)) { ++ struct rt6_info *rt = (struct rt6_info *) *dst; ++ err = ip6_route_get_saddr(net, rt, &fl6->daddr, ++ sk ? inet6_sk(sk)->srcprefs : 0, ++ &fl6->saddr); ++ if (err) ++ goto out_err_release; ++ } ++ ++#ifdef CONFIG_IPV6_OPTIMISTIC_DAD ++ /* ++ * Here if the dst entry we've looked up ++ * has a neighbour entry that is in the INCOMPLETE ++ * state and the src address from the flow is ++ * marked as OPTIMISTIC, we release the found ++ * dst entry and replace it instead with the ++ * dst entry of the nexthop router ++ */ ++ rt = (struct rt6_info *) *dst; ++ rcu_read_lock_bh(); ++ n = __ipv6_neigh_lookup_noref(rt->dst.dev, rt6_nexthop(rt)); ++ err = n && !(n->nud_state & NUD_VALID) ? -EINVAL : 0; ++ rcu_read_unlock_bh(); ++ ++ if (err) { ++ struct inet6_ifaddr *ifp; ++ struct flowi6 fl_gw6; ++ int redirect; ++ ++ ifp = ipv6_get_ifaddr(net, &fl6->saddr, ++ (*dst)->dev, 1); ++ ++ redirect = (ifp && ifp->flags & IFA_F_OPTIMISTIC); ++ if (ifp) ++ in6_ifa_put(ifp); ++ ++ if (redirect) { ++ /* ++ * We need to get the dst entry for the ++ * default router instead ++ */ ++ dst_release(*dst); ++ memcpy(&fl_gw6, fl6, sizeof(struct flowi6)); ++ memset(&fl_gw6.daddr, 0, sizeof(struct in6_addr)); ++ *dst = ip6_route_output(net, sk, &fl_gw6); ++ if ((err = (*dst)->error)) ++ goto out_err_release; ++ } ++ } ++#endif ++ ++ return 0; ++ ++out_err_release: ++ if (err == -ENETUNREACH) ++ IP6_INC_STATS_BH(net, NULL, IPSTATS_MIB_OUTNOROUTES); ++ dst_release(*dst); ++ *dst = NULL; ++ return err; ++} ++ ++/** ++ * ip6_dst_lookup - perform route lookup on flow ++ * @sk: socket which provides route info ++ * @dst: pointer to dst_entry * for result ++ * @fl6: flow to lookup ++ * ++ * This function performs a route lookup on the given flow. ++ * ++ * It returns zero on success, or a standard errno code on error. ++ */ ++int ip6_dst_lookup(struct sock *sk, struct dst_entry **dst, struct flowi6 *fl6) ++{ ++ *dst = NULL; ++ return ip6_dst_lookup_tail(sk, dst, fl6); ++} ++EXPORT_SYMBOL_GPL(ip6_dst_lookup); ++ ++/** ++ * ip6_dst_lookup_flow - perform route lookup on flow with ipsec ++ * @sk: socket which provides route info ++ * @fl6: flow to lookup ++ * @final_dst: final destination address for ipsec lookup ++ * @can_sleep: we are in a sleepable context ++ * ++ * This function performs a route lookup on the given flow. ++ * ++ * It returns a valid dst pointer on success, or a pointer encoded ++ * error code. ++ */ ++struct dst_entry *ip6_dst_lookup_flow(struct sock *sk, struct flowi6 *fl6, ++ const struct in6_addr *final_dst, ++ bool can_sleep) ++{ ++ struct dst_entry *dst = NULL; ++ int err; ++ ++ err = ip6_dst_lookup_tail(sk, &dst, fl6); ++ if (err) ++ return ERR_PTR(err); ++ if (final_dst) ++ fl6->daddr = *final_dst; ++ if (can_sleep) ++ fl6->flowi6_flags |= FLOWI_FLAG_CAN_SLEEP; ++ ++ return xfrm_lookup(sock_net(sk), dst, flowi6_to_flowi(fl6), sk, 0); ++} ++EXPORT_SYMBOL_GPL(ip6_dst_lookup_flow); ++ ++/** ++ * ip6_sk_dst_lookup_flow - perform socket cached route lookup on flow ++ * @sk: socket which provides the dst cache and route info ++ * @fl6: flow to lookup ++ * @final_dst: final destination address for ipsec lookup ++ * @can_sleep: we are in a sleepable context ++ * ++ * This function performs a route lookup on the given flow with the ++ * possibility of using the cached route in the socket if it is valid. ++ * It will take the socket dst lock when operating on the dst cache. ++ * As a result, this function can only be used in process context. ++ * ++ * It returns a valid dst pointer on success, or a pointer encoded ++ * error code. ++ */ ++struct dst_entry *ip6_sk_dst_lookup_flow(struct sock *sk, struct flowi6 *fl6, ++ const struct in6_addr *final_dst, ++ bool can_sleep) ++{ ++ struct dst_entry *dst = sk_dst_check(sk, inet6_sk(sk)->dst_cookie); ++ int err; ++ ++ dst = ip6_sk_dst_check(sk, dst, fl6); ++ ++ err = ip6_dst_lookup_tail(sk, &dst, fl6); ++ if (err) ++ return ERR_PTR(err); ++ if (final_dst) ++ fl6->daddr = *final_dst; ++ if (can_sleep) ++ fl6->flowi6_flags |= FLOWI_FLAG_CAN_SLEEP; ++ ++ return xfrm_lookup(sock_net(sk), dst, flowi6_to_flowi(fl6), sk, 0); ++} ++EXPORT_SYMBOL_GPL(ip6_sk_dst_lookup_flow); ++ ++static inline int ip6_ufo_append_data(struct sock *sk, ++ int getfrag(void *from, char *to, int offset, int len, ++ int odd, struct sk_buff *skb), ++ void *from, int length, int hh_len, int fragheaderlen, ++ int transhdrlen, int mtu,unsigned int flags, ++ struct rt6_info *rt) ++ ++{ ++ struct sk_buff *skb; ++ int err; ++ ++ /* There is support for UDP large send offload by network ++ * device, so create one single skb packet containing complete ++ * udp datagram ++ */ ++ if ((skb = skb_peek_tail(&sk->sk_write_queue)) == NULL) { ++ struct frag_hdr fhdr; ++ ++ skb = sock_alloc_send_skb(sk, ++ hh_len + fragheaderlen + transhdrlen + 20, ++ (flags & MSG_DONTWAIT), &err); ++ if (skb == NULL) ++ return err; ++ ++ /* reserve space for Hardware header */ ++ skb_reserve(skb, hh_len); ++ ++ /* create space for UDP/IP header */ ++ skb_put(skb,fragheaderlen + transhdrlen); ++ ++ /* initialize network header pointer */ ++ skb_reset_network_header(skb); ++ ++ /* initialize protocol header pointer */ ++ skb->transport_header = skb->network_header + fragheaderlen; ++ ++ skb->ip_summed = CHECKSUM_PARTIAL; ++ skb->csum = 0; ++ ++ /* Specify the length of each IPv6 datagram fragment. ++ * It has to be a multiple of 8. ++ */ ++ skb_shinfo(skb)->gso_size = (mtu - fragheaderlen - ++ sizeof(struct frag_hdr)) & ~7; ++ skb_shinfo(skb)->gso_type = SKB_GSO_UDP; ++ ipv6_select_ident(&fhdr, rt); ++ skb_shinfo(skb)->ip6_frag_id = fhdr.identification; ++ __skb_queue_tail(&sk->sk_write_queue, skb); ++ } ++ ++ return skb_append_datato_frags(sk, skb, getfrag, from, ++ (length - transhdrlen)); ++} ++ ++static inline struct ipv6_opt_hdr *ip6_opt_dup(struct ipv6_opt_hdr *src, ++ gfp_t gfp) ++{ ++ return src ? kmemdup(src, (src->hdrlen + 1) * 8, gfp) : NULL; ++} ++ ++static inline struct ipv6_rt_hdr *ip6_rthdr_dup(struct ipv6_rt_hdr *src, ++ gfp_t gfp) ++{ ++ return src ? kmemdup(src, (src->hdrlen + 1) * 8, gfp) : NULL; ++} ++ ++static void ip6_append_data_mtu(unsigned int *mtu, ++ int *maxfraglen, ++ unsigned int fragheaderlen, ++ struct sk_buff *skb, ++ struct rt6_info *rt, ++ bool pmtuprobe) ++{ ++ if (!(rt->dst.flags & DST_XFRM_TUNNEL)) { ++ if (skb == NULL) { ++ /* first fragment, reserve header_len */ ++ *mtu = *mtu - rt->dst.header_len; ++ ++ } else { ++ /* ++ * this fragment is not first, the headers ++ * space is regarded as data space. ++ */ ++ *mtu = min(*mtu, pmtuprobe ? ++ rt->dst.dev->mtu : ++ dst_mtu(rt->dst.path)); ++ } ++ *maxfraglen = ((*mtu - fragheaderlen) & ~7) ++ + fragheaderlen - sizeof(struct frag_hdr); ++ } ++} ++ ++int ip6_append_data(struct sock *sk, int getfrag(void *from, char *to, ++ int offset, int len, int odd, struct sk_buff *skb), ++ void *from, int length, int transhdrlen, ++ int hlimit, int tclass, struct ipv6_txoptions *opt, struct flowi6 *fl6, ++ struct rt6_info *rt, unsigned int flags, int dontfrag) ++{ ++ struct inet_sock *inet = inet_sk(sk); ++ struct ipv6_pinfo *np = inet6_sk(sk); ++ struct inet_cork *cork; ++ struct sk_buff *skb, *skb_prev = NULL; ++ unsigned int maxfraglen, fragheaderlen, mtu; ++ int exthdrlen; ++ int dst_exthdrlen; ++ int hh_len; ++ int copy; ++ int err; ++ int offset = 0; ++ __u8 tx_flags = 0; ++ ++ if (flags&MSG_PROBE) ++ return 0; ++ cork = &inet->cork.base; ++ if (skb_queue_empty(&sk->sk_write_queue)) { ++ /* ++ * setup for corking ++ */ ++ if (opt) { ++ if (WARN_ON(np->cork.opt)) ++ return -EINVAL; ++ ++ np->cork.opt = kzalloc(opt->tot_len, sk->sk_allocation); ++ if (unlikely(np->cork.opt == NULL)) ++ return -ENOBUFS; ++ ++ np->cork.opt->tot_len = opt->tot_len; ++ np->cork.opt->opt_flen = opt->opt_flen; ++ np->cork.opt->opt_nflen = opt->opt_nflen; ++ ++ np->cork.opt->dst0opt = ip6_opt_dup(opt->dst0opt, ++ sk->sk_allocation); ++ if (opt->dst0opt && !np->cork.opt->dst0opt) ++ return -ENOBUFS; ++ ++ np->cork.opt->dst1opt = ip6_opt_dup(opt->dst1opt, ++ sk->sk_allocation); ++ if (opt->dst1opt && !np->cork.opt->dst1opt) ++ return -ENOBUFS; ++ ++ np->cork.opt->hopopt = ip6_opt_dup(opt->hopopt, ++ sk->sk_allocation); ++ if (opt->hopopt && !np->cork.opt->hopopt) ++ return -ENOBUFS; ++ ++ np->cork.opt->srcrt = ip6_rthdr_dup(opt->srcrt, ++ sk->sk_allocation); ++ if (opt->srcrt && !np->cork.opt->srcrt) ++ return -ENOBUFS; ++ ++ /* need source address above miyazawa*/ ++ } ++ dst_hold(&rt->dst); ++ cork->dst = &rt->dst; ++ inet->cork.fl.u.ip6 = *fl6; ++ np->cork.hop_limit = hlimit; ++ np->cork.tclass = tclass; ++ if (rt->dst.flags & DST_XFRM_TUNNEL) ++ mtu = np->pmtudisc == IPV6_PMTUDISC_PROBE ? ++ rt->dst.dev->mtu : dst_mtu(&rt->dst); ++ else ++ mtu = np->pmtudisc == IPV6_PMTUDISC_PROBE ? ++ rt->dst.dev->mtu : dst_mtu(rt->dst.path); ++ if (np->frag_size < mtu) { ++ if (np->frag_size) ++ mtu = np->frag_size; ++ } ++ cork->fragsize = mtu; ++ if (dst_allfrag(rt->dst.path)) ++ cork->flags |= IPCORK_ALLFRAG; ++ cork->length = 0; ++ exthdrlen = (opt ? opt->opt_flen : 0); ++ length += exthdrlen; ++ transhdrlen += exthdrlen; ++ dst_exthdrlen = rt->dst.header_len - rt->rt6i_nfheader_len; ++ } else { ++ rt = (struct rt6_info *)cork->dst; ++ fl6 = &inet->cork.fl.u.ip6; ++ opt = np->cork.opt; ++ transhdrlen = 0; ++ exthdrlen = 0; ++ dst_exthdrlen = 0; ++ mtu = cork->fragsize; ++ } ++ ++ hh_len = LL_RESERVED_SPACE(rt->dst.dev); ++ ++ fragheaderlen = sizeof(struct ipv6hdr) + rt->rt6i_nfheader_len + ++ (opt ? opt->opt_nflen : 0); ++ maxfraglen = ((mtu - fragheaderlen) & ~7) + fragheaderlen - sizeof(struct frag_hdr); ++ ++ if (mtu <= sizeof(struct ipv6hdr) + IPV6_MAXPLEN) { ++ if (cork->length + length > sizeof(struct ipv6hdr) + IPV6_MAXPLEN - fragheaderlen) { ++ ipv6_local_error(sk, EMSGSIZE, fl6, mtu-exthdrlen); ++ return -EMSGSIZE; ++ } ++ } ++ ++ /* For UDP, check if TX timestamp is enabled */ ++ if (sk->sk_type == SOCK_DGRAM) ++ sock_tx_timestamp(sk, &tx_flags); ++ ++ /* ++ * Let's try using as much space as possible. ++ * Use MTU if total length of the message fits into the MTU. ++ * Otherwise, we need to reserve fragment header and ++ * fragment alignment (= 8-15 octects, in total). ++ * ++ * Note that we may need to "move" the data from the tail of ++ * of the buffer to the new fragment when we split ++ * the message. ++ * ++ * FIXME: It may be fragmented into multiple chunks ++ * at once if non-fragmentable extension headers ++ * are too large. ++ * --yoshfuji ++ */ ++ ++ if ((length > mtu) && dontfrag && (sk->sk_protocol == IPPROTO_UDP || ++ sk->sk_protocol == IPPROTO_RAW)) { ++ ipv6_local_rxpmtu(sk, fl6, mtu-exthdrlen); ++ return -EMSGSIZE; ++ } ++ ++ skb = skb_peek_tail(&sk->sk_write_queue); ++ cork->length += length; ++ if (((length > mtu) || ++ (skb && skb_has_frags(skb))) && ++ (sk->sk_protocol == IPPROTO_UDP) && ++ (rt->dst.dev->features & NETIF_F_UFO)) { ++ err = ip6_ufo_append_data(sk, getfrag, from, length, ++ hh_len, fragheaderlen, ++ transhdrlen, mtu, flags, rt); ++ if (err) ++ goto error; ++ return 0; ++ } ++ ++ if (!skb) ++ goto alloc_new_skb; ++ ++ while (length > 0) { ++ /* Check if the remaining data fits into current packet. */ ++ copy = (cork->length <= mtu && !(cork->flags & IPCORK_ALLFRAG) ? mtu : maxfraglen) - skb->len; ++ if (copy < length) ++ copy = maxfraglen - skb->len; ++ ++ if (copy <= 0) { ++ char *data; ++ unsigned int datalen; ++ unsigned int fraglen; ++ unsigned int fraggap; ++ unsigned int alloclen; ++alloc_new_skb: ++ /* There's no room in the current skb */ ++ if (skb) ++ fraggap = skb->len - maxfraglen; ++ else ++ fraggap = 0; ++ /* update mtu and maxfraglen if necessary */ ++ if (skb == NULL || skb_prev == NULL) ++ ip6_append_data_mtu(&mtu, &maxfraglen, ++ fragheaderlen, skb, rt, ++ np->pmtudisc == ++ IPV6_PMTUDISC_PROBE); ++ ++ skb_prev = skb; ++ ++ /* ++ * If remaining data exceeds the mtu, ++ * we know we need more fragment(s). ++ */ ++ datalen = length + fraggap; ++ ++ if (datalen > (cork->length <= mtu && !(cork->flags & IPCORK_ALLFRAG) ? mtu : maxfraglen) - fragheaderlen) ++ datalen = maxfraglen - fragheaderlen - rt->dst.trailer_len; ++ if ((flags & MSG_MORE) && ++ !(rt->dst.dev->features&NETIF_F_SG)) ++ alloclen = mtu; ++ else ++ alloclen = datalen + fragheaderlen; ++ ++ alloclen += dst_exthdrlen; ++ ++ if (datalen != length + fraggap) { ++ /* ++ * this is not the last fragment, the trailer ++ * space is regarded as data space. ++ */ ++ datalen += rt->dst.trailer_len; ++ } ++ ++ alloclen += rt->dst.trailer_len; ++ fraglen = datalen + fragheaderlen; ++ ++ /* ++ * We just reserve space for fragment header. ++ * Note: this may be overallocation if the message ++ * (without MSG_MORE) fits into the MTU. ++ */ ++ alloclen += sizeof(struct frag_hdr); ++ ++ if (transhdrlen) { ++ skb = sock_alloc_send_skb(sk, ++ alloclen + hh_len, ++ (flags & MSG_DONTWAIT), &err); ++ } else { ++ skb = NULL; ++ if (atomic_read(&sk->sk_wmem_alloc) <= ++ 2 * sk->sk_sndbuf) ++ skb = sock_wmalloc(sk, ++ alloclen + hh_len, 1, ++ sk->sk_allocation); ++ if (unlikely(skb == NULL)) ++ err = -ENOBUFS; ++ else { ++ /* Only the initial fragment ++ * is time stamped. ++ */ ++ tx_flags = 0; ++ } ++ } ++ if (skb == NULL) ++ goto error; ++ /* ++ * Fill in the control structures ++ */ ++ skb->ip_summed = CHECKSUM_NONE; ++ skb->csum = 0; ++ /* reserve for fragmentation and ipsec header */ ++ skb_reserve(skb, hh_len + sizeof(struct frag_hdr) + ++ dst_exthdrlen); ++ ++ if (sk->sk_type == SOCK_DGRAM) ++ skb_shinfo(skb)->tx_flags = tx_flags; ++ ++ /* ++ * Find where to start putting bytes ++ */ ++ data = skb_put(skb, fraglen); ++ skb_set_network_header(skb, exthdrlen); ++ data += fragheaderlen; ++ skb->transport_header = (skb->network_header + ++ fragheaderlen); ++ if (fraggap) { ++ skb->csum = skb_copy_and_csum_bits( ++ skb_prev, maxfraglen, ++ data + transhdrlen, fraggap, 0); ++ skb_prev->csum = csum_sub(skb_prev->csum, ++ skb->csum); ++ data += fraggap; ++ pskb_trim_unique(skb_prev, maxfraglen); ++ } ++ copy = datalen - transhdrlen - fraggap; ++ ++ if (copy < 0) { ++ err = -EINVAL; ++ kfree_skb(skb); ++ goto error; ++ } else if (copy > 0 && getfrag(from, data + transhdrlen, offset, copy, fraggap, skb) < 0) { ++ err = -EFAULT; ++ kfree_skb(skb); ++ goto error; ++ } ++ ++ offset += copy; ++ length -= datalen - fraggap; ++ transhdrlen = 0; ++ exthdrlen = 0; ++ dst_exthdrlen = 0; ++ ++ /* ++ * Put the packet on the pending queue ++ */ ++ __skb_queue_tail(&sk->sk_write_queue, skb); ++ continue; ++ } ++ ++ if (copy > length) ++ copy = length; ++ ++ if (!(rt->dst.dev->features&NETIF_F_SG)) { ++ unsigned int off; ++ ++ off = skb->len; ++ if (getfrag(from, skb_put(skb, copy), ++ offset, copy, off, skb) < 0) { ++ __skb_trim(skb, off); ++ err = -EFAULT; ++ goto error; ++ } ++ } else { ++ int i = skb_shinfo(skb)->nr_frags; ++ struct page_frag *pfrag = sk_page_frag(sk); ++ ++ err = -ENOMEM; ++ if (!sk_page_frag_refill(sk, pfrag)) ++ goto error; ++ ++ if (!skb_can_coalesce(skb, i, pfrag->page, ++ pfrag->offset)) { ++ err = -EMSGSIZE; ++ if (i == MAX_SKB_FRAGS) ++ goto error; ++ ++ __skb_fill_page_desc(skb, i, pfrag->page, ++ pfrag->offset, 0); ++ skb_shinfo(skb)->nr_frags = ++i; ++ get_page(pfrag->page); ++ } ++ copy = min_t(int, copy, pfrag->size - pfrag->offset); ++ if (getfrag(from, ++ page_address(pfrag->page) + pfrag->offset, ++ offset, copy, skb->len, skb) < 0) ++ goto error_efault; ++ ++ pfrag->offset += copy; ++ skb_frag_size_add(&skb_shinfo(skb)->frags[i - 1], copy); ++ skb->len += copy; ++ skb->data_len += copy; ++ skb->truesize += copy; ++ atomic_add(copy, &sk->sk_wmem_alloc); ++ } ++ offset += copy; ++ length -= copy; ++ } ++ ++ return 0; ++ ++error_efault: ++ err = -EFAULT; ++error: ++ cork->length -= length; ++ IP6_INC_STATS(sock_net(sk), rt->rt6i_idev, IPSTATS_MIB_OUTDISCARDS); ++ return err; ++} ++EXPORT_SYMBOL_GPL(ip6_append_data); ++ ++static void ip6_cork_release(struct inet_sock *inet, struct ipv6_pinfo *np) ++{ ++ if (np->cork.opt) { ++ kfree(np->cork.opt->dst0opt); ++ kfree(np->cork.opt->dst1opt); ++ kfree(np->cork.opt->hopopt); ++ kfree(np->cork.opt->srcrt); ++ kfree(np->cork.opt); ++ np->cork.opt = NULL; ++ } ++ ++ if (inet->cork.base.dst) { ++ dst_release(inet->cork.base.dst); ++ inet->cork.base.dst = NULL; ++ inet->cork.base.flags &= ~IPCORK_ALLFRAG; ++ } ++ memset(&inet->cork.fl, 0, sizeof(inet->cork.fl)); ++} ++ ++int ip6_push_pending_frames(struct sock *sk) ++{ ++ struct sk_buff *skb, *tmp_skb; ++ struct sk_buff **tail_skb; ++ struct in6_addr final_dst_buf, *final_dst = &final_dst_buf; ++ struct inet_sock *inet = inet_sk(sk); ++ struct ipv6_pinfo *np = inet6_sk(sk); ++ struct net *net = sock_net(sk); ++ struct ipv6hdr *hdr; ++ struct ipv6_txoptions *opt = np->cork.opt; ++ struct rt6_info *rt = (struct rt6_info *)inet->cork.base.dst; ++ struct flowi6 *fl6 = &inet->cork.fl.u.ip6; ++ unsigned char proto = fl6->flowi6_proto; ++ int err = 0; ++ ++ if ((skb = __skb_dequeue(&sk->sk_write_queue)) == NULL) ++ goto out; ++ tail_skb = &(skb_shinfo(skb)->frag_list); ++ ++ /* move skb->data to ip header from ext header */ ++ if (skb->data < skb_network_header(skb)) ++ __skb_pull(skb, skb_network_offset(skb)); ++ while ((tmp_skb = __skb_dequeue(&sk->sk_write_queue)) != NULL) { ++ __skb_pull(tmp_skb, skb_network_header_len(skb)); ++ *tail_skb = tmp_skb; ++ tail_skb = &(tmp_skb->next); ++ skb->len += tmp_skb->len; ++ skb->data_len += tmp_skb->len; ++ skb->truesize += tmp_skb->truesize; ++ tmp_skb->destructor = NULL; ++ tmp_skb->sk = NULL; ++ } ++ ++ /* Allow local fragmentation. */ ++ if (np->pmtudisc < IPV6_PMTUDISC_DO) ++ skb->local_df = 1; ++ ++ *final_dst = fl6->daddr; ++ __skb_pull(skb, skb_network_header_len(skb)); ++ if (opt && opt->opt_flen) ++ ipv6_push_frag_opts(skb, opt, &proto); ++ if (opt && opt->opt_nflen) ++ ipv6_push_nfrag_opts(skb, opt, &proto, &final_dst); ++ ++ skb_push(skb, sizeof(struct ipv6hdr)); ++ skb_reset_network_header(skb); ++ hdr = ipv6_hdr(skb); ++ ++ ip6_flow_hdr(hdr, np->cork.tclass, fl6->flowlabel); ++ hdr->hop_limit = np->cork.hop_limit; ++ hdr->nexthdr = proto; ++ hdr->saddr = fl6->saddr; ++ hdr->daddr = *final_dst; ++ ++ skb->priority = sk->sk_priority; ++ skb->mark = sk->sk_mark; ++ ++ skb_dst_set(skb, dst_clone(&rt->dst)); ++ IP6_UPD_PO_STATS(net, rt->rt6i_idev, IPSTATS_MIB_OUT, skb->len); ++ if (proto == IPPROTO_ICMPV6) { ++ struct inet6_dev *idev = ip6_dst_idev(skb_dst(skb)); ++ ++ ICMP6MSGOUT_INC_STATS_BH(net, idev, icmp6_hdr(skb)->icmp6_type); ++ ICMP6_INC_STATS_BH(net, idev, ICMP6_MIB_OUTMSGS); ++ } ++ ++ err = ip6_local_out(skb); ++ if (err) { ++ if (err > 0) ++ err = net_xmit_errno(err); ++ if (err) ++ goto error; ++ } ++ ++out: ++ ip6_cork_release(inet, np); ++ return err; ++error: ++ IP6_INC_STATS(net, rt->rt6i_idev, IPSTATS_MIB_OUTDISCARDS); ++ goto out; ++} ++EXPORT_SYMBOL_GPL(ip6_push_pending_frames); ++ ++void ip6_flush_pending_frames(struct sock *sk) ++{ ++ struct sk_buff *skb; ++ ++ while ((skb = __skb_dequeue_tail(&sk->sk_write_queue)) != NULL) { ++ if (skb_dst(skb)) ++ IP6_INC_STATS(sock_net(sk), ip6_dst_idev(skb_dst(skb)), ++ IPSTATS_MIB_OUTDISCARDS); ++ kfree_skb(skb); ++ } ++ ++ ip6_cork_release(inet_sk(sk), inet6_sk(sk)); ++} ++EXPORT_SYMBOL_GPL(ip6_flush_pending_frames); +diff -Naur linux-3.10.30.org/net/netfilter/core.c linux-3.10.30/net/netfilter/core.c +--- linux-3.10.30.org/net/netfilter/core.c 2014-02-13 22:48:15.000000000 +0100 ++++ linux-3.10.30/net/netfilter/core.c 2014-02-14 20:29:05.392738001 +0100 +@@ -191,9 +191,11 @@ + ret = NF_DROP_GETERR(verdict); + if (ret == 0) + ret = -EPERM; +- } else if ((verdict & NF_VERDICT_MASK) == NF_QUEUE) { ++ } else if ((verdict & NF_VERDICT_MASK) == NF_QUEUE || ++ (verdict & NF_VERDICT_MASK) == NF_IMQ_QUEUE) { + int err = nf_queue(skb, elem, pf, hook, indev, outdev, okfn, +- verdict >> NF_VERDICT_QBITS); ++ verdict >> NF_VERDICT_QBITS, ++ verdict & NF_VERDICT_MASK); + if (err < 0) { + if (err == -ECANCELED) + goto next_hook; +diff -Naur linux-3.10.30.org/net/netfilter/Kconfig linux-3.10.30/net/netfilter/Kconfig +--- linux-3.10.30.org/net/netfilter/Kconfig 2014-02-13 22:48:15.000000000 +0100 ++++ linux-3.10.30/net/netfilter/Kconfig 2014-02-14 20:29:05.396071847 +0100 +@@ -641,6 +641,18 @@ + + To compile it as a module, choose M here. If unsure, say N. + ++config NETFILTER_XT_TARGET_IMQ ++ tristate '"IMQ" target support' ++ depends on NETFILTER_XTABLES ++ depends on IP_NF_MANGLE || IP6_NF_MANGLE ++ select IMQ ++ default m if NETFILTER_ADVANCED=n ++ help ++ This option adds a `IMQ' target which is used to specify if and ++ to which imq device packets should get enqueued/dequeued. ++ ++ To compile it as a module, choose M here. If unsure, say N. ++ + config NETFILTER_XT_TARGET_MARK + tristate '"MARK" target support' + depends on NETFILTER_ADVANCED +diff -Naur linux-3.10.30.org/net/netfilter/Makefile linux-3.10.30/net/netfilter/Makefile +--- linux-3.10.30.org/net/netfilter/Makefile 2014-02-13 22:48:15.000000000 +0100 ++++ linux-3.10.30/net/netfilter/Makefile 2014-02-14 20:29:05.396071847 +0100 +@@ -82,6 +82,7 @@ + obj-$(CONFIG_NETFILTER_XT_TARGET_DSCP) += xt_DSCP.o + obj-$(CONFIG_NETFILTER_XT_TARGET_HL) += xt_HL.o + obj-$(CONFIG_NETFILTER_XT_TARGET_HMARK) += xt_HMARK.o ++obj-$(CONFIG_NETFILTER_XT_TARGET_IMQ) += xt_IMQ.o + obj-$(CONFIG_NETFILTER_XT_TARGET_LED) += xt_LED.o + obj-$(CONFIG_NETFILTER_XT_TARGET_LOG) += xt_LOG.o + obj-$(CONFIG_NETFILTER_XT_TARGET_NETMAP) += xt_NETMAP.o +diff -Naur linux-3.10.30.org/net/netfilter/nf_internals.h linux-3.10.30/net/netfilter/nf_internals.h +--- linux-3.10.30.org/net/netfilter/nf_internals.h 2014-02-13 22:48:15.000000000 +0100 ++++ linux-3.10.30/net/netfilter/nf_internals.h 2014-02-14 20:29:05.396071847 +0100 +@@ -29,7 +29,7 @@ + struct net_device *indev, + struct net_device *outdev, + int (*okfn)(struct sk_buff *), +- unsigned int queuenum); ++ unsigned int queuenum, unsigned int queuetype); + extern int __init netfilter_queue_init(void); + + /* nf_log.c */ +diff -Naur linux-3.10.30.org/net/netfilter/nf_queue.c linux-3.10.30/net/netfilter/nf_queue.c +--- linux-3.10.30.org/net/netfilter/nf_queue.c 2014-02-13 22:48:15.000000000 +0100 ++++ linux-3.10.30/net/netfilter/nf_queue.c 2014-02-14 20:29:05.396071847 +0100 +@@ -27,6 +27,23 @@ + */ + static const struct nf_queue_handler __rcu *queue_handler __read_mostly; + ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++static const struct nf_queue_handler __rcu *queue_imq_handler __read_mostly; ++ ++void nf_register_queue_imq_handler(const struct nf_queue_handler *qh) ++{ ++ rcu_assign_pointer(queue_imq_handler, qh); ++} ++EXPORT_SYMBOL_GPL(nf_register_queue_imq_handler); ++ ++void nf_unregister_queue_imq_handler(void) ++{ ++ RCU_INIT_POINTER(queue_imq_handler, NULL); ++ synchronize_rcu(); ++} ++EXPORT_SYMBOL_GPL(nf_unregister_queue_imq_handler); ++#endif ++ + /* return EBUSY when somebody else is registered, return EEXIST if the + * same handler is registered, return 0 in case of success. */ + void nf_register_queue_handler(const struct nf_queue_handler *qh) +@@ -105,7 +122,8 @@ + struct net_device *indev, + struct net_device *outdev, + int (*okfn)(struct sk_buff *), +- unsigned int queuenum) ++ unsigned int queuenum, ++ unsigned int queuetype) + { + int status = -ENOENT; + struct nf_queue_entry *entry = NULL; +@@ -115,7 +133,17 @@ + /* QUEUE == DROP if no one is waiting, to be safe. */ + rcu_read_lock(); + +- qh = rcu_dereference(queue_handler); ++ if (queuetype == NF_IMQ_QUEUE) { ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ qh = rcu_dereference(queue_imq_handler); ++#else ++ BUG(); ++ goto err_unlock; ++#endif ++ } else { ++ qh = rcu_dereference(queue_handler); ++ } ++ + if (!qh) { + status = -ESRCH; + goto err_unlock; +@@ -205,9 +233,11 @@ + local_bh_enable(); + break; + case NF_QUEUE: ++ case NF_IMQ_QUEUE: + err = nf_queue(skb, elem, entry->pf, entry->hook, + entry->indev, entry->outdev, entry->okfn, +- verdict >> NF_VERDICT_QBITS); ++ verdict >> NF_VERDICT_QBITS, ++ verdict & NF_VERDICT_MASK); + if (err < 0) { + if (err == -ECANCELED) + goto next_hook; +diff -Naur linux-3.10.30.org/net/netfilter/xt_IMQ.c linux-3.10.30/net/netfilter/xt_IMQ.c +--- linux-3.10.30.org/net/netfilter/xt_IMQ.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.10.30/net/netfilter/xt_IMQ.c 2014-02-14 20:29:05.396071847 +0100 +@@ -0,0 +1,72 @@ ++/* ++ * This target marks packets to be enqueued to an imq device ++ */ ++#include <linux/module.h> ++#include <linux/skbuff.h> ++#include <linux/netfilter/x_tables.h> ++#include <linux/netfilter/xt_IMQ.h> ++#include <linux/imq.h> ++ ++static unsigned int imq_target(struct sk_buff *pskb, ++ const struct xt_action_param *par) ++{ ++ const struct xt_imq_info *mr = par->targinfo; ++ ++ pskb->imq_flags = (mr->todev & IMQ_F_IFMASK) | IMQ_F_ENQUEUE; ++ ++ return XT_CONTINUE; ++} ++ ++static int imq_checkentry(const struct xt_tgchk_param *par) ++{ ++ struct xt_imq_info *mr = par->targinfo; ++ ++ if (mr->todev > IMQ_MAX_DEVS - 1) { ++ pr_warn("IMQ: invalid device specified, highest is %u\n", ++ IMQ_MAX_DEVS - 1); ++ return -EINVAL; ++ } ++ ++ return 0; ++} ++ ++static struct xt_target xt_imq_reg[] __read_mostly = { ++ { ++ .name = "IMQ", ++ .family = AF_INET, ++ .checkentry = imq_checkentry, ++ .target = imq_target, ++ .targetsize = sizeof(struct xt_imq_info), ++ .table = "mangle", ++ .me = THIS_MODULE ++ }, ++ { ++ .name = "IMQ", ++ .family = AF_INET6, ++ .checkentry = imq_checkentry, ++ .target = imq_target, ++ .targetsize = sizeof(struct xt_imq_info), ++ .table = "mangle", ++ .me = THIS_MODULE ++ }, ++}; ++ ++static int __init imq_init(void) ++{ ++ return xt_register_targets(xt_imq_reg, ARRAY_SIZE(xt_imq_reg)); ++} ++ ++static void __exit imq_fini(void) ++{ ++ xt_unregister_targets(xt_imq_reg, ARRAY_SIZE(xt_imq_reg)); ++} ++ ++module_init(imq_init); ++module_exit(imq_fini); ++ ++MODULE_AUTHOR("http://www.linuximq.net"); ++MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See http://www.linuximq.net/ for more information."); ++MODULE_LICENSE("GPL"); ++MODULE_ALIAS("ipt_IMQ"); ++MODULE_ALIAS("ip6t_IMQ"); ++ diff --git a/src/patches/linux-3.10.30_cs5535audio_fix_logspam_on_geos.patch b/src/patches/linux-3.10.30_cs5535audio_fix_logspam_on_geos.patch new file mode 100644 index 0000000..490a34d --- /dev/null +++ b/src/patches/linux-3.10.30_cs5535audio_fix_logspam_on_geos.patch @@ -0,0 +1,27 @@ +diff -Naur linux-3.10.30.org/sound/pci/cs5535audio/cs5535audio.c linux-3.10.30/sound/pci/cs5535audio/cs5535audio.c +--- linux-3.10.30.org/sound/pci/cs5535audio/cs5535audio.c 2014-02-13 22:48:15.000000000 +0100 ++++ linux-3.10.30/sound/pci/cs5535audio/cs5535audio.c 2014-02-15 12:45:49.545688703 +0100 +@@ -83,8 +83,8 @@ + break; + udelay(1); + } while (--timeout); +- if (!timeout) +- snd_printk(KERN_ERR "Failure writing to cs5535 codec\n"); ++// if (!timeout) ++// snd_printk(KERN_ERR "Failure writing to cs5535 codec\n"); + } + + static unsigned short snd_cs5535audio_codec_read(struct cs5535audio *cs5535au, +@@ -108,9 +108,9 @@ + break; + udelay(1); + } while (--timeout); +- if (!timeout) +- snd_printk(KERN_ERR "Failure reading codec reg 0x%x," +- "Last value=0x%x\n", reg, val); ++// if (!timeout) ++// snd_printk(KERN_ERR "Failure reading codec reg 0x%x," ++// "Last value=0x%x\n", reg, val); + + return (unsigned short) val; + } diff --git a/src/patches/linux-3.10.34-iwlwifi-noibss_only_on_radar_chan.patch b/src/patches/linux-3.10.34-iwlwifi-noibss_only_on_radar_chan.patch new file mode 100644 index 0000000..cc76fe6 --- /dev/null +++ b/src/patches/linux-3.10.34-iwlwifi-noibss_only_on_radar_chan.patch @@ -0,0 +1,23 @@ +diff -Naur linux-3.10.34.org/drivers/net/wireless/iwlwifi/iwl-eeprom-parse.c linux-3.10.34/drivers/net/wireless/iwlwifi/iwl-eeprom-parse.c +--- linux-3.10.34.org/drivers/net/wireless/iwlwifi/iwl-eeprom-parse.c 2014-03-24 05:42:03.000000000 +0100 ++++ linux-3.10.34/drivers/net/wireless/iwlwifi/iwl-eeprom-parse.c 2014-03-25 09:08:28.548634788 +0100 +@@ -613,14 +613,16 @@ + /* set no-HT40, will enable as appropriate later */ + channel->flags = IEEE80211_CHAN_NO_HT40; + ++ ++ if (eeprom_ch->flags & EEPROM_CHANNEL_RADAR) { ++ channel->flags |= IEEE80211_CHAN_RADAR; ++ + if (!(eeprom_ch->flags & EEPROM_CHANNEL_IBSS)) + channel->flags |= IEEE80211_CHAN_NO_IBSS; + + if (!(eeprom_ch->flags & EEPROM_CHANNEL_ACTIVE)) + channel->flags |= IEEE80211_CHAN_PASSIVE_SCAN; +- +- if (eeprom_ch->flags & EEPROM_CHANNEL_RADAR) +- channel->flags |= IEEE80211_CHAN_RADAR; ++} + + /* Initialize regulatory-based run-time data */ + channel->max_power = diff --git a/src/patches/linux-3.10.9-ledtrig-netdev-1.patch b/src/patches/linux-3.10.9-ledtrig-netdev-1.patch new file mode 100644 index 0000000..8ad1ebd --- /dev/null +++ b/src/patches/linux-3.10.9-ledtrig-netdev-1.patch @@ -0,0 +1,478 @@ +diff -Naur linux-3.10.9.org/drivers/leds/trigger/Kconfig linux-3.10.9/drivers/leds/trigger/Kconfig +--- linux-3.10.9.org/drivers/leds/trigger/Kconfig 2013-08-21 00:40:47.000000000 +0200 ++++ linux-3.10.9/drivers/leds/trigger/Kconfig 2013-08-30 20:43:19.064025933 +0200 +@@ -108,4 +108,11 @@ + This enables direct flash/torch on/off by the driver, kernel space. + If unsure, say Y. + ++config LEDS_TRIGGER_NETDEV ++ tristate "LED Netdev Trigger" ++ depends on LEDS_TRIGGERS ++ help ++ This allows LEDs to be controlled by network device activity. ++ If unsure, say Y. ++ + endif # LEDS_TRIGGERS +diff -Naur linux-3.10.9.org/drivers/leds/trigger/ledtrig-netdev.c linux-3.10.9/drivers/leds/trigger/ledtrig-netdev.c +--- linux-3.10.9.org/drivers/leds/trigger/ledtrig-netdev.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.10.9/drivers/leds/trigger/ledtrig-netdev.c 2013-08-30 20:44:17.857339974 +0200 +@@ -0,0 +1,451 @@ ++/* ++ * LED Kernel Netdev Trigger ++ * ++ * Toggles the LED to reflect the link and traffic state of a named net device ++ * ++ * Copyright 2007 Oliver Jowett oliver@opencloud.com ++ * ++ * Derived from ledtrig-timer.c which is: ++ * Copyright 2005-2006 Openedhand Ltd. ++ * Author: Richard Purdie rpurdie@openedhand.com ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ * ++ */ ++ ++#include <linux/module.h> ++#include <linux/jiffies.h> ++#include <linux/kernel.h> ++#include <linux/init.h> ++#include <linux/list.h> ++#include <linux/spinlock.h> ++#include <linux/device.h> ++#include <linux/netdevice.h> ++#include <linux/timer.h> ++#include <linux/ctype.h> ++#include <linux/leds.h> ++#include <linux/version.h> ++ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) ++#include <net/net_namespace.h> ++#endif ++ ++#include "../leds.h" ++ ++/* ++ * Configurable sysfs attributes: ++ * ++ * device_name - network device name to monitor ++ * ++ * interval - duration of LED blink, in milliseconds ++ * ++ * mode - either "none" (LED is off) or a space separated list of one or more of: ++ * link: LED's normal state reflects whether the link is up (has carrier) or not ++ * tx: LED blinks on transmitted data ++ * rx: LED blinks on receive data ++ * ++ * Some suggestions: ++ * ++ * Simple link status LED: ++ * $ echo netdev >someled/trigger ++ * $ echo eth0 >someled/device_name ++ * $ echo link >someled/mode ++ * ++ * Ethernet-style link/activity LED: ++ * $ echo netdev >someled/trigger ++ * $ echo eth0 >someled/device_name ++ * $ echo "link tx rx" >someled/mode ++ * ++ * Modem-style tx/rx LEDs: ++ * $ echo netdev >led1/trigger ++ * $ echo ppp0 >led1/device_name ++ * $ echo tx >led1/mode ++ * $ echo netdev >led2/trigger ++ * $ echo ppp0 >led2/device_name ++ * $ echo rx >led2/mode ++ * ++ */ ++ ++#define MODE_LINK 1 ++#define MODE_TX 2 ++#define MODE_RX 4 ++ ++struct led_netdev_data { ++ rwlock_t lock; ++ ++ struct timer_list timer; ++ struct notifier_block notifier; ++ ++ struct led_classdev *led_cdev; ++ struct net_device *net_dev; ++ ++ char device_name[IFNAMSIZ]; ++ unsigned interval; ++ unsigned mode; ++ unsigned link_up; ++ unsigned last_activity; ++}; ++ ++static void set_baseline_state(struct led_netdev_data *trigger_data) ++{ ++ if ((trigger_data->mode & MODE_LINK) != 0 && trigger_data->link_up) ++ led_set_brightness(trigger_data->led_cdev, LED_FULL); ++ else ++ led_set_brightness(trigger_data->led_cdev, LED_OFF); ++ ++ if ((trigger_data->mode & (MODE_TX | MODE_RX)) != 0 && trigger_data->link_up) ++ mod_timer(&trigger_data->timer, jiffies + trigger_data->interval); ++ else ++ del_timer(&trigger_data->timer); ++} ++ ++static ssize_t led_device_name_show(struct device *dev, ++ struct device_attribute *attr, char *buf) ++{ ++ struct led_classdev *led_cdev = dev_get_drvdata(dev); ++ struct led_netdev_data *trigger_data = led_cdev->trigger_data; ++ ++ read_lock(&trigger_data->lock); ++ sprintf(buf, "%s\n", trigger_data->device_name); ++ read_unlock(&trigger_data->lock); ++ ++ return strlen(buf) + 1; ++} ++ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) ++extern struct net init_net; ++#endif ++ ++static ssize_t led_device_name_store(struct device *dev, ++ struct device_attribute *attr, const char *buf, size_t size) ++{ ++ struct led_classdev *led_cdev = dev_get_drvdata(dev); ++ struct led_netdev_data *trigger_data = led_cdev->trigger_data; ++ ++ if (size < 0 || size >= IFNAMSIZ) ++ return -EINVAL; ++ ++ write_lock(&trigger_data->lock); ++ ++ strcpy(trigger_data->device_name, buf); ++ if (size > 0 && trigger_data->device_name[size-1] == '\n') ++ trigger_data->device_name[size-1] = 0; ++ ++ if (trigger_data->device_name[0] != 0) { ++ /* check for existing device to update from */ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) ++ trigger_data->net_dev = dev_get_by_name(&init_net, trigger_data->device_name); ++#else ++ trigger_data->net_dev = dev_get_by_name(trigger_data->device_name); ++#endif ++ if (trigger_data->net_dev != NULL) ++ trigger_data->link_up = (dev_get_flags(trigger_data->net_dev) & IFF_LOWER_UP) != 0; ++ set_baseline_state(trigger_data); /* updates LEDs, may start timers */ ++ } ++ ++ write_unlock(&trigger_data->lock); ++ return size; ++} ++ ++static DEVICE_ATTR(device_name, 0644, led_device_name_show, led_device_name_store); ++ ++static ssize_t led_mode_show(struct device *dev, ++ struct device_attribute *attr, char *buf) ++{ ++ struct led_classdev *led_cdev = dev_get_drvdata(dev); ++ struct led_netdev_data *trigger_data = led_cdev->trigger_data; ++ ++ read_lock(&trigger_data->lock); ++ ++ if (trigger_data->mode == 0) { ++ strcpy(buf, "none\n"); ++ } else { ++ if (trigger_data->mode & MODE_LINK) ++ strcat(buf, "link "); ++ if (trigger_data->mode & MODE_TX) ++ strcat(buf, "tx "); ++ if (trigger_data->mode & MODE_RX) ++ strcat(buf, "rx "); ++ strcat(buf, "\n"); ++ } ++ ++ read_unlock(&trigger_data->lock); ++ ++ return strlen(buf)+1; ++} ++ ++static ssize_t led_mode_store(struct device *dev, ++ struct device_attribute *attr, const char *buf, size_t size) ++{ ++ struct led_classdev *led_cdev = dev_get_drvdata(dev); ++ struct led_netdev_data *trigger_data = led_cdev->trigger_data; ++ char copybuf[1024]; ++ int new_mode = -1; ++ char *p, *token; ++ ++ /* take a copy since we don't want to trash the inbound buffer when using strsep */ ++ strncpy(copybuf, buf, sizeof(copybuf)); ++ copybuf[1023] = 0; ++ p = copybuf; ++ ++ while ((token = strsep(&p, " \t\n")) != NULL) { ++ if (!*token) ++ continue; ++ ++ if (new_mode == -1) ++ new_mode = 0; ++ ++ if (!strcmp(token, "none")) ++ new_mode = 0; ++ else if (!strcmp(token, "tx")) ++ new_mode |= MODE_TX; ++ else if (!strcmp(token, "rx")) ++ new_mode |= MODE_RX; ++ else if (!strcmp(token, "link")) ++ new_mode |= MODE_LINK; ++ else ++ return -EINVAL; ++ } ++ ++ if (new_mode == -1) ++ return -EINVAL; ++ ++ write_lock(&trigger_data->lock); ++ trigger_data->mode = new_mode; ++ set_baseline_state(trigger_data); ++ write_unlock(&trigger_data->lock); ++ ++ return size; ++} ++ ++static DEVICE_ATTR(mode, 0644, led_mode_show, led_mode_store); ++ ++static ssize_t led_interval_show(struct device *dev, ++ struct device_attribute *attr, char *buf) ++{ ++ struct led_classdev *led_cdev = dev_get_drvdata(dev); ++ struct led_netdev_data *trigger_data = led_cdev->trigger_data; ++ ++ read_lock(&trigger_data->lock); ++ sprintf(buf, "%u\n", jiffies_to_msecs(trigger_data->interval)); ++ read_unlock(&trigger_data->lock); ++ ++ return strlen(buf) + 1; ++} ++ ++static ssize_t led_interval_store(struct device *dev, ++ struct device_attribute *attr, const char *buf, size_t size) ++{ ++ struct led_classdev *led_cdev = dev_get_drvdata(dev); ++ struct led_netdev_data *trigger_data = led_cdev->trigger_data; ++ int ret = -EINVAL; ++ char *after; ++ unsigned long value = simple_strtoul(buf, &after, 10); ++ size_t count = after - buf; ++ ++ if (*after && isspace(*after)) ++ count++; ++ ++ /* impose some basic bounds on the timer interval */ ++ if (count == size && value >= 5 && value <= 10000) { ++ write_lock(&trigger_data->lock); ++ trigger_data->interval = msecs_to_jiffies(value); ++ set_baseline_state(trigger_data); // resets timer ++ write_unlock(&trigger_data->lock); ++ ret = count; ++ } ++ ++ return ret; ++} ++ ++static DEVICE_ATTR(interval, 0644, led_interval_show, led_interval_store); ++ ++static int netdev_trig_notify(struct notifier_block *nb, ++ unsigned long evt, ++ void *dv) ++{ ++ struct net_device *dev = dv; ++ struct led_netdev_data *trigger_data = container_of(nb, struct led_netdev_data, notifier); ++ ++ if (evt != NETDEV_UP && evt != NETDEV_DOWN && evt != NETDEV_CHANGE && evt != NETDEV_REGISTER && evt != NETDEV_UNREGISTER) ++ return NOTIFY_DONE; ++ ++ write_lock(&trigger_data->lock); ++ ++ if (strcmp(dev->name, trigger_data->device_name)) ++ goto done; ++ ++ if (evt == NETDEV_REGISTER) { ++ if (trigger_data->net_dev != NULL) ++ dev_put(trigger_data->net_dev); ++ dev_hold(dev); ++ trigger_data->net_dev = dev; ++ trigger_data->link_up = 0; ++ goto done; ++ } ++ ++ if (evt == NETDEV_UNREGISTER && trigger_data->net_dev != NULL) { ++ dev_put(trigger_data->net_dev); ++ trigger_data->net_dev = NULL; ++ goto done; ++ } ++ ++ /* UP / DOWN / CHANGE */ ++ ++ trigger_data->link_up = (evt != NETDEV_DOWN && netif_carrier_ok(dev)); ++ set_baseline_state(trigger_data); ++ ++done: ++ write_unlock(&trigger_data->lock); ++ return NOTIFY_DONE; ++} ++ ++/* here's the real work! */ ++static void netdev_trig_timer(unsigned long arg) ++{ ++ struct led_netdev_data *trigger_data = (struct led_netdev_data *)arg; ++ struct rtnl_link_stats64 *dev_stats; ++ unsigned new_activity; ++ struct rtnl_link_stats64 temp; ++ ++ write_lock(&trigger_data->lock); ++ ++ if (!trigger_data->link_up || !trigger_data->net_dev || (trigger_data->mode & (MODE_TX | MODE_RX)) == 0) { ++ /* we don't need to do timer work, just reflect link state. */ ++ led_set_brightness(trigger_data->led_cdev, ((trigger_data->mode & MODE_LINK) != 0 && trigger_data->link_up) ? LED_FULL : LED_OFF); ++ goto no_restart; ++ } ++ ++ dev_stats = dev_get_stats(trigger_data->net_dev, &temp); ++ new_activity = ++ ((trigger_data->mode & MODE_TX) ? dev_stats->tx_packets : 0) + ++ ((trigger_data->mode & MODE_RX) ? dev_stats->rx_packets : 0); ++ ++ if (trigger_data->mode & MODE_LINK) { ++ /* base state is ON (link present) */ ++ /* if there's no link, we don't get this far and the LED is off */ ++ ++ /* OFF -> ON always */ ++ /* ON -> OFF on activity */ ++ if (trigger_data->led_cdev->brightness == LED_OFF) { ++ led_set_brightness(trigger_data->led_cdev, LED_FULL); ++ } else if (trigger_data->last_activity != new_activity) { ++ led_set_brightness(trigger_data->led_cdev, LED_OFF); ++ } ++ } else { ++ /* base state is OFF */ ++ /* ON -> OFF always */ ++ /* OFF -> ON on activity */ ++ if (trigger_data->led_cdev->brightness == LED_FULL) { ++ led_set_brightness(trigger_data->led_cdev, LED_OFF); ++ } else if (trigger_data->last_activity != new_activity) { ++ led_set_brightness(trigger_data->led_cdev, LED_FULL); ++ } ++ } ++ ++ trigger_data->last_activity = new_activity; ++ mod_timer(&trigger_data->timer, jiffies + trigger_data->interval); ++ ++no_restart: ++ write_unlock(&trigger_data->lock); ++} ++ ++static void netdev_trig_activate(struct led_classdev *led_cdev) ++{ ++ struct led_netdev_data *trigger_data; ++ int rc; ++ ++ trigger_data = kzalloc(sizeof(struct led_netdev_data), GFP_KERNEL); ++ if (!trigger_data) ++ return; ++ ++ rwlock_init(&trigger_data->lock); ++ ++ trigger_data->notifier.notifier_call = netdev_trig_notify; ++ trigger_data->notifier.priority = 10; ++ ++ setup_timer(&trigger_data->timer, netdev_trig_timer, (unsigned long) trigger_data); ++ ++ trigger_data->led_cdev = led_cdev; ++ trigger_data->net_dev = NULL; ++ trigger_data->device_name[0] = 0; ++ ++ trigger_data->mode = 0; ++ trigger_data->interval = msecs_to_jiffies(50); ++ trigger_data->link_up = 0; ++ trigger_data->last_activity = 0; ++ ++ led_cdev->trigger_data = trigger_data; ++ ++ rc = device_create_file(led_cdev->dev, &dev_attr_device_name); ++ if (rc) ++ goto err_out; ++ rc = device_create_file(led_cdev->dev, &dev_attr_mode); ++ if (rc) ++ goto err_out_device_name; ++ rc = device_create_file(led_cdev->dev, &dev_attr_interval); ++ if (rc) ++ goto err_out_mode; ++ ++ register_netdevice_notifier(&trigger_data->notifier); ++ return; ++ ++err_out_mode: ++ device_remove_file(led_cdev->dev, &dev_attr_mode); ++err_out_device_name: ++ device_remove_file(led_cdev->dev, &dev_attr_device_name); ++err_out: ++ led_cdev->trigger_data = NULL; ++ kfree(trigger_data); ++} ++ ++static void netdev_trig_deactivate(struct led_classdev *led_cdev) ++{ ++ struct led_netdev_data *trigger_data = led_cdev->trigger_data; ++ ++ if (trigger_data) { ++ unregister_netdevice_notifier(&trigger_data->notifier); ++ ++ device_remove_file(led_cdev->dev, &dev_attr_device_name); ++ device_remove_file(led_cdev->dev, &dev_attr_mode); ++ device_remove_file(led_cdev->dev, &dev_attr_interval); ++ ++ write_lock(&trigger_data->lock); ++ ++ if (trigger_data->net_dev) { ++ dev_put(trigger_data->net_dev); ++ trigger_data->net_dev = NULL; ++ } ++ ++ write_unlock(&trigger_data->lock); ++ ++ del_timer_sync(&trigger_data->timer); ++ ++ kfree(trigger_data); ++ } ++} ++ ++static struct led_trigger netdev_led_trigger = { ++ .name = "netdev", ++ .activate = netdev_trig_activate, ++ .deactivate = netdev_trig_deactivate, ++}; ++ ++static int __init netdev_trig_init(void) ++{ ++ return led_trigger_register(&netdev_led_trigger); ++} ++ ++static void __exit netdev_trig_exit(void) ++{ ++ led_trigger_unregister(&netdev_led_trigger); ++} ++ ++module_init(netdev_trig_init); ++module_exit(netdev_trig_exit); ++ ++MODULE_AUTHOR("Oliver Jowett oliver@opencloud.com"); ++MODULE_DESCRIPTION("Netdev LED trigger"); ++MODULE_LICENSE("GPL"); +diff -Naur linux-3.10.9.org/drivers/leds/trigger/Makefile linux-3.10.9/drivers/leds/trigger/Makefile +--- linux-3.10.9.org/drivers/leds/trigger/Makefile 2013-08-21 00:40:47.000000000 +0200 ++++ linux-3.10.9/drivers/leds/trigger/Makefile 2013-08-30 20:43:56.414009853 +0200 +@@ -8,3 +8,4 @@ + obj-$(CONFIG_LEDS_TRIGGER_DEFAULT_ON) += ledtrig-default-on.o + obj-$(CONFIG_LEDS_TRIGGER_TRANSIENT) += ledtrig-transient.o + obj-$(CONFIG_LEDS_TRIGGER_CAMERA) += ledtrig-camera.o ++obj-$(CONFIG_LEDS_TRIGGER_NETDEV) += ledtrig-netdev.o diff --git a/src/patches/linux-3.7-disable-compat_vdso.patch b/src/patches/linux-3.7-disable-compat_vdso.patch new file mode 100644 index 0000000..c06bd8b --- /dev/null +++ b/src/patches/linux-3.7-disable-compat_vdso.patch @@ -0,0 +1,46 @@ +No need to wrap vdso calls as gentoo does not use any version of +glibc <=2.3.3 +--- +From: Gordon Malm gengor@gentoo.org +From: Kerin Millar kerframil@gmail.com +From: Jory A. Pratt anarchy@gentoo.org + +COMPAT_VDSO is inappropriate for any modern Hardened Gentoo system. It +conflicts with various parts of PaX, crashing the system if enabled +while PaX's NOEXEC or UDEREF features are active. Moreover, it prevents +a number of important PaX options from appearing in the configuration +menu, including all PaX NOEXEC implementations. Unfortunately, the +reason for the disappearance of these PaX configuration options is +often far from obvious to inexperienced users. + +Therefore, we disable the COMPAT_VDSO menu entry entirely. However, +COMPAT_VDSO operation can still be enabled via bootparam and sysctl +interfaces. Consequently, we must also disable the ability to select +COMPAT_VDSO operation at boot or runtime. Here we patch the kernel so +that selecting COMPAT_VDSO operation at boot/runtime has no effect if +conflicting PaX options are enabled, leaving VDSO_ENABLED operation +intact. + +Closes bug: http://bugs.gentoo.org/show_bug.cgi?id=210138 + +diff -urp a/arch/x86/Kconfig b/arch/x86/Kconfig +--- a/arch/x86/Kconfig 2009-07-31 01:36:57.323857684 +0100 ++++ b/arch/x86/Kconfig 2009-07-31 01:51:39.395749681 +0100 +@@ -1651,17 +1651,8 @@ + + config COMPAT_VDSO + def_bool n +- prompt "Compat VDSO support" + depends on X86_32 || IA32_EMULATION + depends on !PAX_PAGEEXEC && !PAX_SEGMEXEC && !PAX_KERNEXEC && !PAX_MEMORY_UDEREF +- ---help--- +- Map the 32-bit VDSO to the predictable old-style address too. +- +- Say N here if you are running a sufficiently recent glibc +- version (2.3.3 or later), to remove the high-mapped +- VDSO mapping and to exclusively use the randomized VDSO. +- +- If unsure, say Y. + + config CMDLINE_BOOL + bool "Built-in kernel command line" diff --git a/src/patches/linux-3.9-dvbsky-wot2.patch b/src/patches/linux-3.9-dvbsky-wot2.patch new file mode 100644 index 0000000..e084c8c --- /dev/null +++ b/src/patches/linux-3.9-dvbsky-wot2.patch @@ -0,0 +1,6161 @@ +diff -urN a/drivers/media/dvb-frontends/Kconfig b/drivers/media/dvb-frontends/Kconfig +--- a/drivers/media/dvb-frontends/Kconfig 2013-04-29 08:36:01.000000000 +0800 ++++ b/drivers/media/dvb-frontends/Kconfig 2013-05-03 17:03:57.000000000 +0800 +@@ -200,6 +200,20 @@ + help + A DVB-S/S2 tuner module. Say Y when you want to support this frontend. + ++config DVB_M88DS3103 ++ tristate "Montage M88DS3103 based" ++ depends on DVB_CORE && I2C ++ default m if !MEDIA_SUBDRV_AUTOSELECT ++ help ++ A DVB-S/S2 tuner module. Say Y when you want to support this frontend. ++ ++config DVB_M88DC2800 ++ tristate "Montage M88DC2800 based" ++ depends on DVB_CORE && I2C ++ default m if !MEDIA_SUBDRV_AUTOSELECT ++ help ++ A DVB-C tuner module. Say Y when you want to support this frontend. ++ + config DVB_SI21XX + tristate "Silicon Labs SI21XX based" + depends on DVB_CORE && I2C +diff -urN a/drivers/media/dvb-frontends/m88dc2800.c b/drivers/media/dvb-frontends/m88dc2800.c +--- a/drivers/media/dvb-frontends/m88dc2800.c 1970-01-01 08:00:00.000000000 +0800 ++++ b/drivers/media/dvb-frontends/m88dc2800.c 2013-01-26 16:03:21.000000000 +0800 +@@ -0,0 +1,2124 @@ ++/* ++ M88DC2800/M88TC2800 - DVB-C demodulator and tuner from Montage ++ ++ Copyright (C) 2012 Max nibblenibble.max@gmail.com ++ Copyright (C) 2011 Montage Technology / www.montage-tech.com ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++*/ ++ ++#include <linux/delay.h> ++#include <linux/errno.h> ++#include <linux/init.h> ++#include <linux/kernel.h> ++#include <linux/module.h> ++#include <linux/string.h> ++#include <linux/slab.h> ++#include <asm/div64.h> ++#include "dvb_frontend.h" ++#include "m88dc2800.h" ++ ++struct m88dc2800_state { ++ struct i2c_adapter *i2c; ++ const struct m88dc2800_config *config; ++ struct dvb_frontend frontend; ++ u32 freq; ++ u32 ber; ++ u32 sym; ++ u16 qam; ++ u8 inverted; ++ u32 xtal; ++ /* tuner state */ ++ u8 tuner_init_OK; /* Tuner initialize status */ ++ u8 tuner_dev_addr; /* Tuner device address */ ++ u32 tuner_freq; /* RF frequency to be set, unit: KHz */ ++ u16 tuner_qam; /* Reserved */ ++ u16 tuner_mode; ++ u8 tuner_bandwidth; /* Bandwidth of the channel, unit: MHz, 6/7/8 */ ++ u8 tuner_loopthrough; /* Tuner loop through switch, 0/1 */ ++ u32 tuner_crystal; /* Tuner crystal frequency, unit: KHz */ ++ u32 tuner_dac; /* Tuner DAC frequency, unit: KHz */ ++ u16 tuner_mtt; /* Tuner chip version, D1: 0x0d, E0: 0x0e, E1: 0x8e */ ++ u16 tuner_custom_cfg; ++ u32 tuner_version; /* Tuner driver version number */ ++ u32 tuner_time; ++}; ++ ++static int debug; ++module_param(debug, int, 0644); ++MODULE_PARM_DESC(debug, "Activates frontend debugging (default:0)"); ++ ++#define dprintk(args...) \ ++ do { \ ++ if (debug) \ ++ printk(KERN_INFO "m88dc2800: " args); \ ++ } while (0) ++ ++ ++static int m88dc2800_i2c_write(struct m88dc2800_state *state, u8 addr, ++ u8 * p_data, u8 len) ++{ ++ struct i2c_msg msg = { .flags = 0 }; ++ ++ msg.addr = addr; ++ msg.buf = p_data; ++ msg.len = len; ++ ++ return i2c_transfer(state->i2c, &msg, 1); ++} ++ ++static int m88dc2800_i2c_read(struct m88dc2800_state *state, u8 addr, ++ u8 * p_data, u8 len) ++{ ++ struct i2c_msg msg = { .flags = I2C_M_RD }; ++ ++ msg.addr = addr; ++ msg.buf = p_data; ++ msg.len = len; ++ ++ return i2c_transfer(state->i2c, &msg, 1); ++} ++ ++/*demod register operations.*/ ++static int WriteReg(struct m88dc2800_state *state, u8 reg, u8 data) ++{ ++ u8 buf[] = { reg, data }; ++ u8 addr = state->config->demod_address; ++ int err; ++ ++ dprintk("%s: write reg 0x%02x, value 0x%02x\n", __func__, reg, data); ++ ++ err = m88dc2800_i2c_write(state, addr, buf, 2); ++ ++ if (err != 1) { ++ printk(KERN_ERR ++ "%s: writereg error(err == %i, reg == 0x%02x," ++ " value == 0x%02x)\n", __func__, err, reg, data); ++ return -EIO; ++ } ++ return 0; ++} ++ ++static int ReadReg(struct m88dc2800_state *state, u8 reg) ++{ ++ int ret; ++ u8 b0[] = { reg }; ++ u8 b1[] = { 0 }; ++ u8 addr = state->config->demod_address; ++ ++ ret = m88dc2800_i2c_write(state, addr, b0, 1); ++ ++ if (ret != 1) { ++ printk(KERN_ERR "%s: reg=0x%x (error=%d)\n", ++ __func__, reg, ret); ++ return -EIO; ++ } ++ ++ ret = m88dc2800_i2c_read(state, addr, b1, 1); ++ ++ dprintk("%s: read reg 0x%02x, value 0x%02x\n", __func__, reg, b1[0]); ++ return b1[0]; ++} ++ ++static int _mt_fe_tn_set_reg(struct m88dc2800_state *state, u8 reg, ++ u8 data) ++{ ++ int ret; ++ u8 buf[2]; ++ u8 addr = state->tuner_dev_addr; ++ ++ buf[1] = ReadReg(state, 0x86); ++ buf[1] |= 0x80; ++ ret = WriteReg(state, 0x86, buf[1]); ++ ++ buf[0] = reg; ++ buf[1] = data; ++ ++ ret = m88dc2800_i2c_write(state, addr, buf, 2); ++ if (ret != 1) ++ return -EIO; ++ return 0; ++} ++ ++static int _mt_fe_tn_get_reg(struct m88dc2800_state *state, u8 reg, ++ u8 * p_data) ++{ ++ int ret; ++ u8 buf[2]; ++ u8 addr = state->tuner_dev_addr; ++ ++ buf[1] = ReadReg(state, 0x86); ++ buf[1] |= 0x80; ++ ret = WriteReg(state, 0x86, buf[1]); ++ ++ buf[0] = reg; ++ ret = m88dc2800_i2c_write(state, addr, buf, 1); ++ ++ msleep(1); ++ ++ buf[1] = ReadReg(state, 0x86); ++ buf[1] |= 0x80; ++ ret = WriteReg(state, 0x86, buf[1]); ++ ++ return m88dc2800_i2c_read(state, addr, p_data, 1); ++} ++ ++/* Tuner operation functions.*/ ++static int _mt_fe_tn_set_RF_front_tc2800(struct m88dc2800_state *state) ++{ ++ u32 freq_KHz = state->tuner_freq; ++ u8 a, b, c; ++ if (state->tuner_mtt == 0xD1) { /* D1 */ ++ if (freq_KHz <= 123000) { ++ if (freq_KHz <= 56000) { ++ a = 0x00; b = 0x00; c = 0x00; ++ } else if (freq_KHz <= 64000) { ++ a = 0x10; b = 0x01; c = 0x08; ++ } else if (freq_KHz <= 72000) { ++ a = 0x20; b = 0x02; c = 0x10; ++ } else if (freq_KHz <= 80000) { ++ a = 0x30; b = 0x03; c = 0x18; ++ } else if (freq_KHz <= 88000) { ++ a = 0x40; b = 0x04; c = 0x20; ++ } else if (freq_KHz <= 96000) { ++ a = 0x50; b = 0x05; c = 0x28; ++ } else if (freq_KHz <= 104000) { ++ a = 0x60; b = 0x06; c = 0x30; ++ } else { ++ a = 0x70; b = 0x07; c = 0x38; ++ } ++ _mt_fe_tn_set_reg(state, 0x58, 0x9b); ++ _mt_fe_tn_set_reg(state, 0x59, a); ++ _mt_fe_tn_set_reg(state, 0x5d, b); ++ _mt_fe_tn_set_reg(state, 0x5e, c); ++ _mt_fe_tn_set_reg(state, 0x5a, 0x75); ++ _mt_fe_tn_set_reg(state, 0x73, 0x0c); ++ } else { /* if (freq_KHz > 112000) */ ++ _mt_fe_tn_set_reg(state, 0x58, 0x7b); ++ if (freq_KHz <= 304000) { ++ if (freq_KHz <= 136000) { ++ _mt_fe_tn_set_reg(state, 0x5e, 0x40); ++ } else if (freq_KHz <= 160000) { ++ _mt_fe_tn_set_reg(state, 0x5e, 0x48); ++ } else if (freq_KHz <= 184000) { ++ _mt_fe_tn_set_reg(state, 0x5e, 0x50); ++ } else if (freq_KHz <= 208000) { ++ _mt_fe_tn_set_reg(state, 0x5e, 0x58); ++ } else if (freq_KHz <= 232000) { ++ _mt_fe_tn_set_reg(state, 0x5e, 0x60); ++ } else if (freq_KHz <= 256000) { ++ _mt_fe_tn_set_reg(state, 0x5e, 0x68); ++ } else if (freq_KHz <= 280000) { ++ _mt_fe_tn_set_reg(state, 0x5e, 0x70); ++ } else { /* if (freq_KHz <= 304000) */ ++ _mt_fe_tn_set_reg(state, 0x5e, 0x78); ++ } ++ if (freq_KHz <= 171000) { ++ _mt_fe_tn_set_reg(state, 0x73, 0x08); ++ } else if (freq_KHz <= 211000) { ++ _mt_fe_tn_set_reg(state, 0x73, 0x0a); ++ } else { ++ _mt_fe_tn_set_reg(state, 0x73, 0x0e); ++ } ++ } else { /* if (freq_KHz > 304000) */ ++ _mt_fe_tn_set_reg(state, 0x5e, 0x88); ++ if (freq_KHz <= 400000) { ++ _mt_fe_tn_set_reg(state, 0x73, 0x0c); ++ } else if (freq_KHz <= 450000) { ++ _mt_fe_tn_set_reg(state, 0x73, 0x09); ++ } else if (freq_KHz <= 550000) { ++ _mt_fe_tn_set_reg(state, 0x73, 0x0e); ++ } else if (freq_KHz <= 650000) { ++ _mt_fe_tn_set_reg(state, 0x73, 0x0d); ++ } else { /*if (freq_KHz > 650000) */ ++ _mt_fe_tn_set_reg(state, 0x73, 0x0e); ++ } ++ } ++ } ++ if (freq_KHz > 800000) ++ _mt_fe_tn_set_reg(state, 0x87, 0x24); ++ else if (freq_KHz > 700000) ++ _mt_fe_tn_set_reg(state, 0x87, 0x34); ++ else if (freq_KHz > 500000) ++ _mt_fe_tn_set_reg(state, 0x87, 0x44); ++ else if (freq_KHz > 300000) ++ _mt_fe_tn_set_reg(state, 0x87, 0x43); ++ else if (freq_KHz > 220000) ++ _mt_fe_tn_set_reg(state, 0x87, 0x54); ++ else if (freq_KHz > 110000) ++ _mt_fe_tn_set_reg(state, 0x87, 0x14); ++ else ++ _mt_fe_tn_set_reg(state, 0x87, 0x54); ++ if (freq_KHz > 600000) ++ _mt_fe_tn_set_reg(state, 0x6a, 0x53); ++ else if (freq_KHz > 500000) ++ _mt_fe_tn_set_reg(state, 0x6a, 0x57); ++ else ++ _mt_fe_tn_set_reg(state, 0x6a, 0x59); ++ if (freq_KHz < 200000) { ++ _mt_fe_tn_set_reg(state, 0x20, 0x5d); ++ } else if (freq_KHz < 500000) { ++ _mt_fe_tn_set_reg(state, 0x20, 0x7d); ++ } else { ++ _mt_fe_tn_set_reg(state, 0x20, 0xfd); ++ } /* end of 0xD1 */ ++ } else if (state->tuner_mtt == 0xE1) { /* E1 */ ++ if (freq_KHz <= 112000) { /* 123MHz */ ++ if (freq_KHz <= 56000) { ++ _mt_fe_tn_set_reg(state, 0x5c, 0x01); ++ } else if (freq_KHz <= 64000) { ++ _mt_fe_tn_set_reg(state, 0x5c, 0x09); ++ } else if (freq_KHz <= 72000) { ++ _mt_fe_tn_set_reg(state, 0x5c, 0x11); ++ } else if (freq_KHz <= 80000) { ++ _mt_fe_tn_set_reg(state, 0x5c, 0x19); ++ } else if (freq_KHz <= 88000) { ++ _mt_fe_tn_set_reg(state, 0x5c, 0x21); ++ } else if (freq_KHz <= 96000) { ++ _mt_fe_tn_set_reg(state, 0x5c, 0x29); ++ } else if (freq_KHz <= 104000) { ++ _mt_fe_tn_set_reg(state, 0x5c, 0x31); ++ } else { /* if (freq_KHz <= 112000) */ ++ _mt_fe_tn_set_reg(state, 0x5c, 0x39); ++ } ++ _mt_fe_tn_set_reg(state, 0x5b, 0x30); ++ } else { /* if (freq_KHz > 112000) */ ++ if (freq_KHz <= 304000) { ++ if (freq_KHz <= 136000) { ++ _mt_fe_tn_set_reg(state, 0x5c, 0x41); ++ } else if (freq_KHz <= 160000) { ++ _mt_fe_tn_set_reg(state, 0x5c, 0x49); ++ } else if (freq_KHz <= 184000) { ++ _mt_fe_tn_set_reg(state, 0x5c, 0x51); ++ } else if (freq_KHz <= 208000) { ++ _mt_fe_tn_set_reg(state, 0x5c, 0x59); ++ } else if (freq_KHz <= 232000) { ++ _mt_fe_tn_set_reg(state, 0x5c, 0x61); ++ } else if (freq_KHz <= 256000) { ++ _mt_fe_tn_set_reg(state, 0x5c, 0x69); ++ } else if (freq_KHz <= 280000) { ++ _mt_fe_tn_set_reg(state, 0x5c, 0x71); ++ } else { /* if (freq_KHz <= 304000) */ ++ _mt_fe_tn_set_reg(state, 0x5c, 0x79); ++ } ++ if (freq_KHz <= 150000) { ++ _mt_fe_tn_set_reg(state, 0x5b, 0x28); ++ } else if (freq_KHz <= 256000) { ++ _mt_fe_tn_set_reg(state, 0x5b, 0x29); ++ } else { ++ _mt_fe_tn_set_reg(state, 0x5b, 0x2a); ++ } ++ } else { /* if (freq_KHz > 304000) */ ++ if (freq_KHz <= 400000) { ++ _mt_fe_tn_set_reg(state, 0x5c, 0x89); ++ } else if (freq_KHz <= 450000) { ++ _mt_fe_tn_set_reg(state, 0x5c, 0x91); ++ } else if (freq_KHz <= 650000) { ++ _mt_fe_tn_set_reg(state, 0x5c, 0x98); ++ } else if (freq_KHz <= 850000) { ++ _mt_fe_tn_set_reg(state, 0x5c, 0xa0); ++ } else { ++ _mt_fe_tn_set_reg(state, 0x5c, 0xa8); ++ } ++ _mt_fe_tn_set_reg(state, 0x5b, 0x08); ++ } ++ } ++ } /* end of 0xE1 */ ++ return 0; ++} ++ ++static int _mt_fe_tn_cali_PLL_tc2800(struct m88dc2800_state *state, ++ u32 freq_KHz, ++ u32 cali_freq_thres_div2, ++ u32 cali_freq_thres_div3r, ++ u32 cali_freq_thres_div3) ++{ ++ s32 N, F, MUL; ++ u8 buf, tmp, tmp2; ++ s32 M; ++ const s32 crystal_KHz = state->tuner_crystal; ++ if (state->tuner_mtt == 0xD1) { ++ M = state->tuner_crystal / 4000; ++ if (freq_KHz > cali_freq_thres_div2) { ++ MUL = 4; ++ tmp = 2; ++ } else if (freq_KHz > 300000) { ++ MUL = 8; ++ tmp = 3; ++ } else if (freq_KHz > (cali_freq_thres_div2 / 2)) { ++ MUL = 8; ++ tmp = 4; ++ } else if (freq_KHz > (cali_freq_thres_div2 / 4)) { ++ MUL = 16; ++ tmp = 5; ++ } else if (freq_KHz > (cali_freq_thres_div2 / 8)) { ++ MUL = 32; ++ tmp = 6; ++ } else if (freq_KHz > (cali_freq_thres_div2 / 16)) { ++ MUL = 64; ++ tmp = 7; ++ } else { /* invalid */ ++ MUL = 0; ++ tmp = 0; ++ return 1; ++ } ++ } else if (state->tuner_mtt == 0xE1) { ++ M = state->tuner_crystal / 1000; ++ _mt_fe_tn_set_reg(state, 0x30, 0xff); ++ _mt_fe_tn_set_reg(state, 0x32, 0xe0); ++ _mt_fe_tn_set_reg(state, 0x33, 0x86); ++ _mt_fe_tn_set_reg(state, 0x37, 0x70); ++ _mt_fe_tn_set_reg(state, 0x38, 0x20); ++ _mt_fe_tn_set_reg(state, 0x39, 0x18); ++ _mt_fe_tn_set_reg(state, 0x89, 0x83); ++ if (freq_KHz > cali_freq_thres_div2) { ++ M = M / 4; ++ MUL = 4; ++ tmp = 2; ++ tmp2 = M + 16; /* 48 */ ++ } else if (freq_KHz > cali_freq_thres_div3r) { ++ M = M / 3; ++ MUL = 6; ++ tmp = 2; ++ tmp2 = M + 32; /* 32 */ ++ } else if (freq_KHz > cali_freq_thres_div3) { ++ M = M / 3; ++ MUL = 6; ++ tmp = 2; ++ tmp2 = M; /* 16 */ ++ } else if (freq_KHz > 304000) { ++ M = M / 4; ++ MUL = 8; ++ tmp = 3; ++ tmp2 = M + 16; /* 48 */ ++ } else if (freq_KHz > (cali_freq_thres_div2 / 2)) { ++ M = M / 4; ++ MUL = 8; ++ tmp = 4; ++ tmp2 = M + 16; /* 48 */ ++ } else if (freq_KHz > (cali_freq_thres_div3r / 2)) { ++ M = M / 3; ++ MUL = 12; ++ tmp = 4; ++ tmp2 = M + 32; /* 32 */ ++ } else if (freq_KHz > (cali_freq_thres_div3 / 2)) { ++ M = M / 3; ++ MUL = 12; ++ tmp = 4; ++ tmp2 = M; /* 16 */ ++ } else if (freq_KHz > (cali_freq_thres_div2 / 4)) { ++ M = M / 4; ++ MUL = 16; ++ tmp = 5; ++ tmp2 = M + 16; /* 48 */ ++ } else if (freq_KHz > (cali_freq_thres_div3r / 4)) { ++ M = M / 3; ++ MUL = 24; ++ tmp = 5; ++ tmp2 = M + 32; /* 32 */ ++ } else if (freq_KHz > (cali_freq_thres_div3 / 4)) { ++ M = M / 3; ++ MUL = 24; ++ tmp = 5; ++ tmp2 = M; /* 16 */ ++ } else if (freq_KHz > (cali_freq_thres_div2 / 8)) { ++ M = M / 4; ++ MUL = 32; ++ tmp = 6; ++ tmp2 = M + 16; /* 48 */ ++ } else if (freq_KHz > (cali_freq_thres_div3r / 8)) { ++ M = M / 3; ++ MUL = 48; ++ tmp = 6; ++ tmp2 = M + 32; /* 32 */ ++ } else if (freq_KHz > (cali_freq_thres_div3 / 8)) { ++ M = M / 3; ++ MUL = 48; ++ tmp = 6; ++ tmp2 = M; /* 16 */ ++ } else if (freq_KHz > (cali_freq_thres_div2 / 16)) { ++ M = M / 4; ++ MUL = 64; ++ tmp = 7; ++ tmp2 = M + 16; /* 48 */ ++ } else if (freq_KHz > (cali_freq_thres_div3r / 16)) { ++ M = M / 3; ++ MUL = 96; ++ tmp = 7; ++ tmp2 = M + 32; /* 32 */ ++ } else if (freq_KHz > (cali_freq_thres_div3 / 16)) { ++ M = M / 3; ++ MUL = 96; ++ tmp = 7; ++ tmp2 = M; /* 16 */ ++ } else { /* invalid */ ++ M = M / 4; ++ MUL = 0; ++ tmp = 0; ++ tmp2 = 48; ++ return 1; ++ } ++ if (freq_KHz == 291000) { ++ M = state->tuner_crystal / 1000 / 3; ++ MUL = 12; ++ tmp = 4; ++ tmp2 = M + 32; /* 32 */ ++ } ++ /* ++ if (freq_KHz == 578000) { ++ M = state->tuner_crystal / 1000 / 4; ++ MUL = 4; ++ tmp = 2; ++ tmp2 = M + 16; // 48 ++ } ++ */ ++ if (freq_KHz == 690000) { ++ M = state->tuner_crystal / 1000 / 3; ++ MUL = 4; ++ tmp = 2; ++ tmp2 = M + 16; /* 48 */ ++ } ++ _mt_fe_tn_get_reg(state, 0x33, &buf); ++ buf &= 0xc0; ++ buf += tmp2; ++ _mt_fe_tn_set_reg(state, 0x33, buf); ++ } else { ++ return 1; ++ } ++ _mt_fe_tn_get_reg(state, 0x39, &buf); ++ buf &= 0xf8; ++ buf += tmp; ++ _mt_fe_tn_set_reg(state, 0x39, buf); ++ N = (freq_KHz * MUL * M / crystal_KHz) / 2 * 2 - 256; ++ buf = (N >> 8) & 0xcf; ++ if (state->tuner_mtt == 0xE1) { ++ buf |= 0x30; ++ } ++ _mt_fe_tn_set_reg(state, 0x34, buf); ++ buf = N & 0xff; ++ _mt_fe_tn_set_reg(state, 0x35, buf); ++ F = ((freq_KHz * MUL * M / (crystal_KHz / 1000) / 2) - ++ (freq_KHz * MUL * M / crystal_KHz / 2 * 1000)) * 64 / 1000; ++ buf = F & 0xff; ++ _mt_fe_tn_set_reg(state, 0x36, buf); ++ if (F == 0) { ++ if (state->tuner_mtt == 0xD1) { ++ _mt_fe_tn_set_reg(state, 0x3d, 0xca); ++ } else if (state->tuner_mtt == 0xE1) { ++ _mt_fe_tn_set_reg(state, 0x3d, 0xfe); ++ } else { ++ return 1; ++ } ++ _mt_fe_tn_set_reg(state, 0x3e, 0x9c); ++ _mt_fe_tn_set_reg(state, 0x3f, 0x34); ++ } ++ if (F > 0) { ++ if (state->tuner_mtt == 0xD1) { ++ if ((F == 32) || (F == 16) || (F == 48)) { ++ _mt_fe_tn_set_reg(state, 0x3e, 0xa4); ++ _mt_fe_tn_set_reg(state, 0x3d, 0x4a); ++ _mt_fe_tn_set_reg(state, 0x3f, 0x36); ++ } else { ++ _mt_fe_tn_set_reg(state, 0x3e, 0xa4); ++ _mt_fe_tn_set_reg(state, 0x3d, 0x4a); ++ _mt_fe_tn_set_reg(state, 0x3f, 0x36); ++ } ++ } else if (state->tuner_mtt == 0xE1) { ++ _mt_fe_tn_set_reg(state, 0x3e, 0xa4); ++ _mt_fe_tn_set_reg(state, 0x3d, 0x7e); ++ _mt_fe_tn_set_reg(state, 0x3f, 0x36); ++ _mt_fe_tn_set_reg(state, 0x89, 0x84); ++ _mt_fe_tn_get_reg(state, 0x39, &buf); ++ buf = buf & 0x1f; ++ _mt_fe_tn_set_reg(state, 0x39, buf); ++ _mt_fe_tn_get_reg(state, 0x32, &buf); ++ buf = buf | 0x02; ++ _mt_fe_tn_set_reg(state, 0x32, buf); ++ } else { ++ return 1; ++ } ++ } ++ _mt_fe_tn_set_reg(state, 0x41, 0x00); ++ if (state->tuner_mtt == 0xD1) { ++ msleep(5); ++ } else if (state->tuner_mtt == 0xE1) { ++ msleep(2); ++ } else { ++ return 1; ++ } ++ _mt_fe_tn_set_reg(state, 0x41, 0x02); ++ _mt_fe_tn_set_reg(state, 0x30, 0x7f); ++ _mt_fe_tn_set_reg(state, 0x30, 0xff); ++ _mt_fe_tn_set_reg(state, 0x31, 0x80); ++ _mt_fe_tn_set_reg(state, 0x31, 0x00); ++ ++ return 0; ++} ++ ++static int _mt_fe_tn_set_PLL_freq_tc2800(struct m88dc2800_state *state) ++{ ++ u8 buf, buf1; ++ u32 freq_thres_div2_KHz, freq_thres_div3r_KHz, ++ freq_thres_div3_KHz; ++ const u32 freq_KHz = state->tuner_freq; ++ if (state->tuner_mtt == 0xD1) { ++ _mt_fe_tn_set_reg(state, 0x32, 0xe1); ++ _mt_fe_tn_set_reg(state, 0x33, 0xa6); ++ _mt_fe_tn_set_reg(state, 0x37, 0x7f); ++ _mt_fe_tn_set_reg(state, 0x38, 0x20); ++ _mt_fe_tn_set_reg(state, 0x39, 0x18); ++ _mt_fe_tn_set_reg(state, 0x40, 0x40); ++ freq_thres_div2_KHz = 520000; ++ _mt_fe_tn_cali_PLL_tc2800(state, freq_KHz, ++ freq_thres_div2_KHz, 0, 0); ++ msleep(5); ++ _mt_fe_tn_get_reg(state, 0x3a, &buf); ++ buf1 = buf; ++ buf = buf & 0x03; ++ buf1 = buf1 & 0x01; ++ if ((buf1 == 0) || (buf == 3)) { ++ freq_thres_div2_KHz = 420000; ++ _mt_fe_tn_cali_PLL_tc2800(state, freq_KHz, ++ freq_thres_div2_KHz, 0, ++ 0); ++ msleep(5); ++ _mt_fe_tn_get_reg(state, 0x3a, &buf); ++ buf = buf & 0x07; ++ if (buf == 5) { ++ freq_thres_div2_KHz = 520000; ++ _mt_fe_tn_cali_PLL_tc2800(state, freq_KHz, ++ freq_thres_div2_KHz, ++ 0, 0); ++ msleep(5); ++ } ++ } ++ _mt_fe_tn_get_reg(state, 0x38, &buf); ++ _mt_fe_tn_set_reg(state, 0x38, buf); ++ _mt_fe_tn_get_reg(state, 0x32, &buf); ++ buf = buf | 0x10; ++ _mt_fe_tn_set_reg(state, 0x32, buf); ++ _mt_fe_tn_set_reg(state, 0x30, 0x7f); ++ _mt_fe_tn_set_reg(state, 0x30, 0xff); ++ _mt_fe_tn_get_reg(state, 0x32, &buf); ++ buf = buf & 0xdf; ++ _mt_fe_tn_set_reg(state, 0x32, buf); ++ _mt_fe_tn_set_reg(state, 0x40, 0x0); ++ _mt_fe_tn_set_reg(state, 0x30, 0x7f); ++ _mt_fe_tn_set_reg(state, 0x30, 0xff); ++ _mt_fe_tn_set_reg(state, 0x31, 0x80); ++ _mt_fe_tn_set_reg(state, 0x31, 0x00); ++ msleep(5); ++ _mt_fe_tn_get_reg(state, 0x39, &buf); ++ buf = buf >> 5; ++ if (buf < 5) { ++ _mt_fe_tn_get_reg(state, 0x39, &buf); ++ buf = buf | 0xa0; ++ buf = buf & 0xbf; ++ _mt_fe_tn_set_reg(state, 0x39, buf); ++ _mt_fe_tn_get_reg(state, 0x32, &buf); ++ buf = buf | 0x02; ++ _mt_fe_tn_set_reg(state, 0x32, buf); ++ } ++ _mt_fe_tn_get_reg(state, 0x37, &buf); ++ if (buf > 0x70) { ++ buf = 0x7f; ++ _mt_fe_tn_set_reg(state, 0x40, 0x40); ++ } ++ _mt_fe_tn_set_reg(state, 0x37, buf); ++ _mt_fe_tn_get_reg(state, 0x38, &buf); ++ if (buf < 0x0f) { ++ buf = (buf & 0x0f) << 2; ++ buf = buf + 0x0f; ++ _mt_fe_tn_set_reg(state, 0x37, buf); ++ } else if (buf < 0x1f) { ++ buf = buf + 0x0f; ++ _mt_fe_tn_set_reg(state, 0x37, buf); ++ } ++ _mt_fe_tn_get_reg(state, 0x32, &buf); ++ buf = (buf | 0x20) & 0xef; ++ _mt_fe_tn_set_reg(state, 0x32, buf); ++ _mt_fe_tn_set_reg(state, 0x41, 0x00); ++ msleep(5); ++ _mt_fe_tn_set_reg(state, 0x41, 0x02); ++ } else if (state->tuner_mtt == 0xE1) { ++ freq_thres_div2_KHz = 580000; ++ freq_thres_div3r_KHz = 500000; ++ freq_thres_div3_KHz = 440000; ++ _mt_fe_tn_cali_PLL_tc2800(state, freq_KHz, ++ freq_thres_div2_KHz, ++ freq_thres_div3r_KHz, ++ freq_thres_div3_KHz); ++ msleep(3); ++ _mt_fe_tn_get_reg(state, 0x38, &buf); ++ _mt_fe_tn_set_reg(state, 0x38, buf); ++ _mt_fe_tn_set_reg(state, 0x30, 0x7f); ++ _mt_fe_tn_set_reg(state, 0x30, 0xff); ++ _mt_fe_tn_set_reg(state, 0x31, 0x80); ++ _mt_fe_tn_set_reg(state, 0x31, 0x00); ++ msleep(3); ++ _mt_fe_tn_get_reg(state, 0x38, &buf); ++ _mt_fe_tn_set_reg(state, 0x38, buf); ++ _mt_fe_tn_get_reg(state, 0x32, &buf); ++ buf = buf | 0x10; ++ _mt_fe_tn_set_reg(state, 0x32, buf); ++ _mt_fe_tn_set_reg(state, 0x30, 0x7f); ++ _mt_fe_tn_set_reg(state, 0x30, 0xff); ++ _mt_fe_tn_get_reg(state, 0x32, &buf); ++ buf = buf & 0xdf; ++ _mt_fe_tn_set_reg(state, 0x32, buf); ++ _mt_fe_tn_set_reg(state, 0x31, 0x80); ++ _mt_fe_tn_set_reg(state, 0x31, 0x00); ++ msleep(3); ++ _mt_fe_tn_get_reg(state, 0x37, &buf); ++ _mt_fe_tn_set_reg(state, 0x37, buf); ++ /* ++ if ((freq_KHz == 802000) || (freq_KHz == 826000)) { ++ _mt_fe_tn_set_reg(state, 0x37, 0x5e); ++ } ++ */ ++ _mt_fe_tn_get_reg(state, 0x32, &buf); ++ buf = (buf & 0xef) | 0x30; ++ _mt_fe_tn_set_reg(state, 0x32, buf); ++ _mt_fe_tn_set_reg(state, 0x41, 0x00); ++ msleep(2); ++ _mt_fe_tn_set_reg(state, 0x41, 0x02); ++ } else { ++ return 1; ++ } ++ return 0; ++} ++ ++static int _mt_fe_tn_set_BB_tc2800(struct m88dc2800_state *state) ++{ ++ return 0; ++} ++ ++ static int _mt_fe_tn_set_appendix_tc2800(struct m88dc2800_state *state) ++ ++{ ++ u8 buf; ++ const u32 freq_KHz = state->tuner_freq; ++ if (state->tuner_mtt == 0xD1) { ++ if ((freq_KHz == 123000) || (freq_KHz == 147000) || ++ (freq_KHz == 171000) || (freq_KHz == 195000)) { ++ _mt_fe_tn_set_reg(state, 0x20, 0x1b); ++ } ++ if ((freq_KHz == 371000) || (freq_KHz == 419000) || ++ (freq_KHz == 610000) || (freq_KHz == 730000) || ++ (freq_KHz == 754000) || (freq_KHz == 826000)) { ++ _mt_fe_tn_get_reg(state, 0x0d, &buf); ++ _mt_fe_tn_set_reg(state, 0x0d, (u8) (buf + 1)); ++ } ++ if ((freq_KHz == 522000) || (freq_KHz == 578000) || ++ (freq_KHz == 634000) || (freq_KHz == 690000) || ++ (freq_KHz == 834000)) { ++ _mt_fe_tn_get_reg(state, 0x0d, &buf); ++ _mt_fe_tn_set_reg(state, 0x0d, (u8) (buf - 1)); ++ } ++ } else if (state->tuner_mtt == 0xE1) { ++ _mt_fe_tn_set_reg(state, 0x20, 0xfc); ++ if (freq_KHz == 123000 || freq_KHz == 147000 || ++ freq_KHz == 171000 || freq_KHz == 195000 || ++ freq_KHz == 219000 || freq_KHz == 267000 || ++ freq_KHz == 291000 || freq_KHz == 339000 || ++ freq_KHz == 387000 || freq_KHz == 435000 || ++ freq_KHz == 482000 || freq_KHz == 530000 || ++ freq_KHz == 722000 || ++ (state->tuner_custom_cfg == 1 && freq_KHz == 315000)) { ++ _mt_fe_tn_set_reg(state, 0x20, 0x5c); ++ } ++ } ++ return 0; ++} ++ ++ static int _mt_fe_tn_set_DAC_tc2800(struct m88dc2800_state *state) ++{ ++ u8 buf, tempnumber; ++ s32 N; ++ s32 f1f2number, f1, f2, delta1, Totalnum1; ++ s32 cntT, cntin, NCOI, z0, z1, z2, tmp; ++ u32 fc, fadc, fsd, f2d; ++ u32 FreqTrue108_Hz; ++ s32 M = state->tuner_crystal / 4000; ++ /* const u8 bandwidth = state->tuner_bandwidth; */ ++ const u16 DAC_fre = 108; ++ const u32 crystal_KHz = state->tuner_crystal; ++ const u32 DACFreq_KHz = state->tuner_dac; ++ const u32 freq_KHz = state->tuner_freq; ++ ++ if (state->tuner_mtt == 0xE1) { ++ _mt_fe_tn_get_reg(state, 0x33, &buf); ++ M = buf & 0x0f; ++ if (M == 0) ++ M = 6; ++ } ++ _mt_fe_tn_get_reg(state, 0x34, &buf); ++ N = buf & 0x07; ++ _mt_fe_tn_get_reg(state, 0x35, &buf); ++ N = (N << 8) + buf; ++ buf = ((N + 256) * crystal_KHz / M / DAC_fre + 500) / 1000; ++ if (state->tuner_mtt == 0xE1) { ++ _mt_fe_tn_set_appendix_tc2800(state); ++ if (freq_KHz == 187000 || freq_KHz == 195000 || ++ freq_KHz == 131000 || freq_KHz == 211000 || ++ freq_KHz == 219000 || freq_KHz == 227000 || ++ freq_KHz == 267000 || freq_KHz == 299000 || ++ freq_KHz == 347000 || freq_KHz == 363000 || ++ freq_KHz == 395000 || freq_KHz == 403000 || ++ freq_KHz == 435000 || freq_KHz == 482000 || ++ freq_KHz == 474000 || freq_KHz == 490000 || ++ freq_KHz == 610000 || freq_KHz == 642000 || ++ freq_KHz == 666000 || freq_KHz == 722000 || ++ freq_KHz == 754000 || ++ ((freq_KHz == 379000 || freq_KHz == 467000 || ++ freq_KHz == 762000) && state->tuner_custom_cfg != 1)) { ++ buf = buf + 1; ++ } ++ if (freq_KHz == 123000 || freq_KHz == 139000 || ++ freq_KHz == 147000 || freq_KHz == 171000 || ++ freq_KHz == 179000 || freq_KHz == 203000 || ++ freq_KHz == 235000 || freq_KHz == 251000 || ++ freq_KHz == 259000 || freq_KHz == 283000 || ++ freq_KHz == 331000 || freq_KHz == 363000 || ++ freq_KHz == 371000 || freq_KHz == 387000 || ++ freq_KHz == 411000 || freq_KHz == 427000 || ++ freq_KHz == 443000 || freq_KHz == 451000 || ++ freq_KHz == 459000 || freq_KHz == 506000 || ++ freq_KHz == 514000 || freq_KHz == 538000 || ++ freq_KHz == 546000 || freq_KHz == 554000 || ++ freq_KHz == 562000 || freq_KHz == 570000 || ++ freq_KHz == 578000 || freq_KHz == 602000 || ++ freq_KHz == 626000 || freq_KHz == 658000 || ++ freq_KHz == 690000 || freq_KHz == 714000 || ++ freq_KHz == 746000 || freq_KHz == 522000 || ++ freq_KHz == 826000 || freq_KHz == 155000 || ++ freq_KHz == 530000 || ++ ((freq_KHz == 275000 || freq_KHz == 355000) && ++ state->tuner_custom_cfg != 1) || ++ ((freq_KHz == 467000 || freq_KHz == 762000 || ++ freq_KHz == 778000 || freq_KHz == 818000) && ++ state->tuner_custom_cfg == 1)) { ++ buf = buf - 1; ++ } ++ } ++ _mt_fe_tn_set_reg(state, 0x0e, buf); ++ _mt_fe_tn_set_reg(state, 0x0d, buf); ++ f1f2number = ++ (((DACFreq_KHz * M * buf) / crystal_KHz) << 16) / (N + 256) + ++ (((DACFreq_KHz * M * buf) % crystal_KHz) << 16) / ((N + 256) * ++ crystal_KHz); ++ _mt_fe_tn_set_reg(state, 0xf1, (f1f2number & 0xff00) >> 8); ++ _mt_fe_tn_set_reg(state, 0xf2, f1f2number & 0x00ff); ++ FreqTrue108_Hz = ++ (N + 256) * crystal_KHz / (M * buf) * 1000 + ++ (((N + 256) * crystal_KHz) % (M * buf)) * 1000 / (M * buf); ++ f1 = 4096; ++ fc = FreqTrue108_Hz; ++ fadc = fc / 4; ++ fsd = 27000000; ++ f2d = state->tuner_bandwidth * 1000 / 2 - 150; ++ f2 = (fsd / 250) * f2d / ((fc + 500) / 1000); ++ delta1 = ((f1 - f2) << 15) / f2; ++ Totalnum1 = ((f1 - f2) << 15) - delta1 * f2; ++ cntT = f2; ++ cntin = Totalnum1; ++ NCOI = delta1; ++ z0 = cntin; ++ z1 = cntT; ++ z2 = NCOI; ++ tempnumber = (z0 & 0xff00) >> 8; ++ _mt_fe_tn_set_reg(state, 0xc9, (u8) (tempnumber & 0x0f)); ++ tempnumber = (z0 & 0xff); ++ _mt_fe_tn_set_reg(state, 0xca, tempnumber); ++ tempnumber = (z1 & 0xff00) >> 8; ++ _mt_fe_tn_set_reg(state, 0xcb, tempnumber); ++ tempnumber = (z1 & 0xff); ++ _mt_fe_tn_set_reg(state, 0xcc, tempnumber); ++ tempnumber = (z2 & 0xff00) >> 8; ++ _mt_fe_tn_set_reg(state, 0xcd, tempnumber); ++ tempnumber = (z2 & 0xff); ++ _mt_fe_tn_set_reg(state, 0xce, tempnumber); ++ tmp = f1; ++ f1 = f2; ++ f2 = tmp / 2; ++ delta1 = ((f1 - f2) << 15) / f2; ++ Totalnum1 = ((f1 - f2) << 15) - delta1 * f2; ++ NCOI = (f1 << 15) / f2 - (1 << 15); ++ cntT = f2; ++ cntin = Totalnum1; ++ z0 = cntin; ++ z1 = cntT; ++ z2 = NCOI; ++ tempnumber = (z0 & 0xff00) >> 8; ++ _mt_fe_tn_set_reg(state, 0xd9, (u8) (tempnumber & 0x0f)); ++ tempnumber = (z0 & 0xff); ++ _mt_fe_tn_set_reg(state, 0xda, tempnumber); ++ tempnumber = (z1 & 0xff00) >> 8; ++ _mt_fe_tn_set_reg(state, 0xdb, tempnumber); ++ tempnumber = (z1 & 0xff); ++ _mt_fe_tn_set_reg(state, 0xdc, tempnumber); ++ tempnumber = (z2 & 0xff00) >> 8; ++ _mt_fe_tn_set_reg(state, 0xdd, tempnumber); ++ tempnumber = (z2 & 0xff); ++ _mt_fe_tn_set_reg(state, 0xde, tempnumber); ++ ++ return 0; ++} ++ ++static int _mt_fe_tn_preset_tc2800(struct m88dc2800_state *state) ++{ ++ if (state->tuner_mtt == 0xD1) { ++ _mt_fe_tn_set_reg(state, 0x19, 0x4a); ++ _mt_fe_tn_set_reg(state, 0x1b, 0x4b); ++ _mt_fe_tn_set_reg(state, 0x04, 0x04); ++ _mt_fe_tn_set_reg(state, 0x17, 0x0d); ++ _mt_fe_tn_set_reg(state, 0x62, 0x6c); ++ _mt_fe_tn_set_reg(state, 0x63, 0xf4); ++ _mt_fe_tn_set_reg(state, 0x1f, 0x0e); ++ _mt_fe_tn_set_reg(state, 0x6b, 0xf4); ++ _mt_fe_tn_set_reg(state, 0x14, 0x01); ++ _mt_fe_tn_set_reg(state, 0x5a, 0x75); ++ _mt_fe_tn_set_reg(state, 0x66, 0x74); ++ _mt_fe_tn_set_reg(state, 0x72, 0xe0); ++ _mt_fe_tn_set_reg(state, 0x70, 0x07); ++ _mt_fe_tn_set_reg(state, 0x15, 0x7b); ++ _mt_fe_tn_set_reg(state, 0x55, 0x71); ++ _mt_fe_tn_set_reg(state, 0x75, 0x55); ++ _mt_fe_tn_set_reg(state, 0x76, 0xac); ++ _mt_fe_tn_set_reg(state, 0x77, 0x6c); ++ _mt_fe_tn_set_reg(state, 0x78, 0x8b); ++ _mt_fe_tn_set_reg(state, 0x79, 0x42); ++ _mt_fe_tn_set_reg(state, 0x7a, 0xd2); ++ _mt_fe_tn_set_reg(state, 0x81, 0x01); ++ _mt_fe_tn_set_reg(state, 0x82, 0x00); ++ _mt_fe_tn_set_reg(state, 0x82, 0x02); ++ _mt_fe_tn_set_reg(state, 0x82, 0x04); ++ _mt_fe_tn_set_reg(state, 0x82, 0x06); ++ _mt_fe_tn_set_reg(state, 0x82, 0x08); ++ _mt_fe_tn_set_reg(state, 0x82, 0x09); ++ _mt_fe_tn_set_reg(state, 0x82, 0x29); ++ _mt_fe_tn_set_reg(state, 0x82, 0x49); ++ _mt_fe_tn_set_reg(state, 0x82, 0x58); ++ _mt_fe_tn_set_reg(state, 0x82, 0x59); ++ _mt_fe_tn_set_reg(state, 0x82, 0x98); ++ _mt_fe_tn_set_reg(state, 0x82, 0x99); ++ _mt_fe_tn_set_reg(state, 0x10, 0x05); ++ _mt_fe_tn_set_reg(state, 0x10, 0x0d); ++ _mt_fe_tn_set_reg(state, 0x11, 0x95); ++ _mt_fe_tn_set_reg(state, 0x11, 0x9d); ++ if (state->tuner_loopthrough != 0) { ++ _mt_fe_tn_set_reg(state, 0x67, 0x25); ++ } else { ++ _mt_fe_tn_set_reg(state, 0x67, 0x05); ++ } ++ } else if (state->tuner_mtt == 0xE1) { ++ _mt_fe_tn_set_reg(state, 0x1b, 0x47); ++ if (state->tuner_mode == 0) { /* DVB-C */ ++ _mt_fe_tn_set_reg(state, 0x66, 0x74); ++ _mt_fe_tn_set_reg(state, 0x62, 0x2c); ++ _mt_fe_tn_set_reg(state, 0x63, 0x54); ++ _mt_fe_tn_set_reg(state, 0x68, 0x0b); ++ _mt_fe_tn_set_reg(state, 0x14, 0x00); ++ } else { /* CTTB */ ++ _mt_fe_tn_set_reg(state, 0x66, 0x74); ++ _mt_fe_tn_set_reg(state, 0x62, 0x0c); ++ _mt_fe_tn_set_reg(state, 0x63, 0x54); ++ _mt_fe_tn_set_reg(state, 0x68, 0x0b); ++ _mt_fe_tn_set_reg(state, 0x14, 0x05); ++ } ++ _mt_fe_tn_set_reg(state, 0x6f, 0x00); ++ _mt_fe_tn_set_reg(state, 0x84, 0x04); ++ _mt_fe_tn_set_reg(state, 0x5e, 0xbe); ++ _mt_fe_tn_set_reg(state, 0x87, 0x07); ++ _mt_fe_tn_set_reg(state, 0x8a, 0x1f); ++ _mt_fe_tn_set_reg(state, 0x8b, 0x1f); ++ _mt_fe_tn_set_reg(state, 0x88, 0x30); ++ _mt_fe_tn_set_reg(state, 0x58, 0x34); ++ _mt_fe_tn_set_reg(state, 0x61, 0x8c); ++ _mt_fe_tn_set_reg(state, 0x6a, 0x42); ++ } ++ return 0; ++} ++ ++static int mt_fe_tn_wakeup_tc2800(struct m88dc2800_state *state) ++{ ++ _mt_fe_tn_set_reg(state, 0x16, 0xb1); ++ _mt_fe_tn_set_reg(state, 0x09, 0x7d); ++ return 0; ++} ++ ++ static int mt_fe_tn_sleep_tc2800(struct m88dc2800_state *state) ++{ ++ _mt_fe_tn_set_reg(state, 0x16, 0xb0); ++ _mt_fe_tn_set_reg(state, 0x09, 0x6d); ++ return 0; ++} ++ ++ static int mt_fe_tn_init_tc2800(struct m88dc2800_state *state) ++{ ++ if (state->tuner_init_OK != 1) { ++ state->tuner_dev_addr = 0x61; /* TUNER_I2C_ADDR_TC2800 */ ++ state->tuner_freq = 650000; ++ state->tuner_qam = 0; ++ state->tuner_mode = 0; // 0: DVB-C, 1: CTTB ++ state->tuner_bandwidth = 8; ++ state->tuner_loopthrough = 0; ++ state->tuner_crystal = 24000; ++ state->tuner_dac = 7200; ++ state->tuner_mtt = 0x00; ++ state->tuner_custom_cfg = 0; ++ state->tuner_version = 30022; /* Driver version number */ ++ state->tuner_time = 12092611; ++ state->tuner_init_OK = 1; ++ } ++ _mt_fe_tn_set_reg(state, 0x2b, 0x46); ++ _mt_fe_tn_set_reg(state, 0x2c, 0x75); ++ if (state->tuner_mtt == 0x00) { ++ u8 tmp = 0; ++ _mt_fe_tn_get_reg(state, 0x01, &tmp); ++ printk(KERN_INFO "m88dc2800: tuner id = 0x%02x ", tmp); ++ switch (tmp) { ++ case 0x0d: ++ state->tuner_mtt = 0xD1; ++ break; ++ case 0x8e: ++ default: ++ state->tuner_mtt = 0xE1; ++ break; ++ } ++ } ++ return 0; ++} ++ ++ static int mt_fe_tn_set_freq_tc2800(struct m88dc2800_state *state, ++ u32 freq_KHz) ++{ ++ u8 buf; ++ u8 buf1; ++ ++ mt_fe_tn_init_tc2800(state); ++ state->tuner_freq = freq_KHz; ++ _mt_fe_tn_set_reg(state, 0x21, freq_KHz > 500000 ? 0xb9 : 0x99); ++ mt_fe_tn_wakeup_tc2800(state); ++ _mt_fe_tn_set_reg(state, 0x05, 0x7f); ++ _mt_fe_tn_set_reg(state, 0x06, 0xf8); ++ _mt_fe_tn_set_RF_front_tc2800(state); ++ _mt_fe_tn_set_PLL_freq_tc2800(state); ++ _mt_fe_tn_set_DAC_tc2800(state); ++ _mt_fe_tn_set_BB_tc2800(state); ++ _mt_fe_tn_preset_tc2800(state); ++ _mt_fe_tn_set_reg(state, 0x05, 0x00); ++ _mt_fe_tn_set_reg(state, 0x06, 0x00); ++ if (state->tuner_mtt == 0xD1) { ++ _mt_fe_tn_set_reg(state, 0x00, 0x01); ++ _mt_fe_tn_set_reg(state, 0x00, 0x00); ++ msleep(5); ++ _mt_fe_tn_set_reg(state, 0x41, 0x00); ++ msleep(5); ++ _mt_fe_tn_set_reg(state, 0x41, 0x02); ++ ++ _mt_fe_tn_get_reg(state, 0x69, &buf1); ++ buf1 = buf1 & 0x0f; ++ _mt_fe_tn_get_reg(state, 0x61, &buf); ++ buf = buf & 0x0f; ++ if (buf == 0x0c) ++ _mt_fe_tn_set_reg(state, 0x6a, 0x59); ++ if (buf1 > 0x02) { ++ if (freq_KHz > 600000) ++ _mt_fe_tn_set_reg(state, 0x66, 0x44); ++ else if (freq_KHz > 500000) ++ _mt_fe_tn_set_reg(state, 0x66, 0x64); ++ else ++ _mt_fe_tn_set_reg(state, 0x66, 0x74); ++ } ++ if (buf1 < 0x03) { ++ if (freq_KHz > 800000) ++ _mt_fe_tn_set_reg(state, 0x87, 0x64); ++ else if (freq_KHz > 600000) ++ _mt_fe_tn_set_reg(state, 0x87, 0x54); ++ else if (freq_KHz > 500000) ++ _mt_fe_tn_set_reg(state, 0x87, 0x54); ++ else if (freq_KHz > 300000) ++ _mt_fe_tn_set_reg(state, 0x87, 0x43); ++ else if (freq_KHz > 220000) ++ _mt_fe_tn_set_reg(state, 0x87, 0x54); ++ else if (freq_KHz > 110000) ++ _mt_fe_tn_set_reg(state, 0x87, 0x14); ++ else ++ _mt_fe_tn_set_reg(state, 0x87, 0x54); ++ msleep(5); ++ } else if (buf < 0x0c) { ++ if (freq_KHz > 800000) ++ _mt_fe_tn_set_reg(state, 0x87, 0x14); ++ else if (freq_KHz > 600000) ++ _mt_fe_tn_set_reg(state, 0x87, 0x14); ++ else if (freq_KHz > 500000) ++ _mt_fe_tn_set_reg(state, 0x87, 0x34); ++ else if (freq_KHz > 300000) ++ _mt_fe_tn_set_reg(state, 0x87, 0x43); ++ else if (freq_KHz > 220000) ++ _mt_fe_tn_set_reg(state, 0x87, 0x54); ++ else if (freq_KHz > 110000) ++ _mt_fe_tn_set_reg(state, 0x87, 0x14); ++ else ++ _mt_fe_tn_set_reg(state, 0x87, 0x54); ++ msleep(5); ++ } ++ } else if ((state->tuner_mtt == 0xE1)) { ++ _mt_fe_tn_set_reg(state, 0x00, 0x01); ++ _mt_fe_tn_set_reg(state, 0x00, 0x00); ++ msleep(20); ++ _mt_fe_tn_get_reg(state, 0x32, &buf); ++ buf = (buf & 0xef) | 0x28; ++ _mt_fe_tn_set_reg(state, 0x32, buf); ++ msleep(50); ++ _mt_fe_tn_get_reg(state, 0x38, &buf); ++ _mt_fe_tn_set_reg(state, 0x38, buf); ++ _mt_fe_tn_get_reg(state, 0x32, &buf); ++ buf = (buf & 0xf7) | 0x10; ++ _mt_fe_tn_set_reg(state, 0x32, buf); ++ msleep(10); ++ _mt_fe_tn_get_reg(state, 0x69, &buf); ++ buf = buf & 0x03; ++ _mt_fe_tn_set_reg(state, 0x2a, buf); ++ if (buf > 0) { ++ msleep(20); ++ _mt_fe_tn_get_reg(state, 0x84, &buf); ++ buf = buf & 0x1f; ++ _mt_fe_tn_set_reg(state, 0x68, 0x0a); ++ _mt_fe_tn_get_reg(state, 0x88, &buf1); ++ buf1 = buf1 & 0x1f; ++ if (buf <= buf1) ++ _mt_fe_tn_set_reg(state, 0x66, 0x44); ++ else ++ _mt_fe_tn_set_reg(state, 0x66, 0x74); ++ } else { ++ if (freq_KHz <= 600000) ++ _mt_fe_tn_set_reg(state, 0x68, 0x0c); ++ else ++ _mt_fe_tn_set_reg(state, 0x68, 0x0e); ++ _mt_fe_tn_set_reg(state, 0x30, 0xfb); ++ _mt_fe_tn_set_reg(state, 0x30, 0xff); ++ _mt_fe_tn_set_reg(state, 0x31, 0x04); ++ _mt_fe_tn_set_reg(state, 0x31, 0x00); ++ } ++ if (state->tuner_loopthrough != 0) { ++ _mt_fe_tn_get_reg(state, 0x28, &buf); ++ if (buf == 0) { ++ _mt_fe_tn_set_reg(state, 0x28, 0xff); ++ _mt_fe_tn_get_reg(state, 0x61, &buf); ++ buf = buf & 0x0f; ++ if (buf > 9) ++ _mt_fe_tn_set_reg(state, 0x67, 0x74); ++ else if (buf > 6) ++ _mt_fe_tn_set_reg(state, 0x67, 0x64); ++ else if (buf > 3) ++ _mt_fe_tn_set_reg(state, 0x67, 0x54); ++ else ++ _mt_fe_tn_set_reg(state, 0x67, 0x44); ++ } ++ } else { ++ _mt_fe_tn_set_reg(state, 0x67, 0x34); ++ } ++ } else { ++ return 1; ++ } ++ return 0; ++} ++ ++ ++/* ++static int mt_fe_tn_set_BB_filter_band_tc2800(struct m88dc2800_state *state, ++ u8 bandwidth) ++{ ++ u8 buf, tmp; ++ ++ _mt_fe_tn_get_reg(state, 0x53, &tmp); ++ ++ if (bandwidth == 6) ++ buf = 0x01 << 1; ++ else if (bandwidth == 7) ++ buf = 0x02 << 1; ++ else if (bandwidth == 8) ++ buf = 0x04 << 1; ++ else ++ buf = 0x04 << 1; ++ ++ tmp &= 0xf1; ++ tmp |= buf; ++ _mt_fe_tn_set_reg(state, 0x53, tmp); ++ state->tuner_bandwidth = bandwidth; ++ return 0; ++} ++*/ ++ ++static s32 mt_fe_tn_get_signal_strength_tc2800(struct m88dc2800_state ++ *state) ++{ ++ s32 level = -107; ++ s32 tmp1, tmp2, tmp3, tmp4, tmp5, tmp6; ++ s32 val1, val2, val; ++ s32 result2, result3, result4, result5, result6; ++ s32 append; ++ u8 tmp; ++ s32 freq_KHz = (s32) state->tuner_freq; ++ if (state->tuner_mtt == 0xD1) { ++ _mt_fe_tn_get_reg(state, 0x61, &tmp); ++ tmp1 = tmp & 0x0f; ++ _mt_fe_tn_get_reg(state, 0x69, &tmp); ++ tmp2 = tmp & 0x0f; ++ _mt_fe_tn_get_reg(state, 0x73, &tmp); ++ tmp3 = tmp & 0x07; ++ _mt_fe_tn_get_reg(state, 0x7c, &tmp); ++ tmp4 = (tmp >> 4) & 0x0f; ++ _mt_fe_tn_get_reg(state, 0x7b, &tmp); ++ tmp5 = tmp & 0x0f; ++ _mt_fe_tn_get_reg(state, 0x7f, &tmp); ++ tmp6 = (tmp >> 5) & 0x01; ++ if (tmp1 > 6) { ++ val1 = 0; ++ if (freq_KHz <= 200000) { ++ val2 = (tmp1 - 6) * 267; ++ } else if (freq_KHz <= 600000) { ++ val2 = (tmp1 - 6) * 280; ++ } else { ++ val2 = (tmp1 - 6) * 290; ++ } ++ val = val1 + val2; ++ } else { ++ if (tmp1 == 0) { ++ val1 = -550; ++ } else { ++ val1 = 0; ++ } ++ if ((tmp1 < 4) && (freq_KHz >= 506000)) { ++ val1 = -850; ++ } ++ val2 = 0; ++ val = val1 + val2; ++ } ++ if (freq_KHz <= 95000) { ++ result2 = tmp2 * 289; ++ } else if (freq_KHz <= 155000) { ++ result2 = tmp2 * 278; ++ } else if (freq_KHz <= 245000) { ++ result2 = tmp2 * 267; ++ } else if (freq_KHz <= 305000) { ++ result2 = tmp2 * 256; ++ } else if (freq_KHz <= 335000) { ++ result2 = tmp2 * 244; ++ } else if (freq_KHz <= 425000) { ++ result2 = tmp2 * 233; ++ } else if (freq_KHz <= 575000) { ++ result2 = tmp2 * 222; ++ } else if (freq_KHz <= 665000) { ++ result2 = tmp2 * 211; ++ } else { ++ result2 = tmp2 * 200; ++ } ++ result3 = (6 - tmp3) * 100; ++ result4 = 300 * tmp4; ++ result5 = 50 * tmp5; ++ result6 = 300 * tmp6; ++ if (freq_KHz < 105000) { ++ append = -450; ++ } else if (freq_KHz <= 227000) { ++ append = -4 * (freq_KHz / 1000 - 100) + 150; ++ } else if (freq_KHz <= 305000) { ++ append = -4 * (freq_KHz / 1000 - 100); ++ } else if (freq_KHz <= 419000) { ++ append = 500 - 40 * (freq_KHz / 1000 - 300) / 17 + 130; ++ } else if (freq_KHz <= 640000) { ++ append = 500 - 40 * (freq_KHz / 1000 - 300) / 17; ++ } else { ++ append = -500; ++ } ++ level = append - (val + result2 + result3 + result4 + ++ result5 + result6); ++ level /= 100; ++ } else if (state->tuner_mtt == 0xE1) { ++ _mt_fe_tn_get_reg(state, 0x61, &tmp); ++ tmp1 = tmp & 0x0f; ++ _mt_fe_tn_get_reg(state, 0x84, &tmp); ++ tmp2 = tmp & 0x1f; ++ _mt_fe_tn_get_reg(state, 0x69, &tmp); ++ tmp3 = tmp & 0x03; ++ _mt_fe_tn_get_reg(state, 0x73, &tmp); ++ tmp4 = tmp & 0x0f; ++ _mt_fe_tn_get_reg(state, 0x7c, &tmp); ++ tmp5 = (tmp >> 4) & 0x0f; ++ _mt_fe_tn_get_reg(state, 0x7b, &tmp); ++ tmp6 = tmp & 0x0f; ++ if (freq_KHz < 151000) { ++ result2 = (1150 - freq_KHz / 100) * 163 / 33 + 4230; ++ result3 = (1150 - freq_KHz / 100) * 115 / 33 + 1850; ++ result4 = -3676 * (freq_KHz / 1000) / 100 + 6115; ++ } else if (freq_KHz < 257000) { ++ result2 = (1540 - freq_KHz / 100) * 11 / 4 + 3870; ++ result3 = (1540 - freq_KHz / 100) * 205 / 96 + 2100; ++ result4 = -21 * freq_KHz / 1000 + 5084; ++ } else if (freq_KHz < 305000) { ++ result2 = (2620 - freq_KHz / 100) * 5 / 3 + 2770; ++ result3 = (2620 - freq_KHz / 100) * 10 / 7 + 1700; ++ result4 = 650; ++ } else if (freq_KHz < 449000) { ++ result2 = (307 - freq_KHz / 1000) * 82 / 27 + 11270; ++ result3 = (3100 - freq_KHz / 100) * 5 / 3 + 10000; ++ result4 = 134 * freq_KHz / 10000 + 11875; ++ } else { ++ result2 = (307 - freq_KHz / 1000) * 82 / 27 + 11270; ++ result3 = 8400; ++ result4 = 5300; ++ } ++ if (tmp1 > 6) { ++ val1 = result2; ++ val2 = 2900; ++ val = 500; ++ } else if (tmp1 > 0) { ++ val1 = result3; ++ val2 = 2700; ++ val = 500; ++ } else { ++ val1 = result4; ++ val2 = 2700; ++ val = 400; ++ } ++ level = val1 - (val2 * tmp1 + 500 * tmp2 + 3000 * tmp3 - ++ 500 * tmp4 + 3000 * tmp5 + val * tmp6) - 1000; ++ level /= 1000; ++ } ++ return level; ++} ++ ++ ++/* m88dc2800 operation functions */ ++u8 M88DC2000GetLock(struct m88dc2800_state * state) ++{ ++ u8 u8ret = 0; ++ if (ReadReg(state, 0x80) < 0x06) { ++ if ((ReadReg(state, 0xdf) & 0x80) == 0x80 ++ &&(ReadReg(state, 0x91) & 0x23) == 0x03 ++ &&(ReadReg(state, 0x43) & 0x08) == 0x08) ++ u8ret = 1; ++ else ++ u8ret = 0; ++ } else { ++ if ((ReadReg(state, 0x85) & 0x08) == 0x08) ++ u8ret = 1; ++ else ++ u8ret = 0; ++ } ++ dprintk("%s, lock=%d\n", __func__, u8ret); ++ return u8ret; ++} ++ ++static int M88DC2000SetTsType(struct m88dc2800_state *state, u8 type) ++{ ++ u8 regC2H; ++ ++ if (type == 3) { ++ WriteReg(state, 0x84, 0x6A); ++ WriteReg(state, 0xC0, 0x43); ++ WriteReg(state, 0xE2, 0x06); ++ regC2H = ReadReg(state, 0xC2); ++ regC2H &= 0xC0; ++ regC2H |= 0x1B; ++ WriteReg(state, 0xC2, regC2H); ++ WriteReg(state, 0xC1, 0x60); /* common interface */ ++ } else if (type == 1) { ++ WriteReg(state, 0x84, 0x6A); ++ WriteReg(state, 0xC0, 0x47); /* serial format */ ++ WriteReg(state, 0xE2, 0x02); ++ regC2H = ReadReg(state, 0xC2); ++ regC2H &= 0xC7; ++ WriteReg(state, 0xC2, regC2H); ++ WriteReg(state, 0xC1, 0x00); ++ } else { ++ WriteReg(state, 0x84, 0x6C); ++ WriteReg(state, 0xC0, 0x43); /* parallel format */ ++ WriteReg(state, 0xE2, 0x06); ++ regC2H = ReadReg(state, 0xC2); ++ regC2H &= 0xC7; ++ WriteReg(state, 0xC2, regC2H); ++ WriteReg(state, 0xC1, 0x00); ++ } ++ return 0; ++} ++ ++static int M88DC2000RegInitial_TC2800(struct m88dc2800_state *state) ++{ ++ u8 RegE3H, RegE4H; ++ ++ WriteReg(state, 0x00, 0x48); ++ WriteReg(state, 0x01, 0x09); ++ WriteReg(state, 0xFB, 0x0A); ++ WriteReg(state, 0xFC, 0x0B); ++ WriteReg(state, 0x02, 0x0B); ++ WriteReg(state, 0x03, 0x18); ++ WriteReg(state, 0x05, 0x0D); ++ WriteReg(state, 0x36, 0x80); ++ WriteReg(state, 0x43, 0x40); ++ WriteReg(state, 0x55, 0x7A); ++ WriteReg(state, 0x56, 0xD9); ++ WriteReg(state, 0x57, 0xDF); ++ WriteReg(state, 0x58, 0x39); ++ WriteReg(state, 0x5A, 0x00); ++ WriteReg(state, 0x5C, 0x71); ++ WriteReg(state, 0x5D, 0x23); ++ WriteReg(state, 0x86, 0x40); ++ WriteReg(state, 0xF9, 0x08); ++ WriteReg(state, 0x61, 0x40); ++ WriteReg(state, 0x62, 0x0A); ++ WriteReg(state, 0x90, 0x06); ++ WriteReg(state, 0xDE, 0x00); ++ WriteReg(state, 0xA0, 0x03); ++ WriteReg(state, 0xDF, 0x81); ++ WriteReg(state, 0xFA, 0x40); ++ WriteReg(state, 0x37, 0x10); ++ WriteReg(state, 0xF0, 0x40); ++ WriteReg(state, 0xF2, 0x9C); ++ WriteReg(state, 0xF3, 0x40); ++ RegE3H = ReadReg(state, 0xE3); ++ RegE4H = ReadReg(state, 0xE4); ++ if (((RegE3H & 0xC0) == 0x00) && ((RegE4H & 0xC0) == 0x00)) { ++ WriteReg(state, 0x30, 0xFF); ++ WriteReg(state, 0x31, 0x00); ++ WriteReg(state, 0x32, 0x00); ++ WriteReg(state, 0x33, 0x00); ++ WriteReg(state, 0x35, 0x32); ++ WriteReg(state, 0x40, 0x00); ++ WriteReg(state, 0x41, 0x10); ++ WriteReg(state, 0xF1, 0x02); ++ WriteReg(state, 0xF4, 0x04); ++ WriteReg(state, 0xF5, 0x00); ++ WriteReg(state, 0x42, 0x14); ++ WriteReg(state, 0xE1, 0x25); ++ } else if (((RegE3H & 0xC0) == 0x80) && ((RegE4H & 0xC0) == 0x40)) { ++ WriteReg(state, 0x30, 0xFF); ++ WriteReg(state, 0x31, 0x00); ++ WriteReg(state, 0x32, 0x00); ++ WriteReg(state, 0x33, 0x00); ++ WriteReg(state, 0x35, 0x32); ++ WriteReg(state, 0x39, 0x00); ++ WriteReg(state, 0x3A, 0x00); ++ WriteReg(state, 0x40, 0x00); ++ WriteReg(state, 0x41, 0x10); ++ WriteReg(state, 0xF1, 0x00); ++ WriteReg(state, 0xF4, 0x00); ++ WriteReg(state, 0xF5, 0x40); ++ WriteReg(state, 0x42, 0x14); ++ WriteReg(state, 0xE1, 0x25); ++ } else if ((RegE3H == 0x80 || RegE3H == 0x81) ++ && (RegE4H == 0x80 || RegE4H == 0x81)) { ++ WriteReg(state, 0x30, 0xFF); ++ WriteReg(state, 0x31, 0x00); ++ WriteReg(state, 0x32, 0x00); ++ WriteReg(state, 0x33, 0x00); ++ WriteReg(state, 0x35, 0x32); ++ WriteReg(state, 0x39, 0x00); ++ WriteReg(state, 0x3A, 0x00); ++ WriteReg(state, 0xF1, 0x00); ++ WriteReg(state, 0xF4, 0x00); ++ WriteReg(state, 0xF5, 0x40); ++ WriteReg(state, 0x42, 0x24); ++ WriteReg(state, 0xE1, 0x25); ++ WriteReg(state, 0x92, 0x7F); ++ WriteReg(state, 0x93, 0x91); ++ WriteReg(state, 0x95, 0x00); ++ WriteReg(state, 0x2B, 0x33); ++ WriteReg(state, 0x2A, 0x2A); ++ WriteReg(state, 0x2E, 0x80); ++ WriteReg(state, 0x25, 0x25); ++ WriteReg(state, 0x2D, 0xFF); ++ WriteReg(state, 0x26, 0xFF); ++ WriteReg(state, 0x27, 0x00); ++ WriteReg(state, 0x24, 0x25); ++ WriteReg(state, 0xA4, 0xFF); ++ WriteReg(state, 0xA3, 0x0D); ++ } else { ++ WriteReg(state, 0x30, 0xFF); ++ WriteReg(state, 0x31, 0x00); ++ WriteReg(state, 0x32, 0x00); ++ WriteReg(state, 0x33, 0x00); ++ WriteReg(state, 0x35, 0x32); ++ WriteReg(state, 0x39, 0x00); ++ WriteReg(state, 0x3A, 0x00); ++ WriteReg(state, 0xF1, 0x00); ++ WriteReg(state, 0xF4, 0x00); ++ WriteReg(state, 0xF5, 0x40); ++ WriteReg(state, 0x42, 0x24); ++ WriteReg(state, 0xE1, 0x27); ++ WriteReg(state, 0x92, 0x7F); ++ WriteReg(state, 0x93, 0x91); ++ WriteReg(state, 0x95, 0x00); ++ WriteReg(state, 0x2B, 0x33); ++ WriteReg(state, 0x2A, 0x2A); ++ WriteReg(state, 0x2E, 0x80); ++ WriteReg(state, 0x25, 0x25); ++ WriteReg(state, 0x2D, 0xFF); ++ WriteReg(state, 0x26, 0xFF); ++ WriteReg(state, 0x27, 0x00); ++ WriteReg(state, 0x24, 0x25); ++ WriteReg(state, 0xA4, 0xFF); ++ WriteReg(state, 0xA3, 0x10); ++ } ++ WriteReg(state, 0xF6, 0x4E); ++ WriteReg(state, 0xF7, 0x20); ++ WriteReg(state, 0x89, 0x02); ++ WriteReg(state, 0x14, 0x08); ++ WriteReg(state, 0x6F, 0x0D); ++ WriteReg(state, 0x10, 0xFF); ++ WriteReg(state, 0x11, 0x00); ++ WriteReg(state, 0x12, 0x30); ++ WriteReg(state, 0x13, 0x23); ++ WriteReg(state, 0x60, 0x00); ++ WriteReg(state, 0x69, 0x00); ++ WriteReg(state, 0x6A, 0x03); ++ WriteReg(state, 0xE0, 0x75); ++ WriteReg(state, 0x8D, 0x29); ++ WriteReg(state, 0x4E, 0xD8); ++ WriteReg(state, 0x88, 0x80); ++ WriteReg(state, 0x52, 0x79); ++ WriteReg(state, 0x53, 0x03); ++ WriteReg(state, 0x59, 0x30); ++ WriteReg(state, 0x5E, 0x02); ++ WriteReg(state, 0x5F, 0x0F); ++ WriteReg(state, 0x71, 0x03); ++ WriteReg(state, 0x72, 0x12); ++ WriteReg(state, 0x73, 0x12); ++ ++ return 0; ++} ++ ++static int M88DC2000AutoTSClock_P(struct m88dc2800_state *state, u32 sym, ++ u16 qam) ++{ ++ u32 dataRate; ++ u8 clk_div, value; ++ printk(KERN_INFO ++ "m88dc2800: M88DC2000AutoTSClock_P, symrate=%d qam=%d\n", ++ sym, qam); ++ switch (qam) { ++ case 16: ++ dataRate = 4; ++ break; ++ case 32: ++ dataRate = 5; ++ break; ++ case 128: ++ dataRate = 7; ++ break; ++ case 256: ++ dataRate = 8; ++ break; ++ case 64: ++ default: ++ dataRate = 6; ++ break; ++ } ++ dataRate *= sym * 105; ++ dataRate /= 800; ++ if (dataRate <= 4115) ++ clk_div = 0x05; ++ else if (dataRate <= 4800) ++ clk_div = 0x04; ++ else if (dataRate <= 5760) ++ clk_div = 0x03; ++ else if (dataRate <= 7200) ++ clk_div = 0x02; ++ else if (dataRate <= 9600) ++ clk_div = 0x01; ++ else ++ clk_div = 0x00; ++ value = ReadReg(state, 0xC2); ++ value &= 0xc0; ++ value |= clk_div; ++ WriteReg(state, 0xC2, value); ++ return 0; ++} ++ ++static int M88DC2000AutoTSClock_C(struct m88dc2800_state *state, u32 sym, ++ u16 qam) ++{ ++ u32 dataRate; ++ u8 clk_div, value; ++ printk(KERN_INFO ++ "m88dc2800: M88DC2000AutoTSClock_C, symrate=%d qam=%d\n", ++ sym, qam); ++ switch (qam) { ++ case 16: ++ dataRate = 4; ++ break; ++ case 32: ++ dataRate = 5; ++ break; ++ case 128: ++ dataRate = 7; ++ break; ++ case 256: ++ dataRate = 8; ++ break; ++ case 64: ++ default: ++ dataRate = 6; ++ break; ++ } ++ dataRate *= sym * 105; ++ dataRate /= 800; ++ if (dataRate <= 4115) ++ clk_div = 0x3F; ++ else if (dataRate <= 4800) ++ clk_div = 0x36; ++ else if (dataRate <= 5760) ++ clk_div = 0x2D; ++ else if (dataRate <= 7200) ++ clk_div = 0x24; ++ else if (dataRate <= 9600) ++ clk_div = 0x1B; ++ else ++ clk_div = 0x12; ++ value = ReadReg(state, 0xC2); ++ value &= 0xc0; ++ value |= clk_div; ++ WriteReg(state, 0xC2, value); ++ return 0; ++} ++ ++static int M88DC2000SetTxMode(struct m88dc2800_state *state, u8 inverted, ++ u8 j83) ++{ ++ u8 value = 0; ++ if (inverted) ++ value |= 0x08; /* spectrum inverted */ ++ if (j83) ++ value |= 0x01; /* J83C */ ++ WriteReg(state, 0x83, value); ++ return 0; ++} ++ ++static int M88DC2000SoftReset(struct m88dc2800_state *state) ++{ ++ WriteReg(state, 0x80, 0x01); ++ WriteReg(state, 0x82, 0x00); ++ msleep(1); ++ WriteReg(state, 0x80, 0x00); ++ return 0; ++} ++ ++static int M88DC2000SetSym(struct m88dc2800_state *state, u32 sym, u32 xtal) ++{ ++ u8 value; ++ u8 reg6FH, reg12H; ++ u64 fValue; ++ u32 dwValue; ++ ++ printk(KERN_INFO "%s, sym=%d, xtal=%d\n", __func__, sym, xtal); ++ fValue = 4294967296 * (sym + 10); ++ do_div(fValue, xtal); ++ ++ /* fValue = 4294967296 * (sym + 10) / xtal; */ ++ dwValue = (u32) fValue; ++ printk(KERN_INFO "%s, fvalue1=%x\n", __func__, dwValue); ++ WriteReg(state, 0x58, (u8) ((dwValue >> 24) & 0xff)); ++ WriteReg(state, 0x57, (u8) ((dwValue >> 16) & 0xff)); ++ WriteReg(state, 0x56, (u8) ((dwValue >> 8) & 0xff)); ++ WriteReg(state, 0x55, (u8) ((dwValue >> 0) & 0xff)); ++ ++ /* fValue = 2048 * xtal / sym; */ ++ fValue = 2048 * xtal; ++ do_div(fValue, sym); ++ dwValue = (u32) fValue; ++ printk(KERN_INFO "%s, fvalue2=%x\n", __func__, dwValue); ++ WriteReg(state, 0x5D, (u8) ((dwValue >> 8) & 0xff)); ++ WriteReg(state, 0x5C, (u8) ((dwValue >> 0) & 0xff)); ++ value = ReadReg(state, 0x5A); ++ if (((dwValue >> 16) & 0x0001) == 0) ++ value &= 0x7F; ++ else ++ value |= 0x80; ++ WriteReg(state, 0x5A, value); ++ value = ReadReg(state, 0x89); ++ if (sym <= 1800) ++ value |= 0x01; ++ else ++ value &= 0xFE; ++ WriteReg(state, 0x89, value); ++ if (sym >= 6700) { ++ reg6FH = 0x0D; ++ reg12H = 0x30; ++ } else if (sym >= 4000) { ++ fValue = 22 * 4096 / sym; ++ reg6FH = (u8) fValue; ++ reg12H = 0x30; ++ } else if (sym >= 2000) { ++ fValue = 14 * 4096 / sym; ++ reg6FH = (u8) fValue; ++ reg12H = 0x20; ++ } else { ++ fValue = 7 * 4096 / sym; ++ reg6FH = (u8) fValue; ++ reg12H = 0x10; ++ } ++ WriteReg(state, 0x6F, reg6FH); ++ WriteReg(state, 0x12, reg12H); ++ if (((ReadReg(state, 0xE3) & 0x80) == 0x80) ++ && ((ReadReg(state, 0xE4) & 0x80) == 0x80)) { ++ if (sym < 3000) { ++ WriteReg(state, 0x6C, 0x16); ++ WriteReg(state, 0x6D, 0x10); ++ WriteReg(state, 0x6E, 0x18); ++ } else { ++ WriteReg(state, 0x6C, 0x14); ++ WriteReg(state, 0x6D, 0x0E); ++ WriteReg(state, 0x6E, 0x36); ++ } ++ } else { ++ WriteReg(state, 0x6C, 0x16); ++ WriteReg(state, 0x6D, 0x10); ++ WriteReg(state, 0x6E, 0x18); ++ } ++ return 0; ++} ++ ++static int M88DC2000SetQAM(struct m88dc2800_state *state, u16 qam) ++{ ++ u8 reg00H, reg4AH, regC2H, reg44H, reg4CH, reg4DH, reg74H, value; ++ u8 reg8BH, reg8EH; ++ printk(KERN_INFO "%s, qam=%d\n", __func__, qam); ++ regC2H = ReadReg(state, 0xC2); ++ regC2H &= 0xF8; ++ switch (qam) { ++ case 16: /* 16 QAM */ ++ reg00H = 0x08; ++ reg4AH = 0x0F; ++ regC2H |= 0x02; ++ reg44H = 0xAA; ++ reg4CH = 0x0C; ++ reg4DH = 0xF7; ++ reg74H = 0x0E; ++ if (((ReadReg(state, 0xE3) & 0x80) == 0x80) ++ && ((ReadReg(state, 0xE4) & 0x80) == 0x80)) { ++ reg8BH = 0x5A; ++ reg8EH = 0xBD; ++ } else { ++ reg8BH = 0x5B; ++ reg8EH = 0x9D; ++ } ++ WriteReg(state, 0x6E, 0x18); ++ break; ++ case 32: /* 32 QAM */ ++ reg00H = 0x18; ++ reg4AH = 0xFB; ++ regC2H |= 0x02; ++ reg44H = 0xAA; ++ reg4CH = 0x0C; ++ reg4DH = 0xF7; ++ reg74H = 0x0E; ++ if (((ReadReg(state, 0xE3) & 0x80) == 0x80) ++ && ((ReadReg(state, 0xE4) & 0x80) == 0x80)) { ++ reg8BH = 0x5A; ++ reg8EH = 0xBD; ++ } else { ++ reg8BH = 0x5B; ++ reg8EH = 0x9D; ++ } ++ WriteReg(state, 0x6E, 0x18); ++ break; ++ case 64: /* 64 QAM */ ++ reg00H = 0x48; ++ reg4AH = 0xCD; ++ regC2H |= 0x02; ++ reg44H = 0xAA; ++ reg4CH = 0x0C; ++ reg4DH = 0xF7; ++ reg74H = 0x0E; ++ if (((ReadReg(state, 0xE3) & 0x80) == 0x80) ++ && ((ReadReg(state, 0xE4) & 0x80) == 0x80)) { ++ reg8BH = 0x5A; ++ reg8EH = 0xBD; ++ } else { ++ reg8BH = 0x5B; ++ reg8EH = 0x9D; ++ } ++ break; ++ case 128: /* 128 QAM */ ++ reg00H = 0x28; ++ reg4AH = 0xFF; ++ regC2H |= 0x02; ++ reg44H = 0xA9; ++ reg4CH = 0x08; ++ reg4DH = 0xF5; ++ reg74H = 0x0E; ++ reg8BH = 0x5B; ++ reg8EH = 0x9D; ++ break; ++ case 256: /* 256 QAM */ ++ reg00H = 0x38; ++ reg4AH = 0xCD; ++ if (((ReadReg(state, 0xE3) & 0x80) == 0x80) ++ && ((ReadReg(state, 0xE4) & 0x80) == 0x80)) { ++ regC2H |= 0x02; ++ } else { ++ regC2H |= 0x01; ++ } ++ reg44H = 0xA9; ++ reg4CH = 0x08; ++ reg4DH = 0xF5; ++ reg74H = 0x0E; ++ reg8BH = 0x5B; ++ reg8EH = 0x9D; ++ break; ++ default: /* 64 QAM */ ++ reg00H = 0x48; ++ reg4AH = 0xCD; ++ regC2H |= 0x02; ++ reg44H = 0xAA; ++ reg4CH = 0x0C; ++ reg4DH = 0xF7; ++ reg74H = 0x0E; ++ if (((ReadReg(state, 0xE3) & 0x80) == 0x80) ++ && ((ReadReg(state, 0xE4) & 0x80) == 0x80)) { ++ reg8BH = 0x5A; ++ reg8EH = 0xBD; ++ } else { ++ reg8BH = 0x5B; ++ reg8EH = 0x9D; ++ } ++ break; ++ } ++ WriteReg(state, 0x00, reg00H); ++ value = ReadReg(state, 0x88); ++ value |= 0x08; ++ WriteReg(state, 0x88, value); ++ WriteReg(state, 0x4B, 0xFF); ++ WriteReg(state, 0x4A, reg4AH); ++ value &= 0xF7; ++ WriteReg(state, 0x88, value); ++ WriteReg(state, 0xC2, regC2H); ++ WriteReg(state, 0x44, reg44H); ++ WriteReg(state, 0x4C, reg4CH); ++ WriteReg(state, 0x4D, reg4DH); ++ WriteReg(state, 0x74, reg74H); ++ WriteReg(state, 0x8B, reg8BH); ++ WriteReg(state, 0x8E, reg8EH); ++ return 0; ++} ++ ++static int M88DC2000WriteTuner_TC2800(struct m88dc2800_state *state, ++ u32 freq_KHz) ++{ ++ printk(KERN_INFO "%s, freq=%d KHz\n", __func__, freq_KHz); ++ return mt_fe_tn_set_freq_tc2800(state, freq_KHz); ++} ++ ++static int m88dc2800_init(struct dvb_frontend *fe) ++{ ++ dprintk("%s()\n", __func__); ++ return 0; ++} ++ ++static int m88dc2800_set_parameters(struct dvb_frontend *fe) ++{ ++ struct dtv_frontend_properties *c = &fe->dtv_property_cache; ++ u8 is_annex_c, is_update; ++ u16 temp_qam; ++ s32 waiting_time; ++ struct m88dc2800_state *state = fe->demodulator_priv; ++ ++ is_annex_c = c->delivery_system == SYS_DVBC_ANNEX_C ? 1 : 0; ++ ++ switch (c->modulation) { ++ case QAM_16: ++ temp_qam = 16; ++ break; ++ case QAM_32: ++ temp_qam = 32; ++ break; ++ case QAM_128: ++ temp_qam = 128; ++ break; ++ case QAM_256: ++ temp_qam = 256; ++ break; ++ default: /* QAM_64 */ ++ temp_qam = 64; ++ break; ++ } ++ ++ state->inverted = c->inversion == INVERSION_ON ? 1 : 0; ++ ++ printk(KERN_INFO ++ "m88dc2800: state, freq=%d qam=%d sym=%d inverted=%d xtal=%d\n", ++ state->freq, state->qam, state->sym, state->inverted, ++ state->xtal); ++ printk(KERN_INFO ++ "m88dc2800: set frequency to %d qam=%d symrate=%d annex-c=%d\n", ++ c->frequency, temp_qam, c->symbol_rate, is_annex_c); ++ ++ is_update = 0; ++ WriteReg(state, 0x80, 0x01); ++ if (c->frequency != state->freq) { ++ M88DC2000WriteTuner_TC2800(state, c->frequency / 1000); ++ state->freq = c->frequency; ++ } ++ if (c->symbol_rate != state->sym) { ++ M88DC2000SetSym(state, c->symbol_rate / 1000, state->xtal); ++ state->sym = c->symbol_rate; ++ is_update = 1; ++ } ++ if (temp_qam != state->qam) { ++ M88DC2000SetQAM(state, temp_qam); ++ state->qam = temp_qam; ++ is_update = 1; ++ } ++ ++ if (is_update != 0) { ++ if (state->config->ts_mode == 3) ++ M88DC2000AutoTSClock_C(state, state->sym / 1000, ++ temp_qam); ++ else ++ M88DC2000AutoTSClock_P(state, state->sym / 1000, ++ temp_qam); ++ } ++ ++ M88DC2000SetTxMode(state, state->inverted, is_annex_c); ++ M88DC2000SoftReset(state); ++ if (((ReadReg(state, 0xE3) & 0x80) == 0x80) ++ && ((ReadReg(state, 0xE4) & 0x80) == 0x80)) ++ waiting_time = 800; ++ else ++ waiting_time = 500; ++ while (waiting_time > 0) { ++ msleep(50); ++ waiting_time -= 50; ++ if (M88DC2000GetLock(state)) ++ return 0; ++ } ++ ++ state->inverted = (state->inverted != 0) ? 0 : 1; ++ M88DC2000SetTxMode(state, state->inverted, is_annex_c); ++ M88DC2000SoftReset(state); ++ if (((ReadReg(state, 0xE3) & 0x80) == 0x80) && ++ ((ReadReg(state, 0xE4) & 0x80) == 0x80)) ++ waiting_time = 800; ++ else ++ waiting_time = 500; ++ while (waiting_time > 0) { ++ msleep(50); ++ waiting_time -= 50; ++ if (M88DC2000GetLock(state)) ++ return 0; ++ } ++ return 0; ++} ++ ++static int m88dc2800_read_status(struct dvb_frontend *fe, ++ fe_status_t * status) ++{ ++ struct m88dc2800_state *state = fe->demodulator_priv; ++ *status = 0; ++ ++ if (M88DC2000GetLock(state)) { ++ *status = FE_HAS_SIGNAL | FE_HAS_CARRIER ++ |FE_HAS_SYNC | FE_HAS_VITERBI | FE_HAS_LOCK; ++ } ++ return 0; ++} ++ ++static int m88dc2800_read_ber(struct dvb_frontend *fe, u32 * ber) ++{ ++ struct m88dc2800_state *state = fe->demodulator_priv; ++ u16 tmp; ++ ++ if (M88DC2000GetLock(state) == 0) { ++ state->ber = 0; ++ } else if ((ReadReg(state, 0xA0) & 0x80) != 0x80) { ++ tmp = ReadReg(state, 0xA2) << 8; ++ tmp += ReadReg(state, 0xA1); ++ state->ber = tmp; ++ WriteReg(state, 0xA0, 0x05); ++ WriteReg(state, 0xA0, 0x85); ++ } ++ *ber = state->ber; ++ return 0; ++} ++ ++static int m88dc2800_read_signal_strength(struct dvb_frontend *fe, ++ u16 * strength) ++{ ++ struct m88dc2800_state *state = fe->demodulator_priv; ++ s16 tuner_strength; ++ ++ tuner_strength = mt_fe_tn_get_signal_strength_tc2800(state); ++ *strength = tuner_strength < -107 ? 0 : tuner_strength + 107; ++ ++ return 0; ++} ++ ++static int m88dc2800_read_snr(struct dvb_frontend *fe, u16 * snr) ++{ ++ static const u32 mes_log[] = { ++ 0, 3010, 4771, 6021, 6990, 7781, 8451, 9031, 9542, 10000, ++ 10414, 10792, 11139, 11461, 11761, 12041, 12304, 12553, 12788, ++ 13010, 13222, 13424, 13617, 13802, 13979, 14150, 14314, 14472, ++ 14624, 14771, 14914, 15052, 15185, 15315, 15441, 15563, 15682, ++ 15798, 15911, 16021, 16128, 16232, 16335, 16435, 16532, 16628, ++ 16721, 16812, 16902, 16990, 17076, 17160, 17243, 17324, 17404, ++ 17482, 17559, 17634, 17709, 17782, 17853, 17924, 17993, 18062, ++ 18129, 18195, 18261, 18325, 18388, 18451, 18513, 18573, 18633, ++ 18692, 18751, 18808, 18865, 18921, 18976, 19031 ++ }; ++ struct m88dc2800_state *state = fe->demodulator_priv; ++ u8 i; ++ u32 _snr, mse; ++ ++ if ((ReadReg(state, 0x91) & 0x23) != 0x03) { ++ *snr = 0; ++ return 0; ++ } ++ mse = 0; ++ for (i = 0; i < 30; i++) { ++ mse += (ReadReg(state, 0x08) << 8) + ReadReg(state, 0x07); ++ } ++ mse /= 30; ++ if (mse > 80) ++ mse = 80; ++ switch (state->qam) { ++ case 16: ++ _snr = 34080; ++ break; /* 16QAM */ ++ case 32: ++ _snr = 37600; ++ break; /* 32QAM */ ++ case 64: ++ _snr = 40310; ++ break; /* 64QAM */ ++ case 128: ++ _snr = 43720; ++ break; /* 128QAM */ ++ case 256: ++ _snr = 46390; ++ break; /* 256QAM */ ++ default: ++ _snr = 40310; ++ break; ++ } ++ _snr -= mes_log[mse - 1]; /* C - 10*log10(MSE) */ ++ _snr /= 1000; ++ if (_snr > 0xff) ++ _snr = 0xff; ++ *snr = _snr; ++ return 0; ++} ++ ++static int m88dc2800_read_ucblocks(struct dvb_frontend *fe, u32 * ucblocks) ++{ ++ struct m88dc2800_state *state = fe->demodulator_priv; ++ u8 u8Value; ++ ++ u8Value = ReadReg(state, 0xdf); ++ u8Value |= 0x02; /* Hold */ ++ WriteReg(state, 0xdf, u8Value); ++ ++ *ucblocks = ReadReg(state, 0xd5); ++ *ucblocks = (*ucblocks << 8) | ReadReg(state, 0xd4); ++ ++ u8Value &= 0xfe; /* Clear */ ++ WriteReg(state, 0xdf, u8Value); ++ u8Value &= 0xfc; /* Update */ ++ u8Value |= 0x01; ++ WriteReg(state, 0xdf, u8Value); ++ ++ return 0; ++} ++ ++static int m88dc2800_sleep(struct dvb_frontend *fe) ++{ ++ struct m88dc2800_state *state = fe->demodulator_priv; ++ ++ mt_fe_tn_sleep_tc2800(state); ++ state->freq = 0; ++ ++ return 0; ++} ++ ++static void m88dc2800_release(struct dvb_frontend *fe) ++{ ++ struct m88dc2800_state *state = fe->demodulator_priv; ++ kfree(state); ++} ++ ++static struct dvb_frontend_ops m88dc2800_ops; ++ ++struct dvb_frontend *m88dc2800_attach(const struct m88dc2800_config ++ *config, struct i2c_adapter *i2c) ++{ ++ struct m88dc2800_state *state = NULL; ++ ++ /* allocate memory for the internal state */ ++ state = kzalloc(sizeof(struct m88dc2800_state), GFP_KERNEL); ++ if (state == NULL) ++ goto error; ++ ++ /* setup the state */ ++ state->config = config; ++ state->i2c = i2c; ++ state->xtal = 28800; ++ ++ WriteReg(state, 0x80, 0x01); ++ M88DC2000RegInitial_TC2800(state); ++ M88DC2000SetTsType(state, state->config->ts_mode); ++ mt_fe_tn_init_tc2800(state); ++ ++ /* create dvb_frontend */ ++ memcpy(&state->frontend.ops, &m88dc2800_ops, ++ sizeof(struct dvb_frontend_ops)); ++ state->frontend.demodulator_priv = state; ++ return &state->frontend; ++ ++ error: ++ kfree(state); ++ return NULL; ++} ++ ++EXPORT_SYMBOL(m88dc2800_attach); ++ ++static struct dvb_frontend_ops m88dc2800_ops = { ++ .delsys = {SYS_DVBC_ANNEX_A, SYS_DVBC_ANNEX_C}, ++ .info = { ++ .name = "Montage M88DC2800 DVB-C", ++ .frequency_stepsize = 62500, ++ .frequency_min = 48000000, ++ .frequency_max = 870000000, ++ .symbol_rate_min = 870000, ++ .symbol_rate_max = 9000000, ++ .caps = FE_CAN_QAM_16 | FE_CAN_QAM_32 | FE_CAN_QAM_64 | ++ FE_CAN_QAM_128 | FE_CAN_QAM_256 | FE_CAN_FEC_AUTO ++ }, ++ .release = m88dc2800_release, ++ .init = m88dc2800_init, ++ .sleep = m88dc2800_sleep, ++ .set_frontend = m88dc2800_set_parameters, ++ .read_status = m88dc2800_read_status, ++ .read_ber = m88dc2800_read_ber, ++ .read_signal_strength = m88dc2800_read_signal_strength, ++ .read_snr = m88dc2800_read_snr, ++ .read_ucblocks = m88dc2800_read_ucblocks, ++}; ++ ++MODULE_DESCRIPTION("Montage DVB-C demodulator driver"); ++MODULE_AUTHOR("Max Nibble nibble.max@gmail.com"); ++MODULE_LICENSE("GPL"); ++MODULE_VERSION("1.00"); +diff -urN a/drivers/media/dvb-frontends/m88dc2800.h b/drivers/media/dvb-frontends/m88dc2800.h +--- a/drivers/media/dvb-frontends/m88dc2800.h 1970-01-01 08:00:00.000000000 +0800 ++++ b/drivers/media/dvb-frontends/m88dc2800.h 2013-01-26 14:57:32.000000000 +0800 +@@ -0,0 +1,43 @@ ++/* ++ M88DC2800/M88TC2800 - DVB-C demodulator and tuner from Montage ++ ++ Copyright (C) 2012 Max Nibble nibble.max@gmail.com ++ Copyright (C) 2011 Montage Technology - www.montage-tech.com ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++*/ ++ ++#ifndef M88DC2800_H ++#define M88DC2800_H ++ ++#include <linux/dvb/frontend.h> ++ ++struct m88dc2800_config { ++ u8 demod_address; ++ u8 ts_mode; ++}; ++ ++#if defined(CONFIG_DVB_M88DC2800) || (defined(CONFIG_DVB_M88DC2800_MODULE) && defined(MODULE)) ++extern struct dvb_frontend* m88dc2800_attach(const struct m88dc2800_config* config, ++ struct i2c_adapter* i2c); ++#else ++static inline struct dvb_frontend* m88dc2800_attach(const struct m88dc2800_config* config, ++ struct i2c_adapter* i2c) ++{ ++ printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); ++ return NULL; ++} ++#endif /* CONFIG_DVB_M88DC2800 */ ++#endif /* M88DC2800_H */ +diff -urN a/drivers/media/dvb-frontends/m88ds3103.c b/drivers/media/dvb-frontends/m88ds3103.c +--- a/drivers/media/dvb-frontends/m88ds3103.c 1970-01-01 08:00:00.000000000 +0800 ++++ b/drivers/media/dvb-frontends/m88ds3103.c 2013-01-30 12:33:47.000000000 +0800 +@@ -0,0 +1,1710 @@ ++/* ++ Montage Technology M88DS3103/M88TS2022 - DVBS/S2 Satellite demod/tuner driver ++ ++ Copyright (C) 2011 Max nibblenibble.max@gmail.com ++ Copyright (C) 2010 Montage Technology<www.montage-tech.com> ++ Copyright (C) 2009 Konstantin Dimitrov. ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++#include <linux/slab.h> ++#include <linux/kernel.h> ++#include <linux/module.h> ++#include <linux/moduleparam.h> ++#include <linux/init.h> ++#include <linux/firmware.h> ++ ++#include "dvb_frontend.h" ++#include "m88ds3103.h" ++#include "m88ds3103_priv.h" ++ ++static int debug; ++module_param(debug, int, 0644); ++MODULE_PARM_DESC(debug, "Activates frontend debugging (default:0)"); ++ ++#define dprintk(args...) \ ++ do { \ ++ if (debug) \ ++ printk(KERN_INFO "m88ds3103: " args); \ ++ } while (0) ++ ++/*demod register operations.*/ ++static int m88ds3103_writereg(struct m88ds3103_state *state, int reg, int data) ++{ ++ u8 buf[] = { reg, data }; ++ struct i2c_msg msg = { .addr = state->config->demod_address, ++ .flags = 0, .buf = buf, .len = 2 }; ++ int err; ++ ++ if (debug > 1) ++ printk("m88ds3103: %s: write reg 0x%02x, value 0x%02x\n", ++ __func__, reg, data); ++ ++ err = i2c_transfer(state->i2c, &msg, 1); ++ if (err != 1) { ++ printk(KERN_ERR "%s: writereg error(err == %i, reg == 0x%02x," ++ " value == 0x%02x)\n", __func__, err, reg, data); ++ return -EREMOTEIO; ++ } ++ return 0; ++} ++ ++static int m88ds3103_readreg(struct m88ds3103_state *state, u8 reg) ++{ ++ int ret; ++ u8 b0[] = { reg }; ++ u8 b1[] = { 0 }; ++ struct i2c_msg msg[] = { ++ { .addr = state->config->demod_address, .flags = 0, ++ .buf = b0, .len = 1 }, ++ { .addr = state->config->demod_address, .flags = I2C_M_RD, ++ .buf = b1, .len = 1 } ++ }; ++ ret = i2c_transfer(state->i2c, msg, 2); ++ ++ if (ret != 2) { ++ printk(KERN_ERR "%s: reg=0x%x (error=%d)\n", ++ __func__, reg, ret); ++ return ret; ++ } ++ ++ if (debug > 1) ++ printk(KERN_INFO "m88ds3103: read reg 0x%02x, value 0x%02x\n", ++ reg, b1[0]); ++ ++ return b1[0]; ++} ++ ++/*tuner register operations.*/ ++static int m88ds3103_tuner_writereg(struct m88ds3103_state *state, int reg, int data) ++{ ++ u8 buf[] = { reg, data }; ++ struct i2c_msg msg = { .addr = 0x60, ++ .flags = 0, .buf = buf, .len = 2 }; ++ int err; ++ ++ m88ds3103_writereg(state, 0x03, 0x11); ++ err = i2c_transfer(state->i2c, &msg, 1); ++ ++ if (err != 1) { ++ printk("%s: writereg error(err == %i, reg == 0x%02x," ++ " value == 0x%02x)\n", __func__, err, reg, data); ++ return -EREMOTEIO; ++ } ++ ++ return 0; ++} ++ ++static int m88ds3103_tuner_readreg(struct m88ds3103_state *state, u8 reg) ++{ ++ int ret; ++ u8 b0[] = { reg }; ++ u8 b1[] = { 0 }; ++ struct i2c_msg msg[] = { ++ { .addr = 0x60, .flags = 0, ++ .buf = b0, .len = 1 }, ++ { .addr = 0x60, .flags = I2C_M_RD, ++ .buf = b1, .len = 1 } ++ }; ++ ++ m88ds3103_writereg(state, 0x03, 0x11); ++ ret = i2c_transfer(state->i2c, msg, 2); ++ ++ if (ret != 2) { ++ printk(KERN_ERR "%s: reg=0x%x(error=%d)\n", __func__, reg, ret); ++ return ret; ++ } ++ ++ return b1[0]; ++} ++ ++/* Bulk demod I2C write, for firmware download. */ ++static int m88ds3103_writeregN(struct m88ds3103_state *state, int reg, ++ const u8 *data, u16 len) ++{ ++ int ret = -EREMOTEIO; ++ struct i2c_msg msg; ++ u8 *buf; ++ ++ buf = kmalloc(len + 1, GFP_KERNEL); ++ if (buf == NULL) { ++ printk("Unable to kmalloc\n"); ++ ret = -ENOMEM; ++ goto error; ++ } ++ ++ *(buf) = reg; ++ memcpy(buf + 1, data, len); ++ ++ msg.addr = state->config->demod_address; ++ msg.flags = 0; ++ msg.buf = buf; ++ msg.len = len + 1; ++ ++ if (debug > 1) ++ printk(KERN_INFO "m88ds3103: %s: write regN 0x%02x, len = %d\n", ++ __func__, reg, len); ++ ++ ret = i2c_transfer(state->i2c, &msg, 1); ++ if (ret != 1) { ++ printk(KERN_ERR "%s: writereg error(err == %i, reg == 0x%02x\n", ++ __func__, ret, reg); ++ ret = -EREMOTEIO; ++ } ++ ++error: ++ kfree(buf); ++ ++ return ret; ++} ++ ++static int m88ds3103_load_firmware(struct dvb_frontend *fe) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ const struct firmware *fw; ++ int i, ret = 0; ++ ++ dprintk("%s()\n", __func__); ++ ++ if (state->skip_fw_load) ++ return 0; ++ /* Load firmware */ ++ /* request the firmware, this will block until someone uploads it */ ++ if(state->demod_id == DS3000_ID){ ++ printk(KERN_INFO "%s: Waiting for firmware upload (%s)...\n", __func__, ++ DS3000_DEFAULT_FIRMWARE); ++ ret = request_firmware(&fw, DS3000_DEFAULT_FIRMWARE, ++ state->i2c->dev.parent); ++ }else if(state->demod_id == DS3103_ID){ ++ printk(KERN_INFO "%s: Waiting for firmware upload (%s)...\n", __func__, ++ DS3103_DEFAULT_FIRMWARE); ++ ret = request_firmware(&fw, DS3103_DEFAULT_FIRMWARE, ++ state->i2c->dev.parent); ++ } ++ ++ printk(KERN_INFO "%s: Waiting for firmware upload(2)...\n", __func__); ++ if (ret) { ++ printk(KERN_ERR "%s: No firmware uploaded (timeout or file not " ++ "found?)\n", __func__); ++ return ret; ++ } ++ ++ /* Make sure we don't recurse back through here during loading */ ++ state->skip_fw_load = 1; ++ ++ dprintk("Firmware is %zu bytes (%02x %02x .. %02x %02x)\n", ++ fw->size, ++ fw->data[0], ++ fw->data[1], ++ fw->data[fw->size - 2], ++ fw->data[fw->size - 1]); ++ ++ /* stop internal mcu. */ ++ m88ds3103_writereg(state, 0xb2, 0x01); ++ /* split firmware to download.*/ ++ for(i = 0; i < FW_DOWN_LOOP; i++){ ++ ret = m88ds3103_writeregN(state, 0xb0, &(fw->data[FW_DOWN_SIZE*i]), FW_DOWN_SIZE); ++ if(ret != 1) break; ++ } ++ /* start internal mcu. */ ++ if(ret == 1) ++ m88ds3103_writereg(state, 0xb2, 0x00); ++ ++ release_firmware(fw); ++ ++ dprintk("%s: Firmware upload %s\n", __func__, ++ ret == 1 ? "complete" : "failed"); ++ ++ if(ret == 1) ret = 0; ++ ++ /* Ensure firmware is always loaded if required */ ++ state->skip_fw_load = 0; ++ ++ return ret; ++} ++ ++ ++static int m88ds3103_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ u8 data; ++ ++ dprintk("%s(%d)\n", __func__, voltage); ++ ++ dprintk("m88ds3103:pin_ctrl = (%02x)\n", state->config->pin_ctrl); ++ ++ if(state->config->set_voltage) ++ state->config->set_voltage(fe, voltage); ++ ++ data = m88ds3103_readreg(state, 0xa2); ++ ++ if(state->config->pin_ctrl & 0x80){ /*If control pin is assigned.*/ ++ data &= ~0x03; /* bit0 V/H, bit1 off/on */ ++ if(state->config->pin_ctrl & 0x02) ++ data |= 0x02; ++ ++ switch (voltage) { ++ case SEC_VOLTAGE_18: ++ if((state->config->pin_ctrl & 0x01) == 0) ++ data |= 0x01; ++ break; ++ case SEC_VOLTAGE_13: ++ if(state->config->pin_ctrl & 0x01) ++ data |= 0x01; ++ break; ++ case SEC_VOLTAGE_OFF: ++ if(state->config->pin_ctrl & 0x02) ++ data &= ~0x02; ++ else ++ data |= 0x02; ++ break; ++ } ++ } ++ ++ m88ds3103_writereg(state, 0xa2, data); ++ ++ return 0; ++} ++ ++static int m88ds3103_read_status(struct dvb_frontend *fe, fe_status_t* status) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ int lock = 0; ++ ++ *status = 0; ++ ++ switch (state->delivery_system){ ++ case SYS_DVBS: ++ lock = m88ds3103_readreg(state, 0xd1); ++ dprintk("%s: SYS_DVBS status=%x.\n", __func__, lock); ++ ++ if ((lock & 0x07) == 0x07){ ++ /*if((m88ds3103_readreg(state, 0x0d) & 0x07) == 0x07)*/ ++ *status = FE_HAS_SIGNAL | FE_HAS_CARRIER ++ | FE_HAS_VITERBI | FE_HAS_SYNC | FE_HAS_LOCK; ++ ++ } ++ break; ++ case SYS_DVBS2: ++ lock = m88ds3103_readreg(state, 0x0d); ++ dprintk("%s: SYS_DVBS2 status=%x.\n", __func__, lock); ++ ++ if ((lock & 0x8f) == 0x8f) ++ *status = FE_HAS_SIGNAL | FE_HAS_CARRIER ++ | FE_HAS_VITERBI | FE_HAS_SYNC | FE_HAS_LOCK; ++ ++ break; ++ default: ++ break; ++ } ++ ++ return 0; ++} ++ ++static int m88ds3103_read_ber(struct dvb_frontend *fe, u32* ber) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ u8 tmp1, tmp2, tmp3; ++ u32 ldpc_frame_cnt, pre_err_packags, code_rate_fac = 0; ++ ++ dprintk("%s()\n", __func__); ++ ++ switch (state->delivery_system) { ++ case SYS_DVBS: ++ m88ds3103_writereg(state, 0xf9, 0x04); ++ tmp3 = m88ds3103_readreg(state, 0xf8); ++ if ((tmp3&0x10) == 0){ ++ tmp1 = m88ds3103_readreg(state, 0xf7); ++ tmp2 = m88ds3103_readreg(state, 0xf6); ++ tmp3 |= 0x10; ++ m88ds3103_writereg(state, 0xf8, tmp3); ++ state->preBer = (tmp1<<8) | tmp2; ++ } ++ break; ++ case SYS_DVBS2: ++ tmp1 = m88ds3103_readreg(state, 0x7e) & 0x0f; ++ switch(tmp1){ ++ case 0: code_rate_fac = 16008 - 80; break; ++ case 1: code_rate_fac = 21408 - 80; break; ++ case 2: code_rate_fac = 25728 - 80; break; ++ case 3: code_rate_fac = 32208 - 80; break; ++ case 4: code_rate_fac = 38688 - 80; break; ++ case 5: code_rate_fac = 43040 - 80; break; ++ case 6: code_rate_fac = 48408 - 80; break; ++ case 7: code_rate_fac = 51648 - 80; break; ++ case 8: code_rate_fac = 53840 - 80; break; ++ case 9: code_rate_fac = 57472 - 80; break; ++ case 10: code_rate_fac = 58192 - 80; break; ++ } ++ ++ tmp1 = m88ds3103_readreg(state, 0xd7) & 0xff; ++ tmp2 = m88ds3103_readreg(state, 0xd6) & 0xff; ++ tmp3 = m88ds3103_readreg(state, 0xd5) & 0xff; ++ ldpc_frame_cnt = (tmp1 << 16) | (tmp2 << 8) | tmp3; ++ ++ tmp1 = m88ds3103_readreg(state, 0xf8) & 0xff; ++ tmp2 = m88ds3103_readreg(state, 0xf7) & 0xff; ++ pre_err_packags = tmp1<<8 | tmp2; ++ ++ if (ldpc_frame_cnt > 1000){ ++ m88ds3103_writereg(state, 0xd1, 0x01); ++ m88ds3103_writereg(state, 0xf9, 0x01); ++ m88ds3103_writereg(state, 0xf9, 0x00); ++ m88ds3103_writereg(state, 0xd1, 0x00); ++ state->preBer = pre_err_packags; ++ } ++ break; ++ default: ++ break; ++ } ++ *ber = state->preBer; ++ ++ return 0; ++} ++ ++static int m88ds3103_read_signal_strength(struct dvb_frontend *fe, ++ u16 *signal_strength) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ u16 gain; ++ u8 gain1, gain2, gain3 = 0; ++ ++ dprintk("%s()\n", __func__); ++ ++ gain1 = m88ds3103_tuner_readreg(state, 0x3d) & 0x1f; ++ dprintk("%s: gain1 = 0x%02x \n", __func__, gain1); ++ ++ if (gain1 > 15) gain1 = 15; ++ gain2 = m88ds3103_tuner_readreg(state, 0x21) & 0x1f; ++ dprintk("%s: gain2 = 0x%02x \n", __func__, gain2); ++ ++ if(state->tuner_id == TS2022_ID){ ++ gain3 = (m88ds3103_tuner_readreg(state, 0x66)>>3) & 0x07; ++ dprintk("%s: gain3 = 0x%02x \n", __func__, gain3); ++ ++ if (gain2 > 16) gain2 = 16; ++ if (gain2 < 2) gain2 = 2; ++ if (gain3 > 6) gain3 = 6; ++ }else{ ++ if (gain2 > 13) gain2 = 13; ++ gain3 = 0; ++ } ++ ++ gain = gain1*23 + gain2*35 + gain3*29; ++ *signal_strength = 60000 - gain*55; ++ ++ return 0; ++} ++ ++ ++static int m88ds3103_read_snr(struct dvb_frontend *fe, u16 *p_snr) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ u8 val, npow1, npow2, spow1, cnt; ++ u16 tmp, snr; ++ u32 npow, spow, snr_total; ++ static const u16 mes_log10[] ={ ++ 0, 3010, 4771, 6021, 6990, 7781, 8451, 9031, 9542, 10000, ++ 10414, 10792, 11139, 11461, 11761, 12041, 12304, 12553, 12788, 13010, ++ 13222, 13424, 13617, 13802, 13979, 14150, 14314, 14472, 14624, 14771, ++ 14914, 15052, 15185, 15315, 15441, 15563, 15682, 15798, 15911, 16021, ++ 16128, 16232, 16335, 16435, 16532, 16628, 16721, 16812, 16902, 16990, ++ 17076, 17160, 17243, 17324, 17404, 17482, 17559, 17634, 17709, 17782, ++ 17853, 17924, 17993, 18062, 18129, 18195, 18261, 18325, 18388, 18451, ++ 18513, 18573, 18633, 18692, 18751, 18808, 18865, 18921, 18976, 19031 ++ }; ++ static const u16 mes_loge[] ={ ++ 0, 6931, 10986, 13863, 16094, 17918, 19459, 20794, 21972, 23026, ++ 23979, 24849, 25649, 26391, 27081, 27726, 28332, 28904, 29444, 29957, ++ 30445, 30910, 31355, 31781, 32189, 32581, 32958, 33322, 33673, 34012, ++ 34340, 34657, ++ }; ++ ++ dprintk("%s()\n", __func__); ++ ++ snr = 0; ++ ++ switch (state->delivery_system){ ++ case SYS_DVBS: ++ cnt = 10; snr_total = 0; ++ while(cnt > 0){ ++ val = m88ds3103_readreg(state, 0xff); ++ snr_total += val; ++ cnt--; ++ } ++ tmp = (u16)(snr_total/80); ++ if(tmp > 0){ ++ if (tmp > 32) tmp = 32; ++ snr = (mes_loge[tmp - 1] * 100) / 45; ++ }else{ ++ snr = 0; ++ } ++ break; ++ case SYS_DVBS2: ++ cnt = 10; npow = 0; spow = 0; ++ while(cnt >0){ ++ npow1 = m88ds3103_readreg(state, 0x8c) & 0xff; ++ npow2 = m88ds3103_readreg(state, 0x8d) & 0xff; ++ npow += (((npow1 & 0x3f) + (u16)(npow2 << 6)) >> 2); ++ ++ spow1 = m88ds3103_readreg(state, 0x8e) & 0xff; ++ spow += ((spow1 * spow1) >> 1); ++ cnt--; ++ } ++ npow /= 10; spow /= 10; ++ if(spow == 0){ ++ snr = 0; ++ }else if(npow == 0){ ++ snr = 19; ++ }else{ ++ if(spow > npow){ ++ tmp = (u16)(spow / npow); ++ if (tmp > 80) tmp = 80; ++ snr = mes_log10[tmp - 1]*3; ++ }else{ ++ tmp = (u16)(npow / spow); ++ if (tmp > 80) tmp = 80; ++ snr = -(mes_log10[tmp - 1] / 1000); ++ } ++ } ++ break; ++ default: ++ break; ++ } ++ *p_snr = snr; ++ ++ return 0; ++} ++ ++ ++static int m88ds3103_read_ucblocks(struct dvb_frontend *fe, u32 *ucblocks) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ u8 tmp1, tmp2, tmp3, data; ++ ++ dprintk("%s()\n", __func__); ++ ++ switch (state->delivery_system) { ++ case SYS_DVBS: ++ data = m88ds3103_readreg(state, 0xf8); ++ data |= 0x40; ++ m88ds3103_writereg(state, 0xf8, data); ++ tmp1 = m88ds3103_readreg(state, 0xf5); ++ tmp2 = m88ds3103_readreg(state, 0xf4); ++ *ucblocks = (tmp1 <<8) | tmp2; ++ data &= ~0x20; ++ m88ds3103_writereg(state, 0xf8, data); ++ data |= 0x20; ++ m88ds3103_writereg(state, 0xf8, data); ++ data &= ~0x40; ++ m88ds3103_writereg(state, 0xf8, data); ++ break; ++ case SYS_DVBS2: ++ tmp1 = m88ds3103_readreg(state, 0xda); ++ tmp2 = m88ds3103_readreg(state, 0xd9); ++ tmp3 = m88ds3103_readreg(state, 0xd8); ++ *ucblocks = (tmp1 <<16)|(tmp2 <<8)|tmp3; ++ data = m88ds3103_readreg(state, 0xd1); ++ data |= 0x01; ++ m88ds3103_writereg(state, 0xd1, data); ++ data &= ~0x01; ++ m88ds3103_writereg(state, 0xd1, data); ++ break; ++ default: ++ break; ++ } ++ return 0; ++} ++ ++static int m88ds3103_set_tone(struct dvb_frontend *fe, fe_sec_tone_mode_t tone) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ u8 data_a1, data_a2; ++ ++ dprintk("%s(%d)\n", __func__, tone); ++ if ((tone != SEC_TONE_ON) && (tone != SEC_TONE_OFF)) { ++ printk(KERN_ERR "%s: Invalid, tone=%d\n", __func__, tone); ++ return -EINVAL; ++ } ++ ++ data_a1 = m88ds3103_readreg(state, 0xa1); ++ data_a2 = m88ds3103_readreg(state, 0xa2); ++ if(state->demod_id == DS3103_ID) ++ data_a2 &= 0xdf; /* Normal mode */ ++ switch (tone) { ++ case SEC_TONE_ON: ++ dprintk("%s: SEC_TONE_ON\n", __func__); ++ data_a1 |= 0x04; ++ data_a1 &= ~0x03; ++ data_a1 &= ~0x40; ++ data_a2 &= ~0xc0; ++ break; ++ case SEC_TONE_OFF: ++ dprintk("%s: SEC_TONE_OFF\n", __func__); ++ data_a2 &= ~0xc0; ++ data_a2 |= 0x80; ++ break; ++ } ++ m88ds3103_writereg(state, 0xa2, data_a2); ++ m88ds3103_writereg(state, 0xa1, data_a1); ++ return 0; ++} ++ ++static int m88ds3103_send_diseqc_msg(struct dvb_frontend *fe, ++ struct dvb_diseqc_master_cmd *d) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ int i, ret = 0; ++ u8 tmp, time_out; ++ ++ /* Dump DiSEqC message */ ++ if (debug) { ++ printk(KERN_INFO "m88ds3103: %s(", __func__); ++ for (i = 0 ; i < d->msg_len ;) { ++ printk(KERN_INFO "0x%02x", d->msg[i]); ++ if (++i < d->msg_len) ++ printk(KERN_INFO ", "); ++ } ++ } ++ ++ tmp = m88ds3103_readreg(state, 0xa2); ++ tmp &= ~0xc0; ++ if(state->demod_id == DS3103_ID) ++ tmp &= ~0x20; ++ m88ds3103_writereg(state, 0xa2, tmp); ++ ++ for (i = 0; i < d->msg_len; i ++) ++ m88ds3103_writereg(state, (0xa3+i), d->msg[i]); ++ ++ tmp = m88ds3103_readreg(state, 0xa1); ++ tmp &= ~0x38; ++ tmp &= ~0x40; ++ tmp |= ((d->msg_len-1) << 3) | 0x07; ++ tmp &= ~0x80; ++ m88ds3103_writereg(state, 0xa1, tmp); ++ /* 1.5 * 9 * 8 = 108ms */ ++ time_out = 150; ++ while (time_out > 0){ ++ msleep(10); ++ time_out -= 10; ++ tmp = m88ds3103_readreg(state, 0xa1); ++ if ((tmp & 0x40) == 0) ++ break; ++ } ++ if (time_out == 0){ ++ tmp = m88ds3103_readreg(state, 0xa1); ++ tmp &= ~0x80; ++ tmp |= 0x40; ++ m88ds3103_writereg(state, 0xa1, tmp); ++ ret = 1; ++ } ++ tmp = m88ds3103_readreg(state, 0xa2); ++ tmp &= ~0xc0; ++ tmp |= 0x80; ++ m88ds3103_writereg(state, 0xa2, tmp); ++ return ret; ++} ++ ++ ++static int m88ds3103_diseqc_send_burst(struct dvb_frontend *fe, ++ fe_sec_mini_cmd_t burst) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ u8 val, time_out; ++ ++ dprintk("%s()\n", __func__); ++ ++ val = m88ds3103_readreg(state, 0xa2); ++ val &= ~0xc0; ++ if(state->demod_id == DS3103_ID) ++ val &= 0xdf; /* Normal mode */ ++ m88ds3103_writereg(state, 0xa2, val); ++ /* DiSEqC burst */ ++ if (burst == SEC_MINI_B) ++ m88ds3103_writereg(state, 0xa1, 0x01); ++ else ++ m88ds3103_writereg(state, 0xa1, 0x02); ++ ++ msleep(13); ++ ++ time_out = 5; ++ do{ ++ val = m88ds3103_readreg(state, 0xa1); ++ if ((val & 0x40) == 0) ++ break; ++ msleep(1); ++ time_out --; ++ } while (time_out > 0); ++ ++ val = m88ds3103_readreg(state, 0xa2); ++ val &= ~0xc0; ++ val |= 0x80; ++ m88ds3103_writereg(state, 0xa2, val); ++ ++ return 0; ++} ++ ++static void m88ds3103_release(struct dvb_frontend *fe) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ ++ dprintk("%s\n", __func__); ++ kfree(state); ++} ++ ++static int m88ds3103_check_id(struct m88ds3103_state *state) ++{ ++ int val_00, val_01; ++ ++ /*check demod id*/ ++ val_01 = m88ds3103_readreg(state, 0x01); ++ printk(KERN_INFO "DS3000 chip version: %x attached.\n", val_01); ++ ++ if(val_01 == 0xD0) ++ state->demod_id = DS3103_ID; ++ else if(val_01 == 0xC0) ++ state->demod_id = DS3000_ID; ++ else ++ state->demod_id = UNKNOW_ID; ++ ++ /*check tuner id*/ ++ val_00 = m88ds3103_tuner_readreg(state, 0x00); ++ printk(KERN_INFO "TS202x chip version[1]: %x attached.\n", val_00); ++ val_00 &= 0x03; ++ if(val_00 == 0) ++ { ++ m88ds3103_tuner_writereg(state, 0x00, 0x01); ++ msleep(3); ++ } ++ m88ds3103_tuner_writereg(state, 0x00, 0x03); ++ msleep(5); ++ ++ val_00 = m88ds3103_tuner_readreg(state, 0x00); ++ printk(KERN_INFO "TS202x chip version[2]: %x attached.\n", val_00); ++ val_00 &= 0xff; ++ if((val_00 == 0x01) || (val_00 == 0x41) || (val_00 == 0x81)) ++ state->tuner_id = TS2020_ID; ++ else if(((val_00 & 0xc0)== 0xc0) || (val_00 == 0x83)) ++ state->tuner_id = TS2022_ID; ++ else ++ state->tuner_id = UNKNOW_ID; ++ ++ return state->demod_id; ++} ++ ++static struct dvb_frontend_ops m88ds3103_ops; ++static int m88ds3103_initilaze(struct dvb_frontend *fe); ++ ++struct dvb_frontend *m88ds3103_attach(const struct m88ds3103_config *config, ++ struct i2c_adapter *i2c) ++{ ++ struct m88ds3103_state *state = NULL; ++ ++ dprintk("%s\n", __func__); ++ ++ /* allocate memory for the internal state */ ++ state = kzalloc(sizeof(struct m88ds3103_state), GFP_KERNEL); ++ if (state == NULL) { ++ printk(KERN_ERR "Unable to kmalloc\n"); ++ goto error2; ++ } ++ ++ state->config = config; ++ state->i2c = i2c; ++ state->preBer = 0xffff; ++ state->delivery_system = SYS_DVBS; /*Default to DVB-S.*/ ++ ++ /* check demod id */ ++ if(m88ds3103_check_id(state) == UNKNOW_ID){ ++ printk(KERN_ERR "Unable to find Montage chip\n"); ++ goto error3; ++ } ++ ++ memcpy(&state->frontend.ops, &m88ds3103_ops, ++ sizeof(struct dvb_frontend_ops)); ++ state->frontend.demodulator_priv = state; ++ ++ m88ds3103_initilaze(&state->frontend); ++ ++ return &state->frontend; ++ ++error3: ++ kfree(state); ++error2: ++ return NULL; ++} ++EXPORT_SYMBOL(m88ds3103_attach); ++ ++static int m88ds3103_set_carrier_offset(struct dvb_frontend *fe, ++ s32 carrier_offset_khz) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ s32 tmp; ++ ++ tmp = carrier_offset_khz; ++ tmp *= 65536; ++ ++ tmp = (2*tmp + MT_FE_MCLK_KHZ) / (2*MT_FE_MCLK_KHZ); ++ ++ if (tmp < 0) ++ tmp += 65536; ++ ++ m88ds3103_writereg(state, 0x5f, tmp >> 8); ++ m88ds3103_writereg(state, 0x5e, tmp & 0xff); ++ ++ return 0; ++} ++ ++static int m88ds3103_set_symrate(struct dvb_frontend *fe) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ struct dtv_frontend_properties *c = &fe->dtv_property_cache; ++ u16 value; ++ ++ value = (((c->symbol_rate / 1000) << 15) + (MT_FE_MCLK_KHZ / 4)) / (MT_FE_MCLK_KHZ / 2); ++ m88ds3103_writereg(state, 0x61, value & 0x00ff); ++ m88ds3103_writereg(state, 0x62, (value & 0xff00) >> 8); ++ ++ return 0; ++} ++ ++static int m88ds3103_set_CCI(struct dvb_frontend *fe) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ u8 tmp; ++ ++ tmp = m88ds3103_readreg(state, 0x56); ++ tmp &= ~0x01; ++ m88ds3103_writereg(state, 0x56, tmp); ++ ++ tmp = m88ds3103_readreg(state, 0x76); ++ tmp &= ~0x80; ++ m88ds3103_writereg(state, 0x76, tmp); ++ ++ return 0; ++} ++ ++static int m88ds3103_init_reg(struct m88ds3103_state *state, const u8 *p_reg_tab, u32 size) ++{ ++ u32 i; ++ ++ for(i = 0; i < size; i+=2) ++ m88ds3103_writereg(state, p_reg_tab[i], p_reg_tab[i+1]); ++ ++ return 0; ++} ++ ++static int m88ds3103_get_locked_sym_rate(struct m88ds3103_state *state, u32 *sym_rate_KSs) ++{ ++ u16 tmp; ++ u32 sym_rate_tmp; ++ u8 val_0x6d, val_0x6e; ++ ++ val_0x6d = m88ds3103_readreg(state, 0x6d); ++ val_0x6e = m88ds3103_readreg(state, 0x6e); ++ ++ tmp = (u16)((val_0x6e<<8) | val_0x6d); ++ ++ sym_rate_tmp = (u32)(tmp * MT_FE_MCLK_KHZ); ++ sym_rate_tmp = (u32)(sym_rate_tmp / (1<<16)); ++ *sym_rate_KSs = sym_rate_tmp; ++ ++ return 0; ++} ++ ++static int m88ds3103_get_channel_info(struct m88ds3103_state *state, u8 *p_mode, u8 *p_coderate) ++{ ++ u8 tmp, val_0x7E; ++ ++ if(state->delivery_system == SYS_DVBS2){ ++ val_0x7E = m88ds3103_readreg(state, 0x7e); ++ tmp = (u8)((val_0x7E&0xC0) >> 6); ++ *p_mode = tmp; ++ tmp = (u8)(val_0x7E & 0x0f); ++ *p_coderate = tmp; ++ } else { ++ *p_mode = 0; ++ tmp = m88ds3103_readreg(state, 0xe6); ++ tmp = (u8)(tmp >> 5); ++ *p_coderate = tmp; ++ } ++ ++ return 0; ++} ++ ++static int m88ds3103_set_clock_ratio(struct m88ds3103_state *state) ++{ ++ u8 val, mod_fac, tmp1, tmp2; ++ u32 input_datarate, locked_sym_rate_KSs; ++ u32 MClk_KHz = 96000; ++ u8 mod_mode, code_rate, divid_ratio = 0; ++ ++ locked_sym_rate_KSs = 0; ++ m88ds3103_get_locked_sym_rate(state, &locked_sym_rate_KSs); ++ if(locked_sym_rate_KSs == 0) ++ return 0; ++ ++ m88ds3103_get_channel_info(state, &mod_mode, &code_rate); ++ ++ if (state->delivery_system == SYS_DVBS2) ++ { ++ switch(mod_mode) { ++ case 1: mod_fac = 3; break; ++ case 2: mod_fac = 4; break; ++ case 3: mod_fac = 5; break; ++ default: mod_fac = 2; break; ++ } ++ ++ switch(code_rate) { ++ case 0: input_datarate = locked_sym_rate_KSs*mod_fac/8/4; break; ++ case 1: input_datarate = locked_sym_rate_KSs*mod_fac/8/3; break; ++ case 2: input_datarate = locked_sym_rate_KSs*mod_fac*2/8/5; break; ++ case 3: input_datarate = locked_sym_rate_KSs*mod_fac/8/2; break; ++ case 4: input_datarate = locked_sym_rate_KSs*mod_fac*3/8/5; break; ++ case 5: input_datarate = locked_sym_rate_KSs*mod_fac*2/8/3; break; ++ case 6: input_datarate = locked_sym_rate_KSs*mod_fac*3/8/4; break; ++ case 7: input_datarate = locked_sym_rate_KSs*mod_fac*4/8/5; break; ++ case 8: input_datarate = locked_sym_rate_KSs*mod_fac*5/8/6; break; ++ case 9: input_datarate = locked_sym_rate_KSs*mod_fac*8/8/9; break; ++ case 10: input_datarate = locked_sym_rate_KSs*mod_fac*9/8/10; break; ++ default: input_datarate = locked_sym_rate_KSs*mod_fac*2/8/3; break; ++ } ++ ++ if(state->demod_id == DS3000_ID) ++ input_datarate = input_datarate * 115 / 100; ++ ++ if(input_datarate < 4800) {tmp1 = 15;tmp2 = 15;} //4.8MHz TS clock ++ else if(input_datarate < 4966) {tmp1 = 14;tmp2 = 15;} //4.966MHz TS clock ++ else if(input_datarate < 5143) {tmp1 = 14;tmp2 = 14;} //5.143MHz TS clock ++ else if(input_datarate < 5333) {tmp1 = 13;tmp2 = 14;} //5.333MHz TS clock ++ else if(input_datarate < 5538) {tmp1 = 13;tmp2 = 13;} //5.538MHz TS clock ++ else if(input_datarate < 5760) {tmp1 = 12;tmp2 = 13;} //5.76MHz TS clock allan 0809 ++ else if(input_datarate < 6000) {tmp1 = 12;tmp2 = 12;} //6MHz TS clock ++ else if(input_datarate < 6260) {tmp1 = 11;tmp2 = 12;} //6.26MHz TS clock ++ else if(input_datarate < 6545) {tmp1 = 11;tmp2 = 11;} //6.545MHz TS clock ++ else if(input_datarate < 6857) {tmp1 = 10;tmp2 = 11;} //6.857MHz TS clock ++ else if(input_datarate < 7200) {tmp1 = 10;tmp2 = 10;} //7.2MHz TS clock ++ else if(input_datarate < 7578) {tmp1 = 9;tmp2 = 10;} //7.578MHz TS clock ++ else if(input_datarate < 8000) {tmp1 = 9;tmp2 = 9;} //8MHz TS clock ++ else if(input_datarate < 8470) {tmp1 = 8;tmp2 = 9;} //8.47MHz TS clock ++ else if(input_datarate < 9000) {tmp1 = 8;tmp2 = 8;} //9MHz TS clock ++ else if(input_datarate < 9600) {tmp1 = 7;tmp2 = 8;} //9.6MHz TS clock ++ else if(input_datarate < 10285) {tmp1 = 7;tmp2 = 7;} //10.285MHz TS clock ++ else if(input_datarate < 12000) {tmp1 = 6;tmp2 = 6;} //12MHz TS clock ++ else if(input_datarate < 14400) {tmp1 = 5;tmp2 = 5;} //14.4MHz TS clock ++ else if(input_datarate < 18000) {tmp1 = 4;tmp2 = 4;} //18MHz TS clock ++ else {tmp1 = 3;tmp2 = 3;} //24MHz TS clock ++ ++ if(state->demod_id == DS3000_ID) { ++ val = (u8)((tmp1<<4) + tmp2); ++ m88ds3103_writereg(state, 0xfe, val); ++ } else { ++ tmp1 = m88ds3103_readreg(state, 0x22); ++ tmp2 = m88ds3103_readreg(state, 0x24); ++ ++ tmp1 >>= 6; ++ tmp1 &= 0x03; ++ tmp2 >>= 6; ++ tmp2 &= 0x03; ++ ++ if((tmp1 == 0x00) && (tmp2 == 0x01)) ++ MClk_KHz = 144000; ++ else if((tmp1 == 0x00) && (tmp2 == 0x03)) ++ MClk_KHz = 72000; ++ else if((tmp1 == 0x01) && (tmp2 == 0x01)) ++ MClk_KHz = 115200; ++ else if((tmp1 == 0x02) && (tmp2 == 0x01)) ++ MClk_KHz = 96000; ++ else if((tmp1 == 0x03) && (tmp2 == 0x00)) ++ MClk_KHz = 192000; ++ else ++ return 0; ++ ++ if(input_datarate < 5200) /*Max. 2011-12-23 11:55*/ ++ input_datarate = 5200; ++ ++ if(input_datarate != 0) ++ divid_ratio = (u8)(MClk_KHz / input_datarate); ++ else ++ divid_ratio = 0xFF; ++ ++ if(divid_ratio > 128) ++ divid_ratio = 128; ++ ++ if(divid_ratio < 2) ++ divid_ratio = 2; ++ ++ tmp1 = (u8)(divid_ratio / 2); ++ tmp2 = (u8)(divid_ratio / 2); ++ ++ if((divid_ratio % 2) != 0) ++ tmp2 += 1; ++ ++ tmp1 -= 1; ++ tmp2 -= 1; ++ ++ tmp1 &= 0x3f; ++ tmp2 &= 0x3f; ++ ++ val = m88ds3103_readreg(state, 0xfe); ++ val &= 0xF0; ++ val |= (tmp2 >> 2) & 0x0f; ++ m88ds3103_writereg(state, 0xfe, val); ++ ++ val = (u8)((tmp2 & 0x03) << 6); ++ val |= tmp1; ++ m88ds3103_writereg(state, 0xea, val); ++ } ++ } else { ++ mod_fac = 2; ++ ++ switch(code_rate) { ++ case 4: input_datarate = locked_sym_rate_KSs*mod_fac/2/8; break; ++ case 3: input_datarate = locked_sym_rate_KSs*mod_fac*2/3/8; break; ++ case 2: input_datarate = locked_sym_rate_KSs*mod_fac*3/4/8; break; ++ case 1: input_datarate = locked_sym_rate_KSs*mod_fac*5/6/8; break; ++ case 0: input_datarate = locked_sym_rate_KSs*mod_fac*7/8/8; break; ++ default: input_datarate = locked_sym_rate_KSs*mod_fac*3/4/8; break; ++ } ++ ++ if(state->demod_id == DS3000_ID) ++ input_datarate = input_datarate * 115 / 100; ++ ++ if(input_datarate < 6857) {tmp1 = 7;tmp2 = 7;} //6.857MHz TS clock ++ else if(input_datarate < 7384) {tmp1 = 6;tmp2 = 7;} //7.384MHz TS clock ++ else if(input_datarate < 8000) {tmp1 = 6;tmp2 = 6;} //8MHz TS clock ++ else if(input_datarate < 8727) {tmp1 = 5;tmp2 = 6;} //8.727MHz TS clock ++ else if(input_datarate < 9600) {tmp1 = 5;tmp2 = 5;} //9.6MHz TS clock ++ else if(input_datarate < 10666) {tmp1 = 4;tmp2 = 5;} //10.666MHz TS clock ++ else if(input_datarate < 12000) {tmp1 = 4;tmp2 = 4;} //12MHz TS clock ++ else if(input_datarate < 13714) {tmp1 = 3;tmp2 = 4;} //13.714MHz TS clock ++ else if(input_datarate < 16000) {tmp1 = 3;tmp2 = 3;} //16MHz TS clock ++ else if(input_datarate < 19200) {tmp1 = 2;tmp2 = 3;} //19.2MHz TS clock ++ else {tmp1 = 2;tmp2 = 2;} //24MHz TS clock ++ ++ if(state->demod_id == DS3000_ID) { ++ val = m88ds3103_readreg(state, 0xfe); ++ val &= 0xc0; ++ val |= ((u8)((tmp1<<3) + tmp2)); ++ m88ds3103_writereg(state, 0xfe, val); ++ } else { ++ if(input_datarate < 5200) /*Max. 2011-12-23 11:55*/ ++ input_datarate = 5200; ++ ++ if(input_datarate != 0) ++ divid_ratio = (u8)(MClk_KHz / input_datarate); ++ else ++ divid_ratio = 0xFF; ++ ++ if(divid_ratio > 128) ++ divid_ratio = 128; ++ ++ if(divid_ratio < 2) ++ divid_ratio = 2; ++ ++ tmp1 = (u8)(divid_ratio / 2); ++ tmp2 = (u8)(divid_ratio / 2); ++ ++ if((divid_ratio % 2) != 0) ++ tmp2 += 1; ++ ++ tmp1 -= 1; ++ tmp2 -= 1; ++ ++ tmp1 &= 0x3f; ++ tmp2 &= 0x3f; ++ ++ val = m88ds3103_readreg(state, 0xfe); ++ val &= 0xF0; ++ val |= (tmp2 >> 2) & 0x0f; ++ m88ds3103_writereg(state, 0xfe, val); ++ ++ val = (u8)((tmp2 & 0x03) << 6); ++ val |= tmp1; ++ m88ds3103_writereg(state, 0xea, val); ++ } ++ } ++ return 0; ++} ++ ++static int m88ds3103_demod_connect(struct dvb_frontend *fe, s32 carrier_offset_khz) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ struct dtv_frontend_properties *c = &fe->dtv_property_cache; ++ u16 value; ++ u8 val1,val2,data; ++ ++ dprintk("connect delivery system = %d\n", state->delivery_system); ++ ++ /* ds3000 global reset */ ++ m88ds3103_writereg(state, 0x07, 0x80); ++ m88ds3103_writereg(state, 0x07, 0x00); ++ /* ds3000 build-in uC reset */ ++ m88ds3103_writereg(state, 0xb2, 0x01); ++ /* ds3000 software reset */ ++ m88ds3103_writereg(state, 0x00, 0x01); ++ ++ switch (state->delivery_system) { ++ case SYS_DVBS: ++ /* initialise the demod in DVB-S mode */ ++ if(state->demod_id == DS3000_ID){ ++ m88ds3103_init_reg(state, ds3000_dvbs_init_tab, sizeof(ds3000_dvbs_init_tab)); ++ ++ value = m88ds3103_readreg(state, 0xfe); ++ value &= 0xc0; ++ value |= 0x1b; ++ m88ds3103_writereg(state, 0xfe, value); ++ ++ if(state->config->ci_mode) ++ val1 = 0x80; ++ else if(state->config->ts_mode) ++ val1 = 0x60; ++ else ++ val1 = 0x20; ++ m88ds3103_writereg(state, 0xfd, val1); ++ ++ }else if(state->demod_id == DS3103_ID){ ++ m88ds3103_init_reg(state, ds3103_dvbs_init_tab, sizeof(ds3103_dvbs_init_tab)); ++ ++ /* set ts clock */ ++ if(state->config->ci_mode == 2){ ++ val1 = 6; val2 = 6; ++ }else if(state->config->ts_mode == 0) { ++ val1 = 3; val2 = 3; ++ }else{ ++ val1 = 0; val2 = 0; ++ } ++ val1 -= 1; val2 -= 1; ++ val1 &= 0x3f; val2 &= 0x3f; ++ data = m88ds3103_readreg(state, 0xfe); ++ data &= 0xf0; ++ data |= (val2 >> 2) & 0x0f; ++ m88ds3103_writereg(state, 0xfe, data); ++ data = (val2 & 0x03) << 6; ++ data |= val1; ++ m88ds3103_writereg(state, 0xea, data); ++ ++ m88ds3103_writereg(state, 0x4d, 0xfd & m88ds3103_readreg(state, 0x4d)); ++ m88ds3103_writereg(state, 0x30, 0xef & m88ds3103_readreg(state, 0x30)); ++ ++ /* set master clock */ ++ val1 = m88ds3103_readreg(state, 0x22); ++ val2 = m88ds3103_readreg(state, 0x24); ++ ++ val1 &= 0x3f; ++ val2 &= 0x3f; ++ val1 |= 0x80; ++ val2 |= 0x40; ++ ++ m88ds3103_writereg(state, 0x22, val1); ++ m88ds3103_writereg(state, 0x24, val2); ++ ++ if(state->config->ci_mode) ++ val1 = 0x03; ++ else if(state->config->ts_mode) ++ val1 = 0x06; ++ else ++ val1 = 0x42; ++ m88ds3103_writereg(state, 0xfd, val1); ++ } ++ break; ++ case SYS_DVBS2: ++ /* initialise the demod in DVB-S2 mode */ ++ if(state->demod_id == DS3000_ID){ ++ m88ds3103_init_reg(state, ds3000_dvbs2_init_tab, sizeof(ds3000_dvbs2_init_tab)); ++ ++ if (c->symbol_rate >= 30000000) ++ m88ds3103_writereg(state, 0xfe, 0x54); ++ else ++ m88ds3103_writereg(state, 0xfe, 0x98); ++ ++ }else if(state->demod_id == DS3103_ID){ ++ m88ds3103_init_reg(state, ds3103_dvbs2_init_tab, sizeof(ds3103_dvbs2_init_tab)); ++ ++ /* set ts clock */ ++ if(state->config->ci_mode == 2){ ++ val1 = 6; val2 = 6; ++ }else if(state->config->ts_mode == 0){ ++ val1 = 5; val2 = 4; ++ }else{ ++ val1 = 0; val2 = 0; ++ } ++ val1 -= 1; val2 -= 1; ++ val1 &= 0x3f; val2 &= 0x3f; ++ data = m88ds3103_readreg(state, 0xfe); ++ data &= 0xf0; ++ data |= (val2 >> 2) & 0x0f; ++ m88ds3103_writereg(state, 0xfe, data); ++ data = (val2 & 0x03) << 6; ++ data |= val1; ++ m88ds3103_writereg(state, 0xea, data); ++ ++ m88ds3103_writereg(state, 0x4d, 0xfd & m88ds3103_readreg(state, 0x4d)); ++ m88ds3103_writereg(state, 0x30, 0xef & m88ds3103_readreg(state, 0x30)); ++ ++ /* set master clock */ ++ val1 = m88ds3103_readreg(state, 0x22); ++ val2 = m88ds3103_readreg(state, 0x24); ++ ++ val1 &= 0x3f; ++ val2 &= 0x3f; ++ if((state->config->ci_mode == 2) || (state->config->ts_mode == 1)){ ++ val1 |= 0x80; ++ val2 |= 0x40; ++ }else{ ++ if (c->symbol_rate >= 28000000){ ++ val1 |= 0xc0; ++ }else if (c->symbol_rate >= 18000000){ ++ val2 |= 0x40; ++ }else{ ++ val1 |= 0x80; ++ val2 |= 0x40; ++ } ++ } ++ m88ds3103_writereg(state, 0x22, val1); ++ m88ds3103_writereg(state, 0x24, val2); ++ } ++ ++ if(state->config->ci_mode) ++ val1 = 0x03; ++ else if(state->config->ts_mode) ++ val1 = 0x06; ++ else ++ val1 = 0x42; ++ m88ds3103_writereg(state, 0xfd, val1); ++ ++ break; ++ default: ++ return 1; ++ } ++ /* disable 27MHz clock output */ ++ m88ds3103_writereg(state, 0x29, 0x80); ++ /* enable ac coupling */ ++ m88ds3103_writereg(state, 0x25, 0x8a); ++ ++ if ((c->symbol_rate / 1000) <= 3000){ ++ m88ds3103_writereg(state, 0xc3, 0x08); /* 8 * 32 * 100 / 64 = 400*/ ++ m88ds3103_writereg(state, 0xc8, 0x20); ++ m88ds3103_writereg(state, 0xc4, 0x08); /* 8 * 0 * 100 / 128 = 0*/ ++ m88ds3103_writereg(state, 0xc7, 0x00); ++ }else if((c->symbol_rate / 1000) <= 10000){ ++ m88ds3103_writereg(state, 0xc3, 0x08); /* 8 * 16 * 100 / 64 = 200*/ ++ m88ds3103_writereg(state, 0xc8, 0x10); ++ m88ds3103_writereg(state, 0xc4, 0x08); /* 8 * 0 * 100 / 128 = 0*/ ++ m88ds3103_writereg(state, 0xc7, 0x00); ++ }else{ ++ m88ds3103_writereg(state, 0xc3, 0x08); /* 8 * 6 * 100 / 64 = 75*/ ++ m88ds3103_writereg(state, 0xc8, 0x06); ++ m88ds3103_writereg(state, 0xc4, 0x08); /* 8 * 0 * 100 / 128 = 0*/ ++ m88ds3103_writereg(state, 0xc7, 0x00); ++ } ++ ++ m88ds3103_set_symrate(fe); ++ ++ m88ds3103_set_CCI(fe); ++ ++ m88ds3103_set_carrier_offset(fe, carrier_offset_khz); ++ ++ /* ds3000 out of software reset */ ++ m88ds3103_writereg(state, 0x00, 0x00); ++ /* start ds3000 build-in uC */ ++ m88ds3103_writereg(state, 0xb2, 0x00); ++ ++ return 0; ++} ++ ++static int m88ds3103_set_frontend(struct dvb_frontend *fe) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ struct dtv_frontend_properties *c = &fe->dtv_property_cache; ++ ++ int i; ++ fe_status_t status; ++ u8 lpf_mxdiv, mlpf_max, mlpf_min, nlpf, div4, capCode, changePLL; ++ s32 offset_khz, lpf_offset_KHz; ++ u16 value, ndiv, lpf_coeff; ++ u32 f3db, gdiv28, realFreq; ++ u8 RFgain; ++ ++ dprintk("%s() ", __func__); ++ dprintk("c frequency = %d\n", c->frequency); ++ dprintk("symbol rate = %d\n", c->symbol_rate); ++ dprintk("delivery system = %d\n", c->delivery_system); ++ ++ realFreq = c->frequency; ++ lpf_offset_KHz = 0; ++ if(c->symbol_rate < 5000000){ ++ lpf_offset_KHz = FREQ_OFFSET_AT_SMALL_SYM_RATE_KHz; ++ realFreq += FREQ_OFFSET_AT_SMALL_SYM_RATE_KHz; ++ } ++ ++ if (state->config->set_ts_params) ++ state->config->set_ts_params(fe, 0); ++ ++ div4 = 0; ++ RFgain = 0; ++ if(state->tuner_id == TS2022_ID){ ++ m88ds3103_tuner_writereg(state, 0x10, 0x0a); ++ m88ds3103_tuner_writereg(state, 0x11, 0x40); ++ if (realFreq < 1103000) { ++ m88ds3103_tuner_writereg(state, 0x10, 0x1b); ++ div4 = 1; ++ ndiv = (realFreq * (6 + 8) * 4)/MT_FE_CRYSTAL_KHZ; ++ }else { ++ ndiv = (realFreq * (6 + 8) * 2)/MT_FE_CRYSTAL_KHZ; ++ } ++ ndiv = ndiv + ndiv%2; ++ if(ndiv < 4095) ++ ndiv = ndiv - 1024; ++ else if (ndiv < 6143) ++ ndiv = ndiv + 1024; ++ else ++ ndiv = ndiv + 3072; ++ ++ m88ds3103_tuner_writereg(state, 0x01, (ndiv & 0x3f00) >> 8); ++ }else{ ++ m88ds3103_tuner_writereg(state, 0x10, 0x00); ++ if (realFreq < 1146000){ ++ m88ds3103_tuner_writereg(state, 0x10, 0x11); ++ div4 = 1; ++ ndiv = (realFreq * (6 + 8) * 4) / MT_FE_CRYSTAL_KHZ; ++ }else{ ++ m88ds3103_tuner_writereg(state, 0x10, 0x01); ++ ndiv = (realFreq * (6 + 8) * 2) / MT_FE_CRYSTAL_KHZ; ++ } ++ ndiv = ndiv + ndiv%2; ++ ndiv = ndiv - 1024; ++ m88ds3103_tuner_writereg(state, 0x01, (ndiv>>8)&0x0f); ++ } ++ /* set pll */ ++ m88ds3103_tuner_writereg(state, 0x02, ndiv & 0x00ff); ++ m88ds3103_tuner_writereg(state, 0x03, 0x06); ++ m88ds3103_tuner_writereg(state, 0x51, 0x0f); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x10); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ ++ if(state->tuner_id == TS2022_ID){ ++ if(( realFreq >= 1650000 ) && (realFreq <= 1850000)){ ++ msleep(5); ++ value = m88ds3103_tuner_readreg(state, 0x14); ++ value &= 0x7f; ++ if(value < 64){ ++ m88ds3103_tuner_writereg(state, 0x10, 0x82); ++ m88ds3103_tuner_writereg(state, 0x11, 0x6f); ++ ++ m88ds3103_tuner_writereg(state, 0x51, 0x0f); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x10); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ } ++ } ++ msleep(5); ++ value = m88ds3103_tuner_readreg(state, 0x14); ++ value &= 0x1f; ++ ++ if(value > 19){ ++ value = m88ds3103_tuner_readreg(state, 0x10); ++ value &= 0x1d; ++ m88ds3103_tuner_writereg(state, 0x10, value); ++ } ++ }else{ ++ msleep(5); ++ value = m88ds3103_tuner_readreg(state, 0x66); ++ changePLL = (((value & 0x80) >> 7) != div4); ++ ++ if(changePLL){ ++ m88ds3103_tuner_writereg(state, 0x10, 0x11); ++ div4 = 1; ++ ndiv = (realFreq * (6 + 8) * 4)/MT_FE_CRYSTAL_KHZ; ++ ndiv = ndiv + ndiv%2; ++ ndiv = ndiv - 1024; ++ ++ m88ds3103_tuner_writereg(state, 0x01, (ndiv>>8) & 0x0f); ++ m88ds3103_tuner_writereg(state, 0x02, ndiv & 0xff); ++ ++ m88ds3103_tuner_writereg(state, 0x51, 0x0f); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x10); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ } ++ } ++ /*set the RF gain*/ ++ if(state->tuner_id == TS2020_ID) ++ m88ds3103_tuner_writereg(state, 0x60, 0x79); ++ ++ m88ds3103_tuner_writereg(state, 0x51, 0x17); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x08); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ msleep(5); ++ ++ if(state->tuner_id == TS2020_ID){ ++ RFgain = m88ds3103_tuner_readreg(state, 0x3d); ++ RFgain &= 0x0f; ++ if(RFgain < 15){ ++ if(RFgain < 4) ++ RFgain = 0; ++ else ++ RFgain = RFgain -3; ++ value = ((RFgain << 3) | 0x01) & 0x79; ++ m88ds3103_tuner_writereg(state, 0x60, value); ++ m88ds3103_tuner_writereg(state, 0x51, 0x17); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x08); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ } ++ } ++ ++ /* set the LPF */ ++ if(state->tuner_id == TS2022_ID){ ++ m88ds3103_tuner_writereg(state, 0x25, 0x00); ++ m88ds3103_tuner_writereg(state, 0x27, 0x70); ++ m88ds3103_tuner_writereg(state, 0x41, 0x09); ++ m88ds3103_tuner_writereg(state, 0x08, 0x0b); ++ } ++ ++ f3db = ((c->symbol_rate / 1000) *135) / 200 + 2000; ++ f3db += lpf_offset_KHz; ++ if (f3db < 7000) ++ f3db = 7000; ++ if (f3db > 40000) ++ f3db = 40000; ++ ++ gdiv28 = (MT_FE_CRYSTAL_KHZ / 1000 * 1694 + 500) / 1000; ++ m88ds3103_tuner_writereg(state, 0x04, gdiv28 & 0xff); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1b); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x04); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ msleep(5); ++ ++ value = m88ds3103_tuner_readreg(state, 0x26); ++ capCode = value & 0x3f; ++ if(state->tuner_id == TS2022_ID){ ++ m88ds3103_tuner_writereg(state, 0x41, 0x0d); ++ ++ m88ds3103_tuner_writereg(state, 0x51, 0x1b); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x04); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ ++ msleep(2); ++ ++ value = m88ds3103_tuner_readreg(state, 0x26); ++ value &= 0x3f; ++ value = (capCode + value) / 2; ++ } ++ else ++ value = capCode; ++ ++ gdiv28 = gdiv28 * 207 / (value * 2 + 151); ++ mlpf_max = gdiv28 * 135 / 100; ++ mlpf_min = gdiv28 * 78 / 100; ++ if (mlpf_max > 63) ++ mlpf_max = 63; ++ ++ if(state->tuner_id == TS2022_ID) ++ lpf_coeff = 3200; ++ else ++ lpf_coeff = 2766; ++ ++ nlpf = (f3db * gdiv28 * 2 / lpf_coeff / (MT_FE_CRYSTAL_KHZ / 1000) + 1) / 2 ; ++ if (nlpf > 23) nlpf = 23; ++ if (nlpf < 1) nlpf = 1; ++ ++ lpf_mxdiv = (nlpf * (MT_FE_CRYSTAL_KHZ / 1000) * lpf_coeff * 2 / f3db + 1) / 2; ++ ++ if (lpf_mxdiv < mlpf_min){ ++ nlpf++; ++ lpf_mxdiv = (nlpf * (MT_FE_CRYSTAL_KHZ / 1000) * lpf_coeff * 2 / f3db + 1) / 2; ++ } ++ ++ if (lpf_mxdiv > mlpf_max) ++ lpf_mxdiv = mlpf_max; ++ ++ m88ds3103_tuner_writereg(state, 0x04, lpf_mxdiv); ++ m88ds3103_tuner_writereg(state, 0x06, nlpf); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1b); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x04); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ msleep(5); ++ ++ if(state->tuner_id == TS2022_ID){ ++ msleep(2); ++ value = m88ds3103_tuner_readreg(state, 0x26); ++ capCode = value & 0x3f; ++ ++ m88ds3103_tuner_writereg(state, 0x41, 0x09); ++ ++ m88ds3103_tuner_writereg(state, 0x51, 0x1b); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x04); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ ++ msleep(2); ++ value = m88ds3103_tuner_readreg(state, 0x26); ++ value &= 0x3f; ++ value = (capCode + value) / 2; ++ ++ value = value | 0x80; ++ m88ds3103_tuner_writereg(state, 0x25, value); ++ m88ds3103_tuner_writereg(state, 0x27, 0x30); ++ ++ m88ds3103_tuner_writereg(state, 0x08, 0x09); ++ } ++ ++ /* Set the BB gain */ ++ m88ds3103_tuner_writereg(state, 0x51, 0x1e); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x01); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ if(state->tuner_id == TS2020_ID){ ++ if(RFgain == 15){ ++ msleep(40); ++ value = m88ds3103_tuner_readreg(state, 0x21); ++ value &= 0x0f; ++ if(value < 3){ ++ m88ds3103_tuner_writereg(state, 0x60, 0x61); ++ m88ds3103_tuner_writereg(state, 0x51, 0x17); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x08); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ } ++ } ++ } ++ msleep(60); ++ ++ offset_khz = (ndiv - ndiv % 2 + 1024) * MT_FE_CRYSTAL_KHZ ++ / (6 + 8) / (div4 + 1) / 2 - realFreq; ++ ++ m88ds3103_demod_connect(fe, offset_khz+lpf_offset_KHz); ++ ++ for (i = 0; i < 30 ; i++) { ++ m88ds3103_read_status(fe, &status); ++ if (status & FE_HAS_LOCK){ ++ break; ++ } ++ msleep(20); ++ } ++ ++ if((status & FE_HAS_LOCK) == 0){ ++ state->delivery_system = (state->delivery_system == SYS_DVBS) ? SYS_DVBS2 : SYS_DVBS; ++ m88ds3103_demod_connect(fe, offset_khz); ++ ++ for (i = 0; i < 30 ; i++) { ++ m88ds3103_read_status(fe, &status); ++ if (status & FE_HAS_LOCK){ ++ break; ++ } ++ msleep(20); ++ } ++ } ++ ++ if (status & FE_HAS_LOCK){ ++ if(state->config->ci_mode == 2) ++ m88ds3103_set_clock_ratio(state); ++ if(state->config->start_ctrl){ ++ if(state->first_lock == 0){ ++ state->config->start_ctrl(fe); ++ state->first_lock = 1; ++ } ++ } ++ } ++ ++ return 0; ++} ++ ++static int m88ds3103_tune(struct dvb_frontend *fe, ++ bool re_tune, ++ unsigned int mode_flags, ++ unsigned int *delay, ++ fe_status_t *status) ++{ ++ *delay = HZ / 5; ++ ++ dprintk("%s() ", __func__); ++ dprintk("re_tune = %d\n", re_tune); ++ ++ if (re_tune) { ++ int ret = m88ds3103_set_frontend(fe); ++ if (ret) ++ return ret; ++ } ++ ++ return m88ds3103_read_status(fe, status); ++} ++ ++static enum dvbfe_algo m88ds3103_get_algo(struct dvb_frontend *fe) ++{ ++ return DVBFE_ALGO_HW; ++} ++ ++ /* ++ * Power config will reset and load initial firmware if required ++ */ ++static int m88ds3103_initilaze(struct dvb_frontend *fe) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ int ret; ++ ++ dprintk("%s()\n", __func__); ++ /* hard reset */ ++ m88ds3103_writereg(state, 0x07, 0x80); ++ m88ds3103_writereg(state, 0x07, 0x00); ++ msleep(1); ++ ++ m88ds3103_writereg(state, 0x08, 0x01 | m88ds3103_readreg(state, 0x08)); ++ msleep(1); ++ ++ if(state->tuner_id == TS2020_ID){ ++ /* TS2020 init */ ++ m88ds3103_tuner_writereg(state, 0x42, 0x73); ++ msleep(2); ++ m88ds3103_tuner_writereg(state, 0x05, 0x01); ++ m88ds3103_tuner_writereg(state, 0x62, 0xb5); ++ m88ds3103_tuner_writereg(state, 0x07, 0x02); ++ m88ds3103_tuner_writereg(state, 0x08, 0x01); ++ } ++ else if(state->tuner_id == TS2022_ID){ ++ /* TS2022 init */ ++ m88ds3103_tuner_writereg(state, 0x62, 0x6c); ++ msleep(2); ++ m88ds3103_tuner_writereg(state, 0x42, 0x6c); ++ msleep(2); ++ m88ds3103_tuner_writereg(state, 0x7d, 0x9d); ++ m88ds3103_tuner_writereg(state, 0x7c, 0x9a); ++ m88ds3103_tuner_writereg(state, 0x7a, 0x76); ++ ++ m88ds3103_tuner_writereg(state, 0x3b, 0x01); ++ m88ds3103_tuner_writereg(state, 0x63, 0x88); ++ ++ m88ds3103_tuner_writereg(state, 0x61, 0x85); ++ m88ds3103_tuner_writereg(state, 0x22, 0x30); ++ m88ds3103_tuner_writereg(state, 0x30, 0x40); ++ m88ds3103_tuner_writereg(state, 0x20, 0x23); ++ m88ds3103_tuner_writereg(state, 0x24, 0x02); ++ m88ds3103_tuner_writereg(state, 0x12, 0xa0); ++ } ++ ++ if(state->demod_id == DS3103_ID){ ++ m88ds3103_writereg(state, 0x07, 0xe0); ++ m88ds3103_writereg(state, 0x07, 0x00); ++ msleep(1); ++ } ++ m88ds3103_writereg(state, 0xb2, 0x01); ++ ++ /* Load the firmware if required */ ++ ret = m88ds3103_load_firmware(fe); ++ if (ret != 0){ ++ printk(KERN_ERR "%s: Unable initialize firmware\n", __func__); ++ return ret; ++ } ++ if(state->demod_id == DS3103_ID){ ++ m88ds3103_writereg(state, 0x4d, 0xfd & m88ds3103_readreg(state, 0x4d)); ++ m88ds3103_writereg(state, 0x30, 0xef & m88ds3103_readreg(state, 0x30)); ++ } ++ ++ return 0; ++} ++ ++/* ++ * Initialise or wake up device ++ */ ++static int m88ds3103_initfe(struct dvb_frontend *fe) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ u8 val; ++ ++ dprintk("%s()\n", __func__); ++ ++ /* 1st step to wake up demod */ ++ m88ds3103_writereg(state, 0x08, 0x01 | m88ds3103_readreg(state, 0x08)); ++ m88ds3103_writereg(state, 0x04, 0xfe & m88ds3103_readreg(state, 0x04)); ++ m88ds3103_writereg(state, 0x23, 0xef & m88ds3103_readreg(state, 0x23)); ++ ++ /* 2nd step to wake up tuner */ ++ val = m88ds3103_tuner_readreg(state, 0x00) & 0xff; ++ if((val & 0x01) == 0){ ++ m88ds3103_tuner_writereg(state, 0x00, 0x01); ++ msleep(50); ++ } ++ m88ds3103_tuner_writereg(state, 0x00, 0x03); ++ msleep(50); ++ ++ return 0; ++} ++ ++/* Put device to sleep */ ++static int m88ds3103_sleep(struct dvb_frontend *fe) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ ++ dprintk("%s()\n", __func__); ++ ++ /* 1st step to sleep tuner */ ++ m88ds3103_tuner_writereg(state, 0x00, 0x00); ++ ++ /* 2nd step to sleep demod */ ++ m88ds3103_writereg(state, 0x08, 0xfe & m88ds3103_readreg(state, 0x08)); ++ m88ds3103_writereg(state, 0x04, 0x01 | m88ds3103_readreg(state, 0x04)); ++ m88ds3103_writereg(state, 0x23, 0x10 | m88ds3103_readreg(state, 0x23)); ++ ++ ++ return 0; ++} ++ ++static struct dvb_frontend_ops m88ds3103_ops = { ++ .delsys = { SYS_DVBS, SYS_DVBS2}, ++ .info = { ++ .name = "Montage DS3103/TS2022", ++ .type = FE_QPSK, ++ .frequency_min = 950000, ++ .frequency_max = 2150000, ++ .frequency_stepsize = 1011, /* kHz for QPSK frontends */ ++ .frequency_tolerance = 5000, ++ .symbol_rate_min = 1000000, ++ .symbol_rate_max = 45000000, ++ .caps = FE_CAN_INVERSION_AUTO | ++ FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | ++ FE_CAN_FEC_4_5 | FE_CAN_FEC_5_6 | FE_CAN_FEC_6_7 | ++ FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO | ++ FE_CAN_2G_MODULATION | ++ FE_CAN_QPSK | FE_CAN_RECOVER ++ }, ++ ++ .release = m88ds3103_release, ++ ++ .init = m88ds3103_initfe, ++ .sleep = m88ds3103_sleep, ++ .read_status = m88ds3103_read_status, ++ .read_ber = m88ds3103_read_ber, ++ .read_signal_strength = m88ds3103_read_signal_strength, ++ .read_snr = m88ds3103_read_snr, ++ .read_ucblocks = m88ds3103_read_ucblocks, ++ .set_tone = m88ds3103_set_tone, ++ .set_voltage = m88ds3103_set_voltage, ++ .diseqc_send_master_cmd = m88ds3103_send_diseqc_msg, ++ .diseqc_send_burst = m88ds3103_diseqc_send_burst, ++ .get_frontend_algo = m88ds3103_get_algo, ++ .tune = m88ds3103_tune, ++ .set_frontend = m88ds3103_set_frontend, ++}; ++ ++MODULE_DESCRIPTION("DVB Frontend module for Montage DS3103/TS2022 hardware"); ++MODULE_AUTHOR("Max nibble"); ++MODULE_LICENSE("GPL"); +diff -urN a/drivers/media/dvb-frontends/m88ds3103.h b/drivers/media/dvb-frontends/m88ds3103.h +--- a/drivers/media/dvb-frontends/m88ds3103.h 1970-01-01 08:00:00.000000000 +0800 ++++ b/drivers/media/dvb-frontends/m88ds3103.h 2013-01-30 12:33:51.000000000 +0800 +@@ -0,0 +1,53 @@ ++/* ++ Montage Technology M88DS3103/M88TS2022 - DVBS/S2 Satellite demod/tuner driver ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++#ifndef M88DS3103_H ++#define M88DS3103_H ++ ++#include <linux/dvb/frontend.h> ++ ++struct m88ds3103_config { ++ /* the demodulator's i2c address */ ++ u8 demod_address; ++ u8 ci_mode; ++ u8 pin_ctrl; ++ u8 ts_mode; /* 0: Parallel, 1: Serial */ ++ ++ /* Set device param to start dma */ ++ int (*set_ts_params)(struct dvb_frontend *fe, int is_punctured); ++ /* Start to transfer data */ ++ int (*start_ctrl)(struct dvb_frontend *fe); ++ /* Set LNB voltage */ ++ int (*set_voltage)(struct dvb_frontend* fe, fe_sec_voltage_t voltage); ++}; ++ ++#if defined(CONFIG_DVB_M88DS3103) || \ ++ (defined(CONFIG_DVB_M88DS3103_MODULE) && defined(MODULE)) ++extern struct dvb_frontend *m88ds3103_attach( ++ const struct m88ds3103_config *config, ++ struct i2c_adapter *i2c); ++#else ++static inline struct dvb_frontend *m88ds3103_attach( ++ const struct m88ds3103_config *config, ++ struct i2c_adapter *i2c) ++{ ++ printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); ++ return NULL; ++} ++#endif /* CONFIG_DVB_M88DS3103 */ ++#endif /* M88DS3103_H */ +diff -urN a/drivers/media/dvb-frontends/m88ds3103_priv.h b/drivers/media/dvb-frontends/m88ds3103_priv.h +--- a/drivers/media/dvb-frontends/m88ds3103_priv.h 1970-01-01 08:00:00.000000000 +0800 ++++ b/drivers/media/dvb-frontends/m88ds3103_priv.h 2013-01-30 12:33:56.000000000 +0800 +@@ -0,0 +1,403 @@ ++/* ++ Montage Technology M88DS3103/M88TS2022 - DVBS/S2 Satellite demod/tuner driver ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++#ifndef M88DS3103_PRIV_H ++#define M88DS3103_PRIV_H ++ ++#define FW_DOWN_SIZE 32 ++#define FW_DOWN_LOOP (8192/FW_DOWN_SIZE) ++#define DS3103_DEFAULT_FIRMWARE "dvb-fe-ds3103.fw" ++#define DS3000_DEFAULT_FIRMWARE "dvb-fe-ds300x.fw" ++#define MT_FE_MCLK_KHZ 96000 /* in kHz */ ++#define MT_FE_CRYSTAL_KHZ 27000 /* in kHz */ ++#define FREQ_OFFSET_AT_SMALL_SYM_RATE_KHz 3000 ++#define DS3000_ID 0x3000 ++#define DS3103_ID 0x3103 ++#define TS2020_ID 0x2020 ++#define TS2022_ID 0x2022 ++#define UNKNOW_ID 0x0000 ++ ++struct m88ds3103_state { ++ struct i2c_adapter *i2c; ++ const struct m88ds3103_config *config; ++ ++ struct dvb_frontend frontend; ++ ++ u32 preBer; ++ u8 skip_fw_load; ++ u8 first_lock; /* The first time of signal lock */ ++ u16 demod_id; /* demod chip type */ ++ u16 tuner_id; /* tuner chip type */ ++ fe_delivery_system_t delivery_system; ++}; ++ ++/* For M88DS3103 demod dvbs mode.*/ ++static u8 ds3103_dvbs_init_tab[] = { ++ 0x23, 0x07, ++ 0x08, 0x03, ++ 0x0c, 0x02, ++ 0x21, 0x54, ++ 0x25, 0x82, ++ 0x27, 0x31, ++ 0x30, 0x08, ++ 0x31, 0x40, ++ 0x32, 0x32, ++ 0x33, 0x35, ++ 0x35, 0xff, ++ 0x3a, 0x00, ++ 0x37, 0x10, ++ 0x38, 0x10, ++ 0x39, 0x02, ++ 0x42, 0x60, ++ 0x4a, 0x80, ++ 0x4b, 0x04, ++ 0x4d, 0x91, ++ 0x5d, 0xc8, ++ 0x50, 0x36, ++ 0x51, 0x36, ++ 0x52, 0x36, ++ 0x53, 0x36, ++ 0x63, 0x0f, ++ 0x64, 0x30, ++ 0x65, 0x40, ++ 0x68, 0x26, ++ 0x69, 0x4c, ++ 0x70, 0x20, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x40, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x60, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x80, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0xa0, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x1f, ++ 0x76, 0x38, ++ 0x77, 0xa6, ++ 0x78, 0x0c, ++ 0x79, 0x80, ++ 0x7f, 0x14, ++ 0x7c, 0x00, ++ 0xae, 0x82, ++ 0x80, 0x64, ++ 0x81, 0x66, ++ 0x82, 0x44, ++ 0x85, 0x04, ++ 0xcd, 0xf4, ++ 0x90, 0x33, ++ 0xa0, 0x44, ++ 0xc0, 0x08, ++ 0xc3, 0x10, ++ 0xc4, 0x08, ++ 0xc5, 0xf0, ++ 0xc6, 0xff, ++ 0xc7, 0x00, ++ 0xc8, 0x1a, ++ 0xc9, 0x80, ++ 0xe0, 0xf8, ++ 0xe6, 0x8b, ++ 0xd0, 0x40, ++ 0xf8, 0x20, ++ 0xfa, 0x0f, ++ 0x00, 0x00, ++ 0xbd, 0x01, ++ 0xb8, 0x00, ++}; ++/* For M88DS3103 demod dvbs2 mode.*/ ++static u8 ds3103_dvbs2_init_tab[] = { ++ 0x23, 0x07, ++ 0x08, 0x07, ++ 0x0c, 0x02, ++ 0x21, 0x54, ++ 0x25, 0x82, ++ 0x27, 0x31, ++ 0x30, 0x08, ++ 0x32, 0x32, ++ 0x33, 0x35, ++ 0x35, 0xff, ++ 0x3a, 0x00, ++ 0x37, 0x10, ++ 0x38, 0x10, ++ 0x39, 0x02, ++ 0x42, 0x60, ++ 0x4a, 0x80, ++ 0x4b, 0x04, ++ 0x4d, 0x91, ++ 0x5d, 0xc8, ++ 0x50, 0x36, ++ 0x51, 0x36, ++ 0x52, 0x36, ++ 0x53, 0x36, ++ 0x63, 0x0f, ++ 0x64, 0x10, ++ 0x65, 0x20, ++ 0x68, 0x46, ++ 0x69, 0xcd, ++ 0x70, 0x20, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x40, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x60, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x80, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0xa0, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x1f, ++ 0x76, 0x38, ++ 0x77, 0xa6, ++ 0x78, 0x0c, ++ 0x79, 0x80, ++ 0x7f, 0x14, ++ 0x85, 0x08, ++ 0xcd, 0xf4, ++ 0x90, 0x33, ++ 0x86, 0x00, ++ 0x87, 0x0f, ++ 0x89, 0x00, ++ 0x8b, 0x44, ++ 0x8c, 0x66, ++ 0x9d, 0xc1, ++ 0x8a, 0x10, ++ 0xad, 0x40, ++ 0xa0, 0x44, ++ 0xc0, 0x08, ++ 0xc1, 0x10, ++ 0xc2, 0x08, ++ 0xc3, 0x10, ++ 0xc4, 0x08, ++ 0xc5, 0xf0, ++ 0xc6, 0xff, ++ 0xc7, 0x00, ++ 0xc8, 0x1a, ++ 0xc9, 0x80, ++ 0xca, 0x23, ++ 0xcb, 0x24, ++ 0xcc, 0xf4, ++ 0xce, 0x74, ++ 0x00, 0x00, ++ 0xbd, 0x01, ++ 0xb8, 0x00, ++}; ++ ++/* For M88DS3000 demod dvbs mode.*/ ++static u8 ds3000_dvbs_init_tab[] = { ++ 0x23, 0x05, ++ 0x08, 0x03, ++ 0x0c, 0x02, ++ 0x21, 0x54, ++ 0x25, 0x82, ++ 0x27, 0x31, ++ 0x30, 0x08, ++ 0x31, 0x40, ++ 0x32, 0x32, ++ 0x33, 0x35, ++ 0x35, 0xff, ++ 0x3a, 0x00, ++ 0x37, 0x10, ++ 0x38, 0x10, ++ 0x39, 0x02, ++ 0x42, 0x60, ++ 0x4a, 0x40, ++ 0x4b, 0x04, ++ 0x4d, 0x91, ++ 0x5d, 0xc8, ++ 0x50, 0x77, ++ 0x51, 0x77, ++ 0x52, 0x36, ++ 0x53, 0x36, ++ 0x56, 0x01, ++ 0x63, 0x47, ++ 0x64, 0x30, ++ 0x65, 0x40, ++ 0x68, 0x26, ++ 0x69, 0x4c, ++ 0x70, 0x20, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x40, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x60, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x80, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0xa0, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x1f, ++ 0x76, 0x00, ++ 0x77, 0xd1, ++ 0x78, 0x0c, ++ 0x79, 0x80, ++ 0x7f, 0x04, ++ 0x7c, 0x00, ++ 0x80, 0x86, ++ 0x81, 0xa6, ++ 0x85, 0x04, ++ 0xcd, 0xf4, ++ 0x90, 0x33, ++ 0xa0, 0x44, ++ 0xc0, 0x18, ++ 0xc3, 0x10, ++ 0xc4, 0x08, ++ 0xc5, 0x80, ++ 0xc6, 0x80, ++ 0xc7, 0x0a, ++ 0xc8, 0x1a, ++ 0xc9, 0x80, ++ 0xfe, 0xb6, ++ 0xe0, 0xf8, ++ 0xe6, 0x8b, ++ 0xd0, 0x40, ++ 0xf8, 0x20, ++ 0xfa, 0x0f, ++ 0xad, 0x20, ++ 0xae, 0x07, ++ 0xb8, 0x00, ++}; ++ ++/* For M88DS3000 demod dvbs2 mode.*/ ++static u8 ds3000_dvbs2_init_tab[] = { ++ 0x23, 0x0f, ++ 0x08, 0x07, ++ 0x0c, 0x02, ++ 0x21, 0x54, ++ 0x25, 0x82, ++ 0x27, 0x31, ++ 0x30, 0x08, ++ 0x31, 0x32, ++ 0x32, 0x32, ++ 0x33, 0x35, ++ 0x35, 0xff, ++ 0x3a, 0x00, ++ 0x37, 0x10, ++ 0x38, 0x10, ++ 0x39, 0x02, ++ 0x42, 0x60, ++ 0x4a, 0x80, ++ 0x4b, 0x04, ++ 0x4d, 0x91, ++ 0x5d, 0x88, ++ 0x50, 0x36, ++ 0x51, 0x36, ++ 0x52, 0x36, ++ 0x53, 0x36, ++ 0x63, 0x60, ++ 0x64, 0x10, ++ 0x65, 0x10, ++ 0x68, 0x04, ++ 0x69, 0x29, ++ 0x70, 0x20, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x40, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x60, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x80, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0xa0, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x1f, ++ 0xa0, 0x44, ++ 0xc0, 0x08, ++ 0xc1, 0x10, ++ 0xc2, 0x08, ++ 0xc3, 0x10, ++ 0xc4, 0x08, ++ 0xc5, 0xf0, ++ 0xc6, 0xf0, ++ 0xc7, 0x0a, ++ 0xc8, 0x1a, ++ 0xc9, 0x80, ++ 0xca, 0x23, ++ 0xcb, 0x24, ++ 0xce, 0x74, ++ 0x56, 0x01, ++ 0x90, 0x03, ++ 0x76, 0x80, ++ 0x77, 0x42, ++ 0x78, 0x0a, ++ 0x79, 0x80, ++ 0xad, 0x40, ++ 0xae, 0x07, ++ 0x7f, 0xd4, ++ 0x7c, 0x00, ++ 0x80, 0xa8, ++ 0x81, 0xda, ++ 0x7c, 0x01, ++ 0x80, 0xda, ++ 0x81, 0xec, ++ 0x7c, 0x02, ++ 0x80, 0xca, ++ 0x81, 0xeb, ++ 0x7c, 0x03, ++ 0x80, 0xba, ++ 0x81, 0xdb, ++ 0x85, 0x08, ++ 0x86, 0x00, ++ 0x87, 0x02, ++ 0x89, 0x80, ++ 0x8b, 0x44, ++ 0x8c, 0xaa, ++ 0x8a, 0x10, ++ 0xba, 0x00, ++ 0xf5, 0x04, ++ 0xd2, 0x32, ++ 0xb8, 0x00, ++}; ++ ++#endif /* M88DS3103_PRIV_H */ +diff -urN a/drivers/media/dvb-frontends/Makefile b/drivers/media/dvb-frontends/Makefile +--- a/drivers/media/dvb-frontends/Makefile 2013-04-29 08:36:01.000000000 +0800 ++++ b/drivers/media/dvb-frontends/Makefile 2013-05-03 17:04:31.000000000 +0800 +@@ -103,4 +103,5 @@ + obj-$(CONFIG_DVB_RTL2832) += rtl2832.o + obj-$(CONFIG_DVB_M88RS2000) += m88rs2000.o + obj-$(CONFIG_DVB_AF9033) += af9033.o +- ++obj-$(CONFIG_DVB_M88DS3103) += m88ds3103.o ++obj-$(CONFIG_DVB_M88DC2800) += m88dc2800.o +diff -urN a/drivers/media/pci/cx23885/cimax2.c b/drivers/media/pci/cx23885/cimax2.c +--- a/drivers/media/pci/cx23885/cimax2.c 2013-04-29 08:36:01.000000000 +0800 ++++ b/drivers/media/pci/cx23885/cimax2.c 2013-03-31 22:03:29.000000000 +0800 +@@ -415,7 +415,7 @@ + return state->status; + } + +-int netup_ci_init(struct cx23885_tsport *port) ++int netup_ci_init(struct cx23885_tsport *port, bool isDVBSky) + { + struct netup_ci_state *state; + u8 cimax_init[34] = { +@@ -464,6 +464,11 @@ + goto err; + } + ++ if(isDVBSky) { ++ cimax_init[32] = 0x22; ++ cimax_init[33] = 0x00; ++ } ++ + port->port_priv = state; + + switch (port->nr) { +@@ -537,3 +542,19 @@ + dvb_ca_en50221_release(&state->ca); + kfree(state); + } ++ ++/* CI irq handler for DVBSky board*/ ++int dvbsky_ci_slot_status(struct cx23885_dev *dev) ++{ ++ struct cx23885_tsport *port = NULL; ++ struct netup_ci_state *state = NULL; ++ ++ ci_dbg_print("%s:\n", __func__); ++ ++ port = &dev->ts1; ++ state = port->port_priv; ++ schedule_work(&state->work); ++ ci_dbg_print("%s: Wakeup CI0\n", __func__); ++ ++ return 1; ++} +diff -urN a/drivers/media/pci/cx23885/cimax2.h b/drivers/media/pci/cx23885/cimax2.h +--- a/drivers/media/pci/cx23885/cimax2.h 2013-04-29 08:36:01.000000000 +0800 ++++ b/drivers/media/pci/cx23885/cimax2.h 2013-01-30 12:34:37.000000000 +0800 +@@ -41,7 +41,9 @@ + extern int netup_ci_slot_status(struct cx23885_dev *dev, u32 pci_status); + extern int netup_poll_ci_slot_status(struct dvb_ca_en50221 *en50221, + int slot, int open); +-extern int netup_ci_init(struct cx23885_tsport *port); ++extern int netup_ci_init(struct cx23885_tsport *port, bool isDVBSky); + extern void netup_ci_exit(struct cx23885_tsport *port); + ++extern int dvbsky_ci_slot_status(struct cx23885_dev *dev); ++ + #endif +diff -urN a/drivers/media/pci/cx23885/cx23885-cards.c b/drivers/media/pci/cx23885/cx23885-cards.c +--- a/drivers/media/pci/cx23885/cx23885-cards.c 2013-04-29 08:36:01.000000000 +0800 ++++ b/drivers/media/pci/cx23885/cx23885-cards.c 2013-05-03 17:34:46.000000000 +0800 +@@ -569,6 +569,34 @@ + .name = "TeVii S471", + .portb = CX23885_MPEG_DVB, + }, ++ [CX23885_BOARD_BST_PS8512] = { ++ .name = "Bestunar PS8512", ++ .portb = CX23885_MPEG_DVB, ++ }, ++ [CX23885_BOARD_DVBSKY_S950] = { ++ .name = "DVBSKY S950", ++ .portb = CX23885_MPEG_DVB, ++ }, ++ [CX23885_BOARD_DVBSKY_S952] = { ++ .name = "DVBSKY S952", ++ .portb = CX23885_MPEG_DVB, ++ .portc = CX23885_MPEG_DVB, ++ }, ++ [CX23885_BOARD_DVBSKY_S950_CI] = { ++ .ci_type = 3, ++ .name = "DVBSKY S950CI DVB-S2 CI", ++ .portb = CX23885_MPEG_DVB, ++ }, ++ [CX23885_BOARD_DVBSKY_C2800E_CI] = { ++ .ci_type = 3, ++ .name = "DVBSKY C2800E DVB-C CI", ++ .portb = CX23885_MPEG_DVB, ++ }, ++ [CX23885_BOARD_DVBSKY_T9580] = { ++ .name = "DVBSKY T9580", ++ .portb = CX23885_MPEG_DVB, ++ .portc = CX23885_MPEG_DVB, ++ }, + [CX23885_BOARD_PROF_8000] = { + .name = "Prof Revolution DVB-S2 8000", + .portb = CX23885_MPEG_DVB, +@@ -605,7 +633,7 @@ + CX25840_NONE1_CH3, + .amux = CX25840_AUDIO6, + } }, +- } ++ } + }; + const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards); + +@@ -818,6 +846,30 @@ + .subdevice = 0x9022, + .card = CX23885_BOARD_TEVII_S471, + }, { ++ .subvendor = 0x14f1, ++ .subdevice = 0x8512, ++ .card = CX23885_BOARD_BST_PS8512, ++ }, { ++ .subvendor = 0x4254, ++ .subdevice = 0x0950, ++ .card = CX23885_BOARD_DVBSKY_S950, ++ }, { ++ .subvendor = 0x4254, ++ .subdevice = 0x0952, ++ .card = CX23885_BOARD_DVBSKY_S952, ++ }, { ++ .subvendor = 0x4254, ++ .subdevice = 0x950C, ++ .card = CX23885_BOARD_DVBSKY_S950_CI, ++ }, { ++ .subvendor = 0x4254, ++ .subdevice = 0x2800, ++ .card = CX23885_BOARD_DVBSKY_C2800E_CI, ++ }, { ++ .subvendor = 0x4254, ++ .subdevice = 0x9580, ++ .card = CX23885_BOARD_DVBSKY_T9580, ++ }, { + .subvendor = 0x8000, + .subdevice = 0x3034, + .card = CX23885_BOARD_PROF_8000, +@@ -1224,7 +1276,7 @@ + cx_set(GP0_IO, 0x00040004); + break; + case CX23885_BOARD_TBS_6920: +- case CX23885_BOARD_PROF_8000: ++ case CX23885_BOARD_PROF_8000: + cx_write(MC417_CTL, 0x00000036); + cx_write(MC417_OEN, 0x00001000); + cx_set(MC417_RWD, 0x00000002); +@@ -1394,9 +1446,84 @@ + cx_set(GP0_IO, 0x00040004); + mdelay(60); + break; ++ case CX23885_BOARD_DVBSKY_S950: ++ case CX23885_BOARD_BST_PS8512: ++ cx23885_gpio_enable(dev, GPIO_2, 1); ++ cx23885_gpio_clear(dev, GPIO_2); ++ msleep(100); ++ cx23885_gpio_set(dev, GPIO_2); ++ break; ++ case CX23885_BOARD_DVBSKY_S952: ++ case CX23885_BOARD_DVBSKY_T9580: ++ cx_write(MC417_CTL, 0x00000037);/* enable GPIO3-18 pins */ ++ ++ cx23885_gpio_enable(dev, GPIO_2, 1); ++ cx23885_gpio_enable(dev, GPIO_11, 1); ++ ++ cx23885_gpio_clear(dev, GPIO_2); ++ cx23885_gpio_clear(dev, GPIO_11); ++ msleep(100); ++ cx23885_gpio_set(dev, GPIO_2); ++ cx23885_gpio_set(dev, GPIO_11); ++ break; ++ case CX23885_BOARD_DVBSKY_S950_CI: ++ case CX23885_BOARD_DVBSKY_C2800E_CI: ++ /* GPIO-0 INTA from CiMax, input ++ GPIO-1 reset CiMax, output, high active ++ GPIO-2 reset demod, output, low active ++ GPIO-3 to GPIO-10 data/addr for CAM ++ GPIO-11 ~CS0 to CiMax1 ++ GPIO-12 ~CS1 to CiMax2 ++ GPIO-13 ADL0 load LSB addr ++ GPIO-14 ADL1 load MSB addr ++ GPIO-15 ~RDY from CiMax ++ GPIO-17 ~RD to CiMax ++ GPIO-18 ~WR to CiMax ++ */ ++ cx_set(GP0_IO, 0x00060002); /* GPIO 1/2 as output */ ++ cx_clear(GP0_IO, 0x00010004); /*GPIO 0 as input*/ ++ mdelay(100);/* reset delay */ ++ cx_set(GP0_IO, 0x00060004); /* GPIO as out, reset high */ ++ cx_clear(GP0_IO, 0x00010002); ++ cx_write(MC417_CTL, 0x00000037);/* enable GPIO3-18 pins */ ++ /* GPIO-15 IN as ~ACK, rest as OUT */ ++ cx_write(MC417_OEN, 0x00001000); ++ /* ~RD, ~WR high; ADL0, ADL1 low; ~CS0, ~CS1 high */ ++ cx_write(MC417_RWD, 0x0000c300); ++ /* enable irq */ ++ cx_write(GPIO_ISM, 0x00000000);/* INTERRUPTS active low*/ ++ break; + } + } + ++static int cx23885_ir_patch(struct i2c_adapter *i2c, u8 reg, u8 mask) ++{ ++ struct i2c_msg msgs[2]; ++ u8 tx_buf[2], rx_buf[1]; ++ /* Write register address */ ++ tx_buf[0] = reg; ++ msgs[0].addr = 0x4c; ++ msgs[0].flags = 0; ++ msgs[0].len = 1; ++ msgs[0].buf = (char *) tx_buf; ++ /* Read data from register */ ++ msgs[1].addr = 0x4c; ++ msgs[1].flags = I2C_M_RD; ++ msgs[1].len = 1; ++ msgs[1].buf = (char *) rx_buf; ++ ++ i2c_transfer(i2c, msgs, 2); ++ ++ tx_buf[0] = reg; ++ tx_buf[1] = rx_buf[0] | mask; ++ msgs[0].addr = 0x4c; ++ msgs[0].flags = 0; ++ msgs[0].len = 2; ++ msgs[0].buf = (char *) tx_buf; ++ ++ return i2c_transfer(i2c, msgs, 1); ++} ++ + int cx23885_ir_init(struct cx23885_dev *dev) + { + static struct v4l2_subdev_io_pin_config ir_rxtx_pin_cfg[] = { +@@ -1482,6 +1609,23 @@ + v4l2_subdev_call(dev->sd_cx25840, core, s_io_pin_config, + ir_rx_pin_cfg_count, ir_rx_pin_cfg); + break; ++ case CX23885_BOARD_BST_PS8512: ++ case CX23885_BOARD_DVBSKY_S950: ++ case CX23885_BOARD_DVBSKY_S952: ++ case CX23885_BOARD_DVBSKY_S950_CI: ++ case CX23885_BOARD_DVBSKY_C2800E_CI: ++ case CX23885_BOARD_DVBSKY_T9580: ++ dev->sd_ir = cx23885_find_hw(dev, CX23885_HW_AV_CORE); ++ if (dev->sd_ir == NULL) { ++ ret = -ENODEV; ++ break; ++ } ++ v4l2_subdev_call(dev->sd_cx25840, core, s_io_pin_config, ++ ir_rx_pin_cfg_count, ir_rx_pin_cfg); ++ ++ cx23885_ir_patch(&(dev->i2c_bus[2].i2c_adap),0x1f,0x80); ++ cx23885_ir_patch(&(dev->i2c_bus[2].i2c_adap),0x23,0x80); ++ break; + case CX23885_BOARD_HAUPPAUGE_HVR1250: + if (!enable_885_ir) + break; +@@ -1511,9 +1655,15 @@ + cx23888_ir_remove(dev); + dev->sd_ir = NULL; + break; ++ case CX23885_BOARD_BST_PS8512: ++ case CX23885_BOARD_DVBSKY_S950: ++ case CX23885_BOARD_DVBSKY_S952: ++ case CX23885_BOARD_DVBSKY_S950_CI: ++ case CX23885_BOARD_DVBSKY_C2800E_CI: ++ case CX23885_BOARD_DVBSKY_T9580: + case CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL: + case CX23885_BOARD_TEVII_S470: +- case CX23885_BOARD_HAUPPAUGE_HVR1250: ++ case CX23885_BOARD_HAUPPAUGE_HVR1250: + case CX23885_BOARD_MYGICA_X8507: + cx23885_irq_remove(dev, PCI_MSK_AV_CORE); + /* sd_ir is a duplicate pointer to the AV Core, just clear it */ +@@ -1556,6 +1706,12 @@ + if (dev->sd_ir) + cx23885_irq_add_enable(dev, PCI_MSK_IR); + break; ++ case CX23885_BOARD_BST_PS8512: ++ case CX23885_BOARD_DVBSKY_S950: ++ case CX23885_BOARD_DVBSKY_S952: ++ case CX23885_BOARD_DVBSKY_S950_CI: ++ case CX23885_BOARD_DVBSKY_C2800E_CI: ++ case CX23885_BOARD_DVBSKY_T9580: + case CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL: + case CX23885_BOARD_TEVII_S470: + case CX23885_BOARD_HAUPPAUGE_HVR1250: +@@ -1657,6 +1813,10 @@ + ts1->ts_clk_en_val = 0x1; /* Enable TS_CLK */ + ts1->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO; + break; ++ case CX23885_BOARD_BST_PS8512: ++ case CX23885_BOARD_DVBSKY_S950: ++ case CX23885_BOARD_DVBSKY_S950_CI: ++ case CX23885_BOARD_DVBSKY_C2800E_CI: + case CX23885_BOARD_TEVII_S470: + case CX23885_BOARD_TEVII_S471: + case CX23885_BOARD_DVBWORLD_2005: +@@ -1694,6 +1854,22 @@ + ts1->ts_clk_en_val = 0x1; /* Enable TS_CLK */ + ts1->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO; + break; ++ case CX23885_BOARD_DVBSKY_S952: ++ ts1->gen_ctrl_val = 0x5; /* Parallel */ ++ ts1->ts_clk_en_val = 0x1; /* Enable TS_CLK */ ++ ts1->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO; ++ ts2->gen_ctrl_val = 0xe; /* Serial bus + punctured clock */ ++ ts2->ts_clk_en_val = 0x1; /* Enable TS_CLK */ ++ ts2->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO; ++ break; ++ case CX23885_BOARD_DVBSKY_T9580: ++ ts1->gen_ctrl_val = 0x5; /* Parallel */ ++ ts1->ts_clk_en_val = 0x1; /* Enable TS_CLK */ ++ ts1->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO; ++ ts2->gen_ctrl_val = 0x8; /* Serial bus */ ++ ts2->ts_clk_en_val = 0x1; /* Enable TS_CLK */ ++ ts2->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO; ++ break; + case CX23885_BOARD_HAUPPAUGE_HVR1250: + case CX23885_BOARD_HAUPPAUGE_HVR1500: + case CX23885_BOARD_HAUPPAUGE_HVR1500Q: +@@ -1749,6 +1925,12 @@ + case CX23885_BOARD_MPX885: + case CX23885_BOARD_MYGICA_X8507: + case CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL: ++ case CX23885_BOARD_BST_PS8512: ++ case CX23885_BOARD_DVBSKY_S950: ++ case CX23885_BOARD_DVBSKY_S952: ++ case CX23885_BOARD_DVBSKY_S950_CI: ++ case CX23885_BOARD_DVBSKY_C2800E_CI: ++ case CX23885_BOARD_DVBSKY_T9580: + case CX23885_BOARD_AVERMEDIA_HC81R: + dev->sd_cx25840 = v4l2_i2c_new_subdev(&dev->v4l2_dev, + &dev->i2c_bus[2].i2c_adap, +diff -urN a/drivers/media/pci/cx23885/cx23885-core.c b/drivers/media/pci/cx23885/cx23885-core.c +--- a/drivers/media/pci/cx23885/cx23885-core.c 2013-04-29 08:36:01.000000000 +0800 ++++ b/drivers/media/pci/cx23885/cx23885-core.c 2013-05-03 17:36:31.000000000 +0800 +@@ -1909,6 +1909,10 @@ + (pci_status & PCI_MSK_GPIO0)) + handled += altera_ci_irq(dev); + ++ if (cx23885_boards[dev->board].ci_type == 3 && ++ (pci_status & PCI_MSK_GPIO0)) ++ handled += dvbsky_ci_slot_status(dev); ++ + if (ts1_status) { + if (cx23885_boards[dev->board].portb == CX23885_MPEG_DVB) + handled += cx23885_irq_ts(ts1, ts1_status); +@@ -2144,6 +2148,8 @@ + cx23885_irq_add_enable(dev, PCI_MSK_GPIO1 | PCI_MSK_GPIO0); + break; + case CX23885_BOARD_NETUP_DUAL_DVB_T_C_CI_RF: ++ case CX23885_BOARD_DVBSKY_S950_CI: ++ case CX23885_BOARD_DVBSKY_C2800E_CI: + cx23885_irq_add_enable(dev, PCI_MSK_GPIO0); + break; + } +diff -urN a/drivers/media/pci/cx23885/cx23885-dvb.c b/drivers/media/pci/cx23885/cx23885-dvb.c +--- a/drivers/media/pci/cx23885/cx23885-dvb.c 2013-04-29 08:36:01.000000000 +0800 ++++ b/drivers/media/pci/cx23885/cx23885-dvb.c 2013-05-03 17:38:34.000000000 +0800 +@@ -51,6 +51,8 @@ + #include "stv6110.h" + #include "lnbh24.h" + #include "cx24116.h" ++#include "m88ds3103.h" ++#include "m88dc2800.h" + #include "cimax2.h" + #include "lgs8gxx.h" + #include "netup-eeprom.h" +@@ -64,8 +66,8 @@ + #include "stv0367.h" + #include "drxk.h" + #include "mt2063.h" +-#include "stv090x.h" +-#include "stb6100.h" ++#include "stv090x.h" ++#include "stb6100.h" + #include "stb6100_cfg.h" + #include "tda10071.h" + #include "a8293.h" +@@ -500,42 +502,130 @@ + .if_khz = 5380, + }; + +-static struct stv090x_config prof_8000_stv090x_config = { +- .device = STV0903, +- .demod_mode = STV090x_SINGLE, +- .clk_mode = STV090x_CLK_EXT, +- .xtal = 27000000, +- .address = 0x6A, +- .ts1_mode = STV090x_TSMODE_PARALLEL_PUNCTURED, +- .repeater_level = STV090x_RPTLEVEL_64, +- .adc1_range = STV090x_ADC_2Vpp, +- .diseqc_envelope_mode = false, +- +- .tuner_get_frequency = stb6100_get_frequency, +- .tuner_set_frequency = stb6100_set_frequency, +- .tuner_set_bandwidth = stb6100_set_bandwidth, +- .tuner_get_bandwidth = stb6100_get_bandwidth, +-}; + +-static struct stb6100_config prof_8000_stb6100_config = { +- .tuner_address = 0x60, +- .refclock = 27000000, +-}; +- +-static int p8000_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage) ++/* bst control */ ++int bst_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage) + { + struct cx23885_tsport *port = fe->dvb->priv; + struct cx23885_dev *dev = port->dev; ++ ++ cx23885_gpio_enable(dev, GPIO_1, 1); ++ cx23885_gpio_enable(dev, GPIO_0, 1); ++ ++ switch (voltage) { ++ case SEC_VOLTAGE_13: ++ cx23885_gpio_set(dev, GPIO_1); ++ cx23885_gpio_clear(dev, GPIO_0); ++ break; ++ case SEC_VOLTAGE_18: ++ cx23885_gpio_set(dev, GPIO_1); ++ cx23885_gpio_set(dev, GPIO_0); ++ break; ++ case SEC_VOLTAGE_OFF: ++ cx23885_gpio_clear(dev, GPIO_1); ++ cx23885_gpio_clear(dev, GPIO_0); ++ break; ++ } ++ return 0; ++} + +- if (voltage == SEC_VOLTAGE_18) +- cx_write(MC417_RWD, 0x00001e00); +- else if (voltage == SEC_VOLTAGE_13) +- cx_write(MC417_RWD, 0x00001a00); +- else +- cx_write(MC417_RWD, 0x00001800); ++int dvbsky_set_voltage_sec(struct dvb_frontend *fe, fe_sec_voltage_t voltage) ++{ ++ struct cx23885_tsport *port = fe->dvb->priv; ++ struct cx23885_dev *dev = port->dev; ++ ++ cx23885_gpio_enable(dev, GPIO_12, 1); ++ cx23885_gpio_enable(dev, GPIO_13, 1); ++ ++ switch (voltage) { ++ case SEC_VOLTAGE_13: ++ cx23885_gpio_set(dev, GPIO_13); ++ cx23885_gpio_clear(dev, GPIO_12); ++ break; ++ case SEC_VOLTAGE_18: ++ cx23885_gpio_set(dev, GPIO_13); ++ cx23885_gpio_set(dev, GPIO_12); ++ break; ++ case SEC_VOLTAGE_OFF: ++ cx23885_gpio_clear(dev, GPIO_13); ++ cx23885_gpio_clear(dev, GPIO_12); ++ break; ++ } + return 0; + } + ++/* bestunar single dvb-s2 */ ++static struct m88ds3103_config bst_ds3103_config = { ++ .demod_address = 0x68, ++ .ci_mode = 0, ++ .pin_ctrl = 0x82, ++ .ts_mode = 0, ++ .set_voltage = bst_set_voltage, ++}; ++/* DVBSKY dual dvb-s2 */ ++static struct m88ds3103_config dvbsky_ds3103_config_pri = { ++ .demod_address = 0x68, ++ .ci_mode = 0, ++ .pin_ctrl = 0x82, ++ .ts_mode = 0, ++ .set_voltage = bst_set_voltage, ++}; ++static struct m88ds3103_config dvbsky_ds3103_config_sec = { ++ .demod_address = 0x68, ++ .ci_mode = 0, ++ .pin_ctrl = 0x82, ++ .ts_mode = 1, ++ .set_voltage = dvbsky_set_voltage_sec, ++}; ++ ++static struct m88ds3103_config dvbsky_ds3103_ci_config = { ++ .demod_address = 0x68, ++ .ci_mode = 2, ++ .pin_ctrl = 0x82, ++ .ts_mode = 0, ++}; ++ ++static struct m88dc2800_config dvbsky_dc2800_config = { ++ .demod_address = 0x1c, ++ .ts_mode = 3, ++}; ++ ++static struct stv090x_config prof_8000_stv090x_config = { ++ .device = STV0903, ++ .demod_mode = STV090x_SINGLE, ++ .clk_mode = STV090x_CLK_EXT, ++ .xtal = 27000000, ++ .address = 0x6A, ++ .ts1_mode = STV090x_TSMODE_PARALLEL_PUNCTURED, ++ .repeater_level = STV090x_RPTLEVEL_64, ++ .adc1_range = STV090x_ADC_2Vpp, ++ .diseqc_envelope_mode = false, ++ ++ .tuner_get_frequency = stb6100_get_frequency, ++ .tuner_set_frequency = stb6100_set_frequency, ++ .tuner_set_bandwidth = stb6100_set_bandwidth, ++ .tuner_get_bandwidth = stb6100_get_bandwidth, ++}; ++ ++static struct stb6100_config prof_8000_stb6100_config = { ++ .tuner_address = 0x60, ++ .refclock = 27000000, ++}; ++ ++static int p8000_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage) ++{ ++ struct cx23885_tsport *port = fe->dvb->priv; ++ struct cx23885_dev *dev = port->dev; ++ ++ if (voltage == SEC_VOLTAGE_18) ++ cx_write(MC417_RWD, 0x00001e00); ++ else if (voltage == SEC_VOLTAGE_13) ++ cx_write(MC417_RWD, 0x00001a00); ++ else ++ cx_write(MC417_RWD, 0x00001800); ++ return 0; ++} ++ + static int cx23885_dvb_set_frontend(struct dvb_frontend *fe) + { + struct dtv_frontend_properties *p = &fe->dtv_property_cache; +@@ -1250,23 +1340,79 @@ + &tevii_ds3000_config, + &i2c_bus->i2c_adap); + break; +- case CX23885_BOARD_PROF_8000: +- i2c_bus = &dev->i2c_bus[0]; ++ case CX23885_BOARD_BST_PS8512: ++ case CX23885_BOARD_DVBSKY_S950: ++ i2c_bus = &dev->i2c_bus[1]; ++ fe0->dvb.frontend = dvb_attach(m88ds3103_attach, ++ &bst_ds3103_config, ++ &i2c_bus->i2c_adap); ++ break; ++ ++ case CX23885_BOARD_DVBSKY_S952: ++ switch (port->nr) { ++ /* port B */ ++ case 1: ++ i2c_bus = &dev->i2c_bus[1]; ++ fe0->dvb.frontend = dvb_attach(m88ds3103_attach, ++ &dvbsky_ds3103_config_pri, ++ &i2c_bus->i2c_adap); ++ break; ++ /* port C */ ++ case 2: ++ i2c_bus = &dev->i2c_bus[0]; ++ fe0->dvb.frontend = dvb_attach(m88ds3103_attach, ++ &dvbsky_ds3103_config_sec, ++ &i2c_bus->i2c_adap); ++ break; ++ } ++ break; + +- fe0->dvb.frontend = dvb_attach(stv090x_attach, +- &prof_8000_stv090x_config, +- &i2c_bus->i2c_adap, +- STV090x_DEMODULATOR_0); +- if (fe0->dvb.frontend != NULL) { +- if (!dvb_attach(stb6100_attach, +- fe0->dvb.frontend, +- &prof_8000_stb6100_config, +- &i2c_bus->i2c_adap)) +- goto frontend_detach; ++ case CX23885_BOARD_DVBSKY_S950_CI: ++ i2c_bus = &dev->i2c_bus[1]; ++ fe0->dvb.frontend = dvb_attach(m88ds3103_attach, ++ &dvbsky_ds3103_ci_config, ++ &i2c_bus->i2c_adap); ++ break; ++ ++ case CX23885_BOARD_DVBSKY_C2800E_CI: ++ i2c_bus = &dev->i2c_bus[1]; ++ fe0->dvb.frontend = dvb_attach(m88dc2800_attach, ++ &dvbsky_dc2800_config, ++ &i2c_bus->i2c_adap); ++ break; + +- fe0->dvb.frontend->ops.set_voltage = p8000_set_voltage; ++ case CX23885_BOARD_DVBSKY_T9580: ++ switch (port->nr) { ++ /* port B */ ++ case 1: ++ i2c_bus = &dev->i2c_bus[1]; ++ fe0->dvb.frontend = dvb_attach(m88ds3103_attach, ++ &dvbsky_ds3103_config_pri, ++ &i2c_bus->i2c_adap); ++ break; ++ /* port C */ ++ case 2: ++ break; + } + break; ++ ++ case CX23885_BOARD_PROF_8000: ++ i2c_bus = &dev->i2c_bus[0]; ++ ++ fe0->dvb.frontend = dvb_attach(stv090x_attach, ++ &prof_8000_stv090x_config, ++ &i2c_bus->i2c_adap, ++ STV090x_DEMODULATOR_0); ++ if (fe0->dvb.frontend != NULL) { ++ if (!dvb_attach(stb6100_attach, ++ fe0->dvb.frontend, ++ &prof_8000_stb6100_config, ++ &i2c_bus->i2c_adap)) ++ goto frontend_detach; ++ ++ fe0->dvb.frontend->ops.set_voltage = p8000_set_voltage; ++ } ++ break; + case CX23885_BOARD_HAUPPAUGE_HVR4400: + i2c_bus = &dev->i2c_bus[0]; + fe0->dvb.frontend = dvb_attach(tda10071_attach, +@@ -1325,7 +1471,7 @@ + printk(KERN_INFO "NetUP Dual DVB-S2 CI card port%d MAC=%pM\n", + port->nr, port->frontends.adapter.proposed_mac); + +- netup_ci_init(port); ++ netup_ci_init(port, false); + break; + } + case CX23885_BOARD_NETUP_DUAL_DVB_T_C_CI_RF: { +@@ -1352,6 +1498,41 @@ + memcpy(port->frontends.adapter.proposed_mac, eeprom + 0xa0, 6); + break; + } ++ case CX23885_BOARD_BST_PS8512: ++ case CX23885_BOARD_DVBSKY_S950: ++ case CX23885_BOARD_DVBSKY_S952: ++ case CX23885_BOARD_DVBSKY_T9580:{ ++ u8 eeprom[256]; /* 24C02 i2c eeprom */ ++ ++ if(port->nr > 2) ++ break; ++ ++ dev->i2c_bus[0].i2c_client.addr = 0xa0 >> 1; ++ tveeprom_read(&dev->i2c_bus[0].i2c_client, eeprom, sizeof(eeprom)); ++ printk(KERN_INFO "DVBSKY PCIe MAC= %pM\n", eeprom + 0xc0+(port->nr-1)*8); ++ memcpy(port->frontends.adapter.proposed_mac, eeprom + 0xc0 + ++ (port->nr-1)*8, 6); ++ break; ++ } ++ case CX23885_BOARD_DVBSKY_S950_CI: { ++ u8 eeprom[256]; /* 24C02 i2c eeprom */ ++ ++ if(port->nr > 2) ++ break; ++ ++ dev->i2c_bus[0].i2c_client.addr = 0xa0 >> 1; ++ tveeprom_read(&dev->i2c_bus[0].i2c_client, eeprom, sizeof(eeprom)); ++ printk(KERN_INFO "DVBSKY PCIe MAC= %pM\n", eeprom + 0xc0+(port->nr-1)*8); ++ memcpy(port->frontends.adapter.proposed_mac, eeprom + 0xc0 + ++ (port->nr-1)*8, 6); ++ ++ netup_ci_init(port, true); ++ break; ++ } ++ case CX23885_BOARD_DVBSKY_C2800E_CI: { ++ netup_ci_init(port, true); ++ break; ++ } + } + + return ret; +@@ -1434,6 +1615,8 @@ + + switch (port->dev->board) { + case CX23885_BOARD_NETUP_DUAL_DVBS2_CI: ++ case CX23885_BOARD_DVBSKY_S950_CI: ++ case CX23885_BOARD_DVBSKY_C2800E_CI: + netup_ci_exit(port); + break; + case CX23885_BOARD_NETUP_DUAL_DVB_T_C_CI_RF: +diff -urN a/drivers/media/pci/cx23885/cx23885.h b/drivers/media/pci/cx23885/cx23885.h +--- a/drivers/media/pci/cx23885/cx23885.h 2013-04-29 08:36:01.000000000 +0800 ++++ b/drivers/media/pci/cx23885/cx23885.h 2013-05-03 17:14:20.000000000 +0800 +@@ -94,6 +94,14 @@ + #define CX23885_BOARD_HAUPPAUGE_HVR4400 38 + #define CX23885_BOARD_AVERMEDIA_HC81R 39 + ++#define CX23885_BOARD_BASE_INDEX 40 ++#define CX23885_BOARD_BST_PS8512 (CX23885_BOARD_BASE_INDEX) ++#define CX23885_BOARD_DVBSKY_S952 (CX23885_BOARD_BASE_INDEX+1) ++#define CX23885_BOARD_DVBSKY_S950 (CX23885_BOARD_BASE_INDEX+2) ++#define CX23885_BOARD_DVBSKY_S950_CI (CX23885_BOARD_BASE_INDEX+3) ++#define CX23885_BOARD_DVBSKY_C2800E_CI (CX23885_BOARD_BASE_INDEX+4) ++#define CX23885_BOARD_DVBSKY_T9580 (CX23885_BOARD_BASE_INDEX+5) ++ + #define GPIO_0 0x00000001 + #define GPIO_1 0x00000002 + #define GPIO_2 0x00000004 +@@ -231,7 +239,7 @@ + */ + u32 clk_freq; + struct cx23885_input input[MAX_CX23885_INPUT]; +- int ci_type; /* for NetUP */ ++ int ci_type; /* 1 and 2 for NetUP, 3 for DVBSky. */ + /* Force bottom field first during DMA (888 workaround) */ + u32 force_bff; + }; +diff -urN a/drivers/media/pci/cx23885/cx23885-input.c b/drivers/media/pci/cx23885/cx23885-input.c +--- a/drivers/media/pci/cx23885/cx23885-input.c 2013-04-29 08:36:01.000000000 +0800 ++++ b/drivers/media/pci/cx23885/cx23885-input.c 2013-05-03 17:42:09.000000000 +0800 +@@ -89,6 +89,12 @@ + case CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL: + case CX23885_BOARD_TEVII_S470: + case CX23885_BOARD_HAUPPAUGE_HVR1250: ++ case CX23885_BOARD_BST_PS8512: ++ case CX23885_BOARD_DVBSKY_S950: ++ case CX23885_BOARD_DVBSKY_S952: ++ case CX23885_BOARD_DVBSKY_S950_CI: ++ case CX23885_BOARD_DVBSKY_C2800E_CI: ++ case CX23885_BOARD_DVBSKY_T9580: + case CX23885_BOARD_MYGICA_X8507: + /* + * The only boards we handle right now. However other boards +@@ -141,6 +147,12 @@ + case CX23885_BOARD_HAUPPAUGE_HVR1850: + case CX23885_BOARD_HAUPPAUGE_HVR1290: + case CX23885_BOARD_HAUPPAUGE_HVR1250: ++ case CX23885_BOARD_BST_PS8512: ++ case CX23885_BOARD_DVBSKY_S950: ++ case CX23885_BOARD_DVBSKY_S952: ++ case CX23885_BOARD_DVBSKY_S950_CI: ++ case CX23885_BOARD_DVBSKY_C2800E_CI: ++ case CX23885_BOARD_DVBSKY_T9580: + case CX23885_BOARD_MYGICA_X8507: + /* + * The IR controller on this board only returns pulse widths. +@@ -291,6 +303,18 @@ + /* A guess at the remote */ + rc_map = RC_MAP_TEVII_NEC; + break; ++ case CX23885_BOARD_BST_PS8512: ++ case CX23885_BOARD_DVBSKY_S950: ++ case CX23885_BOARD_DVBSKY_S952: ++ case CX23885_BOARD_DVBSKY_S950_CI: ++ case CX23885_BOARD_DVBSKY_C2800E_CI: ++ case CX23885_BOARD_DVBSKY_T9580: ++ /* Integrated CX2388[58] IR controller */ ++ driver_type = RC_DRIVER_IR_RAW; ++ allowed_protos = RC_BIT_ALL; ++ /* A guess at the remote */ ++ rc_map = RC_MAP_DVBSKY; ++ break; + case CX23885_BOARD_MYGICA_X8507: + /* Integrated CX23885 IR controller */ + driver_type = RC_DRIVER_IR_RAW; +diff -urN a/drivers/media/pci/cx23885/Kconfig b/drivers/media/pci/cx23885/Kconfig +--- a/drivers/media/pci/cx23885/Kconfig 2013-04-29 08:36:01.000000000 +0800 ++++ b/drivers/media/pci/cx23885/Kconfig 2013-05-03 17:43:05.000000000 +0800 +@@ -23,6 +23,8 @@ + select DVB_STB6100 if MEDIA_SUBDRV_AUTOSELECT + select DVB_STV6110 if MEDIA_SUBDRV_AUTOSELECT + select DVB_CX24116 if MEDIA_SUBDRV_AUTOSELECT ++ select DVB_M88DS3103 if MEDIA_SUBDRV_AUTOSELECT ++ select DVB_M88DC2800 if MEDIA_SUBDRV_AUTOSELECT + select DVB_STV0900 if MEDIA_SUBDRV_AUTOSELECT + select DVB_DS3000 if MEDIA_SUBDRV_AUTOSELECT + select DVB_TS2020 if MEDIA_SUBDRV_AUTOSELECT +diff -urN a/drivers/media/pci/cx88/cx88-cards.c b/drivers/media/pci/cx88/cx88-cards.c +--- a/drivers/media/pci/cx88/cx88-cards.c 2013-04-29 08:36:01.000000000 +0800 ++++ b/drivers/media/pci/cx88/cx88-cards.c 2013-05-03 17:06:55.000000000 +0800 +@@ -2309,6 +2309,18 @@ + } }, + .mpeg = CX88_MPEG_DVB, + }, ++ [CX88_BOARD_BST_PS8312] = { ++ .name = "Bestunar PS8312 DVB-S/S2", ++ .tuner_type = UNSET, ++ .radio_type = UNSET, ++ .tuner_addr = ADDR_UNSET, ++ .radio_addr = ADDR_UNSET, ++ .input = { { ++ .type = CX88_VMUX_DVB, ++ .vmux = 0, ++ } }, ++ .mpeg = CX88_MPEG_DVB, ++ }, + }; + + /* ------------------------------------------------------------------ */ +@@ -2813,6 +2825,10 @@ + .subvendor = 0x1822, + .subdevice = 0x0023, + .card = CX88_BOARD_TWINHAN_VP1027_DVBS, ++ }, { ++ .subvendor = 0x14f1, ++ .subdevice = 0x8312, ++ .card = CX88_BOARD_BST_PS8312, + }, + }; + +@@ -3547,6 +3563,12 @@ + cx_write(MO_SRST_IO, 1); + msleep(100); + break; ++ case CX88_BOARD_BST_PS8312: ++ cx_write(MO_GP1_IO, 0x808000); ++ msleep(100); ++ cx_write(MO_GP1_IO, 0x808080); ++ msleep(100); ++ break; + } /*end switch() */ + + +diff -urN a/drivers/media/pci/cx88/cx88-dvb.c b/drivers/media/pci/cx88/cx88-dvb.c +--- a/drivers/media/pci/cx88/cx88-dvb.c 2013-04-29 08:36:01.000000000 +0800 ++++ b/drivers/media/pci/cx88/cx88-dvb.c 2013-05-03 17:09:09.000000000 +0800 +@@ -54,6 +54,7 @@ + #include "stv0288.h" + #include "stb6000.h" + #include "cx24116.h" ++#include "m88ds3103.h" + #include "stv0900.h" + #include "stb6100.h" + #include "stb6100_proc.h" +@@ -459,6 +460,56 @@ + return core->prev_set_voltage(fe, voltage); + return 0; + } ++/*CX88_BOARD_BST_PS8312*/ ++static int bst_dvbs_set_voltage(struct dvb_frontend *fe, ++ fe_sec_voltage_t voltage) ++{ ++ struct cx8802_dev *dev= fe->dvb->priv; ++ struct cx88_core *core = dev->core; ++ ++ cx_write(MO_GP1_IO, 0x111111); ++ switch (voltage) { ++ case SEC_VOLTAGE_13: ++ cx_write(MO_GP1_IO, 0x020200); ++ break; ++ case SEC_VOLTAGE_18: ++ cx_write(MO_GP1_IO, 0x020202); ++ break; ++ case SEC_VOLTAGE_OFF: ++ cx_write(MO_GP1_IO, 0x111100); ++ break; ++ } ++ ++ if (core->prev_set_voltage) ++ return core->prev_set_voltage(fe, voltage); ++ return 0; ++} ++ ++static int bst_dvbs_set_voltage_v2(struct dvb_frontend *fe, ++ fe_sec_voltage_t voltage) ++{ ++ struct cx8802_dev *dev= fe->dvb->priv; ++ struct cx88_core *core = dev->core; ++ ++ cx_write(MO_GP1_IO, 0x111101); ++ switch (voltage) { ++ case SEC_VOLTAGE_13: ++ cx_write(MO_GP1_IO, 0x020200); ++ break; ++ case SEC_VOLTAGE_18: ++ ++ cx_write(MO_GP1_IO, 0x020202); ++ break; ++ case SEC_VOLTAGE_OFF: ++ ++ cx_write(MO_GP1_IO, 0x111110); ++ break; ++ } ++ ++ if (core->prev_set_voltage) ++ return core->prev_set_voltage(fe, voltage); ++ return 0; ++} + + static int vp1027_set_voltage(struct dvb_frontend *fe, + fe_sec_voltage_t voltage) +@@ -706,6 +757,11 @@ + .clk_out_div = 1, + }; + ++static struct m88ds3103_config dvbsky_ds3103_config = { ++ .demod_address = 0x68, ++ .set_ts_params = ds3000_set_ts_param, ++}; ++ + static const struct stv0900_config prof_7301_stv0900_config = { + .demod_address = 0x6a, + /* demod_mode = 0,*/ +@@ -1477,6 +1533,35 @@ + &tevii_ts2020_config, &core->i2c_adap); + fe0->dvb.frontend->ops.set_voltage = + tevii_dvbs_set_voltage; ++ } ++ break; ++ case CX88_BOARD_BST_PS8312: ++ fe0->dvb.frontend = dvb_attach(m88ds3103_attach, ++ &dvbsky_ds3103_config, ++ &core->i2c_adap); ++ if (fe0->dvb.frontend != NULL){ ++ int ret; ++ u8 b0[] = { 0x60 }; ++ u8 b1[2] = { 0 }; ++ struct i2c_msg msg[] = { ++ { ++ .addr = 0x50, ++ .flags = 0, ++ .buf = b0, ++ .len = 1 ++ }, { ++ .addr = 0x50, ++ .flags = I2C_M_RD, ++ .buf = b1, ++ .len = 2 ++ } ++ }; ++ ret = i2c_transfer(&core->i2c_adap, msg, 2); ++ printk("PS8312: config = %02x, %02x", b1[0],b1[1]); ++ if(b1[0] == 0xaa) ++ fe0->dvb.frontend->ops.set_voltage = bst_dvbs_set_voltage_v2; ++ else ++ fe0->dvb.frontend->ops.set_voltage = bst_dvbs_set_voltage; + } + break; + case CX88_BOARD_OMICOM_SS4_PCI: +diff -urN a/drivers/media/pci/cx88/cx88.h b/drivers/media/pci/cx88/cx88.h +--- a/drivers/media/pci/cx88/cx88.h 2013-04-29 08:36:01.000000000 +0800 ++++ b/drivers/media/pci/cx88/cx88.h 2013-05-03 17:05:57.000000000 +0800 +@@ -238,6 +238,7 @@ + #define CX88_BOARD_WINFAST_DTV1800H_XC4000 88 + #define CX88_BOARD_WINFAST_TV2000_XP_GLOBAL_6F36 89 + #define CX88_BOARD_WINFAST_TV2000_XP_GLOBAL_6F43 90 ++#define CX88_BOARD_BST_PS8312 91 + + enum cx88_itype { + CX88_VMUX_COMPOSITE1 = 1, +diff -urN a/drivers/media/pci/cx88/cx88-input.c b/drivers/media/pci/cx88/cx88-input.c +--- a/drivers/media/pci/cx88/cx88-input.c 2013-04-29 08:36:01.000000000 +0800 ++++ b/drivers/media/pci/cx88/cx88-input.c 2013-01-26 14:52:03.000000000 +0800 +@@ -419,6 +419,10 @@ + rc_type = RC_BIT_NEC; + ir->sampling = 0xff00; /* address */ + break; ++ case CX88_BOARD_BST_PS8312: ++ ir_codes = RC_MAP_DVBSKY; ++ ir->sampling = 0xff00; /* address */ ++ break; + } + + if (!ir_codes) { +diff -urN a/drivers/media/pci/cx88/Kconfig b/drivers/media/pci/cx88/Kconfig +--- a/drivers/media/pci/cx88/Kconfig 2013-04-29 08:36:01.000000000 +0800 ++++ b/drivers/media/pci/cx88/Kconfig 2013-05-03 17:10:41.000000000 +0800 +@@ -57,6 +57,7 @@ + select DVB_ISL6421 if MEDIA_SUBDRV_AUTOSELECT + select DVB_S5H1411 if MEDIA_SUBDRV_AUTOSELECT + select DVB_CX24116 if MEDIA_SUBDRV_AUTOSELECT ++ select DVB_M88DS3103 if MEDIA_SUBDRV_AUTOSELECT + select DVB_STV0299 if MEDIA_SUBDRV_AUTOSELECT + select DVB_STV0288 if MEDIA_SUBDRV_AUTOSELECT + select DVB_STB6000 if MEDIA_SUBDRV_AUTOSELECT +diff -urN a/drivers/media/rc/keymaps/Makefile b/drivers/media/rc/keymaps/Makefile +--- a/drivers/media/rc/keymaps/Makefile 2013-04-29 08:36:01.000000000 +0800 ++++ b/drivers/media/rc/keymaps/Makefile 2013-05-03 17:43:41.000000000 +0800 +@@ -27,6 +27,7 @@ + rc-dm1105-nec.o \ + rc-dntv-live-dvb-t.o \ + rc-dntv-live-dvbt-pro.o \ ++ rc-dvbsky.o \ + rc-em-terratec.o \ + rc-encore-enltv2.o \ + rc-encore-enltv.o \ +diff -urN a/drivers/media/rc/keymaps/rc-dvbsky.c b/drivers/media/rc/keymaps/rc-dvbsky.c +--- a/drivers/media/rc/keymaps/rc-dvbsky.c 1970-01-01 08:00:00.000000000 +0800 ++++ b/drivers/media/rc/keymaps/rc-dvbsky.c 2013-01-26 14:52:49.000000000 +0800 +@@ -0,0 +1,78 @@ ++/* rc-dvbsky.c - Keytable for Dvbsky Remote Controllers ++ * ++ * keymap imported from ir-keymaps.c ++ * ++ * ++ * Copyright (c) 2010-2012 by Nibble Max nibble.max@gmail.com ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ */ ++ ++#include <media/rc-map.h> ++#include <linux/module.h> ++/* ++ * This table contains the complete RC5 code, instead of just the data part ++ */ ++ ++static struct rc_map_table rc5_dvbsky[] = { ++ { 0x0000, KEY_0 }, ++ { 0x0001, KEY_1 }, ++ { 0x0002, KEY_2 }, ++ { 0x0003, KEY_3 }, ++ { 0x0004, KEY_4 }, ++ { 0x0005, KEY_5 }, ++ { 0x0006, KEY_6 }, ++ { 0x0007, KEY_7 }, ++ { 0x0008, KEY_8 }, ++ { 0x0009, KEY_9 }, ++ { 0x000a, KEY_MUTE }, ++ { 0x000d, KEY_OK }, ++ { 0x000b, KEY_STOP }, ++ { 0x000c, KEY_EXIT }, ++ { 0x000e, KEY_CAMERA }, /*Snap shot*/ ++ { 0x000f, KEY_SUBTITLE }, /*PIP*/ ++ { 0x0010, KEY_VOLUMEUP }, ++ { 0x0011, KEY_VOLUMEDOWN }, ++ { 0x0012, KEY_FAVORITES }, ++ { 0x0013, KEY_LIST }, /*Info*/ ++ { 0x0016, KEY_PAUSE }, ++ { 0x0017, KEY_PLAY }, ++ { 0x001f, KEY_RECORD }, ++ { 0x0020, KEY_CHANNELDOWN }, ++ { 0x0021, KEY_CHANNELUP }, ++ { 0x0025, KEY_POWER2 }, ++ { 0x0026, KEY_REWIND }, ++ { 0x0027, KEY_FASTFORWARD }, ++ { 0x0029, KEY_LAST }, ++ { 0x002b, KEY_MENU }, ++ { 0x002c, KEY_EPG }, ++ { 0x002d, KEY_ZOOM }, ++}; ++ ++static struct rc_map_list rc5_dvbsky_map = { ++ .map = { ++ .scan = rc5_dvbsky, ++ .size = ARRAY_SIZE(rc5_dvbsky), ++ .rc_type = RC_TYPE_RC5, ++ .name = RC_MAP_DVBSKY, ++ } ++}; ++ ++static int __init init_rc_map_rc5_dvbsky(void) ++{ ++ return rc_map_register(&rc5_dvbsky_map); ++} ++ ++static void __exit exit_rc_map_rc5_dvbsky(void) ++{ ++ rc_map_unregister(&rc5_dvbsky_map); ++} ++ ++module_init(init_rc_map_rc5_dvbsky) ++module_exit(exit_rc_map_rc5_dvbsky) ++ ++MODULE_LICENSE("GPL"); ++MODULE_AUTHOR("Nibble Max nibble.max@gmail.com"); +diff -urN a/drivers/media/usb/dvb-usb-v2/dvbsky.c b/drivers/media/usb/dvb-usb-v2/dvbsky.c +--- a/drivers/media/usb/dvb-usb-v2/dvbsky.c 1970-01-01 08:00:00.000000000 +0800 ++++ b/drivers/media/usb/dvb-usb-v2/dvbsky.c 2013-05-03 17:47:38.000000000 +0800 +@@ -0,0 +1,665 @@ ++/* ++ * Driver for DVBSky USB2.0 receiver ++ * ++ * Copyright (C) 2013 Max nibble nibble.max@gmail.com ++ * ++ * CIMax code is copied and modified from: ++ * CIMax2(R) SP2 driver in conjunction with NetUp Dual DVB-S2 CI card ++ * Copyright (C) 2009 NetUP Inc. ++ * Copyright (C) 2009 Igor M. Liplianin liplianin@netup.ru ++ * Copyright (C) 2009 Abylay Ospan aospan@netup.ru ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++#include "dvb_ca_en50221.h" ++#include "dvb_usb.h" ++#include "m88ds3103.h" ++ ++static int dvbsky_debug; ++module_param(dvbsky_debug, int, 0644); ++MODULE_PARM_DESC(dvbsky_debug, "Activates dvbsky usb debugging (default:0)"); ++ ++#define DVBSKY_CI_CTL 0x04 ++#define DVBSKY_CI_RD 1 ++ ++#define dprintk(args...) \ ++ do { \ ++ if (dvbsky_debug) \ ++ printk(KERN_INFO "dvbsky_usb: " args); \ ++ } while (0) ++ ++DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr); ++ ++struct dvbsky_state { ++ struct mutex stream_mutex; ++ u8 has_ci; ++ u8 ci_attached; ++ struct dvb_ca_en50221 ci; ++ unsigned long next_status_checked_time; ++ u8 ci_i2c_addr; ++ u8 current_ci_flag; ++ int ci_status; ++}; ++ ++static int dvbsky_stream_ctrl(struct dvb_usb_device *d, u8 onoff) ++{ ++ struct dvbsky_state *state = d_to_priv(d); ++ int ret; ++ u8 obuf_pre[3] = { 0x37, 0, 0 }; ++ u8 obuf_post[3] = { 0x36, 3, 0 }; ++ dprintk("%s() -off \n", __func__); ++ mutex_lock(&state->stream_mutex); ++ ret = dvb_usbv2_generic_write(d, obuf_pre, 3); ++ if (!ret && onoff) { ++ msleep(10); ++ ret = dvb_usbv2_generic_write(d, obuf_post, 3); ++ dprintk("%s() -on \n", __func__); ++ } ++ mutex_unlock(&state->stream_mutex); ++ return ret; ++} ++ ++/* CI opertaions */ ++static int dvbsky_ci_read_i2c(struct i2c_adapter *i2c_adap, u8 addr, u8 reg, ++ u8 *buf, int len) ++{ ++ int ret; ++ struct i2c_msg msg[] = { ++ { ++ .addr = addr, ++ .flags = 0, ++ .buf = ®, ++ .len = 1 ++ }, { ++ .addr = addr, ++ .flags = I2C_M_RD, ++ .buf = buf, ++ .len = len ++ } ++ }; ++ ++ ret = i2c_transfer(i2c_adap, msg, 2); ++ ++ if (ret != 2) { ++ dprintk("%s: error, Reg = 0x%02x, Status = %d\n", __func__, reg, ret); ++ return -1; ++ } ++ return 0; ++} ++ ++static int dvbsky_ci_write_i2c(struct i2c_adapter *i2c_adap, u8 addr, u8 reg, ++ u8 *buf, int len) ++{ ++ int ret; ++ u8 buffer[len + 1]; ++ ++ struct i2c_msg msg = { ++ .addr = addr, ++ .flags = 0, ++ .buf = &buffer[0], ++ .len = len + 1 ++ }; ++ ++ buffer[0] = reg; ++ memcpy(&buffer[1], buf, len); ++ ++ ret = i2c_transfer(i2c_adap, &msg, 1); ++ ++ if (ret != 1) { ++ dprintk("%s: error, Reg=[0x%02x], Status=%d\n", __func__, reg, ret); ++ return -1; ++ } ++ return 0; ++} ++ ++static int dvbsky_ci_op_cam(struct dvb_ca_en50221 *ci, int slot, ++ u8 flag, u8 read, int addr, u8 data) ++{ ++ struct dvb_usb_device *d = ci->data; ++ struct dvbsky_state *state = d_to_priv(d); ++ u8 store; ++ int ret; ++ u8 command[4], respond[2], command_size, respond_size; ++ ++ /*dprintk("%s()\n", __func__);*/ ++ if (0 != slot) ++ return -EINVAL; ++ ++ if (state->current_ci_flag != flag) { ++ ret = dvbsky_ci_read_i2c(&d->i2c_adap, state->ci_i2c_addr, ++ 0, &store, 1); ++ if (ret != 0) ++ return ret; ++ ++ store &= ~0x0c; ++ store |= flag; ++ ++ ret = dvbsky_ci_write_i2c(&d->i2c_adap, state->ci_i2c_addr, ++ 0, &store, 1); ++ if (ret != 0) ++ return ret; ++ } ++ state->current_ci_flag = flag; ++ ++ command[1] = (u8)((addr >> 8) & 0xff); /*high part of address*/ ++ command[2] = (u8)(addr & 0xff); /*low part of address*/ ++ if (read) { ++ command[0] = 0x71; ++ command_size = 3; ++ respond_size = 2; ++ } else { ++ command[0] = 0x70; ++ command[3] = data; ++ command_size = 4; ++ respond_size = 1; ++ } ++ ret = dvb_usbv2_generic_rw(d, command, command_size, respond, respond_size); ++ ++ return (read) ? respond[1] : 0; ++} ++ ++static int dvbsky_ci_read_attribute_mem(struct dvb_ca_en50221 *ci, ++ int slot, int addr) ++{ ++ return dvbsky_ci_op_cam(ci, slot, 0, DVBSKY_CI_RD, addr, 0); ++} ++ ++static int dvbsky_ci_write_attribute_mem(struct dvb_ca_en50221 *ci, ++ int slot, int addr, u8 data) ++{ ++ return dvbsky_ci_op_cam(ci, slot, 0, 0, addr, data); ++} ++ ++static int dvbsky_ci_read_cam_ctl(struct dvb_ca_en50221 *ci, int slot, u8 addr) ++{ ++ return dvbsky_ci_op_cam(ci, slot, DVBSKY_CI_CTL, DVBSKY_CI_RD, addr, 0); ++} ++ ++static int dvbsky_ci_write_cam_ctl(struct dvb_ca_en50221 *ci, int slot, ++ u8 addr, u8 data) ++{ ++ return dvbsky_ci_op_cam(ci, slot, DVBSKY_CI_CTL, 0, addr, data); ++} ++ ++static int dvbsky_ci_slot_reset(struct dvb_ca_en50221 *ci, int slot) ++{ ++ struct dvb_usb_device *d = ci->data; ++ struct dvbsky_state *state = d_to_priv(d); ++ u8 buf = 0x80; ++ int ret; ++ dprintk("%s() slot=%d\n", __func__, slot); ++ ++ if (0 != slot) ++ return -EINVAL; ++ ++ udelay(500); ++ ret = dvbsky_ci_write_i2c(&d->i2c_adap, state->ci_i2c_addr, ++ 0, &buf, 1); ++ ++ if (ret != 0) ++ return ret; ++ ++ udelay(500); ++ ++ buf = 0x00; ++ ret = dvbsky_ci_write_i2c(&d->i2c_adap, state->ci_i2c_addr, ++ 0, &buf, 1); ++ msleep(1000); ++ dprintk("%s() slot=%d complete\n", __func__, slot); ++ return 0; ++ ++} ++ ++static int dvbsky_ci_slot_shutdown(struct dvb_ca_en50221 *ci, int slot) ++{ ++ /* not implemented */ ++ dprintk("%s()\n", __func__); ++ return 0; ++} ++ ++static int dvbsky_ci_slot_ts_enable(struct dvb_ca_en50221 *ci, int slot) ++{ ++ struct dvb_usb_device *d = ci->data; ++ struct dvbsky_state *state = d_to_priv(d); ++ u8 buf; ++ int ret; ++ ++ dprintk("%s()\n", __func__); ++ if (0 != slot) ++ return -EINVAL; ++ ++ dvbsky_ci_read_i2c(&d->i2c_adap, state->ci_i2c_addr, ++ 0, &buf, 1); ++ buf |= 0x60; ++ ++ ret = dvbsky_ci_write_i2c(&d->i2c_adap, state->ci_i2c_addr, ++ 0, &buf, 1); ++ return ret; ++} ++ ++static int dvbsky_ci_poll_slot_status(struct dvb_ca_en50221 *ci, int slot, ++ int open) ++{ ++ struct dvb_usb_device *d = ci->data; ++ struct dvbsky_state *state = d_to_priv(d); ++ int ret = 0; ++ u8 buf = 0; ++ /*dprintk("%s()\n", __func__);*/ ++ ++ /* CAM module INSERT/REMOVE processing. slow operation because of i2c ++ * transfers */ ++ if (time_after(jiffies, state->next_status_checked_time)) { ++ ret = dvbsky_ci_read_i2c(&d->i2c_adap, state->ci_i2c_addr, ++ 0, &buf, 1); ++ ++ /*dprintk("%s() status=%x\n", __func__, buf);*/ ++ ++ state->next_status_checked_time = jiffies ++ + msecs_to_jiffies(1000); ++ ++ if (ret != 0) ++ return 0; ++ ++ if (buf & 1) { ++ state->ci_status = DVB_CA_EN50221_POLL_CAM_PRESENT | ++ DVB_CA_EN50221_POLL_CAM_READY; ++ } ++ else ++ state->ci_status = 0; ++ } ++ /*dprintk("%s() ret=%x\n", __func__, state->ci_status);*/ ++ return state->ci_status; ++} ++ ++static int dvbsky_ci_init(struct dvb_usb_device *d) ++{ ++ struct dvbsky_state *state = d_to_priv(d); ++ int ret; ++ u8 cimax_init[34] = { ++ 0x00, /* module A control*/ ++ 0x00, /* auto select mask high A */ ++ 0x00, /* auto select mask low A */ ++ 0x00, /* auto select pattern high A */ ++ 0x00, /* auto select pattern low A */ ++ 0x44, /* memory access time A */ ++ 0x00, /* invert input A */ ++ 0x00, /* RFU */ ++ 0x00, /* RFU */ ++ 0x00, /* module B control*/ ++ 0x00, /* auto select mask high B */ ++ 0x00, /* auto select mask low B */ ++ 0x00, /* auto select pattern high B */ ++ 0x00, /* auto select pattern low B */ ++ 0x44, /* memory access time B */ ++ 0x00, /* invert input B */ ++ 0x00, /* RFU */ ++ 0x00, /* RFU */ ++ 0x00, /* auto select mask high Ext */ ++ 0x00, /* auto select mask low Ext */ ++ 0x00, /* auto select pattern high Ext */ ++ 0x00, /* auto select pattern low Ext */ ++ 0x00, /* RFU */ ++ 0x02, /* destination - module A */ ++ 0x01, /* power on (use it like store place) */ ++ 0x00, /* RFU */ ++ 0x00, /* int status read only */ ++ 0x00, /* Max: Disable the interrupt in USB solution.*/ ++ 0x05, /* EXTINT=active-high, INT=push-pull */ ++ 0x00, /* USCG1 */ ++ 0x04, /* ack active low */ ++ 0x00, /* LOCK = 0 */ ++ 0x22, /* serial mode, rising in, rising out, MSB first*/ ++ 0x00 /* synchronization */ ++ }; ++ dprintk("%s()\n", __func__); ++ state->current_ci_flag = 0xff; ++ state->ci_status = 0; ++ state->next_status_checked_time = jiffies + msecs_to_jiffies(1000); ++ state->ci_i2c_addr = 0x40; ++ ++ state->ci.owner = THIS_MODULE; ++ state->ci.read_attribute_mem = dvbsky_ci_read_attribute_mem; ++ state->ci.write_attribute_mem = dvbsky_ci_write_attribute_mem; ++ state->ci.read_cam_control = dvbsky_ci_read_cam_ctl; ++ state->ci.write_cam_control = dvbsky_ci_write_cam_ctl; ++ state->ci.slot_reset = dvbsky_ci_slot_reset; ++ state->ci.slot_shutdown = dvbsky_ci_slot_shutdown; ++ state->ci.slot_ts_enable = dvbsky_ci_slot_ts_enable; ++ state->ci.poll_slot_status = dvbsky_ci_poll_slot_status; ++ state->ci.data = d; ++ ++ ret = dvbsky_ci_write_i2c(&d->i2c_adap, state->ci_i2c_addr, ++ 0, &cimax_init[0], 34); ++ /* lock registers */ ++ ret |= dvbsky_ci_write_i2c(&d->i2c_adap, state->ci_i2c_addr, ++ 0x1f, &cimax_init[0x18], 1); ++ /* power on slots */ ++ ret |= dvbsky_ci_write_i2c(&d->i2c_adap, state->ci_i2c_addr, ++ 0x18, &cimax_init[0x18], 1); ++ if (0 != ret) ++ return ret; ++ ++ ret = dvb_ca_en50221_init(&d->adapter[0].dvb_adap, &state->ci, 0, 1); ++ if (ret) ++ return ret; ++ state->ci_attached = 1; ++ dprintk("%s() complete.\n", __func__); ++ return 0; ++} ++ ++static void dvbsky_ci_release(struct dvb_usb_device *d) ++{ ++ struct dvbsky_state *state = d_to_priv(d); ++ ++ /* detach CI */ ++ if (state->ci_attached) ++ dvb_ca_en50221_release(&state->ci); ++ ++ return; ++} ++ ++static int dvbsky_streaming_ctrl(struct dvb_frontend *fe, int onoff) ++{ ++ struct dvb_usb_device *d = fe_to_d(fe); ++ /*dprintk("%s() %d\n", __func__, onoff);*/ ++ return dvbsky_stream_ctrl(d, (onoff == 0) ? 0 : 1); ++} ++ ++/* GPIO */ ++static int dvbsky_gpio_ctrl(struct dvb_usb_device *d, u8 gport, u8 value) ++{ ++ u8 obuf[64], ibuf[64]; ++ obuf[0] = 0x0e; ++ obuf[1] = gport; ++ obuf[2] = value; ++ return dvb_usbv2_generic_rw(d, obuf, 3, ibuf, 1); ++} ++ ++/* I2C */ ++static int dvbsky_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msg[], ++ int num) ++{ ++ struct dvb_usb_device *d = i2c_get_adapdata(adap); ++ int ret = 0; ++ u8 ibuf[64], obuf[64]; ++ ++ if (mutex_lock_interruptible(&d->i2c_mutex) < 0) ++ return -EAGAIN; ++ ++ if (num > 2) { ++ printk(KERN_ERR "dvbsky_usb: too many i2c messages[%d] than 2.", num); ++ ret = -EOPNOTSUPP; ++ goto i2c_error; ++ } ++ ++ if(num == 1) { ++ if (msg[0].len > 60) { ++ printk(KERN_ERR "dvbsky_usb: too many i2c bytes[%d] than 60.", msg[0].len); ++ ret = -EOPNOTSUPP; ++ goto i2c_error; ++ } ++ if (msg[0].flags & I2C_M_RD) { ++ /* single read */ ++ obuf[0] = 0x09; ++ obuf[1] = 0; ++ obuf[2] = msg[0].len; ++ obuf[3] = msg[0].addr; ++ ret = dvb_usbv2_generic_rw(d, obuf, 4, ibuf, msg[0].len + 1); ++ /*dprintk("%s(): read status = %d\n", __func__, ibuf[0]);*/ ++ if (!ret) ++ memcpy(msg[0].buf, &ibuf[1], msg[0].len); ++ } else { ++ /* write */ ++ obuf[0] = 0x08; ++ obuf[1] = msg[0].addr; ++ obuf[2] = msg[0].len; ++ memcpy(&obuf[3], msg[0].buf, msg[0].len); ++ ret = dvb_usbv2_generic_rw(d, obuf, msg[0].len + 3, ibuf, 1); ++ /*dprintk("%s(): write status = %d\n", __func__, ibuf[0]);*/ ++ } ++ } else { ++ if ((msg[0].len > 60) || (msg[1].len > 60)) { ++ printk(KERN_ERR "dvbsky_usb: too many i2c bytes[w-%d][r-%d] than 60.", msg[0].len, msg[1].len); ++ ret = -EOPNOTSUPP; ++ goto i2c_error; ++ } ++ /* write then read */ ++ obuf[0] = 0x09; ++ obuf[1] = msg[0].len; ++ obuf[2] = msg[1].len; ++ obuf[3] = msg[0].addr; ++ memcpy(&obuf[4], msg[0].buf, msg[0].len); ++ ret = dvb_usbv2_generic_rw(d, obuf, msg[0].len + 4, ibuf, msg[1].len + 1); ++ /*dprintk("%s(): write then read status = %d\n", __func__, ibuf[0]);*/ ++ if (!ret) ++ memcpy(msg[1].buf, &ibuf[1], msg[1].len); ++ } ++i2c_error: ++ mutex_unlock(&d->i2c_mutex); ++ return (ret) ? ret : num; ++} ++ ++static u32 dvbsky_i2c_func(struct i2c_adapter *adapter) ++{ ++ return I2C_FUNC_I2C; ++} ++ ++static struct i2c_algorithm dvbsky_i2c_algo = { ++ .master_xfer = dvbsky_i2c_xfer, ++ .functionality = dvbsky_i2c_func, ++}; ++ ++#if IS_ENABLED(CONFIG_RC_CORE) ++static int dvbsky_rc_query(struct dvb_usb_device *d) ++{ ++ u32 code = 0xffff; ++ u8 obuf[2], ibuf[2], toggle; ++ int ret; ++ obuf[0] = 0x10; ++ ret = dvb_usbv2_generic_rw(d, obuf, 1, ibuf, 2); ++ if(ret == 0) ++ code = (ibuf[0] << 8) | ibuf[1]; ++ ++ if (code != 0xffff) { ++ dprintk("rc code: %x", code); ++ toggle = (code & 0x800) ? 1 : 0; ++ code &= 0x3f; ++ rc_keydown(d->rc_dev, code, toggle); ++ } ++ return 0; ++} ++ ++static int dvbsky_get_rc_config(struct dvb_usb_device *d, struct dvb_usb_rc *rc) ++{ ++ rc->allowed_protos = RC_BIT_RC5; ++ rc->query = dvbsky_rc_query; ++ rc->interval = 300; ++ return 0; ++} ++#else ++ #define dvbsky_get_rc_config NULL ++#endif ++ ++static int dvbsky_sync_ctrl(struct dvb_frontend *fe) ++{ ++ struct dvb_usb_device *d = fe_to_d(fe); ++ return dvbsky_stream_ctrl(d, 1); ++} ++ ++static int dvbsky_usb_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage) ++{ ++ struct dvb_usb_device *d = fe_to_d(fe); ++ u8 value; ++ ++ if (voltage == SEC_VOLTAGE_OFF) ++ value = 0; ++ else ++ value = 1; ++ return dvbsky_gpio_ctrl(d, 0x80, value); ++} ++ ++static int dvbsky_read_mac_addr(struct dvb_usb_adapter *adap, u8 mac[6]) ++{ ++ struct dvb_usb_device *d = adap_to_d(adap); ++ u8 obuf[] = { 0x1e, 0x00 }; ++ u8 ibuf[6] = { 0 }; ++ struct i2c_msg msg[] = { ++ { ++ .addr = 0x51, ++ .flags = 0, ++ .buf = obuf, ++ .len = 2, ++ }, { ++ .addr = 0x51, ++ .flags = I2C_M_RD, ++ .buf = ibuf, ++ .len = 6, ++ ++ } ++ }; ++ ++ if (i2c_transfer(&d->i2c_adap, msg, 2) == 2) ++ memcpy(mac, ibuf, 6); ++ ++ printk(KERN_INFO "dvbsky_usb MAC address=%pM\n", mac); ++ ++ return 0; ++} ++ ++static struct m88ds3103_config dvbsky_usb_ds3103_config = { ++ .demod_address = 0x68, ++ .ci_mode = 1, ++ .pin_ctrl = 0x83, ++ .ts_mode = 0, ++ .start_ctrl = dvbsky_sync_ctrl, ++ .set_voltage = dvbsky_usb_set_voltage, ++}; ++ ++static int dvbsky_s960_attach(struct dvb_usb_adapter *adap) ++{ ++ struct dvbsky_state *state = adap_to_priv(adap); ++ struct dvb_usb_device *d = adap_to_d(adap); ++ int ret = 0; ++ ++ dprintk("%s()\n", __func__); ++ ++ dvbsky_gpio_ctrl(d, 0x04, 1); ++ ++ dvbsky_gpio_ctrl(d, 0x83, 0); ++ msleep(50); ++ dvbsky_gpio_ctrl(d, 0x83, 1); ++ msleep(20); ++ ++ adap->fe[0] = dvb_attach(m88ds3103_attach, ++ &dvbsky_usb_ds3103_config, ++ &d->i2c_adap); ++ if (!adap->fe[0]) { ++ printk(KERN_ERR "dvbsky_s960_attach fail."); ++ ret = -ENODEV; ++ } ++ ++ state->has_ci = 0; ++ ++ return ret; ++} ++ ++static int dvbsky_identify_state(struct dvb_usb_device *d, const char **name) ++{ ++ return WARM; ++} ++ ++static int dvbsky_init(struct dvb_usb_device *d) ++{ ++ struct dvbsky_state *state = d_to_priv(d); ++ int ret; ++ ++ /* use default interface */ ++ ret = usb_set_interface(d->udev, 0, 0); ++ if (ret) ++ return ret; ++ ++ mutex_init(&state->stream_mutex); ++ ++ /* attach CI */ ++ if (state->has_ci) { ++ dvbsky_gpio_ctrl(d, 0xc0, 1); ++ msleep(100); ++ dvbsky_gpio_ctrl(d, 0xc0, 0); ++ msleep(50); ++ state->ci_attached = 0; ++ ret = dvbsky_ci_init(d); ++ if (ret) ++ return ret; ++ } ++ return 0; ++} ++ ++static void dvbsky_exit(struct dvb_usb_device *d) ++{ ++ return dvbsky_ci_release(d); ++} ++ ++/* DVB USB Driver stuff */ ++static struct dvb_usb_device_properties dvbsky_s960_props = { ++ .driver_name = KBUILD_MODNAME, ++ .owner = THIS_MODULE, ++ .adapter_nr = adapter_nr, ++ .size_of_priv = sizeof(struct dvbsky_state), ++ ++ .generic_bulk_ctrl_endpoint = 0x01, ++ .generic_bulk_ctrl_endpoint_response = 0x81, ++ ++ .i2c_algo = &dvbsky_i2c_algo, ++ .frontend_attach = dvbsky_s960_attach, ++ .init = dvbsky_init, ++ .get_rc_config = dvbsky_get_rc_config, ++ .streaming_ctrl = dvbsky_streaming_ctrl, ++ .identify_state = dvbsky_identify_state, ++ .exit = dvbsky_exit, ++ .read_mac_address = dvbsky_read_mac_addr, ++ ++ .num_adapters = 1, ++ .adapter = { ++ { ++ .stream = DVB_USB_STREAM_BULK(0x82, 8, 4096), ++ } ++ } ++}; ++ ++static const struct usb_device_id dvbsky_id_table[] = { ++ { DVB_USB_DEVICE(0x0572, 0x6831, ++ &dvbsky_s960_props, "DVBSky S960/S860", RC_MAP_DVBSKY) }, ++ { } ++}; ++MODULE_DEVICE_TABLE(usb, dvbsky_id_table); ++ ++static struct usb_driver dvbsky_usb_driver = { ++ .name = KBUILD_MODNAME, ++ .id_table = dvbsky_id_table, ++ .probe = dvb_usbv2_probe, ++ .disconnect = dvb_usbv2_disconnect, ++ .suspend = dvb_usbv2_suspend, ++ .resume = dvb_usbv2_resume, ++ .reset_resume = dvb_usbv2_reset_resume, ++ .no_dynamic_id = 1, ++ .soft_unbind = 1, ++}; ++ ++module_usb_driver(dvbsky_usb_driver); ++ ++MODULE_AUTHOR("Max nibble nibble.max@gmail.com"); ++MODULE_DESCRIPTION("Driver for DVBSky USB2.0"); ++MODULE_LICENSE("GPL"); +diff -urN a/drivers/media/usb/dvb-usb-v2/Kconfig b/drivers/media/usb/dvb-usb-v2/Kconfig +--- a/drivers/media/usb/dvb-usb-v2/Kconfig 2013-04-29 08:36:01.000000000 +0800 ++++ b/drivers/media/usb/dvb-usb-v2/Kconfig 2013-05-03 17:45:35.000000000 +0800 +@@ -149,3 +149,10 @@ + help + Say Y here to support the Realtek RTL28xxU DVB USB receiver. + ++config DVB_USB_DVBSKY ++ tristate "DVBSky USB2.0 support" ++ depends on DVB_USB_V2 ++ select DVB_M88DS3103 if MEDIA_SUBDRV_AUTOSELECT ++ help ++ Say Y here to support the USB receivers from DVBSky. ++ +diff -urN a/drivers/media/usb/dvb-usb-v2/Makefile b/drivers/media/usb/dvb-usb-v2/Makefile +--- a/drivers/media/usb/dvb-usb-v2/Makefile 2013-04-29 08:36:01.000000000 +0800 ++++ b/drivers/media/usb/dvb-usb-v2/Makefile 2013-02-17 12:03:00.000000000 +0800 +@@ -43,6 +43,9 @@ + dvb-usb-rtl28xxu-objs := rtl28xxu.o + obj-$(CONFIG_DVB_USB_RTL28XXU) += dvb-usb-rtl28xxu.o + ++dvb-usb-dvbsky-objs := dvbsky.o ++obj-$(CONFIG_DVB_USB_DVBSKY) += dvb-usb-dvbsky.o ++ + ccflags-y += -I$(srctree)/drivers/media/dvb-core + ccflags-y += -I$(srctree)/drivers/media/dvb-frontends + ccflags-y += -I$(srctree)/drivers/media/tuners +diff -urN a/include/media/rc-map.h b/include/media/rc-map.h +--- a/include/media/rc-map.h 2013-04-29 08:36:01.000000000 +0800 ++++ b/include/media/rc-map.h 2013-05-03 17:02:46.000000000 +0800 +@@ -118,6 +118,7 @@ + #define RC_MAP_DM1105_NEC "rc-dm1105-nec" + #define RC_MAP_DNTV_LIVE_DVBT_PRO "rc-dntv-live-dvbt-pro" + #define RC_MAP_DNTV_LIVE_DVB_T "rc-dntv-live-dvb-t" ++#define RC_MAP_DVBSKY "rc-dvbsky" + #define RC_MAP_EMPTY "rc-empty" + #define RC_MAP_EM_TERRATEC "rc-em-terratec" + #define RC_MAP_ENCORE_ENLTV2 "rc-encore-enltv2" diff --git a/src/patches/mpage25-config.patch b/src/patches/mpage25-config.patch new file mode 100644 index 0000000..fefc547 --- /dev/null +++ b/src/patches/mpage25-config.patch @@ -0,0 +1,46 @@ +diff -up mpage-2.5.6/Makefile.config mpage-2.5.6/Makefile +--- mpage-2.5.6/Makefile.config 2004-05-30 21:38:31.000000000 +0200 ++++ mpage-2.5.6/Makefile 2009-03-27 11:11:14.652186064 +0100 +@@ -40,7 +40,7 @@ CC=gcc + # See glob.c for all possibilities + # + # PAGESIZE=Letter +-PAGESIZE=A4 ++PAGESIZE=Letter + + # + # Define your spooler type +@@ -50,7 +50,7 @@ PAGESIZE=A4 + SPOOL_TYPE=BSD_SPOOLER + + # PREFIX=e:/usr # OS/2 type +-PREFIX=/usr/local ++PREFIX=/usr + #PREFIX=/usr + BINDIR=$(PREFIX)/bin + LIBDIR=$(PREFIX)/share +@@ -73,7 +73,7 @@ SHEETMARGIN=18 + # + DEFAULT_DUPLEX=0 + +-DEFS = -DPAGE_DEF="${PAGESIZE}" -DLIBDIR="${LIBDIR}/mpage" -DDEFAULT_ENCODING=${ENCODING} -DDEFAULT_DUPLEX=${DEFAULT_DUPLEX} -DDEFAULTSMARGIN=${SHEETMARGIN} -DSPOOLER=${SPOOL_TYPE} # -DKANJI ++DEFS = -DPAGE_DEF="${PAGESIZE}" -DLIBDIR="${LIBDIR}/mpage" -DDEFAULT_ENCODING=${ENCODING} -DDEFAULT_DUPLEX=${DEFAULT_DUPLEX} -DDEFAULTSMARGIN=${SHEETMARGIN} -DSPOOLER=${SPOOL_TYPE} -DKANJI + + + ############################################################################ +@@ -107,7 +107,7 @@ O = .o + # If you are using gcc, you probably don't need to change anything here. + + # Linux: +-CFLAGS = -O2 -s $(DEFS) -Wall ++CFLAGS = $(RPM_OPT_FLAGS) $(DEFS) -Wall + + # AIX (xlC on aix 4): + #CFLAGS = -O2 -s $(DEFS) +@@ -183,5 +183,4 @@ install: + if [ ! -d $(MANDIR) ] ; then mkdir -p $(MANDIR) ; fi + cp mpage$(E) $(BINDIR) + cp mpage.1 $(MANDIR) +- -cp Encodings/* $(LIBDIR)/mpage +- -chmod 644 $(LIBDIR)/mpage/* ++ install -p -m 644 Encodings/* $(LIBDIR)/mpage diff --git a/src/patches/net-tools-1.60-kernel_headers-3.patch b/src/patches/net-tools-1.60-kernel_headers-3.patch new file mode 100644 index 0000000..89988f0 --- /dev/null +++ b/src/patches/net-tools-1.60-kernel_headers-3.patch @@ -0,0 +1,55 @@ +diff -Naur net-tools-1.60.org/hostname.c net-tools-1.60/hostname.c +--- net-tools-1.60.org/hostname.c 2001-04-08 19:04:23.000000000 +0200 ++++ net-tools-1.60/hostname.c 2013-08-26 11:56:50.131844273 +0200 +@@ -42,10 +42,16 @@ + #include "config.h" + #include "version.h" + #include "../intl.h" ++#include <linux/version.h> + + #if HAVE_AFDECnet ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 0) + #include <netdnet/dn.h> + #endif ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0) ++#include <linux/dn.h> ++#endif ++#endif + + char *Release = RELEASE, *Version = "hostname 1.100 (2001-04-14)"; + +diff -Naur net-tools-1.60.org/lib/tr.c net-tools-1.60/lib/tr.c +--- net-tools-1.60.org/lib/tr.c 2000-02-20 22:46:45.000000000 +0100 ++++ net-tools-1.60/lib/tr.c 2013-08-26 11:57:33.675175033 +0200 +@@ -20,7 +20,7 @@ + #include <sys/types.h> + #include <sys/socket.h> + #include <net/if_arp.h> +-#include <linux/if_tr.h> ++#include <netinet/if_tr.h> + #include <stdlib.h> + #include <stdio.h> + #include <errno.h> +diff -Naur net-tools-1.60.org/lib/x25_sr.c net-tools-1.60/lib/x25_sr.c +--- net-tools-1.60.org/lib/x25_sr.c 2000-05-20 15:38:10.000000000 +0200 ++++ net-tools-1.60/lib/x25_sr.c 2013-08-26 11:56:50.131844273 +0200 +@@ -22,6 +22,7 @@ + #include <sys/socket.h> + #include <sys/ioctl.h> + #include <linux/x25.h> ++#include <linux/version.h> + #include <ctype.h> + #include <errno.h> + #include <netdb.h> +@@ -77,7 +78,11 @@ + rt.sigdigits=sigdigits; + + /* x25_route_struct.address isn't type struct sockaddr_x25, Why? */ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0) + memcpy(&rt.address, &sx25.sx25_addr, sizeof(x25_address)); ++#else ++ memcpy(&rt.address, &sx25.sx25_addr, sizeof(struct x25_address)); ++#endif + + while (*args) { + if (!strcmp(*args,"device") || !strcmp(*args,"dev")) { diff --git a/src/patches/netfilter_layer7_2.22_kernel3.10-no_proc_interface.patch b/src/patches/netfilter_layer7_2.22_kernel3.10-no_proc_interface.patch new file mode 100644 index 0000000..5ffdd49 --- /dev/null +++ b/src/patches/netfilter_layer7_2.22_kernel3.10-no_proc_interface.patch @@ -0,0 +1,2166 @@ +diff -Naur linux-3.10.5.org/include/linux/netfilter/xt_layer7.h linux-3.10.5/include/linux/netfilter/xt_layer7.h +--- linux-3.10.5.org/include/linux/netfilter/xt_layer7.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.10.5/include/linux/netfilter/xt_layer7.h 2013-08-07 06:16:14.260806739 +0200 +@@ -0,0 +1,13 @@ ++#ifndef _XT_LAYER7_H ++#define _XT_LAYER7_H ++ ++#define MAX_PATTERN_LEN 8192 ++#define MAX_PROTOCOL_LEN 256 ++ ++struct xt_layer7_info { ++ char protocol[MAX_PROTOCOL_LEN]; ++ char pattern[MAX_PATTERN_LEN]; ++ u_int8_t invert; ++}; ++ ++#endif /* _XT_LAYER7_H */ +diff -Naur linux-3.10.5.org/include/net/netfilter/nf_conntrack.h linux-3.10.5/include/net/netfilter/nf_conntrack.h +--- linux-3.10.5.org/include/net/netfilter/nf_conntrack.h 2013-08-04 10:51:49.000000000 +0200 ++++ linux-3.10.5/include/net/netfilter/nf_conntrack.h 2013-08-07 06:16:14.280806062 +0200 +@@ -105,6 +105,22 @@ + struct net *ct_net; + #endif + ++#if defined(CONFIG_NETFILTER_XT_MATCH_LAYER7) || \ ++ defined(CONFIG_NETFILTER_XT_MATCH_LAYER7_MODULE) ++ struct { ++ /* ++ * e.g. "http". NULL before decision. "unknown" after decision ++ * if no match. ++ */ ++ char *app_proto; ++ /* ++ * application layer data so far. NULL after match decision. ++ */ ++ char *app_data; ++ unsigned int app_data_len; ++ } layer7; ++#endif ++ + /* Storage reserved for other modules, must be the last member */ + union nf_conntrack_proto proto; + }; +diff -Naur linux-3.10.5.org/net/netfilter/Kconfig linux-3.10.5/net/netfilter/Kconfig +--- linux-3.10.5.org/net/netfilter/Kconfig 2013-08-04 10:51:49.000000000 +0200 ++++ linux-3.10.5/net/netfilter/Kconfig 2013-08-07 06:16:14.310805048 +0200 +@@ -1205,6 +1205,26 @@ + + To compile it as a module, choose M here. If unsure, say N. + ++config NETFILTER_XT_MATCH_LAYER7 ++ tristate '"layer7" match support' ++ depends on NETFILTER_XTABLES ++ depends on IP_NF_CONNTRACK || NF_CONNTRACK ++ help ++ Say Y if you want to be able to classify connections (and their ++ packets) based on regular expression matching of their application ++ layer data. This is one way to classify applications such as ++ peer-to-peer filesharing systems that do not always use the same ++ port. ++ ++ To compile it as a module, choose M here. If unsure, say N. ++ ++config NETFILTER_XT_MATCH_LAYER7_DEBUG ++ bool 'Layer 7 debugging output' ++ depends on NETFILTER_XT_MATCH_LAYER7 ++ help ++ Say Y to get lots of debugging output. ++ ++ + config NETFILTER_XT_MATCH_STATISTIC + tristate '"statistic" match support' + depends on NETFILTER_ADVANCED +diff -Naur linux-3.10.5.org/net/netfilter/Makefile linux-3.10.5/net/netfilter/Makefile +--- linux-3.10.5.org/net/netfilter/Makefile 2013-08-04 10:51:49.000000000 +0200 ++++ linux-3.10.5/net/netfilter/Makefile 2013-08-07 06:16:14.320804710 +0200 +@@ -134,6 +134,7 @@ + obj-$(CONFIG_NETFILTER_XT_MATCH_SCTP) += xt_sctp.o + obj-$(CONFIG_NETFILTER_XT_MATCH_SOCKET) += xt_socket.o + obj-$(CONFIG_NETFILTER_XT_MATCH_STATE) += xt_state.o ++obj-$(CONFIG_NETFILTER_XT_MATCH_LAYER7) += xt_layer7.o + obj-$(CONFIG_NETFILTER_XT_MATCH_STATISTIC) += xt_statistic.o + obj-$(CONFIG_NETFILTER_XT_MATCH_STRING) += xt_string.o + obj-$(CONFIG_NETFILTER_XT_MATCH_TCPMSS) += xt_tcpmss.o +diff -Naur linux-3.10.5.org/net/netfilter/nf_conntrack_core.c linux-3.10.5/net/netfilter/nf_conntrack_core.c +--- linux-3.10.5.org/net/netfilter/nf_conntrack_core.c 2013-08-04 10:51:49.000000000 +0200 ++++ linux-3.10.5/net/netfilter/nf_conntrack_core.c 2013-08-07 06:20:34.941991510 +0200 +@@ -1,3 +1,6 @@ ++ ++ ++ + /* Connection state tracking for netfilter. This is separated from, + but required by, the NAT layer; it can also be used by an iptables + extension. */ +@@ -224,6 +227,13 @@ + * too. */ + nf_ct_remove_expectations(ct); + ++ #if defined(CONFIG_NETFILTER_XT_MATCH_LAYER7) || defined(CONFIG_NETFILTER_XT_MATCH_LAYER7_MODULE) ++ if(ct->layer7.app_proto) ++ kfree(ct->layer7.app_proto); ++ if(ct->layer7.app_data) ++ kfree(ct->layer7.app_data); ++ #endif ++ + /* We overload first tuple to link into unconfirmed or dying list.*/ + BUG_ON(hlist_nulls_unhashed(&ct->tuplehash[IP_CT_DIR_ORIGINAL].hnnode)); + hlist_nulls_del_rcu(&ct->tuplehash[IP_CT_DIR_ORIGINAL].hnnode); +diff -Naur linux-3.10.5.org/net/netfilter/nf_conntrack_standalone.c linux-3.10.5/net/netfilter/nf_conntrack_standalone.c +--- linux-3.10.5.org/net/netfilter/nf_conntrack_standalone.c 2013-08-04 10:51:49.000000000 +0200 ++++ linux-3.10.5/net/netfilter/nf_conntrack_standalone.c 2013-08-07 06:16:14.380802681 +0200 +@@ -240,6 +240,12 @@ + if (ct_show_delta_time(s, ct)) + goto release; + ++#if defined(CONFIG_NETFILTER_XT_MATCH_LAYER7) || defined(CONFIG_NETFILTER_XT_MATCH_LAYER7_MODULE) ++ if(ct->layer7.app_proto && ++ seq_printf(s, "l7proto=%s ", ct->layer7.app_proto)) ++ return -ENOSPC; ++#endif ++ + if (seq_printf(s, "use=%u\n", atomic_read(&ct->ct_general.use))) + goto release; + +diff -Naur linux-3.10.5.org/net/netfilter/regexp/regexp.c linux-3.10.5/net/netfilter/regexp/regexp.c +--- linux-3.10.5.org/net/netfilter/regexp/regexp.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.10.5/net/netfilter/regexp/regexp.c 2013-08-07 06:16:14.410801666 +0200 +@@ -0,0 +1,1197 @@ ++/* ++ * regcomp and regexec -- regsub and regerror are elsewhere ++ * @(#)regexp.c 1.3 of 18 April 87 ++ * ++ * Copyright (c) 1986 by University of Toronto. ++ * Written by Henry Spencer. Not derived from licensed software. ++ * ++ * Permission is granted to anyone to use this software for any ++ * purpose on any computer system, and to redistribute it freely, ++ * subject to the following restrictions: ++ * ++ * 1. The author is not responsible for the consequences of use of ++ * this software, no matter how awful, even if they arise ++ * from defects in it. ++ * ++ * 2. The origin of this software must not be misrepresented, either ++ * by explicit claim or by omission. ++ * ++ * 3. Altered versions must be plainly marked as such, and must not ++ * be misrepresented as being the original software. ++ * ++ * Beware that some of this code is subtly aware of the way operator ++ * precedence is structured in regular expressions. Serious changes in ++ * regular-expression syntax might require a total rethink. ++ * ++ * This code was modified by Ethan Sommer to work within the kernel ++ * (it now uses kmalloc etc..) ++ * ++ * Modified slightly by Matthew Strait to use more modern C. ++ */ ++ ++#include "regexp.h" ++#include "regmagic.h" ++ ++/* added by ethan and matt. Lets it work in both kernel and user space. ++(So iptables can use it, for instance.) Yea, it goes both ways... */ ++#if __KERNEL__ ++ #define malloc(foo) kmalloc(foo,GFP_ATOMIC) ++#else ++ #define printk(format,args...) printf(format,##args) ++#endif ++ ++void regerror(char * s) ++{ ++ printk("<3>Regexp: %s\n", s); ++ /* NOTREACHED */ ++} ++ ++/* ++ * The "internal use only" fields in regexp.h are present to pass info from ++ * compile to execute that permits the execute phase to run lots faster on ++ * simple cases. They are: ++ * ++ * regstart char that must begin a match; '\0' if none obvious ++ * reganch is the match anchored (at beginning-of-line only)? ++ * regmust string (pointer into program) that match must include, or NULL ++ * regmlen length of regmust string ++ * ++ * Regstart and reganch permit very fast decisions on suitable starting points ++ * for a match, cutting down the work a lot. Regmust permits fast rejection ++ * of lines that cannot possibly match. The regmust tests are costly enough ++ * that regcomp() supplies a regmust only if the r.e. contains something ++ * potentially expensive (at present, the only such thing detected is * or + ++ * at the start of the r.e., which can involve a lot of backup). Regmlen is ++ * supplied because the test in regexec() needs it and regcomp() is computing ++ * it anyway. ++ */ ++ ++/* ++ * Structure for regexp "program". This is essentially a linear encoding ++ * of a nondeterministic finite-state machine (aka syntax charts or ++ * "railroad normal form" in parsing technology). Each node is an opcode ++ * plus a "next" pointer, possibly plus an operand. "Next" pointers of ++ * all nodes except BRANCH implement concatenation; a "next" pointer with ++ * a BRANCH on both ends of it is connecting two alternatives. (Here we ++ * have one of the subtle syntax dependencies: an individual BRANCH (as ++ * opposed to a collection of them) is never concatenated with anything ++ * because of operator precedence.) The operand of some types of node is ++ * a literal string; for others, it is a node leading into a sub-FSM. In ++ * particular, the operand of a BRANCH node is the first node of the branch. ++ * (NB this is *not* a tree structure: the tail of the branch connects ++ * to the thing following the set of BRANCHes.) The opcodes are: ++ */ ++ ++/* definition number opnd? meaning */ ++#define END 0 /* no End of program. */ ++#define BOL 1 /* no Match "" at beginning of line. */ ++#define EOL 2 /* no Match "" at end of line. */ ++#define ANY 3 /* no Match any one character. */ ++#define ANYOF 4 /* str Match any character in this string. */ ++#define ANYBUT 5 /* str Match any character not in this string. */ ++#define BRANCH 6 /* node Match this alternative, or the next... */ ++#define BACK 7 /* no Match "", "next" ptr points backward. */ ++#define EXACTLY 8 /* str Match this string. */ ++#define NOTHING 9 /* no Match empty string. */ ++#define STAR 10 /* node Match this (simple) thing 0 or more times. */ ++#define PLUS 11 /* node Match this (simple) thing 1 or more times. */ ++#define OPEN 20 /* no Mark this point in input as start of #n. */ ++ /* OPEN+1 is number 1, etc. */ ++#define CLOSE 30 /* no Analogous to OPEN. */ ++ ++/* ++ * Opcode notes: ++ * ++ * BRANCH The set of branches constituting a single choice are hooked ++ * together with their "next" pointers, since precedence prevents ++ * anything being concatenated to any individual branch. The ++ * "next" pointer of the last BRANCH in a choice points to the ++ * thing following the whole choice. This is also where the ++ * final "next" pointer of each individual branch points; each ++ * branch starts with the operand node of a BRANCH node. ++ * ++ * BACK Normal "next" pointers all implicitly point forward; BACK ++ * exists to make loop structures possible. ++ * ++ * STAR,PLUS '?', and complex '*' and '+', are implemented as circular ++ * BRANCH structures using BACK. Simple cases (one character ++ * per match) are implemented with STAR and PLUS for speed ++ * and to minimize recursive plunges. ++ * ++ * OPEN,CLOSE ...are numbered at compile time. ++ */ ++ ++/* ++ * A node is one char of opcode followed by two chars of "next" pointer. ++ * "Next" pointers are stored as two 8-bit pieces, high order first. The ++ * value is a positive offset from the opcode of the node containing it. ++ * An operand, if any, simply follows the node. (Note that much of the ++ * code generation knows about this implicit relationship.) ++ * ++ * Using two bytes for the "next" pointer is vast overkill for most things, ++ * but allows patterns to get big without disasters. ++ */ ++#define OP(p) (*(p)) ++#define NEXT(p) (((*((p)+1)&0377)<<8) + (*((p)+2)&0377)) ++#define OPERAND(p) ((p) + 3) ++ ++/* ++ * See regmagic.h for one further detail of program structure. ++ */ ++ ++ ++/* ++ * Utility definitions. ++ */ ++#ifndef CHARBITS ++#define UCHARAT(p) ((int)*(unsigned char *)(p)) ++#else ++#define UCHARAT(p) ((int)*(p)&CHARBITS) ++#endif ++ ++#define FAIL(m) { regerror(m); return(NULL); } ++#define ISMULT(c) ((c) == '*' || (c) == '+' || (c) == '?') ++#define META "^$.[()|?+*\" ++ ++/* ++ * Flags to be passed up and down. ++ */ ++#define HASWIDTH 01 /* Known never to match null string. */ ++#define SIMPLE 02 /* Simple enough to be STAR/PLUS operand. */ ++#define SPSTART 04 /* Starts with * or +. */ ++#define WORST 0 /* Worst case. */ ++ ++/* ++ * Global work variables for regcomp(). ++ */ ++struct match_globals { ++char *reginput; /* String-input pointer. */ ++char *regbol; /* Beginning of input, for ^ check. */ ++char **regstartp; /* Pointer to startp array. */ ++char **regendp; /* Ditto for endp. */ ++char *regparse; /* Input-scan pointer. */ ++int regnpar; /* () count. */ ++char regdummy; ++char *regcode; /* Code-emit pointer; ®dummy = don't. */ ++long regsize; /* Code size. */ ++}; ++ ++/* ++ * Forward declarations for regcomp()'s friends. ++ */ ++#ifndef STATIC ++#define STATIC static ++#endif ++STATIC char *reg(struct match_globals *g, int paren,int *flagp); ++STATIC char *regbranch(struct match_globals *g, int *flagp); ++STATIC char *regpiece(struct match_globals *g, int *flagp); ++STATIC char *regatom(struct match_globals *g, int *flagp); ++STATIC char *regnode(struct match_globals *g, char op); ++STATIC char *regnext(struct match_globals *g, char *p); ++STATIC void regc(struct match_globals *g, char b); ++STATIC void reginsert(struct match_globals *g, char op, char *opnd); ++STATIC void regtail(struct match_globals *g, char *p, char *val); ++STATIC void regoptail(struct match_globals *g, char *p, char *val); ++ ++ ++__kernel_size_t my_strcspn(const char *s1,const char *s2) ++{ ++ char *scan1; ++ char *scan2; ++ int count; ++ ++ count = 0; ++ for (scan1 = (char *)s1; *scan1 != '\0'; scan1++) { ++ for (scan2 = (char *)s2; *scan2 != '\0';) /* ++ moved down. */ ++ if (*scan1 == *scan2++) ++ return(count); ++ count++; ++ } ++ return(count); ++} ++ ++/* ++ - regcomp - compile a regular expression into internal code ++ * ++ * We can't allocate space until we know how big the compiled form will be, ++ * but we can't compile it (and thus know how big it is) until we've got a ++ * place to put the code. So we cheat: we compile it twice, once with code ++ * generation turned off and size counting turned on, and once "for real". ++ * This also means that we don't allocate space until we are sure that the ++ * thing really will compile successfully, and we never have to move the ++ * code and thus invalidate pointers into it. (Note that it has to be in ++ * one piece because free() must be able to free it all.) ++ * ++ * Beware that the optimization-preparation code in here knows about some ++ * of the structure of the compiled regexp. ++ */ ++regexp * ++regcomp(char *exp,int *patternsize) ++{ ++ register regexp *r; ++ register char *scan; ++ register char *longest; ++ register int len; ++ int flags; ++ struct match_globals g; ++ ++ /* commented out by ethan ++ extern char *malloc(); ++ */ ++ ++ if (exp == NULL) ++ FAIL("NULL argument"); ++ ++ /* First pass: determine size, legality. */ ++ g.regparse = exp; ++ g.regnpar = 1; ++ g.regsize = 0L; ++ g.regcode = &g.regdummy; ++ regc(&g, MAGIC); ++ if (reg(&g, 0, &flags) == NULL) ++ return(NULL); ++ ++ /* Small enough for pointer-storage convention? */ ++ if (g.regsize >= 32767L) /* Probably could be 65535L. */ ++ FAIL("regexp too big"); ++ ++ /* Allocate space. */ ++ *patternsize=sizeof(regexp) + (unsigned)g.regsize; ++ r = (regexp *)malloc(sizeof(regexp) + (unsigned)g.regsize); ++ if (r == NULL) ++ FAIL("out of space"); ++ ++ /* Second pass: emit code. */ ++ g.regparse = exp; ++ g.regnpar = 1; ++ g.regcode = r->program; ++ regc(&g, MAGIC); ++ if (reg(&g, 0, &flags) == NULL) ++ return(NULL); ++ ++ /* Dig out information for optimizations. */ ++ r->regstart = '\0'; /* Worst-case defaults. */ ++ r->reganch = 0; ++ r->regmust = NULL; ++ r->regmlen = 0; ++ scan = r->program+1; /* First BRANCH. */ ++ if (OP(regnext(&g, scan)) == END) { /* Only one top-level choice. */ ++ scan = OPERAND(scan); ++ ++ /* Starting-point info. */ ++ if (OP(scan) == EXACTLY) ++ r->regstart = *OPERAND(scan); ++ else if (OP(scan) == BOL) ++ r->reganch++; ++ ++ /* ++ * If there's something expensive in the r.e., find the ++ * longest literal string that must appear and make it the ++ * regmust. Resolve ties in favor of later strings, since ++ * the regstart check works with the beginning of the r.e. ++ * and avoiding duplication strengthens checking. Not a ++ * strong reason, but sufficient in the absence of others. ++ */ ++ if (flags&SPSTART) { ++ longest = NULL; ++ len = 0; ++ for (; scan != NULL; scan = regnext(&g, scan)) ++ if (OP(scan) == EXACTLY && strlen(OPERAND(scan)) >= len) { ++ longest = OPERAND(scan); ++ len = strlen(OPERAND(scan)); ++ } ++ r->regmust = longest; ++ r->regmlen = len; ++ } ++ } ++ ++ return(r); ++} ++ ++/* ++ - reg - regular expression, i.e. main body or parenthesized thing ++ * ++ * Caller must absorb opening parenthesis. ++ * ++ * Combining parenthesis handling with the base level of regular expression ++ * is a trifle forced, but the need to tie the tails of the branches to what ++ * follows makes it hard to avoid. ++ */ ++static char * ++reg(struct match_globals *g, int paren, int *flagp /* Parenthesized? */ ) ++{ ++ register char *ret; ++ register char *br; ++ register char *ender; ++ register int parno = 0; /* 0 makes gcc happy */ ++ int flags; ++ ++ *flagp = HASWIDTH; /* Tentatively. */ ++ ++ /* Make an OPEN node, if parenthesized. */ ++ if (paren) { ++ if (g->regnpar >= NSUBEXP) ++ FAIL("too many ()"); ++ parno = g->regnpar; ++ g->regnpar++; ++ ret = regnode(g, OPEN+parno); ++ } else ++ ret = NULL; ++ ++ /* Pick up the branches, linking them together. */ ++ br = regbranch(g, &flags); ++ if (br == NULL) ++ return(NULL); ++ if (ret != NULL) ++ regtail(g, ret, br); /* OPEN -> first. */ ++ else ++ ret = br; ++ if (!(flags&HASWIDTH)) ++ *flagp &= ~HASWIDTH; ++ *flagp |= flags&SPSTART; ++ while (*g->regparse == '|') { ++ g->regparse++; ++ br = regbranch(g, &flags); ++ if (br == NULL) ++ return(NULL); ++ regtail(g, ret, br); /* BRANCH -> BRANCH. */ ++ if (!(flags&HASWIDTH)) ++ *flagp &= ~HASWIDTH; ++ *flagp |= flags&SPSTART; ++ } ++ ++ /* Make a closing node, and hook it on the end. */ ++ ender = regnode(g, (paren) ? CLOSE+parno : END); ++ regtail(g, ret, ender); ++ ++ /* Hook the tails of the branches to the closing node. */ ++ for (br = ret; br != NULL; br = regnext(g, br)) ++ regoptail(g, br, ender); ++ ++ /* Check for proper termination. */ ++ if (paren && *g->regparse++ != ')') { ++ FAIL("unmatched ()"); ++ } else if (!paren && *g->regparse != '\0') { ++ if (*g->regparse == ')') { ++ FAIL("unmatched ()"); ++ } else ++ FAIL("junk on end"); /* "Can't happen". */ ++ /* NOTREACHED */ ++ } ++ ++ return(ret); ++} ++ ++/* ++ - regbranch - one alternative of an | operator ++ * ++ * Implements the concatenation operator. ++ */ ++static char * ++regbranch(struct match_globals *g, int *flagp) ++{ ++ register char *ret; ++ register char *chain; ++ register char *latest; ++ int flags; ++ ++ *flagp = WORST; /* Tentatively. */ ++ ++ ret = regnode(g, BRANCH); ++ chain = NULL; ++ while (*g->regparse != '\0' && *g->regparse != '|' && *g->regparse != ')') { ++ latest = regpiece(g, &flags); ++ if (latest == NULL) ++ return(NULL); ++ *flagp |= flags&HASWIDTH; ++ if (chain == NULL) /* First piece. */ ++ *flagp |= flags&SPSTART; ++ else ++ regtail(g, chain, latest); ++ chain = latest; ++ } ++ if (chain == NULL) /* Loop ran zero times. */ ++ (void) regnode(g, NOTHING); ++ ++ return(ret); ++} ++ ++/* ++ - regpiece - something followed by possible [*+?] ++ * ++ * Note that the branching code sequences used for ? and the general cases ++ * of * and + are somewhat optimized: they use the same NOTHING node as ++ * both the endmarker for their branch list and the body of the last branch. ++ * It might seem that this node could be dispensed with entirely, but the ++ * endmarker role is not redundant. ++ */ ++static char * ++regpiece(struct match_globals *g, int *flagp) ++{ ++ register char *ret; ++ register char op; ++ register char *next; ++ int flags; ++ ++ ret = regatom(g, &flags); ++ if (ret == NULL) ++ return(NULL); ++ ++ op = *g->regparse; ++ if (!ISMULT(op)) { ++ *flagp = flags; ++ return(ret); ++ } ++ ++ if (!(flags&HASWIDTH) && op != '?') ++ FAIL("*+ operand could be empty"); ++ *flagp = (op != '+') ? (WORST|SPSTART) : (WORST|HASWIDTH); ++ ++ if (op == '*' && (flags&SIMPLE)) ++ reginsert(g, STAR, ret); ++ else if (op == '*') { ++ /* Emit x* as (x&|), where & means "self". */ ++ reginsert(g, BRANCH, ret); /* Either x */ ++ regoptail(g, ret, regnode(g, BACK)); /* and loop */ ++ regoptail(g, ret, ret); /* back */ ++ regtail(g, ret, regnode(g, BRANCH)); /* or */ ++ regtail(g, ret, regnode(g, NOTHING)); /* null. */ ++ } else if (op == '+' && (flags&SIMPLE)) ++ reginsert(g, PLUS, ret); ++ else if (op == '+') { ++ /* Emit x+ as x(&|), where & means "self". */ ++ next = regnode(g, BRANCH); /* Either */ ++ regtail(g, ret, next); ++ regtail(g, regnode(g, BACK), ret); /* loop back */ ++ regtail(g, next, regnode(g, BRANCH)); /* or */ ++ regtail(g, ret, regnode(g, NOTHING)); /* null. */ ++ } else if (op == '?') { ++ /* Emit x? as (x|) */ ++ reginsert(g, BRANCH, ret); /* Either x */ ++ regtail(g, ret, regnode(g, BRANCH)); /* or */ ++ next = regnode(g, NOTHING); /* null. */ ++ regtail(g, ret, next); ++ regoptail(g, ret, next); ++ } ++ g->regparse++; ++ if (ISMULT(*g->regparse)) ++ FAIL("nested *?+"); ++ ++ return(ret); ++} ++ ++/* ++ - regatom - the lowest level ++ * ++ * Optimization: gobbles an entire sequence of ordinary characters so that ++ * it can turn them into a single node, which is smaller to store and ++ * faster to run. Backslashed characters are exceptions, each becoming a ++ * separate node; the code is simpler that way and it's not worth fixing. ++ */ ++static char * ++regatom(struct match_globals *g, int *flagp) ++{ ++ register char *ret; ++ int flags; ++ ++ *flagp = WORST; /* Tentatively. */ ++ ++ switch (*g->regparse++) { ++ case '^': ++ ret = regnode(g, BOL); ++ break; ++ case '$': ++ ret = regnode(g, EOL); ++ break; ++ case '.': ++ ret = regnode(g, ANY); ++ *flagp |= HASWIDTH|SIMPLE; ++ break; ++ case '[': { ++ register int class; ++ register int classend; ++ ++ if (*g->regparse == '^') { /* Complement of range. */ ++ ret = regnode(g, ANYBUT); ++ g->regparse++; ++ } else ++ ret = regnode(g, ANYOF); ++ if (*g->regparse == ']' || *g->regparse == '-') ++ regc(g, *g->regparse++); ++ while (*g->regparse != '\0' && *g->regparse != ']') { ++ if (*g->regparse == '-') { ++ g->regparse++; ++ if (*g->regparse == ']' || *g->regparse == '\0') ++ regc(g, '-'); ++ else { ++ class = UCHARAT(g->regparse-2)+1; ++ classend = UCHARAT(g->regparse); ++ if (class > classend+1) ++ FAIL("invalid [] range"); ++ for (; class <= classend; class++) ++ regc(g, class); ++ g->regparse++; ++ } ++ } else ++ regc(g, *g->regparse++); ++ } ++ regc(g, '\0'); ++ if (*g->regparse != ']') ++ FAIL("unmatched []"); ++ g->regparse++; ++ *flagp |= HASWIDTH|SIMPLE; ++ } ++ break; ++ case '(': ++ ret = reg(g, 1, &flags); ++ if (ret == NULL) ++ return(NULL); ++ *flagp |= flags&(HASWIDTH|SPSTART); ++ break; ++ case '\0': ++ case '|': ++ case ')': ++ FAIL("internal urp"); /* Supposed to be caught earlier. */ ++ break; ++ case '?': ++ case '+': ++ case '*': ++ FAIL("?+* follows nothing"); ++ break; ++ case '\': ++ if (*g->regparse == '\0') ++ FAIL("trailing \"); ++ ret = regnode(g, EXACTLY); ++ regc(g, *g->regparse++); ++ regc(g, '\0'); ++ *flagp |= HASWIDTH|SIMPLE; ++ break; ++ default: { ++ register int len; ++ register char ender; ++ ++ g->regparse--; ++ len = my_strcspn((const char *)g->regparse, (const char *)META); ++ if (len <= 0) ++ FAIL("internal disaster"); ++ ender = *(g->regparse+len); ++ if (len > 1 && ISMULT(ender)) ++ len--; /* Back off clear of ?+* operand. */ ++ *flagp |= HASWIDTH; ++ if (len == 1) ++ *flagp |= SIMPLE; ++ ret = regnode(g, EXACTLY); ++ while (len > 0) { ++ regc(g, *g->regparse++); ++ len--; ++ } ++ regc(g, '\0'); ++ } ++ break; ++ } ++ ++ return(ret); ++} ++ ++/* ++ - regnode - emit a node ++ */ ++static char * /* Location. */ ++regnode(struct match_globals *g, char op) ++{ ++ register char *ret; ++ register char *ptr; ++ ++ ret = g->regcode; ++ if (ret == &g->regdummy) { ++ g->regsize += 3; ++ return(ret); ++ } ++ ++ ptr = ret; ++ *ptr++ = op; ++ *ptr++ = '\0'; /* Null "next" pointer. */ ++ *ptr++ = '\0'; ++ g->regcode = ptr; ++ ++ return(ret); ++} ++ ++/* ++ - regc - emit (if appropriate) a byte of code ++ */ ++static void ++regc(struct match_globals *g, char b) ++{ ++ if (g->regcode != &g->regdummy) ++ *g->regcode++ = b; ++ else ++ g->regsize++; ++} ++ ++/* ++ - reginsert - insert an operator in front of already-emitted operand ++ * ++ * Means relocating the operand. ++ */ ++static void ++reginsert(struct match_globals *g, char op, char* opnd) ++{ ++ register char *src; ++ register char *dst; ++ register char *place; ++ ++ if (g->regcode == &g->regdummy) { ++ g->regsize += 3; ++ return; ++ } ++ ++ src = g->regcode; ++ g->regcode += 3; ++ dst = g->regcode; ++ while (src > opnd) ++ *--dst = *--src; ++ ++ place = opnd; /* Op node, where operand used to be. */ ++ *place++ = op; ++ *place++ = '\0'; ++ *place++ = '\0'; ++} ++ ++/* ++ - regtail - set the next-pointer at the end of a node chain ++ */ ++static void ++regtail(struct match_globals *g, char *p, char *val) ++{ ++ register char *scan; ++ register char *temp; ++ register int offset; ++ ++ if (p == &g->regdummy) ++ return; ++ ++ /* Find last node. */ ++ scan = p; ++ for (;;) { ++ temp = regnext(g, scan); ++ if (temp == NULL) ++ break; ++ scan = temp; ++ } ++ ++ if (OP(scan) == BACK) ++ offset = scan - val; ++ else ++ offset = val - scan; ++ *(scan+1) = (offset>>8)&0377; ++ *(scan+2) = offset&0377; ++} ++ ++/* ++ - regoptail - regtail on operand of first argument; nop if operandless ++ */ ++static void ++regoptail(struct match_globals *g, char *p, char *val) ++{ ++ /* "Operandless" and "op != BRANCH" are synonymous in practice. */ ++ if (p == NULL || p == &g->regdummy || OP(p) != BRANCH) ++ return; ++ regtail(g, OPERAND(p), val); ++} ++ ++/* ++ * regexec and friends ++ */ ++ ++ ++/* ++ * Forwards. ++ */ ++STATIC int regtry(struct match_globals *g, regexp *prog, char *string); ++STATIC int regmatch(struct match_globals *g, char *prog); ++STATIC int regrepeat(struct match_globals *g, char *p); ++ ++#ifdef DEBUG ++int regnarrate = 0; ++void regdump(); ++STATIC char *regprop(char *op); ++#endif ++ ++/* ++ - regexec - match a regexp against a string ++ */ ++int ++regexec(regexp *prog, char *string) ++{ ++ register char *s; ++ struct match_globals g; ++ ++ /* Be paranoid... */ ++ if (prog == NULL || string == NULL) { ++ printk("<3>Regexp: NULL parameter\n"); ++ return(0); ++ } ++ ++ /* Check validity of program. */ ++ if (UCHARAT(prog->program) != MAGIC) { ++ printk("<3>Regexp: corrupted program\n"); ++ return(0); ++ } ++ ++ /* If there is a "must appear" string, look for it. */ ++ if (prog->regmust != NULL) { ++ s = string; ++ while ((s = strchr(s, prog->regmust[0])) != NULL) { ++ if (strncmp(s, prog->regmust, prog->regmlen) == 0) ++ break; /* Found it. */ ++ s++; ++ } ++ if (s == NULL) /* Not present. */ ++ return(0); ++ } ++ ++ /* Mark beginning of line for ^ . */ ++ g.regbol = string; ++ ++ /* Simplest case: anchored match need be tried only once. */ ++ if (prog->reganch) ++ return(regtry(&g, prog, string)); ++ ++ /* Messy cases: unanchored match. */ ++ s = string; ++ if (prog->regstart != '\0') ++ /* We know what char it must start with. */ ++ while ((s = strchr(s, prog->regstart)) != NULL) { ++ if (regtry(&g, prog, s)) ++ return(1); ++ s++; ++ } ++ else ++ /* We don't -- general case. */ ++ do { ++ if (regtry(&g, prog, s)) ++ return(1); ++ } while (*s++ != '\0'); ++ ++ /* Failure. */ ++ return(0); ++} ++ ++/* ++ - regtry - try match at specific point ++ */ ++static int /* 0 failure, 1 success */ ++regtry(struct match_globals *g, regexp *prog, char *string) ++{ ++ register int i; ++ register char **sp; ++ register char **ep; ++ ++ g->reginput = string; ++ g->regstartp = prog->startp; ++ g->regendp = prog->endp; ++ ++ sp = prog->startp; ++ ep = prog->endp; ++ for (i = NSUBEXP; i > 0; i--) { ++ *sp++ = NULL; ++ *ep++ = NULL; ++ } ++ if (regmatch(g, prog->program + 1)) { ++ prog->startp[0] = string; ++ prog->endp[0] = g->reginput; ++ return(1); ++ } else ++ return(0); ++} ++ ++/* ++ - regmatch - main matching routine ++ * ++ * Conceptually the strategy is simple: check to see whether the current ++ * node matches, call self recursively to see whether the rest matches, ++ * and then act accordingly. In practice we make some effort to avoid ++ * recursion, in particular by going through "ordinary" nodes (that don't ++ * need to know whether the rest of the match failed) by a loop instead of ++ * by recursion. ++ */ ++static int /* 0 failure, 1 success */ ++regmatch(struct match_globals *g, char *prog) ++{ ++ register char *scan = prog; /* Current node. */ ++ char *next; /* Next node. */ ++ ++#ifdef DEBUG ++ if (scan != NULL && regnarrate) ++ fprintf(stderr, "%s(\n", regprop(scan)); ++#endif ++ while (scan != NULL) { ++#ifdef DEBUG ++ if (regnarrate) ++ fprintf(stderr, "%s...\n", regprop(scan)); ++#endif ++ next = regnext(g, scan); ++ ++ switch (OP(scan)) { ++ case BOL: ++ if (g->reginput != g->regbol) ++ return(0); ++ break; ++ case EOL: ++ if (*g->reginput != '\0') ++ return(0); ++ break; ++ case ANY: ++ if (*g->reginput == '\0') ++ return(0); ++ g->reginput++; ++ break; ++ case EXACTLY: { ++ register int len; ++ register char *opnd; ++ ++ opnd = OPERAND(scan); ++ /* Inline the first character, for speed. */ ++ if (*opnd != *g->reginput) ++ return(0); ++ len = strlen(opnd); ++ if (len > 1 && strncmp(opnd, g->reginput, len) != 0) ++ return(0); ++ g->reginput += len; ++ } ++ break; ++ case ANYOF: ++ if (*g->reginput == '\0' || strchr(OPERAND(scan), *g->reginput) == NULL) ++ return(0); ++ g->reginput++; ++ break; ++ case ANYBUT: ++ if (*g->reginput == '\0' || strchr(OPERAND(scan), *g->reginput) != NULL) ++ return(0); ++ g->reginput++; ++ break; ++ case NOTHING: ++ case BACK: ++ break; ++ case OPEN+1: ++ case OPEN+2: ++ case OPEN+3: ++ case OPEN+4: ++ case OPEN+5: ++ case OPEN+6: ++ case OPEN+7: ++ case OPEN+8: ++ case OPEN+9: { ++ register int no; ++ register char *save; ++ ++ no = OP(scan) - OPEN; ++ save = g->reginput; ++ ++ if (regmatch(g, next)) { ++ /* ++ * Don't set startp if some later ++ * invocation of the same parentheses ++ * already has. ++ */ ++ if (g->regstartp[no] == NULL) ++ g->regstartp[no] = save; ++ return(1); ++ } else ++ return(0); ++ } ++ break; ++ case CLOSE+1: ++ case CLOSE+2: ++ case CLOSE+3: ++ case CLOSE+4: ++ case CLOSE+5: ++ case CLOSE+6: ++ case CLOSE+7: ++ case CLOSE+8: ++ case CLOSE+9: ++ { ++ register int no; ++ register char *save; ++ ++ no = OP(scan) - CLOSE; ++ save = g->reginput; ++ ++ if (regmatch(g, next)) { ++ /* ++ * Don't set endp if some later ++ * invocation of the same parentheses ++ * already has. ++ */ ++ if (g->regendp[no] == NULL) ++ g->regendp[no] = save; ++ return(1); ++ } else ++ return(0); ++ } ++ break; ++ case BRANCH: { ++ register char *save; ++ ++ if (OP(next) != BRANCH) /* No choice. */ ++ next = OPERAND(scan); /* Avoid recursion. */ ++ else { ++ do { ++ save = g->reginput; ++ if (regmatch(g, OPERAND(scan))) ++ return(1); ++ g->reginput = save; ++ scan = regnext(g, scan); ++ } while (scan != NULL && OP(scan) == BRANCH); ++ return(0); ++ /* NOTREACHED */ ++ } ++ } ++ break; ++ case STAR: ++ case PLUS: { ++ register char nextch; ++ register int no; ++ register char *save; ++ register int min; ++ ++ /* ++ * Lookahead to avoid useless match attempts ++ * when we know what character comes next. ++ */ ++ nextch = '\0'; ++ if (OP(next) == EXACTLY) ++ nextch = *OPERAND(next); ++ min = (OP(scan) == STAR) ? 0 : 1; ++ save = g->reginput; ++ no = regrepeat(g, OPERAND(scan)); ++ while (no >= min) { ++ /* If it could work, try it. */ ++ if (nextch == '\0' || *g->reginput == nextch) ++ if (regmatch(g, next)) ++ return(1); ++ /* Couldn't or didn't -- back up. */ ++ no--; ++ g->reginput = save + no; ++ } ++ return(0); ++ } ++ break; ++ case END: ++ return(1); /* Success! */ ++ break; ++ default: ++ printk("<3>Regexp: memory corruption\n"); ++ return(0); ++ break; ++ } ++ ++ scan = next; ++ } ++ ++ /* ++ * We get here only if there's trouble -- normally "case END" is ++ * the terminating point. ++ */ ++ printk("<3>Regexp: corrupted pointers\n"); ++ return(0); ++} ++ ++/* ++ - regrepeat - repeatedly match something simple, report how many ++ */ ++static int ++regrepeat(struct match_globals *g, char *p) ++{ ++ register int count = 0; ++ register char *scan; ++ register char *opnd; ++ ++ scan = g->reginput; ++ opnd = OPERAND(p); ++ switch (OP(p)) { ++ case ANY: ++ count = strlen(scan); ++ scan += count; ++ break; ++ case EXACTLY: ++ while (*opnd == *scan) { ++ count++; ++ scan++; ++ } ++ break; ++ case ANYOF: ++ while (*scan != '\0' && strchr(opnd, *scan) != NULL) { ++ count++; ++ scan++; ++ } ++ break; ++ case ANYBUT: ++ while (*scan != '\0' && strchr(opnd, *scan) == NULL) { ++ count++; ++ scan++; ++ } ++ break; ++ default: /* Oh dear. Called inappropriately. */ ++ printk("<3>Regexp: internal foulup\n"); ++ count = 0; /* Best compromise. */ ++ break; ++ } ++ g->reginput = scan; ++ ++ return(count); ++} ++ ++/* ++ - regnext - dig the "next" pointer out of a node ++ */ ++static char* ++regnext(struct match_globals *g, char *p) ++{ ++ register int offset; ++ ++ if (p == &g->regdummy) ++ return(NULL); ++ ++ offset = NEXT(p); ++ if (offset == 0) ++ return(NULL); ++ ++ if (OP(p) == BACK) ++ return(p-offset); ++ else ++ return(p+offset); ++} ++ ++#ifdef DEBUG ++ ++STATIC char *regprop(); ++ ++/* ++ - regdump - dump a regexp onto stdout in vaguely comprehensible form ++ */ ++void ++regdump(regexp *r) ++{ ++ register char *s; ++ register char op = EXACTLY; /* Arbitrary non-END op. */ ++ register char *next; ++ /* extern char *strchr(); */ ++ ++ ++ s = r->program + 1; ++ while (op != END) { /* While that wasn't END last time... */ ++ op = OP(s); ++ printf("%2d%s", s-r->program, regprop(s)); /* Where, what. */ ++ next = regnext(s); ++ if (next == NULL) /* Next ptr. */ ++ printf("(0)"); ++ else ++ printf("(%d)", (s-r->program)+(next-s)); ++ s += 3; ++ if (op == ANYOF || op == ANYBUT || op == EXACTLY) { ++ /* Literal string, where present. */ ++ while (*s != '\0') { ++ putchar(*s); ++ s++; ++ } ++ s++; ++ } ++ putchar('\n'); ++ } ++ ++ /* Header fields of interest. */ ++ if (r->regstart != '\0') ++ printf("start `%c' ", r->regstart); ++ if (r->reganch) ++ printf("anchored "); ++ if (r->regmust != NULL) ++ printf("must have "%s"", r->regmust); ++ printf("\n"); ++} ++ ++/* ++ - regprop - printable representation of opcode ++ */ ++static char * ++regprop(char *op) ++{ ++#define BUFLEN 50 ++ register char *p; ++ static char buf[BUFLEN]; ++ ++ strcpy(buf, ":"); ++ ++ switch (OP(op)) { ++ case BOL: ++ p = "BOL"; ++ break; ++ case EOL: ++ p = "EOL"; ++ break; ++ case ANY: ++ p = "ANY"; ++ break; ++ case ANYOF: ++ p = "ANYOF"; ++ break; ++ case ANYBUT: ++ p = "ANYBUT"; ++ break; ++ case BRANCH: ++ p = "BRANCH"; ++ break; ++ case EXACTLY: ++ p = "EXACTLY"; ++ break; ++ case NOTHING: ++ p = "NOTHING"; ++ break; ++ case BACK: ++ p = "BACK"; ++ break; ++ case END: ++ p = "END"; ++ break; ++ case OPEN+1: ++ case OPEN+2: ++ case OPEN+3: ++ case OPEN+4: ++ case OPEN+5: ++ case OPEN+6: ++ case OPEN+7: ++ case OPEN+8: ++ case OPEN+9: ++ snprintf(buf+strlen(buf),BUFLEN-strlen(buf), "OPEN%d", OP(op)-OPEN); ++ p = NULL; ++ break; ++ case CLOSE+1: ++ case CLOSE+2: ++ case CLOSE+3: ++ case CLOSE+4: ++ case CLOSE+5: ++ case CLOSE+6: ++ case CLOSE+7: ++ case CLOSE+8: ++ case CLOSE+9: ++ snprintf(buf+strlen(buf),BUFLEN-strlen(buf), "CLOSE%d", OP(op)-CLOSE); ++ p = NULL; ++ break; ++ case STAR: ++ p = "STAR"; ++ break; ++ case PLUS: ++ p = "PLUS"; ++ break; ++ default: ++ printk("<3>Regexp: corrupted opcode\n"); ++ break; ++ } ++ if (p != NULL) ++ strncat(buf, p, BUFLEN-strlen(buf)); ++ return(buf); ++} ++#endif ++ ++ +diff -Naur linux-3.10.5.org/net/netfilter/regexp/regexp.h linux-3.10.5/net/netfilter/regexp/regexp.h +--- linux-3.10.5.org/net/netfilter/regexp/regexp.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.10.5/net/netfilter/regexp/regexp.h 2013-08-07 06:16:14.430800990 +0200 +@@ -0,0 +1,41 @@ ++/* ++ * Definitions etc. for regexp(3) routines. ++ * ++ * Caveat: this is V8 regexp(3) [actually, a reimplementation thereof], ++ * not the System V one. ++ */ ++ ++#ifndef REGEXP_H ++#define REGEXP_H ++ ++ ++/* ++http://www.opensource.apple.com/darwinsource/10.3/expect-1/expect/expect.h , ++which contains a version of this library, says: ++ ++ * ++ * NSUBEXP must be at least 10, and no greater than 117 or the parser ++ * will not work properly. ++ * ++ ++However, it looks rather like this library is limited to 10. If you think ++otherwise, let us know. ++*/ ++ ++#define NSUBEXP 10 ++typedef struct regexp { ++ char *startp[NSUBEXP]; ++ char *endp[NSUBEXP]; ++ char regstart; /* Internal use only. */ ++ char reganch; /* Internal use only. */ ++ char *regmust; /* Internal use only. */ ++ int regmlen; /* Internal use only. */ ++ char program[1]; /* Unwarranted chumminess with compiler. */ ++} regexp; ++ ++regexp * regcomp(char *exp, int *patternsize); ++int regexec(regexp *prog, char *string); ++void regsub(regexp *prog, char *source, char *dest); ++void regerror(char *s); ++ ++#endif +diff -Naur linux-3.10.5.org/net/netfilter/regexp/regmagic.h linux-3.10.5/net/netfilter/regexp/regmagic.h +--- linux-3.10.5.org/net/netfilter/regexp/regmagic.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.10.5/net/netfilter/regexp/regmagic.h 2013-08-07 06:16:14.450800314 +0200 +@@ -0,0 +1,5 @@ ++/* ++ * The first byte of the regexp internal "program" is actually this magic ++ * number; the start node begins in the second byte. ++ */ ++#define MAGIC 0234 +diff -Naur linux-3.10.5.org/net/netfilter/regexp/regsub.c linux-3.10.5/net/netfilter/regexp/regsub.c +--- linux-3.10.5.org/net/netfilter/regexp/regsub.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.10.5/net/netfilter/regexp/regsub.c 2013-08-07 06:16:14.450800314 +0200 +@@ -0,0 +1,95 @@ ++/* ++ * regsub ++ * @(#)regsub.c 1.3 of 2 April 86 ++ * ++ * Copyright (c) 1986 by University of Toronto. ++ * Written by Henry Spencer. Not derived from licensed software. ++ * ++ * Permission is granted to anyone to use this software for any ++ * purpose on any computer system, and to redistribute it freely, ++ * subject to the following restrictions: ++ * ++ * 1. The author is not responsible for the consequences of use of ++ * this software, no matter how awful, even if they arise ++ * from defects in it. ++ * ++ * 2. The origin of this software must not be misrepresented, either ++ * by explicit claim or by omission. ++ * ++ * 3. Altered versions must be plainly marked as such, and must not ++ * be misrepresented as being the original software. ++ * ++ * ++ * This code was modified by Ethan Sommer to work within the kernel ++ * (it now uses kmalloc etc..) ++ * ++ */ ++#include "regexp.h" ++#include "regmagic.h" ++#include <linux/string.h> ++ ++ ++#ifndef CHARBITS ++#define UCHARAT(p) ((int)*(unsigned char *)(p)) ++#else ++#define UCHARAT(p) ((int)*(p)&CHARBITS) ++#endif ++ ++#if 0 ++//void regerror(char * s) ++//{ ++// printk("regexp(3): %s", s); ++// /* NOTREACHED */ ++//} ++#endif ++ ++/* ++ - regsub - perform substitutions after a regexp match ++ */ ++void ++regsub(regexp * prog, char * source, char * dest) ++{ ++ register char *src; ++ register char *dst; ++ register char c; ++ register int no; ++ register int len; ++ ++ /* Not necessary and gcc doesn't like it -MLS */ ++ /*extern char *strncpy();*/ ++ ++ if (prog == NULL || source == NULL || dest == NULL) { ++ regerror("NULL parm to regsub"); ++ return; ++ } ++ if (UCHARAT(prog->program) != MAGIC) { ++ regerror("damaged regexp fed to regsub"); ++ return; ++ } ++ ++ src = source; ++ dst = dest; ++ while ((c = *src++) != '\0') { ++ if (c == '&') ++ no = 0; ++ else if (c == '\' && '0' <= *src && *src <= '9') ++ no = *src++ - '0'; ++ else ++ no = -1; ++ ++ if (no < 0) { /* Ordinary character. */ ++ if (c == '\' && (*src == '\' || *src == '&')) ++ c = *src++; ++ *dst++ = c; ++ } else if (prog->startp[no] != NULL && prog->endp[no] != NULL) { ++ len = prog->endp[no] - prog->startp[no]; ++ (void) strncpy(dst, prog->startp[no], len); ++ dst += len; ++ if (len != 0 && *(dst-1) == '\0') { /* strncpy hit NUL. */ ++ regerror("damaged match string"); ++ return; ++ } ++ } ++ } ++ *dst++ = '\0'; ++} +diff -Naur linux-3.10.5.org/net/netfilter/xt_layer7.c linux-3.10.5/net/netfilter/xt_layer7.c +--- linux-3.10.5.org/net/netfilter/xt_layer7.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.10.5/net/netfilter/xt_layer7.c 2013-08-07 06:16:14.490798961 +0200 +@@ -0,0 +1,684 @@ ++/* ++ Kernel module to match application layer (OSI layer 7) data in connections. ++ ++ http://l7-filter.sf.net ++ ++ (C) 2003-2009 Matthew Strait and Ethan Sommer. ++ ++ This program is free software; you can redistribute it and/or ++ modify it under the terms of the GNU General Public License ++ as published by the Free Software Foundation; either version ++ 2 of the License, or (at your option) any later version. ++ http://www.gnu.org/licenses/gpl.txt ++ ++ Based on ipt_string.c (C) 2000 Emmanuel Roger winfield@freegates.be, ++ xt_helper.c (C) 2002 Harald Welte and cls_layer7.c (C) 2003 Matthew Strait, ++ Ethan Sommer, Justin Levandoski. ++*/ ++ ++#include <linux/spinlock.h> ++#include <linux/version.h> ++#include <net/ip.h> ++#include <net/tcp.h> ++#include <linux/module.h> ++#include <linux/skbuff.h> ++#include <linux/netfilter.h> ++#include <net/netfilter/nf_conntrack.h> ++#include <net/netfilter/nf_conntrack_core.h> ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27) ++#include <net/netfilter/nf_conntrack_extend.h> ++#include <net/netfilter/nf_conntrack_acct.h> ++#endif ++#include <linux/netfilter/x_tables.h> ++#include <linux/netfilter/xt_layer7.h> ++#include <linux/ctype.h> ++#include <linux/proc_fs.h> ++ ++#include "regexp/regexp.c" ++ ++MODULE_LICENSE("GPL"); ++MODULE_AUTHOR("Matthew Strait quadong@users.sf.net, Ethan Sommer sommere@users.sf.net"); ++MODULE_DESCRIPTION("iptables application layer match module"); ++MODULE_ALIAS("ipt_layer7"); ++MODULE_VERSION("2.22ipfire"); ++ ++static int maxdatalen = 2048; // this is the default ++module_param(maxdatalen, int, 0444); ++MODULE_PARM_DESC(maxdatalen, "maximum bytes of data looked at by l7-filter"); ++#ifdef CONFIG_NETFILTER_XT_MATCH_LAYER7_DEBUG ++ #define DPRINTK(format,args...) printk(format,##args) ++#else ++ #define DPRINTK(format,args...) ++#endif ++ ++/* Number of packets whose data we look at. ++This can be modified through /proc/net/layer7_numpackets */ ++static int num_packets = 10; ++ ++static struct pattern_cache { ++ char * regex_string; ++ regexp * pattern; ++ struct pattern_cache * next; ++} * first_pattern_cache = NULL; ++ ++DEFINE_SPINLOCK(l7_lock); ++ ++static int total_acct_packets(struct nf_conn *ct) ++{ ++#if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 26) ++ BUG_ON(ct == NULL); ++ return (ct->counters[IP_CT_DIR_ORIGINAL].packets + ct->counters[IP_CT_DIR_REPLY].packets); ++#else ++ struct nf_conn_counter *acct; ++ ++ BUG_ON(ct == NULL); ++ acct = nf_conn_acct_find(ct); ++ if (!acct) ++ return 0; ++ return ( atomic64_read(&acct[IP_CT_DIR_ORIGINAL].packets) + atomic64_read(&acct[IP_CT_DIR_REPLY].packets) ); ++#endif ++} ++ ++#ifdef CONFIG_IP_NF_MATCH_LAYER7_DEBUG ++/* Converts an unfriendly string into a friendly one by ++replacing unprintables with periods and all whitespace with " ". */ ++static char * friendly_print(unsigned char * s) ++{ ++ char * f = kmalloc(strlen(s) + 1, GFP_ATOMIC); ++ int i; ++ ++ if(!f) { ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: out of memory in " ++ "friendly_print, bailing.\n"); ++ return NULL; ++ } ++ ++ for(i = 0; i < strlen(s); i++){ ++ if(isprint(s[i]) && s[i] < 128) f[i] = s[i]; ++ else if(isspace(s[i])) f[i] = ' '; ++ else f[i] = '.'; ++ } ++ f[i] = '\0'; ++ return f; ++} ++ ++static char dec2hex(int i) ++{ ++ switch (i) { ++ case 0 ... 9: ++ return (i + '0'); ++ break; ++ case 10 ... 15: ++ return (i - 10 + 'a'); ++ break; ++ default: ++ if (net_ratelimit()) ++ printk("layer7: Problem in dec2hex\n"); ++ return '\0'; ++ } ++} ++ ++static char * hex_print(unsigned char * s) ++{ ++ char * g = kmalloc(strlen(s)*3 + 1, GFP_ATOMIC); ++ int i; ++ ++ if(!g) { ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: out of memory in hex_print, " ++ "bailing.\n"); ++ return NULL; ++ } ++ ++ for(i = 0; i < strlen(s); i++) { ++ g[i*3 ] = dec2hex(s[i]/16); ++ g[i*3 + 1] = dec2hex(s[i]%16); ++ g[i*3 + 2] = ' '; ++ } ++ g[i*3] = '\0'; ++ ++ return g; ++} ++#endif // DEBUG ++ ++/* Use instead of regcomp. As we expect to be seeing the same regexps over and ++over again, it make sense to cache the results. */ ++static regexp * compile_and_cache(const char * regex_string, ++ const char * protocol) ++{ ++ struct pattern_cache * node = first_pattern_cache; ++ struct pattern_cache * last_pattern_cache = first_pattern_cache; ++ struct pattern_cache * tmp; ++ unsigned int len; ++ ++ while (node != NULL) { ++ if (!strcmp(node->regex_string, regex_string)) ++ return node->pattern; ++ ++ last_pattern_cache = node;/* points at the last non-NULL node */ ++ node = node->next; ++ } ++ ++ /* If we reach the end of the list, then we have not yet cached ++ the pattern for this regex. Let's do that now. ++ Be paranoid about running out of memory to avoid list corruption. */ ++ tmp = kmalloc(sizeof(struct pattern_cache), GFP_ATOMIC); ++ ++ if(!tmp) { ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: out of memory in " ++ "compile_and_cache, bailing.\n"); ++ return NULL; ++ } ++ ++ tmp->regex_string = kmalloc(strlen(regex_string) + 1, GFP_ATOMIC); ++ tmp->pattern = kmalloc(sizeof(struct regexp), GFP_ATOMIC); ++ tmp->next = NULL; ++ ++ if(!tmp->regex_string || !tmp->pattern) { ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: out of memory in " ++ "compile_and_cache, bailing.\n"); ++ kfree(tmp->regex_string); ++ kfree(tmp->pattern); ++ kfree(tmp); ++ return NULL; ++ } ++ ++ /* Ok. The new node is all ready now. */ ++ node = tmp; ++ ++ if(first_pattern_cache == NULL) /* list is empty */ ++ first_pattern_cache = node; /* make node the beginning */ ++ else ++ last_pattern_cache->next = node; /* attach node to the end */ ++ ++ /* copy the string and compile the regex */ ++ len = strlen(regex_string); ++ DPRINTK("layer7: about to compile this: "%s"\n", regex_string); ++ node->pattern = regcomp((char *)regex_string, &len); ++ if ( !node->pattern ) { ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: Error compiling regexp " ++ ""%s" (%s)\n", ++ regex_string, protocol); ++ /* pattern is now cached as NULL, so we won't try again. */ ++ } ++ ++ strcpy(node->regex_string, regex_string); ++ return node->pattern; ++} ++ ++static int can_handle(const struct sk_buff *skb) ++{ ++ if(!ip_hdr(skb)) /* not IP */ ++ return 0; ++ if(ip_hdr(skb)->protocol != IPPROTO_TCP && ++ ip_hdr(skb)->protocol != IPPROTO_UDP && ++ ip_hdr(skb)->protocol != IPPROTO_ICMP) ++ return 0; ++ return 1; ++} ++ ++/* Returns offset the into the skb->data that the application data starts */ ++static int app_data_offset(const struct sk_buff *skb) ++{ ++ /* In case we are ported somewhere (ebtables?) where ip_hdr(skb) ++ isn't set, this can be gotten from 4*(skb->data[0] & 0x0f) as well. */ ++ int ip_hl = 4*ip_hdr(skb)->ihl; ++ ++ if( ip_hdr(skb)->protocol == IPPROTO_TCP ) { ++ /* 12 == offset into TCP header for the header length field. ++ Can't get this with skb->h.th->doff because the tcphdr ++ struct doesn't get set when routing (this is confirmed to be ++ true in Netfilter as well as QoS.) */ ++ int tcp_hl = 4*(skb->data[ip_hl + 12] >> 4); ++ ++ return ip_hl + tcp_hl; ++ } else if( ip_hdr(skb)->protocol == IPPROTO_UDP ) { ++ return ip_hl + 8; /* UDP header is always 8 bytes */ ++ } else if( ip_hdr(skb)->protocol == IPPROTO_ICMP ) { ++ return ip_hl + 8; /* ICMP header is 8 bytes */ ++ } else { ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: tried to handle unknown " ++ "protocol!\n"); ++ return ip_hl + 8; /* something reasonable */ ++ } ++} ++ ++/* handles whether there's a match when we aren't appending data anymore */ ++static int match_no_append(struct nf_conn * conntrack, ++ struct nf_conn * master_conntrack, ++ enum ip_conntrack_info ctinfo, ++ enum ip_conntrack_info master_ctinfo, ++ const struct xt_layer7_info * info) ++{ ++ /* If we're in here, throw the app data away */ ++ if(master_conntrack->layer7.app_data != NULL) { ++ ++ #ifdef CONFIG_IP_NF_MATCH_LAYER7_DEBUG ++ if(!master_conntrack->layer7.app_proto) { ++ char * f = ++ friendly_print(master_conntrack->layer7.app_data); ++ char * g = ++ hex_print(master_conntrack->layer7.app_data); ++ DPRINTK("\nl7-filter gave up after %d bytes " ++ "(%d packets):\n%s\n", ++ strlen(f), total_acct_packets(master_conntrack), f); ++ kfree(f); ++ DPRINTK("In hex: %s\n", g); ++ kfree(g); ++ } ++ #endif ++ ++ kfree(master_conntrack->layer7.app_data); ++ master_conntrack->layer7.app_data = NULL; /* don't free again */ ++ } ++ ++ if(master_conntrack->layer7.app_proto){ ++ /* Here child connections set their .app_proto (for /proc) */ ++ if(!conntrack->layer7.app_proto) { ++ conntrack->layer7.app_proto = ++ kmalloc(strlen(master_conntrack->layer7.app_proto)+1, ++ GFP_ATOMIC); ++ if(!conntrack->layer7.app_proto){ ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: out of memory " ++ "in match_no_append, " ++ "bailing.\n"); ++ return 1; ++ } ++ strcpy(conntrack->layer7.app_proto, ++ master_conntrack->layer7.app_proto); ++ } ++ ++ return (!strcmp(master_conntrack->layer7.app_proto, ++ info->protocol)); ++ } ++ else { ++ /* If not classified, set to "unknown" to distinguish from ++ connections that are still being tested. */ ++ master_conntrack->layer7.app_proto = ++ kmalloc(strlen("unknown")+1, GFP_ATOMIC); ++ if(!master_conntrack->layer7.app_proto){ ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: out of memory in " ++ "match_no_append, bailing.\n"); ++ return 1; ++ } ++ strcpy(master_conntrack->layer7.app_proto, "unknown"); ++ return 0; ++ } ++} ++ ++/* add the new app data to the conntrack. Return number of bytes added. */ ++static int add_data(struct nf_conn * master_conntrack, ++ char * app_data, int appdatalen) ++{ ++ int length = 0, i; ++ int oldlength = master_conntrack->layer7.app_data_len; ++ ++ /* This is a fix for a race condition by Deti Fliegl. However, I'm not ++ clear on whether the race condition exists or whether this really ++ fixes it. I might just be being dense... Anyway, if it's not really ++ a fix, all it does is waste a very small amount of time. */ ++ if(!master_conntrack->layer7.app_data) return 0; ++ ++ /* Strip nulls. Make everything lower case (our regex lib doesn't ++ do case insensitivity). Add it to the end of the current data. */ ++ for(i = 0; i < maxdatalen-oldlength-1 && ++ i < appdatalen; i++) { ++ if(app_data[i] != '\0') { ++ /* the kernel version of tolower mungs 'upper ascii' */ ++ master_conntrack->layer7.app_data[length+oldlength] = ++ isascii(app_data[i])? ++ tolower(app_data[i]) : app_data[i]; ++ length++; ++ } ++ } ++ ++ master_conntrack->layer7.app_data[length+oldlength] = '\0'; ++ master_conntrack->layer7.app_data_len = length + oldlength; ++ ++ return length; ++} ++ ++/* taken from drivers/video/modedb.c */ ++static int my_atoi(const char *s) ++{ ++ int val = 0; ++ ++ for (;; s++) { ++ switch (*s) { ++ case '0'...'9': ++ val = 10*val+(*s-'0'); ++ break; ++ default: ++ return val; ++ } ++ } ++} ++ ++/* write out num_packets to userland. */ ++static int layer7_read_proc(char* page, char ** start, off_t off, int count, ++ int* eof, void * data) ++{ ++ if(num_packets > 99 && net_ratelimit()) ++ printk(KERN_ERR "layer7: NOT REACHED. num_packets too big\n"); ++ ++ page[0] = num_packets/10 + '0'; ++ page[1] = num_packets%10 + '0'; ++ page[2] = '\n'; ++ page[3] = '\0'; ++ ++ *eof=1; ++ ++ return 3; ++} ++ ++/* Read in num_packets from userland */ ++static int layer7_write_proc(struct file* file, const char* buffer, ++ unsigned long count, void *data) ++{ ++ char * foo = kmalloc(count, GFP_ATOMIC); ++ ++ if(!foo){ ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: out of memory, bailing. " ++ "num_packets unchanged.\n"); ++ return count; ++ } ++ ++ if(copy_from_user(foo, buffer, count)) { ++ return -EFAULT; ++ } ++ ++ ++ num_packets = my_atoi(foo); ++ kfree (foo); ++ ++ /* This has an arbitrary limit to make the math easier. I'm lazy. ++ But anyway, 99 is a LOT! If you want more, you're doing it wrong! */ ++ if(num_packets > 99) { ++ printk(KERN_WARNING "layer7: num_packets can't be > 99.\n"); ++ num_packets = 99; ++ } else if(num_packets < 1) { ++ printk(KERN_WARNING "layer7: num_packets can't be < 1.\n"); ++ num_packets = 1; ++ } ++ ++ return count; ++} ++ ++static bool ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35) ++match(const struct sk_buff *skbin, struct xt_action_param *par) ++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 28) ++match(const struct sk_buff *skbin, const struct xt_match_param *par) ++#else ++match(const struct sk_buff *skbin, ++ const struct net_device *in, ++ const struct net_device *out, ++ const struct xt_match *match, ++ const void *matchinfo, ++ int offset, ++ unsigned int protoff, ++ bool *hotdrop) ++#endif ++{ ++ /* sidestep const without getting a compiler warning... */ ++ struct sk_buff * skb = (struct sk_buff *)skbin; ++ ++ const struct xt_layer7_info * info = ++ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 28) ++ par->matchinfo; ++ #else ++ matchinfo; ++ #endif ++ ++ enum ip_conntrack_info master_ctinfo, ctinfo; ++ struct nf_conn *master_conntrack, *conntrack; ++ unsigned char * app_data; ++ unsigned int pattern_result, appdatalen; ++ regexp * comppattern; ++ ++ /* Be paranoid/incompetent - lock the entire match function. */ ++ spin_lock_bh(&l7_lock); ++ ++ if(!can_handle(skb)){ ++ DPRINTK("layer7: This is some protocol I can't handle.\n"); ++ spin_unlock_bh(&l7_lock); ++ return info->invert; ++ } ++ ++ /* Treat parent & all its children together as one connection, except ++ for the purpose of setting conntrack->layer7.app_proto in the actual ++ connection. This makes /proc/net/ip_conntrack more satisfying. */ ++ if(!(conntrack = nf_ct_get(skb, &ctinfo)) || ++ !(master_conntrack=nf_ct_get(skb,&master_ctinfo))){ ++ DPRINTK("layer7: couldn't get conntrack.\n"); ++ spin_unlock_bh(&l7_lock); ++ return info->invert; ++ } ++ ++ /* Try to get a master conntrack (and its master etc) for FTP, etc. */ ++ while (master_ct(master_conntrack) != NULL) ++ master_conntrack = master_ct(master_conntrack); ++ ++ /* if we've classified it or seen too many packets */ ++ if(total_acct_packets(master_conntrack) > num_packets || ++ master_conntrack->layer7.app_proto) { ++ ++ pattern_result = match_no_append(conntrack, master_conntrack, ++ ctinfo, master_ctinfo, info); ++ ++ /* skb->cb[0] == seen. Don't do things twice if there are ++ multiple l7 rules. I'm not sure that using cb for this purpose ++ is correct, even though it says "put your private variables ++ there". But it doesn't look like it is being used for anything ++ else in the skbs that make it here. */ ++ skb->cb[0] = 1; /* marking it seen here's probably irrelevant */ ++ ++ spin_unlock_bh(&l7_lock); ++ return (pattern_result ^ info->invert); ++ } ++ ++ if(skb_is_nonlinear(skb)){ ++ if(skb_linearize(skb) != 0){ ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: failed to linearize " ++ "packet, bailing.\n"); ++ spin_unlock_bh(&l7_lock); ++ return info->invert; ++ } ++ } ++ ++ /* now that the skb is linearized, it's safe to set these. */ ++ app_data = skb->data + app_data_offset(skb); ++ appdatalen = skb_tail_pointer(skb) - app_data; ++ ++ /* the return value gets checked later, when we're ready to use it */ ++ comppattern = compile_and_cache(info->pattern, info->protocol); ++ ++ /* On the first packet of a connection, allocate space for app data */ ++ if(total_acct_packets(master_conntrack) == 1 && !skb->cb[0] && ++ !master_conntrack->layer7.app_data){ ++ master_conntrack->layer7.app_data = ++ kmalloc(maxdatalen, GFP_ATOMIC); ++ if(!master_conntrack->layer7.app_data){ ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: out of memory in " ++ "match, bailing.\n"); ++ spin_unlock_bh(&l7_lock); ++ return info->invert; ++ } ++ ++ master_conntrack->layer7.app_data[0] = '\0'; ++ } ++ ++ /* Can be here, but unallocated, if numpackets is increased near ++ the beginning of a connection */ ++ if(master_conntrack->layer7.app_data == NULL){ ++ spin_unlock_bh(&l7_lock); ++ return info->invert; /* unmatched */ ++ } ++ ++ if(!skb->cb[0]){ ++ int newbytes; ++ newbytes = add_data(master_conntrack, app_data, appdatalen); ++ ++ if(newbytes == 0) { /* didn't add any data */ ++ skb->cb[0] = 1; ++ /* Didn't match before, not going to match now */ ++ spin_unlock_bh(&l7_lock); ++ return info->invert; ++ } ++ } ++ ++ /* If looking for "unknown", then never match. "Unknown" means that ++ we've given up; we're still trying with these packets. */ ++ if(!strcmp(info->protocol, "unknown")) { ++ pattern_result = 0; ++ /* If looking for "unset", then always match. "Unset" means that we ++ haven't yet classified the connection. */ ++ } else if(!strcmp(info->protocol, "unset")) { ++ pattern_result = 2; ++ DPRINTK("layer7: matched unset: not yet classified " ++ "(%d/%d packets)\n", ++ total_acct_packets(master_conntrack), num_packets); ++ /* If the regexp failed to compile, don't bother running it */ ++ } else if(comppattern && ++ regexec(comppattern, master_conntrack->layer7.app_data)){ ++ DPRINTK("layer7: matched %s\n", info->protocol); ++ pattern_result = 1; ++ } else pattern_result = 0; ++ ++ if(pattern_result == 1) { ++ master_conntrack->layer7.app_proto = ++ kmalloc(strlen(info->protocol)+1, GFP_ATOMIC); ++ if(!master_conntrack->layer7.app_proto){ ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: out of memory in " ++ "match, bailing.\n"); ++ spin_unlock_bh(&l7_lock); ++ return (pattern_result ^ info->invert); ++ } ++ strcpy(master_conntrack->layer7.app_proto, info->protocol); ++ } else if(pattern_result > 1) { /* cleanup from "unset" */ ++ pattern_result = 1; ++ } ++ ++ /* mark the packet seen */ ++ skb->cb[0] = 1; ++ ++ spin_unlock_bh(&l7_lock); ++ return (pattern_result ^ info->invert); ++} ++ ++// load nf_conntrack_ipv4 ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35) ++static int ++#else ++static bool ++#endif ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 28) ++check(const struct xt_mtchk_param *par) ++{ ++ if (nf_ct_l3proto_try_module_get(par->match->family) < 0) { ++ printk(KERN_WARNING "can't load conntrack support for " ++ "proto=%d\n", par->match->family); ++#else ++check(const char *tablename, const void *inf, ++ const struct xt_match *match, void *matchinfo, ++ unsigned int hook_mask) ++{ ++ if (nf_ct_l3proto_try_module_get(match->family) < 0) { ++ printk(KERN_WARNING "can't load conntrack support for " ++ "proto=%d\n", match->family); ++#endif ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35) ++ return -EINVAL; ++ } ++ return 0; ++#else ++ return 0; ++ } ++ return 1; ++#endif ++} ++ ++ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 28) ++ static void destroy(const struct xt_mtdtor_param *par) ++ { ++ nf_ct_l3proto_module_put(par->match->family); ++ } ++#else ++ static void destroy(const struct xt_match *match, void *matchinfo) ++ { ++ nf_ct_l3proto_module_put(match->family); ++ } ++#endif ++ ++static struct xt_match xt_layer7_match[] __read_mostly = { ++{ ++ .name = "layer7", ++ .family = AF_INET, ++ .checkentry = check, ++ .match = match, ++ .destroy = destroy, ++ .matchsize = sizeof(struct xt_layer7_info), ++ .me = THIS_MODULE ++} ++}; ++ ++static void layer7_cleanup_proc(void) ++{ ++// remove_proc_entry("layer7_numpackets", init_net.proc_net); ++} ++ ++/* register the proc file */ ++static void layer7_init_proc(void) ++{ ++ struct proc_dir_entry* entry; ++// entry = create_proc_entry("layer7_numpackets", 0644, init_net.proc_net); ++// entry->read_proc = layer7_read_proc; ++// entry->write_proc = layer7_write_proc; ++} ++ ++static int __init xt_layer7_init(void) ++{ ++ need_conntrack(); ++ ++ if (init_net.ct.sysctl_acct == 0) { ++ printk(KERN_WARNING "layer7: enabling nf_conntrack_acct\n"); ++ init_net.ct.sysctl_acct = 1; ++ } ++ ++ layer7_init_proc(); ++ if(maxdatalen < 1) { ++ printk(KERN_WARNING "layer7: maxdatalen can't be < 1, " ++ "using 1\n"); ++ maxdatalen = 1; ++ } ++ /* This is not a hard limit. It's just here to prevent people from ++ bringing their slow machines to a grinding halt. */ ++ else if(maxdatalen > 65536) { ++ printk(KERN_WARNING "layer7: maxdatalen can't be > 65536, " ++ "using 65536\n"); ++ maxdatalen = 65536; ++ } ++ return xt_register_matches(xt_layer7_match, ++ ARRAY_SIZE(xt_layer7_match)); ++} ++ ++static void __exit xt_layer7_fini(void) ++{ ++ layer7_cleanup_proc(); ++ xt_unregister_matches(xt_layer7_match, ARRAY_SIZE(xt_layer7_match)); ++} ++ ++module_init(xt_layer7_init); ++module_exit(xt_layer7_fini); diff --git a/src/patches/openssl-1.0.0-beta5-enginesdir.patch b/src/patches/openssl-1.0.0-beta5-enginesdir.patch new file mode 100644 index 0000000..d942d6e --- /dev/null +++ b/src/patches/openssl-1.0.0-beta5-enginesdir.patch @@ -0,0 +1,52 @@ +diff -up openssl-1.0.0-beta5/Configure.enginesdir openssl-1.0.0-beta5/Configure +--- openssl-1.0.0-beta5/Configure.enginesdir 2010-01-20 18:07:05.000000000 +0100 ++++ openssl-1.0.0-beta5/Configure 2010-01-20 18:10:48.000000000 +0100 +@@ -622,6 +622,7 @@ my $idx_multilib = $idx++; + my $prefix=""; + my $libdir=""; + my $openssldir=""; ++my $enginesdir=""; + my $exe_ext=""; + my $install_prefix= "$ENV{'INSTALL_PREFIX'}"; + my $cross_compile_prefix=""; +@@ -833,6 +834,10 @@ PROCESS_ARGS: + { + $openssldir=$1; + } ++ elsif (/^--enginesdir=(.*)$/) ++ { ++ $enginesdir=$1; ++ } + elsif (/^--install.prefix=(.*)$/) + { + $install_prefix=$1; +@@ -1053,7 +1058,7 @@ chop $prefix if $prefix =~ /./$/; + + $openssldir=$prefix . "/ssl" if $openssldir eq ""; + $openssldir=$prefix . "/" . $openssldir if $openssldir !~ /(^/|^[a-zA-Z]:[\/])/; +- ++$enginesdir="$prefix/lib/engines" if $enginesdir eq ""; + + print "IsMK1MF=$IsMK1MF\n"; + +@@ -1673,7 +1678,7 @@ while (<IN>) + } + elsif (/^#define\s+ENGINESDIR/) + { +- my $foo = "$prefix/$libdir/engines"; ++ my $foo = "$enginesdir"; + $foo =~ s/\/\\/g; + print OUT "#define ENGINESDIR "$foo"\n"; + } +diff -up openssl-1.0.0-beta5/engines/Makefile.enginesdir openssl-1.0.0-beta5/engines/Makefile +--- openssl-1.0.0-beta5/engines/Makefile.enginesdir 2010-01-16 21:06:09.000000000 +0100 ++++ openssl-1.0.0-beta5/engines/Makefile 2010-01-20 18:07:05.000000000 +0100 +@@ -124,7 +124,7 @@ install: + sfx=".so"; \ + cp cyg$$l.dll $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new; \ + fi; \ +- chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new; \ ++ chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new; \ + mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx ); \ + done; \ + fi diff --git a/src/patches/openssl-1.0.1-beta2-build.patch b/src/patches/openssl-1.0.1-beta2-build.patch new file mode 100644 index 0000000..0a5cef1 --- /dev/null +++ b/src/patches/openssl-1.0.1-beta2-build.patch @@ -0,0 +1,109 @@ +diff -up openssl-1.0.1-beta2/Configure.rpmbuild openssl-1.0.1-beta2/Configure +--- openssl-1.0.1-beta2/Configure.rpmbuild 2012-01-05 01:07:34.000000000 +0100 ++++ openssl-1.0.1-beta2/Configure 2012-02-02 12:43:56.547409325 +0100 +@@ -343,23 +343,23 @@ my %table=( + #### + # *-generic* is endian-neutral target, but ./config is free to + # throw in -D[BL]_ENDIAN, whichever appropriate... +-"linux-generic32","gcc:-DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.$(SHLIB_MAJOR).$(SHLIB_MINOR)", +-"linux-ppc", "gcc:-DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc32_asm}:linux32:dlfcn:linux-shared:-fPIC::.so.$(SHLIB_MAJOR).$(SHLIB_MINOR)", ++"linux-generic32","gcc:-DTERMIO -Wall $(RPM_OPT_FLAGS)::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC:$(RPM_OPT_FLAGS):.so.$(SHLIB_SONAMEVER)", ++"linux-ppc", "gcc:-DB_ENDIAN -DTERMIO -Wall $(RPM_OPT_FLAGS)::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc32_asm}:linux32:dlfcn:linux-shared:-fPIC:$(RPM_OPT_FLAGS):.so.$(SHLIB_SONAMEVER)", + # It's believed that majority of ARM toolchains predefine appropriate -march. + # If you compiler does not, do complement config command line with one! +-"linux-armv4", "gcc:-DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${armv4_asm}:dlfcn:linux-shared:-fPIC::.so.$(SHLIB_MAJOR).$(SHLIB_MINOR)", ++"linux-armv4", "gcc:-DTERMIO -Wall $(RPM_OPT_FLAGS)::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${armv4_asm}:dlfcn:linux-shared:-fPIC:$(RPM_OPT_FLAGS):.so.$(SHLIB_SONAMEVER)", + #### IA-32 targets... + "linux-ia32-icc", "icc:-DL_ENDIAN -DTERMIO -O2 -no_cpprt::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-KPIC::.so.$(SHLIB_MAJOR).$(SHLIB_MINOR)", +-"linux-elf", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.$(SHLIB_MAJOR).$(SHLIB_MINOR)", ++"linux-elf", "gcc:-DL_ENDIAN -DTERMIO -Wall $(RPM_OPT_FLAGS)::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC:$(RPM_OPT_FLAGS):.so.$(SHLIB_SONAMEVER)", + "linux-aout", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -march=i486 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_asm}:a.out", + #### +-"linux-generic64","gcc:-DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.$(SHLIB_MAJOR).$(SHLIB_MINOR)", +-"linux-ppc64", "gcc:-m64 -DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc64_asm}:linux64:dlfcn:linux-shared:-fPIC:-m64:.so.$(SHLIB_MAJOR).$(SHLIB_MINOR):::64", +-"linux-ia64", "gcc:-DL_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_UNROLL DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.$(SHLIB_MAJOR).$(SHLIB_MINOR)", ++"linux-generic64","gcc:-DTERMIO -Wall $(RPM_OPT_FLAGS)::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC:$(RPM_OPT_FLAGS):.so.$(SHLIB_SONAMEVER)", ++"linux-ppc64", "gcc:-m64 -DB_ENDIAN -DTERMIO -Wall $(RPM_OPT_FLAGS)::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc64_asm}:linux64:dlfcn:linux-shared:-fPIC:-m64 $(RPM_OPT_FLAGS):.so.$(SHLIB_SONAMEVER):::64", ++"linux-ia64", "gcc:-DL_ENDIAN -DTERMIO -Wall $(RPM_OPT_FLAGS)::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_UNROLL DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC:$(RPM_OPT_FLAGS):.so.$(SHLIB_SONAMEVER)", + "linux-ia64-ecc","ecc:-DL_ENDIAN -DTERMIO -O2 -Wall -no_cpprt::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.$(SHLIB_MAJOR).$(SHLIB_MINOR)", + "linux-ia64-icc","icc:-DL_ENDIAN -DTERMIO -O2 -Wall -no_cpprt::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.$(SHLIB_MAJOR).$(SHLIB_MINOR)", +-"linux-x86_64", "gcc:-m64 -DL_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.$(SHLIB_MAJOR).$(SHLIB_MINOR):::64", +-"linux64-s390x", "gcc:-m64 -DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:${s390x_asm}:64:dlfcn:linux-shared:-fPIC:-m64:.so.$(SHLIB_MAJOR).$(SHLIB_MINOR):::64", ++"linux-x86_64", "gcc:-m64 -DL_ENDIAN -DTERMIO -Wall $(RPM_OPT_FLAGS)::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64 $(RPM_OPT_FLAGS):.so.$(SHLIB_SONAMEVER):::64", ++"linux64-s390x", "gcc:-m64 -DB_ENDIAN -DTERMIO -Wall $(RPM_OPT_FLAGS)::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:${s390x_asm}:64:dlfcn:linux-shared:-fPIC:-m64 $(RPM_OPT_FLAGS):.so.$(SHLIB_SONAMEVER):::64", + #### So called "highgprs" target for z/Architecture CPUs + # "Highgprs" is kernel feature first implemented in Linux 2.6.32, see + # /proc/cpuinfo. The idea is to preserve most significant bits of +@@ -373,16 +373,16 @@ my %table=( + # ldconfig and run-time linker to autodiscover. Unfortunately it + # doesn't work just yet, because of couple of bugs in glibc + # sysdeps/s390/dl-procinfo.c affecting ldconfig and ld.so.1... +-"linux32-s390x", "gcc:-m31 -Wa,-mzarch -DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:".eval{my $asm=$s390x_asm;$asm=~s/bn-s390x.o/bn_asm.o/;$asm}.":31:dlfcn:linux-shared:-fPIC:-m31:.so.$(SHLIB_MAJOR).$(SHLIB_MINOR):::/highgprs", ++"linux32-s390x", "gcc:-m31 -Wa,-mzarch -DB_ENDIAN -DTERMIO -Wall $(RPM_OPT_FLAGS)::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:".eval{my $asm=$s390x_asm;$asm=~s/bn-s390x.o/bn_asm.o/;$asm}.":31:dlfcn:linux-shared:-fPIC:-m31 $(RPM_OPT_FLAGS):.so.$(SHLIB_SONAMEVER):::/highgprs", + #### SPARC Linux setups + # Ray Miller ray.miller@computing-services.oxford.ac.uk has patiently + # assisted with debugging of following two configs. +-"linux-sparcv8","gcc:-mv8 -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -DBN_DIV2W::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv8_asm}:dlfcn:linux-shared:-fPIC::.so.$(SHLIB_MAJOR).$(SHLIB_MINOR)", ++"linux-sparcv8","gcc:-DB_ENDIAN -DTERMIO -Wall $(RPM_OPT_FLAGS) -DBN_DIV2W::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv8_asm}:dlfcn:linux-shared:-fPIC:$(RPM_OPT_FLAGS):.so.$(SHLIB_SONAMEVER)", + # it's a real mess with -mcpu=ultrasparc option under Linux, but + # -Wa,-Av8plus should do the trick no matter what. +-"linux-sparcv9","gcc:-m32 -mcpu=ultrasparc -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -Wa,-Av8plus -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:linux-shared:-fPIC:-m32:.so.$(SHLIB_MAJOR).$(SHLIB_MINOR)", ++"linux-sparcv9","gcc:-DB_ENDIAN -DTERMIO -Wall $(RPM_OPT_FLAGS) -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:linux-shared:-fPIC:$(RPM_OPT_FLAGS):.so.$(SHLIB_SONAMEVER)", + # GCC 3.1 is a requirement +-"linux64-sparcv9","gcc:-m64 -mcpu=ultrasparc -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT:ULTRASPARC:-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.$(SHLIB_MAJOR).$(SHLIB_MINOR):::64", ++"linux64-sparcv9","gcc:-DB_ENDIAN -DTERMIO -Wall $(RPM_OPT_FLAGS)::-D_REENTRANT:ULTRASPARC:-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:linux-shared:-fPIC:$(RPM_OPT_FLAGS):.so.$(SHLIB_SONAMEVER):::64", + #### Alpha Linux with GNU C and Compaq C setups + # Special notes: + # - linux-alpha+bwx-gcc is ment to be used from ./config only. If you +@@ -396,8 +396,8 @@ my %table=( + # + # appro@fy.chalmers.se + # +-"linux-alpha-gcc","gcc:-O3 -DL_ENDIAN -DTERMIO::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC::.so.$(SHLIB_MAJOR).$(SHLIB_MINOR)", +-"linux-alpha+bwx-gcc","gcc:-O3 -DL_ENDIAN -DTERMIO::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC::.so.$(SHLIB_MAJOR).$(SHLIB_MINOR)", ++"linux-alpha-gcc","gcc:-DL_ENDIAN -DTERMIO -Wall $(RPM_OPT_FLAGS)::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC:$(RPM_OPT_FLAGS):.so.$(SHLIB_SONAMEVER)", ++"linux-alpha+bwx-gcc","gcc:-DL_ENDIAN -DTERMIO -Wall $(RPM_OPT_FLAGS)::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC:$(RPM_OPT_FLAGS):.so.$(SHLIB_SONAMEVER)", + "linux-alpha-ccc","ccc:-fast -readonly_strings -DL_ENDIAN -DTERMIO::-D_REENTRANT:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:${alpha_asm}", + "linux-alpha+bwx-ccc","ccc:-fast -readonly_strings -DL_ENDIAN -DTERMIO::-D_REENTRANT:::SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:${alpha_asm}", + +@@ -1678,7 +1678,7 @@ while (<IN>) + elsif ($shared_extension ne "" && $shared_extension =~ /^.s([ol]).[^.]*.[^.]*$/) + { + my $sotmp = $1; +- s/^SHARED_LIBS_LINK_EXTS=.*/SHARED_LIBS_LINK_EXTS=.s$sotmp.$(SHLIB_MAJOR) .s$sotmp/; ++ s/^SHARED_LIBS_LINK_EXTS=.*/SHARED_LIBS_LINK_EXTS=.s$sotmp.$(SHLIB_SONAMEVER) .s$sotmp/; + } + elsif ($shared_extension ne "" && $shared_extension =~ /^.[^.]*.[^.]*.dylib$/) + { +diff -up openssl-1.0.1-beta2/Makefile.org.rpmbuild openssl-1.0.1-beta2/Makefile.org +--- openssl-1.0.1-beta2/Makefile.org.rpmbuild 2011-12-27 16:17:50.000000000 +0100 ++++ openssl-1.0.1-beta2/Makefile.org 2012-02-02 12:30:23.652495435 +0100 +@@ -10,6 +10,7 @@ SHLIB_VERSION_HISTORY= + SHLIB_MAJOR= + SHLIB_MINOR= + SHLIB_EXT= ++SHLIB_SONAMEVER=10 + PLATFORM=dist + OPTIONS= + CONFIGURE_ARGS= +@@ -333,10 +334,9 @@ clean-shared: + link-shared: + @ set -e; for i in $(SHLIBDIRS); do \ + $(MAKE) -f $(HERE)/Makefile.shared -e $(BUILDENV) \ +- LIBNAME=$$i LIBVERSION=$(SHLIB_MAJOR).$(SHLIB_MINOR) \ ++ LIBNAME=$$i LIBVERSION=$(SHLIB_SONAMEVER) \ + LIBCOMPATVERSIONS=";$(SHLIB_VERSION_HISTORY)" \ + symlink.$(SHLIB_TARGET); \ +- libs="$$libs -l$$i"; \ + done + + build-shared: do_$(SHLIB_TARGET) link-shared +@@ -347,7 +347,7 @@ do_$(SHLIB_TARGET): + libs="$(LIBKRB5) $$libs"; \ + fi; \ + $(CLEARENV) && $(MAKE) -f Makefile.shared -e $(BUILDENV) \ +- LIBNAME=$$i LIBVERSION=$(SHLIB_MAJOR).$(SHLIB_MINOR) \ ++ LIBNAME=$$i LIBVERSION=$(SHLIB_SONAMEVER) \ + LIBCOMPATVERSIONS=";$(SHLIB_VERSION_HISTORY)" \ + LIBDEPS="$$libs $(EX_LIBS)" \ + link_a.$(SHLIB_TARGET); \ diff --git a/src/patches/openssl-1.0.1e-cryptodev.patch b/src/patches/openssl-1.0.1e-cryptodev.patch new file mode 100644 index 0000000..29b6f77 --- /dev/null +++ b/src/patches/openssl-1.0.1e-cryptodev.patch @@ -0,0 +1,712 @@ +Patch created by Michael Tremer michael.tremer@ipfire.org from + http://download.gna.org/cryptodev-linux/cryptodev-linux-1.6.tar.gz + +diff -Nur openssl-1.0.1e-vanilla/crypto/cryptodev.h openssl-1.0.1e/crypto/cryptodev.h +--- openssl-1.0.1e-vanilla/crypto/cryptodev.h 1970-01-01 00:00:00.000000000 +0000 ++++ openssl-1.0.1e/crypto/cryptodev.h 2013-12-25 14:27:20.907326820 +0000 +@@ -0,0 +1,292 @@ ++/* This is a source compatible implementation with the original API of ++ * cryptodev by Angelos D. Keromytis, found at openbsd cryptodev.h. ++ * Placed under public domain */ ++ ++#ifndef L_CRYPTODEV_H ++#define L_CRYPTODEV_H ++ ++#include <linux/types.h> ++#ifndef __KERNEL__ ++#define __user ++#endif ++ ++/* API extensions for linux */ ++#define CRYPTO_HMAC_MAX_KEY_LEN 512 ++#define CRYPTO_CIPHER_MAX_KEY_LEN 64 ++ ++/* All the supported algorithms ++ */ ++enum cryptodev_crypto_op_t { ++ CRYPTO_DES_CBC = 1, ++ CRYPTO_3DES_CBC = 2, ++ CRYPTO_BLF_CBC = 3, ++ CRYPTO_CAST_CBC = 4, ++ CRYPTO_SKIPJACK_CBC = 5, ++ CRYPTO_MD5_HMAC = 6, ++ CRYPTO_SHA1_HMAC = 7, ++ CRYPTO_RIPEMD160_HMAC = 8, ++ CRYPTO_MD5_KPDK = 9, ++ CRYPTO_SHA1_KPDK = 10, ++ CRYPTO_RIJNDAEL128_CBC = 11, ++ CRYPTO_AES_CBC = CRYPTO_RIJNDAEL128_CBC, ++ CRYPTO_ARC4 = 12, ++ CRYPTO_MD5 = 13, ++ CRYPTO_SHA1 = 14, ++ CRYPTO_DEFLATE_COMP = 15, ++ CRYPTO_NULL = 16, ++ CRYPTO_LZS_COMP = 17, ++ CRYPTO_SHA2_256_HMAC = 18, ++ CRYPTO_SHA2_384_HMAC = 19, ++ CRYPTO_SHA2_512_HMAC = 20, ++ CRYPTO_AES_CTR = 21, ++ CRYPTO_AES_XTS = 22, ++ CRYPTO_AES_ECB = 23, ++ CRYPTO_AES_GCM = 50, ++ ++ CRYPTO_CAMELLIA_CBC = 101, ++ CRYPTO_RIPEMD160, ++ CRYPTO_SHA2_224, ++ CRYPTO_SHA2_256, ++ CRYPTO_SHA2_384, ++ CRYPTO_SHA2_512, ++ CRYPTO_SHA2_224_HMAC, ++ CRYPTO_ALGORITHM_ALL, /* Keep updated - see below */ ++}; ++ ++#define CRYPTO_ALGORITHM_MAX (CRYPTO_ALGORITHM_ALL - 1) ++ ++/* Values for ciphers */ ++#define DES_BLOCK_LEN 8 ++#define DES3_BLOCK_LEN 8 ++#define RIJNDAEL128_BLOCK_LEN 16 ++#define AES_BLOCK_LEN RIJNDAEL128_BLOCK_LEN ++#define CAMELLIA_BLOCK_LEN 16 ++#define BLOWFISH_BLOCK_LEN 8 ++#define SKIPJACK_BLOCK_LEN 8 ++#define CAST128_BLOCK_LEN 8 ++ ++/* the maximum of the above */ ++#define EALG_MAX_BLOCK_LEN 16 ++ ++/* Values for hashes/MAC */ ++#define AALG_MAX_RESULT_LEN 64 ++ ++/* maximum length of verbose alg names (depends on CRYPTO_MAX_ALG_NAME) */ ++#define CRYPTODEV_MAX_ALG_NAME 64 ++ ++#define HASH_MAX_LEN 64 ++ ++/* input of CIOCGSESSION */ ++struct session_op { ++ /* Specify either cipher or mac ++ */ ++ __u32 cipher; /* cryptodev_crypto_op_t */ ++ __u32 mac; /* cryptodev_crypto_op_t */ ++ ++ __u32 keylen; ++ __u8 __user *key; ++ __u32 mackeylen; ++ __u8 __user *mackey; ++ ++ __u32 ses; /* session identifier */ ++}; ++ ++struct session_info_op { ++ __u32 ses; /* session identifier */ ++ ++ /* verbose names for the requested ciphers */ ++ struct alg_info { ++ char cra_name[CRYPTODEV_MAX_ALG_NAME]; ++ char cra_driver_name[CRYPTODEV_MAX_ALG_NAME]; ++ } cipher_info, hash_info; ++ ++ __u16 alignmask; /* alignment constraints */ ++ __u32 flags; /* SIOP_FLAGS_* */ ++}; ++ ++/* If this flag is set then this algorithm uses ++ * a driver only available in kernel (software drivers, ++ * or drivers based on instruction sets do not set this flag). ++ * ++ * If multiple algorithms are involved (as in AEAD case), then ++ * if one of them is kernel-driver-only this flag will be set. ++ */ ++#define SIOP_FLAG_KERNEL_DRIVER_ONLY 1 ++ ++#define COP_ENCRYPT 0 ++#define COP_DECRYPT 1 ++ ++/* input of CIOCCRYPT */ ++struct crypt_op { ++ __u32 ses; /* session identifier */ ++ __u16 op; /* COP_ENCRYPT or COP_DECRYPT */ ++ __u16 flags; /* see COP_FLAG_* */ ++ __u32 len; /* length of source data */ ++ __u8 __user *src; /* source data */ ++ __u8 __user *dst; /* pointer to output data */ ++ /* pointer to output data for hash/MAC operations */ ++ __u8 __user *mac; ++ /* initialization vector for encryption operations */ ++ __u8 __user *iv; ++}; ++ ++/* input of CIOCAUTHCRYPT */ ++struct crypt_auth_op { ++ __u32 ses; /* session identifier */ ++ __u16 op; /* COP_ENCRYPT or COP_DECRYPT */ ++ __u16 flags; /* see COP_FLAG_AEAD_* */ ++ __u32 len; /* length of source data */ ++ __u32 auth_len; /* length of auth data */ ++ __u8 __user *auth_src; /* authenticated-only data */ ++ ++ /* The current implementation is more efficient if data are ++ * encrypted in-place (src==dst). */ ++ __u8 __user *src; /* data to be encrypted and authenticated */ ++ __u8 __user *dst; /* pointer to output data. Must have ++ * space for tag. For TLS this should be at least ++ * len + tag_size + block_size for padding */ ++ ++ __u8 __user *tag; /* where the tag will be copied to. TLS mode ++ * doesn't use that as tag is copied to dst. ++ * SRTP mode copies tag there. */ ++ __u32 tag_len; /* the length of the tag. Use zero for digest size or max tag. */ ++ ++ /* initialization vector for encryption operations */ ++ __u8 __user *iv; ++ __u32 iv_len; ++}; ++ ++/* In plain AEAD mode the following are required: ++ * flags : 0 ++ * iv : the initialization vector (12 bytes) ++ * auth_len: the length of the data to be authenticated ++ * auth_src: the data to be authenticated ++ * len : length of data to be encrypted ++ * src : the data to be encrypted ++ * dst : space to hold encrypted data. It must have ++ * at least a size of len + tag_size. ++ * tag_size: the size of the desired authentication tag or zero to use ++ * the maximum tag output. ++ * ++ * Note tag isn't being used because the Linux AEAD interface ++ * copies the tag just after data. ++ */ ++ ++/* In TLS mode (used for CBC ciphers that required padding) ++ * the following are required: ++ * flags : COP_FLAG_AEAD_TLS_TYPE ++ * iv : the initialization vector ++ * auth_len: the length of the data to be authenticated only ++ * len : length of data to be encrypted ++ * auth_src: the data to be authenticated ++ * src : the data to be encrypted ++ * dst : space to hold encrypted data (preferably in-place). It must have ++ * at least a size of len + tag_size + blocksize. ++ * tag_size: the size of the desired authentication tag or zero to use ++ * the default mac output. ++ * ++ * Note that the padding used is the minimum padding. ++ */ ++ ++/* In SRTP mode the following are required: ++ * flags : COP_FLAG_AEAD_SRTP_TYPE ++ * iv : the initialization vector ++ * auth_len: the length of the data to be authenticated. This must ++ * include the SRTP header + SRTP payload (data to be encrypted) + rest ++ * ++ * len : length of data to be encrypted ++ * auth_src: pointer the data to be authenticated. Should point at the same buffer as src. ++ * src : pointer to the data to be encrypted. ++ * dst : This is mandatory to be the same as src (in-place only). ++ * tag_size: the size of the desired authentication tag or zero to use ++ * the default mac output. ++ * tag : Pointer to an address where the authentication tag will be copied. ++ */ ++ ++ ++/* struct crypt_op flags */ ++ ++#define COP_FLAG_NONE (0 << 0) /* totally no flag */ ++#define COP_FLAG_UPDATE (1 << 0) /* multi-update hash mode */ ++#define COP_FLAG_FINAL (1 << 1) /* multi-update final hash mode */ ++#define COP_FLAG_WRITE_IV (1 << 2) /* update the IV during operation */ ++#define COP_FLAG_NO_ZC (1 << 3) /* do not zero-copy */ ++#define COP_FLAG_AEAD_TLS_TYPE (1 << 4) /* authenticate and encrypt using the ++ * TLS protocol rules */ ++#define COP_FLAG_AEAD_SRTP_TYPE (1 << 5) /* authenticate and encrypt using the ++ * SRTP protocol rules */ ++#define COP_FLAG_RESET (1 << 6) /* multi-update reset the state. ++ * should be used in combination ++ * with COP_FLAG_UPDATE */ ++ ++ ++/* Stuff for bignum arithmetic and public key ++ * cryptography - not supported yet by linux ++ * cryptodev. ++ */ ++ ++#define CRYPTO_ALG_FLAG_SUPPORTED 1 ++#define CRYPTO_ALG_FLAG_RNG_ENABLE 2 ++#define CRYPTO_ALG_FLAG_DSA_SHA 4 ++ ++struct crparam { ++ __u8 *crp_p; ++ __u32 crp_nbits; ++}; ++ ++#define CRK_MAXPARAM 8 ++ ++/* input of CIOCKEY */ ++struct crypt_kop { ++ __u32 crk_op; /* cryptodev_crk_ot_t */ ++ __u32 crk_status; ++ __u16 crk_iparams; ++ __u16 crk_oparams; ++ __u32 crk_pad1; ++ struct crparam crk_param[CRK_MAXPARAM]; ++}; ++ ++enum cryptodev_crk_op_t { ++ CRK_MOD_EXP = 0, ++ CRK_MOD_EXP_CRT = 1, ++ CRK_DSA_SIGN = 2, ++ CRK_DSA_VERIFY = 3, ++ CRK_DH_COMPUTE_KEY = 4, ++ CRK_ALGORITHM_ALL ++}; ++ ++#define CRK_ALGORITHM_MAX (CRK_ALGORITHM_ALL-1) ++ ++/* features to be queried with CIOCASYMFEAT ioctl ++ */ ++#define CRF_MOD_EXP (1 << CRK_MOD_EXP) ++#define CRF_MOD_EXP_CRT (1 << CRK_MOD_EXP_CRT) ++#define CRF_DSA_SIGN (1 << CRK_DSA_SIGN) ++#define CRF_DSA_VERIFY (1 << CRK_DSA_VERIFY) ++#define CRF_DH_COMPUTE_KEY (1 << CRK_DH_COMPUTE_KEY) ++ ++ ++/* ioctl's. Compatible with old linux cryptodev.h ++ */ ++#define CRIOGET _IOWR('c', 101, __u32) ++#define CIOCGSESSION _IOWR('c', 102, struct session_op) ++#define CIOCFSESSION _IOW('c', 103, __u32) ++#define CIOCCRYPT _IOWR('c', 104, struct crypt_op) ++#define CIOCKEY _IOWR('c', 105, struct crypt_kop) ++#define CIOCASYMFEAT _IOR('c', 106, __u32) ++#define CIOCGSESSINFO _IOWR('c', 107, struct session_info_op) ++ ++/* to indicate that CRIOGET is not required in linux ++ */ ++#define CRIOGET_NOT_NEEDED 1 ++ ++/* additional ioctls for AEAD */ ++#define CIOCAUTHCRYPT _IOWR('c', 109, struct crypt_auth_op) ++ ++/* additional ioctls for asynchronous operation. ++ * These are conditionally enabled since version 1.6. ++ */ ++#define CIOCASYNCCRYPT _IOW('c', 110, struct crypt_op) ++#define CIOCASYNCFETCH _IOR('c', 111, struct crypt_op) ++ ++#endif /* L_CRYPTODEV_H */ +diff -Nur openssl-1.0.1e-vanilla/crypto/engine/eng_cryptodev.c openssl-1.0.1e/crypto/engine/eng_cryptodev.c +--- openssl-1.0.1e-vanilla/crypto/engine/eng_cryptodev.c 2013-02-11 15:26:04.000000000 +0000 ++++ openssl-1.0.1e/crypto/engine/eng_cryptodev.c 2013-12-25 14:27:06.968877039 +0000 +@@ -2,6 +2,7 @@ + * Copyright (c) 2002 Bob Beck beck@openbsd.org + * Copyright (c) 2002 Theo de Raadt + * Copyright (c) 2002 Markus Friedl ++ * Copyright (c) 2012 Nikos Mavrogiannopoulos + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without +@@ -74,8 +75,6 @@ + int d_fd; + + #ifdef USE_CRYPTODEV_DIGESTS +- char dummy_mac_key[HASH_MAX_LEN]; +- + unsigned char digest_res[HASH_MAX_LEN]; + char *mac_data; + int mac_len; +@@ -157,15 +156,21 @@ + static struct { + int id; + int nid; +- int keylen; ++ int digestlen; + } digests[] = { ++#if 0 ++ /* HMAC is not supported */ + { CRYPTO_MD5_HMAC, NID_hmacWithMD5, 16}, + { CRYPTO_SHA1_HMAC, NID_hmacWithSHA1, 20}, +- { CRYPTO_RIPEMD160_HMAC, NID_ripemd160, 16/*?*/}, +- { CRYPTO_MD5_KPDK, NID_undef, 0}, +- { CRYPTO_SHA1_KPDK, NID_undef, 0}, ++ { CRYPTO_SHA2_256_HMAC, NID_hmacWithSHA256, 32}, ++ { CRYPTO_SHA2_384_HMAC, NID_hmacWithSHA384, 48}, ++ { CRYPTO_SHA2_512_HMAC, NID_hmacWithSHA512, 64}, ++#endif + { CRYPTO_MD5, NID_md5, 16}, + { CRYPTO_SHA1, NID_sha1, 20}, ++ { CRYPTO_SHA2_256, NID_sha256, 32}, ++ { CRYPTO_SHA2_384, NID_sha384, 48}, ++ { CRYPTO_SHA2_512, NID_sha512, 64}, + { 0, NID_undef, 0}, + }; + #endif +@@ -243,13 +248,14 @@ + static int nids[CRYPTO_ALGORITHM_MAX]; + struct session_op sess; + int fd, i, count = 0; ++ unsigned char fake_key[CRYPTO_CIPHER_MAX_KEY_LEN]; + + if ((fd = get_dev_crypto()) < 0) { + *cnids = NULL; + return (0); + } + memset(&sess, 0, sizeof(sess)); +- sess.key = (caddr_t)"123456789abcdefghijklmno"; ++ sess.key = (void*)fake_key; + + for (i = 0; ciphers[i].id && count < CRYPTO_ALGORITHM_MAX; i++) { + if (ciphers[i].nid == NID_undef) +@@ -281,6 +287,7 @@ + get_cryptodev_digests(const int **cnids) + { + static int nids[CRYPTO_ALGORITHM_MAX]; ++ unsigned char fake_key[CRYPTO_CIPHER_MAX_KEY_LEN]; + struct session_op sess; + int fd, i, count = 0; + +@@ -289,12 +296,12 @@ + return (0); + } + memset(&sess, 0, sizeof(sess)); +- sess.mackey = (caddr_t)"123456789abcdefghijklmno"; ++ sess.mackey = fake_key; + for (i = 0; digests[i].id && count < CRYPTO_ALGORITHM_MAX; i++) { + if (digests[i].nid == NID_undef) + continue; + sess.mac = digests[i].id; +- sess.mackeylen = digests[i].keylen; ++ sess.mackeylen = 8; + sess.cipher = 0; + if (ioctl(fd, CIOCGSESSION, &sess) != -1 && + ioctl(fd, CIOCFSESSION, &sess.ses) != -1) +@@ -382,14 +389,14 @@ + cryp.ses = sess->ses; + cryp.flags = 0; + cryp.len = inl; +- cryp.src = (caddr_t) in; +- cryp.dst = (caddr_t) out; ++ cryp.src = (void*) in; ++ cryp.dst = (void*) out; + cryp.mac = 0; + + cryp.op = ctx->encrypt ? COP_ENCRYPT : COP_DECRYPT; + + if (ctx->cipher->iv_len) { +- cryp.iv = (caddr_t) ctx->iv; ++ cryp.iv = (void*) ctx->iv; + if (!ctx->encrypt) { + iiv = in + inl - ctx->cipher->iv_len; + memcpy(save_iv, iiv, ctx->cipher->iv_len); +@@ -440,7 +447,7 @@ + if ((state->d_fd = get_dev_crypto()) < 0) + return (0); + +- sess->key = (caddr_t)key; ++ sess->key = (void*)key; + sess->keylen = ctx->key_len; + sess->cipher = cipher; + +@@ -660,18 +667,6 @@ + } + + +-static int +-digest_key_length(int nid) +-{ +- int i; +- +- for (i = 0; digests[i].id; i++) +- if (digests[i].nid == nid) +- return digests[i].keylen; +- return (0); +-} +- +- + static int cryptodev_digest_init(EVP_MD_CTX *ctx) + { + struct dev_crypto_state *state = ctx->md_data; +@@ -682,7 +677,6 @@ + printf("cryptodev_digest_init: Can't get digest \n"); + return (0); + } +- + memset(state, 0, sizeof(struct dev_crypto_state)); + + if ((state->d_fd = get_dev_crypto()) < 0) { +@@ -690,8 +684,8 @@ + return (0); + } + +- sess->mackey = state->dummy_mac_key; +- sess->mackeylen = digest_key_length(ctx->digest->type); ++ sess->mackey = NULL; ++ sess->mackeylen = 0; + sess->mac = digest; + + if (ioctl(state->d_fd, CIOCGSESSION, sess) < 0) { +@@ -707,8 +701,8 @@ + static int cryptodev_digest_update(EVP_MD_CTX *ctx, const void *data, + size_t count) + { +- struct crypt_op cryp; + struct dev_crypto_state *state = ctx->md_data; ++ struct crypt_op cryp; + struct session_op *sess = &state->d_sess; + + if (!data || state->d_fd < 0) { +@@ -717,7 +711,7 @@ + } + + if (!count) { +- return (0); ++ return (1); + } + + if (!(ctx->flags & EVP_MD_CTX_FLAG_ONESHOT)) { +@@ -740,9 +734,9 @@ + cryp.ses = sess->ses; + cryp.flags = 0; + cryp.len = count; +- cryp.src = (caddr_t) data; ++ cryp.src = (void*) data; + cryp.dst = NULL; +- cryp.mac = (caddr_t) state->digest_res; ++ cryp.mac = (void*) state->digest_res; + if (ioctl(state->d_fd, CIOCCRYPT, &cryp) < 0) { + printf("cryptodev_digest_update: digest failed\n"); + return (0); +@@ -757,8 +751,6 @@ + struct dev_crypto_state *state = ctx->md_data; + struct session_op *sess = &state->d_sess; + +- int ret = 1; +- + if (!md || state->d_fd < 0) { + printf("cryptodev_digest_final: illegal input\n"); + return(0); +@@ -772,7 +764,7 @@ + cryp.len = state->mac_len; + cryp.src = state->mac_data; + cryp.dst = NULL; +- cryp.mac = (caddr_t)md; ++ cryp.mac = (void*)md; + if (ioctl(state->d_fd, CIOCCRYPT, &cryp) < 0) { + printf("cryptodev_digest_final: digest failed\n"); + return (0); +@@ -783,7 +775,7 @@ + + memcpy(md, state->digest_res, ctx->digest->md_size); + +- return (ret); ++ return 1; + } + + +@@ -835,8 +827,8 @@ + + digest = digest_nid_to_cryptodev(to->digest->type); + +- sess->mackey = dstate->dummy_mac_key; +- sess->mackeylen = digest_key_length(to->digest->type); ++ sess->mackey = NULL; ++ sess->mackeylen = 0; + sess->mac = digest; + + dstate->d_fd = get_dev_crypto(); +@@ -861,34 +853,117 @@ + } + + +-const EVP_MD cryptodev_sha1 = { ++static const EVP_MD cryptodev_sha1 = { + NID_sha1, +- NID_undef, ++ NID_sha1WithRSAEncryption, + SHA_DIGEST_LENGTH, ++#if defined(EVP_MD_FLAG_PKEY_METHOD_SIGNATURE) && defined(EVP_MD_FLAG_DIGALGID_ABSENT) ++ EVP_MD_FLAG_PKEY_METHOD_SIGNATURE| ++ EVP_MD_FLAG_DIGALGID_ABSENT| ++#endif + EVP_MD_FLAG_ONESHOT, + cryptodev_digest_init, + cryptodev_digest_update, + cryptodev_digest_final, + cryptodev_digest_copy, + cryptodev_digest_cleanup, +- EVP_PKEY_NULL_method, ++ EVP_PKEY_RSA_method, + SHA_CBLOCK, +- sizeof(struct dev_crypto_state), ++ sizeof(EVP_MD *)+sizeof(struct dev_crypto_state), ++}; ++ ++static const EVP_MD cryptodev_sha256 = { ++ NID_sha256, ++ NID_sha256WithRSAEncryption, ++ SHA256_DIGEST_LENGTH, ++#if defined(EVP_MD_FLAG_PKEY_METHOD_SIGNATURE) && defined(EVP_MD_FLAG_DIGALGID_ABSENT) ++ EVP_MD_FLAG_PKEY_METHOD_SIGNATURE| ++ EVP_MD_FLAG_DIGALGID_ABSENT| ++#endif ++ EVP_MD_FLAG_ONESHOT, ++ cryptodev_digest_init, ++ cryptodev_digest_update, ++ cryptodev_digest_final, ++ cryptodev_digest_copy, ++ cryptodev_digest_cleanup, ++ EVP_PKEY_RSA_method, ++ SHA256_CBLOCK, ++ sizeof(EVP_MD *)+sizeof(struct dev_crypto_state), ++}; ++static const EVP_MD cryptodev_sha224 = { ++ NID_sha224, ++ NID_sha224WithRSAEncryption, ++ SHA224_DIGEST_LENGTH, ++#if defined(EVP_MD_FLAG_PKEY_METHOD_SIGNATURE) && defined(EVP_MD_FLAG_DIGALGID_ABSENT) ++ EVP_MD_FLAG_PKEY_METHOD_SIGNATURE| ++ EVP_MD_FLAG_DIGALGID_ABSENT| ++#endif ++ EVP_MD_FLAG_ONESHOT, ++ cryptodev_digest_init, ++ cryptodev_digest_update, ++ cryptodev_digest_final, ++ cryptodev_digest_copy, ++ cryptodev_digest_cleanup, ++ EVP_PKEY_RSA_method, ++ SHA256_CBLOCK, ++ sizeof(EVP_MD *)+sizeof(struct dev_crypto_state), ++}; ++ ++static const EVP_MD cryptodev_sha384 = { ++ NID_sha384, ++ NID_sha384WithRSAEncryption, ++ SHA384_DIGEST_LENGTH, ++#if defined(EVP_MD_FLAG_PKEY_METHOD_SIGNATURE) && defined(EVP_MD_FLAG_DIGALGID_ABSENT) ++ EVP_MD_FLAG_PKEY_METHOD_SIGNATURE| ++ EVP_MD_FLAG_DIGALGID_ABSENT| ++#endif ++ EVP_MD_FLAG_ONESHOT, ++ cryptodev_digest_init, ++ cryptodev_digest_update, ++ cryptodev_digest_final, ++ cryptodev_digest_copy, ++ cryptodev_digest_cleanup, ++ EVP_PKEY_RSA_method, ++ SHA512_CBLOCK, ++ sizeof(EVP_MD *)+sizeof(struct dev_crypto_state), ++}; ++ ++static const EVP_MD cryptodev_sha512 = { ++ NID_sha512, ++ NID_sha512WithRSAEncryption, ++ SHA512_DIGEST_LENGTH, ++#if defined(EVP_MD_FLAG_PKEY_METHOD_SIGNATURE) && defined(EVP_MD_FLAG_DIGALGID_ABSENT) ++ EVP_MD_FLAG_PKEY_METHOD_SIGNATURE| ++ EVP_MD_FLAG_DIGALGID_ABSENT| ++#endif ++ EVP_MD_FLAG_ONESHOT, ++ cryptodev_digest_init, ++ cryptodev_digest_update, ++ cryptodev_digest_final, ++ cryptodev_digest_copy, ++ cryptodev_digest_cleanup, ++ EVP_PKEY_RSA_method, ++ SHA512_CBLOCK, ++ sizeof(EVP_MD *)+sizeof(struct dev_crypto_state), + }; + +-const EVP_MD cryptodev_md5 = { ++static const EVP_MD cryptodev_md5 = { + NID_md5, +- NID_undef, ++ NID_md5WithRSAEncryption, + 16 /* MD5_DIGEST_LENGTH */, ++#if defined(EVP_MD_FLAG_PKEY_METHOD_SIGNATURE) && defined(EVP_MD_FLAG_DIGALGID_ABSENT) ++ EVP_MD_FLAG_PKEY_METHOD_SIGNATURE| ++ EVP_MD_FLAG_DIGALGID_ABSENT| ++#endif + EVP_MD_FLAG_ONESHOT, + cryptodev_digest_init, + cryptodev_digest_update, + cryptodev_digest_final, + cryptodev_digest_copy, + cryptodev_digest_cleanup, +- EVP_PKEY_NULL_method, ++ EVP_PKEY_RSA_method, + 64 /* MD5_CBLOCK */, +- sizeof(struct dev_crypto_state), ++ sizeof(EVP_MD *)+sizeof(struct dev_crypto_state), + }; + + #endif /* USE_CRYPTODEV_DIGESTS */ +@@ -909,6 +984,18 @@ + case NID_sha1: + *digest = &cryptodev_sha1; + break; ++ case NID_sha224: ++ *digest = &cryptodev_sha224; ++ break; ++ case NID_sha256: ++ *digest = &cryptodev_sha256; ++ break; ++ case NID_sha384: ++ *digest = &cryptodev_sha384; ++ break; ++ case NID_sha512: ++ *digest = &cryptodev_sha512; ++ break; + default: + #endif /* USE_CRYPTODEV_DIGESTS */ + *digest = NULL; +@@ -940,7 +1027,7 @@ + return (1); + memset(b, 0, bytes); + +- crp->crp_p = (caddr_t) b; ++ crp->crp_p = (void*) b; + crp->crp_nbits = bits; + + for (i = 0, j = 0; i < a->top; i++) { +@@ -1193,7 +1280,7 @@ + kop.crk_op = CRK_DSA_SIGN; + + /* inputs: dgst dsa->p dsa->q dsa->g dsa->priv_key */ +- kop.crk_param[0].crp_p = (caddr_t)dgst; ++ kop.crk_param[0].crp_p = (void*)dgst; + kop.crk_param[0].crp_nbits = dlen * 8; + if (bn2crparam(dsa->p, &kop.crk_param[1])) + goto err; +@@ -1233,7 +1320,7 @@ + kop.crk_op = CRK_DSA_VERIFY; + + /* inputs: dgst dsa->p dsa->q dsa->g dsa->pub_key sig->r sig->s */ +- kop.crk_param[0].crp_p = (caddr_t)dgst; ++ kop.crk_param[0].crp_p = (void*)dgst; + kop.crk_param[0].crp_nbits = dlen * 8; + if (bn2crparam(dsa->p, &kop.crk_param[1])) + goto err; +@@ -1311,9 +1398,10 @@ + goto err; + kop.crk_iparams = 3; + +- kop.crk_param[3].crp_p = (caddr_t) key; +- kop.crk_param[3].crp_nbits = keylen * 8; ++ kop.crk_param[3].crp_p = (void*) key; ++ kop.crk_param[3].crp_nbits = keylen; + kop.crk_oparams = 1; ++ dhret = keylen/8; + + if (ioctl(fd, CIOCKEY, &kop) == -1) { + const DH_METHOD *meth = DH_OpenSSL(); +@@ -1385,7 +1473,7 @@ + put_dev_crypto(fd); + + if (!ENGINE_set_id(engine, "cryptodev") || +- !ENGINE_set_name(engine, "BSD cryptodev engine") || ++ !ENGINE_set_name(engine, "cryptodev engine") || + !ENGINE_set_ciphers(engine, cryptodev_engine_ciphers) || + !ENGINE_set_digests(engine, cryptodev_engine_digests) || + !ENGINE_set_ctrl_function(engine, cryptodev_ctrl) || diff --git a/src/patches/openssl-1.0.1e-fix_parallel_build-1.patch b/src/patches/openssl-1.0.1e-fix_parallel_build-1.patch new file mode 100644 index 0000000..855e4fe --- /dev/null +++ b/src/patches/openssl-1.0.1e-fix_parallel_build-1.patch @@ -0,0 +1,340 @@ +Submitted By: Armin K. <krejzi at email dot com> +Date: 2013-05-05 +Initial Package Version: 1.0.1e +Upstream Status: Unknown +Origin: https://github.com/Alexpux/Qt-builds/tree/master/patches/openssl +Description: Fixes build with make -jx, where x is greater than 1. + +--- a/crypto/Makefile 2013-02-11 16:26:04.000000000 +0100 ++++ b/crypto/Makefile 2013-05-05 20:06:34.872208113 +0200 +@@ -86,11 +86,11 @@ + @if [ -z "$(THIS)" ]; then $(MAKE) -f $(TOP)/Makefile reflect THIS=$@; fi + + subdirs: +- @target=all; $(RECURSIVE_MAKE) ++ +@target=all; $(RECURSIVE_MAKE) + + files: + $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO +- @target=files; $(RECURSIVE_MAKE) ++ +@target=files; $(RECURSIVE_MAKE) + + links: + @$(PERL) $(TOP)/util/mklink.pl ../include/openssl $(EXHEADER) +@@ -101,7 +101,7 @@ + # lib: $(LIB): are splitted to avoid end-less loop + lib: $(LIB) + @touch lib +-$(LIB): $(LIBOBJ) ++$(LIB): $(LIBOBJ) | subdirs + $(AR) $(LIB) $(LIBOBJ) + [ -z "$(FIPSLIBDIR)" ] || $(AR) $(LIB) $(FIPSLIBDIR)fipscanister.o + $(RANLIB) $(LIB) || echo Never mind. +@@ -112,7 +112,7 @@ + fi + + libs: +- @target=lib; $(RECURSIVE_MAKE) ++ +@target=lib; $(RECURSIVE_MAKE) + + install: + @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile... +@@ -121,7 +121,7 @@ + (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \ + chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \ + done; +- @target=install; $(RECURSIVE_MAKE) ++ +@target=install; $(RECURSIVE_MAKE) + + lint: + @target=lint; $(RECURSIVE_MAKE) +--- a/engines/Makefile 2013-02-11 16:26:04.000000000 +0100 ++++ b/engines/Makefile 2013-05-05 20:06:34.872208113 +0200 +@@ -72,7 +72,7 @@ + + all: lib subdirs + +-lib: $(LIBOBJ) ++lib: $(LIBOBJ) | subdirs + @if [ -n "$(SHARED_LIBS)" ]; then \ + set -e; \ + for l in $(LIBNAMES); do \ +@@ -89,7 +89,7 @@ + + subdirs: + echo $(EDIRS) +- @target=all; $(RECURSIVE_MAKE) ++ +@target=all; $(RECURSIVE_MAKE) + + files: + $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO +@@ -128,7 +128,7 @@ + mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx ); \ + done; \ + fi +- @target=install; $(RECURSIVE_MAKE) ++ +@target=install; $(RECURSIVE_MAKE) + + tags: + ctags $(SRC) +--- a/Makefile.org 2013-02-11 16:26:04.000000000 +0100 ++++ b/Makefile.org 2013-05-05 20:06:34.862207917 +0200 +@@ -273,17 +273,17 @@ + build_libs: build_crypto build_ssl build_engines + + build_crypto: +- @dir=crypto; target=all; $(BUILD_ONE_CMD) +-build_ssl: +- @dir=ssl; target=all; $(BUILD_ONE_CMD) +-build_engines: +- @dir=engines; target=all; $(BUILD_ONE_CMD) +-build_apps: +- @dir=apps; target=all; $(BUILD_ONE_CMD) +-build_tests: +- @dir=test; target=all; $(BUILD_ONE_CMD) +-build_tools: +- @dir=tools; target=all; $(BUILD_ONE_CMD) ++ +@dir=crypto; target=all; $(BUILD_ONE_CMD) ++build_ssl: build_crypto ++ +@dir=ssl; target=all; $(BUILD_ONE_CMD) ++build_engines: build_crypto ++ +@dir=engines; target=all; $(BUILD_ONE_CMD) ++build_apps: build_libs ++ +@dir=apps; target=all; $(BUILD_ONE_CMD) ++build_tests: build_libs ++ +@dir=test; target=all; $(BUILD_ONE_CMD) ++build_tools: build_libs ++ +@dir=tools; target=all; $(BUILD_ONE_CMD) + + all_testapps: build_libs build_testapps + build_testapps: +@@ -537,9 +537,9 @@ + dist_pem_h: + (cd crypto/pem; $(MAKE) -e $(BUILDENV) pem.h; $(MAKE) clean) + +-install: all install_docs install_sw ++install: install_docs install_sw + +-install_sw: ++install_dirs: + @$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \ + $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR) \ + $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines \ +@@ -548,12 +548,19 @@ + $(INSTALL_PREFIX)$(OPENSSLDIR)/misc \ + $(INSTALL_PREFIX)$(OPENSSLDIR)/certs \ + $(INSTALL_PREFIX)$(OPENSSLDIR)/private ++ @$(PERL) $(TOP)/util/mkdir-p.pl \ ++ $(INSTALL_PREFIX)$(MANDIR)/man1 \ ++ $(INSTALL_PREFIX)$(MANDIR)/man3 \ ++ $(INSTALL_PREFIX)$(MANDIR)/man5 \ ++ $(INSTALL_PREFIX)$(MANDIR)/man7 ++ ++install_sw: install_dirs + @set -e; headerlist="$(EXHEADER)"; for i in $$headerlist;\ + do \ + (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \ + chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \ + done; +- @set -e; target=install; $(RECURSIVE_BUILD_CMD) ++ +@set -e; target=install; $(RECURSIVE_BUILD_CMD) + @set -e; liblist="$(LIBS)"; for i in $$liblist ;\ + do \ + if [ -f "$$i" ]; then \ +@@ -633,12 +640,7 @@ + done; \ + done + +-install_docs: +- @$(PERL) $(TOP)/util/mkdir-p.pl \ +- $(INSTALL_PREFIX)$(MANDIR)/man1 \ +- $(INSTALL_PREFIX)$(MANDIR)/man3 \ +- $(INSTALL_PREFIX)$(MANDIR)/man5 \ +- $(INSTALL_PREFIX)$(MANDIR)/man7 ++install_docs: install_dirs + @pod2man="`cd ./util; ./pod2mantest $(PERL)`"; \ + here="`pwd`"; \ + filecase=; \ +--- a/Makefile.shared 2013-02-11 16:26:04.000000000 +0100 ++++ b/Makefile.shared 2013-05-05 20:06:34.872208113 +0200 +@@ -105,6 +105,7 @@ + SHAREDFLAGS="$${SHAREDFLAGS:-$(CFLAGS) $(SHARED_LDFLAGS)}"; \ + LIBPATH=`for x in $$LIBDEPS; do echo $$x; done | sed -e 's/^ *-L//;t' -e d | uniq`; \ + LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`; \ ++ [ -e $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX ] && exit 0; \ + LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \ + $${SHAREDCMD} $${SHAREDFLAGS} \ + -o $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX \ +@@ -122,6 +123,7 @@ + done; \ + fi; \ + if [ -n "$$SHLIB_SOVER" ]; then \ ++ [ -e "$$SHLIB$$SHLIB_SUFFIX" ] || \ + ( $(SET_X); rm -f $$SHLIB$$SHLIB_SUFFIX; \ + ln -s $$prev $$SHLIB$$SHLIB_SUFFIX ); \ + fi; \ +--- a/test/Makefile 2013-02-11 16:26:04.000000000 +0100 ++++ b/test/Makefile 2013-05-05 20:06:34.872208113 +0200 +@@ -124,7 +124,7 @@ + tags: + ctags $(SRC) + +-tests: exe apps $(TESTS) ++tests: exe $(TESTS) + + apps: + @(cd ..; $(MAKE) DIRS=apps all) +@@ -365,109 +365,109 @@ + link_app.$${shlib_target} + + $(RSATEST)$(EXE_EXT): $(RSATEST).o $(DLIBCRYPTO) +- @target=$(RSATEST); $(BUILD_CMD) ++ +@target=$(RSATEST); $(BUILD_CMD) + + $(BNTEST)$(EXE_EXT): $(BNTEST).o $(DLIBCRYPTO) +- @target=$(BNTEST); $(BUILD_CMD) ++ +@target=$(BNTEST); $(BUILD_CMD) + + $(ECTEST)$(EXE_EXT): $(ECTEST).o $(DLIBCRYPTO) +- @target=$(ECTEST); $(BUILD_CMD) ++ +@target=$(ECTEST); $(BUILD_CMD) + + $(EXPTEST)$(EXE_EXT): $(EXPTEST).o $(DLIBCRYPTO) +- @target=$(EXPTEST); $(BUILD_CMD) ++ +@target=$(EXPTEST); $(BUILD_CMD) + + $(IDEATEST)$(EXE_EXT): $(IDEATEST).o $(DLIBCRYPTO) +- @target=$(IDEATEST); $(BUILD_CMD) ++ +@target=$(IDEATEST); $(BUILD_CMD) + + $(MD2TEST)$(EXE_EXT): $(MD2TEST).o $(DLIBCRYPTO) +- @target=$(MD2TEST); $(BUILD_CMD) ++ +@target=$(MD2TEST); $(BUILD_CMD) + + $(SHATEST)$(EXE_EXT): $(SHATEST).o $(DLIBCRYPTO) +- @target=$(SHATEST); $(BUILD_CMD) ++ +@target=$(SHATEST); $(BUILD_CMD) + + $(SHA1TEST)$(EXE_EXT): $(SHA1TEST).o $(DLIBCRYPTO) +- @target=$(SHA1TEST); $(BUILD_CMD) ++ +@target=$(SHA1TEST); $(BUILD_CMD) + + $(SHA256TEST)$(EXE_EXT): $(SHA256TEST).o $(DLIBCRYPTO) +- @target=$(SHA256TEST); $(BUILD_CMD) ++ +@target=$(SHA256TEST); $(BUILD_CMD) + + $(SHA512TEST)$(EXE_EXT): $(SHA512TEST).o $(DLIBCRYPTO) +- @target=$(SHA512TEST); $(BUILD_CMD) ++ +@target=$(SHA512TEST); $(BUILD_CMD) + + $(RMDTEST)$(EXE_EXT): $(RMDTEST).o $(DLIBCRYPTO) +- @target=$(RMDTEST); $(BUILD_CMD) ++ +@target=$(RMDTEST); $(BUILD_CMD) + + $(MDC2TEST)$(EXE_EXT): $(MDC2TEST).o $(DLIBCRYPTO) +- @target=$(MDC2TEST); $(BUILD_CMD) ++ +@target=$(MDC2TEST); $(BUILD_CMD) + + $(MD4TEST)$(EXE_EXT): $(MD4TEST).o $(DLIBCRYPTO) +- @target=$(MD4TEST); $(BUILD_CMD) ++ +@target=$(MD4TEST); $(BUILD_CMD) + + $(MD5TEST)$(EXE_EXT): $(MD5TEST).o $(DLIBCRYPTO) +- @target=$(MD5TEST); $(BUILD_CMD) ++ +@target=$(MD5TEST); $(BUILD_CMD) + + $(HMACTEST)$(EXE_EXT): $(HMACTEST).o $(DLIBCRYPTO) +- @target=$(HMACTEST); $(BUILD_CMD) ++ +@target=$(HMACTEST); $(BUILD_CMD) + + $(WPTEST)$(EXE_EXT): $(WPTEST).o $(DLIBCRYPTO) +- @target=$(WPTEST); $(BUILD_CMD) ++ +@target=$(WPTEST); $(BUILD_CMD) + + $(RC2TEST)$(EXE_EXT): $(RC2TEST).o $(DLIBCRYPTO) +- @target=$(RC2TEST); $(BUILD_CMD) ++ +@target=$(RC2TEST); $(BUILD_CMD) + + $(BFTEST)$(EXE_EXT): $(BFTEST).o $(DLIBCRYPTO) +- @target=$(BFTEST); $(BUILD_CMD) ++ +@target=$(BFTEST); $(BUILD_CMD) + + $(CASTTEST)$(EXE_EXT): $(CASTTEST).o $(DLIBCRYPTO) +- @target=$(CASTTEST); $(BUILD_CMD) ++ +@target=$(CASTTEST); $(BUILD_CMD) + + $(RC4TEST)$(EXE_EXT): $(RC4TEST).o $(DLIBCRYPTO) +- @target=$(RC4TEST); $(BUILD_CMD) ++ +@target=$(RC4TEST); $(BUILD_CMD) + + $(RC5TEST)$(EXE_EXT): $(RC5TEST).o $(DLIBCRYPTO) +- @target=$(RC5TEST); $(BUILD_CMD) ++ +@target=$(RC5TEST); $(BUILD_CMD) + + $(DESTEST)$(EXE_EXT): $(DESTEST).o $(DLIBCRYPTO) +- @target=$(DESTEST); $(BUILD_CMD) ++ +@target=$(DESTEST); $(BUILD_CMD) + + $(RANDTEST)$(EXE_EXT): $(RANDTEST).o $(DLIBCRYPTO) +- @target=$(RANDTEST); $(BUILD_CMD) ++ +@target=$(RANDTEST); $(BUILD_CMD) + + $(DHTEST)$(EXE_EXT): $(DHTEST).o $(DLIBCRYPTO) +- @target=$(DHTEST); $(BUILD_CMD) ++ +@target=$(DHTEST); $(BUILD_CMD) + + $(DSATEST)$(EXE_EXT): $(DSATEST).o $(DLIBCRYPTO) +- @target=$(DSATEST); $(BUILD_CMD) ++ +@target=$(DSATEST); $(BUILD_CMD) + + $(METHTEST)$(EXE_EXT): $(METHTEST).o $(DLIBCRYPTO) +- @target=$(METHTEST); $(BUILD_CMD) ++ +@target=$(METHTEST); $(BUILD_CMD) + + $(SSLTEST)$(EXE_EXT): $(SSLTEST).o $(DLIBSSL) $(DLIBCRYPTO) +- @target=$(SSLTEST); $(FIPS_BUILD_CMD) ++ +@target=$(SSLTEST); $(FIPS_BUILD_CMD) + + $(ENGINETEST)$(EXE_EXT): $(ENGINETEST).o $(DLIBCRYPTO) +- @target=$(ENGINETEST); $(BUILD_CMD) ++ +@target=$(ENGINETEST); $(BUILD_CMD) + + $(EVPTEST)$(EXE_EXT): $(EVPTEST).o $(DLIBCRYPTO) +- @target=$(EVPTEST); $(BUILD_CMD) ++ +@target=$(EVPTEST); $(BUILD_CMD) + + $(ECDSATEST)$(EXE_EXT): $(ECDSATEST).o $(DLIBCRYPTO) +- @target=$(ECDSATEST); $(BUILD_CMD) ++ +@target=$(ECDSATEST); $(BUILD_CMD) + + $(ECDHTEST)$(EXE_EXT): $(ECDHTEST).o $(DLIBCRYPTO) +- @target=$(ECDHTEST); $(BUILD_CMD) ++ +@target=$(ECDHTEST); $(BUILD_CMD) + + $(IGETEST)$(EXE_EXT): $(IGETEST).o $(DLIBCRYPTO) +- @target=$(IGETEST); $(BUILD_CMD) ++ +@target=$(IGETEST); $(BUILD_CMD) + + $(JPAKETEST)$(EXE_EXT): $(JPAKETEST).o $(DLIBCRYPTO) +- @target=$(JPAKETEST); $(BUILD_CMD) ++ +@target=$(JPAKETEST); $(BUILD_CMD) + + $(ASN1TEST)$(EXE_EXT): $(ASN1TEST).o $(DLIBCRYPTO) +- @target=$(ASN1TEST); $(BUILD_CMD) ++ +@target=$(ASN1TEST); $(BUILD_CMD) + + $(SRPTEST)$(EXE_EXT): $(SRPTEST).o $(DLIBCRYPTO) +- @target=$(SRPTEST); $(BUILD_CMD) ++ +@target=$(SRPTEST); $(BUILD_CMD) + + #$(AESTEST).o: $(AESTEST).c + # $(CC) -c $(CFLAGS) -DINTERMEDIATE_VALUE_KAT -DTRACE_KAT_MCT $(AESTEST).c +@@ -480,7 +480,7 @@ + # fi + + dummytest$(EXE_EXT): dummytest.o $(DLIBCRYPTO) +- @target=dummytest; $(BUILD_CMD) ++ +@target=dummytest; $(BUILD_CMD) + + # DO NOT DELETE THIS LINE -- make depend depends on it. + diff --git a/src/patches/openssl-1.0.1e-weak-ciphers.patch b/src/patches/openssl-1.0.1e-weak-ciphers.patch new file mode 100644 index 0000000..8657345 --- /dev/null +++ b/src/patches/openssl-1.0.1e-weak-ciphers.patch @@ -0,0 +1,12 @@ +diff -up openssl-1.0.1e/ssl/ssl.h.weak-ciphers openssl-1.0.1e/ssl/ssl.h +--- openssl-1.0.1e/ssl/ssl.h.weak-ciphers 2013-12-18 15:50:40.881620314 +0100 ++++ openssl-1.0.1e/ssl/ssl.h 2013-12-18 14:25:25.596566704 +0100 +@@ -331,7 +331,7 @@ extern "C" { + /* The following cipher list is used by default. + * It also is substituted when an application-defined cipher list string + * starts with 'DEFAULT'. */ +-#define SSL_DEFAULT_CIPHER_LIST "ALL:!aNULL:!eNULL:!SSLv2" ++#define SSL_DEFAULT_CIPHER_LIST "ALL:!aNULL:!eNULL:!SSLv2:!EXPORT:!RC2:!DES" + /* As of OpenSSL 1.0.0, ssl_create_cipher_list() in ssl/ssl_ciph.c always + * starts with a reasonable order, and all we have to do for DEFAULT is + * throwing out anonymous and unencrypted ciphersuites! diff --git a/src/patches/strongswan-4.5.3_ipfire.patch b/src/patches/strongswan-4.5.3_ipfire.patch deleted file mode 100644 index 2ba975b..0000000 --- a/src/patches/strongswan-4.5.3_ipfire.patch +++ /dev/null @@ -1,342 +0,0 @@ -diff -Naur strongswan-4.5.3.org/src/_updown/_updown.in strongswan-4.5.3/src/_updown/_updown.in ---- strongswan-4.5.3.org/src/_updown/_updown.in 2010-10-22 16:33:30.000000000 +0200 -+++ strongswan-4.5.3/src/_updown/_updown.in 2011-09-13 14:19:31.000000000 +0200 -@@ -183,6 +183,29 @@ - ;; - esac - -+function ip_encode() { -+ local IFS=. -+ -+ local int=0 -+ for field in $1; do -+ int=$(( $(( $int << 8 )) | $field )) -+ done -+ -+ echo $int -+} -+ -+function ip_in_subnet() { -+ local netmask -+ netmask=$(_netmask $2) -+ [ $(( $(ip_encode $1) & $netmask)) = $(( $(ip_encode ${2%/*}) & $netmask )) ] -+} -+ -+function _netmask() { -+ local vlsm -+ vlsm=${1#*/} -+ [ $vlsm -eq 0 ] && echo 0 || echo $(( -1 << $(( 32 - $vlsm )) )) -+} -+ - # utility functions for route manipulation - # Meddling with this stuff should not be necessary and requires great care. - uproute() { -@@ -387,12 +410,12 @@ - # connection to me, with (left/right)firewall=yes, coming up - # This is used only by the default updown script, not by your custom - # ones, so do not mess with it; see CAUTION comment up at top. -- iptables -I INPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ iptables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ - -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ - -d $PLUTO_ME $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT -- iptables -I OUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ iptables -I IPSECOUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ - -s $PLUTO_ME $S_MY_PORT $IPSEC_POLICY_OUT \ -- -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j ACCEPT -+ -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j MARK --set-mark 50 - # - # log IPsec host connection setup - if [ $VPN_LOGGING ] -@@ -400,10 +423,10 @@ - if [ "$PLUTO_PEER_CLIENT" = "$PLUTO_PEER/32" ] - then - logger -t $TAG -p $FAC_PRIO \ -- "+ $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME" -+ "host+ $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME" - else - logger -t $TAG -p $FAC_PRIO \ -- "+ $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME" -+ "host+ $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME" - fi - fi - ;; -@@ -411,12 +434,12 @@ - # connection to me, with (left/right)firewall=yes, going down - # This is used only by the default updown script, not by your custom - # ones, so do not mess with it; see CAUTION comment up at top. -- iptables -D INPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ iptables -D IPSECINPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ - -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ - -d $PLUTO_ME $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT -- iptables -D OUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ iptables -D IPSECOUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ - -s $PLUTO_ME $S_MY_PORT $IPSEC_POLICY_OUT \ -- -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j ACCEPT -+ -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j MARK --set-mark 50 - # - # log IPsec host connection teardown - if [ $VPN_LOGGING ] -@@ -424,10 +447,10 @@ - if [ "$PLUTO_PEER_CLIENT" = "$PLUTO_PEER/32" ] - then - logger -t $TAG -p $FAC_PRIO -- \ -- "- $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME" -+ "host- $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME" - else - logger -t $TAG -p $FAC_PRIO -- \ -- "- $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME" -+ "host- $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME" - fi - fi - ;; -@@ -437,10 +460,10 @@ - # ones, so do not mess with it; see CAUTION comment up at top. - if [ "$PLUTO_PEER_CLIENT" != "$PLUTO_MY_SOURCEIP/32" ] - then -- iptables -I FORWARD 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ iptables -I IPSECFORWARD 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ - -s $PLUTO_MY_CLIENT $S_MY_PORT \ -- -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j ACCEPT -- iptables -I FORWARD 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j MARK --set-mark 50 -+ iptables -I IPSECFORWARD 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ - -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ - -d $PLUTO_MY_CLIENT $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT - fi -@@ -449,12 +472,12 @@ - # or sometimes host access via the internal IP is needed - if [ -n "$PLUTO_MY_SOURCEIP" -o -n "$PLUTO_HOST_ACCESS" ] - then -- iptables -I INPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ iptables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ - -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ - -d $PLUTO_MY_CLIENT $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT -- iptables -I OUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ iptables -I IPSECOUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ - -s $PLUTO_MY_CLIENT $S_MY_PORT \ -- -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j ACCEPT -+ -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j MARK --set-mark 50 - fi - # - # log IPsec client connection setup -@@ -463,12 +486,51 @@ - if [ "$PLUTO_PEER_CLIENT" = "$PLUTO_PEER/32" ] - then - logger -t $TAG -p $FAC_PRIO \ -- "+ $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" -+ "client+ $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" - else - logger -t $TAG -p $FAC_PRIO \ -- "+ $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" -+ "client+ $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" - fi - fi -+ -+ # -+ # Open Firewall for IPinIP + AH + ESP Traffic -+ iptables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p IP \ -+ -s $PLUTO_PEER $S_PEER_PORT \ -+ -d $PLUTO_ME $D_MY_PORT -j ACCEPT -+ iptables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p AH \ -+ -s $PLUTO_PEER $S_PEER_PORT \ -+ -d $PLUTO_ME $D_MY_PORT -j ACCEPT -+ iptables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p ESP \ -+ -s $PLUTO_PEER $S_PEER_PORT \ -+ -d $PLUTO_ME $D_MY_PORT -j ACCEPT -+ if [ $VPN_LOGGING ] -+ then -+ logger -t $TAG -p $FAC_PRIO \ -+ "tunnel+ $PLUTO_PEER -- $PLUTO_ME" -+ fi -+ -+ # Add source nat so also the gateway can access the other nets -+ eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings) -+ for _src in ${GREEN_ADDRESS} ${BLUE_ADDRESS} ${ORANGE_ADDRESS}; do -+ ip_in_subnet "${_src}" "${PLUTO_MY_CLIENT}" -+ if [ $? -eq 0 ]; then -+ src=${_src} -+ break -+ fi -+ done -+ -+ if [ -n "${src}" ]; then -+ iptables -t nat -A IPSECNAT -o $PLUTO_INTERFACE -s $PLUTO_ME -d $PLUTO_PEER_CLIENT -j SNAT --to $src -+ logger -t $TAG -p $FAC_PRIO \ -+ "snat+ $PLUTO_INTERFACE-$PLUTO_ME : $PLUTO_PEER_CLIENT - $src" -+ else -+ logger -t $TAG -p $FAC_PRIO \ -+ "Cannot create NAT rule because no IP of the IPFire does match the subnet. $PLUTO_MY_CLIENT" -+ fi -+ -+ # Flush routing cache -+ ip route flush cache - ;; - down-client:iptables) - # connection to client subnet, with (left/right)firewall=yes, going down -@@ -476,11 +538,11 @@ - # ones, so do not mess with it; see CAUTION comment up at top. - if [ "$PLUTO_PEER_CLIENT" != "$PLUTO_MY_SOURCEIP/32" ] - then -- iptables -D FORWARD -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ iptables -D IPSECFORWARD -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ - -s $PLUTO_MY_CLIENT $S_MY_PORT \ - -d $PLUTO_PEER_CLIENT $D_PEER_PORT \ -- $IPSEC_POLICY_OUT -j ACCEPT -- iptables -D FORWARD -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ $IPSEC_POLICY_OUT -j MARK --set-mark 50 -+ iptables -D IPSECFORWARD -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ - -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ - -d $PLUTO_MY_CLIENT $D_MY_PORT \ - $IPSEC_POLICY_IN -j ACCEPT -@@ -490,14 +552,14 @@ - # or sometimes host access via the internal IP is needed - if [ -n "$PLUTO_MY_SOURCEIP" -o -n "$PLUTO_HOST_ACCESS" ] - then -- iptables -D INPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ iptables -D IPSECINPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ - -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ - -d $PLUTO_MY_CLIENT $D_MY_PORT \ - $IPSEC_POLICY_IN -j ACCEPT -- iptables -D OUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ iptables -D IPSECOUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ - -s $PLUTO_MY_CLIENT $S_MY_PORT \ - -d $PLUTO_PEER_CLIENT $D_PEER_PORT \ -- $IPSEC_POLICY_OUT -j ACCEPT -+ $IPSEC_POLICY_OUT -j MARK --set-mark 50 - fi - # - # log IPsec client connection teardown -@@ -506,12 +568,51 @@ - if [ "$PLUTO_PEER_CLIENT" = "$PLUTO_PEER/32" ] - then - logger -t $TAG -p $FAC_PRIO -- \ -- "- $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" -+ "client- $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" - else - logger -t $TAG -p $FAC_PRIO -- \ -- "- $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" -+ "client- $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" - fi - fi -+ -+ # -+ # Close Firewall for IPinIP + AH + ESP Traffic -+ iptables -D IPSECINPUT -i $PLUTO_INTERFACE -p IP \ -+ -s $PLUTO_PEER $S_PEER_PORT \ -+ -d $PLUTO_ME $D_MY_PORT -j ACCEPT -+ iptables -D IPSECINPUT -i $PLUTO_INTERFACE -p AH \ -+ -s $PLUTO_PEER $S_PEER_PORT \ -+ -d $PLUTO_ME $D_MY_PORT -j ACCEPT -+ iptables -D IPSECINPUT -i $PLUTO_INTERFACE -p ESP \ -+ -s $PLUTO_PEER $S_PEER_PORT \ -+ -d $PLUTO_ME $D_MY_PORT -j ACCEPT -+ if [ $VPN_LOGGING ] -+ then -+ logger -t $TAG -p $FAC_PRIO \ -+ "tunnel- $PLUTO_PEER -- $PLUTO_ME" -+ fi -+ -+ # remove source nat -+ eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings) -+ for _src in ${GREEN_ADDRESS} ${BLUE_ADDRESS} ${ORANGE_ADDRESS}; do -+ ip_in_subnet "${_src}" "${PLUTO_MY_CLIENT}" -+ if [ $? -eq 0 ]; then -+ src=${_src} -+ break -+ fi -+ done -+ -+ if [ -n "${src}" ]; then -+ iptables -t nat -D IPSECNAT -o $PLUTO_INTERFACE -s $PLUTO_ME -d $PLUTO_PEER_CLIENT -j SNAT --to $src -+ logger -t $TAG -p $FAC_PRIO \ -+ "snat- $PLUTO_INTERFACE-$PLUTO_ME : $PLUTO_PEER_CLIENT - $src" -+ else -+ logger -t $TAG -p $FAC_PRIO \ -+ "Cannot remove NAT rule because no IP of the IPFire does match the subnet." -+ fi -+ -+ # Flush routing cache -+ ip route flush cache - ;; - # - # IPv6 -@@ -546,10 +647,10 @@ - # connection to me, with (left/right)firewall=yes, coming up - # This is used only by the default updown script, not by your custom - # ones, so do not mess with it; see CAUTION comment up at top. -- ip6tables -I INPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ ip6tables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ - -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ - -d $PLUTO_ME $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT -- ip6tables -I OUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ ip6tables -I IPSECOUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ - -s $PLUTO_ME $S_MY_PORT $IPSEC_POLICY_OUT \ - -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j ACCEPT - # -@@ -570,10 +671,10 @@ - # connection to me, with (left/right)firewall=yes, going down - # This is used only by the default updown script, not by your custom - # ones, so do not mess with it; see CAUTION comment up at top. -- ip6tables -D INPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ ip6tables -D IPSECINPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ - -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ - -d $PLUTO_ME $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT -- ip6tables -D OUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ ip6tables -D IPSECOUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ - -s $PLUTO_ME $S_MY_PORT $IPSEC_POLICY_OUT \ - -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j ACCEPT - # -@@ -596,10 +697,10 @@ - # ones, so do not mess with it; see CAUTION comment up at top. - if [ "$PLUTO_PEER_CLIENT" != "$PLUTO_MY_SOURCEIP/128" ] - then -- ip6tables -I FORWARD 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ ip6tables -I IPSECFORWARD 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ - -s $PLUTO_MY_CLIENT $S_MY_PORT \ - -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j ACCEPT -- ip6tables -I FORWARD 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ ip6tables -I IPSECFORWARD 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ - -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ - -d $PLUTO_MY_CLIENT $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT - fi -@@ -608,10 +709,10 @@ - # or sometimes host access via the internal IP is needed - if [ -n "$PLUTO_MY_SOURCEIP" -o -n "$PLUTO_HOST_ACCESS" ] - then -- ip6tables -I INPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ ip6tables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ - -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ - -d $PLUTO_MY_CLIENT $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT -- ip6tables -I OUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ ip6tables -I IPSECOUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ - -s $PLUTO_MY_CLIENT $S_MY_PORT \ - -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j ACCEPT - fi -@@ -635,11 +736,11 @@ - # ones, so do not mess with it; see CAUTION comment up at top. - if [ "$PLUTO_PEER_CLIENT" != "$PLUTO_MY_SOURCEIP/128" ] - then -- ip6tables -D FORWARD -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ ip6tables -D IPSECFORWARD -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ - -s $PLUTO_MY_CLIENT $S_MY_PORT \ - -d $PLUTO_PEER_CLIENT $D_PEER_PORT \ - $IPSEC_POLICY_OUT -j ACCEPT -- ip6tables -D FORWARD -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ ip6tables -D IPSECFORWARD -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ - -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ - -d $PLUTO_MY_CLIENT $D_MY_PORT \ - $IPSEC_POLICY_IN -j ACCEPT -@@ -649,11 +750,11 @@ - # or sometimes host access via the internal IP is needed - if [ -n "$PLUTO_MY_SOURCEIP" -o -n "$PLUTO_HOST_ACCESS" ] - then -- ip6tables -D INPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ ip6tables -D IPSECINPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ - -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ - -d $PLUTO_MY_CLIENT $D_MY_PORT \ - $IPSEC_POLICY_IN -j ACCEPT -- ip6tables -D OUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ ip6tables -D IPSECOUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ - -s $PLUTO_MY_CLIENT $S_MY_PORT \ - -d $PLUTO_PEER_CLIENT $D_PEER_PORT \ - $IPSEC_POLICY_OUT -j ACCEPT diff --git a/src/patches/strongswan-5.0.2_ipfire.patch b/src/patches/strongswan-5.0.2_ipfire.patch new file mode 100644 index 0000000..71eb24e --- /dev/null +++ b/src/patches/strongswan-5.0.2_ipfire.patch @@ -0,0 +1,364 @@ +--- a/src/_updown/_updown.in ++++ b/src/_updown/_updown.in +@@ -178,6 +178,29 @@ + ;; + esac + ++function ip_encode() { ++ local IFS=. ++ ++ local int=0 ++ for field in $1; do ++ int=$(( $(( $int << 8 )) | $field )) ++ done ++ ++ echo $int ++} ++ ++function ip_in_subnet() { ++ local netmask ++ netmask=$(_netmask $2) ++ [ $(( $(ip_encode $1) & $netmask)) = $(( $(ip_encode ${2%/*}) & $netmask )) ] ++} ++ ++function _netmask() { ++ local vlsm ++ vlsm=${1#*/} ++ [ $vlsm -eq 0 ] && echo 0 || echo $(( -1 << $(( 32 - $vlsm )) )) ++} ++ + # utility functions for route manipulation + # Meddling with this stuff should not be necessary and requires great care. + uproute() { +@@ -407,12 +430,12 @@ + # connection to me, with (left/right)firewall=yes, coming up + # This is used only by the default updown script, not by your custom + # ones, so do not mess with it; see CAUTION comment up at top. +- iptables -I INPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ iptables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ + -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ + -d $PLUTO_ME $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT +- iptables -I OUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ iptables -I IPSECOUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ + -s $PLUTO_ME $S_MY_PORT $IPSEC_POLICY_OUT \ +- -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j ACCEPT ++ -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j MARK --set-mark 50 + # + # allow IPIP traffic because of the implicit SA created by the kernel if + # IPComp is used (for small inbound packets that are not compressed) +@@ -428,10 +451,10 @@ + if [ "$PLUTO_PEER_CLIENT" = "$PLUTO_PEER/32" ] + then + logger -t $TAG -p $FAC_PRIO \ +- "+ $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME" ++ "host+ $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME" + else + logger -t $TAG -p $FAC_PRIO \ +- "+ $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME" ++ "host+ $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME" + fi + fi + ;; +@@ -439,12 +462,12 @@ + # connection to me, with (left/right)firewall=yes, going down + # This is used only by the default updown script, not by your custom + # ones, so do not mess with it; see CAUTION comment up at top. +- iptables -D INPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ iptables -D IPSECINPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ + -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ + -d $PLUTO_ME $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT +- iptables -D OUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ iptables -D IPSECOUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ + -s $PLUTO_ME $S_MY_PORT $IPSEC_POLICY_OUT \ +- -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j ACCEPT ++ -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j MARK --set-mark 50 + # + # IPIP exception teardown + if [ -n "$PLUTO_IPCOMP" ] +@@ -459,10 +482,10 @@ + if [ "$PLUTO_PEER_CLIENT" = "$PLUTO_PEER/32" ] + then + logger -t $TAG -p $FAC_PRIO -- \ +- "- $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME" ++ "host- $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME" + else + logger -t $TAG -p $FAC_PRIO -- \ +- "- $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME" ++ "host- $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME" + fi + fi + ;; +@@ -472,24 +495,24 @@ + # ones, so do not mess with it; see CAUTION comment up at top. + if [ "$PLUTO_PEER_CLIENT" != "$PLUTO_MY_SOURCEIP/32" ] + then +- iptables -I FORWARD 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ iptables -I IPSECFORWARD 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ + -s $PLUTO_MY_CLIENT $S_MY_PORT \ +- -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j ACCEPT +- iptables -I FORWARD 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j MARK --set-mark 50 ++ iptables -I IPSECFORWARD 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ + -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ +- -d $PLUTO_MY_CLIENT $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT ++ -d $PLUTO_MY_CLIENT $D_MY_PORT $IPSEC_POLICY_IN -j RETURN + fi + # + # a virtual IP requires an INPUT and OUTPUT rule on the host + # or sometimes host access via the internal IP is needed + if [ -n "$PLUTO_MY_SOURCEIP" -o -n "$PLUTO_HOST_ACCESS" ] + then +- iptables -I INPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ iptables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ + -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ +- -d $PLUTO_MY_CLIENT $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT +- iptables -I OUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ -d $PLUTO_MY_CLIENT $D_MY_PORT $IPSEC_POLICY_IN -j RETURN ++ iptables -I IPSECOUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ + -s $PLUTO_MY_CLIENT $S_MY_PORT \ +- -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j ACCEPT ++ -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j MARK --set-mark 50 + fi + # + # allow IPIP traffic because of the implicit SA created by the kernel if +@@ -497,7 +520,7 @@ + # INPUT is correct here even for forwarded traffic. + if [ -n "$PLUTO_IPCOMP" ] + then +- iptables -I INPUT 1 -i $PLUTO_INTERFACE -p 4 \ ++ iptables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p 4 \ + -s $PLUTO_PEER -d $PLUTO_ME $IPSEC_POLICY_IN -j ACCEPT + fi + # +@@ -507,12 +530,51 @@ + if [ "$PLUTO_PEER_CLIENT" = "$PLUTO_PEER/32" ] + then + logger -t $TAG -p $FAC_PRIO \ +- "+ $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" ++ "client+ $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" + else + logger -t $TAG -p $FAC_PRIO \ +- "+ $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" ++ "client+ $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" + fi + fi ++ ++ # ++ # Open Firewall for IPinIP + AH + ESP Traffic ++ iptables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p IP \ ++ -s $PLUTO_PEER $S_PEER_PORT \ ++ -d $PLUTO_ME $D_MY_PORT -j ACCEPT ++ iptables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p AH \ ++ -s $PLUTO_PEER $S_PEER_PORT \ ++ -d $PLUTO_ME $D_MY_PORT -j ACCEPT ++ iptables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p ESP \ ++ -s $PLUTO_PEER $S_PEER_PORT \ ++ -d $PLUTO_ME $D_MY_PORT -j ACCEPT ++ if [ $VPN_LOGGING ] ++ then ++ logger -t $TAG -p $FAC_PRIO \ ++ "tunnel+ $PLUTO_PEER -- $PLUTO_ME" ++ fi ++ ++ # Add source nat so also the gateway can access the other nets ++ eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings) ++ for _src in ${GREEN_ADDRESS} ${BLUE_ADDRESS} ${ORANGE_ADDRESS}; do ++ ip_in_subnet "${_src}" "${PLUTO_MY_CLIENT}" ++ if [ $? -eq 0 ]; then ++ src=${_src} ++ break ++ fi ++ done ++ ++ if [ -n "${src}" ]; then ++ iptables -t nat -A IPSECNAT -o $PLUTO_INTERFACE -s $PLUTO_ME -d $PLUTO_PEER_CLIENT -j SNAT --to $src ++ logger -t $TAG -p $FAC_PRIO \ ++ "snat+ $PLUTO_INTERFACE-$PLUTO_ME : $PLUTO_PEER_CLIENT - $src" ++ else ++ logger -t $TAG -p $FAC_PRIO \ ++ "Cannot create NAT rule because no IP of the IPFire does match the subnet. $PLUTO_MY_CLIENT" ++ fi ++ ++ # Flush routing cache ++ ip route flush cache + ;; + down-client:iptables) + # connection to client subnet, with (left/right)firewall=yes, going down +@@ -520,34 +582,34 @@ + # ones, so do not mess with it; see CAUTION comment up at top. + if [ "$PLUTO_PEER_CLIENT" != "$PLUTO_MY_SOURCEIP/32" ] + then +- iptables -D FORWARD -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ iptables -D IPSECFORWARD -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ + -s $PLUTO_MY_CLIENT $S_MY_PORT \ + -d $PLUTO_PEER_CLIENT $D_PEER_PORT \ +- $IPSEC_POLICY_OUT -j ACCEPT +- iptables -D FORWARD -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ $IPSEC_POLICY_OUT -j MARK --set-mark 50 ++ iptables -D IPSECFORWARD -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ + -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ + -d $PLUTO_MY_CLIENT $D_MY_PORT \ +- $IPSEC_POLICY_IN -j ACCEPT ++ $IPSEC_POLICY_IN -j RETURN + fi + # + # a virtual IP requires an INPUT and OUTPUT rule on the host + # or sometimes host access via the internal IP is needed + if [ -n "$PLUTO_MY_SOURCEIP" -o -n "$PLUTO_HOST_ACCESS" ] + then +- iptables -D INPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ iptables -D IPSECINPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ + -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ + -d $PLUTO_MY_CLIENT $D_MY_PORT \ +- $IPSEC_POLICY_IN -j ACCEPT +- iptables -D OUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ $IPSEC_POLICY_IN -j RETURN ++ iptables -D IPSECOUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ + -s $PLUTO_MY_CLIENT $S_MY_PORT \ + -d $PLUTO_PEER_CLIENT $D_PEER_PORT \ +- $IPSEC_POLICY_OUT -j ACCEPT ++ $IPSEC_POLICY_OUT -j MARK --set-mark 50 + fi + # + # IPIP exception teardown + if [ -n "$PLUTO_IPCOMP" ] + then +- iptables -D INPUT -i $PLUTO_INTERFACE -p 4 \ ++ iptables -D IPSECINPUT -i $PLUTO_INTERFACE -p 4 \ + -s $PLUTO_PEER -d $PLUTO_ME $IPSEC_POLICY_IN -j ACCEPT + fi + # +@@ -557,12 +619,51 @@ + if [ "$PLUTO_PEER_CLIENT" = "$PLUTO_PEER/32" ] + then + logger -t $TAG -p $FAC_PRIO -- \ +- "- $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" ++ "client- $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" + else + logger -t $TAG -p $FAC_PRIO -- \ +- "- $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" ++ "client- $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" + fi + fi ++ ++ # ++ # Close Firewall for IPinIP + AH + ESP Traffic ++ iptables -D IPSECINPUT -i $PLUTO_INTERFACE -p IP \ ++ -s $PLUTO_PEER $S_PEER_PORT \ ++ -d $PLUTO_ME $D_MY_PORT -j ACCEPT ++ iptables -D IPSECINPUT -i $PLUTO_INTERFACE -p AH \ ++ -s $PLUTO_PEER $S_PEER_PORT \ ++ -d $PLUTO_ME $D_MY_PORT -j ACCEPT ++ iptables -D IPSECINPUT -i $PLUTO_INTERFACE -p ESP \ ++ -s $PLUTO_PEER $S_PEER_PORT \ ++ -d $PLUTO_ME $D_MY_PORT -j ACCEPT ++ if [ $VPN_LOGGING ] ++ then ++ logger -t $TAG -p $FAC_PRIO \ ++ "tunnel- $PLUTO_PEER -- $PLUTO_ME" ++ fi ++ ++ # remove source nat ++ eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings) ++ for _src in ${GREEN_ADDRESS} ${BLUE_ADDRESS} ${ORANGE_ADDRESS}; do ++ ip_in_subnet "${_src}" "${PLUTO_MY_CLIENT}" ++ if [ $? -eq 0 ]; then ++ src=${_src} ++ break ++ fi ++ done ++ ++ if [ -n "${src}" ]; then ++ iptables -t nat -D IPSECNAT -o $PLUTO_INTERFACE -s $PLUTO_ME -d $PLUTO_PEER_CLIENT -j SNAT --to $src ++ logger -t $TAG -p $FAC_PRIO \ ++ "snat- $PLUTO_INTERFACE-$PLUTO_ME : $PLUTO_PEER_CLIENT - $src" ++ else ++ logger -t $TAG -p $FAC_PRIO \ ++ "Cannot remove NAT rule because no IP of the IPFire does match the subnet." ++ fi ++ ++ # Flush routing cache ++ ip route flush cache + ;; + # + # IPv6 +@@ -597,10 +698,10 @@ + # connection to me, with (left/right)firewall=yes, coming up + # This is used only by the default updown script, not by your custom + # ones, so do not mess with it; see CAUTION comment up at top. +- ip6tables -I INPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ ip6tables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ + -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ + -d $PLUTO_ME $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT +- ip6tables -I OUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ ip6tables -I IPSECOUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ + -s $PLUTO_ME $S_MY_PORT $IPSEC_POLICY_OUT \ + -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j ACCEPT + # +@@ -621,10 +722,10 @@ + # connection to me, with (left/right)firewall=yes, going down + # This is used only by the default updown script, not by your custom + # ones, so do not mess with it; see CAUTION comment up at top. +- ip6tables -D INPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ ip6tables -D IPSECINPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ + -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ + -d $PLUTO_ME $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT +- ip6tables -D OUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ ip6tables -D IPSECOUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ + -s $PLUTO_ME $S_MY_PORT $IPSEC_POLICY_OUT \ + -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j ACCEPT + # +@@ -647,10 +748,10 @@ + # ones, so do not mess with it; see CAUTION comment up at top. + if [ "$PLUTO_PEER_CLIENT" != "$PLUTO_MY_SOURCEIP/128" ] + then +- ip6tables -I FORWARD 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ ip6tables -I IPSECFORWARD 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ + -s $PLUTO_MY_CLIENT $S_MY_PORT \ + -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j ACCEPT +- ip6tables -I FORWARD 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ ip6tables -I IPSECFORWARD 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ + -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ + -d $PLUTO_MY_CLIENT $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT + fi +@@ -659,10 +760,10 @@ + # or sometimes host access via the internal IP is needed + if [ -n "$PLUTO_MY_SOURCEIP" -o -n "$PLUTO_HOST_ACCESS" ] + then +- ip6tables -I INPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ ip6tables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ + -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ + -d $PLUTO_MY_CLIENT $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT +- ip6tables -I OUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ ip6tables -I IPSECOUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ + -s $PLUTO_MY_CLIENT $S_MY_PORT \ + -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j ACCEPT + fi +@@ -686,11 +787,11 @@ + # ones, so do not mess with it; see CAUTION comment up at top. + if [ "$PLUTO_PEER_CLIENT" != "$PLUTO_MY_SOURCEIP/128" ] + then +- ip6tables -D FORWARD -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ ip6tables -D IPSECFORWARD -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ + -s $PLUTO_MY_CLIENT $S_MY_PORT \ + -d $PLUTO_PEER_CLIENT $D_PEER_PORT \ + $IPSEC_POLICY_OUT -j ACCEPT +- ip6tables -D FORWARD -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ ip6tables -D IPSECFORWARD -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ + -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ + -d $PLUTO_MY_CLIENT $D_MY_PORT \ + $IPSEC_POLICY_IN -j ACCEPT +@@ -700,11 +801,11 @@ + # or sometimes host access via the internal IP is needed + if [ -n "$PLUTO_MY_SOURCEIP" -o -n "$PLUTO_HOST_ACCESS" ] + then +- ip6tables -D INPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ ip6tables -D IPSECINPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ + -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ + -d $PLUTO_MY_CLIENT $D_MY_PORT \ + $IPSEC_POLICY_IN -j ACCEPT +- ip6tables -D OUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ ip6tables -D IPSECOUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ + -s $PLUTO_MY_CLIENT $S_MY_PORT \ + -d $PLUTO_PEER_CLIENT $D_PEER_PORT \ + $IPSEC_POLICY_OUT -j ACCEPT diff --git a/src/patches/strongswan-5.1.1-delay-dpd.patch b/src/patches/strongswan-5.1.1-delay-dpd.patch deleted file mode 100644 index db3d664..0000000 --- a/src/patches/strongswan-5.1.1-delay-dpd.patch +++ /dev/null @@ -1,35 +0,0 @@ -From b76e96e2ef4d56c863b36c8d3c39e3c2efcf4a7c Mon Sep 17 00:00:00 2001 -From: Martin Willi martin@revosec.ch -Date: Fri, 1 Nov 2013 11:28:53 +0100 -Subject: [PATCH] ike: Don't immediately DPD after deferred DELETEs following IKE_SA rekeying - -Some peers seem to defer DELETEs a few seconds after rekeying the IKE_SA, which -is perfectly valid. For short(er) DPD delays, this leads to the situation where -we send a DPD request during set_state(), but the IKE_SA has no hosts set yet. -Avoid that DPD by resetting the INBOUND timestamp during set_state(). ---- - src/libcharon/sa/ike_sa.c | 8 ++++++++ - 1 files changed, 8 insertions(+), 0 deletions(-) - -diff --git a/src/libcharon/sa/ike_sa.c b/src/libcharon/sa/ike_sa.c -index 0282087..d482f8b 100644 ---- a/src/libcharon/sa/ike_sa.c -+++ b/src/libcharon/sa/ike_sa.c -@@ -687,6 +687,14 @@ METHOD(ike_sa_t, set_state, void, - DBG1(DBG_IKE, "maximum IKE_SA lifetime %ds", t); - } - trigger_dpd = this->peer_cfg->get_dpd(this->peer_cfg); -+ if (trigger_dpd) -+ { -+ /* Some peers delay the DELETE after rekeying an IKE_SA. -+ * If this delay is longer than our DPD delay, we would -+ * send a DPD request here. The IKE_SA is not ready to do -+ * so yet, so prevent that. */ -+ this->stats[STAT_INBOUND] = this->stats[STAT_ESTABLISHED]; -+ } - } - break; - } --- -1.7.4.1 - diff --git a/src/patches/udev-208_remove_systemd_log.patch b/src/patches/udev-208_remove_systemd_log.patch new file mode 100644 index 0000000..927de1e --- /dev/null +++ b/src/patches/udev-208_remove_systemd_log.patch @@ -0,0 +1,12 @@ +diff -Naur systemd-208.org/src/libudev/libudev-util.c systemd-208/src/libudev/libudev-util.c +--- systemd-208.org/src/libudev/libudev-util.c 2013-09-23 21:31:55.000000000 +0200 ++++ systemd-208/src/libudev/libudev-util.c 2013-11-19 23:18:10.326350131 +0100 +@@ -481,7 +481,7 @@ + if (fd < 0) + return -errno; + +- len = snprintf(text, sizeof(text), "<30>systemd-udevd[%u]: ", getpid()); ++ len = snprintf(text, sizeof(text), "udevd[%u]: ", getpid()); + + va_start(ap, fmt); + len += vsnprintf(text + len, sizeof(text) - len, fmt, ap); diff --git a/src/patches/util-linux-2.12r-cramfs-1.patch b/src/patches/util-linux-2.12r-cramfs-1.patch deleted file mode 100644 index b8366b3..0000000 --- a/src/patches/util-linux-2.12r-cramfs-1.patch +++ /dev/null @@ -1,93 +0,0 @@ -Submitted by: Jeremy Utley jeremy@linuxfromscratch.org -Date: 2004-12-25 -Initial Package Version: 2.12p (should apply to versions back to at least k) -Upstream Status: Not Submitted - Test Version -Origin: Alexander Patrakov, adapted from debian build of cramfs utilities -Description: Util-Linux fails in cramfs compilation due to changes in the -linux-libc-headers package 2.6.9 and after. This patch is a proper fix to the -problem, but may in fact not be accepted upstream. - - -diff -Naur util-linux-2.12p/disk-utils/fsck.cramfs.c util-linux-2.12p-new/disk-utils/fsck.cramfs.c ---- util-linux-2.12p/disk-utils/fsck.cramfs.c 2004-12-11 14:53:16.000000000 +0000 -+++ util-linux-2.12p-new/disk-utils/fsck.cramfs.c 2004-12-26 00:53:10.665199086 +0000 -@@ -76,16 +76,7 @@ - - #define PAD_SIZE 512 - --#include <asm/page.h> --#ifdef PAGE_SIZE --#define PAGE_CACHE_SIZE ((int) PAGE_SIZE) --#elif defined __ia64__ --#define PAGE_CACHE_SIZE (16384) --#elif defined __alpha__ --#define PAGE_CACHE_SIZE (8192) --#else --#define PAGE_CACHE_SIZE (4096) --#endif -+#define PAGE_CACHE_SIZE page_size - - /* Guarantee access to at least 8kB at a time */ - #define ROMBUFFER_BITS 13 -@@ -95,11 +86,13 @@ - static unsigned long read_buffer_block = ~0UL; - - /* Uncompressing data structures... */ --static char outbuffer[PAGE_CACHE_SIZE*2]; -+static char *outbuffer; - z_stream stream; - - #endif /* INCLUDE_FS_TESTS */ - -+static size_t page_size; -+ - /* Input status of 0 to print help and exit without an error. */ - static void usage(int status) - { -@@ -464,9 +457,17 @@ - int c; /* for getopt */ - int start = 0; - -+ page_size = sysconf(_SC_PAGESIZE); -+ - if (argc) - progname = argv[0]; - -+ outbuffer = malloc(page_size * 2); -+ if (!outbuffer) { -+ fprintf(stderr, _("failed to allocate outbuffer\n")); -+ exit(8); -+ } -+ - /* command line options */ - while ((c = getopt(argc, argv, "hx:v")) != EOF) { - switch (c) { -diff -Naur util-linux-2.12p/disk-utils/mkfs.cramfs.c util-linux-2.12p-new/disk-utils/mkfs.cramfs.c ---- util-linux-2.12p/disk-utils/mkfs.cramfs.c 2004-12-11 14:56:01.000000000 +0000 -+++ util-linux-2.12p-new/disk-utils/mkfs.cramfs.c 2004-12-26 00:53:10.666198928 +0000 -@@ -46,16 +46,8 @@ - static const char *progname = "mkcramfs"; - static int verbose = 0; - --#ifdef __ia64__ --#define PAGE_CACHE_SIZE (16384) --#elif defined __alpha__ --#define PAGE_CACHE_SIZE (8192) --#else --#define PAGE_CACHE_SIZE (4096) --#endif -- - /* The kernel assumes PAGE_CACHE_SIZE as block size. */ --static unsigned int blksize = PAGE_CACHE_SIZE; /* settable via -b option */ -+static unsigned int blksize; /* settable via -b option */ - static long total_blocks = 0, total_nodes = 1; /* pre-count the root node */ - static int image_length = 0; - -@@ -730,6 +722,7 @@ - u32 crc = crc32(0L, Z_NULL, 0); - int c; - -+ blksize = sysconf(_SC_PAGESIZE); - total_blocks = 0; - - if (argc) { diff --git a/src/patches/util-linux-2.12r-umount-no-special.patch b/src/patches/util-linux-2.12r-umount-no-special.patch deleted file mode 100644 index d79598f..0000000 --- a/src/patches/util-linux-2.12r-umount-no-special.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- util-linux-2.12r.old/mount/umount.c -+++ util-linux-2.12r/mount/umount.c -@@ -31,7 +31,7 @@ - #include <arpa/inet.h> - #endif - --#if defined(MNT_FORCE) && !defined(__sparc__) && !defined(__arm__) -+#if defined(MNT_FORCE) - /* Interesting ... it seems libc knows about MNT_FORCE and presumably - about umount2 as well -- need not do anything */ - #else /* MNT_FORCE */ diff --git a/src/patches/util-linux-buildfix.patch b/src/patches/util-linux-buildfix.patch deleted file mode 100644 index 3d578e4..0000000 --- a/src/patches/util-linux-buildfix.patch +++ /dev/null @@ -1,272 +0,0 @@ -Submitted By: Dan Nicholson <dbn_dot_lists_at_gmail_dot_com> -Date: 2006-07-08 -Initial Package Version: 2.12r -Origin: Upstream -Upstream Status: Applied in util-linux-2.13-pre6.tar.bz2 -Description: Replaces uses of *llseek with lseek. Fixes an issue - compiling util-linux with kernel headers from linux-2.6.18-rc1 - headers_install. - -diff -pur -x '*.rej' util-linux-2.12r.orig/fdisk/Makefile util-linux-2.12r/fdisk/Makefile ---- util-linux-2.12r.orig/fdisk/Makefile 2004-09-06 20:28:58.000000000 +0000 -+++ util-linux-2.12r/fdisk/Makefile 2006-07-08 15:40:57.140375072 +0000 -@@ -39,7 +39,7 @@ else - endif - endif - --cfdisk: cfdisk.o llseek.o disksize.o i386_sys_types.o $(LIB)/xstrncpy.o -+cfdisk: cfdisk.o disksize.o i386_sys_types.o $(LIB)/xstrncpy.o - ifeq "$(HAVE_SLANG)" "yes" - $(CC) $(LDFLAGS) $^ -o $@ $(LIBSLANG) - else -@@ -55,7 +55,7 @@ activate: sfdisk - rm -f activate - ln -s sfdisk activate - --fdisk: fdisk.o llseek.o disksize.o fdiskbsdlabel.o fdisksgilabel.o \ -+fdisk: fdisk.o disksize.o fdiskbsdlabel.o fdisksgilabel.o \ - fdisksunlabel.o fdiskaixlabel.o i386_sys_types.o partname.o - fdisk.o: fdisk.c fdisk.h - fdiskbsdlabel.o: fdiskbsdlabel.c fdisk.h fdiskbsdlabel.h -diff -pur -x '*.rej' util-linux-2.12r.orig/fdisk/cfdisk.c util-linux-2.12r/fdisk/cfdisk.c ---- util-linux-2.12r.orig/fdisk/cfdisk.c 2005-09-09 21:44:57.000000000 +0000 -+++ util-linux-2.12r/fdisk/cfdisk.c 2006-07-08 15:40:23.458901045 +0000 -@@ -84,9 +84,6 @@ - #include "xstrncpy.h" - #include "common.h" - --extern long long ext2_llseek(unsigned int fd, long long offset, -- unsigned int origin); -- - #define VERSION UTIL_LINUX_VERSION - - #define DEFAULT_DEVICE "/dev/hda" -@@ -552,7 +549,7 @@ die_x(int ret) { - - static void - read_sector(char *buffer, long long sect_num) { -- if (ext2_llseek(fd, sect_num*SECTOR_SIZE, SEEK_SET) < 0) -+ if (lseek(fd, sect_num*SECTOR_SIZE, SEEK_SET) < 0) - fatal(_("Cannot seek on disk drive"), 2); - if (read(fd, buffer, SECTOR_SIZE) != SECTOR_SIZE) - fatal(_("Cannot read disk drive"), 2); -@@ -560,7 +557,7 @@ read_sector(char *buffer, long long sect - - static void - write_sector(char *buffer, long long sect_num) { -- if (ext2_llseek(fd, sect_num*SECTOR_SIZE, SEEK_SET) < 0) -+ if (lseek(fd, sect_num*SECTOR_SIZE, SEEK_SET) < 0) - fatal(_("Cannot seek on disk drive"), 2); - if (write(fd, buffer, SECTOR_SIZE) != SECTOR_SIZE) - fatal(_("Cannot write disk drive"), 2); -@@ -587,7 +584,7 @@ get_dos_label(int i) { - long long offset; - - offset = (p_info[i].first_sector + p_info[i].offset) * SECTOR_SIZE; -- if (ext2_llseek(fd, offset, SEEK_SET) == offset -+ if (lseek(fd, offset, SEEK_SET) == offset - && read(fd, §or, sizeof(sector)) == sizeof(sector)) { - dos_copy_to_info(p_info[i].ostype, OSTYPESZ, - sector+DOS_OSTYPE_OFFSET, DOS_OSTYPE_SZ); -@@ -672,7 +669,7 @@ get_linux_label(int i) { - - offset = (p_info[i].first_sector + p_info[i].offset) * SECTOR_SIZE - + 1024; -- if (ext2_llseek(fd, offset, SEEK_SET) == offset -+ if (lseek(fd, offset, SEEK_SET) == offset - && read(fd, &e2fsb, sizeof(e2fsb)) == sizeof(e2fsb) - && e2fsb.s_magic[0] + (e2fsb.s_magic[1]<<8) == EXT2_SUPER_MAGIC) { - label = e2fsb.s_volume_name; -@@ -688,7 +685,7 @@ get_linux_label(int i) { - } - - offset = (p_info[i].first_sector + p_info[i].offset) * SECTOR_SIZE + 0; -- if (ext2_llseek(fd, offset, SEEK_SET) == offset -+ if (lseek(fd, offset, SEEK_SET) == offset - && read(fd, &xfsb, sizeof(xfsb)) == sizeof(xfsb) - && !strncmp(xfsb.s_magic, XFS_SUPER_MAGIC, 4)) { - label = xfsb.s_fname; -@@ -702,7 +699,7 @@ get_linux_label(int i) { - /* jfs? */ - offset = (p_info[i].first_sector + p_info[i].offset) * SECTOR_SIZE - + JFS_SUPER1_OFF; -- if (ext2_llseek(fd, offset, SEEK_SET) == offset -+ if (lseek(fd, offset, SEEK_SET) == offset - && read(fd, &jfsb, sizeof(jfsb)) == sizeof(jfsb) - && !strncmp(jfsb.s_magic, JFS_MAGIC, strlen(JFS_MAGIC))) { - label = jfsb.s_label; -@@ -716,7 +713,7 @@ get_linux_label(int i) { - /* reiserfs? */ - offset = (p_info[i].first_sector + p_info[i].offset) * SECTOR_SIZE - + REISERFS_DISK_OFFSET_IN_BYTES; -- if (ext2_llseek(fd, offset, SEEK_SET) == offset -+ if (lseek(fd, offset, SEEK_SET) == offset - && read(fd, &reiserfsb, sizeof(reiserfsb)) == sizeof(reiserfsb) - && has_reiserfs_magic_string(&reiserfsb, &reiserfs_is_3_6)) { - if (reiserfs_is_3_6) { -@@ -1860,7 +1857,7 @@ write_part_table(void) { - - while (!done) { - mvaddstr(COMMAND_LINE_Y, COMMAND_LINE_X, -- _("Are you sure you want write the partition table " -+ _("Are you sure you want to write the partition table " - "to disk? (yes or no): ")); - len = get_string(response, LINE_LENGTH, NULL); - clear_warning(); -diff -pur -x '*.rej' util-linux-2.12r.orig/fdisk/fdisk.c util-linux-2.12r/fdisk/fdisk.c ---- util-linux-2.12r.orig/fdisk/fdisk.c 2004-12-18 02:00:31.000000000 +0000 -+++ util-linux-2.12r/fdisk/fdisk.c 2006-07-08 15:40:23.461899841 +0000 -@@ -239,8 +239,8 @@ void fatal(enum failure why) { - - static void - seek_sector(int fd, unsigned int secno) { -- long long offset = (long long) secno * sector_size; -- if (ext2_llseek(fd, offset, SEEK_SET) == (long long) -1) -+ off_t offset = (off_t) secno * sector_size; -+ if (lseek(fd, offset, SEEK_SET) == (off_t) -1) - fatal(unable_to_seek); - } - -diff -pur -x '*.rej' util-linux-2.12r.orig/fdisk/fdisk.h util-linux-2.12r/fdisk/fdisk.h ---- util-linux-2.12r.orig/fdisk/fdisk.h 2004-12-15 18:19:06.000000000 +0000 -+++ util-linux-2.12r/fdisk/fdisk.h 2006-07-08 15:40:23.462899439 +0000 -@@ -26,9 +26,6 @@ - #define cround(n) (display_in_cyl_units ? ((n)/units_per_sector)+1 : (n)) - #define scround(x) (((x)+units_per_sector-1)/units_per_sector) - --extern long long ext2_llseek(unsigned int fd, long long offset, -- unsigned int origin); -- - #if defined(__GNUC__) && (defined(__arm__) || defined(__alpha__)) - # define PACKED __attribute__ ((packed)) - #else -diff -pur -x '*.rej' util-linux-2.12r.orig/fdisk/fdiskbsdlabel.c util-linux-2.12r/fdisk/fdiskbsdlabel.c ---- util-linux-2.12r.orig/fdisk/fdiskbsdlabel.c 2003-07-13 21:12:47.000000000 +0000 -+++ util-linux-2.12r/fdisk/fdiskbsdlabel.c 2006-07-08 15:40:23.463899038 +0000 -@@ -566,7 +566,7 @@ xbsd_write_bootstrap (void) - sector = get_start_sect(xbsd_part); - #endif - -- if (ext2_llseek (fd, (long long) sector * SECTOR_SIZE, SEEK_SET) == -1) -+ if (lseek (fd, (off_t) sector * SECTOR_SIZE, SEEK_SET) == -1) - fatal (unable_to_seek); - if (BSD_BBSIZE != write (fd, disklabelbuffer, BSD_BBSIZE)) - fatal (unable_to_write); -@@ -735,7 +735,7 @@ xbsd_readlabel (struct partition *p, str - sector = 0; - #endif - -- if (ext2_llseek (fd, (long long) sector * SECTOR_SIZE, SEEK_SET) == -1) -+ if (lseek (fd, (off_t) sector * SECTOR_SIZE, SEEK_SET) == -1) - fatal (unable_to_seek); - if (BSD_BBSIZE != read (fd, disklabelbuffer, BSD_BBSIZE)) - fatal (unable_to_read); -@@ -781,12 +781,12 @@ xbsd_writelabel (struct partition *p, st - - #if defined (__alpha__) && BSD_LABELSECTOR == 0 - alpha_bootblock_checksum (disklabelbuffer); -- if (ext2_llseek (fd, (long long) 0, SEEK_SET) == -1) -+ if (lseek (fd, (off_t) 0, SEEK_SET) == -1) - fatal (unable_to_seek); - if (BSD_BBSIZE != write (fd, disklabelbuffer, BSD_BBSIZE)) - fatal (unable_to_write); - #else -- if (ext2_llseek (fd, (long long) sector * SECTOR_SIZE + BSD_LABELOFFSET, -+ if (lseek (fd, (off_t) sector * SECTOR_SIZE + BSD_LABELOFFSET, - SEEK_SET) == -1) - fatal (unable_to_seek); - if (sizeof (struct xbsd_disklabel) != write (fd, d, sizeof (struct xbsd_disklabel))) -diff -pur -x '*.rej' util-linux-2.12r.orig/fdisk/fdisksgilabel.c util-linux-2.12r/fdisk/fdisksgilabel.c ---- util-linux-2.12r.orig/fdisk/fdisksgilabel.c 2004-12-18 01:53:45.000000000 +0000 -+++ util-linux-2.12r/fdisk/fdisksgilabel.c 2006-07-08 15:40:23.464898637 +0000 -@@ -379,7 +379,7 @@ sgi_write_table(void) { - */ - sgiinfo *info = fill_sgiinfo(); - int infostartblock = SSWAP32(sgilabel->directory[0].vol_file_start); -- if (ext2_llseek(fd, (long long)infostartblock* -+ if (lseek(fd, (off_t) infostartblock* - SECTOR_SIZE, SEEK_SET) < 0) - fatal(unable_to_seek); - if (write(fd, info, SECTOR_SIZE) != SECTOR_SIZE) -diff -pur -x '*.rej' util-linux-2.12r.orig/fdisk/sfdisk.c util-linux-2.12r/fdisk/sfdisk.c ---- util-linux-2.12r.orig/fdisk/sfdisk.c 2005-01-04 22:31:57.000000000 +0000 -+++ util-linux-2.12r/fdisk/sfdisk.c 2006-07-08 15:40:23.467897432 +0000 -@@ -164,36 +164,17 @@ fatal(char *s, ...) { - /* - * sseek: seek to specified sector - return 0 on failure - * -- * For >4GB disks lseek needs a > 32bit arg, and we have to use llseek. -- * On the other hand, a 32 bit sector number is OK until 2TB. -- * The routines _llseek and sseek below are the only ones that -- * know about the loff_t type. -- * - * Note: we use 512-byte sectors here, irrespective of the hardware ss. - */ --#undef use_lseek --#if defined (__alpha__) || defined (__ia64__) || defined (__x86_64__) || defined (__s390x__) --#define use_lseek --#endif -- --#ifndef use_lseek --static __attribute__used --_syscall5(int, _llseek, unsigned int, fd, ulong, hi, ulong, lo, -- loff_t *, res, unsigned int, wh); --#endif - - static int - sseek(char *dev, unsigned int fd, unsigned long s) { -- loff_t in, out; -- in = ((loff_t) s << 9); -+ off_t in, out; -+ in = ((off_t) s << 9); - out = 1; - --#ifndef use_lseek -- if (_llseek (fd, in>>32, in & 0xffffffff, &out, SEEK_SET) != 0) { --#else - if ((out = lseek(fd, in, SEEK_SET)) != in) { --#endif -- perror("llseek"); -+ perror("lseek"); - error(_("seek error on %s - cannot seek to %lu\n"), dev, s); - return 0; - } -diff -pur -x '*.rej' util-linux-2.12r.orig/partx/partx.c util-linux-2.12r/partx/partx.c ---- util-linux-2.12r.orig/partx/partx.c 2004-08-23 20:13:27.000000000 +0000 -+++ util-linux-2.12r/partx/partx.c 2006-07-08 15:40:23.469896630 +0000 -@@ -330,34 +330,15 @@ xmalloc (size_t size) { - return t; - } - --/* -- * sseek: seek to specified sector -- */ --#if !defined (__alpha__) && !defined (__ia64__) && !defined (__s390x__) && !defined(__x86_64__) --#define NEED__llseek --#endif -- --#ifdef NEED__llseek --#include <linux/unistd.h> /* _syscall */ --static --_syscall5(int, _llseek, uint, fd, ulong, hi, ulong, lo, -- long long *, res, uint, wh); --#endif -- - static int - sseek(int fd, unsigned int secnr) { - long long in, out; - in = ((long long) secnr << 9); - out = 1; - --#ifdef NEED__llseek -- if (_llseek (fd, in>>32, in & 0xffffffff, &out, SEEK_SET) != 0 -- || out != in) --#else - if ((out = lseek(fd, in, SEEK_SET)) != in) --#endif - { -- fprintf(stderr, "llseek error\n"); -+ fprintf(stderr, "lseek error\n"); - return -1; - } - return 0; diff --git a/src/patches/vim-7.2-fixes-4.patch b/src/patches/vim-7.2-fixes-4.patch deleted file mode 100644 index d6c1bfd..0000000 --- a/src/patches/vim-7.2-fixes-4.patch +++ /dev/null @@ -1,5414 +0,0 @@ -Submitted By: Matt Burgess <matthew_at_linuxfromscratch_dot_org> -Date: 2008-12-06 -Initial Package Version: 7.2 -Upstream Status: Already in upstream patch repo -Origin: Upstream -Description: This patch is upstream patch numbers 1 thru 65. - -diff -Naur vim72.orig/Filelist vim72/Filelist ---- vim72.orig/Filelist 2008-07-06 19:02:23.000000000 +0100 -+++ vim72/Filelist 2008-12-06 11:37:48.000000000 +0000 -@@ -285,6 +285,7 @@ - src/proto/os_win32.pro \ - src/proto/os_mswin.pro \ - src/testdir/Make_dos.mak \ -+ src/testdir/Make_ming.mak \ - src/testdir/dos.vim \ - src/uninstal.c \ - src/vim.def \ -diff -Naur vim72.orig/runtime/doc/cmdline.txt vim72/runtime/doc/cmdline.txt ---- vim72.orig/runtime/doc/cmdline.txt 2008-08-09 15:22:59.000000000 +0100 -+++ vim72/runtime/doc/cmdline.txt 2008-12-06 11:37:49.000000000 +0000 -@@ -1,4 +1,4 @@ --*cmdline.txt* For Vim version 7.2. Last change: 2008 Jul 29 -+*cmdline.txt* For Vim version 7.2. Last change: 2008 Sep 18 - - - VIM REFERENCE MANUAL by Bram Moolenaar -@@ -157,6 +157,11 @@ - (doesn't work at the expression prompt; some - things such as changing the buffer or current - window are not allowed to avoid side effects) -+ When the result is a |List| the items are used -+ as lines. They can have line breaks inside -+ too. -+ When the result is a Float it's automatically -+ converted to a String. - See |registers| about registers. {not in Vi} - Implementation detail: When using the |expression| register - and invoking setcmdpos(), this sets the position before -@@ -730,19 +735,29 @@ - In Ex commands, at places where a file name can be used, the following - characters have a special meaning. These can also be used in the expression - function expand() |expand()|. -- % is replaced with the current file name *:_%* -- # is replaced with the alternate file name *:_#* -+ % Is replaced with the current file name. *:_%* *c_%* -+ # Is replaced with the alternate file name. *:_#* *c_#* - #n (where n is a number) is replaced with the file name of -- buffer n. "#0" is the same as "#" -- ## is replaced with all names in the argument list *:_##* -+ buffer n. "#0" is the same as "#". -+ ## Is replaced with all names in the argument list *:_##* *c_##* - concatenated, separated by spaces. Each space in a name - is preceded with a backslash. --Note that these give the file name as it was typed. If an absolute path is --needed (when using the file name from a different directory), you need to add --":p". See |filename-modifiers|. -+ #<n (where n is a number > 0) is replaced with old *:_#<* *c_#<* -+ file name n. See |:oldfiles| or |v:oldfiles| to get the -+ number. *E809* -+ {only when compiled with the +eval and +viminfo features} -+ -+Note that these, except "#<n", give the file name as it was typed. If an -+absolute path is needed (when using the file name from a different directory), -+you need to add ":p". See |filename-modifiers|. -+ -+The "#<n" item returns an absolute path, but it will start with "~/" for files -+below your home directory. -+ - Note that backslashes are inserted before spaces, so that the command will - correctly interpret the file name. But this doesn't happen for shell --commands. For those you probably have to use quotes: > -+commands. For those you probably have to use quotes (this fails for files -+that contain a quote and wildcards): > - :!ls "%" - :r !spell "%" - -diff -Naur vim72.orig/runtime/doc/eval.txt vim72/runtime/doc/eval.txt ---- vim72.orig/runtime/doc/eval.txt 2008-08-09 15:22:59.000000000 +0100 -+++ vim72/runtime/doc/eval.txt 2008-12-06 11:37:50.000000000 +0000 -@@ -1,4 +1,4 @@ --*eval.txt* For Vim version 7.2. Last change: 2008 Aug 09 -+*eval.txt* For Vim version 7.2. Last change: 2008 Nov 27 - - - VIM REFERENCE MANUAL by Bram Moolenaar -@@ -1484,6 +1484,17 @@ - This is the screen column number, like with |virtcol()|. The - value is zero when there was no mouse button click. - -+ *v:oldfiles* *oldfiles-variable* -+v:oldfiles List of file names that is loaded from the |viminfo| file on -+ startup. These are the files that Vim remembers marks for. -+ The length of the List is limited by the ' argument of the -+ 'viminfo' option (default is 100). -+ Also see |:oldfiles| and |c_#<|. -+ The List can be modified, but this has no effect on what is -+ stored in the |viminfo| file later. If you use values other -+ than String this will cause trouble. -+ {only when compiled with the +viminfo feature} -+ - *v:operator* *operator-variable* - v:operator The last operator given in Normal mode. This is a single - character except for commands starting with <g> or <z>, -@@ -1695,7 +1706,7 @@ - exists( {expr}) Number TRUE if {expr} exists - extend({expr1}, {expr2} [, {expr3}]) - List/Dict insert items of {expr2} into {expr1} --expand( {expr}) String expand special keywords in {expr} -+expand( {expr} [, {flag}]) String expand special keywords in {expr} - feedkeys( {string} [, {mode}]) Number add key sequence to typeahead buffer - filereadable( {file}) Number TRUE if {file} is a readable file - filewritable( {file}) Number TRUE if {file} is a writable file -@@ -1747,8 +1758,9 @@ - getwinposx() Number X coord in pixels of GUI Vim window - getwinposy() Number Y coord in pixels of GUI Vim window - getwinvar( {nr}, {varname}) any variable {varname} in window {nr} --glob( {expr}) String expand file wildcards in {expr} --globpath( {path}, {expr}) String do glob({expr}) for all dirs in {path} -+glob( {expr} [, {flag}]) String expand file wildcards in {expr} -+globpath( {path}, {expr} [, {flag}]) -+ String do glob({expr}) for all dirs in {path} - has( {feature}) Number TRUE if feature {feature} supported - has_key( {dict}, {key}) Number TRUE if {dict} has entry {key} - haslocaldir() Number TRUE if current window executed |:lcd| -@@ -3275,14 +3287,16 @@ - :let list_is_on = getwinvar(2, '&list') - :echo "myvar = " . getwinvar(1, 'myvar') - < -- *glob()* --glob({expr}) Expand the file wildcards in {expr}. See |wildcards| for the -+glob({expr} [, {flag}]) *glob()* -+ Expand the file wildcards in {expr}. See |wildcards| for the - use of special characters. - The result is a String. - When there are several matches, they are separated by <NL> - characters. -- The 'wildignore' option applies: Names matching one of the -- patterns in 'wildignore' will be skipped. -+ Unless the optional {flag} argument is given and is non-zero, -+ the 'suffixes' and 'wildignore' options apply: Names matching -+ one of the patterns in 'wildignore' will be skipped and -+ 'suffixes' affect the ordering of matches. - If the expansion fails, the result is an empty string. - A name for a non-existing file is not included. - -@@ -3296,20 +3310,22 @@ - See |expand()| for expanding special Vim variables. See - |system()| for getting the raw output of an external command. - --globpath({path}, {expr}) *globpath()* -+globpath({path}, {expr} [, {flag}]) *globpath()* - Perform glob() on all directories in {path} and concatenate - the results. Example: > - :echo globpath(&rtp, "syntax/c.vim") - < {path} is a comma-separated list of directory names. Each - directory name is prepended to {expr} and expanded like with -- glob(). A path separator is inserted when needed. -+ |glob()|. A path separator is inserted when needed. - To add a comma inside a directory name escape it with a - backslash. Note that on MS-Windows a directory may have a - trailing backslash, remove it if you put a comma after it. - If the expansion fails for one of the directories, there is no - error message. -- The 'wildignore' option applies: Names matching one of the -- patterns in 'wildignore' will be skipped. -+ Unless the optional {flag} argument is given and is non-zero, -+ the 'suffixes' and 'wildignore' options apply: Names matching -+ one of the patterns in 'wildignore' will be skipped and -+ 'suffixes' affect the ordering of matches. - - The "**" item can be used to search in a directory tree. - For example, to find all "README.txt" files in the directories -@@ -5332,10 +5348,12 @@ - "fg" foreground color (GUI: color name used to set - the color, cterm: color number as a string, - term: empty string) -- "bg" background color (like "fg") -+ "bg" background color (as with "fg") -+ "sp" special color (as with "fg") |highlight-guisp| - "fg#" like "fg", but for the GUI and the GUI is - running the name in "#RRGGBB" form - "bg#" like "fg#" for "bg" -+ "sp#" like "fg#" for "sp" - "bold" "1" if bold - "italic" "1" if italic - "reverse" "1" if reverse -diff -Naur vim72.orig/runtime/doc/options.txt vim72/runtime/doc/options.txt ---- vim72.orig/runtime/doc/options.txt 2008-08-09 15:22:59.000000000 +0100 -+++ vim72/runtime/doc/options.txt 2008-12-06 11:37:50.000000000 +0000 -@@ -1,4 +1,4 @@ --*options.txt* For Vim version 7.2. Last change: 2008 Aug 06 -+*options.txt* For Vim version 7.2. Last change: 2008 Nov 25 - - - VIM REFERENCE MANUAL by Bram Moolenaar -@@ -7472,7 +7472,9 @@ - {not available when compiled without the |+wildignore| - feature} - A list of file patterns. A file that matches with one of these -- patterns is ignored when completing file or directory names. -+ patterns is ignored when completing file or directory names, and -+ influences the result of |expand()|, |glob()| and |globpath()| unless -+ a flag is passed to disable this. - The pattern is used like with |:autocmd|, see |autocmd-patterns|. - Also see 'suffixes'. - Example: > -diff -Naur vim72.orig/runtime/doc/os_vms.txt vim72/runtime/doc/os_vms.txt ---- vim72.orig/runtime/doc/os_vms.txt 2008-08-09 15:23:00.000000000 +0100 -+++ vim72/runtime/doc/os_vms.txt 2008-12-06 11:37:48.000000000 +0000 -@@ -1,4 +1,4 @@ --*os_vms.txt* For Vim version 7.2. Last change: 2006 Nov 18 -+*os_vms.txt* For Vim version 7.2. Last change: 2008 Aug 19 - - - VIM REFERENCE MANUAL -@@ -312,7 +312,7 @@ - - 8. Useful notes *vms-notes* - --8.1 backspace/delete -+8.1 Backspace/delete - 8.2 Filters - 8.3 VMS file version numbers - 8.4 Directory conversion -@@ -326,8 +326,10 @@ - 8.12 diff-mode - 8.13 Allow '$' in C keywords - 8.14 VIMTUTOR for beginners -+8.15 Slow start in console mode issue -+8.16 Common VIM directory - different architectures - --8.1 backspace/delete -+8.1 Backspace/delete - - There are backspace/delete key inconsistencies with VMS. - :fixdel doesn't do the trick, but the solution is: > -@@ -663,12 +665,130 @@ - - (Thomas.R.Wyant III, Vim 6.1) - -+8.14 Slow start in console mode issue -+ -+As GUI/GTK Vim works equally well in console mode, many administartors -+deploy those executables system wide. -+Unfortunately, on a remote slow connections GUI/GTK executables behave rather -+slow when user wants to run Vim just in the console mode - because of X environment detection timeout. -+ -+Luckily, there is a simple solution for that. Administrators need to deploy -+both GUI/GTK build and just console build executables, like below: > -+ -+ |- vim72 -+ |----- doc -+ |----- syntax -+ vimrc (system rc files) -+ gvimrc -+ gvim.exe (the remaned GUI or GTK built vim.exe) -+ vim.exe (the console only executable) -+ -+Define system symbols like below in for ex in LOGIN.COM or SYLOGIN.COM: > -+ -+ $ define/nolog VIM RF10:[UTIL.VIM72] ! where you VIM directory is -+ $ vi*m :== mcr VIM:VIM.EXE -+ $ gvi*m :== mcr VIM:GVIM.EXE -+ $ ! or you can try to spawn with -+ $ gv*im :== spawn/nowait/input=NLA0 mcr VIM:GVIM.EXE -g -GEOMETRY 80x40 -+ -+ -+Like this, users that do not have X environment and want to use Vim just in -+console mode can avoid performance problems. -+ -+(Zoltan Arpadffy, Vim 7.2) -+ -+8.15 Common VIM directory - different architectures -+ -+In a cluster that contains nodes with different architectures like below: -+ -+$show cluster -+View of Cluster from system ID 11655 node: TOR 18-AUG-2008 11:58:31 -++---------------------------------+ -+Š SYSTEMS Š MEMBERS Š -++-----------------------+---------Š -+Š NODE Š SOFTWARE Š STATUS Š -++--------+--------------+---------Š -+Š TOR Š VMS V7.3-2 Š MEMBER Š -+Š TITAN2 Š VMS V8.3 Š MEMBER Š -+Š ODIN Š VMS V7.3-2 Š MEMBER Š -++---------------------------------+ -+ -+It is convinient to have a common VIM directory but execute different -+executables. -+There are more solutions for this problem: -+ -+solution 1. all executables in the same directory with different names -+This is easily done with the following script that can be added -+to the login.com or sylogin.com: > -+ -+ $ if f$getsyi("NODE_HWTYPE") .eqs. "VAX" -+ $ then -+ $ say "VAX platform" -+ $ vi*m:== mcr vim:VIM.EXE_VAX -+ $ endif -+ $ if f$getsyi("NODE_HWTYPE") .eqs. "ALPH" -+ $ then -+ $ say "ALPHA platform" -+ $ vi*m :== mcr vim:VIM.EXE_AXP -+ $ endif -+ $ if f$getsyi("ARCH_NAME") .eqs. "IA64" -+ $ then -+ $ say "IA64 platform" -+ $ vi*m :== mcr vim:VIM.EXE_IA64 -+ $ endif -+ -+solution 2. different directories: > -+ -+ $ if f$getsyi("NODE_HWTYPE") .eqs. "VAX" -+ $ then -+ $ say "VAX platform" -+ $ define/nolog VIM RF10:[UTIL.VAX_EXE] ! VAX executables -+ $ endif -+ $ if f$getsyi("NODE_HWTYPE") .eqs. "ALPH" -+ $ then -+ $ say "ALPHA platform" -+ $ define/nolog VIM RF10:[UTIL.AXP_EXE] ! AXP executables -+ $ endif -+ $ if f$getsyi("ARCH_NAME") .eqs. "IA64" -+ $ then -+ $ say "IA64 platform" -+ $ define/nolog VIM RF10:[UTIL.IA64_EXE] ! IA64 executables -+ $ endif -+ $! VIMRUNTIME must be defined in order to find runtime files -+ $ define/nolog VIMRUNTIME RF10:[UTIL.VIM72] -+ -+A good examle for this approach is the [GNU]gnu_tools.com script from GNU_TOOLS.ZIP -+package downloadable from http://www.polarhome.com/vim/ -+ -+(Zoltan Arpadffy, Vim 7.2) -+ - ============================================================================== - - 9. VMS related changes *vms-changes* - --Version 7 -+Recent changes -+- The following plugins are included into VMS runtime: -+ genutils 2.4, multiselect 2.2, multvals 3.1, selectbuf 4.3, -+ bufexplorer 7.1.7, taglist 4.5 -+- minor changes in vimrc (just in VMS runtime) -+- make_vms.mms - HUGE model is the default -+- [TESTDIR]make_vms.mms include as many tests possible -+- modify test30 and test54 for VMS -+- enable FLOAT feature in VMS port -+- os_vms.txt updated -+ -+Version 7.2 (2008 Aug 9) -+- VCF files write corrected -+- CTAGS 5.7 included -+- corrected make_vms.mms (on VAX gave syntax error) -+ -+Version 7.1 (2007 Jun 15) -+- create TAGS file from menu -+ -+Version 7 (2006 May 8) - - Improved low level char input (affects just console mode) -+- Fixed plugin bug -+- CTAGS 5.6 included - - Version 6.4 (2005 Oct 15) - - GTKLIB and Vim build on IA64 -@@ -806,6 +926,7 @@ - - OpenVMS documentation and executables are maintained by: - Zoltan Arpadffy arpadffy@polarhome.com -+OpenVMS Vim page: http://www.polarhome.com/vim/ - - This document uses parts and remarks from earlier authors and contributors - of OS_VMS.TXT: -diff -Naur vim72.orig/runtime/doc/spell.txt vim72/runtime/doc/spell.txt ---- vim72.orig/runtime/doc/spell.txt 2008-08-09 15:23:00.000000000 +0100 -+++ vim72/runtime/doc/spell.txt 2008-12-06 11:37:50.000000000 +0000 -@@ -1,4 +1,4 @@ --*spell.txt* For Vim version 7.2. Last change: 2008 Jun 21 -+*spell.txt* For Vim version 7.2. Last change: 2008 Nov 30 - - - VIM REFERENCE MANUAL by Bram Moolenaar -@@ -831,8 +831,11 @@ - - # comment line ~ - --With some items it's also possible to put a comment after it, but this isn't --supported in general. -+Items with a fixed number of arguments can be followed by a comment. But only -+if none of the arguments can contain white space. The comment must start with -+a "#" character. Example: -+ -+ KEEPCASE = # fix case for words with this flag ~ - - - ENCODING *spell-SET* -@@ -965,6 +968,9 @@ - - Note: When using utf-8 only characters up to 65000 may be used for flags. - -+Note: even when using "num" or "long" the number of flags available to -+compounding and prefixes is limited to about 250. -+ - - AFFIXES - *spell-PFX* *spell-SFX* -@@ -1178,6 +1184,9 @@ - The flag also applies to the word with affixes, thus this can be used to mark - a whole bunch of related words as bad. - -+ *spell-FORBIDDENWORD* -+FORBIDDENWORD can be used just like BAD. For compatibility with Hunspell. -+ - *spell-NEEDAFFIX* - The NEEDAFFIX flag is used to require that a word is used with an affix. The - word itself is not a good word (unless there is an empty affix). Example: -@@ -1268,6 +1277,10 @@ - - NEEDCOMPOUND & ~ - -+ *spell-ONLYINCOMPOUND* -+The ONLYINCOMPOUND does exactly the same as NEEDCOMPOUND. Supported for -+compatiblity with Hunspell. -+ - *spell-COMPOUNDMIN* - The minimal character length of a word used for compounding is specified with - COMPOUNDMIN. Example: -@@ -1328,6 +1341,20 @@ - rules. Can also be used for an affix to count the affix as a compounding - word. - -+ *spell-CHECKCOMPOUNDPATTERN* -+CHECKCOMPOUNDPATTERN is used to define patterns that, when matching at the -+position where two words are compounded together forbids the compound. -+For example: -+ CHECKCOMPOUNDPATTERN o e ~ -+ -+This forbids compounding if the first word ends in "o" and the second word -+starts with "e". -+ -+The arguments must be plain text, no patterns are actually supported, despite -+the item name. Case is always ignored. -+ -+The Hunspell feature to use three arguments and flags is not supported. -+ - *spell-SYLLABLE* - The SYLLABLE item defines characters or character sequences that are used to - count the number of syllables in a word. Example: -@@ -1496,6 +1523,10 @@ - ACCENT (Hunspell) *spell-ACCENT* - Use MAP instead. |spell-MAP| - -+BREAK (Hunspell) *spell-BREAK* -+ Define break points. Unclear how it works exactly. -+ Not supported. -+ - CHECKCOMPOUNDCASE (Hunspell) *spell-CHECKCOMPOUNDCASE* - Disallow uppercase letters at compound word boundaries. - Not supported. -@@ -1512,9 +1543,6 @@ - Forbid three identical characters when compounding. Not - supported. - --CHECKCOMPOUNDPATTERN (Hunspell) *spell-CHECKCOMPOUNDPATTERN* -- Forbid compounding when patterns match. Not supported. -- - COMPLEXPREFIXES (Hunspell) *spell-COMPLEXPREFIXES* - Enables using two prefixes. Not supported. - -@@ -1536,13 +1564,18 @@ - COMPOUNDMIDDLE (Hunspell) *spell-COMPOUNDMIDDLE* - Use COMPOUNDRULE instead. |spell-COMPOUNDRULE| - -+COMPOUNDRULES (Hunspell) *spell-COMPOUNDRULES* -+ Number of COMPOUNDRULE lines following. Ignored, but the -+ argument must be a number. -+ - COMPOUNDSYLLABLE (Hunspell) *spell-COMPOUNDSYLLABLE* - Use SYLLABLE and COMPOUNDSYLMAX instead. |spell-SYLLABLE| - |spell-COMPOUNDSYLMAX| - --FORBIDDENWORD (Hunspell) *spell-FORBIDDENWORD* -- Use BAD instead. |spell-BAD| -- -+KEY (Hunspell) *spell-KEY* -+ Define characters that are close together on the keyboard. -+ Used to give better suggestions. Not supported. -+ - LANG (Hunspell) *spell-LANG* - This specifies language-specific behavior. This actually - moves part of the language knowledge into the program, -@@ -1553,10 +1586,7 @@ - Only needed for morphological analysis. - - MAXNGRAMSUGS (Hunspell) *spell-MAXNGRAMSUGS* -- Not supported. -- --ONLYINCOMPOUND (Hunspell) *spell-ONLYINCOMPOUND* -- Use NEEDCOMPOUND instead. |spell-NEEDCOMPOUND| -+ Set number of n-gram suggestions. Not supported. - - PSEUDOROOT (Hunspell) *spell-PSEUDOROOT* - Use NEEDAFFIX instead. |spell-NEEDAFFIX| -diff -Naur vim72.orig/runtime/doc/starting.txt vim72/runtime/doc/starting.txt ---- vim72.orig/runtime/doc/starting.txt 2008-08-09 15:23:00.000000000 +0100 -+++ vim72/runtime/doc/starting.txt 2008-12-06 11:37:49.000000000 +0000 -@@ -1,4 +1,4 @@ --*starting.txt* For Vim version 7.2. Last change: 2008 Jun 21 -+*starting.txt* For Vim version 7.2. Last change: 2008 Nov 09 - - - VIM REFERENCE MANUAL by Bram Moolenaar -@@ -1337,8 +1337,9 @@ - *viminfo-read* - When Vim is started and the 'viminfo' option is non-empty, the contents of - the viminfo file are read and the info can be used in the appropriate places. --The marks are not read in at startup (but file marks are). See --|initialization| for how to set the 'viminfo' option upon startup. -+The |v:oldfiles| variable is filled. The marks are not read in at startup -+(but file marks are). See |initialization| for how to set the 'viminfo' -+option upon startup. - - *viminfo-write* - When Vim exits and 'viminfo' is non-empty, the info is stored in the viminfo -@@ -1372,6 +1373,8 @@ - that start with any string given with the "r" flag in 'viminfo'. This can be - used to avoid saving marks for files on removable media (for MS-DOS you would - use "ra:,rb:", for Amiga "rdf0:,rdf1:,rdf2:"). -+The |v:oldfiles| variable is filled with the file names that the viminfo file -+has marks for. - - *viminfo-file-marks* - Uppercase marks ('A to 'Z) are stored when writing the viminfo file. The -@@ -1463,8 +1466,8 @@ - *:rv* *:rviminfo* *E195* - :rv[iminfo][!] [file] Read from viminfo file [file] (default: see above). - If [!] is given, then any information that is -- already set (registers, marks, etc.) will be -- overwritten. {not in Vi} -+ already set (registers, marks, |v:oldfiles|, etc.) -+ will be overwritten {not in Vi} - - *:wv* *:wviminfo* *E137* *E138* *E574* - :wv[iminfo][!] [file] Write to viminfo file [file] (default: see above). -@@ -1479,4 +1482,20 @@ - the .viminfo file. - {not in Vi} - -+ *:ol* *:oldfiles* -+:ol[dfiles] List the files that have marks stored in the viminfo -+ file. This list is read on startup and only changes -+ afterwards with ":rviminfo!". Also see |v:oldfiles|. -+ The number can be used with |c_#<|. -+ {not in Vi, only when compiled with the +eval feature} -+ -+:bro[wse] ol[dfiles][!] -+ List file names as with |:oldfiles|, and then prompt -+ for a number. When the number is valid that file from -+ the list is edited. -+ If you get the |press-enter| prompt you can press "q" -+ and still get the prompt to enter a file number. -+ Use ! to abondon a modified buffer. |abandon| -+ {not when compiled with tiny or small features} -+ - vim:tw=78:ts=8:ft=help:norl: -diff -Naur vim72.orig/runtime/doc/usr_21.txt vim72/runtime/doc/usr_21.txt ---- vim72.orig/runtime/doc/usr_21.txt 2008-08-09 15:23:01.000000000 +0100 -+++ vim72/runtime/doc/usr_21.txt 2008-12-06 11:37:49.000000000 +0000 -@@ -1,4 +1,4 @@ --*usr_21.txt* For Vim version 7.2. Last change: 2007 May 01 -+*usr_21.txt* For Vim version 7.2. Last change: 2008 Nov 09 - - VIM USER MANUAL - by Bram Moolenaar - -@@ -153,7 +153,7 @@ - to be lost. Each item can be remembered only once. - - --GETTING BACK TO WHERE YOU WERE -+GETTING BACK TO WHERE YOU STOPPED VIM - - You are halfway editing a file and it's time to leave for holidays. You exit - Vim and go enjoy yourselves, forgetting all about your work. After a couple -@@ -168,6 +168,48 @@ - The |:marks| command is useful to find out where '0 to '9 will take you. - - -+GETTING BACK TO SOME FILE -+ -+If you want to go back to a file that you edited recently, but not when -+exiting Vim, there is a slightly more complicated way. You can see a list of -+files by typing the command: > -+ -+ :oldfiles -+< 1: ~/.viminfo ~ -+ 2: ~/text/resume.txt ~ -+ 3: /tmp/draft ~ -+ -+Now you would like to edit the second file, which is in the list preceded by -+"2:". You type: > -+ -+ :e #<2 -+ -+Instead of ":e" you can use any command that has a file name argument, the -+"#<2" item works in the same place as "%" (current file name) and "#" -+(alternate file name). So you can also split the window to edit the third -+file: > -+ -+ :split #<3 -+ -+That #<123 thing is a bit complicated when you just want to edit a file. -+Fortunately there is a simpler way: > -+ -+ :browse oldfiles -+< 1: ~/.viminfo ~ -+ 2: ~/text/resume.txt ~ -+ 3: /tmp/draft ~ -+ -- More -- -+ -+You get the same list of files as with |:oldfiles|. If you want to edit -+"resume.txt" first press "q" to stop the listing. You will get a prompt: -+ -+ Type number and <Enter> (empty cancels): ~ -+ -+Type "2" and press <Enter> to edit the second file. -+ -+More info at |:oldfiles|, |v:oldfiles| and |c_#<|. -+ -+ - MOVE INFO FROM ONE VIM TO ANOTHER - - You can use the ":wviminfo" and ":rviminfo" commands to save and restore the -diff -Naur vim72.orig/runtime/scripts.vim vim72/runtime/scripts.vim ---- vim72.orig/runtime/scripts.vim 2008-08-08 23:27:21.000000000 +0100 -+++ vim72/runtime/scripts.vim 2008-12-06 11:37:48.000000000 +0000 -@@ -234,6 +234,10 @@ - elseif s:line1 =~ '<DTD\s+XHTML\s' - set ft=xhtml - -+ " HTML (e.g.: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN") -+ elseif s:line1 =~? '\<DOCTYPE\s\+html\>' -+ set ft=html -+ - " PDF - elseif s:line1 =~ '^%PDF-' - set ft=pdf -diff -Naur vim72.orig/src/auto/configure vim72/src/auto/configure ---- vim72.orig/src/auto/configure 2008-07-24 13:40:36.000000000 +0100 -+++ vim72/src/auto/configure 2008-12-06 11:37:50.000000000 +0000 -@@ -16819,21 +16819,29 @@ - LDFLAGS="$LDFLAGS -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc" - fi - --{ $as_echo "$as_me:$LINENO: checking for GCC 3 or later" >&5 --$as_echo_n "checking for GCC 3 or later... " >&6; } - DEPEND_CFLAGS_FILTER= - if test "$GCC" = yes; then -+ { $as_echo "$as_me:$LINENO: checking for GCC 3 or later" >&5 -+$as_echo_n "checking for GCC 3 or later... " >&6; } - gccmajor=`echo "$gccversion" | sed -e 's/^([1-9])..*$/\1/g'` - if test "$gccmajor" -gt "2"; then - DEPEND_CFLAGS_FILTER="| sed 's+-I */+-isystem /+g'" -- fi --fi --if test "$DEPEND_CFLAGS_FILTER" = ""; then -- { $as_echo "$as_me:$LINENO: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: yes" >&5 -+$as_echo "yes" >&6; } -+ else -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } --else -- { $as_echo "$as_me:$LINENO: result: yes" >&5 -+ fi -+ { $as_echo "$as_me:$LINENO: checking whether we need -D_FORTIFY_SOURCE=1" >&5 -+$as_echo_n "checking whether we need -D_FORTIFY_SOURCE=1... " >&6; } -+ if test "$gccmajor" -gt "3"; then -+ CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=1" -+ { $as_echo "$as_me:$LINENO: result: yes" >&5 - $as_echo "yes" >&6; } -+ else -+ { $as_echo "$as_me:$LINENO: result: no" >&5 -+$as_echo "no" >&6; } -+ fi - fi - - -diff -Naur vim72.orig/src/buffer.c vim72/src/buffer.c ---- vim72.orig/src/buffer.c 2008-08-06 12:00:48.000000000 +0100 -+++ vim72/src/buffer.c 2008-12-06 11:37:50.000000000 +0000 -@@ -33,7 +33,7 @@ - static char_u *fname_match __ARGS((regprog_T *prog, char_u *name)); - #endif - static void buflist_setfpos __ARGS((buf_T *buf, win_T *win, linenr_T lnum, colnr_T col, int copy_options)); --static wininfo_T *find_wininfo __ARGS((buf_T *buf)); -+static wininfo_T *find_wininfo __ARGS((buf_T *buf, int skip_diff_buffer)); - #ifdef UNIX - static buf_T *buflist_findname_stat __ARGS((char_u *ffname, struct stat *st)); - static int otherfile_buf __ARGS((buf_T *buf, char_u *ffname, struct stat *stp)); -@@ -647,6 +647,9 @@ - vim_free(buf->b_start_fenc); - buf->b_start_fenc = NULL; - #endif -+#ifdef FEAT_SPELL -+ ga_clear(&buf->b_langp); -+#endif - } - - /* -@@ -1090,7 +1093,7 @@ - #endif - setpcmark(); - retval = do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, -- forceit ? ECMD_FORCEIT : 0); -+ forceit ? ECMD_FORCEIT : 0, curwin); - - /* - * do_ecmd() may create a new buffer, then we have to delete -@@ -1237,7 +1240,7 @@ - * "buf" if one exists */ - if ((swb_flags & SWB_USEOPEN) && buf_jump_open_win(buf)) - return OK; -- /* If 'switchbuf' contians "usetab": jump to first window in any tab -+ /* If 'switchbuf' contains "usetab": jump to first window in any tab - * page containing "buf" if one exists */ - if ((swb_flags & SWB_USETAB) && buf_jump_open_tab(buf)) - return OK; -@@ -1313,7 +1316,7 @@ - setpcmark(); - if (!cmdmod.keepalt) - curwin->w_alt_fnum = curbuf->b_fnum; /* remember alternate file */ -- buflist_altfpos(); /* remember curpos */ -+ buflist_altfpos(curwin); /* remember curpos */ - - #ifdef FEAT_VISUAL - /* Don't restart Select mode after switching to another buffer. */ -@@ -1351,11 +1354,12 @@ - } - } - #ifdef FEAT_AUTOCMD -+ /* An autocommand may have deleted "buf", already entered it (e.g., when -+ * it did ":bunload") or aborted the script processing! */ - # ifdef FEAT_EVAL -- /* An autocommand may have deleted buf or aborted the script processing! */ -- if (buf_valid(buf) && !aborting()) -+ if (buf_valid(buf) && buf != curbuf && !aborting()) - # else -- if (buf_valid(buf)) /* an autocommand may have deleted buf! */ -+ if (buf_valid(buf) && buf != curbuf) - # endif - #endif - enter_buffer(buf); -@@ -1397,6 +1401,9 @@ - curwin->w_cursor.coladd = 0; - #endif - curwin->w_set_curswant = TRUE; -+#ifdef FEAT_AUTOCMD -+ curwin->w_topline_was_set = FALSE; -+#endif - - /* Make sure the buffer is loaded. */ - if (curbuf->b_ml.ml_mfp == NULL) /* need to load the file */ -@@ -1436,7 +1443,8 @@ - maketitle(); - #endif - #ifdef FEAT_AUTOCMD -- if (curwin->w_topline == 1) /* when autocmds didn't change it */ -+ /* when autocmds didn't change it */ -+ if (curwin->w_topline == 1 && !curwin->w_topline_was_set) - #endif - scroll_cursor_halfway(FALSE); /* redisplay at correct position */ - -@@ -2400,22 +2408,70 @@ - return; - } - -+#ifdef FEAT_DIFF -+static int wininfo_other_tab_diff __ARGS((wininfo_T *wip)); -+ -+/* -+ * Return TRUE when "wip" has 'diff' set and the diff is only for another tab -+ * page. That's because a diff is local to a tab page. -+ */ -+ static int -+wininfo_other_tab_diff(wip) -+ wininfo_T *wip; -+{ -+ win_T *wp; -+ -+ if (wip->wi_opt.wo_diff) -+ { -+ for (wp = firstwin; wp != NULL; wp = wp->w_next) -+ /* return FALSE when it's a window in the current tab page, thus -+ * the buffer was in diff mode here */ -+ if (wip->wi_win == wp) -+ return FALSE; -+ return TRUE; -+ } -+ return FALSE; -+} -+#endif -+ - /* - * Find info for the current window in buffer "buf". - * If not found, return the info for the most recently used window. -+ * When "skip_diff_buffer" is TRUE avoid windows with 'diff' set that is in -+ * another tab page. - * Returns NULL when there isn't any info. - */ -+/*ARGSUSED*/ - static wininfo_T * --find_wininfo(buf) -+find_wininfo(buf, skip_diff_buffer) - buf_T *buf; -+ int skip_diff_buffer; - { - wininfo_T *wip; - - for (wip = buf->b_wininfo; wip != NULL; wip = wip->wi_next) -- if (wip->wi_win == curwin) -+ if (wip->wi_win == curwin -+#ifdef FEAT_DIFF -+ && (!skip_diff_buffer || !wininfo_other_tab_diff(wip)) -+#endif -+ ) - break; -- if (wip == NULL) /* if no fpos for curwin, use the first in the list */ -- wip = buf->b_wininfo; -+ -+ /* If no wininfo for curwin, use the first in the list (that doesn't have -+ * 'diff' set and is in another tab page). */ -+ if (wip == NULL) -+ { -+#ifdef FEAT_DIFF -+ if (skip_diff_buffer) -+ { -+ for (wip = buf->b_wininfo; wip != NULL; wip = wip->wi_next) -+ if (!wininfo_other_tab_diff(wip)) -+ break; -+ } -+ else -+#endif -+ wip = buf->b_wininfo; -+ } - return wip; - } - -@@ -2436,7 +2492,7 @@ - clearFolding(curwin); - #endif - -- wip = find_wininfo(buf); -+ wip = find_wininfo(buf, TRUE); - if (wip != NULL && wip->wi_optset) - { - copy_winopt(&wip->wi_opt, &curwin->w_onebuf_opt); -@@ -2468,7 +2524,7 @@ - wininfo_T *wip; - static pos_T no_position = {1, 0}; - -- wip = find_wininfo(buf); -+ wip = find_wininfo(buf, FALSE); - if (wip != NULL) - return &(wip->wi_fpos); - else -@@ -2789,14 +2845,14 @@ - #endif - - /* -- * Set alternate cursor position for current window. -+ * Set alternate cursor position for the current buffer and window "win". - * Also save the local window option values. - */ - void --buflist_altfpos() -+buflist_altfpos(win) -+ win_T *win; - { -- buflist_setfpos(curbuf, curwin, curwin->w_cursor.lnum, -- curwin->w_cursor.col, TRUE); -+ buflist_setfpos(curbuf, win, win->w_cursor.lnum, win->w_cursor.col, TRUE); - } - - /* -@@ -3963,7 +4019,7 @@ - width = vim_strsize(out); - if (maxwidth > 0 && width > maxwidth) - { -- /* Result is too long, must trunctate somewhere. */ -+ /* Result is too long, must truncate somewhere. */ - l = 0; - if (itemcnt == 0) - s = out; -@@ -4488,7 +4544,7 @@ - ECMD_ONE, - ((P_HID(curwin->w_buffer) - || bufIsChanged(curwin->w_buffer)) ? ECMD_HIDE : 0) -- + ECMD_OLDBUF); -+ + ECMD_OLDBUF, curwin); - #ifdef FEAT_AUTOCMD - if (use_firstwin) - ++autocmd_no_leave; -@@ -5062,7 +5118,7 @@ - { - if (buf->b_sfname != NULL) - return (char *)buf->b_sfname; -- return "[Scratch]"; -+ return _("[Scratch]"); - } - #endif - if (buf->b_fname == NULL) -diff -Naur vim72.orig/src/configure.in vim72/src/configure.in ---- vim72.orig/src/configure.in 2008-07-24 13:40:26.000000000 +0100 -+++ vim72/src/configure.in 2008-12-06 11:37:50.000000000 +0000 -@@ -3152,18 +3152,25 @@ - dnl But only when making dependencies, cproto and lint don't take "-isystem". - dnl Mac gcc returns "powerpc-apple-darwin8-gcc-4.0.1 (GCC)...", need to allow - dnl the number before the version number. --AC_MSG_CHECKING(for GCC 3 or later) - DEPEND_CFLAGS_FILTER= - if test "$GCC" = yes; then -+ AC_MSG_CHECKING(for GCC 3 or later) - gccmajor=`echo "$gccversion" | sed -e 's/^([[1-9]])..*$/\1/g'` - if test "$gccmajor" -gt "2"; then - DEPEND_CFLAGS_FILTER="| sed 's+-I */+-isystem /+g'" -+ AC_MSG_RESULT(yes) -+ else -+ AC_MSG_RESULT(no) -+ fi -+ dnl -D_FORTIFY_SOURCE=2 crashes Vim on strcpy(buf, "000") when buf is -+ dnl declared as char x[1] but actually longer. Introduced in gcc 4.0. -+ AC_MSG_CHECKING(whether we need -D_FORTIFY_SOURCE=1) -+ if test "$gccmajor" -gt "3"; then -+ CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=1" -+ AC_MSG_RESULT(yes) -+ else -+ AC_MSG_RESULT(no) - fi --fi --if test "$DEPEND_CFLAGS_FILTER" = ""; then -- AC_MSG_RESULT(no) --else -- AC_MSG_RESULT(yes) - fi - AC_SUBST(DEPEND_CFLAGS_FILTER) - -diff -Naur vim72.orig/src/diff.c vim72/src/diff.c ---- vim72.orig/src/diff.c 2008-03-05 11:16:56.000000000 +0000 -+++ vim72/src/diff.c 2008-12-06 11:37:50.000000000 +0000 -@@ -73,6 +73,8 @@ - { - tp->tp_diffbuf[i] = NULL; - tp->tp_diff_invalid = TRUE; -+ if (tp == curtab) -+ diff_redraw(TRUE); - } - } - } -@@ -102,6 +104,7 @@ - { - curtab->tp_diffbuf[i] = NULL; - curtab->tp_diff_invalid = TRUE; -+ diff_redraw(TRUE); - } - } - } -@@ -131,6 +134,7 @@ - { - curtab->tp_diffbuf[i] = buf; - curtab->tp_diff_invalid = TRUE; -+ diff_redraw(TRUE); - return; - } - -@@ -661,6 +665,7 @@ - char_u *tmp_diff; - FILE *fd; - int ok; -+ int io_error = FALSE; - - /* Delete all diffblocks. */ - diff_clear(curtab); -@@ -697,18 +702,26 @@ - { - ok = FALSE; - fd = mch_fopen((char *)tmp_orig, "w"); -- if (fd != NULL) -+ if (fd == NULL) -+ io_error = TRUE; -+ else - { -- fwrite("line1\n", (size_t)6, (size_t)1, fd); -+ if (fwrite("line1\n", (size_t)6, (size_t)1, fd) != 1) -+ io_error = TRUE; - fclose(fd); - fd = mch_fopen((char *)tmp_new, "w"); -- if (fd != NULL) -+ if (fd == NULL) -+ io_error = TRUE; -+ else - { -- fwrite("line2\n", (size_t)6, (size_t)1, fd); -+ if (fwrite("line2\n", (size_t)6, (size_t)1, fd) != 1) -+ io_error = TRUE; - fclose(fd); - diff_file(tmp_orig, tmp_new, tmp_diff); - fd = mch_fopen((char *)tmp_diff, "r"); -- if (fd != NULL) -+ if (fd == NULL) -+ io_error = TRUE; -+ else - { - char_u linebuf[LBUFLEN]; - -@@ -761,6 +774,8 @@ - } - if (!ok) - { -+ if (io_error) -+ EMSG(_("E810: Cannot read or write temp files")); - EMSG(_("E97: Cannot create diffs")); - diff_a_works = MAYBE; - #if defined(MSWIN) || defined(MSDOS) -@@ -925,10 +940,10 @@ - { - # ifdef TEMPDIRNAMES - if (vim_tempdir != NULL) -- mch_chdir((char *)vim_tempdir); -+ ignored = mch_chdir((char *)vim_tempdir); - else - # endif -- mch_chdir("/tmp"); -+ ignored = mch_chdir("/tmp"); - shorten_fnames(TRUE); - } - #endif -diff -Naur vim72.orig/src/eval.c vim72/src/eval.c ---- vim72.orig/src/eval.c 2008-08-07 20:37:22.000000000 +0100 -+++ vim72/src/eval.c 2008-12-06 11:37:50.000000000 +0000 -@@ -348,6 +348,7 @@ - {VV_NAME("mouse_col", VAR_NUMBER), 0}, - {VV_NAME("operator", VAR_STRING), VV_RO}, - {VV_NAME("searchforward", VAR_NUMBER), 0}, -+ {VV_NAME("oldfiles", VAR_LIST), 0}, - }; - - /* shorthand */ -@@ -355,6 +356,7 @@ - #define vv_nr vv_di.di_tv.vval.v_number - #define vv_float vv_di.di_tv.vval.v_float - #define vv_str vv_di.di_tv.vval.v_string -+#define vv_list vv_di.di_tv.vval.v_list - #define vv_tv vv_di.di_tv - - /* -@@ -426,7 +428,6 @@ - static long list_idx_of_item __ARGS((list_T *l, listitem_T *item)); - static void list_append __ARGS((list_T *l, listitem_T *item)); - static int list_append_tv __ARGS((list_T *l, typval_T *tv)); --static int list_append_string __ARGS((list_T *l, char_u *str, int len)); - static int list_append_number __ARGS((list_T *l, varnumber_T n)); - static int list_insert_tv __ARGS((list_T *l, typval_T *tv, listitem_T *item)); - static int list_extend __ARGS((list_T *l1, list_T *l2, listitem_T *bef)); -@@ -845,11 +846,17 @@ - p = &vimvars[i]; - if (p->vv_di.di_tv.v_type == VAR_STRING) - { -- vim_free(p->vv_di.di_tv.vval.v_string); -- p->vv_di.di_tv.vval.v_string = NULL; -+ vim_free(p->vv_str); -+ p->vv_str = NULL; -+ } -+ else if (p->vv_di.di_tv.v_type == VAR_LIST) -+ { -+ list_unref(p->vv_list); -+ p->vv_list = NULL; - } - } - hash_clear(&vimvarht); -+ hash_init(&vimvarht); /* garbage_collect() will access it */ - hash_clear(&compat_hashtab); - - /* script-local variables */ -@@ -1256,23 +1263,26 @@ - - /* - * Top level evaluation function, returning a string. -+ * When "convert" is TRUE convert a List into a sequence of lines and convert -+ * a Float to a String. - * Return pointer to allocated memory, or NULL for failure. - */ - char_u * --eval_to_string(arg, nextcmd, dolist) -+eval_to_string(arg, nextcmd, convert) - char_u *arg; - char_u **nextcmd; -- int dolist; /* turn List into sequence of lines */ -+ int convert; - { - typval_T tv; - char_u *retval; - garray_T ga; -+ char_u numbuf[NUMBUFLEN]; - - if (eval0(arg, &tv, nextcmd, TRUE) == FAIL) - retval = NULL; - else - { -- if (dolist && tv.v_type == VAR_LIST) -+ if (convert && tv.v_type == VAR_LIST) - { - ga_init2(&ga, (int)sizeof(char), 80); - if (tv.vval.v_list != NULL) -@@ -1280,6 +1290,13 @@ - ga_append(&ga, NUL); - retval = (char_u *)ga.ga_data; - } -+#ifdef FEAT_FLOAT -+ else if (convert && tv.v_type == VAR_FLOAT) -+ { -+ vim_snprintf((char *)numbuf, NUMBUFLEN, "%g", tv.vval.v_float); -+ retval = vim_strsave(numbuf); -+ } -+#endif - else - retval = vim_strsave(get_tv_string(&tv)); - clear_tv(&tv); -@@ -3277,7 +3294,7 @@ - - if (*startarg != '(') - { -- EMSG2(_("E107: Missing braces: %s"), eap->arg); -+ EMSG2(_("E107: Missing parentheses: %s"), eap->arg); - goto end; - } - -@@ -3657,8 +3674,8 @@ - } - - /* -- * Return TRUE if typeval "tv" is locked: Either tha value is locked itself or -- * it refers to a List or Dictionary that is locked. -+ * Return TRUE if typeval "tv" is locked: Either that value is locked itself -+ * or it refers to a List or Dictionary that is locked. - */ - static int - tv_islocked(tv) -@@ -6047,6 +6064,25 @@ - } - - /* -+ * Get list item "l[idx - 1]" as a string. Returns NULL for failure. -+ */ -+ char_u * -+list_find_str(l, idx) -+ list_T *l; -+ long idx; -+{ -+ listitem_T *li; -+ -+ li = list_find(l, idx - 1); -+ if (li == NULL) -+ { -+ EMSGN(_(e_listidx), idx); -+ return NULL; -+ } -+ return get_tv_string(&li->li_tv); -+} -+ -+/* - * Locate "item" list "l" and return its index. - * Returns -1 when "item" is not in the list. - */ -@@ -6137,7 +6173,7 @@ - * When "len" >= 0 use "str[len]". - * Returns FAIL when out of memory. - */ -- static int -+ int - list_append_string(l, str, len) - list_T *l; - char_u *str; -@@ -6497,6 +6533,9 @@ - set_ref_in_ht(&fc->l_avars.dv_hashtab, copyID); - } - -+ /* v: vars */ -+ set_ref_in_ht(&vimvarht, copyID); -+ - /* - * 2. Go through the list of dicts and free items without the copyID. - */ -@@ -6587,7 +6626,7 @@ - { - case VAR_DICT: - dd = tv->vval.v_dict; -- if (dd->dv_copyID != copyID) -+ if (dd != NULL && dd->dv_copyID != copyID) - { - /* Didn't see this dict yet. */ - dd->dv_copyID = copyID; -@@ -6597,7 +6636,7 @@ - - case VAR_LIST: - ll = tv->vval.v_list; -- if (ll->lv_copyID != copyID) -+ if (ll != NULL && ll->lv_copyID != copyID) - { - /* Didn't see this list yet. */ - ll->lv_copyID = copyID; -@@ -7525,8 +7564,8 @@ - {"getwinposx", 0, 0, f_getwinposx}, - {"getwinposy", 0, 0, f_getwinposy}, - {"getwinvar", 2, 2, f_getwinvar}, -- {"glob", 1, 1, f_glob}, -- {"globpath", 2, 2, f_globpath}, -+ {"glob", 1, 2, f_glob}, -+ {"globpath", 2, 3, f_globpath}, - {"has", 1, 1, f_has}, - {"has_key", 2, 2, f_has_key}, - {"haslocaldir", 0, 0, f_haslocaldir}, -@@ -9518,7 +9557,7 @@ - else - { - /* When the optional second argument is non-zero, don't remove matches -- * for 'suffixes' and 'wildignore' */ -+ * for 'wildignore' and don't put matches for 'suffixes' at the end. */ - if (argvars[1].v_type != VAR_UNKNOWN - && get_tv_number_chk(&argvars[1], &error)) - flags |= WILD_KEEP_ALL; -@@ -10300,7 +10339,8 @@ - s = get_tv_string(&argvars[0]); - if (s == NULL || *s == NUL || VIM_ISDIGIT(*s)) - EMSG2(_(e_invarg2), s); -- else if (!function_exists(s)) -+ /* Don't check an autoload name for existence here. */ -+ else if (vim_strchr(s, AUTOLOAD_CHAR) == NULL && !function_exists(s)) - EMSG2(_("E700: Unknown function: %s"), s); - else - { -@@ -10602,7 +10642,7 @@ - # ifdef FEAT_WINDOWS - win_T *wp; - # endif -- int n = 1; -+ int winnr = 1; - - if (row >= 0 && col >= 0) - { -@@ -10612,9 +10652,9 @@ - (void)mouse_comp_pos(win, &row, &col, &lnum); - # ifdef FEAT_WINDOWS - for (wp = firstwin; wp != win; wp = wp->w_next) -- ++n; -+ ++winnr; - # endif -- vimvars[VV_MOUSE_WIN].vv_nr = n; -+ vimvars[VV_MOUSE_WIN].vv_nr = winnr; - vimvars[VV_MOUSE_LNUM].vv_nr = lnum; - vimvars[VV_MOUSE_COL].vv_nr = col + 1; - } -@@ -11284,13 +11324,25 @@ - typval_T *argvars; - typval_T *rettv; - { -+ int flags = WILD_SILENT|WILD_USE_NL; - expand_T xpc; -+ int error = FALSE; - -- ExpandInit(&xpc); -- xpc.xp_context = EXPAND_FILES; -+ /* When the optional second argument is non-zero, don't remove matches -+ * for 'wildignore' and don't put matches for 'suffixes' at the end. */ -+ if (argvars[1].v_type != VAR_UNKNOWN -+ && get_tv_number_chk(&argvars[1], &error)) -+ flags |= WILD_KEEP_ALL; - rettv->v_type = VAR_STRING; -- rettv->vval.v_string = ExpandOne(&xpc, get_tv_string(&argvars[0]), -- NULL, WILD_USE_NL|WILD_SILENT, WILD_ALL); -+ if (!error) -+ { -+ ExpandInit(&xpc); -+ xpc.xp_context = EXPAND_FILES; -+ rettv->vval.v_string = ExpandOne(&xpc, get_tv_string(&argvars[0]), -+ NULL, flags, WILD_ALL); -+ } -+ else -+ rettv->vval.v_string = NULL; - } - - /* -@@ -11301,14 +11353,22 @@ - typval_T *argvars; - typval_T *rettv; - { -+ int flags = 0; - char_u buf1[NUMBUFLEN]; - char_u *file = get_tv_string_buf_chk(&argvars[1], buf1); -+ int error = FALSE; - -+ /* When the optional second argument is non-zero, don't remove matches -+ * for 'wildignore' and don't put matches for 'suffixes' at the end. */ -+ if (argvars[2].v_type != VAR_UNKNOWN -+ && get_tv_number_chk(&argvars[2], &error)) -+ flags |= WILD_KEEP_ALL; - rettv->v_type = VAR_STRING; -- if (file == NULL) -+ if (file == NULL || error) - rettv->vval.v_string = NULL; - else -- rettv->vval.v_string = globpath(get_tv_string(&argvars[0]), file); -+ rettv->vval.v_string = globpath(get_tv_string(&argvars[0]), file, -+ flags); - } - - /* -@@ -15838,10 +15898,9 @@ - if (res == FAIL) - res = ITEM_COMPARE_FAIL; - else -- /* return value has wrong type */ - res = get_tv_number_chk(&rettv, &item_compare_func_err); - if (item_compare_func_err) -- res = ITEM_COMPARE_FAIL; -+ res = ITEM_COMPARE_FAIL; /* return value has wrong type */ - clear_tv(&rettv); - return res; - } -@@ -16590,8 +16649,11 @@ - p = highlight_has_attr(id, HL_INVERSE, modec); - break; - -- case 's': /* standout */ -- p = highlight_has_attr(id, HL_STANDOUT, modec); -+ case 's': -+ if (TOLOWER_ASC(what[1]) == 'p') /* sp[#] */ -+ p = highlight_color(id, what, modec); -+ else /* standout */ -+ p = highlight_has_attr(id, HL_STANDOUT, modec); - break; - - case 'u': -@@ -16658,7 +16720,7 @@ - col = get_tv_number(&argvars[1]) - 1; /* -1 on type error */ - - if (lnum >= 1 && lnum <= curbuf->b_ml.ml_line_count -- && col >= 0 && col < (long)STRLEN(ml_get(lnum)) -+ && col >= 0 && (col == 0 || col < (long)STRLEN(ml_get(lnum))) - && rettv_list_alloc(rettv) != FAIL) - { - (void)syn_get_id(curwin, lnum, (colnr_T)col, FALSE, NULL, TRUE); -@@ -18097,14 +18159,28 @@ - } - - /* -- * Set v:count, v:count1 and v:prevcount. -+ * Get List v: variable value. Caller must take care of reference count when -+ * needed. -+ */ -+ list_T * -+get_vim_var_list(idx) -+ int idx; -+{ -+ return vimvars[idx].vv_list; -+} -+ -+/* -+ * Set v:count to "count" and v:count1 to "count1". -+ * When "set_prevcount" is TRUE first set v:prevcount from v:count. - */ - void --set_vcount(count, count1) -+set_vcount(count, count1, set_prevcount) - long count; - long count1; -+ int set_prevcount; - { -- vimvars[VV_PREVCOUNT].vv_nr = vimvars[VV_COUNT].vv_nr; -+ if (set_prevcount) -+ vimvars[VV_PREVCOUNT].vv_nr = vimvars[VV_COUNT].vv_nr; - vimvars[VV_COUNT].vv_nr = count; - vimvars[VV_COUNT1].vv_nr = count1; - } -@@ -18132,6 +18208,20 @@ - } - - /* -+ * Set List v: variable to "val". -+ */ -+ void -+set_vim_var_list(idx, val) -+ int idx; -+ list_T *val; -+{ -+ list_unref(vimvars[idx].vv_list); -+ vimvars[idx].vv_list = val; -+ if (val != NULL) -+ ++val->lv_refcount; -+} -+ -+/* - * Set v:register if needed. - */ - void -@@ -20590,6 +20680,9 @@ - int st_len = 0; - - todo = (int)func_hashtab.ht_used; -+ if (todo == 0) -+ return; /* nothing to dump */ -+ - sorttab = (ufunc_T **)alloc((unsigned)(sizeof(ufunc_T) * todo)); - - for (hi = func_hashtab.ht_array; todo > 0; ++hi) -@@ -20638,6 +20731,8 @@ - prof_self_cmp); - prof_sort_list(fd, sorttab, st_len, "SELF", TRUE); - } -+ -+ vim_free(sorttab); - } - - static void -@@ -21082,8 +21177,11 @@ - init_var_dict(&fc.l_avars, &fc.l_avars_var); - add_nr_var(&fc.l_avars, &fc.fixvar[fixvar_idx++].var, "0", - (varnumber_T)(argcount - fp->uf_args.ga_len)); -+ /* Use "name" to avoid a warning from some compiler that checks the -+ * destination size. */ - v = &fc.fixvar[fixvar_idx++].var; -- STRCPY(v->di_key, "000"); -+ name = v->di_key; -+ STRCPY(name, "000"); - v->di_flags = DI_FLAGS_RO | DI_FLAGS_FIX; - hash_add(&fc.l_avars.dv_hashtab, DI2HIKEY(v)); - v->di_tv.v_type = VAR_LIST; -@@ -21204,7 +21302,7 @@ - if (!fp->uf_profiling && has_profiling(FALSE, fp->uf_name, NULL)) - func_do_profile(fp); - if (fp->uf_profiling -- || (fc.caller != NULL && &fc.caller->func->uf_profiling)) -+ || (fc.caller != NULL && fc.caller->func->uf_profiling)) - { - ++fp->uf_tm_count; - profile_start(&call_start); -@@ -21235,13 +21333,13 @@ - - #ifdef FEAT_PROFILE - if (do_profiling == PROF_YES && (fp->uf_profiling -- || (fc.caller != NULL && &fc.caller->func->uf_profiling))) -+ || (fc.caller != NULL && fc.caller->func->uf_profiling))) - { - profile_end(&call_start); - profile_sub_wait(&wait_start, &call_start); - profile_add(&fp->uf_tm_total, &call_start); - profile_self(&fp->uf_tm_self, &call_start, &fp->uf_tm_children); -- if (fc.caller != NULL && &fc.caller->func->uf_profiling) -+ if (fc.caller != NULL && fc.caller->func->uf_profiling) - { - profile_add(&fc.caller->func->uf_tm_children, &call_start); - profile_add(&fc.caller->func->uf_tml_children, &call_start); -@@ -21886,6 +21984,62 @@ - } - } - -+/* -+ * List v:oldfiles in a nice way. -+ */ -+/*ARGSUSED*/ -+ void -+ex_oldfiles(eap) -+ exarg_T *eap; -+{ -+ list_T *l = vimvars[VV_OLDFILES].vv_list; -+ listitem_T *li; -+ int nr = 0; -+ -+ if (l == NULL) -+ msg((char_u *)_("No old files")); -+ else -+ { -+ msg_start(); -+ msg_scroll = TRUE; -+ for (li = l->lv_first; li != NULL && !got_int; li = li->li_next) -+ { -+ msg_outnum((long)++nr); -+ MSG_PUTS(": "); -+ msg_outtrans(get_tv_string(&li->li_tv)); -+ msg_putchar('\n'); -+ out_flush(); /* output one line at a time */ -+ ui_breakcheck(); -+ } -+ /* Assume "got_int" was set to truncate the listing. */ -+ got_int = FALSE; -+ -+#ifdef FEAT_BROWSE_CMD -+ if (cmdmod.browse) -+ { -+ quit_more = FALSE; -+ nr = prompt_for_number(FALSE); -+ msg_starthere(); -+ if (nr > 0) -+ { -+ char_u *p = list_find_str(get_vim_var_list(VV_OLDFILES), -+ (long)nr); -+ -+ if (p != NULL) -+ { -+ p = expand_env_save(p); -+ eap->arg = p; -+ eap->cmdidx = CMD_edit; -+ cmdmod.browse = FALSE; -+ do_exedit(eap, NULL); -+ vim_free(p); -+ } -+ } -+ } -+#endif -+ } -+} -+ - #endif /* FEAT_EVAL */ - - -diff -Naur vim72.orig/src/ex_cmds2.c vim72/src/ex_cmds2.c ---- vim72.orig/src/ex_cmds2.c 2008-07-13 17:18:22.000000000 +0100 -+++ vim72/src/ex_cmds2.c 2008-12-06 11:37:49.000000000 +0000 -@@ -2132,8 +2132,8 @@ - * argument index. */ - if (do_ecmd(0, alist_name(&ARGLIST[curwin->w_arg_idx]), NULL, - eap, ECMD_LAST, -- (P_HID(curwin->w_buffer) ? ECMD_HIDE : 0) + -- (eap->forceit ? ECMD_FORCEIT : 0)) == FAIL) -+ (P_HID(curwin->w_buffer) ? ECMD_HIDE : 0) -+ + (eap->forceit ? ECMD_FORCEIT : 0), curwin) == FAIL) - curwin->w_arg_idx = old_arg_idx; - /* like Vi: set the mark where the cursor is in the file. */ - else if (eap->cmdidx != CMD_argdo) -@@ -3145,8 +3145,8 @@ - verbose_leave(); - } - #ifdef STARTUPTIME -- vim_snprintf(IObuff, IOSIZE, "sourcing %s", fname); -- time_msg(IObuff, &tv_start); -+ vim_snprintf((char *)IObuff, IOSIZE, "sourcing %s", fname); -+ time_msg((char *)IObuff, &tv_start); - time_pop(&tv_rel); - #endif - -diff -Naur vim72.orig/src/ex_cmds.c vim72/src/ex_cmds.c ---- vim72.orig/src/ex_cmds.c 2008-08-04 20:15:00.000000000 +0100 -+++ vim72/src/ex_cmds.c 2008-12-06 11:37:50.000000000 +0000 -@@ -24,7 +24,7 @@ - static void do_filter __ARGS((linenr_T line1, linenr_T line2, exarg_T *eap, char_u *cmd, int do_in, int do_out)); - #ifdef FEAT_VIMINFO - static char_u *viminfo_filename __ARGS((char_u *)); --static void do_viminfo __ARGS((FILE *fp_in, FILE *fp_out, int want_info, int want_marks, int force_read)); -+static void do_viminfo __ARGS((FILE *fp_in, FILE *fp_out, int flags)); - static int viminfo_encoding __ARGS((vir_T *virp)); - static int read_viminfo_up_to_marks __ARGS((vir_T *virp, int forceit, int writing)); - #endif -@@ -1676,14 +1676,12 @@ - - /* - * read_viminfo() -- Read the viminfo file. Registers etc. which are already -- * set are not over-written unless force is TRUE. -- webb -+ * set are not over-written unless "flags" includes VIF_FORCEIT. -- webb - */ - int --read_viminfo(file, want_info, want_marks, forceit) -- char_u *file; -- int want_info; -- int want_marks; -- int forceit; -+read_viminfo(file, flags) -+ char_u *file; /* file name or NULL to use default name */ -+ int flags; /* VIF_WANT_INFO et al. */ - { - FILE *fp; - char_u *fname; -@@ -1691,7 +1689,7 @@ - if (no_viminfo()) - return FAIL; - -- fname = viminfo_filename(file); /* may set to default if NULL */ -+ fname = viminfo_filename(file); /* get file name in allocated buffer */ - if (fname == NULL) - return FAIL; - fp = mch_fopen((char *)fname, READBIN); -@@ -1701,8 +1699,9 @@ - verbose_enter(); - smsg((char_u *)_("Reading viminfo file "%s"%s%s%s"), - fname, -- want_info ? _(" info") : "", -- want_marks ? _(" marks") : "", -+ (flags & VIF_WANT_INFO) ? _(" info") : "", -+ (flags & VIF_WANT_MARKS) ? _(" marks") : "", -+ (flags & VIF_GET_OLDFILES) ? _(" oldfiles") : "", - fp == NULL ? _(" FAILED") : ""); - verbose_leave(); - } -@@ -1712,10 +1711,9 @@ - return FAIL; - - viminfo_errcnt = 0; -- do_viminfo(fp, NULL, want_info, want_marks, forceit); -+ do_viminfo(fp, NULL, flags); - - fclose(fp); -- - return OK; - } - -@@ -1943,7 +1941,7 @@ - * root. - */ - if (fp_out != NULL) -- (void)fchown(fileno(fp_out), st_old.st_uid, st_old.st_gid); -+ ignored = fchown(fileno(fp_out), st_old.st_uid, st_old.st_gid); - #endif - } - } -@@ -1968,7 +1966,7 @@ - } - - viminfo_errcnt = 0; -- do_viminfo(fp_in, fp_out, !forceit, !forceit, FALSE); -+ do_viminfo(fp_in, fp_out, forceit ? 0 : (VIF_WANT_INFO | VIF_WANT_MARKS)); - - fclose(fp_out); /* errors are ignored !? */ - if (fp_in != NULL) -@@ -2041,12 +2039,10 @@ - * do_viminfo() -- Should only be called from read_viminfo() & write_viminfo(). - */ - static void --do_viminfo(fp_in, fp_out, want_info, want_marks, force_read) -+do_viminfo(fp_in, fp_out, flags) - FILE *fp_in; - FILE *fp_out; -- int want_info; -- int want_marks; -- int force_read; -+ int flags; - { - int count = 0; - int eof = FALSE; -@@ -2061,8 +2057,9 @@ - - if (fp_in != NULL) - { -- if (want_info) -- eof = read_viminfo_up_to_marks(&vir, force_read, fp_out != NULL); -+ if (flags & VIF_WANT_INFO) -+ eof = read_viminfo_up_to_marks(&vir, -+ flags & VIF_FORCEIT, fp_out != NULL); - else - /* Skip info, find start of marks */ - while (!(eof = viminfo_readline(&vir)) -@@ -2092,8 +2089,9 @@ - write_viminfo_bufferlist(fp_out); - count = write_viminfo_marks(fp_out); - } -- if (fp_in != NULL && want_marks) -- copy_viminfo_marks(&vir, fp_out, count, eof); -+ if (fp_in != NULL -+ && (flags & (VIF_WANT_MARKS | VIF_GET_OLDFILES | VIF_FORCEIT))) -+ copy_viminfo_marks(&vir, fp_out, count, eof, flags); - - vim_free(vir.vir_line); - #ifdef FEAT_MBYTE -@@ -3054,7 +3052,8 @@ - retval = 0; /* it's in the same file */ - } - else if (do_ecmd(fnum, ffname, sfname, NULL, lnum, -- (P_HID(curbuf) ? ECMD_HIDE : 0) + (forceit ? ECMD_FORCEIT : 0)) == OK) -+ (P_HID(curbuf) ? ECMD_HIDE : 0) + (forceit ? ECMD_FORCEIT : 0), -+ curwin) == OK) - retval = -1; /* opened another file */ - else - retval = 1; /* error encountered */ -@@ -3087,17 +3086,21 @@ - * ECMD_OLDBUF: use existing buffer if it exists - * ECMD_FORCEIT: ! used for Ex command - * ECMD_ADDBUF: don't edit, just add to buffer list -+ * oldwin: Should be "curwin" when editing a new buffer in the current -+ * window, NULL when splitting the window first. When not NULL info -+ * of the previous buffer for "oldwin" is stored. - * - * return FAIL for failure, OK otherwise - */ - int --do_ecmd(fnum, ffname, sfname, eap, newlnum, flags) -+do_ecmd(fnum, ffname, sfname, eap, newlnum, flags, oldwin) - int fnum; - char_u *ffname; - char_u *sfname; - exarg_T *eap; /* can be NULL! */ - linenr_T newlnum; - int flags; -+ win_T *oldwin; - { - int other_file; /* TRUE if editing another file */ - int oldbuf; /* TRUE if using existing buffer */ -@@ -3269,7 +3272,8 @@ - { - if (!cmdmod.keepalt) - curwin->w_alt_fnum = curbuf->b_fnum; -- buflist_altfpos(); -+ if (oldwin != NULL) -+ buflist_altfpos(oldwin); - } - - if (fnum) -@@ -3373,7 +3377,7 @@ - - /* close the link to the current buffer */ - u_sync(FALSE); -- close_buffer(curwin, curbuf, -+ close_buffer(oldwin, curbuf, - (flags & ECMD_HIDE) ? 0 : DOBUF_UNLOAD); - - #ifdef FEAT_AUTOCMD -@@ -5059,6 +5063,7 @@ - - if (did_sub) - ++sub_nlines; -+ vim_free(new_start); /* for when substitute was cancelled */ - vim_free(sub_firstline); /* free the copy of the original line */ - sub_firstline = NULL; - } -@@ -5610,7 +5615,13 @@ - */ - alt_fnum = curbuf->b_fnum; - (void)do_ecmd(0, NULL, NULL, NULL, ECMD_LASTL, -- ECMD_HIDE + ECMD_SET_HELP); -+ ECMD_HIDE + ECMD_SET_HELP, -+#ifdef FEAT_WINDOWS -+ NULL /* buffer is still open, don't store info */ -+#else -+ curwin -+#endif -+ ); - if (!cmdmod.keepalt) - curwin->w_alt_fnum = alt_fnum; - empty_fnum = curbuf->b_fnum; -diff -Naur vim72.orig/src/ex_cmds.h vim72/src/ex_cmds.h ---- vim72.orig/src/ex_cmds.h 2008-06-21 19:47:57.000000000 +0100 -+++ vim72/src/ex_cmds.h 2008-12-06 11:37:49.000000000 +0000 -@@ -278,7 +278,7 @@ - EX(CMD_crewind, "crewind", ex_cc, - RANGE|NOTADR|COUNT|TRLBAR|BANG), - EX(CMD_cscope, "cscope", do_cscope, -- EXTRA|NOTRLCOM|SBOXOK|XFILE), -+ EXTRA|NOTRLCOM|XFILE), - EX(CMD_cstag, "cstag", do_cstag, - BANG|TRLBAR|WORD1), - EX(CMD_cunmap, "cunmap", ex_unmap, -@@ -506,7 +506,7 @@ - EX(CMD_lclose, "lclose", ex_cclose, - RANGE|NOTADR|COUNT|TRLBAR), - EX(CMD_lcscope, "lcscope", do_cscope, -- EXTRA|NOTRLCOM|SBOXOK|XFILE), -+ EXTRA|NOTRLCOM|XFILE), - EX(CMD_left, "left", ex_align, - TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY), - EX(CMD_leftabove, "leftabove", ex_wrongmodifier, -@@ -635,6 +635,8 @@ - RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_noremap, "noremap", ex_map, - BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), -+EX(CMD_noautocmd, "noautocmd", ex_wrongmodifier, -+ NEEDARG|EXTRA|NOTRLCOM), - EX(CMD_nohlsearch, "nohlsearch", ex_nohlsearch, - TRLBAR|SBOXOK|CMDWIN), - EX(CMD_noreabbrev, "noreabbrev", ex_abbreviate, -@@ -651,6 +653,8 @@ - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_open, "open", ex_open, - RANGE|EXTRA), -+EX(CMD_oldfiles, "oldfiles", ex_oldfiles, -+ BANG|TRLBAR|SBOXOK|CMDWIN), - EX(CMD_omap, "omap", ex_map, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_omapclear, "omapclear", ex_mapclear, -@@ -802,7 +806,7 @@ - EX(CMD_scriptencoding, "scriptencoding", ex_scriptencoding, - WORD1|TRLBAR|CMDWIN), - EX(CMD_scscope, "scscope", do_scscope, -- EXTRA|NOTRLCOM|SBOXOK), -+ EXTRA|NOTRLCOM), - EX(CMD_set, "set", ex_set, - TRLBAR|EXTRA|CMDWIN|SBOXOK), - EX(CMD_setfiletype, "setfiletype", ex_setfiletype, -diff -Naur vim72.orig/src/ex_docmd.c vim72/src/ex_docmd.c ---- vim72.orig/src/ex_docmd.c 2008-07-26 12:51:05.000000000 +0100 -+++ vim72/src/ex_docmd.c 2008-12-06 11:37:50.000000000 +0000 -@@ -364,6 +364,7 @@ - # define ex_function ex_ni - # define ex_delfunction ex_ni - # define ex_return ex_ni -+# define ex_oldfiles ex_ni - #endif - static char_u *arg_all __ARGS((void)); - #ifdef FEAT_SESSION -@@ -1770,7 +1771,7 @@ - } - if (checkforcmd(&ea.cmd, "browse", 3)) - { --#ifdef FEAT_BROWSE -+#ifdef FEAT_BROWSE_CMD - cmdmod.browse = TRUE; - #endif - continue; -@@ -2978,6 +2979,7 @@ - {"keepmarks", 3, FALSE}, - {"leftabove", 5, FALSE}, - {"lockmarks", 3, FALSE}, -+ {"noautocmd", 3, FALSE}, - {"rightbelow", 6, FALSE}, - {"sandbox", 3, FALSE}, - {"silent", 3, FALSE}, -@@ -3608,6 +3610,7 @@ - return set_context_in_autocmd(xp, arg, FALSE); - - case CMD_doautocmd: -+ case CMD_doautoall: - return set_context_in_autocmd(xp, arg, TRUE); - #endif - case CMD_set: -@@ -7485,7 +7488,8 @@ - /* ":new" or ":tabnew" without argument: edit an new empty buffer */ - setpcmark(); - (void)do_ecmd(0, NULL, NULL, eap, ECMD_ONE, -- ECMD_HIDE + (eap->forceit ? ECMD_FORCEIT : 0)); -+ ECMD_HIDE + (eap->forceit ? ECMD_FORCEIT : 0), -+ old_curwin == NULL ? curwin : NULL); - } - else if ((eap->cmdidx != CMD_split - #ifdef FEAT_VERTSPLIT -@@ -7522,7 +7526,7 @@ - #ifdef FEAT_LISTCMDS - + (eap->cmdidx == CMD_badd ? ECMD_ADDBUF : 0 ) - #endif -- ) == FAIL) -+ , old_curwin == NULL ? curwin : NULL) == FAIL) - { - /* Editing the file failed. If the window was split, close it. */ - #ifdef FEAT_WINDOWS -@@ -8749,8 +8753,8 @@ - else if (*dirnow != NUL - && (ssop_flags & SSOP_CURDIR) && globaldir != NULL) - { -- (void)mch_chdir((char *)globaldir); -- shorten_fnames(TRUE); -+ if (mch_chdir((char *)globaldir) == OK) -+ shorten_fnames(TRUE); - } - - failed |= (makeopens(fd, dirnow) == FAIL); -@@ -9506,24 +9510,50 @@ - break; - } - s = src + 1; -+ if (*s == '<') /* "#<99" uses v:oldfiles */ -+ ++s; - i = (int)getdigits(&s); - *usedlen = (int)(s - src); /* length of what we expand */ - -- buf = buflist_findnr(i); -- if (buf == NULL) -+ if (src[1] == '<') - { -- *errormsg = (char_u *)_("E194: No alternate file name to substitute for '#'"); -+ if (*usedlen < 2) -+ { -+ /* Should we give an error message for #<text? */ -+ *usedlen = 1; -+ return NULL; -+ } -+#ifdef FEAT_EVAL -+ result = list_find_str(get_vim_var_list(VV_OLDFILES), -+ (long)i); -+ if (result == NULL) -+ { -+ *errormsg = (char_u *)""; -+ return NULL; -+ } -+#else -+ *errormsg = (char_u *)_("E809: #< is not available without the +eval feature"); - return NULL; -+#endif - } -- if (lnump != NULL) -- *lnump = ECMD_LAST; -- if (buf->b_fname == NULL) -+ else - { -- result = (char_u *)""; -- valid = 0; /* Must have ":p:h" to be valid */ -+ buf = buflist_findnr(i); -+ if (buf == NULL) -+ { -+ *errormsg = (char_u *)_("E194: No alternate file name to substitute for '#'"); -+ return NULL; -+ } -+ if (lnump != NULL) -+ *lnump = ECMD_LAST; -+ if (buf->b_fname == NULL) -+ { -+ result = (char_u *)""; -+ valid = 0; /* Must have ":p:h" to be valid */ -+ } -+ else -+ result = buf->b_fname; - } -- else -- result = buf->b_fname; - break; - - #ifdef FEAT_SEARCHPATH -@@ -9541,6 +9571,15 @@ - #ifdef FEAT_AUTOCMD - case SPEC_AFILE: /* file name for autocommand */ - result = autocmd_fname; -+ if (result != NULL && !autocmd_fname_full) -+ { -+ /* Still need to turn the fname into a full path. It is -+ * postponed to avoid a delay when <afile> is not used. */ -+ autocmd_fname_full = TRUE; -+ result = FullName_save(autocmd_fname, FALSE); -+ vim_free(autocmd_fname); -+ autocmd_fname = result; -+ } - if (result == NULL) - { - *errormsg = (char_u *)_("E495: no autocommand file name to substitute for "<afile>""); -@@ -10689,7 +10728,8 @@ - p_viminfo = (char_u *)"'100"; - if (eap->cmdidx == CMD_rviminfo) - { -- if (read_viminfo(eap->arg, TRUE, TRUE, eap->forceit) == FAIL) -+ if (read_viminfo(eap->arg, VIF_WANT_INFO | VIF_WANT_MARKS -+ | (eap->forceit ? VIF_FORCEIT : 0)) == FAIL) - EMSG(_("E195: Cannot open viminfo file for reading")); - } - else -diff -Naur vim72.orig/src/ex_getln.c vim72/src/ex_getln.c ---- vim72.orig/src/ex_getln.c 2008-08-08 10:31:33.000000000 +0100 -+++ vim72/src/ex_getln.c 2008-12-06 11:37:50.000000000 +0000 -@@ -31,6 +31,8 @@ - int cmdattr; /* attributes for prompt */ - int overstrike; /* Typing mode on the command line. Shared by - getcmdline() and put_on_cmdline(). */ -+ expand_T *xpc; /* struct being used for expansion, xp_pattern -+ may point into cmdbuff */ - int xp_context; /* type of expansion */ - # ifdef FEAT_EVAL - char_u *xp_arg; /* user-defined expansion arg */ -@@ -38,7 +40,11 @@ - # endif - }; - --static struct cmdline_info ccline; /* current cmdline_info */ -+/* The current cmdline_info. It is initialized in getcmdline() and after that -+ * used by other functions. When invoking getcmdline() recursively it needs -+ * to be saved with save_cmdline() and restored with restore_cmdline(). -+ * TODO: make it local to getcmdline() and pass it around. */ -+static struct cmdline_info ccline; - - static int cmd_showtail; /* Only show path tail in lists ? */ - -@@ -238,6 +244,7 @@ - } - - ExpandInit(&xpc); -+ ccline.xpc = &xpc; - - #ifdef FEAT_RIGHTLEFT - if (curwin->w_p_rl && *curwin->w_p_rlc == 's' -@@ -408,9 +415,10 @@ - #endif - - /* -- * <S-Tab> works like CTRL-P (unless 'wc' is <S-Tab>). -+ * When there are matching completions to select <S-Tab> works like -+ * CTRL-P (unless 'wc' is <S-Tab>). - */ -- if (c != p_wc && c == K_S_TAB && xpc.xp_numfiles != -1) -+ if (c != p_wc && c == K_S_TAB && xpc.xp_numfiles > 0) - c = Ctrl_P; - - #ifdef FEAT_WILDMENU -@@ -1513,6 +1521,7 @@ - int old_firstc; - - vim_free(ccline.cmdbuff); -+ xpc.xp_context = EXPAND_NOTHING; - if (hiscnt == hislen) - p = lookfor; /* back to the old one */ - else -@@ -1839,6 +1848,7 @@ - #endif - - ExpandCleanup(&xpc); -+ ccline.xpc = NULL; - - #ifdef FEAT_SEARCH_EXTRA - if (did_incsearch) -@@ -2508,6 +2518,20 @@ - } - mch_memmove(ccline.cmdbuff, p, (size_t)ccline.cmdlen + 1); - vim_free(p); -+ -+ if (ccline.xpc != NULL -+ && ccline.xpc->xp_pattern != NULL -+ && ccline.xpc->xp_context != EXPAND_NOTHING -+ && ccline.xpc->xp_context != EXPAND_UNSUCCESSFUL) -+ { -+ int i = (int)(ccline.xpc->xp_pattern - p); -+ -+ /* If xp_pattern points inside the old cmdbuff it needs to be adjusted -+ * to point into the newly allocated memory. */ -+ if (i >= 0 && i <= ccline.cmdlen) -+ ccline.xpc->xp_pattern = ccline.cmdbuff + i; -+ } -+ - return OK; - } - -@@ -2875,6 +2899,7 @@ - prev_ccline = ccline; - ccline.cmdbuff = NULL; - ccline.cmdprompt = NULL; -+ ccline.xpc = NULL; - } - - /* -@@ -3582,6 +3607,7 @@ - ExpandInit(xp) - expand_T *xp; - { -+ xp->xp_pattern = NULL; - xp->xp_backslash = XP_BS_NONE; - #ifndef BACKSLASH_IN_FILENAME - xp->xp_shell = FALSE; -@@ -4871,7 +4897,7 @@ - if (s == NULL) - return FAIL; - sprintf((char *)s, "%s/%s*.vim", dirname, pat); -- all = globpath(p_rtp, s); -+ all = globpath(p_rtp, s, 0); - vim_free(s); - if (all == NULL) - return FAIL; -@@ -4912,9 +4938,10 @@ - * newlines. Returns NULL for an error or no matches. - */ - char_u * --globpath(path, file) -+globpath(path, file, expand_options) - char_u *path; - char_u *file; -+ int expand_options; - { - expand_T xpc; - char_u *buf; -@@ -4943,10 +4970,10 @@ - { - add_pathsep(buf); - STRCAT(buf, file); -- if (ExpandFromContext(&xpc, buf, &num_p, &p, WILD_SILENT) != FAIL -- && num_p > 0) -+ if (ExpandFromContext(&xpc, buf, &num_p, &p, -+ WILD_SILENT|expand_options) != FAIL && num_p > 0) - { -- ExpandEscape(&xpc, buf, num_p, p, WILD_SILENT); -+ ExpandEscape(&xpc, buf, num_p, p, WILD_SILENT|expand_options); - for (len = 0, i = 0; i < num_p; ++i) - len += (int)STRLEN(p[i]) + 1; - -@@ -6025,7 +6052,7 @@ - cmdwin_type = '-'; - - /* Create the command-line buffer empty. */ -- (void)do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, ECMD_HIDE); -+ (void)do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, ECMD_HIDE, NULL); - (void)setfname(curbuf, (char_u *)"[Command Line]", NULL, TRUE); - set_option_value((char_u *)"bt", 0L, (char_u *)"nofile", OPT_LOCAL); - set_option_value((char_u *)"swf", 0L, NULL, OPT_LOCAL); -diff -Naur vim72.orig/src/feature.h vim72/src/feature.h ---- vim72.orig/src/feature.h 2008-08-06 12:00:39.000000000 +0100 -+++ vim72/src/feature.h 2008-12-06 11:37:49.000000000 +0000 -@@ -767,9 +767,13 @@ - - /* - * +browse ":browse" command. -+ * or just the ":browse" command modifier - */ --#if defined(FEAT_NORMAL) && (defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MAC)) --# define FEAT_BROWSE -+#if defined(FEAT_NORMAL) -+# define FEAT_BROWSE_CMD -+# if defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MAC) -+# define FEAT_BROWSE -+# endif - #endif - - /* -diff -Naur vim72.orig/src/fileio.c vim72/src/fileio.c ---- vim72.orig/src/fileio.c 2008-08-06 12:01:03.000000000 +0100 -+++ vim72/src/fileio.c 2008-12-06 11:37:50.000000000 +0000 -@@ -932,7 +932,10 @@ - else - { - if (eap != NULL && eap->force_ff != 0) -+ { - fileformat = get_fileformat_force(curbuf, eap); -+ try_unix = try_dos = try_mac = FALSE; -+ } - else if (curbuf->b_p_bin) - fileformat = EOL_UNIX; /* binary: use Unix format */ - else if (*p_ffs == NUL) -@@ -2211,7 +2214,7 @@ - { - /* Use stderr for stdin, makes shell commands work. */ - close(0); -- dup(2); -+ ignored = dup(2); - } - #endif - -@@ -2341,11 +2344,6 @@ - STRCAT(IObuff, _("[CR missing]")); - c = TRUE; - } -- if (ff_error == EOL_MAC) -- { -- STRCAT(IObuff, _("[NL found]")); -- c = TRUE; -- } - if (split) - { - STRCAT(IObuff, _("[long lines split]")); -@@ -2711,7 +2709,7 @@ - { - if (!curbuf->b_marks_read && get_viminfo_parameter(''') > 0 - && curbuf->b_ffname != NULL) -- read_viminfo(NULL, FALSE, TRUE, FALSE); -+ read_viminfo(NULL, VIF_WANT_MARKS); - - /* Always set b_marks_read; needed when 'viminfo' is changed to include - * the ' parameter after opening a buffer. */ -@@ -3451,7 +3449,7 @@ - { - # ifdef UNIX - # ifdef HAVE_FCHOWN -- fchown(fd, st_old.st_uid, st_old.st_gid); -+ ignored = fchown(fd, st_old.st_uid, st_old.st_gid); - # endif - if (mch_stat((char *)IObuff, &st) < 0 - || st.st_uid != st_old.st_uid -@@ -4367,7 +4365,7 @@ - || st.st_uid != st_old.st_uid - || st.st_gid != st_old.st_gid) - { -- fchown(fd, st_old.st_uid, st_old.st_gid); -+ ignored = fchown(fd, st_old.st_uid, st_old.st_gid); - if (perm >= 0) /* set permission again, may have changed */ - (void)mch_setperm(wfname, perm); - } -@@ -5550,9 +5548,10 @@ - name = "ucs-4le"; /* FF FE 00 00 */ - len = 4; - } -- else if (flags == FIO_ALL || flags == (FIO_UCS2 | FIO_ENDIAN_L)) -+ else if (flags == (FIO_UCS2 | FIO_ENDIAN_L)) - name = "ucs-2le"; /* FF FE */ -- else if (flags == (FIO_UTF16 | FIO_ENDIAN_L)) -+ else if (flags == FIO_ALL || flags == (FIO_UTF16 | FIO_ENDIAN_L)) -+ /* utf-16le is preferred, it also works for ucs-2le text */ - name = "utf-16le"; /* FF FE */ - } - else if (p[0] == 0xfe && p[1] == 0xff -@@ -6031,9 +6030,9 @@ - { - tbuf[FGETS_SIZE - 2] = NUL; - #ifdef USE_CR -- fgets_cr((char *)tbuf, FGETS_SIZE, fp); -+ ignoredp = fgets_cr((char *)tbuf, FGETS_SIZE, fp); - #else -- fgets((char *)tbuf, FGETS_SIZE, fp); -+ ignoredp = fgets((char *)tbuf, FGETS_SIZE, fp); - #endif - } while (tbuf[FGETS_SIZE - 2] != NUL && tbuf[FGETS_SIZE - 2] != '\n'); - } -@@ -8523,6 +8522,7 @@ - char_u *save_sourcing_name; - linenr_T save_sourcing_lnum; - char_u *save_autocmd_fname; -+ int save_autocmd_fname_full; - int save_autocmd_bufnr; - char_u *save_autocmd_match; - int save_autocmd_busy; -@@ -8601,6 +8601,7 @@ - * Save the autocmd_* variables and info about the current buffer. - */ - save_autocmd_fname = autocmd_fname; -+ save_autocmd_fname_full = autocmd_fname_full; - save_autocmd_bufnr = autocmd_bufnr; - save_autocmd_match = autocmd_match; - save_autocmd_busy = autocmd_busy; -@@ -8618,14 +8619,15 @@ - if (fname != NULL && *fname != NUL) - autocmd_fname = fname; - else if (buf != NULL) -- autocmd_fname = buf->b_fname; -+ autocmd_fname = buf->b_ffname; - else - autocmd_fname = NULL; - } - else - autocmd_fname = fname_io; - if (autocmd_fname != NULL) -- autocmd_fname = FullName_save(autocmd_fname, FALSE); -+ autocmd_fname = vim_strsave(autocmd_fname); -+ autocmd_fname_full = FALSE; /* call FullName_save() later */ - - /* - * Set the buffer number to be used for <abuf>. -@@ -8810,6 +8812,7 @@ - sourcing_lnum = save_sourcing_lnum; - vim_free(autocmd_fname); - autocmd_fname = save_autocmd_fname; -+ autocmd_fname_full = save_autocmd_fname_full; - autocmd_bufnr = save_autocmd_bufnr; - autocmd_match = save_autocmd_match; - #ifdef FEAT_EVAL -@@ -8918,7 +8921,7 @@ - { - apc->curpat = NULL; - -- /* only use a pattern when it has not been removed, has commands and -+ /* Only use a pattern when it has not been removed, has commands and - * the group matches. For buffer-local autocommands only check the - * buffer number. */ - if (ap->pat != NULL && ap->cmds != NULL -@@ -9104,7 +9107,7 @@ - set_context_in_autocmd(xp, arg, doautocmd) - expand_T *xp; - char_u *arg; -- int doautocmd; /* TRUE for :doautocmd, FALSE for :autocmd */ -+ int doautocmd; /* TRUE for :doauto*, FALSE for :autocmd */ - { - char_u *p; - int group; -diff -Naur vim72.orig/src/fold.c vim72/src/fold.c ---- vim72.orig/src/fold.c 2008-08-06 12:01:12.000000000 +0100 -+++ vim72/src/fold.c 2008-12-06 11:37:50.000000000 +0000 -@@ -48,7 +48,7 @@ - static int foldFind __ARGS((garray_T *gap, linenr_T lnum, fold_T **fpp)); - static int foldLevelWin __ARGS((win_T *wp, linenr_T lnum)); - static void checkupdate __ARGS((win_T *wp)); --static void setFoldRepeat __ARGS((linenr_T lnum, long count, int open)); -+static void setFoldRepeat __ARGS((linenr_T lnum, long count, int do_open)); - static linenr_T setManualFold __ARGS((linenr_T lnum, int opening, int recurse, int *donep)); - static linenr_T setManualFoldWin __ARGS((win_T *wp, linenr_T lnum, int opening, int recurse, int *donep)); - static void foldOpenNested __ARGS((fold_T *fpr)); -@@ -1241,10 +1241,10 @@ - * Repeat "count" times. - */ - static void --setFoldRepeat(lnum, count, open) -+setFoldRepeat(lnum, count, do_open) - linenr_T lnum; - long count; -- int open; -+ int do_open; - { - int done; - long n; -@@ -1252,7 +1252,7 @@ - for (n = 0; n < count; ++n) - { - done = DONE_NOTHING; -- (void)setManualFold(lnum, open, FALSE, &done); -+ (void)setManualFold(lnum, do_open, FALSE, &done); - if (!(done & DONE_ACTION)) - { - /* Only give an error message when no fold could be opened. */ -diff -Naur vim72.orig/src/getchar.c vim72/src/getchar.c ---- vim72.orig/src/getchar.c 2008-07-22 17:57:48.000000000 +0100 -+++ vim72/src/getchar.c 2008-12-06 11:37:50.000000000 +0000 -@@ -4702,7 +4702,7 @@ - return FAIL; - if (mp->m_noremap != REMAP_YES && fprintf(fd, "nore") < 0) - return FAIL; -- if (fprintf(fd, cmd) < 0) -+ if (fputs(cmd, fd) < 0) - return FAIL; - if (buf != NULL && fputs(" <buffer>", fd) < 0) - return FAIL; -@@ -4801,7 +4801,7 @@ - } - if (IS_SPECIAL(c) || modifiers) /* special key */ - { -- if (fprintf(fd, (char *)get_special_key_name(c, modifiers)) < 0) -+ if (fputs((char *)get_special_key_name(c, modifiers), fd) < 0) - return FAIL; - continue; - } -diff -Naur vim72.orig/src/globals.h vim72/src/globals.h ---- vim72.orig/src/globals.h 2008-07-26 12:53:29.000000000 +0100 -+++ vim72/src/globals.h 2008-12-06 11:37:50.000000000 +0000 -@@ -1022,6 +1022,7 @@ - #endif - #ifdef FEAT_AUTOCMD - EXTERN char_u *autocmd_fname INIT(= NULL); /* fname for <afile> on cmdline */ -+EXTERN int autocmd_fname_full; /* autocmd_fname is full path */ - EXTERN int autocmd_bufnr INIT(= 0); /* fnum for <abuf> on cmdline */ - EXTERN char_u *autocmd_match INIT(= NULL); /* name for <amatch> on cmdline */ - EXTERN int did_cursorhold INIT(= FALSE); /* set when CursorHold t'gerd */ -@@ -1548,6 +1549,14 @@ - EXTERN time_t starttime; - - /* -+ * Some compilers warn for not using a return value, but in some situations we -+ * can't do anything useful with the value. Assign to this variable to avoid -+ * the warning. -+ */ -+EXTERN int ignored; -+EXTERN char *ignoredp; -+ -+/* - * Optional Farsi support. Include it here, so EXTERN and INIT are defined. - */ - #ifdef FEAT_FKMAP -diff -Naur vim72.orig/src/gui_at_sb.c vim72/src/gui_at_sb.c ---- vim72.orig/src/gui_at_sb.c 2004-06-07 15:32:25.000000000 +0100 -+++ vim72/src/gui_at_sb.c 2008-12-06 11:37:50.000000000 +0000 -@@ -1078,6 +1078,12 @@ - Cardinal *num_params; /* unused */ - { - ScrollbarWidget sbw = (ScrollbarWidget)w; -+ /* Use a union to avoid a warning for the weird conversion from float to -+ * XtPointer. Comes from Xaw/Scrollbar.c. */ -+ union { -+ XtPointer xtp; -+ float xtf; -+ } xtpf; - - if (LookAhead(w, event)) - return; -@@ -1085,7 +1091,8 @@ - /* thumbProc is not pretty, but is necessary for backwards - compatibility on those architectures for which it work{s,ed}; - the intent is to pass a (truncated) float by value. */ -- XtCallCallbacks(w, XtNthumbProc, *(XtPointer*)&sbw->scrollbar.top); -+ xtpf.xtf = sbw->scrollbar.top; -+ XtCallCallbacks(w, XtNthumbProc, xtpf.xtp); - XtCallCallbacks(w, XtNjumpProc, (XtPointer)&sbw->scrollbar.top); - } - -diff -Naur vim72.orig/src/gui.c vim72/src/gui.c ---- vim72.orig/src/gui.c 2008-07-27 20:32:14.000000000 +0100 -+++ vim72/src/gui.c 2008-12-06 11:37:50.000000000 +0000 -@@ -139,7 +139,7 @@ - /* The read returns when the child closes the pipe (or when - * the child dies for some reason). */ - close(pipefd[1]); -- (void)read(pipefd[0], &dummy, (size_t)1); -+ ignored = (int)read(pipefd[0], &dummy, (size_t)1); - close(pipefd[0]); - } - -@@ -3241,7 +3241,7 @@ - i = Rows; - gui_update_tabline(); - Rows = i; -- need_set_size = RESIZE_VERT; -+ need_set_size |= RESIZE_VERT; - if (using_tabline) - fix_size = TRUE; - if (!gui_use_tabline()) -@@ -3275,9 +3275,9 @@ - if (gui.which_scrollbars[i] != prev_which_scrollbars[i]) - { - if (i == SBAR_BOTTOM) -- need_set_size = RESIZE_VERT; -+ need_set_size |= RESIZE_VERT; - else -- need_set_size = RESIZE_HOR; -+ need_set_size |= RESIZE_HOR; - if (gui.which_scrollbars[i]) - fix_size = TRUE; - } -@@ -3297,7 +3297,7 @@ - gui_mch_enable_menu(gui.menu_is_active); - Rows = i; - prev_menu_is_active = gui.menu_is_active; -- need_set_size = RESIZE_VERT; -+ need_set_size |= RESIZE_VERT; - if (gui.menu_is_active) - fix_size = TRUE; - } -@@ -3308,7 +3308,7 @@ - { - gui_mch_show_toolbar(using_toolbar); - prev_toolbar = using_toolbar; -- need_set_size = RESIZE_VERT; -+ need_set_size |= RESIZE_VERT; - if (using_toolbar) - fix_size = TRUE; - } -@@ -3318,7 +3318,7 @@ - { - gui_mch_enable_footer(using_footer); - prev_footer = using_footer; -- need_set_size = RESIZE_VERT; -+ need_set_size |= RESIZE_VERT; - if (using_footer) - fix_size = TRUE; - } -@@ -3330,10 +3330,11 @@ - prev_tearoff = using_tearoff; - } - #endif -- if (need_set_size) -+ if (need_set_size != 0) - { - #ifdef FEAT_GUI_GTK -- long c = Columns; -+ long prev_Columns = Columns; -+ long prev_Rows = Rows; - #endif - /* Adjust the size of the window to make the text area keep the - * same size and to avoid that part of our window is off-screen -@@ -3349,11 +3350,14 @@ - * If you remove this, please test this command for resizing - * effects (with optional left scrollbar): ":vsp|q|vsp|q|vsp|q". - * Don't do this while starting up though. -- * And don't change Rows, it may have be reduced intentionally -- * when adding menu/toolbar/tabline. */ -- if (!gui.starting) -+ * Don't change Rows when adding menu/toolbar/tabline. -+ * Don't change Columns when adding vertical toolbar. */ -+ if (!gui.starting && need_set_size != (RESIZE_VERT | RESIZE_HOR)) - (void)char_avail(); -- Columns = c; -+ if ((need_set_size & RESIZE_VERT) == 0) -+ Rows = prev_Rows; -+ if ((need_set_size & RESIZE_HOR) == 0) -+ Columns = prev_Columns; - #endif - } - #ifdef FEAT_WINDOWS -diff -Naur vim72.orig/src/gui_gtk_x11.c vim72/src/gui_gtk_x11.c ---- vim72.orig/src/gui_gtk_x11.c 2008-07-04 11:46:24.000000000 +0100 -+++ vim72/src/gui_gtk_x11.c 2008-12-06 11:37:50.000000000 +0000 -@@ -4070,14 +4070,14 @@ - - if (mask & (XValue | YValue)) - { -- int w, h; -- gui_mch_get_screen_dimensions(&w, &h); -- h += p_ghr + get_menu_tool_height(); -- w += get_menu_tool_width(); -+ int ww, hh; -+ gui_mch_get_screen_dimensions(&ww, &hh); -+ hh += p_ghr + get_menu_tool_height(); -+ ww += get_menu_tool_width(); - if (mask & XNegative) -- x += w - pixel_width; -+ x += ww - pixel_width; - if (mask & YNegative) -- y += h - pixel_height; -+ y += hh - pixel_height; - #ifdef HAVE_GTK2 - gtk_window_move(GTK_WINDOW(gui.mainwin), x, y); - #else -diff -Naur vim72.orig/src/gui_x11.c vim72/src/gui_x11.c ---- vim72.orig/src/gui_x11.c 2008-06-08 16:13:45.000000000 +0100 -+++ vim72/src/gui_x11.c 2008-12-06 11:37:49.000000000 +0000 -@@ -2450,7 +2450,7 @@ - *colorPtr = colortable[closest]; - } - -- free(colortable); -+ vim_free(colortable); - return OK; - } - -diff -Naur vim72.orig/src/gui_xmdlg.c vim72/src/gui_xmdlg.c ---- vim72.orig/src/gui_xmdlg.c 2008-06-21 17:05:32.000000000 +0100 -+++ vim72/src/gui_xmdlg.c 2008-12-06 11:37:50.000000000 +0000 -@@ -369,10 +369,10 @@ - char buf[TEMP_BUF_SIZE]; - XmString items[MAX_ENTRIES_IN_LIST]; - int i; -- int index; -+ int idx; - -- for (index = (int)ENCODING; index < (int)NONE; ++index) -- count[index] = 0; -+ for (idx = (int)ENCODING; idx < (int)NONE; ++idx) -+ count[idx] = 0; - - /* First we insert the wild char into every single list. */ - if (fix != ENCODING) -@@ -503,14 +503,14 @@ - /* - * Now loop trough the remaining lists and set them up. - */ -- for (index = (int)NAME; index < (int)NONE; ++index) -+ for (idx = (int)NAME; idx < (int)NONE; ++idx) - { - Widget w; - -- if (fix == (enum ListSpecifier)index) -+ if (fix == (enum ListSpecifier)idx) - continue; - -- switch ((enum ListSpecifier)index) -+ switch ((enum ListSpecifier)idx) - { - case NAME: - w = data->list[NAME]; -@@ -525,21 +525,21 @@ - w = (Widget)0; /* for lint */ - } - -- for (i = 0; i < count[index]; ++i) -+ for (i = 0; i < count[idx]; ++i) - { -- items[i] = XmStringCreateLocalized(list[index][i]); -- XtFree(list[index][i]); -+ items[i] = XmStringCreateLocalized(list[idx][i]); -+ XtFree(list[idx][i]); - } - XmListDeleteAllItems(w); -- XmListAddItems(w, items, count[index], 1); -- if (data->sel[index]) -+ XmListAddItems(w, items, count[idx], 1); -+ if (data->sel[idx]) - { - XmStringFree(items[0]); -- items[0] = XmStringCreateLocalized(data->sel[index]); -+ items[0] = XmStringCreateLocalized(data->sel[idx]); - XmListSelectItem(w, items[0], False); - XmListSetBottomItem(w, items[0]); - } -- for (i = 0; i < count[index]; ++i) -+ for (i = 0; i < count[idx]; ++i) - XmStringFree(items[i]); - } - } -@@ -695,14 +695,14 @@ - int n; - XmString str; - Arg args[4]; -- char *msg = _("no specific match"); -+ char *nomatch_msg = _("no specific match"); - - n = 0; -- str = XmStringCreateLocalized(msg); -+ str = XmStringCreateLocalized(nomatch_msg); - XtSetArg(args[n], XmNlabelString, str); ++n; - XtSetValues(data->sample, args, n); - apply_fontlist(data->sample); -- XmTextSetString(data->name, msg); -+ XmTextSetString(data->name, nomatch_msg); - XmStringFree(str); - - return False; -@@ -886,21 +886,21 @@ - { - int i; - int max; -- int index = 0; -+ int idx = 0; - int size; -- char str[128]; -+ char buf[128]; - - for (i = 0, max = 0; i < data->num; i++) - { -- get_part(fn(data, i), 7, str); -- size = atoi(str); -+ get_part(fn(data, i), 7, buf); -+ size = atoi(buf); - if ((size > max) && (size < MAX_DISPLAY_SIZE)) - { -- index = i; -+ idx = i; - max = size; - } - } -- strcpy(big_font, fn(data, index)); -+ strcpy(big_font, fn(data, idx)); - } - data->old = XLoadQueryFont(XtDisplay(parent), big_font); - data->old_list = gui_motif_create_fontlist(data->old); -@@ -1217,28 +1217,28 @@ - - if (i != 0) - { -- char name[TEMP_BUF_SIZE]; -- char style[TEMP_BUF_SIZE]; -- char size[TEMP_BUF_SIZE]; -- char encoding[TEMP_BUF_SIZE]; -+ char namebuf[TEMP_BUF_SIZE]; -+ char stylebuf[TEMP_BUF_SIZE]; -+ char sizebuf[TEMP_BUF_SIZE]; -+ char encodingbuf[TEMP_BUF_SIZE]; - char *found; - - found = names[0]; - -- name_part(found, name); -- style_part(found, style); -- size_part(found, size, data->in_pixels); -- encoding_part(found, encoding); -- -- if (strlen(name) > 0 -- && strlen(style) > 0 -- && strlen(size) > 0 -- && strlen(encoding) > 0) -+ name_part(found, namebuf); -+ style_part(found, stylebuf); -+ size_part(found, sizebuf, data->in_pixels); -+ encoding_part(found, encodingbuf); -+ -+ if (strlen(namebuf) > 0 -+ && strlen(stylebuf) > 0 -+ && strlen(sizebuf) > 0 -+ && strlen(encodingbuf) > 0) - { -- data->sel[NAME] = XtNewString(name); -- data->sel[STYLE] = XtNewString(style); -- data->sel[SIZE] = XtNewString(size); -- data->sel[ENCODING] = XtNewString(encoding); -+ data->sel[NAME] = XtNewString(namebuf); -+ data->sel[STYLE] = XtNewString(stylebuf); -+ data->sel[SIZE] = XtNewString(sizebuf); -+ data->sel[ENCODING] = XtNewString(encodingbuf); - data->font_name = XtNewString(names[0]); - display_sample(data); - XmTextSetString(data->name, data->font_name); -diff -Naur vim72.orig/src/gui_xmebw.c vim72/src/gui_xmebw.c ---- vim72.orig/src/gui_xmebw.c 2007-09-06 11:57:51.000000000 +0100 -+++ vim72/src/gui_xmebw.c 2008-12-06 11:37:50.000000000 +0000 -@@ -1256,7 +1256,7 @@ - } - else - { -- int adjust = 0; -+ adjust = 0; - - #if !defined(LESSTIF_VERSION) && (XmVersion > 1002) - /* -@@ -1268,12 +1268,11 @@ - { - case XmEXTERNAL_HIGHLIGHT: - adjust = (eb->primitive.highlight_thickness - -- (eb->pushbutton.default_button_shadow_thickness ? -- Xm3D_ENHANCE_PIXEL : 0)); -+ (eb->pushbutton.default_button_shadow_thickness -+ ? Xm3D_ENHANCE_PIXEL : 0)); - break; - - case XmINTERNAL_HIGHLIGHT: -- adjust = 0; - break; - - default: -diff -Naur vim72.orig/src/if_cscope.c vim72/src/if_cscope.c ---- vim72.orig/src/if_cscope.c 2008-06-24 17:32:34.000000000 +0100 -+++ vim72/src/if_cscope.c 2008-12-06 11:37:48.000000000 +0000 -@@ -74,7 +74,7 @@ - { "add", cs_add, - N_("Add a new database"), "add file|dir [pre-path] [flags]", 0 }, - { "find", cs_find, -- N_("Query for a pattern"), FIND_USAGE, 1 }, -+ N_("Query for a pattern"), "find c|d|e|f|g|i|s|t name", 1 }, - { "help", cs_help, - N_("Show this message"), "help", 0 }, - { "kill", cs_kill, -@@ -1180,7 +1180,16 @@ - (void)smsg((char_u *)_("%-5s: %-30s (Usage: %s)"), - cmdp->name, _(cmdp->help), cmdp->usage); - if (strcmp(cmdp->name, "find") == 0) -- MSG_PUTS(FIND_HELP); -+ MSG_PUTS(_("\n" -+ " c: Find functions calling this function\n" -+ " d: Find functions called by this function\n" -+ " e: Find this egrep pattern\n" -+ " f: Find this file\n" -+ " g: Find this definition\n" -+ " i: Find files #including this file\n" -+ " s: Find this C symbol\n" -+ " t: Find assignments to\n")); -+ - cmdp++; - } - -diff -Naur vim72.orig/src/if_cscope.h vim72/src/if_cscope.h ---- vim72.orig/src/if_cscope.h 2007-09-02 15:51:08.000000000 +0100 -+++ vim72/src/if_cscope.h 2008-12-06 11:37:48.000000000 +0000 -@@ -42,17 +42,6 @@ - * f 7name Find this file - * i 8name Find files #including this file - */ --#define FIND_USAGE "find c|d|e|f|g|i|s|t name" --#define FIND_HELP "\n\ -- c: Find functions calling this function\n\ -- d: Find functions called by this function\n\ -- e: Find this egrep pattern\n\ -- f: Find this file\n\ -- g: Find this definition\n\ -- i: Find files #including this file\n\ -- s: Find this C symbol\n\ -- t: Find assignments to\n" -- - - typedef struct { - char * name; -diff -Naur vim72.orig/src/if_perl.xs vim72/src/if_perl.xs ---- vim72.orig/src/if_perl.xs 2008-07-17 21:55:09.000000000 +0100 -+++ vim72/src/if_perl.xs 2008-12-06 11:37:50.000000000 +0000 -@@ -136,6 +136,9 @@ - # define Perl_newXS_flags dll_Perl_newXS_flags - #endif - # define Perl_sv_free dll_Perl_sv_free -+# if (PERL_REVISION == 5) && (PERL_VERSION >= 10) -+# define Perl_sv_free2 dll_Perl_sv_free2 -+# endif - # define Perl_sv_isa dll_Perl_sv_isa - # define Perl_sv_magic dll_Perl_sv_magic - # define Perl_sv_setiv dll_Perl_sv_setiv -@@ -163,7 +166,7 @@ - # define Perl_Isv_yes_ptr dll_Perl_Isv_yes_ptr - # define boot_DynaLoader dll_boot_DynaLoader - --# define Perl_sys_init3 dll_Perl_sys_init3 -+# define Perl_sys_init dll_Perl_sys_init - # define Perl_sys_term dll_Perl_sys_term - # define Perl_ISv_ptr dll_Perl_ISv_ptr - # define Perl_Istack_max_ptr dll_Perl_Istack_max_ptr -@@ -268,7 +271,8 @@ - static void (*boot_DynaLoader)_((pTHX_ CV*)); - - #if (PERL_REVISION == 5) && (PERL_VERSION >= 10) --static void (*Perl_sys_init3)(int* argc, char*** argv, char*** env); -+static void (*Perl_sv_free2)(pTHX_ SV*); -+static void (*Perl_sys_init)(int* argc, char*** argv); - static void (*Perl_sys_term)(void); - static SV** (*Perl_ISv_ptr)(register PerlInterpreter*); - static SV*** (*Perl_Istack_max_ptr)(register PerlInterpreter*); -@@ -367,7 +371,8 @@ - {"Perl_TXpv_ptr", (PERL_PROC*)&Perl_TXpv_ptr}, - {"Perl_Tna_ptr", (PERL_PROC*)&Perl_Tna_ptr}, - #else -- {"Perl_sys_init3", (PERL_PROC*)&Perl_sys_init3}, -+ {"Perl_sv_free2", (PERL_PROC*)&Perl_sv_free2}, -+ {"Perl_sys_init", (PERL_PROC*)&Perl_sys_init}, - {"Perl_sys_term", (PERL_PROC*)&Perl_sys_term}, - {"Perl_ISv_ptr", (PERL_PROC*)&Perl_ISv_ptr}, - {"Perl_Istack_sp_ptr", (PERL_PROC*)&Perl_Istack_sp_ptr}, -@@ -455,7 +460,7 @@ - static char *argv[] = { "", "-e", "" }; - - #if (PERL_REVISION == 5) && (PERL_VERSION >= 10) -- Perl_sys_init3(&argc, (char***)&argv, NULL); -+ Perl_sys_init(&argc, (char***)&argv); - #endif - perl_interp = perl_alloc(); - perl_construct(perl_interp); -diff -Naur vim72.orig/src/if_python.c vim72/src/if_python.c ---- vim72.orig/src/if_python.c 2008-07-17 22:09:32.000000000 +0100 -+++ vim72/src/if_python.c 2008-12-06 11:37:50.000000000 +0000 -@@ -531,6 +531,12 @@ - if (PythonMod_Init()) - goto fail; - -+ /* Remove the element from sys.path that was added because of our -+ * argv[0] value in PythonMod_Init(). Previously we used an empty -+ * string, but dependinding on the OS we then get an empty entry or -+ * the current directory in sys.path. */ -+ PyRun_SimpleString("import sys; sys.path = filter(lambda x: x != '/must>not&exist', sys.path)"); -+ - /* the first python thread is vim's, release the lock */ - Python_SaveThread(); - -@@ -2345,7 +2351,8 @@ - { - PyObject *mod; - PyObject *dict; -- static char *(argv[2]) = {"", NULL}; -+ /* The special value is removed from sys.path in Python_Init(). */ -+ static char *(argv[2]) = {"/must>not&exist/foo", NULL}; - - /* Fixups... */ - BufferType.ob_type = &PyType_Type; -diff -Naur vim72.orig/src/if_xcmdsrv.c vim72/src/if_xcmdsrv.c ---- vim72.orig/src/if_xcmdsrv.c 2008-07-18 14:05:03.000000000 +0100 -+++ vim72/src/if_xcmdsrv.c 2008-12-06 11:37:49.000000000 +0000 -@@ -736,7 +736,7 @@ - + serverReply.ga_len; - e.id = w; - ga_init2(&e.strings, 1, 100); -- memcpy(p, &e, sizeof(e)); -+ mch_memmove(p, &e, sizeof(e)); - serverReply.ga_len++; - } - } -@@ -1018,7 +1018,7 @@ - p++; - count = numItems - (p - regProp); - if (count > 0) -- memcpy(entry, p, count); -+ mch_memmove(entry, p, count); - XChangeProperty(dpy, RootWindow(dpy, 0), registryProperty, XA_STRING, - 8, PropModeReplace, regProp, - (int)(numItems - (p - entry))); -@@ -1072,7 +1072,7 @@ - p++; - lastHalf = numItems - (p - regProp); - if (lastHalf > 0) -- memcpy(entry, p, lastHalf); -+ mch_memmove(entry, p, lastHalf); - numItems = (entry - regProp) + lastHalf; - p = entry; - continue; -diff -Naur vim72.orig/src/main.c vim72/src/main.c ---- vim72.orig/src/main.c 2008-07-24 09:40:56.000000000 +0100 -+++ vim72/src/main.c 2008-12-06 11:37:50.000000000 +0000 -@@ -645,11 +645,12 @@ - - #ifdef FEAT_VIMINFO - /* -- * Read in registers, history etc, but not marks, from the viminfo file -+ * Read in registers, history etc, but not marks, from the viminfo file. -+ * This is where v:oldfiles gets filled. - */ - if (*p_viminfo != NUL) - { -- read_viminfo(NULL, TRUE, FALSE, FALSE); -+ read_viminfo(NULL, VIF_WANT_INFO | VIF_GET_OLDFILES); - TIME_MSG("reading viminfo"); - } - #endif -@@ -1457,7 +1458,8 @@ - ++initstr; - } - -- if (TOLOWER_ASC(initstr[0]) == 'g' || initstr[0] == 'k') -+ /* "gvim" starts the GUI. Also accept "Gvim" for MS-Windows. */ -+ if (TOLOWER_ASC(initstr[0]) == 'g') - { - main_start_gui(); - #ifdef FEAT_GUI -@@ -1508,7 +1510,8 @@ - early_arg_scan(parmp) - mparm_T *parmp; - { --#if defined(FEAT_XCLIPBOARD) || defined(FEAT_CLIENTSERVER) -+#if defined(FEAT_XCLIPBOARD) || defined(FEAT_CLIENTSERVER) \ -+ || !defined(FEAT_NETBEANS_INTG) - int argc = parmp->argc; - char **argv = parmp->argv; - int i; -@@ -1580,6 +1583,14 @@ - else if (STRICMP(argv[i], "--echo-wid") == 0) - echo_wid_arg = TRUE; - # endif -+# ifndef FEAT_NETBEANS_INTG -+ else if (strncmp(argv[i], "-nb", (size_t)3) == 0) -+ { -+ mch_errmsg(_("'-nb' cannot be used: not enabled at compile time\n")); -+ mch_exit(2); -+ } -+# endif -+ - } - #endif - } -@@ -2361,7 +2372,7 @@ - * Is there any other system that cannot do this? - */ - close(0); -- dup(2); -+ ignored = dup(2); - #endif - } - -@@ -2586,7 +2597,7 @@ - # endif - (void)do_ecmd(0, arg_idx < GARGCOUNT - ? alist_name(&GARGLIST[arg_idx]) : NULL, -- NULL, NULL, ECMD_LASTL, ECMD_HIDE); -+ NULL, NULL, ECMD_LASTL, ECMD_HIDE, curwin); - # ifdef HAS_SWAP_EXISTS_ACTION - if (swap_exists_did_quit) - { -diff -Naur vim72.orig/src/mark.c vim72/src/mark.c ---- vim72.orig/src/mark.c 2008-08-08 23:06:49.000000000 +0100 -+++ vim72/src/mark.c 2008-12-06 11:37:49.000000000 +0000 -@@ -1627,15 +1627,17 @@ - - /* - * Handle marks in the viminfo file: -- * fp_out == NULL read marks for current buffer only -- * fp_out != NULL copy marks for buffers not in buffer list -+ * fp_out != NULL: copy marks for buffers not in buffer list -+ * fp_out == NULL && (flags & VIF_WANT_MARKS): read marks for curbuf only -+ * fp_out == NULL && (flags & VIF_GET_OLDFILES | VIF_FORCEIT): fill v:oldfiles - */ - void --copy_viminfo_marks(virp, fp_out, count, eof) -+copy_viminfo_marks(virp, fp_out, count, eof, flags) - vir_T *virp; - FILE *fp_out; - int count; - int eof; -+ int flags; - { - char_u *line = virp->vir_line; - buf_T *buf; -@@ -1647,10 +1649,23 @@ - char_u *p; - char_u *name_buf; - pos_T pos; -+#ifdef FEAT_EVAL -+ list_T *list = NULL; -+#endif - - if ((name_buf = alloc(LSIZE)) == NULL) - return; - *name_buf = NUL; -+ -+#ifdef FEAT_EVAL -+ if (fp_out == NULL && (flags & (VIF_GET_OLDFILES | VIF_FORCEIT))) -+ { -+ list = list_alloc(); -+ if (list != NULL) -+ set_vim_var_list(VV_OLDFILES, list); -+ } -+#endif -+ - num_marked_files = get_viminfo_parameter('''); - while (!eof && (count < num_marked_files || fp_out == NULL)) - { -@@ -1681,6 +1696,11 @@ - p++; - *p = NUL; - -+#ifdef FEAT_EVAL -+ if (list != NULL) -+ list_append_string(list, str, -1); -+#endif -+ - /* - * If fp_out == NULL, load marks for current buffer. - * If fp_out != NULL, copy marks for buffers not in buflist. -@@ -1688,7 +1708,7 @@ - load_marks = copy_marks_out = FALSE; - if (fp_out == NULL) - { -- if (curbuf->b_ffname != NULL) -+ if ((flags & VIF_WANT_MARKS) && curbuf->b_ffname != NULL) - { - if (*name_buf == NUL) /* only need to do this once */ - home_replace(NULL, curbuf->b_ffname, name_buf, LSIZE, TRUE); -diff -Naur vim72.orig/src/mbyte.c vim72/src/mbyte.c ---- vim72.orig/src/mbyte.c 2008-07-14 13:38:05.000000000 +0100 -+++ vim72/src/mbyte.c 2008-12-06 11:37:50.000000000 +0000 -@@ -717,7 +717,7 @@ - * where mblen() returns 0 for invalid character. - * Therefore, following condition includes 0. - */ -- (void)mblen(NULL, 0); /* First reset the state. */ -+ ignored = mblen(NULL, 0); /* First reset the state. */ - if (mblen(buf, (size_t)1) <= 0) - n = 2; - else -@@ -2540,7 +2540,6 @@ - return (int)(p - q); - } - --#if defined(FEAT_EVAL) || defined(PROTO) - /* - * Copy a character from "*fp" to "*tp" and advance the pointers. - */ -@@ -2555,7 +2554,6 @@ - *tp += l; - *fp += l; - } --#endif - - /* - * Return the offset from "p" to the first byte of a character. When "p" is -@@ -3133,7 +3131,7 @@ - else - s = p + 1; - } -- for (i = 0; s[i] != NUL && s + i < buf + sizeof(buf) - 1; ++i) -+ for (i = 0; s[i] != NUL && i < sizeof(buf) - 1; ++i) - { - if (s[i] == '_' || s[i] == '-') - buf[i] = '-'; -@@ -5280,7 +5278,7 @@ - - /*ARGSUSED*/ - static void --preedit_start_cbproc(XIC xic, XPointer client_data, XPointer call_data) -+preedit_start_cbproc(XIC thexic, XPointer client_data, XPointer call_data) - { - #ifdef XIM_DEBUG - xim_log("xim_decide_input_style()\n"); -@@ -5314,7 +5312,7 @@ - - /*ARGSUSED*/ - static void --preedit_draw_cbproc(XIC xic, XPointer client_data, XPointer call_data) -+preedit_draw_cbproc(XIC thexic, XPointer client_data, XPointer call_data) - { - XIMPreeditDrawCallbackStruct *draw_data; - XIMText *text; -@@ -5386,7 +5384,7 @@ - draw_feedback = (char *)alloc(draw_data->chg_first - + text->length); - else -- draw_feedback = realloc(draw_feedback, -+ draw_feedback = vim_realloc(draw_feedback, - draw_data->chg_first + text->length); - if (draw_feedback != NULL) - { -@@ -5455,7 +5453,7 @@ - - /*ARGSUSED*/ - static void --preedit_caret_cbproc(XIC xic, XPointer client_data, XPointer call_data) -+preedit_caret_cbproc(XIC thexic, XPointer client_data, XPointer call_data) - { - #ifdef XIM_DEBUG - xim_log("preedit_caret_cbproc()\n"); -@@ -5464,7 +5462,7 @@ - - /*ARGSUSED*/ - static void --preedit_done_cbproc(XIC xic, XPointer client_data, XPointer call_data) -+preedit_done_cbproc(XIC thexic, XPointer client_data, XPointer call_data) - { - #ifdef XIM_DEBUG - xim_log("preedit_done_cbproc()\n"); -@@ -6103,7 +6101,7 @@ - - /* 1. codepage/UTF-8 -> ucs-2. */ - if (vcp->vc_cpfrom == 0) -- tmp_len = utf8_to_ucs2(ptr, len, NULL, NULL); -+ tmp_len = utf8_to_utf16(ptr, len, NULL, NULL); - else - tmp_len = MultiByteToWideChar(vcp->vc_cpfrom, 0, - ptr, len, 0, 0); -@@ -6111,13 +6109,13 @@ - if (tmp == NULL) - break; - if (vcp->vc_cpfrom == 0) -- utf8_to_ucs2(ptr, len, tmp, unconvlenp); -+ utf8_to_utf16(ptr, len, tmp, unconvlenp); - else - MultiByteToWideChar(vcp->vc_cpfrom, 0, ptr, len, tmp, tmp_len); - - /* 2. ucs-2 -> codepage/UTF-8. */ - if (vcp->vc_cpto == 0) -- retlen = ucs2_to_utf8(tmp, tmp_len, NULL); -+ retlen = utf16_to_utf8(tmp, tmp_len, NULL); - else - retlen = WideCharToMultiByte(vcp->vc_cpto, 0, - tmp, tmp_len, 0, 0, 0, 0); -@@ -6125,7 +6123,7 @@ - if (retval != NULL) - { - if (vcp->vc_cpto == 0) -- ucs2_to_utf8(tmp, tmp_len, retval); -+ utf16_to_utf8(tmp, tmp_len, retval); - else - WideCharToMultiByte(vcp->vc_cpto, 0, - tmp, tmp_len, retval, retlen, 0, 0); -diff -Naur vim72.orig/src/menu.c vim72/src/menu.c ---- vim72.orig/src/menu.c 2008-06-21 20:53:43.000000000 +0100 -+++ vim72/src/menu.c 2008-12-06 11:37:48.000000000 +0000 -@@ -1120,6 +1120,7 @@ - parent = menu; - menu = menu->children; - } -+ vim_free(path_name); - - /* Now we have found the matching menu, and we list the mappings */ - /* Highlight title */ -diff -Naur vim72.orig/src/message.c vim72/src/message.c ---- vim72.orig/src/message.c 2008-07-09 19:24:55.000000000 +0100 -+++ vim72/src/message.c 2008-12-06 11:37:50.000000000 +0000 -@@ -4585,61 +4585,62 @@ - if (remove_trailing_zeroes) - { - int i; -- char *p; -+ char *tp; - - /* Using %g or %G: remove superfluous zeroes. */ - if (fmt_spec == 'f') -- p = tmp + str_arg_l - 1; -+ tp = tmp + str_arg_l - 1; - else - { -- p = (char *)vim_strchr((char_u *)tmp, -+ tp = (char *)vim_strchr((char_u *)tmp, - fmt_spec == 'e' ? 'e' : 'E'); -- if (p != NULL) -+ if (tp != NULL) - { - /* Remove superfluous '+' and leading - * zeroes from the exponent. */ -- if (p[1] == '+') -+ if (tp[1] == '+') - { - /* Change "1.0e+07" to "1.0e07" */ -- STRMOVE(p + 1, p + 2); -+ STRMOVE(tp + 1, tp + 2); - --str_arg_l; - } -- i = (p[1] == '-') ? 2 : 1; -- while (p[i] == '0') -+ i = (tp[1] == '-') ? 2 : 1; -+ while (tp[i] == '0') - { - /* Change "1.0e07" to "1.0e7" */ -- STRMOVE(p + i, p + i + 1); -+ STRMOVE(tp + i, tp + i + 1); - --str_arg_l; - } -- --p; -+ --tp; - } - } - -- if (p != NULL && !precision_specified) -+ if (tp != NULL && !precision_specified) - /* Remove trailing zeroes, but keep the one - * just after a dot. */ -- while (p > tmp + 2 && *p == '0' && p[-1] != '.') -+ while (tp > tmp + 2 && *tp == '0' -+ && tp[-1] != '.') - { -- STRMOVE(p, p + 1); -- --p; -+ STRMOVE(tp, tp + 1); -+ --tp; - --str_arg_l; - } - } - else - { -- char *p; -+ char *tp; - - /* Be consistent: some printf("%e") use 1.0e+12 - * and some 1.0e+012. Remove one zero in the last - * case. */ -- p = (char *)vim_strchr((char_u *)tmp, -+ tp = (char *)vim_strchr((char_u *)tmp, - fmt_spec == 'e' ? 'e' : 'E'); -- if (p != NULL && (p[1] == '+' || p[1] == '-') -- && p[2] == '0' -- && vim_isdigit(p[3]) -- && vim_isdigit(p[4])) -+ if (tp != NULL && (tp[1] == '+' || tp[1] == '-') -+ && tp[2] == '0' -+ && vim_isdigit(tp[3]) -+ && vim_isdigit(tp[4])) - { -- STRMOVE(p + 2, p + 3); -+ STRMOVE(tp + 2, tp + 3); - --str_arg_l; - } - } -diff -Naur vim72.orig/src/misc1.c vim72/src/misc1.c ---- vim72.orig/src/misc1.c 2008-07-12 20:20:53.000000000 +0100 -+++ vim72/src/misc1.c 2008-12-06 11:37:50.000000000 +0000 -@@ -3245,9 +3245,9 @@ - - /* When using ":silent" assume that <CR> was entered. */ - if (mouse_used != NULL) -- MSG_PUTS(_("Type number or click with mouse (<Enter> cancels): ")); -+ MSG_PUTS(_("Type number and <Enter> or click with mouse (empty cancels): ")); - else -- MSG_PUTS(_("Choice number (<Enter> cancels): ")); -+ MSG_PUTS(_("Type number and <Enter> (empty cancels): ")); - - /* Set the state such that text can be selected/copied/pasted and we still - * get mouse events. */ -@@ -8728,7 +8728,7 @@ - /* The active codepage differs from 'encoding'. Attempt using the - * wide function. If it fails because it is not implemented fall back - * to the non-wide version (for Windows 98) */ -- wn = enc_to_ucs2(buf, NULL); -+ wn = enc_to_utf16(buf, NULL); - if (wn != NULL) - { - hFind = FindFirstFileW(wn, &wfb); -@@ -8756,7 +8756,7 @@ - #ifdef WIN3264 - # ifdef FEAT_MBYTE - if (wn != NULL) -- p = ucs2_to_enc(wfb.cFileName, NULL); /* p is allocated here */ -+ p = utf16_to_enc(wfb.cFileName, NULL); /* p is allocated here */ - else - # endif - p = (char_u *)fb.cFileName; -@@ -8830,7 +8830,7 @@ - if (wn != NULL) - { - vim_free(wn); -- wn = enc_to_ucs2(buf, NULL); -+ wn = enc_to_utf16(buf, NULL); - if (wn != NULL) - hFind = FindFirstFileW(wn, &wfb); - } -diff -Naur vim72.orig/src/misc2.c vim72/src/misc2.c ---- vim72.orig/src/misc2.c 2008-07-23 20:12:56.000000000 +0100 -+++ vim72/src/misc2.c 2008-12-06 11:37:49.000000000 +0000 -@@ -873,7 +873,7 @@ - /* 3. check for available memory: call mch_avail_mem() */ - if (mch_avail_mem(TRUE) < KEEP_ROOM && !releasing) - { -- vim_free((char *)p); /* System is low... no go! */ -+ free((char *)p); /* System is low... no go! */ - p = NULL; - } - else -@@ -1257,7 +1257,6 @@ - return escaped_string; - } - --#if !defined(BACKSLASH_IN_FILENAME) || defined(FEAT_EVAL) || defined(PROTO) - /* - * Return TRUE when 'shell' has "csh" in the tail. - */ -@@ -1266,9 +1265,7 @@ - { - return (strstr((char *)gettail(p_sh), "csh") != NULL); - } --#endif - --#if defined(FEAT_EVAL) || defined(PROTO) - /* - * Escape "string" for use as a shell argument with system(). - * This uses single quotes, except when we know we need to use double qoutes -@@ -1391,7 +1388,6 @@ - - return escaped_string; - } --#endif - - /* - * Like vim_strsave(), but make all characters uppercase. -diff -Naur vim72.orig/src/move.c vim72/src/move.c ---- vim72.orig/src/move.c 2008-07-12 17:26:47.000000000 +0100 -+++ vim72/src/move.c 2008-12-06 11:37:49.000000000 +0000 -@@ -280,18 +280,20 @@ - - if (curwin->w_botline <= curbuf->b_ml.ml_line_count) - { -- if (curwin->w_cursor.lnum < curwin->w_botline -- && ((long)curwin->w_cursor.lnum -+ if (curwin->w_cursor.lnum < curwin->w_botline) -+ { -+ if (((long)curwin->w_cursor.lnum - >= (long)curwin->w_botline - p_so - #ifdef FEAT_FOLDING - || hasAnyFolding(curwin) - #endif - )) -- { -+ { - lineoff_T loff; - -- /* Cursor is above botline, check if there are 'scrolloff' -- * window lines below the cursor. If not, need to scroll. */ -+ /* Cursor is (a few lines) above botline, check if there are -+ * 'scrolloff' window lines below the cursor. If not, need to -+ * scroll. */ - n = curwin->w_empty_rows; - loff.lnum = curwin->w_cursor.lnum; - #ifdef FEAT_FOLDING -@@ -317,6 +319,10 @@ - if (n >= p_so) - /* sufficient context, no need to scroll */ - check_botline = FALSE; -+ } -+ else -+ /* sufficient context, no need to scroll */ -+ check_botline = FALSE; - } - if (check_botline) - { -@@ -509,6 +515,9 @@ - /* Approximate the value of w_botline */ - wp->w_botline += lnum - wp->w_topline; - wp->w_topline = lnum; -+#ifdef FEAT_AUTOCMD -+ wp->w_topline_was_set = TRUE; -+#endif - #ifdef FEAT_DIFF - wp->w_topfill = 0; - #endif -diff -Naur vim72.orig/src/netbeans.c vim72/src/netbeans.c ---- vim72.orig/src/netbeans.c 2008-07-13 17:19:54.000000000 +0100 -+++ vim72/src/netbeans.c 2008-12-06 11:37:50.000000000 +0000 -@@ -1043,7 +1043,7 @@ - nbdebug(("EVT: %s", buf)); - /* nb_send(buf, "netbeans_end"); avoid "write failed" messages */ - if (sd >= 0) -- sock_write(sd, buf, (int)STRLEN(buf)); /* ignore errors */ -+ ignored = sock_write(sd, buf, (int)STRLEN(buf)); - } - } - -@@ -1795,7 +1795,7 @@ - buf->displayname = NULL; - - netbeansReadFile = 0; /* don't try to open disk file */ -- do_ecmd(0, NULL, 0, 0, ECMD_ONE, ECMD_HIDE + ECMD_OLDBUF); -+ do_ecmd(0, NULL, 0, 0, ECMD_ONE, ECMD_HIDE + ECMD_OLDBUF, curwin); - netbeansReadFile = 1; - buf->bufp = curbuf; - maketitle(); -@@ -1960,7 +1960,7 @@ - - netbeansReadFile = 0; /* don't try to open disk file */ - do_ecmd(0, (char_u *)buf->displayname, 0, 0, ECMD_ONE, -- ECMD_HIDE + ECMD_OLDBUF); -+ ECMD_HIDE + ECMD_OLDBUF, curwin); - netbeansReadFile = 1; - buf->bufp = curbuf; - maketitle(); -@@ -1979,7 +1979,7 @@ - vim_free(buf->displayname); - buf->displayname = nb_unquote(args, NULL); - do_ecmd(0, (char_u *)buf->displayname, NULL, NULL, ECMD_ONE, -- ECMD_HIDE + ECMD_OLDBUF); -+ ECMD_HIDE + ECMD_OLDBUF, curwin); - buf->bufp = curbuf; - buf->initDone = TRUE; - doupdate = 1; -@@ -2277,9 +2277,6 @@ - int serNum; - int localTypeNum; - int typeNum; --# ifdef NBDEBUG -- int len; --# endif - pos_T *pos; - - if (buf == NULL || buf->bufp == NULL) -@@ -2303,13 +2300,10 @@ - pos = get_off_or_lnum(buf->bufp, &args); - - cp = (char *)args; --# ifdef NBDEBUG -- len = --# endif -- strtol(cp, &cp, 10); -+ ignored = (int)strtol(cp, &cp, 10); - args = (char_u *)cp; - # ifdef NBDEBUG -- if (len != -1) -+ if (ignored != -1) - { - nbdebug((" partial line annotation -- Not Yet Implemented!\n")); - } -diff -Naur vim72.orig/src/normal.c vim72/src/normal.c ---- vim72.orig/src/normal.c 2008-07-31 21:03:08.000000000 +0100 -+++ vim72/src/normal.c 2008-12-06 11:37:50.000000000 +0000 -@@ -183,6 +183,8 @@ - static void nv_cursorhold __ARGS((cmdarg_T *cap)); - #endif - -+static char *e_noident = N_("E349: No identifier under cursor"); -+ - /* - * Function to be called for a Normal or Visual mode command. - * The argument is a cmdarg_T. -@@ -578,6 +580,9 @@ - static int old_mapped_len = 0; - #endif - int idx; -+#ifdef FEAT_EVAL -+ int set_prevcount = FALSE; -+#endif - - vim_memset(&ca, 0, sizeof(ca)); /* also resets ca.retval */ - ca.oap = oap; -@@ -613,7 +618,12 @@ - /* When not finishing an operator and no register name typed, reset the - * count. */ - if (!finish_op && !oap->regname) -+ { - ca.opcount = 0; -+#ifdef FEAT_EVAL -+ set_prevcount = TRUE; -+#endif -+ } - - #ifdef FEAT_AUTOCMD - /* Restore counts from before receiving K_CURSORHOLD. This means after -@@ -717,7 +727,15 @@ - * command, so that v:count can be used in an expression mapping - * right after the count. */ - if (toplevel && stuff_empty()) -- set_vcount(ca.count0, ca.count0 == 0 ? 1 : ca.count0); -+ { -+ long count = ca.count0; -+ -+ /* multiply with ca.opcount the same way as below */ -+ if (ca.opcount != 0) -+ count = ca.opcount * (count == 0 ? 1 : count); -+ set_vcount(count, count == 0 ? 1 : count, set_prevcount); -+ set_prevcount = FALSE; /* only set v:prevcount once */ -+ } - #endif - if (ctrl_w) - { -@@ -804,7 +822,7 @@ - * Only set v:count when called from main() and not a stuffed command. - */ - if (toplevel && stuff_empty()) -- set_vcount(ca.count0, ca.count1); -+ set_vcount(ca.count0, ca.count1, set_prevcount); - #endif - - /* -@@ -1132,7 +1150,8 @@ - out_flush(); - #endif - #ifdef FEAT_AUTOCMD -- did_cursorhold = FALSE; -+ if (ca.cmdchar != K_IGNORE) -+ did_cursorhold = FALSE; - #endif - - State = NORMAL; -@@ -3509,7 +3528,7 @@ - if (find_type & FIND_STRING) - EMSG(_("E348: No string under cursor")); - else -- EMSG(_("E349: No identifier under cursor")); -+ EMSG(_(e_noident)); - return 0; - } - ptr += col; -@@ -5469,6 +5488,20 @@ - STRCPY(buf, "he! "); - else - { -+ /* An external command will probably use an argument starting -+ * with "-" as an option. To avoid trouble we skip the "-". */ -+ while (*ptr == '-' && n > 0) -+ { -+ ++ptr; -+ --n; -+ } -+ if (n == 0) -+ { -+ EMSG(_(e_noident)); /* found dashes only */ -+ vim_free(buf); -+ return; -+ } -+ - /* When a count is given, turn it into a range. Is this - * really what we want? */ - isman = (STRCMP(kp, "man") == 0); -@@ -5511,37 +5544,59 @@ - /* - * Now grab the chars in the identifier - */ -- if (cmdchar == '*') -- aux_ptr = (char_u *)(p_magic ? "/.*~[^$\" : "/^$\"); -- else if (cmdchar == '#') -- aux_ptr = (char_u *)(p_magic ? "/?.*~[^$\" : "/?^$\"); -- else if (cmdchar == 'K' && !kp_help) -- aux_ptr = (char_u *)" \t\"|!"; -- else -- /* Don't escape spaces and Tabs in a tag with a backslash */ -- aux_ptr = (char_u *)"\|""; -- -- p = buf + STRLEN(buf); -- while (n-- > 0) -- { -- /* put a backslash before \ and some others */ -- if (vim_strchr(aux_ptr, *ptr) != NULL) -- *p++ = '\'; --#ifdef FEAT_MBYTE -- /* When current byte is a part of multibyte character, copy all bytes -- * of that character. */ -- if (has_mbyte) -+ if (cmdchar == 'K' && !kp_help) -+ { -+ /* Escape the argument properly for a shell command */ -+ ptr = vim_strnsave(ptr, n); -+ p = vim_strsave_shellescape(ptr, TRUE); -+ vim_free(ptr); -+ if (p == NULL) - { -- int i; -- int len = (*mb_ptr2len)(ptr) - 1; -- -- for (i = 0; i < len && n >= 1; ++i, --n) -- *p++ = *ptr++; -+ vim_free(buf); -+ return; - } -+ buf = (char_u *)vim_realloc(buf, STRLEN(buf) + STRLEN(p) + 1); -+ if (buf == NULL) -+ { -+ vim_free(buf); -+ vim_free(p); -+ return; -+ } -+ STRCAT(buf, p); -+ vim_free(p); -+ } -+ else -+ { -+ if (cmdchar == '*') -+ aux_ptr = (char_u *)(p_magic ? "/.*~[^$\" : "/^$\"); -+ else if (cmdchar == '#') -+ aux_ptr = (char_u *)(p_magic ? "/?.*~[^$\" : "/?^$\"); -+ else -+ /* Don't escape spaces and Tabs in a tag with a backslash */ -+ aux_ptr = (char_u *)"\|"\n*?["; -+ -+ p = buf + STRLEN(buf); -+ while (n-- > 0) -+ { -+ /* put a backslash before \ and some others */ -+ if (vim_strchr(aux_ptr, *ptr) != NULL) -+ *p++ = '\'; -+#ifdef FEAT_MBYTE -+ /* When current byte is a part of multibyte character, copy all -+ * bytes of that character. */ -+ if (has_mbyte) -+ { -+ int i; -+ int len = (*mb_ptr2len)(ptr) - 1; -+ -+ for (i = 0; i < len && n >= 1; ++i, --n) -+ *p++ = *ptr++; -+ } - #endif -- *p++ = *ptr++; -+ *p++ = *ptr++; -+ } -+ *p = NUL; - } -- *p = NUL; - - /* - * Execute the command. -@@ -6011,7 +6066,7 @@ - autowrite(curbuf, FALSE); - setpcmark(); - (void)do_ecmd(0, ptr, NULL, NULL, ECMD_LAST, -- P_HID(curbuf) ? ECMD_HIDE : 0); -+ P_HID(curbuf) ? ECMD_HIDE : 0, curwin); - if (cap->nchar == 'F' && lnum >= 0) - { - curwin->w_cursor.lnum = lnum; -diff -Naur vim72.orig/src/ops.c vim72/src/ops.c ---- vim72.orig/src/ops.c 2008-06-21 21:08:59.000000000 +0100 -+++ vim72/src/ops.c 2008-12-06 11:37:50.000000000 +0000 -@@ -2209,12 +2209,15 @@ - { - for (; pos.lnum <= oap->end.lnum; ++pos.lnum) - { -+ int one_change; -+ - block_prep(oap, &bd, pos.lnum, FALSE); - pos.col = bd.textcol; -- did_change = swapchars(oap->op_type, &pos, bd.textlen); -+ one_change = swapchars(oap->op_type, &pos, bd.textlen); -+ did_change |= one_change; - - # ifdef FEAT_NETBEANS_INTG -- if (usingNetbeans && did_change) -+ if (usingNetbeans && one_change) - { - char_u *ptr = ml_get_buf(curbuf, pos.lnum, FALSE); - -diff -Naur vim72.orig/src/option.c vim72/src/option.c ---- vim72.orig/src/option.c 2008-07-18 14:05:33.000000000 +0100 -+++ vim72/src/option.c 2008-12-06 11:37:50.000000000 +0000 -@@ -2593,13 +2593,13 @@ - #ifdef FEAT_VIMINFO - (char_u *)&p_viminfo, PV_NONE, - #if defined(MSDOS) || defined(MSWIN) || defined(OS2) -- {(char_u *)"", (char_u *)"'20,<50,s10,h,rA:,rB:"} -+ {(char_u *)"", (char_u *)"'100,<50,s10,h,rA:,rB:"} - #else - # ifdef AMIGA - {(char_u *)"", -- (char_u *)"'20,<50,s10,h,rdf0:,rdf1:,rdf2:"} -+ (char_u *)"'100,<50,s10,h,rdf0:,rdf1:,rdf2:"} - # else -- {(char_u *)"", (char_u *)"'20,<50,s10,h"} -+ {(char_u *)"", (char_u *)"'100,<50,s10,h"} - # endif - #endif - #else -@@ -7974,6 +7974,11 @@ - else /* curwin->w_p_scr > curwin->w_height */ - curwin->w_p_scr = curwin->w_height; - } -+ if (p_hi < 0) -+ { -+ errmsg = e_positive; -+ p_hi = 0; -+ } - if (p_report < 0) - { - errmsg = e_positive; -@@ -8227,13 +8232,13 @@ - { - if (number == 0 && string != NULL) - { -- int index; -+ int idx; - - /* Either we are given a string or we are setting option - * to zero. */ -- for (index = 0; string[index] == '0'; ++index) -+ for (idx = 0; string[idx] == '0'; ++idx) - ; -- if (string[index] != NUL || index == 0) -+ if (string[idx] != NUL || idx == 0) - { - /* There's another character after zeros or the string - * is empty. In both cases, we are trying to set a -diff -Naur vim72.orig/src/os_unix.c vim72/src/os_unix.c ---- vim72.orig/src/os_unix.c 2008-08-06 12:01:40.000000000 +0100 -+++ vim72/src/os_unix.c 2008-12-06 11:37:50.000000000 +0000 -@@ -315,12 +315,15 @@ - {-1, "Unknown!", FALSE} - }; - -+/* -+ * Write s[len] to the screen. -+ */ - void - mch_write(s, len) - char_u *s; - int len; - { -- write(1, (char *)s, len); -+ ignored = (int)write(1, (char *)s, len); - if (p_wd) /* Unix is too fast, slow down a bit more */ - RealWaitForChar(read_cmd_fd, p_wd, NULL); - } -@@ -2905,7 +2908,7 @@ - * Ignore any errors. - */ - #if defined(HAVE_SIGALTSTACK) || defined(HAVE_SIGSTACK) -- signal_stack = malloc(SIGSTKSZ); -+ signal_stack = (char *)alloc(SIGSTKSZ); - init_signal_stack(); - #endif - } -@@ -2936,7 +2939,8 @@ - } - # endif - # endif --# ifdef FEAT_X11 -+ /* Don't close the display for GTK 1, it is done in exit(). */ -+# if defined(FEAT_X11) && (!defined(FEAT_GUI_GTK) || defined(HAVE_GTK2)) - if (x11_display != NULL - # ifdef FEAT_XCLIPBOARD - && x11_display != xterm_dpy -@@ -3926,9 +3930,9 @@ - */ - if (fd >= 0) - { -- dup(fd); /* To replace stdin (file descriptor 0) */ -- dup(fd); /* To replace stdout (file descriptor 1) */ -- dup(fd); /* To replace stderr (file descriptor 2) */ -+ ignored = dup(fd); /* To replace stdin (fd 0) */ -+ ignored = dup(fd); /* To replace stdout (fd 1) */ -+ ignored = dup(fd); /* To replace stderr (fd 2) */ - - /* Don't need this now that we've duplicated it */ - close(fd); -@@ -3996,13 +4000,13 @@ - - /* set up stdin/stdout/stderr for the child */ - close(0); -- dup(pty_slave_fd); -+ ignored = dup(pty_slave_fd); - close(1); -- dup(pty_slave_fd); -+ ignored = dup(pty_slave_fd); - if (gui.in_use) - { - close(2); -- dup(pty_slave_fd); -+ ignored = dup(pty_slave_fd); - } - - close(pty_slave_fd); /* has been dupped, close it now */ -@@ -4013,13 +4017,13 @@ - /* set up stdin for the child */ - close(fd_toshell[1]); - close(0); -- dup(fd_toshell[0]); -+ ignored = dup(fd_toshell[0]); - close(fd_toshell[0]); - - /* set up stdout for the child */ - close(fd_fromshell[0]); - close(1); -- dup(fd_fromshell[1]); -+ ignored = dup(fd_fromshell[1]); - close(fd_fromshell[1]); - - # ifdef FEAT_GUI -@@ -4027,7 +4031,7 @@ - { - /* set up stderr for the child */ - close(2); -- dup(1); -+ ignored = dup(1); - } - # endif - } -@@ -4158,7 +4162,8 @@ - && (lnum != - curbuf->b_ml.ml_line_count - || curbuf->b_p_eol))) -- write(toshell_fd, "\n", (size_t)1); -+ ignored = write(toshell_fd, "\n", -+ (size_t)1); - ++lnum; - if (lnum > curbuf->b_op_end.lnum) - { -@@ -6814,7 +6819,8 @@ - if (xsmp_icefd != -1) - { - SmcCloseConnection(xsmp.smcconn, 0, NULL); -- vim_free(xsmp.clientid); -+ if (xsmp.clientid != NULL) -+ free(xsmp.clientid); - xsmp.clientid = NULL; - xsmp_icefd = -1; - } -diff -Naur vim72.orig/src/popupmnu.c vim72/src/popupmnu.c ---- vim72.orig/src/popupmnu.c 2008-07-12 17:28:18.000000000 +0100 -+++ vim72/src/popupmnu.c 2008-12-06 11:37:49.000000000 +0000 -@@ -573,7 +573,7 @@ - { - /* Don't want to sync undo in the current buffer. */ - ++no_u_sync; -- res = do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, 0); -+ res = do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, 0, NULL); - --no_u_sync; - if (res == OK) - { -diff -Naur vim72.orig/src/proto/buffer.pro vim72/src/proto/buffer.pro ---- vim72.orig/src/proto/buffer.pro 2008-08-09 15:31:21.000000000 +0100 -+++ vim72/src/proto/buffer.pro 2008-12-06 11:37:49.000000000 +0000 -@@ -33,7 +33,7 @@ - char_u *getaltfname __ARGS((int errmsg)); - int buflist_add __ARGS((char_u *fname, int flags)); - void buflist_slash_adjust __ARGS((void)); --void buflist_altfpos __ARGS((void)); -+void buflist_altfpos __ARGS((win_T *win)); - int otherfile __ARGS((char_u *ffname)); - void buf_setino __ARGS((buf_T *buf)); - void fileinfo __ARGS((int fullname, int shorthelp, int dont_truncate)); -diff -Naur vim72.orig/src/proto/eval.pro vim72/src/proto/eval.pro ---- vim72.orig/src/proto/eval.pro 2008-08-09 15:31:25.000000000 +0100 -+++ vim72/src/proto/eval.pro 2008-12-06 11:37:50.000000000 +0000 -@@ -17,7 +17,7 @@ - int eval_to_bool __ARGS((char_u *arg, int *error, char_u **nextcmd, int skip)); - char_u *eval_to_string_skip __ARGS((char_u *arg, char_u **nextcmd, int skip)); - int skip_expr __ARGS((char_u **pp)); --char_u *eval_to_string __ARGS((char_u *arg, char_u **nextcmd, int dolist)); -+char_u *eval_to_string __ARGS((char_u *arg, char_u **nextcmd, int convert)); - char_u *eval_to_string_safe __ARGS((char_u *arg, char_u **nextcmd, int use_sandbox)); - int eval_to_number __ARGS((char_u *expr)); - list_T *eval_spell_expr __ARGS((char_u *badword, char_u *expr)); -@@ -46,7 +46,9 @@ - void list_unref __ARGS((list_T *l)); - void list_free __ARGS((list_T *l, int recurse)); - dictitem_T *dict_lookup __ARGS((hashitem_T *hi)); -+char_u *list_find_str __ARGS((list_T *l, long idx)); - int list_append_dict __ARGS((list_T *list, dict_T *dict)); -+int list_append_string __ARGS((list_T *l, char_u *str, int len)); - int garbage_collect __ARGS((void)); - dict_T *dict_alloc __ARGS((void)); - int dict_add_nr_str __ARGS((dict_T *d, char *key, long nr, char_u *str)); -@@ -58,8 +60,10 @@ - void set_vim_var_nr __ARGS((int idx, long val)); - long get_vim_var_nr __ARGS((int idx)); - char_u *get_vim_var_str __ARGS((int idx)); --void set_vcount __ARGS((long count, long count1)); -+list_T *get_vim_var_list __ARGS((int idx)); -+void set_vcount __ARGS((long count, long count1, int set_prevcount)); - void set_vim_var_string __ARGS((int idx, char_u *val, int len)); -+void set_vim_var_list __ARGS((int idx, list_T *val)); - void set_reg_var __ARGS((int c)); - char_u *v_exception __ARGS((char_u *oldval)); - char_u *v_throwpoint __ARGS((char_u *oldval)); -@@ -94,6 +98,7 @@ - void write_viminfo_varlist __ARGS((FILE *fp)); - int store_session_globals __ARGS((FILE *fd)); - void last_set_msg __ARGS((scid_T scriptID)); -+void ex_oldfiles __ARGS((exarg_T *eap)); - int modify_fname __ARGS((char_u *src, int *usedlen, char_u **fnamep, char_u **bufp, int *fnamelen)); - char_u *do_string_sub __ARGS((char_u *str, char_u *pat, char_u *sub, char_u *flags)); - /* vim: set ft=c : */ -diff -Naur vim72.orig/src/proto/ex_cmds.pro vim72/src/proto/ex_cmds.pro ---- vim72.orig/src/proto/ex_cmds.pro 2008-08-09 15:31:25.000000000 +0100 -+++ vim72/src/proto/ex_cmds.pro 2008-12-06 11:37:49.000000000 +0000 -@@ -11,7 +11,7 @@ - char_u *make_filter_cmd __ARGS((char_u *cmd, char_u *itmp, char_u *otmp)); - void append_redir __ARGS((char_u *buf, char_u *opt, char_u *fname)); - int viminfo_error __ARGS((char *errnum, char *message, char_u *line)); --int read_viminfo __ARGS((char_u *file, int want_info, int want_marks, int forceit)); -+int read_viminfo __ARGS((char_u *file, int flags)); - void write_viminfo __ARGS((char_u *file, int forceit)); - int viminfo_readline __ARGS((vir_T *virp)); - char_u *viminfo_readstring __ARGS((vir_T *virp, int off, int convert)); -@@ -27,7 +27,7 @@ - void do_wqall __ARGS((exarg_T *eap)); - int not_writing __ARGS((void)); - int getfile __ARGS((int fnum, char_u *ffname, char_u *sfname, int setpm, linenr_T lnum, int forceit)); --int do_ecmd __ARGS((int fnum, char_u *ffname, char_u *sfname, exarg_T *eap, linenr_T newlnum, int flags)); -+int do_ecmd __ARGS((int fnum, char_u *ffname, char_u *sfname, exarg_T *eap, linenr_T newlnum, int flags, win_T *oldwin)); - void ex_append __ARGS((exarg_T *eap)); - void ex_change __ARGS((exarg_T *eap)); - void ex_z __ARGS((exarg_T *eap)); -diff -Naur vim72.orig/src/proto/ex_getln.pro vim72/src/proto/ex_getln.pro ---- vim72.orig/src/proto/ex_getln.pro 2008-08-09 15:31:28.000000000 +0100 -+++ vim72/src/proto/ex_getln.pro 2008-12-06 11:37:50.000000000 +0000 -@@ -31,7 +31,7 @@ - void set_cmd_context __ARGS((expand_T *xp, char_u *str, int len, int col)); - int expand_cmdline __ARGS((expand_T *xp, char_u *str, int col, int *matchcount, char_u ***matches)); - int ExpandGeneric __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file, char_u *((*func)(expand_T *, int)))); --char_u *globpath __ARGS((char_u *path, char_u *file)); -+char_u *globpath __ARGS((char_u *path, char_u *file, int expand_options)); - void init_history __ARGS((void)); - int get_histtype __ARGS((char_u *name)); - void add_to_history __ARGS((int histype, char_u *new_entry, int in_map, int sep)); -diff -Naur vim72.orig/src/proto/mark.pro vim72/src/proto/mark.pro ---- vim72.orig/src/proto/mark.pro 2008-08-09 15:31:36.000000000 +0100 -+++ vim72/src/proto/mark.pro 2008-12-06 11:37:49.000000000 +0000 -@@ -26,5 +26,5 @@ - void write_viminfo_filemarks __ARGS((FILE *fp)); - int removable __ARGS((char_u *name)); - int write_viminfo_marks __ARGS((FILE *fp_out)); --void copy_viminfo_marks __ARGS((vir_T *virp, FILE *fp_out, int count, int eof)); -+void copy_viminfo_marks __ARGS((vir_T *virp, FILE *fp_out, int count, int eof, int flags)); - /* vim: set ft=c : */ -diff -Naur vim72.orig/src/pty.c vim72/src/pty.c ---- vim72.orig/src/pty.c 2008-06-21 19:52:58.000000000 +0100 -+++ vim72/src/pty.c 2008-12-06 11:37:48.000000000 +0000 -@@ -270,9 +270,10 @@ - } - #endif - --#if defined(HAVE_SVR4_PTYS) && !defined(PTY_DONE) && !defined(hpux) -+#if defined(HAVE_SVR4_PTYS) && !defined(PTY_DONE) && !defined(hpux) && !defined(MACOS_X) - --/* NOTE: Even though HPUX can have /dev/ptmx, the code below doesn't work! */ -+/* NOTE: Even though HPUX can have /dev/ptmx, the code below doesn't work! -+ * Same for Mac OS X Leopard. */ - #define PTY_DONE - int - OpenPTY(ttyn) -diff -Naur vim72.orig/src/quickfix.c vim72/src/quickfix.c ---- vim72.orig/src/quickfix.c 2008-07-18 13:53:02.000000000 +0100 -+++ vim72/src/quickfix.c 2008-12-06 11:37:49.000000000 +0000 -@@ -1420,6 +1420,7 @@ - win_T *win; - win_T *altwin; - #endif -+ win_T *oldwin = curwin; - int print_message = TRUE; - int len; - #ifdef FEAT_FOLDING -@@ -1744,7 +1745,8 @@ - } - else - ok = do_ecmd(qf_ptr->qf_fnum, NULL, NULL, NULL, (linenr_T)1, -- ECMD_HIDE + ECMD_SET_HELP); -+ ECMD_HIDE + ECMD_SET_HELP, -+ oldwin == curwin ? curwin : NULL); - } - else - ok = buflist_getfile(qf_ptr->qf_fnum, -@@ -2267,6 +2269,7 @@ - win_T *win; - tabpage_T *prevtab = curtab; - buf_T *qf_buf; -+ win_T *oldwin = curwin; - - if (eap->cmdidx == CMD_lopen || eap->cmdidx == CMD_lwindow) - { -@@ -2326,14 +2329,16 @@ - win->w_llist->qf_refcount++; - } - -+ if (oldwin != curwin) -+ oldwin = NULL; /* don't store info when in another window */ - if (qf_buf != NULL) - /* Use the existing quickfix buffer */ - (void)do_ecmd(qf_buf->b_fnum, NULL, NULL, NULL, ECMD_ONE, -- ECMD_HIDE + ECMD_OLDBUF); -+ ECMD_HIDE + ECMD_OLDBUF, oldwin); - else - { - /* Create a new quickfix buffer */ -- (void)do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, ECMD_HIDE); -+ (void)do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, ECMD_HIDE, oldwin); - /* switch off 'swapfile' */ - set_option_value((char_u *)"swf", 0L, NULL, OPT_LOCAL); - set_option_value((char_u *)"bt", 0L, (char_u *)"quickfix", -diff -Naur vim72.orig/src/screen.c vim72/src/screen.c ---- vim72.orig/src/screen.c 2008-07-24 15:45:07.000000000 +0100 -+++ vim72/src/screen.c 2008-12-06 11:37:48.000000000 +0000 -@@ -2439,9 +2439,17 @@ - - #ifdef FEAT_SYN_HL - /* Show 'cursorcolumn' in the fold line. */ -- if (wp->w_p_cuc && (int)wp->w_virtcol + txtcol < W_WIDTH(wp)) -- ScreenAttrs[off + wp->w_virtcol + txtcol] = hl_combine_attr( -- ScreenAttrs[off + wp->w_virtcol + txtcol], hl_attr(HLF_CUC)); -+ if (wp->w_p_cuc) -+ { -+ txtcol += wp->w_virtcol; -+ if (wp->w_p_wrap) -+ txtcol -= wp->w_skipcol; -+ else -+ txtcol -= wp->w_leftcol; -+ if (txtcol >= 0 && txtcol < W_WIDTH(wp)) -+ ScreenAttrs[off + txtcol] = hl_combine_attr( -+ ScreenAttrs[off + txtcol], hl_attr(HLF_CUC)); -+ } - #endif - - SCREEN_LINE(row + W_WINROW(wp), W_WINCOL(wp), (int)W_WIDTH(wp), -diff -Naur vim72.orig/src/spell.c vim72/src/spell.c ---- vim72.orig/src/spell.c 2008-07-12 20:20:55.000000000 +0100 -+++ vim72/src/spell.c 2008-12-06 11:37:50.000000000 +0000 -@@ -77,7 +77,7 @@ - - /* - * Do the opposite: based on a maximum end score and a known sound score, -- * compute the the maximum word score that can be used. -+ * compute the maximum word score that can be used. - */ - #define MAXSCORE(word_score, sound_score) ((4 * word_score - sound_score) / 3) - -@@ -469,6 +469,7 @@ - garray_T sl_comppat; /* CHECKCOMPOUNDPATTERN items */ - regprog_T *sl_compprog; /* COMPOUNDRULE turned into a regexp progrm - * (NULL when no compounding) */ -+ char_u *sl_comprules; /* all COMPOUNDRULE concatenated (or NULL) */ - char_u *sl_compstartflags; /* flags for first compound word */ - char_u *sl_compallflags; /* all flags for compound words */ - char_u sl_nobreak; /* When TRUE: no spaces between words */ -@@ -625,7 +626,7 @@ - /* TRUE if a word appears in the list of banned words. */ - #define WAS_BANNED(su, word) (!HASHITEM_EMPTY(hash_find(&su->su_banned, word))) - --/* Number of suggestions kept when cleaning up. we need to keep more than -+/* Number of suggestions kept when cleaning up. We need to keep more than - * what is displayed, because when rescore_suggestions() is called the score - * may change and wrong suggestions may be removed later. */ - #define SUG_CLEAN_COUNT(su) ((su)->su_maxcount < 130 ? 150 : (su)->su_maxcount + 20) -@@ -839,7 +840,10 @@ - static void slang_clear __ARGS((slang_T *lp)); - static void slang_clear_sug __ARGS((slang_T *lp)); - static void find_word __ARGS((matchinf_T *mip, int mode)); -+static int match_checkcompoundpattern __ARGS((char_u *ptr, int wlen, garray_T *gap)); - static int can_compound __ARGS((slang_T *slang, char_u *word, char_u *flags)); -+static int can_be_compound __ARGS((trystate_T *sp, slang_T *slang, char_u *compflags, int flag)); -+static int match_compoundrule __ARGS((slang_T *slang, char_u *compflags)); - static int valid_word_prefix __ARGS((int totprefcnt, int arridx, int flags, char_u *word, slang_T *slang, int cond_req)); - static void find_prefix __ARGS((matchinf_T *mip, int mode)); - static int fold_more __ARGS((matchinf_T *mip)); -@@ -1519,6 +1523,11 @@ - ((unsigned)flags >> 24))) - continue; - -+ /* If there is a match with a CHECKCOMPOUNDPATTERN rule -+ * discard the compound word. */ -+ if (match_checkcompoundpattern(ptr, wlen, &slang->sl_comppat)) -+ continue; -+ - if (mode == FIND_COMPOUND) - { - int capflags; -@@ -1577,6 +1586,11 @@ - if (!can_compound(slang, fword, mip->mi_compflags)) - continue; - } -+ else if (slang->sl_comprules != NULL -+ && !match_compoundrule(slang, mip->mi_compflags)) -+ /* The compound flags collected so far do not match any -+ * COMPOUNDRULE, discard the compounded word. */ -+ continue; - } - - /* Check NEEDCOMPOUND: can't use word without compounding. */ -@@ -1727,6 +1741,39 @@ - } - - /* -+ * Return TRUE if there is a match between the word ptr[wlen] and -+ * CHECKCOMPOUNDPATTERN rules, assuming that we will concatenate with another -+ * word. -+ * A match means that the first part of CHECKCOMPOUNDPATTERN matches at the -+ * end of ptr[wlen] and the second part matches after it. -+ */ -+ static int -+match_checkcompoundpattern(ptr, wlen, gap) -+ char_u *ptr; -+ int wlen; -+ garray_T *gap; /* &sl_comppat */ -+{ -+ int i; -+ char_u *p; -+ int len; -+ -+ for (i = 0; i + 1 < gap->ga_len; i += 2) -+ { -+ p = ((char_u **)gap->ga_data)[i + 1]; -+ if (STRNCMP(ptr + wlen, p, STRLEN(p)) == 0) -+ { -+ /* Second part matches at start of following compound word, now -+ * check if first part matches at end of previous word. */ -+ p = ((char_u **)gap->ga_data)[i]; -+ len = STRLEN(p); -+ if (len <= wlen && STRNCMP(ptr + wlen - len, p, len) == 0) -+ return TRUE; -+ } -+ } -+ return FALSE; -+} -+ -+/* - * Return TRUE if "flags" is a valid sequence of compound flags and "word" - * does not have too many syllables. - */ -@@ -1773,6 +1820,98 @@ - } - - /* -+ * Return TRUE when the sequence of flags in "compflags" plus "flag" can -+ * possibly form a valid compounded word. This also checks the COMPOUNDRULE -+ * lines if they don't contain wildcards. -+ */ -+ static int -+can_be_compound(sp, slang, compflags, flag) -+ trystate_T *sp; -+ slang_T *slang; -+ char_u *compflags; -+ int flag; -+{ -+ /* If the flag doesn't appear in sl_compstartflags or sl_compallflags -+ * then it can't possibly compound. */ -+ if (!byte_in_str(sp->ts_complen == sp->ts_compsplit -+ ? slang->sl_compstartflags : slang->sl_compallflags, flag)) -+ return FALSE; -+ -+ /* If there are no wildcards, we can check if the flags collected so far -+ * possibly can form a match with COMPOUNDRULE patterns. This only -+ * makes sense when we have two or more words. */ -+ if (slang->sl_comprules != NULL && sp->ts_complen > sp->ts_compsplit) -+ { -+ int v; -+ -+ compflags[sp->ts_complen] = flag; -+ compflags[sp->ts_complen + 1] = NUL; -+ v = match_compoundrule(slang, compflags + sp->ts_compsplit); -+ compflags[sp->ts_complen] = NUL; -+ return v; -+ } -+ -+ return TRUE; -+} -+ -+ -+/* -+ * Return TRUE if the compound flags in compflags[] match the start of any -+ * compound rule. This is used to stop trying a compound if the flags -+ * collected so far can't possibly match any compound rule. -+ * Caller must check that slang->sl_comprules is not NULL. -+ */ -+ static int -+match_compoundrule(slang, compflags) -+ slang_T *slang; -+ char_u *compflags; -+{ -+ char_u *p; -+ int i; -+ int c; -+ -+ /* loop over all the COMPOUNDRULE entries */ -+ for (p = slang->sl_comprules; *p != NUL; ++p) -+ { -+ /* loop over the flags in the compound word we have made, match -+ * them against the current rule entry */ -+ for (i = 0; ; ++i) -+ { -+ c = compflags[i]; -+ if (c == NUL) -+ /* found a rule that matches for the flags we have so far */ -+ return TRUE; -+ if (*p == '/' || *p == NUL) -+ break; /* end of rule, it's too short */ -+ if (*p == '[') -+ { -+ int match = FALSE; -+ -+ /* compare against all the flags in [] */ -+ ++p; -+ while (*p != ']' && *p != NUL) -+ if (*p++ == c) -+ match = TRUE; -+ if (!match) -+ break; /* none matches */ -+ } -+ else if (*p != c) -+ break; /* flag of word doesn't match flag in pattern */ -+ ++p; -+ } -+ -+ /* Skip to the next "/", where the next pattern starts. */ -+ p = vim_strchr(p, '/'); -+ if (p == NULL) -+ break; -+ } -+ -+ /* Checked all the rules and none of them match the flags, so there -+ * can't possibly be a compound starting with these flags. */ -+ return FALSE; -+} -+ -+/* - * Return non-zero if the prefix indicated by "arridx" matches with the prefix - * ID in "flags" for the word "word". - * The WF_RAREPFX flag is included in the return value for a rare prefix. -@@ -2513,9 +2652,11 @@ - lp->sl_midword = NULL; - - vim_free(lp->sl_compprog); -+ vim_free(lp->sl_comprules); - vim_free(lp->sl_compstartflags); - vim_free(lp->sl_compallflags); - lp->sl_compprog = NULL; -+ lp->sl_comprules = NULL; - lp->sl_compstartflags = NULL; - lp->sl_compallflags = NULL; - -@@ -3460,6 +3601,7 @@ - char_u *pp; - char_u *cp; - char_u *ap; -+ char_u *crp; - int cnt; - garray_T *gap; - -@@ -3545,6 +3687,12 @@ - slang->sl_compallflags = ap; - *ap = NUL; - -+ /* And a list of all patterns in their original form, for checking whether -+ * compounding may work in match_compoundrule(). This is freed when we -+ * encounter a wildcard, the check doesn't work then. */ -+ crp = alloc(todo + 1); -+ slang->sl_comprules = crp; -+ - pp = pat; - *pp++ = '^'; - *pp++ = '\'; -@@ -3587,6 +3735,20 @@ - atstart = 0; - } - } -+ -+ /* Copy flag to "sl_comprules", unless we run into a wildcard. */ -+ if (crp != NULL) -+ { -+ if (c == '+' || c == '*') -+ { -+ vim_free(slang->sl_comprules); -+ slang->sl_comprules = NULL; -+ crp = NULL; -+ } -+ else -+ *crp++ = c; -+ } -+ - if (c == '/') /* slash separates two items */ - { - *pp++ = '\'; -@@ -3611,6 +3773,9 @@ - *pp++ = '$'; - *pp = NUL; - -+ if (crp != NULL) -+ *crp = NUL; -+ - slang->sl_compprog = vim_regcomp(pat, RE_MAGIC + RE_STRING + RE_STRICT); - vim_free(pat); - if (slang->sl_compprog == NULL) -@@ -4915,6 +5080,7 @@ - } spellinfo_T; - - static afffile_T *spell_read_aff __ARGS((spellinfo_T *spin, char_u *fname)); -+static int is_aff_rule __ARGS((char_u **items, int itemcnt, char *rulename, int mincount)); - static void aff_process_flags __ARGS((afffile_T *affile, affentry_T *entry)); - static int spell_info_item __ARGS((char_u *s)); - static unsigned affitem2flag __ARGS((int flagtype, char_u *item, char_u *fname, int lnum)); -@@ -4950,7 +5116,7 @@ - static void put_sugtime __ARGS((spellinfo_T *spin, FILE *fd)); - static int write_vim_spell __ARGS((spellinfo_T *spin, char_u *fname)); - static void clear_node __ARGS((wordnode_T *node)); --static int put_node __ARGS((FILE *fd, wordnode_T *node, int index, int regionmask, int prefixtree)); -+static int put_node __ARGS((FILE *fd, wordnode_T *node, int idx, int regionmask, int prefixtree)); - static void spell_make_sugfile __ARGS((spellinfo_T *spin, char_u *wfname)); - static int sug_filltree __ARGS((spellinfo_T *spin, slang_T *slang)); - static int sug_maketable __ARGS((spellinfo_T *spin)); -@@ -5223,8 +5389,7 @@ - /* Handle non-empty lines. */ - if (itemcnt > 0) - { -- if (STRCMP(items[0], "SET") == 0 && itemcnt == 2 -- && aff->af_enc == NULL) -+ if (is_aff_rule(items, itemcnt, "SET", 2) && aff->af_enc == NULL) - { - #ifdef FEAT_MBYTE - /* Setup for conversion from "ENC" to 'encoding'. */ -@@ -5239,7 +5404,7 @@ - smsg((char_u *)_("Conversion in %s not supported"), fname); - #endif - } -- else if (STRCMP(items[0], "FLAG") == 0 && itemcnt == 2 -+ else if (is_aff_rule(items, itemcnt, "FLAG", 2) - && aff->af_flagtype == AFT_CHAR) - { - if (STRCMP(items[1], "long") == 0) -@@ -5284,69 +5449,71 @@ - spin->si_info = p; - } - } -- else if (STRCMP(items[0], "MIDWORD") == 0 && itemcnt == 2 -+ else if (is_aff_rule(items, itemcnt, "MIDWORD", 2) - && midword == NULL) - { - midword = getroom_save(spin, items[1]); - } -- else if (STRCMP(items[0], "TRY") == 0 && itemcnt == 2) -+ else if (is_aff_rule(items, itemcnt, "TRY", 2)) - { - /* ignored, we look in the tree for what chars may appear */ - } - /* TODO: remove "RAR" later */ -- else if ((STRCMP(items[0], "RAR") == 0 -- || STRCMP(items[0], "RARE") == 0) && itemcnt == 2 -- && aff->af_rare == 0) -+ else if ((is_aff_rule(items, itemcnt, "RAR", 2) -+ || is_aff_rule(items, itemcnt, "RARE", 2)) -+ && aff->af_rare == 0) - { - aff->af_rare = affitem2flag(aff->af_flagtype, items[1], - fname, lnum); - } - /* TODO: remove "KEP" later */ -- else if ((STRCMP(items[0], "KEP") == 0 -- || STRCMP(items[0], "KEEPCASE") == 0) && itemcnt == 2 -+ else if ((is_aff_rule(items, itemcnt, "KEP", 2) -+ || is_aff_rule(items, itemcnt, "KEEPCASE", 2)) - && aff->af_keepcase == 0) - { - aff->af_keepcase = affitem2flag(aff->af_flagtype, items[1], - fname, lnum); - } -- else if (STRCMP(items[0], "BAD") == 0 && itemcnt == 2 -- && aff->af_bad == 0) -+ else if ((is_aff_rule(items, itemcnt, "BAD", 2) -+ || is_aff_rule(items, itemcnt, "FORBIDDENWORD", 2)) -+ && aff->af_bad == 0) - { - aff->af_bad = affitem2flag(aff->af_flagtype, items[1], - fname, lnum); - } -- else if (STRCMP(items[0], "NEEDAFFIX") == 0 && itemcnt == 2 -+ else if (is_aff_rule(items, itemcnt, "NEEDAFFIX", 2) - && aff->af_needaffix == 0) - { - aff->af_needaffix = affitem2flag(aff->af_flagtype, items[1], - fname, lnum); - } -- else if (STRCMP(items[0], "CIRCUMFIX") == 0 && itemcnt == 2 -+ else if (is_aff_rule(items, itemcnt, "CIRCUMFIX", 2) - && aff->af_circumfix == 0) - { - aff->af_circumfix = affitem2flag(aff->af_flagtype, items[1], - fname, lnum); - } -- else if (STRCMP(items[0], "NOSUGGEST") == 0 && itemcnt == 2 -+ else if (is_aff_rule(items, itemcnt, "NOSUGGEST", 2) - && aff->af_nosuggest == 0) - { - aff->af_nosuggest = affitem2flag(aff->af_flagtype, items[1], - fname, lnum); - } -- else if (STRCMP(items[0], "NEEDCOMPOUND") == 0 && itemcnt == 2 -+ else if ((is_aff_rule(items, itemcnt, "NEEDCOMPOUND", 2) -+ || is_aff_rule(items, itemcnt, "ONLYINCOMPOUND", 2)) - && aff->af_needcomp == 0) - { - aff->af_needcomp = affitem2flag(aff->af_flagtype, items[1], - fname, lnum); - } -- else if (STRCMP(items[0], "COMPOUNDROOT") == 0 && itemcnt == 2 -+ else if (is_aff_rule(items, itemcnt, "COMPOUNDROOT", 2) - && aff->af_comproot == 0) - { - aff->af_comproot = affitem2flag(aff->af_flagtype, items[1], - fname, lnum); - } -- else if (STRCMP(items[0], "COMPOUNDFORBIDFLAG") == 0 -- && itemcnt == 2 && aff->af_compforbid == 0) -+ else if (is_aff_rule(items, itemcnt, "COMPOUNDFORBIDFLAG", 2) -+ && aff->af_compforbid == 0) - { - aff->af_compforbid = affitem2flag(aff->af_flagtype, items[1], - fname, lnum); -@@ -5354,8 +5521,8 @@ - smsg((char_u *)_("Defining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line %d"), - fname, lnum); - } -- else if (STRCMP(items[0], "COMPOUNDPERMITFLAG") == 0 -- && itemcnt == 2 && aff->af_comppermit == 0) -+ else if (is_aff_rule(items, itemcnt, "COMPOUNDPERMITFLAG", 2) -+ && aff->af_comppermit == 0) - { - aff->af_comppermit = affitem2flag(aff->af_flagtype, items[1], - fname, lnum); -@@ -5363,7 +5530,7 @@ - smsg((char_u *)_("Defining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line %d"), - fname, lnum); - } -- else if (STRCMP(items[0], "COMPOUNDFLAG") == 0 && itemcnt == 2 -+ else if (is_aff_rule(items, itemcnt, "COMPOUNDFLAG", 2) - && compflags == NULL) - { - /* Turn flag "c" into COMPOUNDRULE compatible string "c+", -@@ -5376,7 +5543,15 @@ - compflags = p; - } - } -- else if (STRCMP(items[0], "COMPOUNDRULE") == 0 && itemcnt == 2) -+ else if (is_aff_rule(items, itemcnt, "COMPOUNDRULES", 2)) -+ { -+ /* We don't use the count, but do check that it's a number and -+ * not COMPOUNDRULE mistyped. */ -+ if (atoi((char *)items[1]) == 0) -+ smsg((char_u *)_("Wrong COMPOUNDRULES value in %s line %d: %s"), -+ fname, lnum, items[1]); -+ } -+ else if (is_aff_rule(items, itemcnt, "COMPOUNDRULE", 2)) - { - /* Concatenate this string to previously defined ones, using a - * slash to separate them. */ -@@ -5395,7 +5570,7 @@ - compflags = p; - } - } -- else if (STRCMP(items[0], "COMPOUNDWORDMAX") == 0 && itemcnt == 2 -+ else if (is_aff_rule(items, itemcnt, "COMPOUNDWORDMAX", 2) - && compmax == 0) - { - compmax = atoi((char *)items[1]); -@@ -5403,7 +5578,7 @@ - smsg((char_u *)_("Wrong COMPOUNDWORDMAX value in %s line %d: %s"), - fname, lnum, items[1]); - } -- else if (STRCMP(items[0], "COMPOUNDMIN") == 0 && itemcnt == 2 -+ else if (is_aff_rule(items, itemcnt, "COMPOUNDMIN", 2) - && compminlen == 0) - { - compminlen = atoi((char *)items[1]); -@@ -5411,7 +5586,7 @@ - smsg((char_u *)_("Wrong COMPOUNDMIN value in %s line %d: %s"), - fname, lnum, items[1]); - } -- else if (STRCMP(items[0], "COMPOUNDSYLMAX") == 0 && itemcnt == 2 -+ else if (is_aff_rule(items, itemcnt, "COMPOUNDSYLMAX", 2) - && compsylmax == 0) - { - compsylmax = atoi((char *)items[1]); -@@ -5419,32 +5594,29 @@ - smsg((char_u *)_("Wrong COMPOUNDSYLMAX value in %s line %d: %s"), - fname, lnum, items[1]); - } -- else if (STRCMP(items[0], "CHECKCOMPOUNDDUP") == 0 && itemcnt == 1) -+ else if (is_aff_rule(items, itemcnt, "CHECKCOMPOUNDDUP", 1)) - { - compoptions |= COMP_CHECKDUP; - } -- else if (STRCMP(items[0], "CHECKCOMPOUNDREP") == 0 && itemcnt == 1) -+ else if (is_aff_rule(items, itemcnt, "CHECKCOMPOUNDREP", 1)) - { - compoptions |= COMP_CHECKREP; - } -- else if (STRCMP(items[0], "CHECKCOMPOUNDCASE") == 0 && itemcnt == 1) -+ else if (is_aff_rule(items, itemcnt, "CHECKCOMPOUNDCASE", 1)) - { - compoptions |= COMP_CHECKCASE; - } -- else if (STRCMP(items[0], "CHECKCOMPOUNDTRIPLE") == 0 -- && itemcnt == 1) -+ else if (is_aff_rule(items, itemcnt, "CHECKCOMPOUNDTRIPLE", 1)) - { - compoptions |= COMP_CHECKTRIPLE; - } -- else if (STRCMP(items[0], "CHECKCOMPOUNDPATTERN") == 0 -- && itemcnt == 2) -+ else if (is_aff_rule(items, itemcnt, "CHECKCOMPOUNDPATTERN", 2)) - { - if (atoi((char *)items[1]) == 0) - smsg((char_u *)_("Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %s"), - fname, lnum, items[1]); - } -- else if (STRCMP(items[0], "CHECKCOMPOUNDPATTERN") == 0 -- && itemcnt == 3) -+ else if (is_aff_rule(items, itemcnt, "CHECKCOMPOUNDPATTERN", 3)) - { - garray_T *gap = &spin->si_comppat; - int i; -@@ -5463,24 +5635,24 @@ - = getroom_save(spin, items[2]); - } - } -- else if (STRCMP(items[0], "SYLLABLE") == 0 && itemcnt == 2 -+ else if (is_aff_rule(items, itemcnt, "SYLLABLE", 2) - && syllable == NULL) - { - syllable = getroom_save(spin, items[1]); - } -- else if (STRCMP(items[0], "NOBREAK") == 0 && itemcnt == 1) -+ else if (is_aff_rule(items, itemcnt, "NOBREAK", 1)) - { - spin->si_nobreak = TRUE; - } -- else if (STRCMP(items[0], "NOSPLITSUGS") == 0 && itemcnt == 1) -+ else if (is_aff_rule(items, itemcnt, "NOSPLITSUGS", 1)) - { - spin->si_nosplitsugs = TRUE; - } -- else if (STRCMP(items[0], "NOSUGFILE") == 0 && itemcnt == 1) -+ else if (is_aff_rule(items, itemcnt, "NOSUGFILE", 1)) - { - spin->si_nosugfile = TRUE; - } -- else if (STRCMP(items[0], "PFXPOSTPONE") == 0 && itemcnt == 1) -+ else if (is_aff_rule(items, itemcnt, "PFXPOSTPONE", 1)) - { - aff->af_pfxpostpone = TRUE; - } -@@ -5771,24 +5943,20 @@ - } - } - } -- else if (STRCMP(items[0], "FOL") == 0 && itemcnt == 2 -- && fol == NULL) -+ else if (is_aff_rule(items, itemcnt, "FOL", 2) && fol == NULL) - { - fol = vim_strsave(items[1]); - } -- else if (STRCMP(items[0], "LOW") == 0 && itemcnt == 2 -- && low == NULL) -+ else if (is_aff_rule(items, itemcnt, "LOW", 2) && low == NULL) - { - low = vim_strsave(items[1]); - } -- else if (STRCMP(items[0], "UPP") == 0 && itemcnt == 2 -- && upp == NULL) -+ else if (is_aff_rule(items, itemcnt, "UPP", 2) && upp == NULL) - { - upp = vim_strsave(items[1]); - } -- else if ((STRCMP(items[0], "REP") == 0 -- || STRCMP(items[0], "REPSAL") == 0) -- && itemcnt == 2) -+ else if (is_aff_rule(items, itemcnt, "REP", 2) -+ || is_aff_rule(items, itemcnt, "REPSAL", 2)) - { - /* Ignore REP/REPSAL count */; - if (!isdigit(*items[1])) -@@ -5819,7 +5987,7 @@ - : &spin->si_rep, items[1], items[2]); - } - } -- else if (STRCMP(items[0], "MAP") == 0 && itemcnt == 2) -+ else if (is_aff_rule(items, itemcnt, "MAP", 2)) - { - /* MAP item or count */ - if (!found_map) -@@ -5856,9 +6024,8 @@ - ga_append(&spin->si_map, '/'); - } - } -- /* Accept "SAL from to" and "SAL from to # comment". */ -- else if (STRCMP(items[0], "SAL") == 0 -- && (itemcnt == 3 || (itemcnt > 3 && items[3][0] == '#'))) -+ /* Accept "SAL from to" and "SAL from to #comment". */ -+ else if (is_aff_rule(items, itemcnt, "SAL", 3)) - { - if (do_sal) - { -@@ -5877,12 +6044,12 @@ - : items[2]); - } - } -- else if (STRCMP(items[0], "SOFOFROM") == 0 && itemcnt == 2 -+ else if (is_aff_rule(items, itemcnt, "SOFOFROM", 2) - && sofofrom == NULL) - { - sofofrom = getroom_save(spin, items[1]); - } -- else if (STRCMP(items[0], "SOFOTO") == 0 && itemcnt == 2 -+ else if (is_aff_rule(items, itemcnt, "SOFOTO", 2) - && sofoto == NULL) - { - sofoto = getroom_save(spin, items[1]); -@@ -5980,7 +6147,7 @@ - else if (spin->si_newprefID == 0 || spin->si_newprefID == 127) - MSG(_("Too many compound flags")); - else -- MSG(_("Too many posponed prefixes and/or compound flags")); -+ MSG(_("Too many postponed prefixes and/or compound flags")); - } - - if (syllable != NULL) -@@ -6017,6 +6184,22 @@ - } - - /* -+ * Return TRUE when items[0] equals "rulename", there are "mincount" items or -+ * a comment is following after item "mincount". -+ */ -+ static int -+is_aff_rule(items, itemcnt, rulename, mincount) -+ char_u **items; -+ int itemcnt; -+ char *rulename; -+ int mincount; -+{ -+ return (STRCMP(items[0], rulename) == 0 -+ && (itemcnt == mincount -+ || (itemcnt > mincount && items[mincount][0] == '#'))); -+} -+ -+/* - * For affix "entry" move COMPOUNDFORBIDFLAG and COMPOUNDPERMITFLAG from - * ae_flags to ae_comppermit and ae_compforbid. - */ -@@ -7926,6 +8109,8 @@ - char_u *p; - int rr; - int retval = OK; -+ size_t fwv = 1; /* collect return value of fwrite() to avoid -+ warnings from picky compiler */ - - fd = mch_fopen((char *)fname, "w"); - if (fd == NULL) -@@ -7936,11 +8121,11 @@ - - /* <HEADER>: <fileID> <versionnr> */ - /* <fileID> */ -- if (fwrite(VIMSPELLMAGIC, VIMSPELLMAGICL, (size_t)1, fd) != 1) -- { -- EMSG(_(e_write)); -- retval = FAIL; -- } -+ fwv &= fwrite(VIMSPELLMAGIC, VIMSPELLMAGICL, (size_t)1, fd); -+ if (fwv != (size_t)1) -+ /* Catch first write error, don't try writing more. */ -+ goto theend; -+ - putc(VIMSPELLVERSION, fd); /* <versionnr> */ - - /* -@@ -7955,7 +8140,7 @@ - - i = (int)STRLEN(spin->si_info); - put_bytes(fd, (long_u)i, 4); /* <sectionlen> */ -- fwrite(spin->si_info, (size_t)i, (size_t)1, fd); /* <infotext> */ -+ fwv &= fwrite(spin->si_info, (size_t)i, (size_t)1, fd); /* <infotext> */ - } - - /* SN_REGION: <regionname> ... -@@ -7966,7 +8151,7 @@ - putc(SNF_REQUIRED, fd); /* <sectionflags> */ - l = spin->si_region_count * 2; - put_bytes(fd, (long_u)l, 4); /* <sectionlen> */ -- fwrite(spin->si_region_name, (size_t)l, (size_t)1, fd); -+ fwv &= fwrite(spin->si_region_name, (size_t)l, (size_t)1, fd); - /* <regionname> ... */ - regionmask = (1 << spin->si_region_count) - 1; - } -@@ -8016,7 +8201,7 @@ - } - - put_bytes(fd, (long_u)l, 2); /* <folcharslen> */ -- fwrite(folchars, (size_t)l, (size_t)1, fd); /* <folchars> */ -+ fwv &= fwrite(folchars, (size_t)l, (size_t)1, fd); /* <folchars> */ - } - - /* SN_MIDWORD: <midword> */ -@@ -8027,7 +8212,8 @@ - - i = (int)STRLEN(spin->si_midword); - put_bytes(fd, (long_u)i, 4); /* <sectionlen> */ -- fwrite(spin->si_midword, (size_t)i, (size_t)1, fd); /* <midword> */ -+ fwv &= fwrite(spin->si_midword, (size_t)i, (size_t)1, fd); -+ /* <midword> */ - } - - /* SN_PREFCOND: <prefcondcnt> <prefcond> ... */ -@@ -8113,7 +8299,8 @@ - p = rr == 1 ? ftp->ft_from : ftp->ft_to; - l = (int)STRLEN(p); - putc(l, fd); -- fwrite(p, l, (size_t)1, fd); -+ if (l > 0) -+ fwv &= fwrite(p, l, (size_t)1, fd); - } - } - -@@ -8131,11 +8318,11 @@ - /* <sectionlen> */ - - put_bytes(fd, (long_u)l, 2); /* <sofofromlen> */ -- fwrite(spin->si_sofofr, l, (size_t)1, fd); /* <sofofrom> */ -+ fwv &= fwrite(spin->si_sofofr, l, (size_t)1, fd); /* <sofofrom> */ - - l = (int)STRLEN(spin->si_sofoto); - put_bytes(fd, (long_u)l, 2); /* <sofotolen> */ -- fwrite(spin->si_sofoto, l, (size_t)1, fd); /* <sofoto> */ -+ fwv &= fwrite(spin->si_sofoto, l, (size_t)1, fd); /* <sofoto> */ - } - - /* SN_WORDS: <word> ... -@@ -8160,7 +8347,7 @@ - l = (int)STRLEN(hi->hi_key) + 1; - len += l; - if (round == 2) /* <word> */ -- fwrite(hi->hi_key, (size_t)l, (size_t)1, fd); -+ fwv &= fwrite(hi->hi_key, (size_t)l, (size_t)1, fd); - --todo; - } - if (round == 1) -@@ -8176,7 +8363,7 @@ - putc(0, fd); /* <sectionflags> */ - l = spin->si_map.ga_len; - put_bytes(fd, (long_u)l, 4); /* <sectionlen> */ -- fwrite(spin->si_map.ga_data, (size_t)l, (size_t)1, fd); -+ fwv &= fwrite(spin->si_map.ga_data, (size_t)l, (size_t)1, fd); - /* <mapstr> */ - } - -@@ -8232,10 +8419,11 @@ - { - p = ((char_u **)(spin->si_comppat.ga_data))[i]; - putc((int)STRLEN(p), fd); /* <comppatlen> */ -- fwrite(p, (size_t)STRLEN(p), (size_t)1, fd);/* <comppattext> */ -+ fwv &= fwrite(p, (size_t)STRLEN(p), (size_t)1, fd); -+ /* <comppattext> */ - } - /* <compflags> */ -- fwrite(spin->si_compflags, (size_t)STRLEN(spin->si_compflags), -+ fwv &= fwrite(spin->si_compflags, (size_t)STRLEN(spin->si_compflags), - (size_t)1, fd); - } - -@@ -8259,7 +8447,8 @@ - - l = (int)STRLEN(spin->si_syllable); - put_bytes(fd, (long_u)l, 4); /* <sectionlen> */ -- fwrite(spin->si_syllable, (size_t)l, (size_t)1, fd); /* <syllable> */ -+ fwv &= fwrite(spin->si_syllable, (size_t)l, (size_t)1, fd); -+ /* <syllable> */ - } - - /* end of <SECTIONS> */ -@@ -8295,13 +8484,18 @@ - (void)put_node(fd, tree, 0, regionmask, round == 3); - } - -- /* Write another byte to check for errors. */ -+ /* Write another byte to check for errors (file system full). */ - if (putc(0, fd) == EOF) - retval = FAIL; -- -+theend: - if (fclose(fd) == EOF) - retval = FAIL; - -+ if (fwv != (size_t)1) -+ retval = FAIL; -+ if (retval == FAIL) -+ EMSG(_(e_write)); -+ - return retval; - } - -@@ -9890,6 +10084,7 @@ - char_u *p; - int len; - int totlen; -+ size_t x = 1; /* collect return value of fwrite() */ - - if (fd != NULL) - put_bytes(fd, (long_u)gap->ga_len, 2); /* <prefcondcnt> */ -@@ -9906,7 +10101,7 @@ - if (fd != NULL) - { - fputc(len, fd); -- fwrite(p, (size_t)len, (size_t)1, fd); -+ x &= fwrite(p, (size_t)len, (size_t)1, fd); - } - totlen += len; - } -@@ -11480,15 +11675,24 @@ - vim_strncpy(preword + sp->ts_prewordlen, - tword + sp->ts_splitoff, - sp->ts_twordlen - sp->ts_splitoff); -- p = preword; -- while (*skiptowhite(p) != NUL) -- p = skipwhite(skiptowhite(p)); -- if (fword_ends && !can_compound(slang, p, -- compflags + sp->ts_compsplit)) -- /* Compound is not allowed. But it may still be -- * possible if we add another (short) word. */ -+ -+ /* Verify CHECKCOMPOUNDPATTERN rules. */ -+ if (match_checkcompoundpattern(preword, sp->ts_prewordlen, -+ &slang->sl_comppat)) - compound_ok = FALSE; - -+ if (compound_ok) -+ { -+ p = preword; -+ while (*skiptowhite(p) != NUL) -+ p = skipwhite(skiptowhite(p)); -+ if (fword_ends && !can_compound(slang, p, -+ compflags + sp->ts_compsplit)) -+ /* Compound is not allowed. But it may still be -+ * possible if we add another (short) word. */ -+ compound_ok = FALSE; -+ } -+ - /* Get pointer to last char of previous word. */ - p = preword + sp->ts_prewordlen; - mb_ptr_back(preword, p); -@@ -11685,10 +11889,9 @@ - && (slang->sl_compsylmax < MAXWLEN - || sp->ts_complen + 1 - sp->ts_compsplit - < slang->sl_compmax) -- && (byte_in_str(sp->ts_complen == sp->ts_compsplit -- ? slang->sl_compstartflags -- : slang->sl_compallflags, -- ((unsigned)flags >> 24)))) -+ && (can_be_compound(sp, slang, -+ compflags, ((unsigned)flags >> 24)))) -+ - { - try_compound = TRUE; - compflags[sp->ts_complen] = ((unsigned)flags >> 24); -diff -Naur vim72.orig/src/structs.h vim72/src/structs.h ---- vim72.orig/src/structs.h 2008-07-30 21:02:50.000000000 +0100 -+++ vim72/src/structs.h 2008-12-06 11:37:49.000000000 +0000 -@@ -459,7 +459,7 @@ - typedef struct - { - int hide; /* TRUE when ":hide" was used */ --# ifdef FEAT_BROWSE -+# ifdef FEAT_BROWSE_CMD - int browse; /* TRUE to invoke file dialog */ - # endif - # ifdef FEAT_WINDOWS -@@ -1784,10 +1784,15 @@ - #endif - - /* -- * The next three specify the offsets for displaying the buffer: -+ * "w_topline", "w_leftcol" and "w_skipcol" specify the offsets for -+ * displaying the buffer. - */ - linenr_T w_topline; /* buffer line number of the line at the - top of the window */ -+#ifdef FEAT_AUTOCMD -+ char w_topline_was_set; /* flag set to TRUE when topline is set, -+ e.g. by winrestview() */ -+#endif - #ifdef FEAT_DIFF - int w_topfill; /* number of filler lines above w_topline */ - int w_old_topfill; /* w_topfill at last redraw */ -diff -Naur vim72.orig/src/testdir/Makefile vim72/src/testdir/Makefile ---- vim72.orig/src/testdir/Makefile 2008-06-19 21:29:46.000000000 +0100 -+++ vim72/src/testdir/Makefile 2008-12-06 11:37:48.000000000 +0000 -@@ -26,15 +26,17 @@ - - .SUFFIXES: .in .out - --nongui: nolog $(SCRIPTS) -- @echo -- @cat test.log -- @echo ALL DONE -+nongui: nolog $(SCRIPTS) report -+ -+gui: nolog $(SCRIPTS) $(SCRIPTS_GUI) report - --gui: nolog $(SCRIPTS) $(SCRIPTS_GUI) -+report: - @echo -- @cat test.log -- @echo ALL DONE -+ @echo 'Test results:' -+ @/bin/sh -c "if test -f test.log; \ -+ then cat test.log; echo TEST FAILURE; exit 1; \ -+ else echo ALL DONE; \ -+ fi" - - $(SCRIPTS) $(SCRIPTS_GUI): $(VIMPROG) - -@@ -71,4 +73,4 @@ - test60.out: test60.vim - - nolog: -- -echo Test results: >test.log -+ -rm -f test.log -diff -Naur vim72.orig/src/testdir/Make_ming.mak vim72/src/testdir/Make_ming.mak ---- vim72.orig/src/testdir/Make_ming.mak 1970-01-01 01:00:00.000000000 +0100 -+++ vim72/src/testdir/Make_ming.mak 2008-12-06 11:37:48.000000000 +0000 -@@ -0,0 +1,91 @@ -+# Makefile to run tests for Vim, on Dos-like machines -+# with sh.exe or zsh.exe in the path or not. -+# -+# Author: Bill McCarthy -+# -+# Note that test54 has been removed until it is fixed. -+# -+# Requires a set of Unix tools: echo, diff, etc. -+ -+ifneq (sh.exe, $(SHELL)) -+DEL = rm -f -+MV = mv -+CP = cp -+DIRSLASH = / -+else -+DEL = del -+MV = rename -+CP = copy -+DIRSLASH = \ -+endif -+ -+VIMPROG = ..$(DIRSLASH)vim -+ -+# Omitted: -+# test2 "\tmp" doesn't work. -+# test10 'errorformat' is different -+# test12 can't unlink a swap file -+# test25 uses symbolic link -+# test27 can't edit file with "*" in file name -+# test31 16 bit version runs out of memory... -+ -+SCRIPTS16 = test1.out test19.out test20.out test22.out \ -+ test23.out test24.out test28.out test29.out \ -+ test35.out test36.out test43.out \ -+ test44.out test45.out test46.out test47.out \ -+ test48.out test51.out test53.out \ -+ test55.out test56.out test57.out test58.out test59.out \ -+ test60.out test61.out test62.out test63.out test64.out -+ -+# Had to remove test54 which doesn't work yet. -+# test54.out -+ -+SCRIPTS = test3.out test4.out test5.out test6.out test7.out \ -+ test8.out test9.out test11.out test13.out test14.out \ -+ test15.out test17.out test18.out test21.out test26.out \ -+ test30.out test31.out test32.out test33.out test34.out \ -+ test37.out test38.out test39.out test40.out test41.out \ -+ test42.out test52.out test65.out -+ -+SCRIPTS32 = test50.out -+ -+SCRIPTS_GUI = test16.out -+ -+.SUFFIXES: .in .out -+ -+vimall: fixff $(SCRIPTS16) $(SCRIPTS) $(SCRIPTS_GUI) $(SCRIPTS32) -+ echo ALL DONE -+ -+nongui: fixff $(SCRIPTS16) $(SCRIPTS) -+ echo ALL DONE -+ -+small: -+ echo ALL DONE -+ -+gui: fixff $(SCRIPTS16) $(SCRIPTS) $(SCRIPTS_GUI) -+ echo ALL DONE -+ -+win32: fixff $(SCRIPTS16) $(SCRIPTS) $(SCRIPTS32) -+ echo ALL DONE -+ -+fixff: -+ -$(VIMPROG) -u dos.vim --noplugin "+argdo set ff=dos|upd" +q *.in *.ok -+ -+clean: -+ -$(DEL) *.out -+ -$(DEL) test.ok -+ -$(DEL) small.vim -+ -$(DEL) tiny.vim -+ -$(DEL) mbyte.vim -+ -$(DEL) X* -+ -$(DEL) viminfo -+ -+.in.out: -+ $(CP) $*.ok test.ok -+ $(VIMPROG) -u dos.vim -U NONE --noplugin -s dotest.in $*.in -+ diff test.out $*.ok -+ -$(DEL) $*.out -+ $(MV) test.out $*.out -+ -$(DEL) X* -+ -$(DEL) test.ok -+ -$(DEL) viminfo -diff -Naur vim72.orig/src/testdir/test30.in vim72/src/testdir/test30.in ---- vim72.orig/src/testdir/test30.in 2008-06-25 22:33:01.000000000 +0100 -+++ vim72/src/testdir/test30.in 2008-12-06 11:37:48.000000000 +0000 -@@ -24,10 +24,17 @@ - :set nobin eol - :bwipe XXUnix XXDos XXMac - :" create mixed format files --:!cat XXUnix XXDos >XXUxDs --:!cat XXUnix XXMac >XXUxMac --:!cat XXDos XXMac >XXDosMac --:!cat XXUnix XXDos XXMac >XXUxDsMc -+:if has("vms") -+: !copy XXUnix,XXDos XXUxDs. -+: !copy XXUnix,XXMac XXUxMac. -+: !copy XXDos,XXMac XXDosMac. -+: !copy XXUnix,XXDos,XXMac XXUxDsMc. -+:else -+: !cat XXUnix XXDos >XXUxDs -+: !cat XXUnix XXMac >XXUxMac -+: !cat XXDos XXMac >XXDosMac -+: !cat XXUnix XXDos XXMac >XXUxDsMc -+:endif - :" - :" try reading and writing with 'fileformats' empty - :set fileformat=unix -diff -Naur vim72.orig/src/testdir/test42.ok vim72/src/testdir/test42.ok ---- vim72.orig/src/testdir/test42.ok 2008-02-20 12:27:37.000000000 +0000 -+++ vim72/src/testdir/test42.ok 2008-12-06 11:37:49.000000000 +0000 -@@ -20,7 +20,7 @@ - ucs-2 - - -- fileencoding=ucs-2le -+ fileencoding=utf-16le - bomb - ucs-2le - -diff -Naur vim72.orig/src/testdir/test54.in vim72/src/testdir/test54.in ---- vim72.orig/src/testdir/test54.in 2005-01-01 11:21:16.000000000 +0000 -+++ vim72/src/testdir/test54.in 2008-12-06 11:37:48.000000000 +0000 -@@ -3,8 +3,13 @@ - STARTTEST - :so small.vim - :e xx --:!rm -f test.out --:au BufLeave <buffer> :!echo buffer-local autommand in %>> test.out -+:if has("vms") -+: !del test.out.* -+: au BufLeave <buffer> :!write sys$output "buffer-local autommand in %" > test.out -+:else -+: !rm -f test.out -+: au BufLeave <buffer> :!echo buffer-local autommand in %>> test.out -+:endif - :e somefile " here, autocommand for xx shall write test.out - : " but autocommand shall not apply to buffer named <buffer> - :bwipe xx " here, autocommand shall be auto-deleted -diff -Naur vim72.orig/src/ui.c vim72/src/ui.c ---- vim72.orig/src/ui.c 2008-07-14 19:14:56.000000000 +0100 -+++ vim72/src/ui.c 2008-12-06 11:37:50.000000000 +0000 -@@ -1820,7 +1820,7 @@ - #ifdef HAVE_DUP - /* Use stderr for stdin, also works for shell commands. */ - close(0); -- dup(2); -+ ignored = dup(2); - #else - read_cmd_fd = 2; /* read from stderr instead of stdin */ - #endif -@@ -2020,7 +2020,7 @@ - - if (value == NULL || *length == 0) - { -- clip_free_selection(cbd); /* ??? [what's the query?] */ -+ clip_free_selection(cbd); /* nothing received, clear register */ - *(int *)success = FALSE; - return; - } -@@ -2076,7 +2076,7 @@ - text_prop.value = (unsigned char *)value; - text_prop.encoding = *type; - text_prop.format = *format; -- text_prop.nitems = STRLEN(value); -+ text_prop.nitems = len; - status = XmbTextPropertyToTextList(X_DISPLAY, &text_prop, - &text_list, &n_text); - if (status != Success || n_text < 1) -@@ -2110,6 +2110,8 @@ - int i; - int nbytes = 0; - char_u *buffer; -+ time_t start_time; -+ int timed_out = FALSE; - - for (i = - #ifdef FEAT_MBYTE -@@ -2129,6 +2131,7 @@ - case 3: type = text_atom; break; - default: type = XA_STRING; - } -+ success = MAYBE; - XtGetSelectionValue(myShell, cbd->sel_atom, type, - clip_x11_request_selection_cb, (XtPointer)&success, CurrentTime); - -@@ -2141,27 +2144,48 @@ - * characters, then they will appear before the one that requested the - * paste! Don't worry, we will catch up with any other events later. - */ -- for (;;) -+ start_time = time(NULL); -+ while (success == MAYBE) - { -- if (XCheckTypedEvent(dpy, SelectionNotify, &event)) -- break; -- if (XCheckTypedEvent(dpy, SelectionRequest, &event)) -- /* We may get a SelectionRequest here and if we don't handle -- * it we hang. KDE klipper does this, for example. */ -+ if (XCheckTypedEvent(dpy, SelectionNotify, &event) -+ || XCheckTypedEvent(dpy, SelectionRequest, &event) -+ || XCheckTypedEvent(dpy, PropertyNotify, &event)) -+ { -+ /* This is where clip_x11_request_selection_cb() should be -+ * called. It may actually happen a bit later, so we loop -+ * until "success" changes. -+ * We may get a SelectionRequest here and if we don't handle -+ * it we hang. KDE klipper does this, for example. -+ * We need to handle a PropertyNotify for large selections. */ - XtDispatchEvent(&event); -+ continue; -+ } -+ -+ /* Time out after 2 to 3 seconds to avoid that we hang when the -+ * other process doesn't respond. Note that the SelectionNotify -+ * event may still come later when the selection owner comes back -+ * to life and the text gets inserted unexpectedly. Don't know -+ * why that happens or how to avoid that :-(. */ -+ if (time(NULL) > start_time + 2) -+ { -+ timed_out = TRUE; -+ break; -+ } - - /* Do we need this? Probably not. */ - XSync(dpy, False); - -- /* Bernhard Walle solved a slow paste response in an X terminal by -- * adding: usleep(10000); here. */ -+ /* Wait for 1 msec to avoid that we eat up all CPU time. */ -+ ui_delay(1L, TRUE); - } - -- /* this is where clip_x11_request_selection_cb() is actually called */ -- XtDispatchEvent(&event); -- -- if (success) -+ if (success == TRUE) - return; -+ -+ /* don't do a retry with another type after timing out, otherwise we -+ * hang for 15 seconds. */ -+ if (timed_out) -+ break; - } - - /* Final fallback position - use the X CUT_BUFFER0 store */ -diff -Naur vim72.orig/src/version.c vim72/src/version.c ---- vim72.orig/src/version.c 2008-08-09 15:24:52.000000000 +0100 -+++ vim72/src/version.c 2008-12-06 11:37:50.000000000 +0000 -@@ -677,9 +677,152 @@ - static int included_patches[] = - { /* Add new patch number below this line */ - /**/ -+ 65, -+/**/ -+ 64, -+/**/ -+ 63, -+/**/ -+ 62, -+/**/ -+ 61, -+/**/ -+ 60, -+/**/ -+ 59, -+/**/ -+ 58, -+/**/ -+ 57, -+/**/ -+ 56, -+/**/ -+ 55, -+/**/ -+ 54, -+/**/ -+ 53, -+/**/ -+ 52, -+/**/ -+ 51, -+/**/ -+ 50, -+/**/ -+ 49, -+/**/ -+ 48, -+/**/ -+ 47, -+/**/ -+ 46, -+/**/ -+ 45, -+/**/ -+ 44, -+/**/ -+ 43, -+/**/ -+ 42, -+/**/ -+ 41, -+/**/ -+ 40, -+/**/ -+ 39, -+/**/ -+ 38, -+/**/ -+ 37, -+/**/ -+ 36, -+/**/ -+ 35, -+/**/ -+ 34, -+/**/ -+ 33, -+/**/ -+ 32, -+/**/ -+ 31, -+/**/ -+ 30, -+/**/ -+ 29, -+/**/ -+ 28, -+/**/ -+ 27, -+/**/ -+ 26, -+/**/ -+ 25, -+/**/ -+ 24, -+/**/ -+ 23, -+/**/ -+ 22, -+/**/ -+ 21, -+/**/ -+ 20, -+/**/ -+ 19, -+/**/ -+ 18, -+/**/ -+ 17, -+/**/ -+ 16, -+/**/ -+ 15, -+/**/ -+ 14, -+/**/ -+ 13, -+/**/ -+ 12, -+/**/ -+ 11, -+/**/ -+ 10, -+/**/ -+ 9, -+/**/ -+ 8, -+/**/ -+ 7, -+/**/ -+ 6, -+/**/ -+ 5, -+/**/ -+ 4, -+/**/ -+ 3, -+/**/ -+ 2, -+/**/ -+ 1, -+/**/ - 0 - }; - -+/* -+ * Place to put a short description when adding a feature with a patch. -+ * Keep it short, e.g.,: "relative numbers", "persistent undo". -+ * Also add a comment marker to separate the lines. -+ * See the official Vim patches for the diff format: It must use a context of -+ * one line only. Use "diff -C2". -+ */ -+static char *(extra_patches[]) = -+{ /* Add your patch description below this line */ -+/**/ -+ NULL -+}; -+ - int - highest_patch() - { -@@ -786,7 +929,7 @@ - MSG_PUTS(_("\nRISC OS version")); - #endif - #ifdef VMS -- MSG_PUTS("\nOpenVMS version"); -+ MSG_PUTS(_("\nOpenVMS version")); - # ifdef HAVE_PATHDEF - if (*compiled_arch != NUL) - { -@@ -825,6 +968,19 @@ - } - } - -+ /* Print the list of extra patch descriptions if there is at least one. */ -+ if (extra_patches[0] != NULL) -+ { -+ MSG_PUTS(_("\nExtra patches: ")); -+ s = ""; -+ for (i = 0; extra_patches[i] != NULL; ++i) -+ { -+ MSG_PUTS(s); -+ s = ", "; -+ MSG_PUTS(extra_patches[i]); -+ } -+ } -+ - #ifdef MODIFIED_BY - MSG_PUTS("\n"); - MSG_PUTS(_("Modified by ")); -diff -Naur vim72.orig/src/vim.h vim72/src/vim.h ---- vim72.orig/src/vim.h 2008-08-09 17:03:38.000000000 +0100 -+++ vim72/src/vim.h 2008-12-06 11:37:50.000000000 +0000 -@@ -341,8 +341,14 @@ - #ifdef BACKSLASH_IN_FILENAME - # define PATH_ESC_CHARS ((char_u *)" \t\n*?[{`%#'"|!<") - #else --# define PATH_ESC_CHARS ((char_u *)" \t\n*?[{`$\%#'"|!<") --# define SHELL_ESC_CHARS ((char_u *)" \t\n*?[{`$\%#'"|!<>();&") -+# ifdef VMS -+ /* VMS allows a lot of characters in the file name */ -+# define PATH_ESC_CHARS ((char_u *)" \t\n*?{`\%#'"|!") -+# define SHELL_ESC_CHARS ((char_u *)" \t\n*?{`\%#'|!()&") -+# else -+# define PATH_ESC_CHARS ((char_u *)" \t\n*?[{`$\%#'"|!<") -+# define SHELL_ESC_CHARS ((char_u *)" \t\n*?[{`$\%#'"|!<>();&") -+# endif - #endif - - #define NUMBUFLEN 30 /* length of a buffer to store a number in ASCII */ -@@ -370,7 +376,7 @@ - * Define __w64 as an empty token for everything but MSVC 7.x or later. - */ - # if !defined(_MSC_VER) || (_MSC_VER < 1300) --# define __w64 -+# define __w64 - # endif - typedef unsigned long __w64 long_u; - typedef long __w64 long_i; -@@ -1728,7 +1734,8 @@ - #define VV_MOUSE_COL 51 - #define VV_OP 52 - #define VV_SEARCHFORWARD 53 --#define VV_LEN 54 /* number of v: vars */ -+#define VV_OLDFILES 54 -+#define VV_LEN 55 /* number of v: vars */ - - #ifdef FEAT_CLIPBOARD - -@@ -1979,6 +1986,9 @@ - # endif - #endif - -+#ifndef FEAT_NETBEANS_INTG -+# undef NBDEBUG -+#endif - #ifdef NBDEBUG /* Netbeans debugging. */ - # include "nbdebug.h" - #else -@@ -2054,4 +2064,10 @@ - #define DOSO_VIMRC 1 /* loading vimrc file */ - #define DOSO_GVIMRC 2 /* loading gvimrc file */ - -+/* flags for read_viminfo() and children */ -+#define VIF_WANT_INFO 1 /* load non-mark info */ -+#define VIF_WANT_MARKS 2 /* load file marks */ -+#define VIF_FORCEIT 4 /* overwrite info already read */ -+#define VIF_GET_OLDFILES 8 /* load v:oldfiles */ -+ - #endif /* VIM__H */ -diff -Naur vim72.orig/src/window.c vim72/src/window.c ---- vim72.orig/src/window.c 2008-08-06 12:00:30.000000000 +0100 -+++ vim72/src/window.c 2008-12-06 11:37:50.000000000 +0000 -@@ -531,7 +531,8 @@ - # ifdef FEAT_SCROLLBIND - curwin->w_p_scb = FALSE; - # endif -- (void)do_ecmd(0, ptr, NULL, NULL, ECMD_LASTL, ECMD_HIDE); -+ (void)do_ecmd(0, ptr, NULL, NULL, ECMD_LASTL, -+ ECMD_HIDE, NULL); - if (nchar == 'F' && lnum >= 0) - { - curwin->w_cursor.lnum = lnum; -@@ -4028,14 +4029,14 @@ - if (mch_dirname(cwd, MAXPATHL) == OK) - globaldir = vim_strsave(cwd); - } -- mch_chdir((char *)curwin->w_localdir); -- shorten_fnames(TRUE); -+ if (mch_chdir((char *)curwin->w_localdir) == 0) -+ shorten_fnames(TRUE); - } - else if (globaldir != NULL) - { - /* Window doesn't have a local directory and we are not in the global - * directory: Change to the global directory. */ -- mch_chdir((char *)globaldir); -+ ignored = mch_chdir((char *)globaldir); - vim_free(globaldir); - globaldir = NULL; - shorten_fnames(TRUE); -diff -Naur vim72.orig/src/workshop.c vim72/src/workshop.c ---- vim72.orig/src/workshop.c 2008-06-21 19:53:26.000000000 +0100 -+++ vim72/src/workshop.c 2008-12-06 11:37:50.000000000 +0000 -@@ -1121,8 +1121,12 @@ - ? (char *)curbuf->b_sfname : "<None>"); - #endif - -- strcpy(ffname, (char *) curbuf->b_ffname); -- *filename = ffname; /* copy so nobody can change b_ffname */ -+ if (curbuf->b_ffname == NULL) -+ ffname[0] = NUL; -+ else -+ /* copy so nobody can change b_ffname */ -+ strcpy(ffname, (char *) curbuf->b_ffname); -+ *filename = ffname; - *curLine = curwin->w_cursor.lnum; - *curCol = curwin->w_cursor.col; - diff --git a/src/patches/vim-7.2-mandir-1.patch b/src/patches/vim-7.2-mandir-1.patch deleted file mode 100644 index 4038442..0000000 --- a/src/patches/vim-7.2-mandir-1.patch +++ /dev/null @@ -1,82 +0,0 @@ -Submitted By: Alexander E. Patrakov -Date: 2006-05-27 -Initial Package Version: 7.0 -Upstream status: LFS specific -Description: Adjusts installation of manual pages to meet Man-DB expectations. - - Additional change to explicitly install the man pages into - /usr/share/man instead of /usr/man by Ag Hatzim. - ---- vim70/src/Makefile.orig 2006-05-27 12:49:31.767959808 +0300 -+++ vim70/src/Makefile 2006-05-27 12:49:55.778309680 +0300 -@@ -867,7 +867,7 @@ - # Uncomment the next line to install Vim in "/usr/bin" - #BINDIR = /usr/bin - # Uncomment the next line to install Vim manuals in "/usr/share/man/man1" --#MANDIR = /usr/share/man -+MANDIR = /usr/share/man - # Uncomment the next line to install Vim help files in "/usr/share/vim" - #DATADIR = /usr/share - -@@ -1325,7 +1325,7 @@ - DEST_MAN_PL = $(DEST_MAN_TOP)/pl$(MAN1DIR) - DEST_MAN_PL_I = $(DEST_MAN_TOP)/pl.ISO8859-2$(MAN1DIR) - DEST_MAN_PL_U = $(DEST_MAN_TOP)/pl.UTF-8$(MAN1DIR) --DEST_MAN_RU = $(DEST_MAN_TOP)/ru.KOI8-R$(MAN1DIR) -+DEST_MAN_RU = $(DEST_MAN_TOP)/ru$(MAN1DIR) - DEST_MAN_RU_U = $(DEST_MAN_TOP)/ru.UTF-8$(MAN1DIR) - - # BASIC_SRC: files that are always used -@@ -1905,52 +1905,24 @@ - # install the language specific files for tools, if they were unpacked - install-tool-languages: - -$(SHELL) ./installman.sh xxd $(DEST_MAN_FR) "-fr" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh xxd $(DEST_MAN_FR_I) "-fr" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh xxd $(DEST_MAN_FR_U) "-fr.UTF-8" $(INSTALLMANARGS) - -$(SHELL) ./installman.sh xxd $(DEST_MAN_IT) "-it" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh xxd $(DEST_MAN_IT_I) "-it" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh xxd $(DEST_MAN_IT_U) "-it.UTF-8" $(INSTALLMANARGS) - -$(SHELL) ./installman.sh xxd $(DEST_MAN_PL) "-pl" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh xxd $(DEST_MAN_PL_I) "-pl" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh xxd $(DEST_MAN_PL_U) "-pl.UTF-8" $(INSTALLMANARGS) - -$(SHELL) ./installman.sh xxd $(DEST_MAN_RU) "-ru" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh xxd $(DEST_MAN_RU_U) "-ru.UTF-8" $(INSTALLMANARGS) - - # install the language specific files, if they were unpacked - install-languages: languages $(DEST_LANG) $(DEST_KMAP) - -$(SHELL) ./installman.sh install $(DEST_MAN_FR) "-fr" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh install $(DEST_MAN_FR_I) "-fr" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh install $(DEST_MAN_FR_U) "-fr.UTF-8" $(INSTALLMANARGS) - -$(SHELL) ./installman.sh install $(DEST_MAN_IT) "-it" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh install $(DEST_MAN_IT_I) "-it" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh install $(DEST_MAN_IT_U) "-it.UTF-8" $(INSTALLMANARGS) - -$(SHELL) ./installman.sh install $(DEST_MAN_PL) "-pl" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh install $(DEST_MAN_PL_I) "-pl" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh install $(DEST_MAN_PL_U) "-pl.UTF-8" $(INSTALLMANARGS) - -$(SHELL) ./installman.sh install $(DEST_MAN_RU) "-ru" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh install $(DEST_MAN_RU_U) "-ru.UTF-8" $(INSTALLMANARGS) - -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ - $(DEST_MAN_FR) $(INSTALLMLARGS) - -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ -- $(DEST_MAN_FR_I) $(INSTALLMLARGS) -- -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ -- $(DEST_MAN_FR_U) $(INSTALLMLARGS) -- -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ - $(DEST_MAN_IT) $(INSTALLMLARGS) - -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ -- $(DEST_MAN_IT_I) $(INSTALLMLARGS) -- -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ -- $(DEST_MAN_IT_U) $(INSTALLMLARGS) -- -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ - $(DEST_MAN_PL) $(INSTALLMLARGS) - -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ -- $(DEST_MAN_PL_I) $(INSTALLMLARGS) -- -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ -- $(DEST_MAN_PL_U) $(INSTALLMLARGS) -- -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ - $(DEST_MAN_RU) $(INSTALLMLARGS) -- -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ -- $(DEST_MAN_RU_U) $(INSTALLMLARGS) - if test -n "$(MAKEMO)" -a -f $(PODIR)/Makefile; then \ - cd $(PODIR); $(MAKE) prefix=$(DESTDIR)$(prefix) LOCALEDIR=$(DEST_LANG) \ - INSTALL_DATA=$(INSTALL_DATA) FILEMOD=$(FILEMOD) install; \ diff --git a/src/patches/wget-1.14-texi2pod-1.patch b/src/patches/wget-1.14-texi2pod-1.patch new file mode 100644 index 0000000..700242b --- /dev/null +++ b/src/patches/wget-1.14-texi2pod-1.patch @@ -0,0 +1,32 @@ +Submitted By: Ken Moffat <ken at linuxfromscratch dot org> +Date: 2013-06-18 +Initial Package Version: 1.14 +Upstream Status: Submitted +Origin: Arch +Description: Build with perl-5.18. + +http://lists.gnu.org/archive/html/bug-wget/2013-06/msg00046.html + +From 2ed1707b5d8be66feb80cccfe8e11e719b52b99a Mon Sep 17 00:00:00 2001 +From: Dave Reisner dreisner@archlinux.org +Date: Mon, 17 Jun 2013 23:31:46 +0530 +Subject: [PATCH] Fix error in texi2pod intriduced with Perl 5.18 + +--- + +diff --git a/doc/texi2pod.pl b/doc/texi2pod.pl +index 86c4b18..9db6de1 100755 +--- a/doc/texi2pod.pl ++++ b/doc/texi2pod.pl +@@ -291,7 +291,7 @@ while(<$inf>) { + if (defined $1) { + my $thing = $1; + if ($ic =~ /@asis/) { +- $_ = "\n=item $thing\n"; ++ $_ = "\n=item C<$thing>\n"; + } else { + # Entity escapes prevent munging by the <> processing below. + $_ = "\n=item $ic<$thing>\n"; +-- +1.8.3.1 + diff --git a/src/scripts/dialctrl.pl b/src/scripts/dialctrl.pl deleted file mode 100644 index 88f5492..0000000 --- a/src/scripts/dialctrl.pl +++ /dev/null @@ -1,199 +0,0 @@ -#!/usr/bin/perl -# -# Dialup Statistics for IPFire -# based on SilverStar's work on -# http://goodymuc.go.funpic.de -# - -require '/var/ipfire/general-functions.pl'; -require "${General::swroot}/lang.pl"; -require "${General::swroot}/header.pl"; - -($sec,$min,$hour,$mday,$mon,$year,$wday,$ydat,$isdst)=localtime(); - $jahr=$year; - $monat=$mon+1; - $tag=$mday; - $jahr=$year; - -$jahr=$year +1900; - -if (length($monat) == 1) -{ - $monat="0$monat"; -} -if(length($tag) == 1) -{ - $tag="0$tag"; -} -if(length($hour) == 1) -{ - $hour="0$hour"; -} -if(length($min) == 1) -{ - $min="0$min"; -} -if(length($sec) == 1) -{ - $sec="0$sec"; -} - -my $s_date = $tag."/".$monat."/".$jahr; -my $s_time = $hour.":".$min.":".$sec; -my $file_log = "/var/log/counter/dialup.log"; -my $file_connect = "/var/log/counter/connect"; -my $file_reset = "/var/log/counter/reset"; - -if ($ARGV[0] eq 'up') { - if (! -e "$file_log") { - &new; - } else { - open(CONNECT,">$file_connect"); - close(CONNECT); - open(COUNTER,"<$file_log"); - $line = <COUNTER>; - ($start,$update,$up,$down,$rec,$on,$bit) = split(/|/,$line); - close(COUNTER); - $up++; - $update = $s_date." on ".$s_time; - open(COUNTER,">$file_log"); - print COUNTER "$start|$update|$up|$down|$rec|$on|$bit"; - close(COUNTER); - } -} - -if ($ARGV[0] eq 'down') { - if (! -e "$file_log") { - &new; - } else { - open(COUNTER,"<$file_log"); - $line = <COUNTER>; - ($start,$update,$up,$down,$rec,$on,$bit) = split(/|/,$line); - close(COUNTER); - $on =~ /(\d+)d\s+(\d+)h\s+(\d+)m\s+(\d+)s/; - $d1 = $1; $h1 = $2; $m1 = $3; $s1 = $4; - $con = &General::age("$file_connect"); - $con =~ /(\d+)d\s+(\d+)h\s+(\d+)m\s+(\d+)s/; - $d2 = $1; $h2 = $2; $m2 = $3; $s2 = $4; - $sum_d = ($d1 + $d2) * 86400; - $sum_h = ($h1 + $h2) * 3600; - $sum_m = ($m1 + $m2) * 60; - $sum_s = ($s1 + $s2); - $sum_1 = $sum_d + $sum_h + $sum_m + $sum_s; - $d = int($sum_1 / 86400); - $totalhours = int($sum_1 / 3600); - $h = $totalhours % 24; - $totalmins = int($sum_1 / 60); - $m = $totalmins % 60; - $s = $sum_1 % 60; - $on = "${d}d ${h}h ${m}m ${s}s"; - $down++; - $update = $s_date." on ".$s_time; - open(COUNTER,">$file_log"); - print COUNTER "$start|$update|$up|$down|$rec|$on|$bit"; - close(COUNTER); - } -} - -if ($ARGV[0] eq 'rec') { - if (! -e "$file_log") { - &new; - } else { - open(COUNTER,"<$file_log"); - $line = <COUNTER>; - ($start,$update,$up,$down,$rec,$on,$bit) = split(/|/,$line); - close(COUNTER); - $rec++; - $update = $s_date." on ".$s_time; - open(COUNTER,">$file_log"); - print COUNTER "$start|$update|$up|$down|$rec|$on|$bit"; - close(COUNTER); - } -} - -elsif ($ARGV[0] eq 'show') { -if (! -e "$file_log") { - &new; - } -else { - open(COUNTER,"<$file_log"); - $line = <COUNTER>; - ($start,$update,$up,$down,$rec,$on,$bit) = split(/|/,$line); - $on =~ /(\d+)d\s+(\d+)h\s+(\d+)m\s+(\d+)s/; - $d1 = $1; $h1 = $2; $m1 = $3; $s1 = $4; - close(COUNTER); - if ( ! -e "${General::swroot}/red/active") { - $timecon = "0d 0h 0m 0s"; - } else { - $timecon = &General::age("$file_connect"); - } - $timecon =~ /(\d+)d\s+(\d+)h\s+(\d+)m\s+(\d+)s/; - $d2 = $1; $h2 = $2; $m2 = $3; $s2 = $4; - $timeres = &General::age("$file_reset"); - $timeres =~ /(\d+)d\s+(\d+)h\s+(\d+)m\s+(\d+)s/; - $d3 = $1; $h3 = $2; $m3 = $3; $s3 = $4; - $sum_d1 = ($d1 + $d2) * 86400; - $sum_h1 = ($h1 + $h2) * 3600; - $sum_m1 = ($m1 + $m2) * 60; - $sum_s1 = ($s1 + $s2); - $sum_1 = $sum_d1 + $sum_h1 + $sum_m1 + $sum_s1; - $sum_d2 = $d3 * 86400; - $sum_h2 = $h3 * 3600; - $sum_m2 = $m3 * 60; - $sum_s2 = $s3; - $sum_2 = $sum_d2 + $sum_h2 + $sum_m2 + $sum_s2; - $d = int($sum_1 / 86400); - $totalhours = int($sum_1 / 3600); - $h = $totalhours % 24; - $totalmins = int($sum_1 / 60); - $m = $totalmins % 60; - $s = $sum_1 % 60; - $current = "${d}d ${h}h ${m}m ${s}s"; - $ontime = ( $sum_1 * 100 ) / $sum_2; - if ($ontime >= 99.95) { - $ontime = sprintf("%.0f", $ontime); - } - elsif ($ontime <= 0.05) { - $ontime = sprintf("%.0f", $ontime); - } - else { - $ontime = sprintf("%.1f", $ontime); - } - -print <<END -<br />$Lang::tr{'since'} $update -<tr><td colspan='3' align='center'>$Lang::tr{'connections'}: $up | $Lang::tr{'disconnects'}: $down | $Lang::tr{'attemps'}: $rec -<tr><td><b>$Lang::tr{'total connection time'}:</b><td align='right'>$current<td align='left'> ~ $ontime% -END -; - } -} - -elsif ($ARGV[0] eq 'reset') { - &new; -} - -elsif ($ARGV[0] eq '') { - print "\nDont run on the console...\n\n"; -} - -exit 0; - -sub new { - open(COUNTER,">$file_log"); - $start = $s_date." on ".$s_time; - $update = "‹no action since clearing›"; - $up = "0"; - $down = "0"; - $rec = "0"; - $on = "0d 0h 0m"; - $bit = "0"; - print COUNTER "$start|$update|$up|$down|$rec|$on|$bit"; - close(COUNTER); - open(CONNECT,">$file_connect"); - print CONNECT "0"; - close(CONNECT); - open(RESET,">$file_reset"); - print RESET "0"; - close(RESET); -} diff --git a/src/scripts/setddns.pl b/src/scripts/setddns.pl index f943ac8..f97e750 100644 --- a/src/scripts/setddns.pl +++ b/src/scripts/setddns.pl @@ -44,37 +44,15 @@ if (open(FILE, "$filename")) { # ignore monthly update if not in minimize update mode exit 0 if (($settings{'MINIMIZEUPDATES'} ne 'on') && ($ARGV[1] eq '-m'));
-my $ip; -if (open(IP, "${General::swroot}/red/local-ipaddress")) { - $ip = <IP>; - close(IP); - chomp $ip; -} else { - &General::log('Dynamic DNS failure : unable to open local-ipaddress file.'); - exit 0; -} - -#If IP is reserved network, we are behind a router. May we ask for our real public IP ? -if ( &General::IpInSubnet ($ip,'10.0.0.0','255.0.0.0') || - &General::IpInSubnet ($ip,'172.16.0.0','255.240.0.0') || - &General::IpInSubnet ($ip,'192.168.0.0','255.255.0.0')) { - # We can, but are we authorized by GUI ? - if ($settings{'BEHINDROUTER'} eq 'FETCH_IP') { - if ($ARGV[0] eq '-f'){ - $settings{'BEHINDROUTERWAITLOOP'} = -1; # When forced option, fectch PublicIP now - } +my $ip = &General::GetDyndnsRedIP();
- # Increment counter modulo 4. When it is zero, fetch ip else exit - # This divides by 4 the requests to the dyndns server. - $settings{'BEHINDROUTERWAITLOOP'} = ($settings{'BEHINDROUTERWAITLOOP'}+1) %4; - &General::writehash("${General::swroot}/ddns/settings", %settings); - exit 0 if ( $settings{'BEHINDROUTERWAITLOOP'} ne 0 ); - my $RealIP = &General::FetchPublicIp; - $ip = (&General::validip ($RealIP) ? $RealIP : 'unavailable'); - &General::log ("Dynamic DNS public router IP is:$ip"); - } +if ($ip eq "unavailable") { + &General::log("Dynamic DNS error: RED/Public IP is unavailable"); + exit(0); }
+&General::log("Dynamic DNS public router IP is: $ip"); + if ($ARGV[0] eq '-f') { unlink ($cachefile); # next regular calls will try again if this force update fails. } else { @@ -637,7 +615,42 @@ if ($ip ne $ipcache) { } else { &General::log("Dynamic DNS ip-update for $settings{'HOSTDOMAIN'} : failure (could not connect to server)"); } - } else { + } + elsif ($settings{'SERVICE'} eq 'udmedia.de') { + # use proxy ? + my %proxysettings; + &General::readhash("${General::swroot}/proxy/settings", %proxysettings); + if ($_=$proxysettings{'UPSTREAM_PROXY'}) { + my ($peer, $peerport) = (/^(?:[a-zA-Z ]+://)?(?:[A-Za-z0-9_.-]*?(?::[A-Za-z0-9_.-]*?)?@)?([a-zA-Z0-9._-]*?)(?::([0-9]{1,5}))?(?:/.*?)?$/); + Net::SSLeay::set_proxy($peer,$peerport,$proxysettings{'UPSTREAM_USER'},$proxysettings{'UPSTREAM_PASSWORD'} ); + } + + if ($settings{'HOSTNAME'} eq '') { + $settings{'HOSTDOMAIN'} = $settings{'DOMAIN'}; + } else { + $settings{'HOSTDOMAIN'} = "$settings{'HOSTNAME'}.$settings{'DOMAIN'}"; + } + + my ($out, $response) = Net::SSLeay::get_https( 'www.udmedia.de', + 443, + "/nic/update?myip=$ip&username=$settings{'HOSTDOMAIN'}&password=$settings{'PASSWORD'}", + Net::SSLeay::make_headers('User-Agent' => 'IPFire', + 'Authorization' => 'Basic ' . encode_base64("$settings{'LOGIN'}:$settings{'PASSWORD'}")) ); + + # Valid response are 'ok' 'nochange' + if ($response =~ m%HTTP/1.. 200 OK%) { + if ( $out !~ m/^(ok|nochg)/ ) { + $out =~ s/\n/ /g; + &General::log("Dynamic DNS ip-update for $settings{'HOSTDOMAIN'} : failure ($out)"); + } else { + &General::log("Dynamic DNS ip-update for $settings{'HOSTDOMAIN'} : success"); + $success++; + } + } else { + &General::log("Dynamic DNS ip-update for $settings{'HOSTDOMAIN'} : failure (could not connect to server, check your credentials---$out-$response--)"); + } + } + else { if ($settings{'WILDCARDS'} eq 'on') { $settings{'WILDCARDS'} = '-w'; } else { diff --git a/src/scripts/timezone-transition b/src/scripts/timezone-transition new file mode 100644 index 0000000..a8e436f --- /dev/null +++ b/src/scripts/timezone-transition @@ -0,0 +1,37 @@ +#!/bin/bash +############################################################################ +# # +# This file is part of the IPFire Firewall. # +# # +# IPFire is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# IPFire is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with IPFire; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +# Copyright (C) 2014 IPFire Team info@ipfire.org # +# # +############################################################################ + +# This script checks if a daylight saving time transition +# has just happened and will run the given command. + +HOUR_NOW=$(date "+%H") +HOUR_THEN=$(date --date="1 hour ago" "+%H") + +# We expect that the result in HOUR_THEN is HOUR_NOW - 1 +HOUR_EXPECTED=$(( ${HOUR_NOW} - 1 )) + +if [ "${HOUR_EXPECTED}" -eq "${HOUR_THEN}" ]; then + exit 0 +fi + +$@ diff --git a/tools/langdiff.pl b/tools/langdiff.pl new file mode 100755 index 0000000..6ce313d --- /dev/null +++ b/tools/langdiff.pl @@ -0,0 +1,57 @@ +#!/usr/bin/perl + +my @one=(); +my @two=(); + +my $file1; +my $file2; +my $cnt=0; +my $numArgs = $#ARGV + 1; +if ($numArgs !=2 ){ + print"Usage: langdiff.pl <languagefile1 - incomplete> <languagefile2 - complete>\n"; + exit; +}else{ + $file1=$ARGV[0]; + $file2=$ARGV[1]; +} + +open(FILE1, $file1) or die 'Unable to open file $file1.'; +my @one = <FILE1>; +close(FILE1); +undef ($one[0]); +undef ($one[1]); +undef ($one[2]); +undef ($one[3]); +undef ($one[$#one-1]); +undef ($one[$#one-2]); +open(FILE2, $file2) or die 'Unable to open file $file2.'; +my @two = <FILE2>; +close(FILE2); +undef ($two[0]); +undef ($two[1]); +undef ($two[2]); +undef ($two[3]); +undef ($two[$#two-1]); +undef ($two[$#two-2]); +open(FILE3, ">language-diff.txt") or die 'Unable to open config file.'; + +foreach my $line (@two){ + my ($a,$b) = split ("=>",$line); + if(!&is_in_array($a)){ + $cnt++; + print FILE3 "$a => $b"; + } +} + +sub is_in_array{ + my $val = shift; + + foreach my $line1 (@one){ + my ($c,$d) = split ("=>",$line1); + return 1 if ($val eq $c); + } + return 0; +} + + +print"$cnt lines from $file2 are not existent in $file1. Please check language-diff.txt for details.\n\n"; diff --git a/tools/make-functions b/tools/make-functions index 7bacec1..48fc6d4 100644 --- a/tools/make-functions +++ b/tools/make-functions @@ -222,25 +222,25 @@ if [ 'x86_64' = $MACHINE -o 'i686' = $MACHINE -o 'i586' = $MACHINE ]; then MACHINE=i586 CROSSTARGET=${MACHINE}-cross-linux-gnu BUILDTARGET=i586-pc-linux-gnu - CFLAGS="-O2 -march=i586 -pipe -fomit-frame-pointer" - CXXFLAGS="-O2 -march=i586 -pipe -fomit-frame-pointer" - C2FLAGS="-O2 -march=i586 -mtune=i586 -pipe -fomit-frame-pointer" - CXX2FLAGS="-O2 -march=i586 -mtune=i586 -pipe -fomit-frame-pointer" + CFLAGS_ARCH="${GLOBAL_CFLAGS} -march=i586 -fomit-frame-pointer" elif [ 'armv5tejl' = $MACHINE -o 'armv5tel' = $MACHINE -o 'armv6l' = $MACHINE -o 'armv7l' = $MACHINE ]; then echo "`date -u '+%b %e %T'`: Machine is ARM (or equivalent)" >> $LOGFILE MACHINE=armv5tel MACHINE_TYPE=arm CROSSTARGET=${MACHINE}-cross-linux-gnueabi BUILDTARGET=${MACHINE}-unknown-linux-gnueabi - CFLAGS="-O2 -march=armv5te -mfloat-abi=soft -fomit-frame-pointer -pipe" - CXXFLAGS="$CFLAGS" - C2FLAGS="$CFLAGS" - CXX2FLAGS="$CXXFLAGS" + CFLAGS_ARCH="-march=armv5te -mfloat-abi=soft -fomit-frame-pointer" else echo "`date -u '+%b %e %T'`: Can't determine your architecture - $MACHINE" exit 1 fi
+CFLAGS="-O2 -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fPIC" +CFLAGS="${CFLAGS} -fstack-protector-all --param=ssp-buffer-size=4 ${CFLAGS_ARCH}" +CXXFLAGS="${CFLAGS}" +C2FLAGS="${CFLAGS}" +CXX2FLAGS="${CXXFLAGS}" + # Define immediately stdumount() { umount $BASEDIR/build/sys 2>/dev/null; @@ -414,7 +414,8 @@ lfsmake2() { chroot $LFS /tools/bin/env -i HOME=/root \ TERM=$TERM PS1='\u:\w$ ' \ PATH=/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \ - VERSION=$VERSION \ + VERSION=$VERSION PAKFIRE_CORE="${PAKFIRE_CORE}" \ + SYSTEM_RELEASE="${SYSTEM_RELEASE}" \ CONFIG_ROOT=$CONFIG_ROOT \ NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \ CFLAGS="$C2FLAGS" CXXFLAGS="$CXX2FLAGS" \ @@ -453,6 +454,7 @@ ipfiremake() { CORE=$CORE \ CONFIG_ROOT=$CONFIG_ROOT \ NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \ + SYSTEM_RELEASE="$SYSTEM_RELEASE" \ CFLAGS="$C2FLAGS" CXXFLAGS="$CXX2FLAGS" \ CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 \ CCACHE_COMPILERCHECK="none" \ @@ -521,6 +523,7 @@ installmake() { TERM=$TERM PS1='\u:\w$ ' \ PATH=/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin \ VERSION=$VERSION \ + SYSTEM_RELEASE="${SYSTEM_RELEASE}" \ CONFIG_ROOT=$CONFIG_ROOT \ NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \ CFLAGS="-Os" CXXFLAGS="-Os" \
hooks/post-receive -- IPFire 2.x development tree