blob: 8a99cd2a6d76b844a91c858268995127ce010526 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2007 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.text.tests;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Random;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import org.eclipse.jface.text.Document;
import org.eclipse.jface.text.Position;
import org.eclipse.jface.text.source.Annotation;
import org.eclipse.jface.text.source.AnnotationModel;
import org.eclipse.jface.text.source.IAnnotationModel;
/**
* @since 3.4
*/
public class AnnotationModelStressTest extends TestCase {
private static final String RANDOM_CONTENT= "UENTXRXNMRXSTNVZFACSMTQYVGOLEPGRXRH\n" +
"BCQCYH\n" +
"ZSJRPJZIVPLESNNZXJKZXKATUOPEB\n" +
"JDEGL\n" +
"PDGYPBQCHJCVBSKGBUMPBW\n" +
"NTUQFUTBSMMHAJBLDCIQSOMICATQRXDFHZBEHFPXNBQFXPCEBCHGUDEQUHQVWMVVROVCBOOPTUZFNSXZRXJLOJDTWYFYQHDVRKRYMITTMZFQRZNUQLNO\n" +
"HK\n" +
"QWHWVOKYKICEJKTDGALDXXNVBHVV\n" +
"QSHTSCUMBHWNNQLWSMKPWBYSLLPKNQGIQHIBNJJNQWZUDGNZNVCHYVIOQHQHKTUGCIARWSHTIGEZEHBHCIYSWXAUXWA\n" +
"JNGWEXGZACWDR\n" +
"ISVJN\n" +
"ZVIIXXFPFKOCSLESKVPAAPMQCSYOW\n" +
"TWPRIZUB\n" +
"MJMSRIMRLFAWUIDDX\n" +
"AYBHEVT\n" +
"DGWQBPQNVXUXEDCSIUIER\n" +
"WN\n" +
"JMXZFQUPSUOCTKLVOVHYUKKUBD\n" +
"X\n" +
"XVSLLHYFKIQTCXT\n" +
"KXTCYLQT\n" +
"DICOZRNMKGSSKJOODWFM\n" +
"OK\n" +
"QLGNOCOGGWFZQEZQOLHNCFCWYB\n" +
"JVWXRLOCYQRLAKTJOKVMHGUXCUT\n" +
"GZPWSPSSHXUF\n" +
"QORHKHPQUABXGQ\n" +
"CKUVQSZKHHRJWBTHLTB\n" +
"PMHB\n" +
"ARTDOBRPCC\n" +
"PK\n" +
"ADSASNKVKLVKDMHKDPLRFTXZLRKRE\n" +
"XEFSKKEKFGFHPXIHUXJKLCDTMXKJEVLRGQDNLFAMQBMZEANXHJNTAJTBYNYRXB\n" +
"LD\n" +
"SDPCIHNNNWBFEPBSZZVUJOUTUV\n" +
"HCAMQPJEHUOREIWUUIZHGRO\n" +
"NHLEZHZFIXRKFUCEATXXYRIGBYCMGIWETUUPQZ\n" +
"ZMWHXIFDRIZMKNQREA\n" +
"OCDP\n" +
"DYIPMHPXNH\n" +
"VJT\n" +
"RAUMTNTGEWKMPAHUKODZWMAHEVNGBHZMCRTTWSFQLTQPUFWITLLNMRKOE\n" +
"QWEDMVURBUPADIWNURQSVJVUCFYRVFQXARBBII\n" +
"CQSWJPFYDCTIDQPPB\n" +
"WCGGBTOULQUVUSDZYXWSLQZRZIWRJNPLSEXNIIMLGYMPSJKH\n" +
"IRCIHTCLGFRXHTFSMMQKWXEUIOAJMTHHEJZMJNZALAOL\n" +
"SDMOHBM\n" +
"BPFIXVUUHZJRQJXYTQJRDBNEVUDFO\n" +
"OSHWGOJCJEP\n" +
"KNAQLY\n" +
"ALVVYJ\n" +
"DOQQOOINMJAXGNZSBGHWJFOLZCHLRAIBMKVSY\n" +
"Z\n" +
"QTURPOEVPEXLJK\n" +
"WWAMWCOTAQUWCRRLFHDBOXIQSLWYYEDCEQLRDI\n" +
"JKZCPJ\n" +
"QVEIMJ\n" +
"CGBCQ\n" +
"DRDBKDG\n" +
"RUCHORL\n" +
"FFFZFJMOJ\n" +
"ZEIYFBKEFTOWJNDMKVVAUNKGIOUUHWONLUUJYWWWGWELKIUKTQ\n" +
"VT\n" +
"JYZGKQBFAOD\n" +
"DKSRELAUDWBZEZTDBBERCE\n" +
"FXLUAZSHBYUHRPCMWGPMWQIK\n" +
"NLADPOOKGASDQCHNGJQTORSTHROVMMENNJIVSW\n" +
"JGC\n" +
"L\n" +
"IM\n" +
"LLNUZP\n" +
"TIZY\n" +
"WXWGFHUKZGKSRSMETXGRDUUJCVNRZHPPJDPLOJOWMPHCGDDVYJTTZM\n" +
"KLBRTASATBDHZJ\n" +
"PM\n" +
"XZJSQCQWQ\n" +
"CIMEAWMSA\n" +
"UFWGVFSOUQFTNEEK\n" +
"LOQNFKKYKFTEIAQASFKUGYGRQHKKOWXPNOADPSWNQ\n" +
"QNYBKVOZGELUDWPBTWLSYVKZKIZGPD\n" +
"UCHJZERGLRPTLL\n" +
"KHYJZIOPAOFYTD\n" +
"ENWCEJP\n" +
"ZEHX\n" +
"HHOEHNATJ\n" +
"PYVTYHQMEBWOPNZTBXFKMZDZHGGAMIYMDEAL\n" +
"GQPNBRCMVEPQOCPDJKGHCJCYT\n" +
"SCHHWPBYZIHTXPKQRHWQUUWSNYWBBR\n" +
"RNFDOIUIEPRECATKQNHBZSRPGAEAJRUCNOJQTOPAXQYQAFMYHLXQLRUZTRRLWWHSF\n" +
"DPOPZOKBUXHFBLWYWTVVNDOZSGWCJCHZHGDXEJL\n" +
"CQDBKUKBNJEVG\n" +
"NQRGMKYUPKJABAWKVDLTVZWXFMLFPBJQQIHGXYPKIOTHOCOTVZHRDVTTLRGNYVTWXSIXAJSXXQVCG\n" +
"UD\n" +
"LKFCQCMIHOJOKPQYNOTPCFSGYNXPO\n" +
"BIMWQKREVNZBRKKKURHMUOGQM\n" +
"RZCJAVUU\n" +
"SBWWLPVOXVKEVMWVZQBMMHFDLCOUIXQPFUFGVQBTRRZJVN\n" +
"PYESJMBMUUPYEEGC\n" +
"NSYDUSFZ\n" +
"USJFOGTZRNUEZOYGCLRUDSECWMIYTADDHX\n" +
"SUYHOPWJUTFSSSMJ\n" +
"YYYTEZUSOTREIUCRFVVEQWJEUKYWJHGTXDLZQKWWQW\n" +
"NAV\n" +
"DVSEDJTGPAMMBFMEORNRKBBTBWJZRLJTJHG\n" +
"EY\n" +
"GMBLDOJZJJAOUCVNTYTOTKABC\n" +
"SVJQGGPUUJPVWQRJNWRWRDQMLTMKUTY\n" +
"X\n" +
"VTSUUTJRXQBIQINHANYGPWITDFAADJLTTHYBGAAPAUPKOQOCVDEYQLLMSWUIGJZBXCUHOJVAKRPHWWL\n" +
"Z\n" +
"ODXKPZTGZMXGEUSVWENBEPJTBZUHUZH\n" +
"EVYQRFJLMDVWWNZJCUGDZFVTKITEBVAHWBCSB\n" +
"NJDEYTKJGGBTKGHPJRISCJMHEMFBREBVRJVRPYLTQMMGLGGAQEMGBDL\n" +
"HVYS\n" +
"HLTENGQNYNOAIIILYSTDU\n" +
"VJIAGMFGVYL\n" +
"GAEWZNUPWNHIPBW\n" +
"QI\n" +
"MYJNARDHOWLXFEKD\n" +
"TZCGYVDRILNLZZJERKM\n" +
"GJCE\n" +
"EIJOJI\n" +
"ZAPZXBZLMKGA\n" +
"TKMVEATQIXCULZVZWPZEVVTE\n" +
"HVFBCDSCZCTYSFRIS\n" +
"LP\n" +
"RDNLFQOSOLTKNEBXQR\n" +
"AGRUUNFKYAHDUWZGTXZVUOZZAVZLQHKWULTHDRVMBAIIXAGOTMOEGKABHEEE\n" +
"DASOMFXI\n" +
"LVGDQZYIJGNYPZ\n" +
"POSFUWVZTIORFUJBGIREOMSOTFH\n" +
"QQGROZACVVZJDDCWBKKHGREYHKNNBYSKLKGJQIOFBCHOOBOQRCPN\n" +
"O\n" +
"XTAKMHUKVCYSCDFQ\n" +
"BTX\n" +
"AKTKCGLSPHAGYSGQMSPUO\n" +
"QNINNDCNBQC\n" +
"LBVK\n" +
"NYOOQEVTDFVDIV\n" +
"UXEVRZVAKWSOBXUC\n" +
"I\n" +
"DRGEOLAPRINXIDSREXGEFBRYVZJZ\n" +
"LUIZFHPYKOCNWKYFCSFAKWZ\n" +
"S\n" +
"HGVDCPXJLGQF\n" +
"BNT\n" +
"CGQBSJJNJB\n" +
"BVSEXHP\n" +
"GBRFRXGWGBHPQE\n" +
"JRPCXFXUDOAVDAOLNSNEWBXFXTMSLDTFUEBZHWMYRREDYGRHHJUQMWSM\n" +
"JGCFDKZSHRDBIMFPHMDAMHQUYTIIOMUVFELPSRWGRLIDGITQCCIR\n" +
"SARLPTMOBYOAUSGHMUVUKPUMOXFMDZQABAWKPFINLVJWYGCXIIF\n" +
"UJAYAVBIINRMRL\n" +
"ANK\n" +
"CMUMPO\n" +
"OQOHRKXEABJNHDPTYRVCZFJOJGJRVUCP\n" +
"WDZAUHWITGTMVBV\n" +
"CHFTCDEKZPORUVODFPEACIXOVXEFEPNUUKHALPLRGNJVIMALFEHQCPPTUPCUCQONZ\n" +
"XOLIAKJPYEGOPXEAQXNESNRKG\n" +
"ALA\n" +
"XOL\n" +
"XLMSCLJCFLYIJOOLJFHNXSYEKWXGFXS\n" +
"ZWKGKPMDDPLOGSPBHIYIDKITXUEGVOEJJIUXOUILLKUU\n" +
"XHQHGQYBBXMEINHXYEDEBUKVIWIYFHZRFRJXJOCYIZLC\n" +
"G\n" +
"CNDBWBB\n" +
"FWAWQSMH\n" +
"OSVILVFGJG\n" +
"LOMYIYB\n" +
"KLTUGTH\n" +
"EBMBVCRSGUDXYICFJPDWVQLH\n" +
"EYIECTYLOEASNNKGFQNHLPAOMUVIAVUADKNLTIEEQPS\n" +
"ZUKOGOEMRSOCAWKCDYWDXIZN\n" +
"GNVXBJDE\n" +
"ZLCYEVHLPMISUSENKKWX\n" +
"XNQWAVJWERXHIAOIRMUUQANGOJYWVVIZZEXLYNBTQXVGWHAFBDSZWYCMJJDUDPZLPUTFJFWDIES\n" +
"TVQZYMGSGBSPQUBMKHPBUAHVCXAZGCYHZBNSTIQGGPZICWGLKQAJXHVRRVDYUBYBXHVJASHZSYFBDQ\n" +
"JZ\n" +
"IPJOXVDQBWQUCEILGTGZLZYSEQWRGYNFECOGUKKMXMGQHDWPYDAPCS\n" +
"YNNMHHTHEPUUCPJXHBSDMCIHUOYIMDRWRTKXRSHE\n" +
"TCIEORBXJ\n" +
"BSD\n" +
"FJMJOVJM\n" +
"UGZYSX\n" +
"QDFVFLTG\n" +
"FDSYPULGCEPKPMCIEXUCICQCNRQOGVARBUWEUWRCTYBSGN\n" +
"VSINAZSNBJQAUWRMBXTJEUSGGX\n" +
"ZWSKYV\n" +
"UJDKMBSBQWYVUCIOXMJGXAUGJJVOCOYYFJCVXMM\n" +
"HQGQEHNEZF\n" +
"XIAMMPQUJYEMJQQRMOEVMSFQUYSMFCEKWAP\n" +
"NHDRSLPJTOT\n" +
"HNVXNWAYLJEPAOXYWGZZQVZRBAKHDEZU\n" +
"SMRA\n" +
"XXLSVZRYFBYNQIPVNHEGGDJATETLPODWQUPBIHEZEGWERNZ\n" +
"VEKXAUFWHHBHUTCSOGN\n" +
"ZVLWIAJWBWNV\n" +
"MKKKPCJHIZNMWVRFP\n" +
"H\n" +
"NYIZ\n" +
"FPGFLLPPZDLNEMIQOYMAYIGWT\n" +
"KOPPLHRFCGNXMFYCURFTPB\n" +
"ILBTPBP\n" +
"QJGML\n" +
"MRVOOFWP\n" +
"FFWOQGRAMETJGSZXL\n" +
"DAXJRNBWDOCMKMMTOUECYPZZDJFQSQVDROXMNPEWTQMRVYVAPBILTQHRTRFIMJYKREKTOVSGKKTLBGLBFRZZSRWCZZYZZLKAUBZJZV\n" +
"ABAUW\n" +
"BYWB\n" +
"FEGGFIZNDCLPCKOXWHVWWFQZJ\n" +
"XUZCXCOSHLNAYWZFHJWJKLPVIFBHKWLRLOXNJGNLLMFMCNRJYFAZPHDRG\n" +
"ADHUTFBIGJZGVEPGOPAATLWNH\n" +
"ITITCTYTEIBQQVFJHWYXWB\n" +
"YNPBFTUALLVUWUU\n" +
"QLSGH\n" +
"UGDTYR\n" +
"MHPTGDCVIMRUZAGG\n" +
"AM\n" +
"DCATIWDPIESPRODZDCAQAZUEOEDLN\n" +
"CBWEOLVJGTZTHGFRXOGKUFNSNJNWIJKASZVWLUOLMTESX\n" +
"EMCRYRPQWKLH\n" +
"FKZ\n" +
"VRZFHXYSTNFFTXEEPYXMVBNABSPHBEUOKOFDZDSWHXXUYHIAUDCJGJBOTISGV\n" +
"AXLTF\n" +
"R\n" +
"D\n" +
"RUDRUBAESELWFSURPACIFIAEJJWSZCPKEDUCVMHYMUEFXMS\n" +
"BKQGWCXUNWRAIXWVFEBKOUQJPTBIIKQJFMZORPOKTXVYRZGBWKDNKMQFJXDFWXG\n" +
"PNUURGXNFHQFXVE\n" +
"BNOLPYUIZALSWHEBRX\n" +
"YAORLAHSWKEVIFKFSSWILM\n" +
"JCCRLTGWWOQ\n" +
"XHTFDAGAINXYFXAJEDRS\n" +
"O\n" +
"UKJMSHVNOFT\n" +
"WUWZVWFG\n" +
"FCIMJNG\n" +
"AHAERLEHTFJPW\n" +
"FNXRCQ\n" +
"JEF\n" +
"VSRDKGIXTKLCCATHUTJMZURMOSYAETJZQUQFKYDGZJKEBERWJDFNONJBIHXGIMYEQENGGLZXAFKCNJGZBCPHIULHPTY\n" +
"XBBGFAKBVHCXUBJZPKENODDGMJSLZRUPKUPCSTRRDYURGUSSTT\n" +
"HYRGZYXDOGQKFRFAMLTZSEAAZXSOGDTRICMVUNXWHGZOHMBQ\n" +
"FBIZFVDKE\n" +
"NRBQKIDPADW\n" +
"HGQBDHEVZQTYTVVASKLSWOYJLCE\n" +
"SDETOTELNDTZOUVYFNIEEFOWRHZEWMASAKXASIRBSWOSHMVBMUGCUZQJYUFPOYVFSTSWZRYMBCWERIDONUBFXDOZIGBBSNAHJX\n" +
"UQWRQLNYXFXHDADOXECPXSYWFBYEBVHWMNBPMRVMRQDBTITZEEQEQNUEELYQDKOVSAIKQFMAHUWN\n" +
"OWZOQJNFGC\n" +
"WDNNZXTVWRZOEMNI\n" +
"KCBDTI\n" +
"APOJIMEFJ\n" +
"PNUMBQQMXHDAC\n" +
"ZCWQCMCQS\n" +
"QNMCBMAEYICXXK\n" +
"RKSTMZCRQAVHYLYLAIOTW\n" +
"DRZRP\n" +
"FCNHUCM\n" +
"GCAPBEPSDTJDBIUMGKCABZGCOVPUX\n" +
"CLKFNHFTLVGQDVB\n" +
"HQW\n" +
"OBIXQUITWUXRGLNOXVFNXHQCNQYIZ\n" +
"SHIBOGKOY\n" +
"BRQKHNEM\n" +
"FBAHZSWSBYTCJDEZJFUNS\n" +
"XKABNJVYZQHJBJEKIGAREDBTETKXJRRZRLPXXNFNBDH\n" +
"N\n" +
"NUEHERNOV\n" +
"MYQKXWKLIXVUTXGAHXACEHJRTIRFUMYBGJVIYWMYNCAATHYJQMLTIDVOODMZXAQ\n" +
"IURPSBLEMZUDL\n" +
"OAFRTCPR\n" +
"PMTJYMEZRFPJFRSXJEZD\n" +
"TAHXGL\n" +
"MTWUWXKPQHNJAMSOMCWQDPPBF\n" +
"EFZJZSOHLYDMACNMBJVWLUK\n" +
"EVSBDKVLLBG\n" +
"PGHJQQMAMCGYEFTJNI\n" +
"SKELHFQTGQXWKNSTFIODLWWHXHDUWTEUWHGYEKKWUNTPGZIG\n" +
"GAVQRELOVJLPDZRIMU\n" +
"JCIEEERMQZ\n" +
"MEPVMTCMZYUUXLKQMLUXHYESBXAGASLGZXDUVI\n" +
"XNXIYHRGILCXYBRDNNZENREWDHWRXOFQXLZKDUYCZEGC\n" +
"KLVUZVFAQLUDVXN\n" +
"RBROVXLUNJKN\n" +
"EXPTEOAQ\n" +
"KXDRYHDOMJXRGVEJYFHETWMELGNSZNKQ\n" +
"UKIFTXGUOWFJIYYU\n" +
"WYPFFWPUQRFLECYJYTUUHLXHRBCINYXFSNQQOPX\n" +
"OFYHXVQFTDEAHHMLRLYTPUEQ\n" +
"VVCZQUOABHWWLCWFTWKTXARWCZQKMR\n" +
"GUGRCMNUFNCVGPDCWF\n" +
"SBIGRUMNMDWDEZWICTBECBSGLBEPAOKCEQSPA\n" +
"MUNTHXQUKTDVSLAANSYXHVJXUQBORNJGZQY\n" +
"IXECGCYTXUAHCVBHNUAVVVDTBRGXGCZDXZXAPMEDD\n" +
"GGZ\n" +
"YYBDXEPG\n" +
"VKPOIRMDLPWXVYNKALQGDVHFFLIVYRFNVYJTBZUDH\n" +
"NZLZULXZQCGR\n" +
"CUM\n" +
"UTS\n" +
"EPYRMEH\n" +
"JVDSALRVZ\n" +
"UNI\n" +
"BWTIXCCS\n" +
"IMTIWBOCUAFKGARFHWQXFA\n" +
"QZGMYBKZINLADVSTYQNKPIEBUTGTLBRQ\n" +
"THHRMODKDMGFZJYS\n" +
"PNMHCPTAAUJ\n" +
"YAO\n" +
"ODUHPUZWHBDGQSUPHRVDWRFKZBMZJSCEDVMWXWNAD\n" +
"JSBWOJVVDMXCVDQQCJZMEKHETMCVVI\n" +
"ROHTSGDIQSHGCFEGWVQXXINJKSKDKOCUVVZWKJCUHIO\n" +
"BLQVP\n" +
"LAUMVLNSFXTGFRS\n" +
"VJIV\n" +
"PWU\n" +
"GCAXGYZNLN\n" +
"BZFQKORNIFTDYMYUMYIFPWR\n" +
"BTUPGQTWXNFMWDGGNZUSPAMFVASGLBCYQITUDBRD\n" +
"SYNMB\n" +
"QAFRCADBDUJJWDPSXOKZZQTCLVPSQSBZVTTZRXDXSJRXBOAHODIYOYLCQEOAQDT\n" +
"JGPOEHNGWGISNZFWFOITSUNEUBJV\n" +
"BZNNMLZTLVCJZZXZSLQGACLNRHTQO\n" +
"TCDNYYLBCEVRXDLNGNNBNMLR\n" +
"D\n" +
"NZXSOCPFGRAWKZOQCGJQYTL\n" +
"GTOLLNGHGJYRMCTSOUGONHUUTHPPTAU\n" +
"TWJW\n" +
"SNZRMIREGZSCKCBM\n" +
"XQKVMY\n" +
"VNETEMMRQSBRPAJDQCYWUKQDMIBENK\n" +
"HECALWUGVJPCDHYBNEOJQECBUOHTBNRWFZSHULZVZFDZANUJRUDWZRZGPLPTPQVMXUSSSFKBI\n" +
"CDZYXUMWXLUIQBGKNVNXMHBOIS\n" +
"NKPFXTL\n" +
"FEMMVHUAQHJUGCHSWCCMQTQPSMTG\n" +
"B\n" +
"UBWQZCSQPOAQOJGSLDATZKZDX\n" +
"N\n" +
"QXRSUQBYAHDYWXSHKWQNRXBFCSBPPBQTDZAPCKHSOARXV\n" +
"NX\n" +
"LLHWVVCWQHHWHFFCPQGSDHJQFGUEIPTJDJ\n" +
"XSQPLBPWJJUSDEORJMLPFTRVQQWVPRWLHZAMIWGIKFHOEVCGN\n" +
"ABZAB\n" +
"CIF\n" +
"YEYWGZEEOFNUU\n" +
"HKKAIWVAIZAHUKJWTGTLGX\n" +
"LSJ\n" +
"SZNBOHVRUUNNNOQZQBKDRXXEKPCFAVKMEEN\n" +
"DGFTKMTFFYS\n" +
"RYPFU\n" +
"V\n" +
"TCJBFMXWYLFXFWVSSIHVANRMSOUZTJJQWRZ\n" +
"NPKZGKPZJMIQ\n" +
"DIEC\n" +
"ERLGSJBIT\n" +
"SZCXZNYSMRTAMEPAOPVXQENTXOKUAESZFEWPVFCVZKDWQTCHHOZX\n" +
"WGZPBDYZOZSHFNIIYRESYHBNUDVBUJKDANGAKG\n" +
"LF\n" +
"NWVESANGTA\n" +
"NRNOPGRAIDSNQRGNHMC\n" +
"EFD\n" +
"CYWAZCDALXTPQWZTURESLFYQBFBXYIROKRNLFYNGRRRBLDVDPFEMATQU\n" +
"N\n" +
"UXZDIMTAADLIL\n" +
"MW\n" +
"KGEEPHWZHCMESGWGDFWYYJZAJL\n" +
"JMZ\n" +
"QWXOVHFUSUBVMORKZEAR\n" +
"TMLEJIWNCAIRHYN\n" +
"ILFSRUKGUNBFDECQKORVRSKEHADJPXBOFUKQ\n" +
"XMXWAFPJHQJBOVYIOGYOCXXXELDKXKTEMQNRUSQUBXRQBBTBAJGFKBOJENN\n" +
"NPLJIFIHZLJTLGVMAFQRRVHOWUAARWAU\n" +
"CSQMHXTMMMGUFQWJEHRQXCYVSHKWYZXFDOYBGETKGEOROWSCUOXS\n" +
"JASNM\n" +
"UJOVWRLOID\n" +
"PITSSCBMIFHFZBFBEYVOAK\n" +
"YEEEYHDE\n" +
"WSPKNGNZNYPPYYTK\n" +
"LMNHUQZRXWVGZHV\n" +
"OOCGYPLGJPFAOKWXTESIDZXKQUBCWK\n" +
"CVRQW\n" +
"S\n" +
"FGKKJL\n" +
"QWHTTHVZQGTYOBZEUXOHTXSYSCOOZJQAPWDEQEALZTLNZK\n" +
"RVMLXFWYWTH\n" +
"LCOOOP\n" +
"AXOHOGTA\n" +
"IIOSCPFXMWHFQMKFNANVRGAMPTFIJCZBNTANHLHCJGISOVWYOC\n" +
"NA\n" +
"ZPCKGOYYYYMLQTUCHRQTUNECDTLGHSSSRZFMCZICSLJAXPRQFC\n" +
"EULMGJMKZTHCBNISDBEAXRYOBAODBCBVYOXKDRSVHMHSVSDEWEVWWPSIUPMYGJKXDMNADUMZMOMNWOTJ\n" +
"FXBWSHXWNUOHBDTPQSCKVCPJN\n" +
"EZBRQQICQZSYESO\n" +
"F\n" +
"LHNW\n" +
"RZPUTPTEEPITYWVHBTOWGYZL\n" +
"NKNBTQDEUEIMSGG\n" +
"BWDSOJYVYCLTVBTTRVY\n" +
"UMDKJHCHNGUMTFFQIAOMTFXJMJEJUJSORORTKTHTFPYWHSOXXSKEWHOXULBQQQDRLSQNN\n" +
"R\n" +
"ATHC\n" +
"EOVJPDROSNRNMWGWMVUUTBVXTNOSPWVFTHIHVMKZWSHIX\n" +
"HDBGFFW\n" +
"IBRFSJYTMEZJMULJTGITLSTITGTLYCKJVTSXMMOZ\n" +
"CKGRVGQFBWBEMDTMNUDENL\n" +
"IUL\n" +
"HKOYCXYKLIQDAIMU\n" +
"UZDFWIXUWIB\n" +
"UZOKBHXLNVGJBBIXFOAHADJDNGPNSRCJT\n" +
"G\n" +
"ADS\n" +
"JHHAINBCVAAOTOODRJHNIHBSM\n" +
"SQXXAFQQUEJABJYKGDZKPRTYBIWLJQREJPVCPFCS\n" +
"GRJWNYPXZKIFWYOHCCXXFJIRQAWDLLDPGFZZTO\n" +
"XSKSCESBMBYMWHBTNVYVPOUUVOFWCDAUKMWBIPZS\n" +
"RBJ\n" +
"JKQNGDNRCUNXSPHHHAZVLJGWQFUGEDQSCWAAJLBNLCS\n" +
"RFSIJTEYLV\n" +
"QWWCPTYNRGEKAGCFXRGAYLYOHRCRD\n" +
"YDPGYZF\n" +
"HDDRLGRRDDWMCNR\n" +
"DQ\n" +
"SF\n" +
"FLOFGHQFSIR\n" +
"OEWOFZQZ\n" +
"KQMUIHLNAMPEVCMEUKYASKOXWEQCJBLWKQMYFVBAMYCNZLRDCYKALCTARWQUFWOJKXYZM\n" +
"RLCWZXUHKBDWZZIM\n" +
"N\n" +
"ADMVJ\n" +
"EJWG\n" +
"BA\n" +
"UMYCUTOSGLEKXQZDQNNUGQLWHMYGLSL\n" +
"ZEHAWKMBTMIRFLNLGXHAYMYJRZOCGWGPASQPOMBLSVSKUJZHDVVCL\n" +
"PMAJOJUFEFFTYFSHNMDIQDQG\n" +
"HRXLBAIECHSAAQLLMGBJF\n" +
"PSMVIEGUPEYENLBHBJLEUGEKE\n" +
"XMPWWPYLQG\n" +
"BJMUXGEBNIYJKUVREVBVRLWI\n" +
"PSHAHWUEMXSLAHHENDKANMQZBLKGMKZMBUOVOGTEFMHUIT\n" +
"CLCH\n" +
"XBL\n" +
"SZRZRKVUACBYNYMYKCPRDABOMVTH\n" +
"JECJQSUFZBRJCPXUGMKFRXSCT\n" +
"KZXLYZVXZWVZQLMKAXIFWNQODERRKNZDTZFPPA\n" +
"FMIXQCHBOOQPOQRSVUZEJQQFXQWYFLTUSBHPTUTTOFDYHLXVSOVTABLXIJWJCHZASUSQIIVHBXCJKKCYMJOMJMFRDEHW\n" +
"T\n" +
"IHHMQQAJYSYRSGKA\n" +
"UKMRWKCRFRGVPOYHRCHDWPNKJLBVVCCIPYKOVAA\n" +
"QZPFLHKQWNVCNVDYZA\n" +
"XGAMXNDJITANAWDC\n" +
"FRMOU\n" +
"ECFNMRCVCISCOR\n" +
"FDVREMMIZGLV\n" +
"WTHKAXBYL\n" +
"OVSHPRONNCZBESLKGV\n" +
"UNSSNPBKGX\n" +
"TUUVTNLTRKL\n" +
"ARTYPHRWI\n" +
"CDR\n" +
"CKL\n" +
"IVKGDBLCYYDRRLXYFM\n" +
"KILMYNCYPDYZCLCJG\n" +
"ZB\n" +
"VIWZE\n" +
"ZBKHXGRVTVRBKHIORDBBAAEHB\n" +
"DVPTQCICEWAZU\n" +
"ZFMVHMXINPHSGPQOTPMJYYUHNWANTLWPZOXJQGJ\n" +
"FSDFPLRVDZ\n" +
"AIH\n" +
"FZOALCZOCTX\n" +
"EBHQDKST\n" +
"EM\n" +
"GOLMARGNZMQTYETJBUIH\n" +
"BMU\n" +
"RZ\n" +
"UOCNOYRMX\n" +
"VLXVMEZNPYWU\n" +
"ZESRONJUWOEMLRY\n" +
"N\n" +
"OJBTFZXKSIXWSTQBFWAROGSKWOLRRFNNGECLEOFSXUEBQLMKIIGKFPHTFYZUJTVTHPZVJJF\n" +
"WVWGJICHMHRKGYMMQSQBEBWFNMC\n" +
"BWYNAFZSKLGDUOYHLWST\n" +
"IJXPHHKMNNXOU\n" +
"ZAYRDWKZPNHYLIP\n" +
"STEKYFRJCTT\n" +
"QIXDZNRSHKTAOBAH\n" +
"HCRIBCYAHPDREZTKPLYZOOWZHWYBQZJOSUOWDYKDESRH\n" +
"WIVO\n" +
"YNWMB\n" +
"LRNGED\n" +
"HTWJQCZHLNIJYOHYEO\n" +
"A\n" +
"ZIGDANAWN\n" +
"PTSLAUXIXIAC\n" +
"SYTOKKHHCFYGHBRPQLKEOTLQQRQZVVX\n" +
"DQZYUPODVV\n" +
"SBXGGDDAGENOVMJQZANQZ\n" +
"VCKFZIIPZFPQKQDGLLC\n" +
"ANBZSMZINCRORBLELLXKIWFKDNSBYQCV\n" +
"VWBGCGXWQVWOC\n" +
"YNJM\n" +
"JZLSNKWGDWDLAPSPBSLIMSTIQIEXFOGYVPSZDTAGBLVNILPJVSM\n" +
"HHYLCVQRFOBJCUSOWVOFJIDAVWQIRHYIHGUIFFZQWKHPTAOUQFMTIPTLSBHEPJRZDERRGNJJJYINNHAFMYGHGWSVGRXNVKLXIGV\n" +
"BEBXZXRVMNFTEF\n" +
"XXOKDENGQGH\n" +
"L\n" +
"BVM\n" +
"VYNGZYQPUP\n" +
"TW\n" +
"AM\n" +
"HBFSAR\n" +
"HTADVEFTMXEYDDATGFRQTDQEIGHGDYVUJYP\n" +
"WF\n" +
"XVQAHNLMSYBOPHOHKTJK\n" +
"GDSCQHOFGAHLNIM\n" +
"FTZOLNKDPVEOZIVCFJFZOJLMGIIOWFDEWIAQRT\n" +
"NZOFRHWDTMEDJKQMNTWNTOHOITKDJ\n" +
"XTZQKGKLPSJWDCJZTBVQKSRWOBGVMMWBGYVGJXLKOGQAEJQBMQFBHDHQTOIOHLCOAAODGOAZQZK\n" +
"QZYBJEARPTWICQTVPXWUFEPHIMRWFCLAZNSO\n" +
"JWJXGJIZPDNWQNBDJQUVAIUURFHWTMKCAVKGHZHQH\n" +
"BLRUZFGVP\n" +
"TTCLTJNLGEBMQCW\n" +
"EOBPYCAWBOFMORPOWCNJMQSWNFRGRLRIBHP\n" +
"VLAMFNYJOMJF\n" +
"AQLAPTZJBOR\n" +
"R\n" +
"PV\n" +
"OMJPI\n" +
"XSQDYAWOWHVITUASFCXUREPAJTDTVPRY\n" +
"XMIYJXHRVCDDFR\n" +
"KOLVLDHBERNMTGSBHTAELVGFJFQQMTEHPDHWTFZTAXXRRDIU\n" +
"AWVP\n" +
"HGSZDJIFKDFTSU\n" +
"JI\n" +
"QAOCUMYFWUJJNTW\n" +
"VSRQBJUQQDFZIRKTJVBFI\n" +
"VTJVYPGADE\n" +
"WROBCQAMISFJLTPDIFJLBMGFHVTPRIDPUSNR\n" +
"RTJOXQJXBZXKQDPAAC\n" +
"TTPCFEMYJYFNCWU\n" +
"LPTWNTAEKKEYUFHLUUO\n" +
"NNSHUEUOUZYFSYMKGPSSRNLTIRWVXYYOGSJXIQLBPAFESTN\n" +
"SVJDEGFMWEBNLIMNCHOYIZUBBLDMICVDFYAQFEU\n" +
"K\n" +
"QZQLS\n" +
"ACQFKU\n" +
"PHM\n" +
"TVNDJOYYI\n" +
"OKICUJERAYIJOCMNLXMRZDBKXUJWAGDNXSNSSV\n" +
"TZWNGNHFWOELEGAU\n" +
"VDVVABKAVPZQVLEO\n" +
"SNNLM\n" +
"TVKKJAYDSKVNXALBFJCFJFNPEBBRCQFMZQJFDIJCXPDENCBDZEELUCTPLQL\n" +
"XEBG\n" +
"ZUPRHHHXLDX\n" +
"XDOXJXMMELSEBRPOWFGXWYTPOUAQWDHCIWAXVHCMTQS\n" +
"AUUZGJOJOSE\n" +
"OVQOIFRV\n" +
"JXSUKCTYKUTN\n" +
"LLCZP\n" +
"KNITGEARCUZIXBAVJSYJBC\n" +
"NFL\n" +
"ERWJSZHNMAXDCM\n" +
"YPFWBXMSP\n" +
"IPEYWIIFGJLGXZZM\n" +
"YXVWZAC\n" +
"UM\n" +
"IVWUDYZT\n" +
"YNYWQEDF\n" +
"QBTGBES\n" +
"IFLRJBVILGUAV\n" +
"VHENAQLCDKIBPORJJKLAFLDTAPG\n" +
"PJQHCRZYFDXVSRLJTGFHVFISKGUULKNZOMOKJWFCSVBVRPKTLH\n" +
"QX\n" +
"OVDCUILFECRMAGVAZCGZWLAT\n" +
"SEP\n" +
"OUFQN\n" +
"NLJANQJNNFFUFMWJWCPTGN\n" +
"IMVLDDEKP\n" +
"CTBNZFLSZVXMFPFQE\n" +
"FHRNBURCB\n" +
"PDLLMZDC\n" +
"VWRPPDJDWPKRNV\n" +
"UWPHABG\n" +
"LZHCBMBIO\n" +
"GNBRLZNZSWNB\n" +
"GNZACPJPWLLU\n" +
"EALARWIQYBLUYPWSFGEZIDAKNRWRKKEFITBRHUMDEVSYLMVIUYTBAQAJRBTQHXEPAMOLXO\n" +
"TXJAAINXDZA\n" +
"TEIVEAO\n" +
"HIBCAX\n" +
"Q\n" +
"ALCTNSNWMRGEVADUHUDVTARJGWD\n" +
"AHICDFJYTJELDBDYRQJNBWHNJBDUWUYYT\n" +
"WLFJJBLSAOBPGQJBTXTXZAYWJGS\n" +
"BIUALEOHDNWFRLFIRCQL\n" +
"ZTUOEOTZRLFFRZZIKBYOKD\n" +
"TXICJHKASBWPVPTDTILNCGNYG\n" +
"DFK\n" +
"VHN\n" +
"YDGRUJAAMLUC\n" +
"HRFZPNEOABIREGQXISBCZCIMYECEHSPSAJALA\n" +
"BGFGJSJCJBLMAZKBRTZTVUPWCRSXEJBGEZTOQCYMOJWOEVEDLXTATZL\n" +
"DLBQNE\n" +
"JAHZMEKJLOBCFEBJKGPUIWVIK\n" +
"LBEBAUBMRV\n" +
"VPVUVMBQRD\n" +
"QMZLSRHMITTHAFYXMBWMZXLNLDWJKHOSLTHFKFXUIDNRNSOWAVLNPXUVNKNDIXOXNDGBKIYS\n" +
"ZBMLJHFQEAXCDPQDSUFVSBDCLXNTUALHKOPTKYZTAMEEKUJEQCSIJWIWCUAWZIUFELBCJEKNBOERQYKJUOHDNLDEB\n" +
"LCLFUTZCFBBLGNULWQQYJVFBNMOZI\n" +
"EBHGAI\n" +
"JPIDOTMQSHYT\n" +
"BCHG\n" +
"WWADZILYMYJMQQKEYEHVMJOWXPNS\n" +
"YJSCWWNVTWYODOSXNQBEGMCHYUOHFZLTMEEIYTKI\n" +
"XNXINKKXFSENMAX\n" +
"GNJHLZKF\n" +
"BIGAVOWATBSMVCZPRGVQCNWQNLCDQWOTMDKYCBUFCXULYJMPGL\n" +
"TQTTXYFLCXQMHOIXPUZBSVKIVKM\n" +
"LATJPOJXFSXTQYU\n" +
"NWPZRLZQFEKPCJVKWYUEGTQJPUYOPMZJQLCLR\n" +
"XGZ\n" +
"WBRZOJUNGXQN\n" +
"OAGQRFWSOIYFSJOMXDMVKMCNXPHADBPVGYNNEJMTJBTGRTCFVHEFP\n" +
"FJFJYZQWQMNYOKYBYBKIYVXAESBLXAEMCNLGAGDOVNRXZWNH\n" +
"JCUCQHLCD\n" +
"NQOBRAUR\n" +
"RYWNHAFCFQINQ\n" +
"UTRJIHZLSITQXYVMQY\n" +
"DQYBEHOYJDZJHARZFDGXECNUMPRVXBNNW\n" +
"TPYLXBAKXKJYSPOCBDMWDFNLDJZSTMOAG\n" +
"AHQFQDZGUIDHOLWQYZLJRIVBWGQ\n" +
"BWDQM\n" +
"ZCUC\n" +
"OGSAKIHTDUBQXFEXECLF\n" +
"QJAEHVDCQQANUKEHDRQILQWEAVWXOGZCEERDYN\n" +
"C\n" +
"KDGYXTSAB\n" +
"ZXTMAMRJWWCYOUSNXLBSA\n" +
"ZWDOBHUHXWA\n" +
"VKXDJFCJBPYJNPFFYBZAPWYMSESZBUJLUUAQDQKCVALSJSCHHCSGCHI\n" +
"CNAMVEPS\n" +
"SDFPBWJEAZDQQRTQRDUAMKIBULZFMNKUNDYLJ\n" +
"P\n" +
"VEEW\n" +
"VTGWVGIBNUTJOEGB\n" +
"YWWLAJ\n" +
"RWNRBFJDRX\n" +
"MYFN\n" +
"FTPFVOYEQHR\n" +
"RAG\n" +
"TO\n" +
"LQOVTAHNBABJAQKNBCHHX\n" +
"SZZBZITFBIIZEYDBSYIKYJUEVBSMCWHRKTMILXYQYYCYWPGJSPMBPCJNDLAOBBPHCWVHAFXSUJSKFFDUNWYPAN\n" +
"RHDPHLRFVEMMYFIZWYICJQZKHZX\n" +
"YFZUKLPITEFZACKCDDPIOCUFSTEVRD\n" +
"LTITPNSIAJEHUJYEJSVJGBT\n" +
"SLPWQUKNQGYBVIGUMB\n" +
"LRLONFQHZGTHYYVWZQLVUSQTFUWHJNASPFNGVBJKPR\n" +
"LEMAFKWZFZWJMFVPPIUEZUDLHLJSXHTNGDRIROVO\n" +
"DI\n" +
"FLHSSPRUFZR\n" +
"IIRQTODXIGMBRAQSQSMIVDHBAPZKCYPFQDSTXKYYN\n" +
"SFNEGBGBEXAT\n" +
"XCVRFNDBNXQRMVDSZIGPOHGMBA\n" +
"EEOESCLGWWCWHJWBUYSODZUAYATN\n" +
"JOIK\n" +
"HFQWTNZGPARTFRPCY\n" +
"MWINOFYNEHLFXCAGTGNYTBRN\n" +
"LYLXABDDWDAIMKRMIHI\n" +
"DLQOUXODWNDRSENRYVOOICP\n" +
"TC\n" +
"QMI\n" +
"MHXHEHZZBKUO\n" +
"DPXBI\n" +
"EUVFZVUGRNEMNSBHHHFAQTIUPOXLKVMG\n" +
"WASCSLAFIONIWATAXTFYRZWUKPHDLRFIOI\n" +
"XUNEHA\n" +
"QZPITHNO\n" +
"QDPVEM\n" +
"ZRB\n" +
"ZG\n" +
"NEUOXP\n" +
"XTSWDUSDFNOXSUSYX\n" +
"EJQISYECXPGEERICEPWRU\n" +
"WAGNEPWHUIJJHQMUAGNHMYOIKQBHOHS\n" +
"T\n" +
"RMZYBBXQZPNQMHXBCXKJBNVFDTTPGJPJBRLFVUMMCSKWRJSGPCVREOPWGSTERWVUXZSHODQIHOOAYTSUJFRGURDFNCXEZCBLUOJBTGRPMTCLMQBI\n" +
"PDRTQBKJEXMBHOOSWCF\n" +
"RMMEEVMZCKGIXAERGXBRXPPLBLKWYW\n" +
"FBEXNARCGNLS\n" +
"FW\n" +
"TQQCUJJZZLCDSLUQETEYFQBWWZWTE\n" +
"ENRJUD\n" +
"NJLQSEEFBTDJRYDXKIXGVOBQUSL\n" +
"MEONVFJEFKTUDZKPNGFZZJGVCHVEB\n" +
"VFXYEWSBYQJTWFAICT\n" +
"EOBGFVSOGHJBH\n" +
"MQQSMWQK\n" +
"HLOKZCDPNVTIWLEPBNJEEANPLELTAPNHBTJQ\n" +
"XLFWHOI\n" +
"IZFLTKXAYYWSELSY\n" +
"LRNAEGMLUCVEMBQPL\n" +
"CNORPULYJAOTZYKFQNQMDTSCRGXQZYGDTPOHSQVSILKRAIFOXKEZRDZQNRU\n" +
"GSFTXYVTIIYTSWGLG\n" +
"HEHKDSWSDZAQGXULRWXYWIVJQGXCOIIJGBWENWGMWWOTTFYOJNRGZ\n" +
"ZOOBEOHYH\n" +
"FTAKEZVVHYOIMGNKNHJNIWDOPQA\n" +
"SJR\n" +
"FUPPUXXEIUJXNAONEEGNRHNXYWHKRGFYMSFYGBMABZYRZZHZPOXNJXA\n" +
"UQMYPJYXNOZDEHFSTZDWZVWSX\n" +
"JZVGWUOYUPPFZ\n" +
"HHCAOCAIWXM\n" +
"RZXWLBFWPWNSITSPWJNBTIATOKHXKYUCBRQCGNRMMKBCCXIUGNZCCHJ\n" +
"UFA\n" +
"HCSSETIDVGLDEKRROPMZZYHG\n" +
"JVAJG\n" +
"HOHZZONMSTEIDMDYJM\n" +
"WH\n" +
"UEBAFWOQMRHQDFDFXZYWWPWAEMTRVPYWGDAGMESTWREMEJRCTSVBALLVYQTJRDDQF\n" +
"GJOIO\n" +
"PNYNOXAJUNBBBCTFYPPJXUXMMF\n" +
"WUQMSLARIKYCCLZNXDJ\n" +
"YB\n" +
"DBEQUHQZWSB\n" +
"OK\n" +
"UNZNCPEFNBQKYHV\n" +
"NXKYSEECJQ\n" +
"JNXAQHK\n" +
"GWHNZCLROTCKQRRCFCRGZILFEUPLOQOXVGHYCDFZKHSXKTPZPJOGUUEF\n" +
"KXVZBQKUIVUQEICJDXWDSOGWCMEI\n" +
"WXYJINVRMSYMTMBWWI\n" +
"HZIMQCZWGMXTZGLJA\n" +
"EBDFFBORWLOWJVWXKGVNAYIQKOTHHTBVRFL\n" +
"OMQNHKXNM\n" +
"UFYXYXZEUSEDGURXM\n" +
"BTNLUSOCITXZHYGOCLCNEDBPAKDTKEYGTBNGCLSHFEIGAEOTNDW\n" +
"G\n" +
"Q\n" +
"XTBOXZQTCF\n" +
"MXROBAKZWHCKXLKREOMEGMANJNQGSRQ\n" +
"LOZICPRWXEXBGTZTUUOKHRTHMYQEAWTBLNTVSWWFZTGZZNTIGVZDCOLOFFTUI\n" +
"QSZPKXZSUORWIHBYBNPKCBDWWIEEMEEVXHQJKWLMURAMYLSVWEOBQTYZSWQQAXVCWAZNLDZKQYCAEMYTJ\n" +
"HYDESOOQKJEEUAUZKYIKY\n" +
"QLKMLZCLWXNWDMKDKQTGWOJHXVFQ\n" +
"HWAQHABXRWTVLLVQRTJLQTGRFTYVDSNULWJAKYVQMGSPKLRCFCQKJEZRHULCCKYOXVLLGOKEHBZEWMGHENENIIPBFSBKKADOIPMEYKKEMSDOHSTQYUATDFTVBMROJKE\n" +
"PJXDFFVNJACVMYDXTAPGDBQMDIYNM\n" +
"WVWS\n" +
"PAHNGCPTSKEBGGJDTTVFPAF\n" +
"NLFQ\n" +
"SUUKTALIRDTNXENTNPXBPWYUYASERZUF\n" +
"QEXQTQTVDBRMMLVYBOKWZZJZXYBIRHVW\n" +
"CBOHLDGPGJH\n" +
"IF\n" +
"ABAYULLMFHXQCZIGLTOLAPKYE\n" +
"NFPDMAGHASUWEMPPSHZLXJLCLHVVGIQVRZHUPPMDOQKCVADBLYKROIWJCHFIZ\n" +
"MITGUGZ\n" +
"GIQLWTMDNMXCVBRIHXSUTSQOBATHXTBBU\n" +
"VAQBCUSZWNRYQO\n" +
"HDAEQAAK\n" +
"FEXODZIBJSXU\n" +
"ZVO\n" +
"U\n" +
"W\n" +
"VRCDPAEIWKFCSTYGDCTGQSBZ\n" +
"IJWMRIQCQVRRHGBTFDDDO\n" +
"MX\n" +
"XVLHBXJSOUAWMYO\n" +
"YUNSCRZUATVH\n" +
"JXWIXQIXHFGTKTQBGQTDZXFMWMAHWNWMUPXBDM\n" +
"JFZHLOSOSULNFAWQTBWBQERADCVOEAGCHQJLEUNA\n" +
"MIH\n" +
"GYMRRDVPIOMUPTQLBCIZJIVTELVNIRUDVFPPRRUGOVGAMMIWBDYNM\n" +
"PMU\n" +
"V\n" +
"ILTRVOM\n" +
"PFORJR\n" +
"WPURWTO\n" +
"PJLEKIUPXO\n" +
"VQWUC\n" +
"IMZKVJKWCACHVDXWMGAXPSRFDV\n" +
"EYQKXTRDGAJULGRYWXUSSIZR\n" +
"DSNWYPDISGMEYNNYGLOAEMCULBNVZMQUPFERYI\n" +
"YGBCADMALTINTHAXIXMWJ\n" +
"LBJNDX\n" +
"XTZUVAQCBXWARVKOLMICEITJNHYPHDCTJTHEZEJMXFCWJCRPQINJCGVJJEVMR\n" +
"JAYMBCJPXAYHQFFMFLELY\n" +
"DMPXURXNVHGFGZSUKUYDLCA\n" +
"EQG\n" +
"VDIXHLWHYWPZHUTIHKIVWEWDSWPJZZQHPHADMKQKOCNYUDV\n" +
"QHXZP\n" +
"VGNJCYVUUACVPDID\n" +
"LLGGLK\n" +
"KGHB\n" +
"KSASSTBZEVPNNVETBFWEQORBNVSCZVMIVAEACOLBCFFNBRKKVUCHUEQDWR\n" +
"IHHXG\n" +
"UGDELBR\n" +
"ILXCLBZBEQZH\n" +
"Y\n" +
"DCMZIUADUCCWHKOOVKXIACYWBTSWWCYDWINHTL\n" +
"QEHP\n" +
"GTBWOYSAAMJKFBYJPA\n" +
"LIIXTRTREGONTV\n" +
"GYFBQZUMZMXHXT\n" +
"BIGF\n" +
"QIUTFDUOSIQOVRBPNGSYDHNQ\n" +
"EIWCYCAINPZMGMTSIYAHVMPBSYXDNHWGRKGRASGDTXUJBTGQIG\n" +
"FUCYJLLRMVQSQMNOGDKVCPRXDVJQFPLVXP\n" +
"S\n" +
"I\n" +
"GRAHBJDNFZQTZIEXTNMFUUBJRIMU\n" +
"A\n" +
"IXHDGGRBQQ\n" +
"C\n" +
"Z\n" +
"DHHHFTLGSFVEBKIAQXBFBHBE\n" +
"VKVL\n" +
"MQYIQHTBUKCYWEZBHUTARRYFLAPGVQJKQIJLNIGWRGASQCRZQUZVRFXK\n" +
"ITISVHLZZKTO\n" +
"BQQN\n" +
"USQ\n" +
"KDCW\n" +
"VJHK\n" +
"JFQLTLQABHYZGPRRMTAKKKGVZUKKQZXZCHHTXPBKH\n" +
"IOW\n" +
"ZRSYJU\n" +
"QLCULISYLZQHWINZE\n" +
"TPWJAHTIMQHG\n" +
"FMWQGS\n" +
"J\n" +
"CKVPOWIBUGPVSIJBAMMMWUSJXXROLIXWUFFFOGDOBFYNYZEZSKSWLDZFYIYHFVQNXSTDQ\n" +
"GCVDFNM\n" +
"ZL\n" +
"XPXILYGXIDCFPSIMNVQMWTKFV\n" +
"MHS\n" +
"JWCAIKLHFDVVPDPR\n" +
"VIGQFTOEFOOTL\n" +
"RTH\n" +
"VABHIEEBDS\n" +
"NYXBVNVRRXNJ\n" +
"HAEUONDNTVVTHLYXLIANJUUHBEYWUOZTXHAVL\n" +
"KGIUROHFINGHDONUOOSVYTSJUIREYKKVDWKU\n" +
"ODFHVAHQEIFLZHGXCWRWGBVOH\n" +
"LS\n" +
"XZWYXCBUUERNVJBNKQZOCVIICJCZZSD\n" +
"CLMFS\n" +
"NWBKXLZONKC\n" +
"UEWHNBXSALZSSGPPBGBZWSHHGUCPSNDTLMFR\n" +
"THVKU\n" +
"PBBIDK\n" +
"KHADIIN\n" +
"HOPOLBAG\n" +
"SRZXQZ\n" +
"PPKZHAMLTBHWVXEQCCZBWAQYJCGPPFGAIRAANSMGQP\n" +
"NYEHHNHPIEEFBLGHMYHFDSCUW\n" +
"CHWGMZFWRPMVVXDLMFQOPYTCREUCXA\n" +
"BVUCGFBQSBQNELFAYLGAHEPBXPSFKUHTNYQGEMWBLIIKKJHHYEXMDLTKJMRWHCOQHADGNEYAASLGXQUWEZ\n" +
"EXBYSMMKVCPVDGLQOPLDPMEJEEPBLLJNRIQC\n" +
"LEVZAA\n" +
"GDKTECIRKOYPYPEUTGKUFEVDTFRDAANHIFBUHSMJS\n" +
"UIGZGPXOJUHVRXAKWQJIMGWQCXWKSGJVVKB\n" +
"ONINVJQWQLPHHC\n" +
"P\n" +
"XSAXFKRSK\n" +
"EBCB\n" +
"UW\n" +
"MNVVOWWUKKZBGFBTNWNXB\n" +
"LMISOCHFPVQNBRX\n" +
"QBOQHOYCXJYSAACTVFNWRTAJHHUUESJOXNCSSYUAP\n" +
"MHDDAZPYJRGRGPS\n" +
"KUABSL\n" +
"AYFLFBEXAOMN\n" +
"GGFHTEL\n" +
"UICDHJUNUZNAMVS\n" +
"JIOUIMY\n" +
"ZDTLHZAJ\n" +
"O\n" +
"EHZBFMOMHTRPWCSJACPOEWDHFORXEXXAQRXSRFMBCGOEDGFJIGBQZOUNW\n" +
"WFZXVOTIR\n" +
"M\n" +
"AIZDPVMMAIBPXUDZQMMMWGOKIQNFSXJZWFRNRFMMORHIBLEXKU\n" +
"JGJGEDNFBNSEAPZLHPTPJARVLAVSCWEWUIFIGKZNNXNVZBTFMYPT\n" +
"ICSLQKLOTFXWTHIQZICSERWNKT\n" +
"CUHGNGFXEXUVINDRFENIDZQSXSQCONLWNIPYPBWDHCSHTONERHJFLBFZPJPDJDIDEAWTXWDKUYLDJSVTIHUP\n" +
"WALMCBK\n" +
"YQSFQ\n" +
"DLRKGMHEGTMGFZQNGJQTBEPFTFKEKXUSOTFVTWWDJBKVWYSUURQOVFYCBBWCQYSGXZMNURXCMMDEWYPKNF\n" +
"TJTZSEUBVDXKJPVSRXSUJBAKSSPGQUUOGKSRYBNUTSFCZSADKMCPMUWU\n" +
"WWUTG\n" +
"KQTCYIGBG\n" +
"DERFWFFDNHVXHBHCRRXAFKKEJBVIOYZVLBKIYQDHTIMUFFVBPNCFVVZV\n" +
"EDMOZYZOUIDFAVVTQJ\n" +
"OFRUPXVBOKMCJUKZWVRFCWIGD\n" +
"BMNTUPH\n" +
"ELQMGMQIAQYOTWFYZWFKVYWJAIHFRMVEBCZSEUSTZIYHSOQH\n" +
"YUWTDRZATJNES\n" +
"WCNKVBREYOAHIZVTJALMSZTUKGWNWNFQVLXWCGN\n" +
"DKBI\n" +
"PNKMFRXEYGDFRPSYCULYNNBHZZAQNWWUOIY\n" +
"WAJIDZZQYDPVMLDPOKRJTWFOALN\n" +
"LPQCNYAMRVZC\n" +
"DPZLHPNNFGTUOIDPUJM\n" +
"HFKUAWMYCQQJD\n" +
"XCBQLYE\n" +
"INCGXMJ\n" +
"LSNZNSBJFQEAIO\n" +
"VYMTYEINVDNUKZXXWTU\n" +
"NVTWMURC\n" +
"OZZRRODQNFYZ\n" +
"UALSWKOIHHZGMI\n" +
"PSNBLQZGNZAXYAGXCKFGZJQDPORLPNCPKS\n" +
"WUPXRHSAZNWTJDDGNLESSOD\n" +
"NFFWMGVLWREACY\n" +
"YUDTTHWSGYEWWVDZIUFMGVYDLQUQWLWJNNLH\n" +
"NEAMGEJZUE\n" +
"OTIILKF\n" +
"KY\n" +
"KWKTKGWYDLE\n" +
"FYESHIOCAKQ\n" +
"IAAJ\n" +
"BRZLWZ\n" +
"PAQZTDQECDPWZZSSZFAYZBWGYIDPYOQR\n" +
"FQAWT\n" +
"URPTGIMYDMGBYBVLZUGJPYPWTVRJVFHOXJAXBEKSEXLNTIBTPLPPLANV\n" +
"ZEQDGUJSCMNDDDJYVUYKJHVSGGSPXLWUZRTIOITQUEJXKJMWVHSEVNLLVW\n" +
"COXMGQLXEVBMK\n" +
"YTNLCCOAV\n" +
"NXEGH\n" +
"FRAFQRA\n" +
"GVPCSPY\n" +
"QGKHMJKILOA\n" +
"TKMMRDMLQKIIGCXJISTZ\n" +
"GUOLCJZCDCKIBDSQF\n" +
"OTSTASNITZPBLWGOTZMKNZHPIFMHPM\n" +
"XLYBGARCKEGKVOQQDMHKTGAFIWFVWVKFHWFTBQBWSBATG\n" +
"RRWBGOALIKDYILODGWTQQOVXQTCRZTJXMBXDICRMRDRSWIHVCLZKMUYUVQXGFLPSGRORGNYQ\n" +
"WQKIEJBO\n" +
"TTEXXVXLNGUKMCKYZOMWRIJJGJULUDHCMVMMCISEFPXFMLCPTFRVZUOQTGFWINKZSJK\n" +
"JR\n" +
"QCFKDZMWAKHPGJSLZDMUEGMMQQME\n" +
"RGXHCG\n" +
"PMVNARGBQRIDASCECGTLC\n" +
"RPEL\n" +
"ZGYLLLZFCASEVIVCNYJQEAVXYZKA\n" +
"J\n" +
"QPMFLMRHKQ\n" +
"KRSMZXOVVPSVNAIGKPWRZOPBYNLAIJBAFCGOUFTKPFJZAHCPDXOESBJBDEZP\n" +
"XAOVPWLJJHIJOQABB\n" +
"HJRQRECZYIJBBTDSUSTIDKKU\n" +
"ZSPX\n" +
"IMKFZYEW\n" +
"KMLV\n" +
"PPHUPYMEFZRFQFTUPMAIJQYJEWVFOARH\n" +
"RMBY\n" +
"WBLOWHHZSPRTBCLWSYIHJULVSX\n" +
"LTLFGS\n" +
"WPLPFAXAKNBHRBVQVZJKHCMVTFZMDLJQSVFUWSBJQMFMHYGCGYNFIUBMAGLEQZ\n" +
"JCAZMNLUHJJO\n" +
"T\n" +
"AUPHLHQXVRT\n" +
"TUDELJLONPVW\n" +
"QLCIETGUJK\n" +
"CLJCKCAF\n" +
"ZPVAVJFHPHUVDFUDSO\n" +
"MFRFNCOXREU\n" +
"OYRHJNR\n" +
"D\n" +
"AGQOQCOMCZW\n" +
"BXZSQRBJNOJXLGGSCPMWTDQELGHCDQKJZDMNZYSDDDUOVTPPQVZZNANWD\n" +
"AMHF\n" +
"QQ\n" +
"CDERFKM\n" +
"UVHQVYNTACROYTSWCBOCDGXJXBZCWHFCC\n" +
"HWKELNWUEEHZXST\n" +
"XZXDSLOEA\n" +
"DZV\n" +
"RJTXRZTSVTNGHONDUFXTEPHDQPKBKYNYQGWLPZXO\n" +
"ZCLHQZVPAQSUJKZMKCQXVZLHMDUJ\n" +
"LEERGXFGQSSXKJXAAZGQONFBQABN\n" +
"XUUCARSWMTARXDWWGZWGI\n" +
"KYXFZINSNOKRCYVQHMMU\n" +
"MKXYVIDRFNGDSAFSHMSEHFLV\n" +
"IHYONIEGRBZGJVFGTGURITMMQLNUZQ\n" +
"EBNVYCTJWWHQJMVMNEQBTLFPGJEAKDGOXTQECMKF\n" +
"EANLUJMOPNXVO\n" +
"SAVS\n" +
"ECMOABEQRPLLAXOWUFOLHTPWEVXOJPAYA\n" +
"BZDPWVMHHZXOKTNESLUDPQLEOTGDBFZLMYTAMYUOTVBUQJVRHQSMG\n" +
"ECQPKBXVRSSVKUCMN\n" +
"BINKMQWRPAJGWFHQUFBHDPTCV\n" +
"CZBSPTHWICUIYBGJNFRZGNYYNSXDQYDROBSFHJRJYXERVYQEX\n" +
"BVCOYDQIICGTVPZXRAIR\n" +
"JPXVKZHRDIQJTFH\n" +
"WUYLJXNIQIMJPUIOOOAVOMJ\n" +
"VTRPDYUXBYCTZY\n" +
"XBW\n" +
"KMFEPXDJRSZRARZKCFCNZKDRNMKIMKVDQBVTSFFUBPTSAVYMKJSOGEFR";
private static final AnnotationData[] RANDOM_ANNOTATIONS= new AnnotationData[] { new AnnotationData(507, 230, 1), new AnnotationData(11323, 55, 0), new AnnotationData(12543, 96, 0),
new AnnotationData(9964, 112, 2), new AnnotationData(579, 137, 1), new AnnotationData(15508, 198, 2), new AnnotationData(3356, 93, 1), new AnnotationData(5225, 6, 2),
new AnnotationData(11802, 284, 2), new AnnotationData(7848, 21, 2), new AnnotationData(10495, 145, 1), new AnnotationData(1535, 292, 0), new AnnotationData(12764, 271, 0),
new AnnotationData(15459, 123, 0), new AnnotationData(16169, 257, 2), new AnnotationData(13281, 341, 1), new AnnotationData(19166, 120, 1), new AnnotationData(9609, 233, 1),
new AnnotationData(3722, 340, 0), new AnnotationData(19716, 275, 1), new AnnotationData(13248, 250, 0), new AnnotationData(6448, 211, 2), new AnnotationData(8842, 148, 1),
new AnnotationData(11547, 196, 2), new AnnotationData(18927, 170, 0), new AnnotationData(8090, 297, 1), new AnnotationData(13277, 35, 0), new AnnotationData(19728, 273, 2),
new AnnotationData(1588, 66, 0), new AnnotationData(18918, 229, 0), new AnnotationData(9612, 77, 0), new AnnotationData(18190, 76, 1), new AnnotationData(10394, 172, 2),
new AnnotationData(12487, 231, 2), new AnnotationData(10682, 54, 2), new AnnotationData(3282, 301, 2), new AnnotationData(12463, 60, 1), new AnnotationData(4559, 1, 1),
new AnnotationData(6410, 220, 2), new AnnotationData(8130, 204, 2), new AnnotationData(18661, 254, 0), new AnnotationData(2642, 96, 1), new AnnotationData(13073, 278, 2),
new AnnotationData(19146, 4, 2), new AnnotationData(2522, 85, 2), new AnnotationData(12263, 125, 2), new AnnotationData(2604, 302, 1), new AnnotationData(7486, 47, 2),
new AnnotationData(1145, 228, 1), new AnnotationData(17901, 71, 2), new AnnotationData(4136, 138, 0), new AnnotationData(19645, 78, 1), new AnnotationData(6926, 291, 2),
new AnnotationData(16744, 182, 0), new AnnotationData(15026, 190, 2), new AnnotationData(3117, 149, 0), new AnnotationData(4617, 256, 1), new AnnotationData(14922, 322, 2),
new AnnotationData(19220, 256, 0), new AnnotationData(13670, 30, 1), new AnnotationData(12068, 238, 0), new AnnotationData(5376, 268, 1), new AnnotationData(5979, 180, 1),
new AnnotationData(7452, 138, 2), new AnnotationData(1470, 227, 0), new AnnotationData(14450, 76, 1), new AnnotationData(13798, 338, 2), new AnnotationData(8151, 301, 2),
new AnnotationData(12707, 183, 1), new AnnotationData(9916, 291, 2), new AnnotationData(9158, 69, 1), new AnnotationData(11105, 220, 1), new AnnotationData(16739, 179, 0),
new AnnotationData(11748, 0, 1), new AnnotationData(5507, 173, 2), new AnnotationData(3268, 52, 1), new AnnotationData(11149, 322, 1), new AnnotationData(757, 63, 1),
new AnnotationData(6172, 261, 2), new AnnotationData(8939, 122, 0), new AnnotationData(11583, 276, 0), new AnnotationData(4199, 7, 1), new AnnotationData(4116, 67, 1),
new AnnotationData(4743, 198, 1), new AnnotationData(13967, 262, 1), new AnnotationData(8108, 204, 2), new AnnotationData(8661, 100, 2), new AnnotationData(2235, 136, 2),
new AnnotationData(9681, 67, 0), new AnnotationData(15860, 207, 0), new AnnotationData(2866, 285, 2), new AnnotationData(1394, 243, 0), new AnnotationData(13853, 272, 0),
new AnnotationData(18326, 240, 2), new AnnotationData(3562, 272, 2), new AnnotationData(16451, 45, 1), new AnnotationData(12428, 25, 0), new AnnotationData(18576, 347, 0),
new AnnotationData(10099, 311, 1), new AnnotationData(10561, 318, 0), new AnnotationData(17486, 184, 2), new AnnotationData(18452, 111, 2), new AnnotationData(17302, 197, 0),
new AnnotationData(11999, 11, 2), new AnnotationData(16035, 125, 2), new AnnotationData(5473, 7, 0), new AnnotationData(2245, 33, 1), new AnnotationData(17191, 281, 2),
new AnnotationData(7895, 244, 1), new AnnotationData(7730, 20, 0), new AnnotationData(14552, 308, 2), new AnnotationData(4749, 343, 1), new AnnotationData(7267, 78, 1),
new AnnotationData(11701, 129, 0), new AnnotationData(5887, 101, 1), new AnnotationData(4906, 63, 0), new AnnotationData(20054, 54, 0), new AnnotationData(18436, 64, 2),
new AnnotationData(18117, 192, 1), new AnnotationData(18539, 251, 2), new AnnotationData(4710, 135, 2), new AnnotationData(13974, 330, 2), new AnnotationData(17034, 10, 0),
new AnnotationData(4382, 296, 0), new AnnotationData(11551, 271, 2), new AnnotationData(16006, 119, 0), new AnnotationData(15193, 308, 0), new AnnotationData(16057, 82, 1),
new AnnotationData(4085, 40, 2), new AnnotationData(20603, 96, 0), new AnnotationData(4603, 216, 2), new AnnotationData(6648, 62, 2), new AnnotationData(13682, 157, 1),
new AnnotationData(460, 268, 2), new AnnotationData(10741, 118, 0), new AnnotationData(14373, 130, 1), new AnnotationData(4450, 46, 1), new AnnotationData(7694, 27, 1),
new AnnotationData(20185, 79, 0), new AnnotationData(8849, 234, 0), new AnnotationData(13354, 302, 1), new AnnotationData(9838, 141, 0), new AnnotationData(13007, 202, 0),
new AnnotationData(5011, 194, 0), new AnnotationData(1612, 282, 0), new AnnotationData(14987, 232, 2), new AnnotationData(8592, 145, 2), new AnnotationData(11226, 89, 0),
new AnnotationData(4175, 105, 2), new AnnotationData(20119, 278, 2), new AnnotationData(10674, 96, 1), new AnnotationData(19096, 70, 0), new AnnotationData(10820, 260, 0),
new AnnotationData(1490, 33, 2), new AnnotationData(9710, 246, 0), new AnnotationData(4774, 262, 1), new AnnotationData(9509, 184, 2), new AnnotationData(9580, 94, 0),
new AnnotationData(10250, 274, 1), new AnnotationData(11795, 72, 2), new AnnotationData(9086, 124, 2), new AnnotationData(3144, 256, 1), new AnnotationData(3078, 3, 0),
new AnnotationData(16129, 4, 0), new AnnotationData(13782, 2, 1), new AnnotationData(14056, 267, 1), new AnnotationData(15460, 32, 0), new AnnotationData(16158, 271, 1),
new AnnotationData(14797, 202, 2), new AnnotationData(7654, 108, 2), new AnnotationData(17232, 11, 1), new AnnotationData(5936, 69, 2), new AnnotationData(12156, 224, 2),
new AnnotationData(9376, 243, 1), new AnnotationData(10375, 155, 1), new AnnotationData(7524, 270, 1), new AnnotationData(19415, 86, 0), new AnnotationData(15004, 0, 1),
new AnnotationData(3241, 44, 0), new AnnotationData(5870, 147, 1), new AnnotationData(11908, 84, 1), new AnnotationData(10962, 135, 0), new AnnotationData(16480, 232, 2),
new AnnotationData(9087, 256, 1), new AnnotationData(9177, 29, 1), new AnnotationData(1361, 232, 0), new AnnotationData(18433, 128, 0), new AnnotationData(13207, 183, 1),
new AnnotationData(6067, 236, 1), new AnnotationData(9325, 33, 1), new AnnotationData(15416, 326, 1), new AnnotationData(7642, 69, 1), new AnnotationData(15250, 67, 0),
new AnnotationData(4193, 191, 0), new AnnotationData(6492, 143, 1), new AnnotationData(5780, 325, 1), new AnnotationData(1004, 254, 2), new AnnotationData(9125, 278, 0),
new AnnotationData(775, 170, 1), new AnnotationData(394, 174, 2), new AnnotationData(4758, 245, 0), new AnnotationData(1512, 59, 0), new AnnotationData(16855, 237, 0),
new AnnotationData(2427, 291, 2), new AnnotationData(8298, 126, 1), new AnnotationData(1359, 112, 2), new AnnotationData(19885, 164, 2), new AnnotationData(15405, 121, 0),
new AnnotationData(19041, 269, 2), new AnnotationData(1549, 27, 2), new AnnotationData(14797, 95, 2), new AnnotationData(4266, 315, 2), new AnnotationData(12285, 250, 0),
new AnnotationData(7023, 322, 0), new AnnotationData(34, 54, 1), new AnnotationData(16318, 183, 0), new AnnotationData(11181, 112, 0), new AnnotationData(12135, 9, 2),
new AnnotationData(3483, 191, 2), new AnnotationData(7828, 233, 2), new AnnotationData(14974, 44, 1), new AnnotationData(6178, 142, 0), new AnnotationData(13803, 217, 1),
new AnnotationData(4305, 53, 1), new AnnotationData(19931, 322, 1), new AnnotationData(18458, 125, 2), new AnnotationData(2383, 87, 1), new AnnotationData(11321, 139, 0),
new AnnotationData(18220, 141, 1), new AnnotationData(8807, 43, 1), new AnnotationData(9557, 281, 1), new AnnotationData(3605, 38, 2), new AnnotationData(17498, 37, 0),
new AnnotationData(10975, 218, 1), new AnnotationData(2965, 10, 2), new AnnotationData(18540, 16, 1), new AnnotationData(6038, 329, 1), new AnnotationData(6993, 90, 0),
new AnnotationData(6764, 259, 0), new AnnotationData(6006, 271, 0), new AnnotationData(11150, 21, 2), new AnnotationData(4290, 2, 2), new AnnotationData(14409, 70, 0),
new AnnotationData(16235, 115, 0), new AnnotationData(11806, 73, 2), new AnnotationData(12756, 196, 1), new AnnotationData(13812, 298, 0), new AnnotationData(13988, 3, 1),
new AnnotationData(3563, 340, 2), new AnnotationData(8846, 91, 0), new AnnotationData(12761, 223, 0), new AnnotationData(18922, 74, 1), new AnnotationData(10392, 239, 1),
new AnnotationData(10022, 259, 0), new AnnotationData(12405, 106, 0), new AnnotationData(14903, 156, 1), new AnnotationData(7025, 100, 0), new AnnotationData(6695, 91, 1),
new AnnotationData(16475, 160, 2), new AnnotationData(3385, 58, 1), new AnnotationData(14617, 298, 2), new AnnotationData(3306, 277, 2), new AnnotationData(19950, 114, 1),
new AnnotationData(19146, 155, 2), new AnnotationData(11723, 270, 1), new AnnotationData(1399, 289, 0), new AnnotationData(13509, 326, 2), new AnnotationData(9680, 130, 1),
new AnnotationData(18714, 213, 2), new AnnotationData(15486, 91, 1), new AnnotationData(14865, 302, 2), new AnnotationData(18573, 225, 1), new AnnotationData(20630, 66, 2),
new AnnotationData(20088, 265, 2), new AnnotationData(16020, 321, 2), new AnnotationData(20154, 124, 2), new AnnotationData(7117, 42, 1), new AnnotationData(9014, 199, 2),
new AnnotationData(6123, 249, 2), new AnnotationData(6344, 323, 1), new AnnotationData(15013, 206, 2), new AnnotationData(1807, 275, 1), new AnnotationData(57, 86, 1),
new AnnotationData(17569, 323, 0), new AnnotationData(15800, 255, 1), new AnnotationData(4574, 284, 1), new AnnotationData(12061, 236, 1), new AnnotationData(15026, 342, 0),
new AnnotationData(13539, 25, 0), new AnnotationData(6193, 313, 1), new AnnotationData(5976, 170, 1), new AnnotationData(2498, 95, 0), new AnnotationData(9585, 258, 1),
new AnnotationData(17557, 23, 0), new AnnotationData(1055, 116, 2), new AnnotationData(9305, 307, 1), new AnnotationData(3352, 185, 0), new AnnotationData(506, 143, 1),
new AnnotationData(11455, 226, 1), new AnnotationData(903, 196, 2), new AnnotationData(7310, 84, 0), new AnnotationData(9677, 126, 2), new AnnotationData(12557, 167, 2),
new AnnotationData(15338, 27, 1), new AnnotationData(15884, 215, 1), new AnnotationData(7942, 340, 2), new AnnotationData(19590, 251, 2), new AnnotationData(3370, 174, 1),
new AnnotationData(14622, 315, 0), new AnnotationData(4790, 265, 1), new AnnotationData(16442, 61, 1), new AnnotationData(10425, 279, 1), new AnnotationData(5193, 219, 1),
new AnnotationData(5952, 152, 1), new AnnotationData(2685, 272, 0), new AnnotationData(8373, 33, 2), new AnnotationData(5624, 102, 0), new AnnotationData(17427, 221, 2),
new AnnotationData(17151, 331, 2), new AnnotationData(10206, 41, 0), new AnnotationData(17622, 232, 0), new AnnotationData(6605, 131, 1), new AnnotationData(14329, 146, 0),
new AnnotationData(11144, 80, 2), new AnnotationData(9455, 103, 0), new AnnotationData(18051, 163, 0), new AnnotationData(5087, 328, 2), new AnnotationData(18506, 116, 1),
new AnnotationData(12746, 192, 2), new AnnotationData(13550, 17, 1), new AnnotationData(11022, 39, 1), new AnnotationData(10260, 181, 0), new AnnotationData(18305, 244, 2),
new AnnotationData(13407, 348, 0), new AnnotationData(6499, 194, 0), new AnnotationData(11320, 164, 1), new AnnotationData(2114, 135, 1), new AnnotationData(5810, 49, 0),
new AnnotationData(18224, 331, 2), new AnnotationData(16850, 172, 1), new AnnotationData(9429, 128, 1), new AnnotationData(8544, 322, 1), new AnnotationData(20207, 54, 2),
new AnnotationData(238, 235, 0), new AnnotationData(18490, 242, 2), new AnnotationData(16299, 268, 1), new AnnotationData(3114, 169, 2), new AnnotationData(12041, 150, 2),
new AnnotationData(8067, 66, 1), new AnnotationData(16573, 319, 0), new AnnotationData(11436, 81, 0), new AnnotationData(2366, 141, 1), new AnnotationData(10587, 202, 0),
new AnnotationData(4877, 125, 2), new AnnotationData(1337, 13, 1), new AnnotationData(10858, 120, 1), new AnnotationData(18017, 194, 1), new AnnotationData(1679, 17, 1),
new AnnotationData(10894, 24, 2), new AnnotationData(2270, 178, 1), new AnnotationData(20328, 328, 0), new AnnotationData(12282, 129, 1), new AnnotationData(2674, 168, 2),
new AnnotationData(20408, 134, 2), new AnnotationData(9761, 223, 1), new AnnotationData(12424, 212, 2), new AnnotationData(706, 341, 0), new AnnotationData(137, 30, 0),
new AnnotationData(11207, 31, 2), new AnnotationData(20090, 289, 1), new AnnotationData(6950, 100, 0), new AnnotationData(5093, 75, 2), new AnnotationData(12545, 236, 2),
new AnnotationData(15886, 43, 1), new AnnotationData(18070, 49, 1), new AnnotationData(20155, 11, 1), new AnnotationData(7477, 19, 2), new AnnotationData(610, 69, 1),
new AnnotationData(14056, 148, 1), new AnnotationData(476, 217, 2), new AnnotationData(14189, 143, 1), new AnnotationData(3222, 145, 0), new AnnotationData(8499, 325, 1),
new AnnotationData(7854, 170, 1), new AnnotationData(15178, 252, 1), new AnnotationData(11936, 318, 0), new AnnotationData(12138, 209, 2), new AnnotationData(10594, 128, 1),
new AnnotationData(15703, 223, 1), new AnnotationData(12733, 274, 2), new AnnotationData(20437, 156, 1), new AnnotationData(7673, 317, 1), new AnnotationData(1282, 136, 2),
new AnnotationData(20538, 108, 0), new AnnotationData(19384, 218, 2), new AnnotationData(7701, 72, 1), new AnnotationData(8225, 38, 0), new AnnotationData(15373, 170, 1),
new AnnotationData(177, 155, 0), new AnnotationData(17321, 261, 0), new AnnotationData(13051, 261, 2), new AnnotationData(16184, 203, 2), new AnnotationData(7109, 200, 0),
new AnnotationData(625, 326, 2), new AnnotationData(12610, 126, 1), new AnnotationData(4659, 223, 1), new AnnotationData(1032, 168, 0), new AnnotationData(18393, 145, 2),
new AnnotationData(14825, 107, 2), new AnnotationData(4093, 289, 1), new AnnotationData(140, 150, 0), new AnnotationData(6426, 99, 1), new AnnotationData(3685, 186, 0),
new AnnotationData(5423, 121, 0), new AnnotationData(1399, 140, 2), new AnnotationData(20619, 190, 2), new AnnotationData(8850, 232, 0), new AnnotationData(6516, 170, 1),
new AnnotationData(11227, 133, 1), new AnnotationData(13300, 25, 0), new AnnotationData(14280, 337, 1), new AnnotationData(6748, 142, 1), new AnnotationData(1768, 114, 0),
new AnnotationData(8514, 322, 2), new AnnotationData(3284, 212, 1), new AnnotationData(9113, 326, 1), new AnnotationData(4408, 343, 2), new AnnotationData(17098, 187, 1),
new AnnotationData(793, 179, 0), new AnnotationData(6599, 296, 0), new AnnotationData(9524, 65, 2), new AnnotationData(12288, 336, 0), new AnnotationData(18500, 48, 0),
new AnnotationData(3819, 264, 0), new AnnotationData(3567, 35, 2), new AnnotationData(20119, 121, 1), new AnnotationData(20082, 308, 1), new AnnotationData(2130, 124, 0),
new AnnotationData(8278, 271, 0), new AnnotationData(2307, 8, 0), new AnnotationData(8676, 312, 1), new AnnotationData(15894, 312, 2), new AnnotationData(12017, 194, 1),
new AnnotationData(1938, 202, 2), new AnnotationData(9054, 340, 0), new AnnotationData(4472, 179, 0), new AnnotationData(15253, 70, 0), new AnnotationData(184, 173, 1),
new AnnotationData(11870, 337, 1), new AnnotationData(479, 293, 1), new AnnotationData(5927, 104, 2), new AnnotationData(8316, 237, 1), new AnnotationData(6787, 46, 1),
new AnnotationData(14727, 68, 2), new AnnotationData(2547, 134, 1), new AnnotationData(9609, 79, 0), new AnnotationData(8500, 117, 1), new AnnotationData(8768, 4, 2),
new AnnotationData(9365, 68, 1), new AnnotationData(2377, 129, 0), new AnnotationData(19153, 147, 2), new AnnotationData(2739, 104, 0), new AnnotationData(11088, 237, 2),
new AnnotationData(731, 96, 2), new AnnotationData(14406, 334, 0), new AnnotationData(4525, 109, 1), new AnnotationData(20213, 202, 0), new AnnotationData(16889, 40, 0),
new AnnotationData(16698, 275, 2), new AnnotationData(14688, 193, 2), new AnnotationData(5702, 41, 0), new AnnotationData(7150, 192, 2), new AnnotationData(19368, 333, 2),
new AnnotationData(18078, 17, 2), new AnnotationData(11240, 67, 2), new AnnotationData(4559, 110, 1), new AnnotationData(16377, 177, 1), new AnnotationData(20203, 122, 1),
new AnnotationData(18778, 261, 1), new AnnotationData(1570, 152, 2), new AnnotationData(16818, 57, 0), new AnnotationData(7301, 335, 1), new AnnotationData(9455, 196, 0),
new AnnotationData(7679, 166, 0), new AnnotationData(262, 165, 2), new AnnotationData(7004, 0, 2), new AnnotationData(14291, 281, 2), new AnnotationData(7351, 98, 0),
new AnnotationData(15261, 324, 2), new AnnotationData(19187, 225, 0), new AnnotationData(8944, 123, 0), new AnnotationData(14867, 214, 1), new AnnotationData(4996, 218, 2),
new AnnotationData(15585, 182, 2), new AnnotationData(8042, 23, 0), new AnnotationData(10712, 80, 2), new AnnotationData(9166, 287, 1), new AnnotationData(7388, 114, 1),
new AnnotationData(5745, 274, 0), new AnnotationData(2159, 61, 2), new AnnotationData(252, 213, 1), new AnnotationData(3289, 119, 2), new AnnotationData(17838, 30, 1),
new AnnotationData(19984, 332, 2), new AnnotationData(12651, 231, 0), new AnnotationData(19455, 172, 1), new AnnotationData(14104, 87, 1), new AnnotationData(13722, 106, 1),
new AnnotationData(2758, 131, 1), new AnnotationData(9092, 260, 0), new AnnotationData(15945, 294, 2), new AnnotationData(10977, 60, 1), new AnnotationData(7236, 331, 0),
new AnnotationData(4000, 129, 0), new AnnotationData(11, 15, 2), new AnnotationData(13010, 33, 2), new AnnotationData(17772, 98, 1), new AnnotationData(17987, 184, 0),
new AnnotationData(18725, 18, 2), new AnnotationData(17933, 239, 2), new AnnotationData(15105, 282, 2), new AnnotationData(2921, 141, 1), new AnnotationData(16003, 344, 2),
new AnnotationData(10027, 268, 1), new AnnotationData(17635, 50, 1), new AnnotationData(8332, 348, 0), new AnnotationData(8682, 84, 0), new AnnotationData(5491, 323, 0),
new AnnotationData(12156, 39, 1), new AnnotationData(16020, 258, 2), new AnnotationData(12387, 285, 0), new AnnotationData(2672, 172, 2), new AnnotationData(832, 314, 0),
new AnnotationData(10665, 296, 2), new AnnotationData(2989, 35, 0), new AnnotationData(15566, 76, 1), new AnnotationData(6284, 319, 2), new AnnotationData(13509, 127, 0),
new AnnotationData(10872, 190, 2), new AnnotationData(5336, 98, 1), new AnnotationData(12384, 183, 0), new AnnotationData(9889, 199, 1), new AnnotationData(165, 55, 1),
new AnnotationData(3083, 260, 0), new AnnotationData(15205, 72, 0), new AnnotationData(2223, 220, 0), new AnnotationData(16808, 3, 1), new AnnotationData(17064, 7, 1),
new AnnotationData(12484, 297, 2), new AnnotationData(13585, 171, 0), new AnnotationData(19371, 296, 1), new AnnotationData(13535, 162, 0), new AnnotationData(20129, 86, 1),
new AnnotationData(8253, 337, 1), new AnnotationData(17790, 43, 1), new AnnotationData(6749, 23, 0), new AnnotationData(17260, 187, 2), new AnnotationData(6963, 100, 1),
new AnnotationData(8443, 179, 1), new AnnotationData(2420, 221, 2), new AnnotationData(6445, 52, 1), new AnnotationData(19790, 13, 2), new AnnotationData(7262, 17, 1),
new AnnotationData(17724, 260, 2), new AnnotationData(15153, 222, 2), new AnnotationData(16029, 268, 0), new AnnotationData(1328, 85, 2), new AnnotationData(18142, 270, 2),
new AnnotationData(3654, 338, 0), new AnnotationData(5491, 75, 2), new AnnotationData(4952, 169, 2), new AnnotationData(17864, 186, 1), new AnnotationData(12239, 281, 1),
new AnnotationData(4033, 21, 1), new AnnotationData(5345, 35, 1), new AnnotationData(4237, 4, 0), new AnnotationData(2799, 143, 1), new AnnotationData(897, 341, 0),
new AnnotationData(17410, 200, 2), new AnnotationData(6657, 203, 0), new AnnotationData(14231, 106, 1), new AnnotationData(11190, 113, 1), new AnnotationData(12474, 280, 2),
new AnnotationData(17703, 58, 0), new AnnotationData(19309, 287, 2), new AnnotationData(18632, 52, 2), new AnnotationData(12928, 269, 2), new AnnotationData(12541, 10, 1),
new AnnotationData(5523, 114, 1), new AnnotationData(14980, 100, 0), new AnnotationData(10902, 120, 1), new AnnotationData(13145, 36, 1), new AnnotationData(20469, 147, 1),
new AnnotationData(2583, 160, 1), new AnnotationData(9702, 198, 1), new AnnotationData(8753, 96, 1), new AnnotationData(2854, 4, 0), new AnnotationData(3881, 185, 1),
new AnnotationData(17561, 181, 1), new AnnotationData(16071, 263, 1), new AnnotationData(14216, 31, 1), new AnnotationData(16287, 220, 1), new AnnotationData(1460, 305, 1),
new AnnotationData(11832, 135, 2), new AnnotationData(11757, 182, 1), new AnnotationData(15532, 174, 1), new AnnotationData(5245, 235, 1), new AnnotationData(20545, 165, 1),
new AnnotationData(12962, 97, 2), new AnnotationData(8406, 162, 0), new AnnotationData(17415, 204, 1), new AnnotationData(19411, 32, 2), new AnnotationData(8409, 152, 2),
new AnnotationData(13917, 333, 2), new AnnotationData(3441, 118, 2), new AnnotationData(14431, 217, 0), new AnnotationData(17039, 70, 1), new AnnotationData(11456, 168, 0),
new AnnotationData(17733, 291, 2), new AnnotationData(6774, 93, 2), new AnnotationData(13728, 189, 2), new AnnotationData(11746, 152, 0), new AnnotationData(3552, 54, 1),
new AnnotationData(17976, 183, 2), new AnnotationData(16536, 277, 2), new AnnotationData(4854, 73, 1), new AnnotationData(8640, 202, 0), new AnnotationData(11940, 330, 1),
new AnnotationData(17635, 289, 2), new AnnotationData(17542, 67, 0), new AnnotationData(9819, 27, 1), new AnnotationData(2256, 62, 2), new AnnotationData(5791, 215, 2),
new AnnotationData(14661, 29, 1), new AnnotationData(20548, 226, 1), new AnnotationData(13791, 106, 2), new AnnotationData(18771, 250, 1), new AnnotationData(11892, 131, 2),
new AnnotationData(16370, 164, 2), new AnnotationData(2820, 334, 2), new AnnotationData(5557, 114, 1), new AnnotationData(10162, 316, 2), new AnnotationData(4821, 26, 1),
new AnnotationData(4286, 185, 2), new AnnotationData(6799, 312, 2), new AnnotationData(17571, 319, 2), new AnnotationData(5922, 34, 2), new AnnotationData(15501, 17, 1),
new AnnotationData(6924, 320, 0), new AnnotationData(2706, 290, 1), new AnnotationData(4766, 345, 0), new AnnotationData(4641, 316, 1), new AnnotationData(17764, 236, 1),
new AnnotationData(7691, 12, 2), new AnnotationData(15270, 255, 1), new AnnotationData(19553, 203, 2), new AnnotationData(13605, 276, 1), new AnnotationData(20040, 206, 0),
new AnnotationData(16374, 248, 1), new AnnotationData(16599, 338, 2), new AnnotationData(17547, 13, 2), new AnnotationData(11015, 71, 1), new AnnotationData(1132, 15, 2),
new AnnotationData(8657, 328, 1), new AnnotationData(1405, 132, 0), new AnnotationData(12750, 116, 1), new AnnotationData(10263, 59, 1), new AnnotationData(9896, 252, 0),
new AnnotationData(20152, 256, 2), new AnnotationData(14356, 30, 1), new AnnotationData(9432, 250, 1), new AnnotationData(15794, 148, 0), new AnnotationData(9463, 40, 2),
new AnnotationData(648, 122, 0), new AnnotationData(12017, 27, 0), new AnnotationData(16437, 254, 2), new AnnotationData(2731, 321, 0), new AnnotationData(20421, 233, 1),
new AnnotationData(14631, 339, 2), new AnnotationData(8526, 11, 1), new AnnotationData(14868, 218, 2), new AnnotationData(9156, 74, 0), new AnnotationData(12710, 223, 0),
new AnnotationData(19298, 113, 0), new AnnotationData(13193, 87, 0), new AnnotationData(14232, 26, 0), new AnnotationData(2634, 52, 1), new AnnotationData(20401, 159, 0),
new AnnotationData(16666, 321, 1), new AnnotationData(10593, 261, 1), new AnnotationData(11861, 342, 1), new AnnotationData(17073, 194, 0), new AnnotationData(8159, 150, 0),
new AnnotationData(11131, 68, 1), new AnnotationData(7210, 135, 0), new AnnotationData(17912, 308, 2), new AnnotationData(18945, 244, 0), new AnnotationData(10681, 283, 1),
new AnnotationData(19913, 264, 2), new AnnotationData(17155, 260, 1), new AnnotationData(19260, 71, 2), new AnnotationData(3142, 137, 2), new AnnotationData(18468, 92, 1),
new AnnotationData(10397, 136, 2), new AnnotationData(10234, 218, 1), new AnnotationData(16817, 168, 2), new AnnotationData(17704, 3, 2), new AnnotationData(18710, 121, 2),
new AnnotationData(11879, 251, 0), new AnnotationData(15850, 325, 1), new AnnotationData(12972, 99, 1), new AnnotationData(9761, 42, 2), new AnnotationData(16226, 226, 1),
new AnnotationData(18423, 108, 1), new AnnotationData(11876, 160, 1), new AnnotationData(13820, 333, 2), new AnnotationData(14249, 297, 1), new AnnotationData(1297, 42, 1),
new AnnotationData(1747, 63, 0), new AnnotationData(14431, 18, 2), new AnnotationData(18157, 328, 1), new AnnotationData(11831, 197, 0), new AnnotationData(5009, 168, 1),
new AnnotationData(12542, 104, 1), new AnnotationData(13070, 316, 1), new AnnotationData(13173, 37, 1), new AnnotationData(13744, 136, 2), new AnnotationData(14964, 347, 0),
new AnnotationData(14231, 25, 0), new AnnotationData(11613, 55, 0), new AnnotationData(5279, 11, 1), new AnnotationData(15427, 332, 1), new AnnotationData(16100, 65, 1),
new AnnotationData(15250, 42, 2), new AnnotationData(5283, 197, 0), new AnnotationData(8046, 12, 0), new AnnotationData(484, 72, 1), new AnnotationData(18099, 163, 2),
new AnnotationData(15932, 51, 1), new AnnotationData(8315, 1, 2), new AnnotationData(19176, 233, 1), new AnnotationData(3104, 266, 1), new AnnotationData(19768, 244, 0),
new AnnotationData(5312, 308, 2), new AnnotationData(3354, 80, 1), new AnnotationData(7899, 278, 0), new AnnotationData(18072, 307, 2), new AnnotationData(18679, 170, 1),
new AnnotationData(9683, 11, 1), new AnnotationData(17851, 266, 0), new AnnotationData(12749, 115, 0), new AnnotationData(8662, 102, 1), new AnnotationData(19788, 246, 0),
new AnnotationData(16452, 184, 2), new AnnotationData(36, 103, 2), new AnnotationData(9297, 112, 1), new AnnotationData(7466, 63, 1), new AnnotationData(20640, 92, 2),
new AnnotationData(14706, 109, 0), new AnnotationData(18678, 185, 0), new AnnotationData(2621, 269, 1), new AnnotationData(11278, 195, 0), new AnnotationData(13695, 85, 1),
new AnnotationData(9969, 261, 2), new AnnotationData(16161, 184, 1), new AnnotationData(980, 252, 0), new AnnotationData(16875, 245, 0), new AnnotationData(9517, 125, 2),
new AnnotationData(3280, 232, 0), new AnnotationData(8474, 66, 2), new AnnotationData(4239, 217, 2), new AnnotationData(17830, 264, 1), new AnnotationData(13829, 215, 2),
new AnnotationData(9003, 36, 1), new AnnotationData(8964, 26, 0), new AnnotationData(18972, 39, 0), new AnnotationData(66, 234, 1), new AnnotationData(5314, 345, 0),
new AnnotationData(12207, 84, 0), new AnnotationData(6232, 4, 1), new AnnotationData(2422, 39, 0), new AnnotationData(17112, 15, 1), new AnnotationData(19809, 315, 1),
new AnnotationData(7343, 312, 2), new AnnotationData(6224, 134, 2), new AnnotationData(16788, 113, 1), new AnnotationData(9654, 334, 1), new AnnotationData(19611, 260, 1),
new AnnotationData(16241, 56, 1), new AnnotationData(8140, 267, 0), new AnnotationData(16417, 142, 0), new AnnotationData(16331, 194, 0), new AnnotationData(20352, 44, 2),
new AnnotationData(6477, 116, 1), new AnnotationData(11115, 228, 1), new AnnotationData(9387, 200, 2), new AnnotationData(18207, 141, 2), new AnnotationData(17578, 349, 0),
new AnnotationData(11019, 217, 1), new AnnotationData(9321, 317, 1) };
private static final class AnnotationData {
public final int offset;
public final int length;
public int annotationNumber;
public Annotation annotation;
public Position position;
public AnnotationData(int offset, int length, int annotationNumber) {
this.offset= offset;
this.length= length;
this.annotationNumber= annotationNumber;
}
}
private Document fDocument;
private AnnotationModel fAnnotationModel;
private AnnotationModel fInnerModel1;
private AnnotationModel fInnerModel2;
public static Test suite() {
return new TestSuite(AnnotationModelStressTest.class);
}
/**
* {@inheritDoc}
*/
protected void setUp() throws Exception {
fDocument= new Document(RANDOM_CONTENT);
fAnnotationModel= new AnnotationModel();
fInnerModel1= new AnnotationModel();
fAnnotationModel.addAnnotationModel("model1", fInnerModel1);
fInnerModel2= new AnnotationModel();
fAnnotationModel.addAnnotationModel("model2", fInnerModel2);
fAnnotationModel.connect(fDocument);
}
/**
* {@inheritDoc}
*/
protected void tearDown() throws Exception {
fAnnotationModel.disconnect(fDocument);
}
private IAnnotationModel getModel(int number) {
switch (number) {
case 0:
return fAnnotationModel;
case 1:
return fInnerModel1;
case 2:
return fInnerModel2;
}
return null;
}
private void assertRemove(ArrayList added) {
AnnotationData first= (AnnotationData) added.remove(0);
IAnnotationModel model= getModel(first.annotationNumber);
assertTrue(model.getPosition(first.annotation) == first.position);
model.removeAnnotation(first.annotation);
assertTrue(model.getPosition(first.annotation) == null);
}
private void assertAdd(AnnotationData data, ArrayList added) {
Annotation annotation= new Annotation(false);
Position position= new Position(data.offset, data.length);
IAnnotationModel model= getModel(data.annotationNumber);
model.addAnnotation(annotation, position);
assertTrue(model.getPosition(annotation) == position);
data.annotation= annotation;
data.position= position;
added.add(data);
}
private void assertExist(ArrayList added) {
for (int i= 0, size= added.size(); i < size; i++) {
AnnotationData data= (AnnotationData) added.get(i);
IAnnotationModel model= getModel(data.annotationNumber);
assertTrue(model.getPosition(data.annotation) == data.position);
}
ArrayList annotations= getAllAnnotations();
assertEquals(added.size(), annotations.size());
for (int i= 0, size= annotations.size(); i < size; i++) {
Annotation annotation= (Annotation) annotations.get(i);
AnnotationData data= getAnnotationData(added, annotation);
assertNotNull(data);
assertTrue(fAnnotationModel.getPosition(annotation) == data.position);
}
}
private void assertExistNew(ArrayList added) {
for (int i= 0, size= added.size(); i < size; i++) {
AnnotationData data= (AnnotationData) added.get(i);
IAnnotationModel model= getModel(data.annotationNumber);
assertTrue(model.getPosition(data.annotation) == data.position);
}
ArrayList annotations= getAllAnnotationsNew();
assertEquals(added.size(), annotations.size());
for (int i= 0, size= annotations.size(); i < size; i++) {
Annotation annotation= (Annotation) annotations.get(i);
AnnotationData data= getAnnotationData(added, annotation);
assertNotNull(data);
assertTrue(fAnnotationModel.getPosition(annotation) == data.position);
}
}
private AnnotationData getAnnotationData(ArrayList datas, Annotation annotation) {
for (int i= 0, size= datas.size(); i < size; i++) {
AnnotationData data= (AnnotationData) datas.get(i);
if (data.annotation == annotation)
return data;
}
return null;
}
private ArrayList getAllAnnotations() {
ArrayList result= new ArrayList();
Iterator iterator= fAnnotationModel.getAnnotationIterator();
while (iterator.hasNext()) {
result.add(iterator.next());
}
return result;
}
private ArrayList getAllAnnotationsNew() {
ArrayList result= new ArrayList();
Iterator iterator= fAnnotationModel.getAnnotationIterator(0, fDocument.getLength(), true, true);
while (iterator.hasNext()) {
result.add(iterator.next());
}
return result;
}
public void testStressTestPlainOld() throws Exception {
ArrayList added= new ArrayList();
int i= 0;
while (i < 20) {
AnnotationData data= RANDOM_ANNOTATIONS[i];
assertAdd(data, added);
assertExist(added);
i++;
}
while (i < RANDOM_ANNOTATIONS.length) {
assertRemove(added);
AnnotationData data= RANDOM_ANNOTATIONS[i];
assertAdd(data, added);
assertExist(added);
i++;
}
while (added.size() > 0) {
assertRemove(added);
assertExist(added);
}
}
public void testStressTestPlainNew() throws Exception {
ArrayList added= new ArrayList();
int i= 0;
while (i < 20) {
AnnotationData data= RANDOM_ANNOTATIONS[i];
assertAdd(data, added);
assertExistNew(added);
i++;
}
while (i < RANDOM_ANNOTATIONS.length) {
assertRemove(added);
AnnotationData data= RANDOM_ANNOTATIONS[i];
assertAdd(data, added);
assertExistNew(added);
i++;
}
while (added.size() > 0) {
assertRemove(added);
assertExistNew(added);
}
}
public void testStressTestMoveOld() throws Exception {
ArrayList added= new ArrayList();
int i= 0;
while (i < 20) {
AnnotationData data= RANDOM_ANNOTATIONS[i];
assertAdd(data, added);
assertExist(added);
i++;
}
Random ran= new Random(4711);
while (i < RANDOM_ANNOTATIONS.length) {
assertRemove(added);
fDocument.replace(ran.nextInt(fDocument.getLength() - 1), 0, "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz");
AnnotationData data= RANDOM_ANNOTATIONS[i];
assertAdd(data, added);
assertExist(added);
i++;
}
while (added.size() > 0) {
assertRemove(added);
assertExist(added);
}
}
public void testStressTestMoveNew() throws Exception {
ArrayList added= new ArrayList();
int i= 0;
while (i < 20) {
AnnotationData data= RANDOM_ANNOTATIONS[i];
assertAdd(data, added);
assertExistNew(added);
i++;
}
Random ran= new Random(4711);
while (i < RANDOM_ANNOTATIONS.length) {
assertRemove(added);
fDocument.replace(ran.nextInt(fDocument.getLength() - 1), 0, "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz");
AnnotationData data= RANDOM_ANNOTATIONS[i];
assertAdd(data, added);
assertExistNew(added);
i++;
}
while (added.size() > 0) {
assertRemove(added);
assertExist(added);
}
}
}