## 29. [PHP] with `-r`, 256 bytes <!-- language-all: lang-php --> <pre><code>.6|0&"123' '321"&0|6. < 0 ; + eval( ~ preg_replace ('Hi, Retina!'^'g5X|<J' , '' ^'Henry Jams?' ,'×× × ×ÝÅÐÐÝÖÓÎÖÖÁÇÇÀ«Å¹ÖÄ'));?>->/45789:@ABCDEFGHIJKLMNOPQ * a b c d e f g h i j k m n o p~</code></pre> Not being able to use `$` made this quite tricky, in my original solution I misunderstood the rule, but I think I have everything covered now. I've used high-byte characters, `~` and `eval` to work around the lack of decent variables for PHP. I nearly made the minimum number of unique code points 96, but I thought that might make it a little too hard for some languages. Here's a reversible hex dump for verification too. 00000000: 2e36 7c30 2622 3132 3327 0927 3332 3122 .6|0&"123'.'321" 00000010: 2630 7c36 2e0a 2a09 0a30 090a 3b09 0a2b &0|6..*..0..;..+ 00000020: 090a 6576 616c 2809 0a7e 090a 7072 6567 ..eval(..~..preg 00000030: 5f72 6570 6c61 6365 090a 2827 4869 2c20 _replace..('Hi, 00000040: 5265 7469 6e61 2127 5e27 6735 587c 3c4a Retina!'^'g5X|<J 00000050: 2709 0a2c 090a 2727 090a 5e27 4865 6e72 '..,..''..^'Henr 00000060: 7920 4a61 6d73 3f27 090a 2c27 9b96 9ad7 y Jams?'..,'.... 00000070: 9c90 8a91 8bd7 9c90 8a91 8ba0 9c97 9e8d ................ 00000080: 8cd7 9996 939a a098 9a8b a09c 9091 8b9a ................ 00000090: 918b 8cd7 dd8f 978f c5d0 d08c 8b9b 9691 ................ 000000a0: ddd6 d3ce d6d6 c1c7 c7c0 abc5 b9d6 c427 ...............' 000000b0: 2929 3b3f 3e2d 3e2f 3435 3738 393a 4041 ));?>->/45789:@A 000000c0: 4243 4445 4647 4849 4a4b 4c4d 4e4f 5051 BCDEFGHIJKLMNOPQ 000000d0: 090a 3c09 0a61 090a 6209 0a63 090a 6409 ..<..a..b..c..d. 000000e0: 0a65 090a 6609 0a67 090a 6809 0a69 090a .e..f..g..h..i.. 000000f0: 6a09 0a6b 090a 6d09 0a6e 090a 6f09 707e j..k..m..n..o.p~ [Try it online!][TIO-jf1k8dot] [Test driver](https://tio.run/##tRldc9vG8Rn3K65nUSAkESRAUZZIAbLkT7mKldqqJx1ZUo/kgYQEAjAASqRMedyZpsm0aeNMZhzXTTp971Mf2@kT@dhfUf8Rdg8gRfArkmOWGB3udvfu9ut2F6ci9avdbokGWMeu51Q8WpODRoAQK1UdnLIxmVMIBiQtl103RA0waogJPJPalbpFPTNojlBkQ4pjZlmjmOUQ4we0dMLKI7hciHObQdWxsyO4lUvcCOJmiDirmr7LPH@AhB@ZWw2Rj0MoF1Y2bbceyIHpYL0PHyy1FlJ7LDBtOoJ6oWQuCGfcqdXYGE4Jccf0lPolz3SDMQI1JDgdg2dDODBu5YZxZs11vAD7Tb9gaECYuyi4nmkHSSMJMNkPyqYte4yWk5IkkYHW1LEtVsItntepF4B@AmoYYyQ3QxJQYcB8l5bG5Vu9iG0xapkXaqSa0Npj@6uRiFXqnwBetqr@EDbauuJYxmTNqasXCOlCjZq2BuIzj5aCpF91zuSKFFtXHVt4LWK5Gvku2tTmkj3@cdpxg3To17xdXJTdJk6l6oEBrWFabODzeD3mMRLa@qmLXPalAY9KHhNkGngf2N0kWNPgvUXwQQEHVWYjHBISl/o@QczyWR9iUNMiyDAnyDR0ItN7Q@cT2Bs7sFeJ9xPWG4PFJFZnInHIWehrUYuN@iDQTJDoKvrLfozT7EdzGo2fRGEOmz62nQCbNp@Py555yjyZoBuYNcJj/mj3zt2jTzf3HmgkXfe9tGUW07ZTZkc1p1y3mM9J@TgySy949t/ysR@Pp0MqiFQ2Evla/ZMcD7WRsjhlDDiN9FJRuY9W1LgX80HYcB/rB/yrXHXapH43xvPK/4Hnfvq57HA24jnpKv6vs0B8GJPn5uyOlZcumnb6cRSKo/TY2yhMpTrGDqzpxfJmBNfj8K3Jqw0oYryvfrwtIsDjMGlPPWg1x3YiRUfZPR3Ry6zBYvl@wtHx6sVm79TxzB@1slccFAITLHutSZf9eE7IzCjwPLwsRSarBONtsQzJ85ThwMFnEKxZrHzhxI5XZh5H1ugJw2YAWgwV8lQLBTvtBQQ1kvM0zTM099mwxsGpOk4ZY3r5kLmno6qZTfbgpRZf/rLkwpNO5iSiy0GcqVklis9WVzAQsVoRElTPYo6N97Z3yfVCuDqI4b1zyWtGMpVwIEJu9nVIvNgcGnAjj1aiV0XGD11sFBSXdWV2oXJQLafPwtdI/TytErnGvGFAnP/ZhPqrfGlyPTClIBitCJTVGR2J3VLAw9OUiP7jpaD6obWgGi8GR4@IOquovGm51XrpZKpM1xbcq9u9D5/4h9XETDSFMDaKSzqzwvfR7tbuzscJ2lvpk61700mi8nln89F9jdlHv3wycIvBJ2Wsy3Pw8LfmNCe5/vRhQFyZszmt4yZUpxh7@LOZx/4pc@NMrs4m/FddnPL6n9uTQvooQa8XZ2XtY1npduWVVmYeaoWsKIhZVSHzmdaKjNYFlBFQQUCLAmKn1EoK6KWAXI9VjjzmWhBoBZQUH5hLOCoLfyYeipXcZ631h6KAlgQkwutQfMBsr4kf0pq/wcFi@y/tN@13ne/a37dft3/f/qb9h3i//Tfof9f@a/uP7a8A/meg/bb9DqBvoY2wr0O6d2ELNJ0f2l/DjK87n3ded163vwIo3@Gbzg@dN51vO3@C9k3nN50v4HnV/nvn8/Y/YfxbUZIKG3pKTy/nbq6u5W9tbt2@c/fe/QfbD3@@88mj3U9/IaAFAVEBFQVUElAZNCAgQ0AVAVUFZAroWEAnAqoJyBaQI7gvu3eWjKVbSwqaM3TS6xO025VlSZaRLG3XZERkosldGb1/9QNjXTm7f0Nkp8w@QLfyBkKinGUcJKqJjHYgYgM79aArZxQVDa61UHSdZTGbX2hhGYdXWvDuXWrhhQWckXM4gRXuCRmpK7OLZ9SXz58oWX65l@vKtFgqM6NSNY9PrJrtuM8h69dPzxrNc6RjohNot7kbbloWgm8U5f2XX6q8s1sPAIqzCJhK6eeFhsY33TFt5ielQlN7ykqB45nnLFkPjNU9Z9sOpGRDKlC7maxwj0mSlE6WGhIwldIzv455TldWUnpsjLexZUIBfc9jdqmK83cQefzUsgpluZqndhl70Dg1EL5uGFBtO3wBZX4@6Ws6iS0D283P@/trB5omEhG2VSzLuv@rpw8IcTtvhwg7//7P7@SF9j9Q5@1hZg4oC6SgyOjZyHKFuSNtXS/AAXKjm0XcTKfTJT03P@@BLT04Xuz53FGhK@9t7@3cxYSSG/CH7@7AGPygTAOKzLxsmBBc1NySspRBfl72A1irgklCze0fPrMPCAoGwCHNwIkdYLaabACXK5ZTpBbmnwWIN3lubwFObN2vWnjO7Hd8VKKwu1@itoFouQyg1SWcgNppQBpRBB44Wo9kuUfi14t4TlX4iDbQ8Tlu9mcZ0axQLcbIrOOai2GpZr5PHPwIMbPzCD4vwc8UsHNSURYIIQuKkizbFGwyZBF@X02IxOksWiuWKfbzZAMCoo19bnA5@oENej1YAOaAu9H92EIHANzYTynqclJu6VTaOEDLa9wvWxvRQxZJr9ca5YCvh@ARkADqFrjS@cOHIQwjwKKIKoRwUuj3zyGE3wJhNKVvgK9AUKKMFCD8kiGrTwsBQ3fasu9aZpAkz2wiSbq6sqhI6Lo/0uI/gpZllSeEQmIRGGoRRlrA0mKCczQkNsSl7HJuBaInGulO3eL9q@9j2QCi4H//9UUXNlMWb6f0FhhSIBi39NTtRTAS6C@6wMYa7l9hYyjwAwDzF/YBwa@0cbJUZVAeJi0eicDqElBEIA1zH0syi9VwQIscAS8AB85du17Da0j4kCfGPAwGykDCyy6XQxAKIueeKIRLJBYEQUaQ9M4F1BRQQ0BnAjoVUF2IazK@qlgooEBAvoA8AT3niYVnGCtMNcdh2qmGKcgI01E5TE1FnoLS@cMl9aZ@eHjY0qymbUPysl8CQ63FRmN9fR28H9pGY7EFDOFQsxXc0EK9iOtiY36eJRqaxgDOtADqgvB/BZA9OGUSKPJUSiRFXcwXJY0migCliRAO4z6@D42oOJBFkEZv1ouhQBYTO3XBCW8lj/JHUuJIo@G0IrCD@yn49vQUbA2yMHL7P6697Mv/AQ "Bash – Try It Online") [PHP]: https://php.net/ [TIO-jf1k8dot]: https://tio.run/##rRfRctvG8fnuKy5nkQBEEiZISRYJApIjO7ZcN05t2XVsieoRPIqgQBAmQAtUGY870zSZNm2cyYzjunGn733qYzt5Ih/7FfWPsHsAIYK05KQzPfAOe3u7e7t7u3tgg/nt6dQ3ViR1Y1TMUq1U3g9LV/bDYkW8yyWNZoujDRUQrBZji6yYAHoC5BKAP2WOnEyeJYDX50eHfe45zOIJThbyb9p5cpcHtss@ENO6GI7WH45qt@ZaFFk@AWLkfCGiv8nd/pDcYl1/a4lJTCoN6BvQgbkp5hZ0MGAT5hUN3o2L8cLQCC/WQfHNJnRrRl@ZyS3HsiPazRhe4C3O5VVSshM5TSGzFe8h3tY64IpxFzQRX2KDFtM3AW7CvsKZEQzdgjXryqwDL2vEshqV2fqa8Iei6Ftmwby8tn5ls1LdvvrhzrXrH924uXvrZ7d//vGdT36ROG81AVgCNBLASoDm2ZknQCsBjhKgnQB2AnQS4DgBugngJkBPAN4zScfcavcIXfHpDCy40Wx0YpGCpeNWr08YsQVym@qk2cNoTsboyGt7pNCfCYiWdNzsuRxPp9OzeJeQdBbmuIZwEWEd4RzCUSwj/AzhdPwiLEupsJXqUhywEsJ5hCV41aVUSAq0NP7L@OX49eS78ffjF@Pfj78Z/yENj/8G8Hfjv47/OP4K8H8G2m/HrwH7CsZ49UVE9zoagWbyZvw1cHw9@XzyYvJi/BVgxQ7fTN5MXk6@nfwJxpeT30y@gOf5@O@Tz8f/hPlvpR87fYRXEWYINxC2EG6CBxBuIXyEcBthG@EOwscIdxF2Ee4h79lURaNcGNZqNcoojGGYGyEVE4SwiY5IaHCHd4lUk8JslmdCw@CA50bAbEf2270TUlQEpQwUVaZkZMmUqg3FYJkGYFkmwsM8WU@wMZVA8hgTzrh@XTBTJ5M6hMJngnBbPqweKplDg0VsDVCHJPbuXGyvMzcZe0lD@AkqCwcgXTILOzmq0dxOwZR0BA6AMz9FeIhwiPAJwk8RHiCc0gyl40PXcYCwj3BfyBSbdKM9j6P97UiXo0gvHuloRfq66HK1ni9dMev1@shwhq4LZ@eCQht6Jlcwt0YU0REcdi6jQ1S3jG05VLRs1uKO0xq48ra8ozB3KO8YBoS/koWllu02k7mp5f2g73uOHchh3mqzvqwVFQgfnEHv/FLGpG08j/Qn/cAIfbVg5kYM0ZAiNsqZhVVdxSgkhu16g@D/A@mrJKU5Rg@JsfvxJ/f3MLpzfw/exLixJ9/bfXRdfqjkS5qCNIwufLgLJ4PeSai79/buP/jlw08fsYbV5K2jtt05drpuz3vS94PB05NweAoFaA2jlOOwcIAmgmlECJwiISMRYBo4QCRLl0G5M6DmBbzPrIAE3A8ALV7Eh4Uor2Srza1jIju2y33iKwpQxCiDMMchcpSYAWuIBXgBOuhddwddUnmPkec8Cx58x4i4IcgNNINVkRLn/c7P251ReE67SMZ7frUfa0CTM00ojmYuNZ61XDQWZkggNvOPzHy99qgQ90LSHpk51azjOgrTuchTuSidbypcdnGWirSEUintSCLdrrpDsrOFL2iZuZc18LJ25uWtUW6hFvY81vOxbXu2bdnMtzjjlufZPrMt7DPPBoRvWYAQFNAYXLewaNsdxnmMsoEFaDnnnRgFINDABAMOMPGcd2YisGAAGR1@1joCK4RGiiTrgjbi5gl9J6bB9rzNWXDMM@eIyBPaztlOdseLdEioAOlFSsf6xqrPdor1TasqjBQ24YQ7vcZxx5tLBrZ4hpcIO4ncZZNhimOvskS12CC8JDGyLtY3LfJM3wWhnZmE5BBmApb8uyChkxbZibXAM4EdLxWdDDesqH6dLNQvDAUsKW0ng2QJJ7VttnRRJqTis2AWRSFc34APE7wEXhT8@O3z71Mqvn3@5j//@uKCrWap5Tiy7Xd5t8H7ix9x@VBRsv6gO1@Ga48FcilfLlfLG/m1jXxFq1bKeQk@opTaRjaUS/AqZoVI@dgIZa0aXaCQuVoxrykFTVEMo@XYnnwM5TeD/4cmbKCcgRH0EgUTGKfCBppSmGK76/X6UPKHPnydwm0gO9yVYab6QdN21T5nTVlR4yuc7rtUUczSRk5TfrIWdCQaxWtqaaqOtuKH5ugMGi2dH1nmJ0lgQIlS4wZfiTMIShQhRCuY7HFKygEgtx4XtNKarI5Mpmwd4LUK@wAEMHCtpq1SSlc1TW66TFveHu5KShVB57Buo8mIX6Vb4CYXrr@pure7d/s6gf0vQSfXb8NcxWqTBQzbVbVlw51YWs9r@SL2q@BBcOgRoZnS@uP6vntAcTBHLpRVilvzlQ@HfI5Xj5xegzlEXNdYDFUyb9gb@G2HrNgJ4GNLXMu@xdwWZs0moDbzJMN9b04aUwR9OOcZydqMxB80yEpJEzMW4s4pGSZcrZgrCpDWElen6xEQNawmxMF7iLlbxX0ewEnoVAff79MF71N95dComTr8wfL0SAAZXr582TLXs9k@f8r7PhSmJyuHOghwHOfGpw9uUupNXi0Imfzw79@pq@N/4MmrenFFXGzZrOwb5tJW2az/uHIAFySV4GC1hfMgu8Sxjzn5qM9dq02q1zC9@8Bx9KbarkJokD4MvS54cdBqwRdPD0ILKs@vUhKmarFgnuqhIRLotvh8khV9aDzgVtDr26dcHgStzb3erhsoUFB0cVkfiT@GMgQGFVVkql78rYdNQk0K4674AL3qONg0ifb2yy9LArgzCABLypD//LN95qun97SyCJd1UEorXZjxRCVRzsM7znqFrK6SorpOMkQjhgH/sqZq@fElCQ7CPZiqUDffcD5VVUWFHFB2u1BaVGqo02v5Vn47r/0X "Bash – Try It Online" **Satisfies** 2. The first character is a `.`. 3. It contains an `e`. 4. Its length is even. 5. Its length is a perfect square. 6. It contains an `a`. 7. It contains a `>` character. 8. Contains the exact string `->`. 9. Contains the exact string `Hi, Retina!`. 10. The sum of the first two Unicode code points is a multiple of 5. 11. The 10-th character is a `"`. 12. The last non-empty line does not have any duplicate characters. 13. The first line is a palindrome of length > 5. 14. The first line is exactly 21 characters long (not including newline). 15. It contains a `?`. 16. It contains a `|`. 17. Contains a `+`. 18. It is at least 28 lines long. 19. The following characters are used five times in total: `!"#$.[\]` and the codepoint of the second character is less than 60. 20. Contains `Henry Jams?` as a continuous substring. 21. The last character is `~`. 22. It contains a `C` 23. Each line contains a tab character. 24. The ninth line contains at least 22 characters, excluding the newline. 25. The tab character can't be the first character on a line 26. The third-to-last character is a tab. 27. There are at least 28 lines, and they are all distinct. 28. There must be a `>` in the code and angle braces must be balanced. 29. **There must be more than 88 distinct code points in the program.** <hr> **For future answers:** - The first line is a palindrome matching `.␣␣␣␣␣␣␣␣"␣"␣␣␣␣␣␣␣␣.` (you are free to fill in the ␣s). - The second character is one of `',16;`, or a tab, or one of `\x04\x0e\x13\x18\x1d`. - Its length is an even perfect square. - There are at least 28 lines, and **all lines are distinct**. - The ninth line must have at least 22 characters (excluding the newline). - The last line does not have any duplicate characters. - Contains the exact strings `->`, `Hi, Retina!`, and `Henry Jams?`. - It contains `|`, `+` and `C`. - Each line contains at least one tab character, but it can't be the first character on a line. - `!".` are banned except where necessary: - Only `!` in `Hi, Retina!` and the two `.` and two `"` in the first line are allowed. - `#$[\]` may not appear in the program. - The program ends with: `tab`, *(whatever)*, `~`. - Angle braces must be balanced. - **There must be more than 88 distinct code points in the program.**