-
-
Save Tarmean/6edf2153806434e688d1fd77964248ed to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
TAGCCGACGTTTTCACTCGTTCCCATGCATTATGCAGCTATTTCCAGTAATTGTTCCCCGCTCGATAAGGTGTCCAAGGACAAATCTTGAAACATATCGACGCTTGACAGAACCCGGATTCCATCGGCGGTGTTCACCTAGGGCACCTATCGTGTTTCCACTAGAGTAATCACAACAATTGAAAAGTAACTCGTGTTTCCCTTTGTGCCGGGCGAACGCTACGCCCCCAGCTACTACACCAACGTTAATCGAAGACCTTCTTGACAGTTGGTAGCACATACCCTACGCTGGGTACGAGCTGGAGAGCTGAAACCCGACCCTATGAGAATCCATACTTCAGACTGTATCGTTGTCCATATAATGGACACGGGGTACTTTTGGCATGATATTGTAATTTGTCATGCGATTGCCTCAGTATATCCCTGCTTACACGTGCAGAAAATATGTCCCATTTTACACCGGTCCACCATAACAATTATGCAACTTGTCAGTCGGGGTAGGCTCGGTCTCTGCGTCTAGCGGTGTGAATTACGCGTCCCACCTGCACCAACCACTGACTTTAGGGATCTTTGGGTATCGTGCATCTTGATTCGGTTCTGCCGGAGTTTTCTTAGCAACCAAAACACGGCACATCCAGCCATTTCTTTAACAGTTGAGAGTGTTAGGCCTAACAAATTTACGAGCGAAAATATGAGCTAAGACGAAACGAGACGACTGAAGAGACCCTACGGACGAGCGCCTTGAATATTGTCACCCCCTGAGTTAGGTGCGGGAGCGAGTTAATGATCGTAGTATCGCCAACTTAGTGAAACAGTTGTAACGGCCGCTCTATGCGAATTATCGTGTTTTCCAGCTCCAATAAGCTACAGGAAGGATGCCTGGCCTTGTCACTTTATTCGGGAACGAATAGACGTGGAGCGTCTTCCGGCCACTCCTCGCCGAGTTTCTACCTGATGCGAGGCCTAAGAGGCAGTTGTGTAAAGGAAAATATTCCAAGCTT | |
TGCCCGAATTAGTCTAGCGAGTCAGGGTCCTCTCTCTAACCCCTCCCCTTCATAACGATACCAGGCCTCGTTGTCACTTCTGTTGCACAGGCGATGCCCGGCATCAAAGCTGGTGAGCCTGAGTTAGGTGCGGGAGCGAGTTAATGATCGTAGTATCGCCAACTTAGTGAAACAGTTGTAACGGCCGCTCTATGCGAATTATCGTGTTTTCCAGCTCCAATAAGCTACAGGAAGGATGCCTGGCCTTGTCACTTTATTCGGGAACGAATAGACGTGGAGCGTCTTCCGGCCACTCCTATCGATCAGGTATGATAAAATGACCTGCCCCTGAAGGACATGAACGTGCACAGGGTAGAACTGCATGGGTTCCCCTGGGGTGGGTCGGGGACACAGTTGATGGCTGCTAAAGCGTTATCTGCGCTTGCGAGCTACAGCCCAACTTGGAACAAAGCGCACGATATTCGTGTGCTCGTATCGCAGTCACGTGTTATTTCGCTCTAGGGTCAACAGATTAAAACCCATTGCTAGATCATGGAAGACGACCTCTGCATCCCGTCGCTTAGCATTTCGAGCCACTTCTACGCACCGTTTACAAGACACAGAGAACTGGGACTCCAGGCCGGGCCTCAGTAAAGTGACGCAGGCTTAATCGGTCAGGCTGCCAGGCCCAAGGCTCGATAGCGATATCTTCTTTTACCTACTCAACTCTTCTGACCTTTGGAATCGTACCCTATGCTTAATATTCTTTCGACCCTTAGCTTAAATCAGCACTACTGGAAGCGACATTGAGTCCGCCTCCGTTCATGACCGCATGCATCAGGTATCCCAAGCACGTTCGCGAACTCCCTGTGCCTCTCGCGGTTTACTGCCACCCAAGTGCGATTATTACAACATACGTTACAGGGGTAGTTAAATAAATAAACTTGGCGCATTCGCGGTGTGTCCCGGCAATACCTGATCGTCCCCCATCCACAGGTGGTGCAGAGTGGGTAGGCGGGGG | |
ATAAGTCCCCACAGCTGTTCAAACGCTCTTCGCGACGTAAGCTGTCAAAAGGAGTGGGTTGCCGATGTTCAGTAAGCGTAACCTATAAGATAGATCGTCGGTATGTGCAAAGGTCAAGGAGATAGAGTTAAGCAATTTATCGTGGCCTTGCGACGTCTTCTGCGCTCCAGATGCGCATCCCTAAACACTCGATATATGTCCAGACAGTATCTTGTGACACCATTGTGCGATCTCTCGCACAATCGGCGTTACTTCAGTTGGTGTTATGTGGGTTACTCAGTTCAGGACAGTACAGACAACCTGAGTTAGGTGCGGGAGCGAGTTAATGATCGTAGTATCGCCAACTTAGTGAAACAGTTGTAACGGCCGCTCTATGCGAATTATCGTGTTTTCCAGCTCCAATAAGCTACAGGAAGGATGCCTGGCCTTGTCACTTTATTCGGGAACGAATAGACGTGGAGCGTCTTCCGGCCACTCCTGACGGGGGTTGCACGACAGTCCCGGGCGTTGTTTACGCTACTTTATCACGGTATCCTGCGTGCGCCCCACTGCAGTTCGGGCGAGCTGACCGGCCTTACCCCTTTGGTACCCTTGACTCCTATCTTGGGTAAGGTCGTGTGAGATTAAATTTACTGAGGCTTCCCGAGGCGCACAGTTCGCCCCGCGTTGAATTTCGGGCAATTAGATTATACATGGTGTGGAAAGGTCCGTGAAAGAATAACCTATGGGGCATACTCGAATTCCGAGTATACTGGCACAAGCCTGACACGGCGGTTAGTAATCCTCTTTTTGTCGCGTCCGCCATCTTTCCTAAAGCTGCGCATCAAGGCGTCCGAAGGATAATAAGTCGAGATCACAGATATTAAGAGCAGGGGAATTAAACCCTTATGTGTGTCTTCTCTCTAGAAACATGAGAACAGCGTTACACTGCGACTAATCTCATCCAAACCTGCAGAACTGGGCTGCGAGCTGATGTATCTCGGTGTAGTCGACGACCTCA | |
CCCGGTAAAGAAACTCGTACAGTCCAATAGTCGGCTGGCCGGCTGGCAATTACTAGGGGCAAGTGCGGGGCCATATTTATTGTATCTCCGGGTTCCGACCTAGGAGGGCGTGACATGATCCCCTGCGGTGGCTACTATTCACACACCAATGTATGCGCCCTGAGCCCGTACGTTGTAACGCTCATCATTCCATGGCATCACTGGTTCCGGAACACCATTGGAACTGGTAAGACTCCAGCTTACGTCAAGCTGACCGGGGCGCGCTGAGTGTTCGTCTCAAACAGCTGACTGTTGCCATTCCGCCCGTAGCCTGCGTAAGCCGCATTACCATCTTCCTATTTCTACCTGAGTTAGGTGCGGGAGCGAGTTAATGATCGTAGTATCGCCAACTTAGTGAAACAGTTGTAACGGCCGCTCTATGCGAATTATCGTGTTTTCCAGCTCCAATAAGCTACAGGAAGGATGCCTGGCCTTGTCACTTTATTCGGGAACGAATAGACGTGGAGCGTCTTCCGGCCACTCCTCTCCCTCTGAGCTCGGACGACCCGTATAATTAAGGAAAGAATTAACGACGGTCCTAGGCCCGCACTACCCGTCATGCGCAAATCCAACATGGAGCGTAGTACTGGTGGTTAATATGAGAGCAAGATGTAGATGTCCTAACCAGGCCTCGTAGTGAAGTAAACCTCTGAGTTTTAAGCACCTGGGGCCTACAAGCTTGTATTACTCTTGTGTCTAAGGGACCATTCTGTAACACCCAATTACCGGCCTCGGGGATCTACCAGGCGCCAAAACCTCAGCACTCCTACATTGAGGACCAATCGTGTTCCGAACGCTTGGCTTAACGGATGATATACCCATAAAACAGCTCGGTGTGGAGTCCGTACTATTGTGATCAGTTGGTGCACCACCCCTCACCACATCGAAATCTGATCCACGCACGTGGCAGTCCACCATGACGCAAAAGTCACCGTGTCCGTCTTGTAGGACGATGGCTCTC | |
CGGTCGGATGCCACTTTGCTAATGAGTGCTTCGACTCCCACTCCACTCGACCGAACGTGGTTGGTAATCCGGTAGATCTCTACCTTTACCGTCTAAGTAGGATCGATACCATGTTCCTGTAGATACAGGGAATCTATTAAGGGCCGATGTTTAGGTAGGTCCCCTTAAGCCCAGGCTACAAGGGTGTGCAGGCTCACTTGTCCGATTTTCTCTGGTTATTCGGAAGCTCTGCCTGAGTTAGGTGCGGGAGCGAGTTAATGATCGTAGTATCGCCAACTTAGTGAAACAGTTGTAACGGCCGCTCTATGCGAATTATCGTGTTTTCCAGCTCCAATAAGCTACAGGAAGGATGCCTGGCCTTGTCACTTTATTCGGGAACGAATAGACGTGGAGCGTCTTCCGGCCACTCCTTTGTTATCTAAAGCCGTAAACTGACATCATTGAATGCTGGGGCTAAAGTTTACGTAAGCAGGCTATTTCAGAAACCTCATCCTAAAACCGCACACCGCTCTAATTCAGGATAGTTGCGGGTGGGCACTGCATGTGCTATATTGACAATCGGTACTGGGTTTAGAGATTTATCATTGATTAAACTACCCAGATGAGATGTCGGCTCTTGCGAATGACCGGCGCCCACACGGTGAAAAAAATGTTAACAAGTCATTCGGCTCAGTATTCTATGGCTTAGTCCCCCCCCACTGCAGGATAATGTACGGTTATAAGAATCATTACCCCGGGCCGAAAGTTTATAATTGCTATGAACTATGAAATAGCCCCTTATATAACAGGATGAACGTGAACGGTTCATCATGTTTAAAACTTGGTGTTATGTTGACGGTAGGCGGGCCTGACACTGTTAGTAGCGGGGCGGGAGTAATCCTAGGCTTAACCTCATAGTCAGAAGAACTTTGGTATTGGCCGCGGCATGGTTCGCTATCGGATATGTTTTTCATATGGCCGTCCCACATAAATGGGCTACCAACTACGAGATCCATTTAGC | |
AAGTTGACGCAGTATGTTCTTGATTATTACCGCGACTACAAGTCAGTGGCGGCCTACGTCAAGCTCTCTGGGGGGTTGAACTCTGTATTTACTATGTAATACAAACTCGACGTAAGCGGGCGAGACTAACCCGAGCGATTGTCGCGCGCTTTAAAGCAGATCTGCAGTTCGCAATGGTATGCTTTTATTGGGTCTCGTAACAATGCGGGGTTGTCTGCGTCAAGCTCCGTTCTATGGGAATGTCCTGTGGAAGGAGGTTTCGACCATTCACTTGGCATCGAGGGCTAAGGTTCACTAGTGCAGGCAATCCCTGGGGGTGCGCGGATTATCGTAGTGGAGGCTGGGGCGAATCTTTCTGCGGATGGTAGAGGTGGATGACTCGCAGGGTTGGGGGGATAAGAGGATGCCATCTGGCTGCCCCGTATATGCGTTCTTGGACCCGGTTAGGGTCTATCCTTCCCGGGCTTCCAGTACTTTGGCTAGTATGCATTAACAACCGATCGCACTTCATGGGTATTCTGATGACCTACTGCACATTTTTAAGTACAGAAATAGTGCATAAGGCCTGCACGGACTAACTCTCTATACACTTTATGAGGCACATCCGGAGTTCGCTCACGTCTCGCCTGACAGGTTCCGTATCCGAGCCCTCTTGTTTGCGAATATATGGTGGAGACATTTTTTTGCGTAGAAACGGTTGTTTACGGGAACCTGAGTTAGGTGCGGGAGCGAGTTAATGATCGTAGTATCGCCAACTTAGTGAAACAGTTGTAACGGCCGCTCTATGCGAATTATCGTGTTTTCCAGCTCCAATAAGCTACAGGAAGGATGCCTGGCCTTGTCACTTTATTCGGGAACGAATAGACGTGGAGCGTCTTCCGGCCACTCCTTCAGGAACTTGAGTAGTTTCCGATGAGTCATAGGGTGCATAATTTAATATAAGGTACGCCCCAGGATTTTCGTACGTTGAGCGCCCTCGGGGCATCTCAATCCGCCACCC | |
GTTTAACAACTAGCCCATCAGCCGCAGGAGCTCCATGGTGGTACATAACTTAGAGTCAATGTAGATCGGCTCGAAGCGTTTCCAAGCTACCCCAGGCACATCCCATGCCTCGACGCCCAGCATCTAGACATATTGGCGCACAATCGCAGGCCGTTAAACCCCTTGAAAAGCTATCGTGCGGGTAGCAACACCAACTACCTCGCCTACTGTTATCCCGCAATGAATACTGCAGTTATGGTAGTCAGGTTATATAATGGTAATCACCAGCACTGTGCTGGACCACTCTTGTGGCCTGAGTTAGGTGCGGGAGCGAGTTAATGATCGTAGTATCGCCAACTTAGTGAAACAGTTGTAACGGCCGCTCTATGCGAATTATCGTGTTTTCCAGCTCCAATAAGCTACAGGAAGGATGCCTGGCCTTGTCACTTTATTCGGGAACGAATAGACGTGGAGCGTCTTCCGGCCACTCCTTGGAAATTTCTGATTCCAAACATCCTTCTCAGGCCGCTAATGGAACACGTCGTATTCCGCGCGTAATACCAGAAAATCCCCTTCAGTATGGTCCATGACATCTTGGTCAGCCTACTACCTCCATCGTTCTTGTGACGGGTGGTGCATTCTATGCACTGCGGGCCAGACTTCGCCTGAATGCCGAGGTAACATCTCCGCGGCGAAATAGAGGGTAGTGTTCGCTGAACGCTTTCCGCTCGCCGGAGTTTTGTCTAGCCGAATTAGCAGCTGTTGGACTGGCGCGGGTGATCCAGAGTTCGTTCTGTGTGCTAGGAACACGATGTATCTACTCTGACGTTGGCTAAGGGCAGTCATCAAACAAATTGCTTGGGTCAATTGCCAGGTGCCAAGACCATGGGGCTCGCCATTAAACTTAGAACTCTGAAACCTGAGCCAGTAAACTCCTGAGGATTGTTCAGGTCTTGCAGACTCCCTTTACTCTTAACGAGTCGTATCTCCAAAGGAGGTAGATATGGTGAAATGGGGATAC | |
TAATCCACTAATAATATGCAACAGCGCTAAAACGGGTTCGGCGTTGACCGAAAGTCCATCCTAGTCCTCAAGGAGTAGAAACTCTGATAAACTCGACTGTTCGCACAATTTGTTCTGACCCTTGTGACCGACTATCGCAACGCATCTTCATTCAACCCCAATATGTTGCAGAATCCTTCGGACGGACGGGGTAGTGGACTACGAGACTACACTGTCTTTTCCTTCCTTTATACCTCCTCGACTAGCGCTCATACACATTAGCCGACTGTTTATTGCACCCTGGACGAGTCCAACTGTAAACGGCCAACTTGGATCGATCTTGGATTCTAGGCACCCGAAGACGAGGATCCGCAGCGGTCAAATTGACTACGCAGCGCCCTAAGAATCTAGTTAATGCATAAACCGAAGTCAGAAAGGAGATATCGTGCACTTACGAATAACAACGCTACGGAACGTAATACATGGTCAGGCGTATTTATTGCGCCTTTCTTTACTACTGAGGAGGCACGCCTACCTATGGACGATACACTCCTGCGAGGTCGGCCGCGCTATGGGGTAGTTTGGTCAAAGGCCAATAAGGGCGCATGAAAACAAGCGATGGTTGGGCAAATCGACTACATGCGCCGATCCAGATTAGTGCTTTCCGTTATACTCGTACGGAATCTCAGCATCCTACCAGACCCTGACACGAAGACTCCTCGATGCTTGGCGTTCACAATGCCCGCAAGGTCTAGGCTCTTGTCGCGCCAGATGCGGAGATGATGCGCGAACCACGAGGCGAATGGTCCCTGAGTTAGGTGCGGGAGCGAGTTAATGATCGTAGTATCGCCAACTTAGTGAAACAGTTGTAACGGCCGCTCTATGCGAATTATCGTGTTTTCCAGCTCCAATAAGCTACAGGAAGGATGCCTGGCCTTGTCACTTTATTCGGGAACGAATAGACGTGGAGCGTCTTCCGGCCACTCCTAGTGTGTGGCGGGATCAGGGGTATAGTCTAGCA | |
TACTACTCCTATAGGGTCTGCATGATAGAAATATAAAATAGGTCAAAGGTCGATGTGTCTGTCCGCCTGAGCCTGTGGCTATTGTATACGCGAATAGAGTACCGATATACGACCGGCGTACGTCGCCACTGTCATGGCCTTAGATTACTGTTCACAGTCGTACCAAATCTATAACTCGGCACTGGTTCAACACACCCCTTCAGGGCGTGTTTAATTCTATCAAGTTTTGGTTTCAAGAACGAACACTACAGCTGCTGGGATGGCTTGGGTATAGCTCTATAGATACGATCACAGTGGGCCTTCGTTGCCCCTAGTCCGCTTCGTGTAGTGACTTTCGATGTCCCTAGGAAAATGGCCGATTCGCCGTCCAGTGGTGTAGCCTGAGCCCACGGGAGGTGCAAGGTGCCATTTGCTATCAATCGCAAATCTTGCTAAAAAAACGGCTGTCATGGCTAAGTTATTTTTTTGGAGTCATTCCCCCAGCCCACCTTGCAGCCGGATCAATATCCAGCTAGTTAAAGAAAATATCAAGAGGGCCTTGAATAGTAGTGGTGTCAGGGAATAAGATATTTGAACGAACGCCACCTTAGTGTCGAATTCCTTAAGTGGGACTCACCGTTGATGCCCAAGGATCGATGCTATCCTCCCTGGTGATCTATCGACGAGTTTCCAACCATGGGCATCACCTGAGTTAGGTGCGGGAGCGAGTTAATGATCGTAGTATCGCCAACTTAGTGAAACAGTTGTAACGGCCGCTCTATGCGAATTATCGTGTTTTCCAGCTCCAATAAGCTACAGGAAGGATGCCTGGCCTTGTCACTTTATTCGGGAACGAATAGACGTGGAGCGTCTTCCGGCCACTCCTGGTTTTTTGACCCCCGAGAATTTGTCTGTAATCACTCCAATCCCGAAACCTAACCTATGCGTCTCGTTATATGCTAGGGTACGCCTTGTTGAAGAGGCGTAGACTTTTGAGCTAATACAAGCGCTCGCGACTGTG | |
AATTGCTGGATCATGAACTAAGCTTCAGCCTACACTCGCCGCTACCTGAGTTAGGTGCGGGAGCGAGTTAATGATCGTAGTATCGCCAACTTAGTGAAACAGTTGTAACGGCCGCTCTATGCGAATTATCGTGTTTTCCAGCTCCAATAAGCTACAGGAAGGATGCCTGGCCTTGTCACTTTATTCGGGAACGAATAGACGTGGAGCGTCTTCCGGCCACTCCTCGGCAGTGTTTTAAGAAGTTATTATTCCTCAATGGGGCTCAATTGCCTGCTTAAAGTCTCCCCCATGGCACGGTATCTGACGAACACGTCTTTACGGAGCGCACATTCCATTTCGGCAGCTTTATAGTCTCATGTATCTTCGACAGGGCTACCCACATCAGAAGCGCCGAGATCCACTACAGGCCCGCGGGGTATTCGTAGGTGCGCTATAAGCTCGTTGCTTTGGATGTAACAGAATTCTGGGGCTCAATTCACACATTGGGTCATGGGTCGATTAATCTCGTGCTTAATCACTCCACAATATCCTTCGTGCGTCGCACGGGGGGCCGCGATTCTTAAACAGTTCTCTTGAACGGTCAGGCCCAGAAGAGAAAGTTGGACTTTAAAAATGCAGAATTTGGACCAGGGGATCTCACAGCAGAATAGTGTGGTATACGTCATTTCCCAGTTCCGGTGCTGAGGGGCATACGGCGGATGCCAATAGTCTGTCCAGTACCTCAAAGAGTCTGAATGGCTGGTCCCGGTTCGCCCCACTGTAGGTTAAGCAGTACGCCGTACTTGACACAGTCAATTTGCAATCCGTCGCAACGGTGTGCCAAGGATGGATTCTGAGGCATGTCCACCGTTCCCAATTCCTTGCGCTTAATAATGGGCGCGTTACATTGTGTACATCCACTCTTCATGAGCCAACCTAATAACTCGTTAGCAGGTACTGTCATGGTTTCGTGAAAGTCCAAGAGACCCGTCAGAAGCTTCCAGTGAGGCTGCGCCGCCAC | |
GTTGTGACCTCTTCGGTCGGAGGCTATTGAGGGTAAGGGTTGAGTATATTAACCACCAAATGCCAGTGACAGGGAGGTGTCTGCCTCTACCCGCTTATTTACGCGGACTATATGCATTAGGTAGTTCCTAACGGTCGTTGAGTATTGTGATCCGCGTGGTGATTAACCACGCTATGAGCTTTCATATAGCCTGTTACGACGACTTGTGTAGTAGTCGAGGTCACTTACCAGTAGCATCTTGGTCGGCGTAAGCGAGCCTAAACGGTATGGACCGGAAGTGGCACGTTCCTGTGACCCTTCATCCTTTGATGGTTAACAGGGACCTAAGAAGCACACACAAGGCAGGACTGCCGTGGGAGATGCTCTGAACACAGGACCTTGGGGATAAGCTAGCAACGGCGGAATGTGCCCAGCAATCCGGATCAAGTACGGTAGATCCAGCCTTGCGCTTGCGGCTGTTCATCGGCACCGATATCTTTTGCCCCGTACTTACCTATGCACCGCGCTACGCCACCTAATAGTTCCTGAGTTAGGTGCGGGAGCGAGTTAATGATCGTAGTATCGCCAACTTAGTGAAACAGTTGTAACGGCCGCTCTATGCGAATTATCGTGTTTTCCAGCTCCAATAAGCTACAGGAAGGATGCCTGGCCTTGTCACTTTATTCGGGAACGAATAGACGTGGAGCGTCTTCCGGCCACTCCTGTTGCTGCACAACTTCTTCAGCGACTAATCAGCTACTTTCTCAGTTAGAGAAGTCTGGGTTTCTTTGCGTATAGCCAGGCGGGTGGTCCGGTATACCGAGTCTACACAGGTGTAGAATCGGATATCAACCCATTCCCCACCGGGTTGGTAATTCGGTAGAAAATAATCCCATAGGTAACATGACCGTGCGTTGTTGCACGGGCGTGCTTGTGTATGCGGCCAAAATCATAGGTTTAGAATTGGTATCAGGGTCTAGCATAGACCTCTACTTAGATAGGATGCGCATAACACGCTTCG | |
GTATTGATCAGGGTGGACATCTGTCCATACACACCTCTGACAATCCAGCCTCTTAAAAAGAAATCAGCGCCTCGCACCGTTGAGTCCTCCTACGGGATACTTGAGCAGGTGTCCTGAGTTAGGTGCGGGAGCGAGTTAATGATCGTAGTATCGCCAACTTAGTGAAACAGTTGTAACGGCCGCTCTATGCGAATTATCGTGTTTTCCAGCTCCAATAAGCTACAGGAAGGATGCCTGGCCTTGTCACTTTATTCGGGAACGAATAGACGTGGAGCGTCTTCCGGCCACTCCTCTAAGAAAACGTCGCAAGTACCTTTCATGTAAGCAAAAACCGTGTCTTGGACCGGGAAAAGCTGCGGGACGCGCTGATACGGTTTTGGTAGAGACGACTGAGCCAGTACAGCTTATGCGTCACCGAGACCTGTTCCAATGGTTGTCAAGGACACTATATGGTAGGTATCTTGTCTTTTATTAGCGGGAATGATTGTGTACCTTACAGATCCAATCCTCGCGGTTACTCACTAGTCAGCTATGTAGGCCTACTTGCCGCAACATATCTCAGCTCGTGAGAGTTCGCATTCCTATTTCCCAGCGCGGTATACAGGTTTGTCTATTAGGAGAAGATGGTAGGCAGGCGCAATGTAGACACCACGTAATCGCTGCACAGACCATTCCGAGCCGGCCCGAGCCCCCTTAGGCGCTACAATAGAGCTTTTAGAGCTCTGTCTGTCATCTTATCTTTTCTGTGTATCGCTACGAAGGCAGGCAATCTCAACACGTCCATCTATTTGCCAGTGCCTCAGGAAAGGCATGTCATTGGTACCCGGCGCCGTTCGACATACCAGGTATGCGAAGCTAATAGTATATGAAGCATTGCACCGGAACTAGCACAGACAACACTTCGGCCTCGAGCTCCATGATCATGTATCCGGTGAATCATCAGCGTAGCGTCATAACACATCGAGGCTCTCCTGGTTTCGCTTTGCAGACATTTCAGCGT | |
GGCGGACCTATGCCCCATGTAAGTTTTATAATAGTATCTTCTTATCGGCGCTTTATCTGTCCTTCTCCAGCACAACTGATACGCAAGGAGCAGATACTGCGCGACCTGTTGGCCACATGGATTAACCGGTCCCTTAGAAGTCCCCACGGTGCGGCATGCCCTCGGATCGTTAGCGTATACTCCACTCGAGAGTAAAAGAGTGCGACAAGCGATGAAAGGTCATACATCTGAAAGGGACCCACCGTTGTTGCTTCCAAACATCATCGTAGAAATCGTAATTGTCCTTCCATAATAGGGGCATTGCTCCAGGGCGCGGTTCGCCGGGCTTGGCGCTCTCTATAAAAACTTTGTGACTTTTGTGGACATATGAGGGAACACCCTTGACCGACCTGAGTTAGGTGCGGGAGCGAGTTAATGATCGTAGTATCGCCAACTTAGTGAAACAGTTGTAACGGCCGCTCTATGCGAATTATCGTGTTTTCCAGCTCCAATAAGCTACAGGAAGGATGCCTGGCCTTGTCACTTTATTCGGGAACGAATAGACGTGGAGCGTCTTCCGGCCACTCCTGATAATTTGTTTGCAGACCCCGAACTGTATATGACTCAACCTGGTCGTTCCCAGCAATAAAAGTTCTCAAGGCCTATGATGGGTCTGGTGCCCACTCCTACCATGGTTCTTCGTGAATCTAACTATTGTCACGCTTGGTATGTTTATCCTCCGGGAGACCGTGTTGAACCCCTACTTTCTAAATTTCGAGAAGGTCGGTAACCATCTCTTATCTGTCTGGCACTATTCAGAGCCGCCCGTGCGAATTCTCCCCCATTAGTACGAATCGAGAACCAGCGCGCTCTTACGTGGCCGTATTGCTACATAAACTGAGGATTTGCGAGGCGGCCATTCTTTTCTTCTATGCCATTAGTGTGGAGGTACTGCAAAAATACGCGAAGCTCGACGAGTTTAAGTGGAAGCACCTTAGTTGTGGTTGCCCAAGGCTATGCC | |
AGATAGGTACGTTAGCGTCTGGAGTCGGCCATCTGGCATATTTTGGCCAATATGTACATAAACCGAAGAAATTACTCATTACAAGGCTGCCCTAAGTTTCCATGAACCCAATCTCTAGAATTGATCACAGAGCCACTCGCCTCCAGGGCAGCGTTGCCGGTATACTCAAAGCGCAGGTAGCTCACTTCCTTGATAAGAAGCGCAAAGCTTCACGAAATTTAGAACATCCGTAAATAGGCCGAGGCGGCCGGGAAACTAAAATTAGTTACATGCGGACTCTCCCAAAACACCCGACCTGGTACTTCGATGATGCGTATTCTTGCTGAACATGGTTCGGATCCTGCCACTAAAACGGTATGGCAGAATAGGGGTACTCAGTTAGGCGAGGGATCCATGTCGGACGCCCGCCAATACCCCCAACATTAACCAGACTCAGTTCTGCGAACAGTATACGAGCTCCCAGGTGGACATCCCGGTTCGAGGACTTCGTCTGCACAGTGAATATGACATGGCGTCCGACTTAAAATTAAACTGGCTATTTGTCTAGAGATGCACTATTGGCGGGATTAGGCAAACTGCTTCGGATAACTTGAGATGGACTCTAAATAATACTCCCCGAGTGTATGTTTGATATGCCCTAACATGCTCAATACACTGGCGCGAAGCCGTAGGCATTGTGTGTCACATGTGATAGGGACCGAGAACGTAGGAGGTTTCGTCGGTGTCATCAATAGACACATATGTGATAGGCCCAGGCATCCTACGCCTGAGTTAGGTGCGGGAGCGAGTTAATGATCGTAGTATCGCCAACTTAGTGAAACAGTTGTAACGGCCGCTCTATGCGAATTATCGTGTTTTCCAGCTCCAATAAGCTACAGGAAGGATGCCTGGCCTTGTCACTTTATTCGGGAACGAATAGACGTGGAGCGTCTTCCGGCCACTCCTCGTAGACTCGGTGACGTCACAGGTCTAGCAACATTTATCCGGCTTCGACAGAACC | |
ACGAACAGCTGCTAGATTGCGCGAGGGGATGCCGGATTGCGCTTAGCCAGGGGGCTGGCCTCTTACTTGTTGTATGCCTTGGCCGGTGTCAGAGGGCGAGGAGTCGCATTCAACTAAGTCCTATAGCGTGGCTTGCTTGATGGTTGAACGGTTTCTTCGAGTAAAGCCCTGACCCTTAAAGGCCAAGGACTGCGCCGTCAACTTGGCTCGCCGCAAGTCGCTGAGCGCATATCACGCGGCTCAATCTCATACCCAGGATTTAAGTGGACGCGGAATACACCCTCGCGCCCGTTTTTCCGCGTAGACTGCGCAAGTACAGGGGGGGGGGTATACATACGGATTGTTCGGTACAGACCCCGTGGGCGGTGGCTTCGATTTACGGTGTCTGACAGCTCTTGCAAACAGGGCAGTCTAGCGCGACTGCCACGATAGGGCTCATTCCTTCAGCAGCGTATCCATGTCGCGGTCTGAGTCAACCTTAGGGAGGGTTGACCAATCAAGGATAAGAAGACTATTGTCGTTTCTATCAAAGCTTACCAATACGATTTAATTGAGCACAGATTGAACCCCATCTATGGGAAAAATCTCGCACCCGTTGCTATCCCACAATCAACAGAGATCGCGCAGGAGATCCGGACGTTCGTCGAATTGCTCATTGATTGAGCAGCACAAACCTATATTTTCTAAGGGCCCACCCTAGCGCCGTCCCTCGTTTCCTTCTGTCTAAGGCGAAGACTTAATCCTAGGAGGTGTCGCACGAACGAAAGGCGCGCGCGGGCGCATACAAACACCGCCCTCGCGCTAGAAGCCTGAGTTAGGTGCGGGAGCGAGTTAATGATCGTAGTATCGCCAACTTAGTGAAACAGTTGTAACGGCCGCTCTATGCGAATTATCGTGTTTTCCAGCTCCAATAAGCTACAGGAAGGATGCCTGGCCTTGTCACTTTATTCGGGAACGAATAGACGTGGAGCGTCTTCCGGCCACTCCTTTATTCAGAAGC | |
CGTCGGAAGATTGTACCAAATTTTCTTTAATAGGCGATGAAACTTAGAGAATACTTCCTTTTGGTCAAGTCGTATTCTTAATGGTAGGTCTTTGCGACGGGATCACAGTACTACGCGTCACAAGGGGTCGCTTATTCACTGCAACCGACATCCTCTTAAGCATGCACGCCATATAGTGAGTCAGATAGTTAGTCGGACCTTTTACGCACTATGATAGTAACAGCCGTCTCCGGGTTTCCTGAACCGTCTTCCAATCGTGCGTTCTTATACCGGACTTTGCCGCTATCTTCCTCTAACATGTGCCAACGCAATCCTGAGTTAGGTGCGGGAGCGAGTTAATGATCGTAGTATCGCCAACTTAGTGAAACAGTTGTAACGGCCGCTCTATGCGAATTATCGTGTTTTCCAGCTCCAATAAGCTACAGGAAGGATGCCTGGCCTTGTCACTTTATTCGGGAACGAATAGACGTGGAGCGTCTTCCGGCCACTCCTGTTCTGATAGGCCTCTGTGCAGGAAACAAAACCGGTATCAGGGACTGACAGTAGCGTTAACAGCATAACTCATCTTGAAGCGGCCACCAGAGGGCTTCCTTTCCGATAGTTAGGACTTTTAGCAGGGCTGCTACTCTGGGTGTGACTCTTTGAGCCTCAGTCAAGTGGCAAAATGCCGCACGTCTCTTCATATGTCAACGGATAGCCAACCCATCTCGTTTGCCGCTAAAGACTCATCCTTGAACTTCAACGTCTGCCTTGCAGTATCGCGTCGACCGCATCTATACACTCCCTGACGCCACATGCCGTATACGAATGGTACTATGAGGTAACAGTCGAGGCCCCCGTTTACCAGGTCGACCATCCATAGGAGAACCAGTAACGAATAAGAGCCGCTACTTCCAAAGAACCGTTGCACCGCAATGGATCGTATACGTCTAACTGTACGACGCGCGACGTGCATCCGAACTCCAATGAGAACCGTATTCTACAGCTTTAACCATGGGGA | |
TTATTCTTAATAAGTCTTGAAGGAGTTCTATATTTCCGATCAATGGGGGAGGGAGAACCGTGTTCAATGATTGGGTGGACCTATCTGTACCCTTCCCGCAGTCCAGCTGCGACCCGAATTGATTTAGTTTAAGAGGGCAATCGGCGGGGATATGGCTTTCCCCGTTGGGCTGAGGAAGATAGGAACGGAACCCATGCCCATATACCCGAATAGCAGGTGCGAGAAACGCTCAGTATTTCATTTAAGATAATACGGGGTACAGCGCGGAACGGGAGTGGCAGCGTTAACCATGGCGTAGGTTAGCAGAGGATTATTAGGCGGGCGCTGCCCCGCCGGCACCCTGAGTTAGGTGCGGGAGCGAGTTAATGATCGTAGTATCGCCAACTTAGTGAAACAGTTGTAACGGCCGCTCTATGCGAATTATCGTGTTTTCCAGCTCCAATAAGCTACAGGAAGGATGCCTGGCCTTGTCACTTTATTCGGGAACGAATAGACGTGGAGCGTCTTCCGGCCACTCCTCGCTCTCAACGTTGTGAAGGAATTCACTCTATATTGACGTGCCCATTCCCTGCGAGCGGATCGAAAAACGTAAATTGGGCTGGGCAATTCCCCTGAGTGCATAAGTGGCAGGTGTCGTTACAAGGCGCTGTGCTACCGAGGGAACTAGTAGGGTTCCCCGGGGACGCTCTTCCACGCTGGTATGTTGACGGTGTTTCTGCTTCTCTGTGTCCGTTTCCCCCTTGTTCGTGACCGAACCAGAACGGGTTCATTGGAGTCGGCCAGTATCGGGCTGTACAAATATAGACCCGTTTCTCTTATGGGTAACCTGACTGTGAGAACGATGTGTACACTACGAGAAAGAGTAGAATGTTTCGGTGCCGCCGTCGCTGGCGTCGTTGCCTTGATAGGATTCCTTTTATGTGATATTTACGAGTCTACTTCAGTGAAGTGTCCAGCAATGTAGGCGATGCTCTCGGTCGTTCGGCTAAGCCACTAGACG | |
TACCCTTGTAATATTAGCCTTTCCATAATATTACTTCCGCATTGCTGGTGGTAGCTTTTGTATCGCTTGCAAAGCATACTTGACTCCGTCGCGCTATCCGACAGAGCCCCACCAAGCCTCTATGCCCTTTCGCACTAAGCCGAAATGCGTCCCACCTATTGATCCTGCCTCTTTTGTCCCGGCAAGGAGACCGTGCGTTTAGAATTTTCTATAACGGTTCGGTTTTACTAGCATGCGGGTGGCAATAATTACACTGCGAATCTTGTTGCGGTTAAGGCATAAATGGCACAGAATGCAACAAGGCCCTCCTTCCCTCGCCCAACTATGTAGATCCAGTGATTAACAAGAACCGCATAAAATGCGACGAGTTATATCGAGAGGCGCGAAGCAGCGCTAGTTAGCTCGCCCCACGGGTGCCGCACGTACAATCTTGTGGGCCCCTTAATTAGTATGAACTGCTATACCACGGGCAGGCCACGCGCCCCTAATGTTGGTCTCTTGACCAACCTAGGAACTTACCGACTAGAGTTTCTCTAAACATGAATCCATAAGAGAATTTGCAGTAAGCATCATGCGGCGGCCAAACGGTATTTCCCGGCTTGGTTCACTCGGAGAAAGACTACACCGGCACGACCCCGGTACGTTACACTGACTATCGCGACTCCCCCTTAATACAGTAGTACCGCGCTGGGGTTTAGATATCTGTTTATTGTCCTGAGTTAGGTGCGGGAGCGAGTTAATGATCGTAGTATCGCCAACTTAGTGAAACAGTTGTAACGGCCGCTCTATGCGAATTATCGTGTTTTCCAGCTCCAATAAGCTACAGGAAGGATGCCTGGCCTTGTCACTTTATTCGGGAACGAATAGACGTGGAGCGTCTTCCGGCCACTCCTTAACCATGGAGGAACTTCCAACACTCGAGGGGGCTCGGTATCGATTAACATATTTAAGCCCCGGCGCTAGGTGATACAACAGCACATGTGCGAAGACATAATTCCAG | |
GTCAACCTGAATTATGCTAACCAGTCCCTTCTACCGGGGCCCATCATGTGTTCCTCCTGGGAATAGCTAGCCTAGCCTATTTAACGTACGTTATGATGAAAGCCGTAACAAGCACAGGTCCAGTTTACATGTCTCGTCTGTCAGTAGTTTTAACGGGCGTACGTACGCTGTGATGTAAAAGGGAAAACCACGAATTCCGGTAGCGGGATGTGGACTGGAAGTGAGCTAACCTTACTATTTTTGGTGGTCAAAGTACCGGTAATGCTCAGACTCCGTAAGATACGCTGTCAACCGTTGGCACGGTGGGTAACTAAGTCTCGACAACCGAAGGCACATCCTAGACAAGCGTAATCTCTTGCGCCTTCTAACAATATTAGCCAGAGCCAGGTCCCTTGCCCCGTATTACCGCGGGAGCACTCATAATCCATACAGACAGGCGACATACCATTGGCATAAGGAAGCATAGGATTAAAAGTGTAGGAGCACCACTCGGATGCAAGACAGTACTCATAAGTCCGAAAAGAGCTGGGCCAGAGACTTAATGGGCGAGACCGCTATATTGGCCAGATTAGGAACTCAACTGACGCTAGTCCGGAAGTTCGCGCGCGGTTGCAAGCGGCTTGATCCTGTGCCATGACGAGCCACTCTCCATGGTGAGGGGGCCCTTCACGAATTTGCTTGGAAGGGGTATATACCAGCCGAAGGGTAGCAAATGAATGCTGACACTTTCCTCGGGCATGGCATTAAGTAGCGGAGTGGGTGCACTCCTGTCCGGCGATACCTGAGTTAGGTGCGGGAGCGAGTTAATGATCGTAGTATCGCCAACTTAGTGAAACAGTTGTAACGGCCGCTCTATGCGAATTATCGTGTTTTCCAGCTCCAATAAGCTACAGGAAGGATGCCTGGCCTTGTCACTTTATTCGGGAACGAATAGACGTGGAGCGTCTTCCGGCCACTCCTAAGATATTCAACTTTAGGACGTATTCACGCCCCTCCGCTG |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{-# LANGUAGE OverloadedStrings #-} | |
{-# LANGUAGE BangPatterns #-} | |
module Lib where | |
import qualified Data.Text as T | |
import qualified Data.Text.IO as T | |
import qualified Data.Text.Internal.Fusion.Common as S | |
import qualified Data.Text.Internal.Fusion as S | |
import qualified Data.List as L | |
import qualified Data.Text.Unsafe as U | |
-- import Data.Text (Text(..)) | |
import qualified Data.Text.Array as A | |
import Data.Word (Word64) | |
import Data.Text.Internal (Text(..)) | |
import Data.Bits ((.|.), (.&.)) | |
import Data.Text.Internal.Unsafe.Shift (shiftL) | |
longestCommonSubstring :: [Text] -> Text | |
longestCommonSubstring entries = go [""] "" where | |
go :: [Text] -> Text -> Text | |
go [] longest = longest | |
go current@(s:_) _ = go (filter substringOfAll $ concatMap step current) s | |
substringOfAll :: Text -> Bool | |
substringOfAll s = go entries | |
where | |
go (x:xs) = s `isInfixOf` x && go xs | |
go [] = True | |
-- {-# NoInline pred #-} | |
-- {-# NoInline step #-} | |
step :: Text -> [Text] | |
step s = map (s `T.snoc`) ['A', 'C', 'G', 'T'] | |
isInfixOf :: Text -> Text -> Bool | |
isInfixOf needle haystack | |
| T.null needle = True | |
| isSingleton needle = S.elem (U.unsafeHead needle) . S.stream $ haystack | |
| otherwise = not . L.null . indices needle $ haystack | |
{-# INLINE [1] isInfixOf #-} | |
data T = {-# UNPACK #-} !Word64 :* {-# UNPACK #-} !Int | |
-- | /O(n+m)/ Find the offsets of all non-overlapping indices of | |
-- @needle@ within @haystack@. The offsets returned represent | |
-- uncorrected indices in the low-level \"needle\" array, to which its | |
-- offset must be added. | |
-- | |
-- In (unlikely) bad cases, this algorithm's complexity degrades | |
-- towards /O(n*m)/. | |
indices :: Text -- ^ Substring to search for (@needle@) | |
-> Text -- ^ Text to search in (@haystack@) | |
-> [Int] | |
indices _needle@(Text narr noff nlen) _haystack@(Text harr hoff hlen) | |
| nlen == 1 = scanOne (nindex 0) | |
| nlen <= 0 || ldiff < 0 = [] | |
| otherwise = scan 0 | |
where | |
ldiff = hlen - nlen | |
nlast = nlen - 1 | |
z = nindex nlast | |
nindex k = A.unsafeIndex narr (noff+k) | |
hindex k = A.unsafeIndex harr (hoff+k) | |
hindex' k | k == hlen = 0 | |
| otherwise = A.unsafeIndex harr (hoff+k) | |
buildTable !i !msk !skp | |
| i >= nlast = (msk .|. swizzle z) :* skp | |
| otherwise = buildTable (i+1) (msk .|. swizzle c) skp' | |
where c = nindex i | |
skp' | c == z = nlen - i - 2 | |
| otherwise = skp | |
swizzle k = 1 `shiftL` (fromIntegral k .&. 0x3f) | |
scan !i | |
| i > ldiff = [] | |
| c == z && candidateMatch 0 = i : scan (i + nlen) | |
| otherwise = scan (i + delta) | |
where c = hindex (i + nlast) | |
candidateMatch !j | |
| j >= nlast = True | |
| hindex (i+j) /= nindex j = False | |
| otherwise = candidateMatch (j+1) | |
delta | nextInPattern = nlen + 1 | |
| c == z = skip + 1 | |
| otherwise = 1 | |
where nextInPattern = mask .&. swizzle (hindex' (i+nlen)) == 0 | |
!(mask :* skip) = buildTable 0 0 (nlen-2) | |
scanOne c = loop 0 | |
where loop !i | i >= hlen = [] | |
| hindex i == c = i : loop (i+1) | |
| otherwise = loop (i+1) | |
{-# INLINE indices #-} | |
isSingleton :: Text -> Bool | |
isSingleton = S.isSingleton . S.stream | |
{-# INLINE isSingleton #-} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module Main where | |
import Lib | |
import qualified Data.Text as T | |
import qualified Data.Text.IO as T | |
import Data.Text (Text(..)) | |
main :: IO () | |
main = do | |
contents <- T.lines <$> T.readFile "inputs.txt" | |
let lss = longestCommonSubstring contents | |
print lss | |
--print $ longestCommonSubstring strings |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment