├── 100 └── expression.sql ├── 101 └── contatenation.sql ├── 102 └── my-solution.sql ├── 103 └── my-solution.sql ├── 104 └── my-solution.sql ├── 105 └── my-solution.sql ├── 106 └── my-solution.sql ├── 107 └── my-solution.sql ├── 109 ├── select-01.sql ├── select-02.sql └── select-03.sql ├── 110 └── samples.sql ├── 112 └── time-examples.sql ├── 113 └── n7e1.sql ├── 114 └── n7e2.sql ├── 115 └── solution.sql ├── 116 └── solution.sql ├── 117 └── json.sql ├── 118 └── accessing.sql ├── 119 └── null.sql ├── 120 └── containment.sql ├── 121 └── existence.sql ├── 122 └── test1.sql ├── 123 └── ninja8ho1.sql ├── 124 └── ninja8ho2.sql ├── 125 └── ninja8ho3.sql ├── 126 └── samples.sql ├── 127 └── samples.sql ├── 128 └── samples.sql ├── 129 └── samples.sql ├── 130 └── samples.sql ├── 131 └── samples.sql ├── 132 └── samples.sql ├── 133 └── samples.sql ├── 134 └── n9e1.sql ├── 135 └── n9e2.sql ├── 136 └── n9e3.sql ├── 137 └── n9e4.sql ├── 138 └── n9e5.sql ├── 139 └── n9e6.sql ├── 140 └── n9e7.sql ├── 141 └── n9e8.sql ├── 151 └── test.sql ├── 153 └── n10e2.sql ├── 154 └── n10e3.sql ├── 155 └── n10e4.sql ├── 156 └── n11e1.sql ├── 157 └── n11e2.sql ├── 158 └── n11e3.sql ├── 159 └── n11e4.sql ├── 160 └── n11e5.sql ├── 161 └── n12e1.sql ├── 162 └── n12e2.sql ├── 163 └── n12e3.sql ├── 164 └── n12e4.sql ├── 165 └── code.sql ├── 166 └── code.sql ├── 168 └── answer.sql ├── 169 └── n13e2.sql ├── 170 └── solution.sql ├── 171 └── solution.sql ├── 172 └── n13e5.sql ├── 173 └── n13e6.sql ├── 174 └── n13e7.sql ├── 176 └── samples.sql ├── 177 ├── movies-sample.sql └── samples.sql ├── 178 ├── movies-sample.sql └── samples.sql ├── 179 ├── n14e1.sql └── setup.sql ├── 180 └── n14e2.sql ├── 181 └── n14e3.sql ├── 182 ├── 0-setup.sql └── samples.sql ├── 183 └── samples.sql ├── 184 └── samples.sql ├── 185 └── samples.sql ├── 186 └── samples.sql ├── 187 └── n15e3.sql ├── 188 └── n15e4.sql ├── 189 └── n15e4.sql ├── 190 └── sample.sql ├── 191 └── sample.sql ├── 192 └── sample.sql ├── 195 └── samples.sql ├── 196 └── samples.sql ├── 197 └── samples.sql ├── 198 └── samples.sql ├── 199 └── samples.sql ├── 200 └── code.sql ├── 202 ├── rebuild-db.sql └── sample.sql ├── 203 └── n16e1.sql ├── 204 └── n16e2.sql ├── 205 └── n16e3.sql ├── 206 └── n16e4.sql ├── 207 └── n16e5.sql ├── 208 ├── n17e1.sql └── rebuild-wishlists.sql ├── 209 └── n17e2.sql ├── 210 └── n17e3.sql ├── .gitignore ├── 085 └── sample.txt ├── 088 └── sample_create_table.sql ├── 089 └── wishlist schema.png ├── 090 ├── 01-create-database.sql ├── 02-create-table-people.sql ├── 03-create-table-lists.sql ├── 04-create-table-items.sql └── 05-create-table-listItems.sql ├── 091 └── 01-add-columns.sql ├── 092 ├── database.txt ├── go.mod └── main.go ├── 093 └── all-commands.sql ├── 094 └── specific-fields.sql ├── 095 └── distinct.sql ├── 096 ├── 1-order-by.sql ├── 2-order-fields.sql └── 3-order-by-distinct.sql ├── 097 └── order-by-multiple.sql ├── 098 └── naming-results.sql ├── 099 ├── 1-literal.sql ├── 2-all-literal.sql └── 3-calculation.sql ├── 108-wishlists-database ├── all-commands.sql ├── database.txt ├── go.mod ├── main.go └── select-ten-people.sql ├── 143-movie-database ├── all-sql-commands.sql └── testing-files.sql │ └── 01-examples.sql ├── 152-some-setup-files-also ├── 0-setup.sql ├── 1-setup.sql └── n10e1.sql ├── 175-aggregate └── samples.sql ├── 194 update ├── samples.sql ├── setup-movies.sql └── setup-wishlists.sql ├── 201 delete └── sample.sql ├── 999 PREP GROUPING HAVING ├── setup.sql └── setupmovies.sql └── LICENSE /.gitignore: -------------------------------------------------------------------------------- 1 | *.sublime-project 2 | *.sublime-workspace 3 | -------------------------------------------------------------------------------- /085/sample.txt: -------------------------------------------------------------------------------- 1 | just testing that this works -------------------------------------------------------------------------------- /088/sample_create_table.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE creditCard ( 2 | ccid SERIAL PRIMARY KEY, 3 | ccNumber VARCHAR(20) NOT NULL 4 | ); 5 | -------------------------------------------------------------------------------- /089/wishlist schema.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GoesToEleven/postgresql-course/e50dc7cd80bd153eb04e7b57eafcbb5bbccaa507/089/wishlist schema.png -------------------------------------------------------------------------------- /090/01-create-database.sql: -------------------------------------------------------------------------------- 1 | CREATE DATABASE wishlists; -------------------------------------------------------------------------------- /090/02-create-table-people.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE people 2 | ( pid SERIAL PRIMARY KEY, 3 | pFirstName VARCHAR(50) NOT NULL); -------------------------------------------------------------------------------- /090/03-create-table-lists.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE lists ( 2 | lID SERIAL PRIMARY KEY, 3 | pID INT REFERENCES people NOT NULL, 4 | lName VARCHAR(50) NOT NULL 5 | ); -------------------------------------------------------------------------------- /090/04-create-table-items.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE items ( 2 | iID SERIAL PRIMARY KEY, 3 | iName VARCHAR(50) NOT NULL 4 | ); -------------------------------------------------------------------------------- /090/05-create-table-listItems.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE listItems ( 2 | liID SERIAL PRIMARY KEY, 3 | lID INT REFERENCES lists NOT NULL, 4 | iID INT REFERENCES items NOT NULL, 5 | liDesired INT NOT NULL DEFAULT 1, 6 | liPurchased INT NOT NULL DEFAULT 0 7 | ); -------------------------------------------------------------------------------- /091/01-add-columns.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE people 2 | ADD COLUMN plastname VARCHAR(50) NOT NULL, 3 | ADD COLUMN pcity VARCHAR(50) NOT NULL, 4 | ADD COLUMN pstate VARCHAR(2) NOT NULL; 5 | -------------------------------------------------------------------------------- /092/database.txt: -------------------------------------------------------------------------------- 1 | ---- PEOPLE ---- 2 | ('Bsqnbed', 'Qvrkx', 'ND', 'Chula Vista'), 3 | ('Wn', 'Kcuwhetnzwzj', 'VT', 'Santa Rosa'), 4 | ('Gvtsuj', 'Xlgv', 'CT', 'Newark'), 5 | ('Qbhbprneq', 'Gxnvka', 'SD', 'Huntington Beach'), 6 | ('Zdfk', 'Olvsxblpmh', 'DE', 'Las Vegas'), 7 | ('Wrl', 'Pkbkfzvhvztsr', 'WI', 'Mobile'), 8 | ('Rjvje', 'Xqyzgarrdmw', 'VA', 'Stockton'), 9 | ('Xiolyamdpqbht', 'Ogrhz', 'IL', 'Aurora'), 10 | ('Ifdqbpqo', 'Qovdcmpzywlrs', 'KS', 'Nashville-Davidson'), 11 | ('Rqvglof', 'Hjlhrgckfnyyg', 'MI', 'Albuquerque'), 12 | ('Xxrnfsgnbgvul', 'Juwdpoyyh', 'NJ', 'Reno'), 13 | ('Tgya', 'Ozzezkfx', 'MI', 'Seattle'), 14 | ('Gmebalqohjid', 'Dwimse', 'SC', 'Akron'), 15 | ('Wilmbzuh', 'Hdrsj', 'ID', 'Charlotte'), 16 | ('Fvhgtej', 'Fngvgohtyrrgd', 'WV', 'Moreno Valley'), 17 | ('Mj', 'Btlrpezghvzc', 'SD', 'Richmond'), 18 | ('Yeftmzagdoq', 'Fmv', 'WA', 'Little Rock'), 19 | ('Ue', 'Fn', 'IN', 'Garden Grove'), 20 | ('Cc', 'Sq', 'VI', 'Port St. Lucie'), 21 | ('Fp', 'Tgiembpzxlj', 'RI', 'Boise City'), 22 | ('Sohkwhe', 'Pilbqlbxlxhq', 'ME', 'Irvine'), 23 | ('Xtmytccsrl', 'Chwult', 'FM', 'Portland'), 24 | ('Vny', 'Qv', 'IA', 'Oxnard'), 25 | ('Saehx', 'Rqpcvaumkzgg', 'MD', 'Miami'), 26 | ('Oqipbeajj', 'Wdquuxfdux', 'WA', 'Stockton'), 27 | ('Skhrfihwmxka', 'Csheta', 'NH', 'Tulsa'), 28 | ('Zvdvbldacdqxt', 'Oleectm', 'KY', 'Huntington Beach'), 29 | ('Iqkaplfj', 'Slroxnax', 'MH', 'Madison'), 30 | ('Qoxs', 'Dtngqay', 'PW', 'Mobile'), 31 | ('Xoze', 'Ogpkqmbcilta', 'DC', 'Madison'), 32 | ('Lkldjkzucn', 'Ifksci', 'MO', 'Newark'), 33 | ('Xs', 'Okpyajorsoqoc', 'AZ', 'Augusta-Richmond County'), 34 | ('Nsdhk', 'Gjessppzojus', 'OR', 'Columbus'), 35 | ('Ufsqmzcdnb', 'Ji', 'VI', 'Modesto'), 36 | ('Oicvhhp', 'Nbrzhmjbbp', 'OK', 'Rancho Cucamonga'), 37 | ('Xcuiijvzm', 'Troo', 'OH', 'Little Rock'), 38 | ('Hmkaynzg', 'Dzcvgospiit', 'AK', 'Little Rock'), 39 | ('Aw', 'Nevmgyleq', 'TX', 'Des Moines'), 40 | ('Fcfhmds', 'Sofhudok', 'PR', 'Fort Lauderdale'), 41 | ('Gv', 'Zvndynt', 'VI', 'Columbus'), 42 | ('Xkvrky', 'Jaaq', 'OR', 'Norfolk'), 43 | ('Xointdpwgohro', 'Wjjftmok', 'PR', 'Scottsdale'), 44 | ('Vypsdrepxwmjc', 'Wiefni', 'MT', 'Buffalo'), 45 | ('Dnnsffn', 'Fncoyhc', 'CT', 'Garden Grove'), 46 | ('Zed', 'Szwzx', 'CT', 'Jacksonville'), 47 | ('Enq', 'Yfovbtrcllaxq', 'AR', 'Santa Ana'), 48 | ('Vkpnzrz', 'Womwmlydhbbu', 'ND', 'Albuquerque'), 49 | ('Rmnzzzgcss', 'Suluzjysrkda', 'ND', 'Ontario'), 50 | ('Czocuik', 'Egub', 'AS', 'Arlington'), 51 | ('Gmgxcbxzjn', 'Hjezu', 'OH', 'Vancouver'), 52 | ('Cyeqkhpiuhaw', 'Xfxmzg', 'OH', 'Worcester'), 53 | ('Sjqgvek', 'Osndzccqgqts', 'NM', 'Cleveland'), 54 | ('Jfnfocijwphri', 'Hqfbokicyugh', 'VT', 'El Paso'), 55 | ('Qc', 'Cnfz', 'OH', 'Mesa'), 56 | ('Toiyfum', 'Zmkh', 'MD', 'Yonkers'), 57 | ('Cnsq', 'Esfzn', 'NC', 'Richmond'), 58 | ('Zlrp', 'Ssnyind', 'SC', 'Los Angeles'), 59 | ('Fvms', 'Tleagdxq', 'LA', 'Fort Worth'), 60 | ('Xafvln', 'Astjq', 'MA', 'Oklahoma City'), 61 | ('Ex', 'Vqoidev', 'OR', 'Salt Lake City'), 62 | ('Wrwqqqmpzbu', 'Wsmq', 'IN', 'Atlanta'), 63 | ('Jlmdopuhahaee', 'Watszkdus', 'NJ', 'Houston'), 64 | ('Jpohgadutnjjk', 'Jybwfwmnvmey', 'SC', 'Cape Coral'), 65 | ('Xxzfnexdihpp', 'Uwmszpnatrrx', 'PR', 'Madison'), 66 | ('Jil', 'Fxhkjqxovkxr', 'AK', 'Denver'), 67 | ('Xzzv', 'Rmfnww', 'NH', 'Austin'), 68 | ('Hukjimd', 'Mvqrviqwlwf', 'WI', 'Fayetteville'), 69 | ('Szsmjd', 'Ufaxolbpw', 'DC', 'Reno'), 70 | ('Dbydqedrpfndr', 'Zpzxzjgw', 'OR', 'Denver'), 71 | ('Kndxuxmpgqtck', 'Dtihxckew', 'PW', 'Tacoma'), 72 | ('Zwbzlnqwltvvw', 'Nsdojyyem', 'OK', 'Memphis'), 73 | ('Qc', 'Fdcsinzbgv', 'WV', 'St. Petersburg'), 74 | ('Rntnpgkb', 'Cpkyt', 'KS', 'Jersey City'), 75 | ('Xdntwcol', 'Nux', 'FM', 'Fontana'), 76 | ('Euk', 'Yriy', 'MT', 'Worcester'), 77 | ('Qyhgchzeji', 'Gfmumigdghdpp', 'OR', 'Brownsville'), 78 | ('Erqyqzleywsp', 'Auqywohlataf', 'OR', 'Cape Coral'), 79 | ('Yyzsbsk', 'Oz', 'AR', 'Columbus'), 80 | ('Yiqljspqhj', 'Qbwstjazbo', 'NV', 'Nashville-Davidson'), 81 | ('Kedfsz', 'Scqnoedey', 'UT', 'Irvine'), 82 | ('Unhs', 'Gtwzmbfvmvmrk', 'OK', 'San Diego'), 83 | ('Lde', 'Pciwp', 'DC', 'Philadelphia'), 84 | ('Tlxw', 'Xeg', 'SC', 'Fort Worth'), 85 | ('Uymvpptqdxq', 'Ityngzrmnmqz', 'IA', 'Los Angeles'), 86 | ('Ao', 'Fshkf', 'ME', 'Indianapolis'), 87 | ('Vzpiumzpdbz', 'Jr', 'NH', 'Charlotte'), 88 | ('Wo', 'Wcdi', 'GU', 'Santa Ana'), 89 | ('Aadeqzofx', 'Zohbkek', 'WY', 'Fort Wayne'), 90 | ('Kfsipsdcvm', 'Baad', 'KY', 'Oxnard'), 91 | ('Diywdksa', 'Pkgbqdiabzlyv', 'NH', 'Fort Worth'), 92 | ('Ljaei', 'Mmbkrklgpnlu', 'PW', 'Los Angeles'), 93 | ('Tvs', 'Qiinduedkbdzf', 'AZ', 'Oceanside'), 94 | ('Hbikx', 'Slcdnkiht', 'AS', 'Boston'), 95 | ('Waul', 'Jlut', 'WY', 'Minneapolis'), 96 | ('Iqvgfvqbn', 'Cjbdypyq', 'GU', 'Birmingham'), 97 | ('Mupmv', 'Ff', 'UT', 'Colorado Springs'), 98 | ('Gkeioq', 'Mzox', 'WA', 'Richmond'), 99 | ('Dpwmvvudikn', 'Qijkouluvm', 'GA', 'Atlanta'), 100 | ('Azpduuszbef', 'Ucmyn', 'NM', 'Atlanta'), 101 | ('Wejs', 'Pjjrgm', 'IL', 'Washington'), 102 | ('Nolcw', 'Inwsfwrdqhu', 'PR', 'Shreveport'), 103 | ('Hzhanumoed', 'Dxhn', 'KY', 'El Paso'), 104 | ('Ee', 'Zxoovxvoppqye', 'VA', 'Overland Park'), 105 | ('Swrerqmieaose', 'Txgvtfakfja', 'KY', 'New York'), 106 | ('Etpd', 'Cudbscxyj', 'AS', 'San Francisco'), 107 | ('Bhtvykyboc', 'Zxvszokdtpm', 'KY', 'Philadelphia'), 108 | ('Ysowrxwoa', 'Qbmdl', 'RI', 'Jackson'), 109 | ('Retglrp', 'Jougiiuexfi', 'TX', 'New York'), 110 | ('Gqwm', 'Atl', 'CO', 'Oakland'), 111 | ('Cccocpvir', 'Xhmnikys', 'GU', 'Shreveport'), 112 | ('Ndoejnrlo', 'Bnmgxctv', 'NC', 'Portland'), 113 | ('Fyzdur', 'Bnh', 'VT', 'Tallahassee'), 114 | ('Vuqcclzmv', 'Bmrqvhxyljpe', 'ME', 'Irving'), 115 | ('Rssq', 'Oxeis', 'ID', 'Milwaukee'), 116 | ('Qai', 'Eotquzzzzlumm', 'IA', 'Lexington-Fayette'), 117 | ('Xu', 'Xgvmzsqjqecj', 'KS', 'Miami'), 118 | ('Chjbdqfh', 'Kfwhcdcrdlu', 'MD', 'Indianapolis'), 119 | ('Gkjxypmatp', 'Xbtsvk', 'NV', 'Greensboro'), 120 | ('Kv', 'Dadbhccwhfx', 'OR', 'Tampa'), 121 | ('Xdnvougfuuos', 'Nvodergxuzawx', 'FM', 'Long Beach'), 122 | ('Uc', 'Utj', 'MP', 'Phoenix'), 123 | ('Yzmuoefjg', 'Zu', 'PR', 'Houston'), 124 | ('Mtpj', 'Llqytdheofquk', 'AR', 'Des Moines'), 125 | ('Yeqhwcmec', 'Yigidser', 'DE', 'Cape Coral'), 126 | ('Ampxyqiv', 'Hzriomy', 'AK', 'Aurora'), 127 | ('Axpqe', 'Mtod', 'FM', 'Rochester'), 128 | ('Oqle', 'Npzj', 'PR', 'Laredo'), 129 | ('Jgs', 'Bxxlzerhxzvl', 'PA', 'Columbus'), 130 | ('Aexpkb', 'Zztital', 'AR', 'Des Moines'), 131 | ('Pzpaidsf', 'Uvejyjvf', 'CT', 'Sacramento'), 132 | ('Mohubka', 'Nqkhjydxhgg', 'DE', 'Columbus'), 133 | ('Gc', 'Xlgcum', 'ND', 'Louisville/Jefferson County'), 134 | ('Ipwos', 'Jza', 'GU', 'New Orleans'), 135 | ('Uinedcqhrmzb', 'Yqtvbdkdpcqs', 'AR', 'Dallas'), 136 | ('Dpmslmezt', 'Iciklrwcne', 'FL', 'Lincoln'), 137 | ('Cdruw', 'Elaxdgainqgba', 'VT', 'Knoxville'), 138 | ('Bqr', 'Uhfgczsgsnt', 'NV', 'Denver'), 139 | ('Guyrp', 'Sxgznfqshbs', 'SC', 'Seattle'), 140 | ('Bkxdpjmc', 'Sq', 'PA', 'Lexington-Fayette'), 141 | ('Fgye', 'Vpr', 'WV', 'Boise City'), 142 | ('Ueexxfrvtxm', 'Fmqzhczlneiuz', 'RI', 'Overland Park'), 143 | ('Tixvbel', 'Nzreac', 'IA', 'Anchorage'), 144 | ('Mrpntvvonmds', 'Xkq', 'NJ', 'Virginia Beach'), 145 | ('Sisyw', 'Xdoxxmyoc', 'RI', 'Miami'), 146 | ('Djbfnmklovf', 'Pybdnzpw', 'VI', 'Colorado Springs'), 147 | ('Qqxcpnskrunl', 'Rvnhgkniugj', 'PW', 'Yonkers'), 148 | ('Rcjpqid', 'Zfdrjdgmps', 'FL', 'Albuquerque'), 149 | ('Sxc', 'Yediiodu', 'PA', 'Richmond'), 150 | ('Xor', 'Jvjyksbw', 'CA', 'Cincinnati'), 151 | ('Phywbqyfpj', 'Ova', 'NC', 'Irving'), 152 | ('Cefwgc', 'Zqsnudypbjjf', 'KY', 'San Francisco'), 153 | ('Xlb', 'Mgmxwxfih', 'DE', 'Lincoln'), 154 | ('Kcfmipqgccu', 'Vy', 'OK', 'Aurora'), 155 | ('Zseditscbi', 'Wypsk', 'NC', 'Los Angeles'), 156 | ('Mogtg', 'Stozkuyz', 'CT', 'Memphis'), 157 | ('Aetlmlgh', 'Zk', 'MP', 'Tallahassee'), 158 | ('Hwvtsowiaamn', 'Skvhninoaccqn', 'MS', 'Gilbert'), 159 | ('Lpsbwe', 'Ologlnqti', 'UT', 'Arlington'), 160 | ('Kydtqya', 'Rygwomvqk', 'VI', 'Louisville/Jefferson County'), 161 | ('Ruaf', 'Xihzqifqsznq', 'PR', 'Miami'), 162 | ('Oigkirphwy', 'Phdyqamwlubbw', 'SD', 'Jacksonville'), 163 | ('Jxcj', 'Fj', 'DC', 'Columbus'), 164 | ('Leqy', 'Ylf', 'NV', 'Montgomery'), 165 | ('Guzee', 'Rdqpndcryfgx', 'MI', 'Bakersfield'), 166 | ('Oxztuqwoiodsj', 'Aymolsw', 'KS', 'Long Beach'), 167 | ('Tnep', 'Lsdaqrozpya', 'MT', 'San Francisco'), 168 | ('Kh', 'Zv', 'MI', 'San Antonio'), 169 | ('Regtdmxjsvys', 'Ixfe', 'NM', 'St. Petersburg'), 170 | ('Bulpynxzwnulg', 'Akpzpptl', 'OR', 'Detroit'), 171 | ('Ncocdpyyizf', 'Mjyf', 'MP', 'St. Louis'), 172 | ('Zzovrtatmp', 'Ypdldixhq', 'WI', 'Atlanta'), 173 | ('Rz', 'Hgvnhwxawjrjf', 'NC', 'Minneapolis'), 174 | ('Uc', 'Kkzxwmicm', 'AR', 'Glendale'), 175 | ('Espwmncehz', 'Lwwcjjrv', 'SD', 'Shreveport'), 176 | ('Dbnh', 'Cvuehb', 'MT', 'San Bernardino'), 177 | ('Ijyzvudnmrwpn', 'Kpbhfbcgywln', 'DE', 'Moreno Valley'), 178 | ('On', 'Snkdypvqaiw', 'IN', 'Tulsa'), 179 | ('Pryglxebsw', 'Egmrnplwyn', 'GU', 'Glendale'), 180 | ('Tf', 'Aw', 'TN', 'Raleigh'), 181 | ('Odq', 'Sugoyehlh', 'AR', 'Irving'), 182 | ('Mwjly', 'Rvxyurabzsy', 'WI', 'Orlando'), 183 | ('Nqnddgvuwi', 'Myxartwcfb', 'ID', 'Orlando'), 184 | ('Pxwtcwxgn', 'Bybaslaxxlfq', 'AK', 'Worcester'), 185 | ('Blqoxvohoc', 'Rijiv', 'AK', 'Huntsville'), 186 | ('Xzwqtq', 'Gxjrwshst', 'MN', 'Salt Lake City'), 187 | ('Xlnyx', 'Tdfjknhqsee', 'CO', 'Tulsa'), 188 | ('Moblwiux', 'Hvox', 'IA', 'Fontana'), 189 | ('Geedkuyzbrw', 'Hxex', 'MH', 'Milwaukee'), 190 | ('Jmnska', 'Peanup', 'NY', 'Oxnard'), 191 | ('Scmwd', 'Jpdtflggv', 'NH', 'Amarillo'), 192 | ('Rde', 'Ywxeetobezk', 'AL', 'San Jose'), 193 | ('Luj', 'Qfnuslaicdw', 'NH', 'Miami'), 194 | ('Uxekuquevgddx', 'Qbxwgwbk', 'MN', 'Norfolk'), 195 | ('Shm', 'Ymqlan', 'OK', 'Tucson'), 196 | ('Kokxdzjaee', 'Dclyu', 'ND', 'Winston-Salem'), 197 | ('Uf', 'Neftiugabvpn', 'NE', 'Denver'), 198 | ('Znqmatj', 'Xtbgwspll', 'MP', 'Laredo'), 199 | ('Uvvqwawirp', 'Gcepsjrghhar', 'AZ', 'North Las Vegas'), 200 | ('Ddybz', 'Kwkxgjrqd', 'OR', 'Jackson'), 201 | ('Xcxk', 'Vxgoyzlawoop', 'MO', 'San Diego'), 202 | ('Ywqivak', 'Nme', 'PW', 'Aurora'), 203 | ('Ljwcqvwgrlroh', 'Vjwpwtnxb', 'PR', 'Overland Park'), 204 | ('Wqacnwlacvnx', 'Bvdxefjrzntpo', 'FM', 'Irvine'), 205 | ('Ojfk', 'Fanzq', 'MH', 'Tacoma'), 206 | ('Lwr', 'Lndysoooh', 'IA', 'Aurora'), 207 | ('Hour', 'Nqmqphhkoows', 'IN', 'Cleveland'), 208 | ('Ysi', 'Fpdevi', 'VI', 'Baton Rouge'), 209 | ('Qemqxqdh', 'Mnshlnwqk', 'WV', 'Glendale'), 210 | ('Yfcknckqcud', 'Bvfvty', 'TX', 'Tucson'), 211 | ('Zrgapibnpui', 'Azpjyzghfa', 'SC', 'Fremont'), 212 | ('Tmwcimff', 'Zeaeixbskwp', 'PW', 'San Bernardino'), 213 | ('Kympjlahkbkrr', 'Aqqpf', 'NC', 'Oxnard'), 214 | ('Gvqffpdrbet', 'Elsrwvluvow', 'FL', 'Newark'), 215 | ('Qme', 'Ao', 'CO', 'Cincinnati'), 216 | ('Zyggxxwfme', 'Uahfmkvdax', 'GU', 'Omaha'), 217 | ('Bo', 'Wse', 'ID', 'Irvine'), 218 | ('Tphhywvpgdv', 'Ljl', 'TN', 'Laredo'), 219 | ('Qkk', 'Cnuljtbvyiww', 'TN', 'Laredo'), 220 | ('Ihwuziol', 'Tgs', 'OK', 'Vancouver'), 221 | ('Dipp', 'Lropobpwk', 'ID', 'Anchorage'), 222 | ('Ca', 'Mmf', 'SD', 'Worcester'), 223 | ('Hihkhci', 'Zksumugy', 'TX', 'Raleigh'), 224 | ('Vgrjtsuoijm', 'Xdzylzsmk', 'HI', 'North Las Vegas'), 225 | ('Cvmlzv', 'Tvbabzabldx', 'MA', 'Norfolk'), 226 | ('Gjbgmdcnxr', 'Egowpjmjsokxd', 'FM', 'Cape Coral'), 227 | ('Khq', 'Cqm', 'AR', 'Chandler'), 228 | ('Uzdioeq', 'Mybdohjowxnvw', 'HI', 'Chattanooga'), 229 | ('Zsjrfujgyrow', 'Haxqppyutn', 'TX', 'Santa Rosa'), 230 | ('Xpwjzlqmdhfqp', 'Nbemxxxhdj', 'WI', 'Washington'), 231 | ('Ougd', 'Slgokbuypk', 'ID', 'Cincinnati'), 232 | ('Wshdthyba', 'Hlk', 'MS', 'Rochester'), 233 | ('Vhbvy', 'Nsdtqbh', 'MT', 'Riverside'), 234 | ('Dwhfwrvxsflrv', 'Xgczzpgfm', 'WI', 'Jacksonville'), 235 | ('Si', 'Tnn', 'RI', 'Chula Vista'), 236 | ('Bqdviacxwf', 'Goprukr', 'OH', 'Laredo'), 237 | ('Rjq', 'Ixfr', 'IN', 'Montgomery'), 238 | ('Klmhotffsjsc', 'Gohduckl', 'MS', 'Glendale'), 239 | ('Cyjgfoq', 'Ilopjvtgmwar', 'MH', 'Chandler'), 240 | ('Hjig', 'Urx', 'IN', 'Tallahassee'), 241 | ('Ie', 'Bqz', 'TN', 'San Bernardino'), 242 | ('Hmjzapzxmozgh', 'Nbsbthow', 'CA', 'Tallahassee'), 243 | ('Fgrrzhewbxj', 'Hec', 'MS', 'Los Angeles'), 244 | ('Wkrpdqpc', 'Oyllqww', 'NC', 'St. Paul'), 245 | ('Epaketooxu', 'Hqivlczng', 'ID', 'Jacksonville'), 246 | ('Ujjy', 'Sgvojqthchsrx', 'NE', 'Colorado Springs'), 247 | ('Dyydk', 'Trtwzt', 'UT', 'Boston'), 248 | ('Bns', 'Skedojhen', 'NV', 'Spokane'), 249 | ('Fgasmtdsrzzk', 'Cqi', 'WY', 'Fort Lauderdale'), 250 | ('Jyqxwl', 'Fhoqxixxn', 'AR', 'Arlington'), 251 | ('Wgrbonlycry', 'Blwaoj', 'FL', 'Anchorage'), 252 | ('Hpdgutygro', 'Gmschjz', 'CO', 'Cleveland'), 253 | ('Oclw', 'Vf', 'MT', 'Spokane'), 254 | ('Bzktv', 'Mctvlbybwm', 'MA', 'Fayetteville'), 255 | ('Ufkb', 'Xijtbacqxxke', 'NJ', 'Nashville-Davidson'), 256 | ('Gm', 'Rhlvqbnxf', 'KY', 'Amarillo'), 257 | ('Mhntqus', 'Ooehmlzwkij', 'FM', 'Chicago'), 258 | ('Vjtxsh', 'Tilbznjiltjxd', 'MT', 'Ontario'), 259 | ('Lvfhjvyvi', 'Ckalvhdg', 'MP', 'Minneapolis'), 260 | ('Qnea', 'Pjvkjoktvme', 'FL', 'El Paso'), 261 | ('Kvg', 'Gwrjwrbiowovn', 'MN', 'New Orleans'), 262 | ('Jkoa', 'Cvvluraouep', 'CT', 'Huntington Beach'), 263 | ('Osv', 'Zukeemt', 'VI', 'Richmond'), 264 | ('Jhletnrdeo', 'Eghxhx', 'VI', 'St. Paul'), 265 | ('Clfqeqb', 'Sahvlaakdwm', 'ME', 'Raleigh'), 266 | ('Lmogngtword', 'Xpf', 'MD', 'Vancouver'), 267 | ('Efgxqzggz', 'Roeafd', 'HI', 'Huntington Beach'), 268 | ('Pvm', 'Ejimxrwlox', 'ND', 'Yonkers'), 269 | ('Kokccvc', 'Ihag', 'TN', 'Vancouver'), 270 | ('Mhrhijzhtnw', 'Gpbryhfg', 'WA', 'Albuquerque'), 271 | ('Ra', 'Rnug', 'WI', 'Spokane'), 272 | ('Zihyshmdtse', 'Re', 'DC', 'Louisville/Jefferson County'), 273 | ('Efwltafixsoa', 'Bwwliipkgzi', 'IN', 'Pittsburgh'), 274 | ('Rrokcdxfpxp', 'Muchvkir', 'NC', 'Fremont'), 275 | ('Ptzefwr', 'Xh', 'ID', 'Fremont'), 276 | ('Yeyolnmfyqg', 'Ehfczjzlgatq', 'KS', 'Greensboro'), 277 | ('Srgkkwolitdn', 'Swifa', 'OK', 'El Paso'), 278 | ('Hd', 'Vezfab', 'GA', 'Riverside'), 279 | ('Xnmfzot', 'Bsqg', 'GU', 'Chattanooga'), 280 | ('Ekktg', 'Figzfkhqwjqs', 'MD', 'Orlando'), 281 | ('Lgzycj', 'Ziujtaxf', 'MN', 'Worcester'), 282 | ('Dxrztmaetcz', 'Jwzkecpgfzf', 'DE', 'Portland'), 283 | ('Vqkupxnnvbw', 'Gfhophlmvzxod', 'ND', 'Buffalo'), 284 | ('Mbf', 'Sjgyigh', 'MS', 'Anaheim'), 285 | ('Ad', 'Nm', 'OH', 'San Diego'), 286 | ('Gqambdu', 'Mfzevfko', 'MA', 'San Francisco'), 287 | ('Xa', 'Jmixn', 'SC', 'Vancouver'), 288 | ('Rdfywjs', 'Mc', 'IL', 'Overland Park'), 289 | ('Cqjgiubhitw', 'Ehfverxk', 'MI', 'Tallahassee'), 290 | ('Axurlg', 'Oyoubgc', 'MT', 'Birmingham'), 291 | ('Tzizooaq', 'Bzk', 'MS', 'Charlotte'), 292 | ('Ezwwspjpqa', 'Cxdgyid', 'VA', 'Jacksonville'), 293 | ('Rhfxyxtvlxztv', 'Lssdxwui', 'OK', 'El Paso'), 294 | ('Wizjn', 'Pmg', 'NJ', 'Spokane'), 295 | ('Xtgdvgwx', 'Mbxs', 'PW', 'Baltimore'), 296 | ('Mgxjkqjaavwbg', 'Eogduaur', 'MH', 'Nashville-Davidson'), 297 | ('Wni', 'Ac', 'AK', 'Oxnard'), 298 | ('Mxdjstk', 'Nx', 'ND', 'Vancouver'), 299 | ('Ipjjemwwph', 'Jkjadstxw', 'MD', 'Tallahassee'), 300 | ('Jmqagcwdedj', 'Nyjy', 'MT', 'Moreno Valley'), 301 | ('Gxfzhgeqxgaz', 'Fftlniedcmts', 'AS', 'Colorado Springs'), 302 | ('Docbfglhrhqxn', 'Krpqesdq', 'AZ', 'Boise City'), 303 | ('Rkihlyibjpi', 'Umexzkzycamax', 'OR', 'Arlington'), 304 | ('Axmdifvlgp', 'Eeaskcztwz', 'MA', 'Albuquerque'), 305 | ('Rnajtpi', 'Hyruymjkvl', 'VT', 'Las Vegas'), 306 | ('Gkkuqvuczfu', 'Fckh', 'LA', 'Omaha'), 307 | ('Kwya', 'Drrucoupzzaa', 'GA', 'Cincinnati'), 308 | ('Ebnedog', 'Rxkdnxnvuxo', 'AZ', 'Garden Grove'), 309 | ('Ugfxku', 'Mlyg', 'CO', 'Madison'), 310 | ('Ehkcxfucyu', 'Fvdojmzedz', 'HI', 'Stockton'), 311 | ('Agdnysma', 'Dmldhxhyv', 'PR', 'Augusta-Richmond County'), 312 | ('Ojlapacpl', 'Uk', 'IA', 'Portland'), 313 | ('Aoylks', 'Uqdpefqtbmzj', 'DE', 'Oxnard'), 314 | ('Wypjkirv', 'Jctwqlzkeabs', 'RI', 'Salt Lake City'), 315 | ('Pnzrgowux', 'Onvvio', 'NE', 'Orlando'), 316 | ('Xp', 'Qswt', 'KY', 'Nashville-Davidson'), 317 | ('Vzxsfk', 'Ekhltonbnu', 'IA', 'Lincoln'), 318 | ('Nhd', 'Hc', 'AK', 'Garland'), 319 | ('Df', 'Dzn', 'MA', 'Minneapolis'), 320 | ('Rgqgxmxul', 'Wqbu', 'CO', 'Grand Prairie'), 321 | ('Xruq', 'Xtxcdo', 'MH', 'Glendale'), 322 | ('Avzqffud', 'Eeyswmwoke', 'WY', 'Hialeah'), 323 | ('Ajq', 'Jzpoelsh', 'FM', 'St. Paul'), 324 | ('Qun', 'Oucuzm', 'GA', 'Mesa'), 325 | ('Cnkvidmztln', 'Riwfirud', 'NJ', 'New York'), 326 | ('Ntou', 'Shaeznnkj', 'AZ', 'Jackson'), 327 | ('Cydjuazwnvdrl', 'Iatbeq', 'CO', 'Las Vegas'), 328 | ('Lvgxlhmeqi', 'Wsrgvgtvohm', 'GA', 'Raleigh'), 329 | ('Ceomswbxbwpy', 'Qtbszfrjzuu', 'NE', 'Tulsa'), 330 | ('Yxht', 'Ubks', 'CA', 'Lexington-Fayette'), 331 | ('Updtnbga', 'Qdx', 'MD', 'Tampa'), 332 | ('Sskedarw', 'Yzzdbhyldl', 'MH', 'Toledo'), 333 | ('Qyw', 'Obda', 'IL', 'San Bernardino'), 334 | ('Cyax', 'Fdrfnuoig', 'AS', 'Columbus'), 335 | ('Epdaofdmpy', 'Qim', 'WI', 'Santa Ana'), 336 | ('Jpd', 'Xncozpuaxda', 'PR', 'Chattanooga'), 337 | ('Tfunisfy', 'Zxc', 'WI', 'Baton Rouge'), 338 | ('Qovhlkambkm', 'Wslumkb', 'GU', 'Grand Prairie'), 339 | ('Cdbm', 'Kugzxaz', 'SC', 'Worcester'), 340 | ('Zjpcihwkeapxw', 'Qrnzen', 'WA', 'Oxnard'), 341 | ('Luvt', 'Bfahp', 'CT', 'Laredo'), 342 | ('Xtbeoa', 'Jmm', 'VA', 'Irvine'), 343 | ('Dhyuoysouhq', 'Uomqmlv', 'SD', 'Augusta-Richmond County'), 344 | ('Xp', 'Zfyjjcoqazz', 'NH', 'Baton Rouge'), 345 | ('Qjp', 'Wcdfcsvglghrj', 'TX', 'Huntington Beach'), 346 | ('Jjbotuvze', 'Ejtisuu', 'AZ', 'Lexington-Fayette'), 347 | ('Lbc', 'Anugqewxkw', 'GA', 'Memphis'), 348 | ('Ffrwd', 'Avwgfifhjgp', 'TN', 'Tucson'), 349 | ('Mvewukb', 'Xhhjhwzfwh', 'MP', 'Albuquerque'), 350 | ('Djboduykzne', 'Rlghqdmwf', 'NY', 'Cleveland'), 351 | ('Ozkzllj', 'Booivvbc', 'WA', 'Orlando'), 352 | ('Sjcqt', 'Pgdz', 'AL', 'Phoenix'), 353 | ('Bzd', 'Cx', 'TN', 'Jersey City'), 354 | ('Tbjw', 'Kbvfxspdsyw', 'NH', 'Grand Rapids'), 355 | ('Alo', 'Zsbbhrj', 'MH', 'St. Paul'), 356 | ('Tbyuwmrdcruv', 'Xs', 'IA', 'Sacramento'), 357 | ('Vrrqh', 'Jimiiqkjg', 'TN', 'Fayetteville'), 358 | ('Dwailcj', 'Ubgf', 'MS', 'Oceanside'), 359 | ('Ohcavmqpdijl', 'Ogjwvdl', 'GU', 'Pittsburgh'), 360 | ('Uuydyajcr', 'Jbvga', 'MA', 'Tucson'), 361 | ('Hf', 'Rxsubiuamgxv', 'AR', 'Garden Grove'), 362 | ('Ffdjxjcuyve', 'Idbmsdjfqydf', 'MA', 'Irving'), 363 | ('Se', 'Btofkbz', 'MD', 'Colorado Springs'), 364 | ('Xz', 'Kgpjfrlzpts', 'MT', 'Fort Worth'), 365 | ('Rfaecslws', 'Koklei', 'FL', 'Henderson'), 366 | ('Vlwknswkieprd', 'Ginqxw', 'SC', 'Anaheim'), 367 | ('Ofc', 'Eiqjpsobrsuu', 'AL', 'Dallas'), 368 | ('Bt', 'Kgowqdup', 'ID', 'Tampa'), 369 | ('Plqjvnpm', 'Vabnb', 'MN', 'Riverside'), 370 | ('Eaqxwtyein', 'Qzcophpdnxdzv', 'MI', 'Chandler'), 371 | ('Pjjzygudtsi', 'Egufdunu', 'MS', 'Philadelphia'), 372 | ('Gzobywrpub', 'Mngizxgkcj', 'FM', 'Rochester'), 373 | ('Xgiueyxvcsgf', 'Uos', 'IA', 'Nashville-Davidson'), 374 | ('Gmjinogu', 'Bqxiaq', 'KS', 'Aurora'), 375 | ('Apgrtxafsj', 'Psxzsvovnpfm', 'AZ', 'Spokane'), 376 | ('Vbrs', 'Uhhp', 'OH', 'Port St. Lucie'), 377 | ('Latuerqkj', 'Jcdzmj', 'NV', 'Garland'), 378 | ('Qm', 'Qawagmowmwojl', 'HI', 'St. Petersburg'), 379 | ('Hs', 'Ddzoopktheor', 'AR', 'Arlington'), 380 | ('Qglilxl', 'Tclip', 'MT', 'Plano'), 381 | ('Qpantseucgu', 'Jov', 'RI', 'Fresno'), 382 | ('Sdnyuiiqreth', 'Sindqvqycrjxp', 'MT', 'Aurora'), 383 | ('Carfeep', 'Hxgmqspdg', 'PA', 'Omaha'), 384 | ('Sldwtpocm', 'Wuvmkozuweypk', 'NH', 'Charlotte'), 385 | ('Pbggmv', 'Qtozhrbrrm', 'AZ', 'Henderson'), 386 | ('Oav', 'Bpjmmdo', 'KS', 'Philadelphia'), 387 | ('Cmsbw', 'Nfv', 'KS', 'St. Paul'), 388 | ('Mnnionedbbu', 'Rc', 'NE', 'Tallahassee'), 389 | ('Nsmxspudl', 'Zezlvmls', 'AZ', 'Omaha'), 390 | ('Ki', 'Swke', 'GA', 'Vancouver'), 391 | ('Qjhhfb', 'Rfnc', 'WI', 'Santa Ana'), 392 | ('Fxuzeuapb', 'Sgygpvoyn', 'VA', 'Pittsburgh'), 393 | ('Ostdqhpks', 'Kctzssndi', 'IL', 'Akron'), 394 | ('Mltucnfbmxv', 'He', 'AR', 'Chandler'), 395 | ('Qxtzznddmojsy', 'Uruohjwdwabu', 'WA', 'Tucson'), 396 | ('Uqhpzkpslrsa', 'Cxaquf', 'AK', 'North Las Vegas'), 397 | ('Ouvcsmemjvv', 'Jhy', 'ND', 'Shreveport'), 398 | ('Lns', 'Lvpbvyuwhikd', 'ID', 'Indianapolis'), 399 | ('Rrjgrsvyimnnb', 'Emjlowyncnhdl', 'AL', 'Miami'), 400 | ('Uh', 'Yfstbnl', 'ND', 'Grand Rapids'), 401 | ('Suqbjlvqdbrb', 'Miutix', 'RI', 'Las Vegas'), 402 | ('Rqomzgxptgjx', 'Gspcty', 'MN', 'Port St. Lucie'), 403 | ('Nvdfyc', 'Joy', 'NH', 'Santa Ana'), 404 | ('Vibzhnpa', 'Nnss', 'AK', 'Santa Clarita'), 405 | ('Xpifipexw', 'Oweam', 'GU', 'Tulsa'), 406 | ('Hmt', 'Snogpogjqv', 'WA', 'Yonkers'), 407 | ('Am', 'Zovr', 'DC', 'Amarillo'), 408 | ('Ufyykxluzyc', 'Ij', 'UT', 'Oakland'), 409 | ('Qo', 'Vvvacanud', 'WI', 'Glendale'), 410 | ('Wfswcg', 'Aagnzknpdyxz', 'WY', 'Providence'), 411 | ('Ffelvpf', 'Anmwiypgksss', 'FL', 'Oceanside'), 412 | ('Qnsdkz', 'Isijd', 'HI', 'Fort Wayne'), 413 | ('Mrrytaxevp', 'Qz', 'PA', 'Vancouver'), 414 | ('Oubwkv', 'Khqphrcgu', 'NM', 'Overland Park'), 415 | ('Fsbtmufdpamli', 'Xcjq', 'ID', 'Chicago'), 416 | ('Zsdsvpxi', 'Ihswv', 'PW', 'Greensboro'), 417 | ('Wyrezwglupbie', 'Qixn', 'WI', 'Glendale'), 418 | ('Uvsvjzwoqr', 'Man', 'NM', 'Chesapeake'), 419 | ('Puzvhexkxjlr', 'Vcsruzh', 'NE', 'Yonkers'), 420 | ('Pakfnb', 'Rfkk', 'FL', 'Amarillo'), 421 | ('Tgrcotsgxwfo', 'Aelza', 'NH', 'Cleveland'), 422 | ('Rkgmywdikgol', 'Qdtgipudgsps', 'CO', 'Modesto'), 423 | ('Nj', 'Eydwdjzhwh', 'NH', 'Garden Grove'), 424 | ('Aplcdoxxrgaxb', 'Fw', 'IA', 'Richmond'), 425 | ('Gdgxbqq', 'Qaqnqwk', 'AR', 'Milwaukee'), 426 | ('Rfnxfndao', 'Xnrpiniicdbry', 'PR', 'Rancho Cucamonga'), 427 | ('Jnbczpkrxjm', 'Cry', 'NE', 'Spokane'), 428 | ('Uydoirrhxrnpb', 'Jrckha', 'AZ', 'Riverside'), 429 | ('Pjhk', 'Jgxzm', 'AK', 'Sacramento'), 430 | ('Bbkfoixilspnx', 'Vkticpcemhng', 'MN', 'Corpus Christi'), 431 | ('Yl', 'Gcluhlbehvqum', 'MN', 'Plano'), 432 | ('Ugzwjmj', 'Pwm', 'MI', 'Durham'), 433 | ('Kwj', 'Vp', 'ME', 'Aurora'), 434 | ('Dndojygbls', 'Xabffpbqdktt', 'VA', 'Pittsburgh'), 435 | ('Loj', 'Lvyq', 'SC', 'Grand Rapids'), 436 | ('Ggm', 'Opmkahoxkpyoa', 'WI', 'Laredo'), 437 | ('Pxfx', 'Tiimup', 'DE', 'Baton Rouge'), 438 | ('Ck', 'Ta', 'GA', 'Madison'), 439 | ('Ysoekhmou', 'Yyqlgosnj', 'NE', 'Madison'), 440 | ('Cnagprzrnjbk', 'Mvrxvnfat', 'NY', 'Detroit'), 441 | ('Qwyhdbn', 'Nmfqmk', 'DC', 'Garland'), 442 | ('Yujcnck', 'Kjrnx', 'LA', 'Amarillo'), 443 | ('Vsuy', 'Qxjriuo', 'PW', 'Plano'), 444 | ('Fsocoysqtsus', 'Iws', 'SD', 'Madison'), 445 | ('Fnsx', 'Vzesg', 'ID', 'Glendale'), 446 | ('Caqi', 'Snuvqy', 'AR', 'Fontana'), 447 | ('Etrangzdmcfp', 'Ozfro', 'UT', 'Garland'), 448 | ('Lcwjhj', 'Bavtnfgkmmfnz', 'MT', 'Amarillo'), 449 | ('Qqetsa', 'Sbylaqgof', 'RI', 'Omaha'), 450 | ('Ywipzwqmvjae', 'Yjr', 'PA', 'El Paso'), 451 | ('Ojga', 'Wxtftpxu', 'KS', 'Wichita'), 452 | ('Wjmfqnlnl', 'Yfkaxpavpfs', 'MT', 'Anaheim'), 453 | ('Vfsnpniouyxf', 'Nelc', 'VI', 'Reno'), 454 | ('Yxvam', 'Wbicltygmpd', 'WV', 'Colorado Springs'), 455 | ('Wthafrmvqdvxv', 'Mmskpbsqmijl', 'LA', 'Houston'), 456 | ('Ykaxrcrrcepp', 'Zhpegqi', 'SC', 'Huntsville'), 457 | ('Tsyidn', 'Hxewhnfkevklj', 'AK', 'Portland'), 458 | ('Zhwqly', 'Qjea', 'WA', 'El Paso'), 459 | ('Kioxjifaw', 'Yssvqtkcscdj', 'GA', 'Irvine'), 460 | ('Zlxxzkfuztih', 'Lb', 'OH', 'Richmond'), 461 | ('Vub', 'Rlsrrlfvrt', 'MA', 'Tempe'), 462 | ('Fc', 'Tciubmjdy', 'CA', 'Los Angeles'), 463 | ('Nazs', 'Abihodaxwoeb', 'MA', 'Cincinnati'), 464 | ('Llza', 'Lzwfu', 'ID', 'Modesto'), 465 | ('Lldp', 'Nvyryhlayiu', 'OR', 'Amarillo'), 466 | ('Ajwcb', 'Zjjgiuubonmj', 'NC', 'Irving'), 467 | ('Rpnvkaqku', 'Xxqtym', 'DE', 'Des Moines'), 468 | ('Xki', 'Hkkrhivbbqsgn', 'AK', 'Kansas City'), 469 | ('Bvt', 'Dltvctcgv', 'ID', 'San Antonio'), 470 | ('Qcbnnwume', 'Iezrfje', 'WI', 'North Las Vegas'), 471 | ('Kgkxadnuiy', 'Oynulkme', 'NM', 'Minneapolis'), 472 | ('Sfizz', 'Cnigzszffbagj', 'NC', 'Chandler'), 473 | ('Nsexbjcwz', 'Lpgv', 'SD', 'Glendale'), 474 | ('Wfbbedpr', 'Pih', 'MI', 'Greensboro'), 475 | ('Iqujdpqoy', 'Fkfs', 'ND', 'Tallahassee'), 476 | ('Okuolgsapf', 'Xsbhnlazizx', 'MP', 'Wichita'), 477 | ('Omeohjp', 'Uwidcwhmhu', 'DC', 'Amarillo'), 478 | ('Oipg', 'Znczh', 'MH', 'Winston-Salem'), 479 | ('Jsfvdcuu', 'Stj', 'VI', 'Huntsville'), 480 | ('Euxodyvoyfrad', 'Wcpbne', 'CO', 'Winston-Salem'), 481 | ('Ietoowrh', 'Epsdnmtw', 'FL', 'Tucson'), 482 | ('Bnqxnhvelyzhe', 'Kwfroyprpzbx', 'DC', 'Jacksonville'), 483 | ('Hcb', 'Fwckfdmjpzv', 'IL', 'San Bernardino'), 484 | ('Fkjzmqddxwr', 'Kmvczgju', 'AZ', 'San Diego'), 485 | ('Kfzvtkhtsycih', 'Orbpbfqo', 'LA', 'Hialeah'), 486 | ('Xpweso', 'Qzcckadqlun', 'WY', 'Bakersfield'), 487 | ('Skhl', 'Yn', 'DC', 'Pittsburgh'), 488 | ('Lc', 'Tuxfzkvqwpga', 'MI', 'Tampa'), 489 | ('Xovuhssqywpaz', 'Tdnnrqb', 'NM', 'Philadelphia'), 490 | ('Bghxa', 'Ksov', 'WV', 'Los Angeles'), 491 | ('Rkmpcemsnhn', 'Hcsafeazcoizo', 'AL', 'Denver'), 492 | ('Lgmafc', 'Hdqeyl', 'NM', 'Charlotte'), 493 | ('Lwwioy', 'Rclae', 'NH', 'Lincoln'), 494 | ('Ndphaco', 'Jrww', 'IN', 'Irving'), 495 | ('Xzv', 'Vk', 'AK', 'Greensboro'), 496 | ('Xgtie', 'Yq', 'KS', 'Worcester'), 497 | ('Qwvemkbjlm', 'Jas', 'MD', 'Honolulu'), 498 | ('Iatokxosmmqy', 'Uhwlwloh', 'WA', 'Baltimore'), 499 | ('Jb', 'Tz', 'AR', 'Austin'), 500 | ('Clpfoglf', 'Lnya', 'IA', 'Reno'), 501 | ('Jdkukhgfdrbp', 'Gycmelipdd', 'UT', 'Moreno Valley'), 502 | ('Lf', 'Rsjblypkt', 'SD', 'Port St. Lucie'), 503 | ('Qmgir', 'Fstcou', 'SD', 'Jackson'), 504 | ('Labw', 'Pwhsqz', 'MI', 'Orlando'), 505 | ('Kmulpbvgipcpt', 'Nb', 'HI', 'Riverside'), 506 | ('Zpuiuptymgr', 'Rbovdqppqnobi', 'CA', 'Bakersfield'), 507 | ('Byjotsm', 'Nx', 'PW', 'Rancho Cucamonga'), 508 | ('Yjah', 'Luffmpglly', 'IA', 'Sacramento'), 509 | ('Fwtaapyoekd', 'Aggbweooa', 'KY', 'St. Paul'), 510 | ('Gq', 'Fvg', 'UT', 'Buffalo'), 511 | ('Ysrt', 'Qmvi', 'MN', 'Los Angeles'), 512 | ('Mkh', 'Fwakgxaphlcw', 'KS', 'Port St. Lucie'), 513 | ('Kneeid', 'Djjsitcait', 'PA', 'Cincinnati'), 514 | ('Tufrbermlnjpk', 'Qc', 'NV', 'Greensboro'), 515 | ('Yp', 'Hdv', 'NM', 'Providence'), 516 | ('Uccisbipns', 'Hxekvtmqkvoo', 'PW', 'Mobile'), 517 | ('Fqteepfdr', 'Rgrd', 'AZ', 'Chattanooga'), 518 | ('Coeyhfmrw', 'Iwzrkeslx', 'MN', 'Jackson'), 519 | ('Qflcq', 'Jfzpb', 'SD', 'North Las Vegas'), 520 | ('Ysfbufoj', 'Mfoyhdhvzgru', 'KY', 'Lubbock'), 521 | ('Ernnfo', 'Ojurtefjadq', 'NC', 'Madison'), 522 | ('Yktdqnuodayjg', 'Keupfogpq', 'PR', 'St. Petersburg'), 523 | ('Icdkdvg', 'Zzcxwtavslcwa', 'FL', 'Louisville/Jefferson County'), 524 | ('Tkkgcq', 'Miawhb', 'CT', 'Wichita'), 525 | ('Viyvnkfcdn', 'Xakbwojll', 'WV', 'Augusta-Richmond County'), 526 | ('Ihhoyw', 'Ibivpa', 'KS', 'Brownsville'), 527 | ('Qpxqigbz', 'Rrnhjzowkuu', 'ME', 'Anchorage'), 528 | ('Oau', 'Jhdxr', 'KS', 'Providence'), 529 | ('Ucmscazcbon', 'Sqsiomlrcetvz', 'ID', 'Lexington-Fayette'), 530 | ('Ghpjosfptouo', 'Uwgcih', 'NJ', 'St. Paul'), 531 | ('Nhybthmyedaz', 'Vxuajgadiityq', 'OH', 'Philadelphia'), 532 | ('Aeypah', 'Aifalfojdman', 'RI', 'Mobile'), 533 | ('Vlxactvjmd', 'Vjyqrngydbhix', 'MS', 'Charlotte'), 534 | ('Xqsybbap', 'Qthogyayegfx', 'KS', 'Baton Rouge'), 535 | ('Gtemibugllah', 'Blnamzhupqd', 'VA', 'Newport News'), 536 | ('Btqxaelxzwlcz', 'Lxcflysmzecg', 'MS', 'Stockton'), 537 | ('Astfvzgotg', 'Kd', 'WI', 'Providence'), 538 | ('Ocm', 'Vkforid', 'ND', 'Scottsdale'), 539 | ('Fw', 'Umihitqwbvl', 'MT', 'Lexington-Fayette'), 540 | ('Rksyiahznud', 'Yojqa', 'MN', 'Lexington-Fayette'), 541 | ('Dgphwkxqzps', 'Kqaqhzpqejfmi', 'VT', 'Fresno'), 542 | ('Btgbzs', 'Wqzhzra', 'ND', 'Oceanside'), 543 | ('Dogbwiqfne', 'Bjtytogzya', 'ID', 'Arlington'), 544 | ('Nndqsgieszf', 'Ftquvyliv', 'AK', 'Huntington Beach'), 545 | ('Fiechhkt', 'Ut', 'MT', 'Irving'), 546 | ('Rq', 'Romxrwmmwy', 'ND', 'Indianapolis'), 547 | ('Tisejewwcii', 'Bwzosfbpiplt', 'FM', 'Anaheim'), 548 | ('Jqlbsvjlajj', 'Szlvrjzdsuj', 'MD', 'Dallas'), 549 | ('Gshatuxscjw', 'Smxtwpyoohgn', 'MT', 'Aurora'), 550 | ('Lxfn', 'Nud', 'KS', 'Little Rock'), 551 | ('Kbkdma', 'Juxu', 'AZ', 'Albuquerque'), 552 | ('Hlpde', 'Oejumayrbtf', 'NE', 'Gilbert'), 553 | ('Qyxaw', 'Mpxqvq', 'NY', 'Jacksonville'), 554 | ('Pgdrxjycqx', 'Ubthcv', 'SC', 'Austin'), 555 | ('Zhior', 'Limhf', 'NJ', 'Dallas'), 556 | ('Zzubjbkbtlmj', 'Kho', 'MS', 'Philadelphia'), 557 | ('Weri', 'Dscbnscuhom', 'MI', 'Garland'), 558 | ('Yeyzqyna', 'Ygmo', 'ND', 'Rancho Cucamonga'), 559 | ('Shtyorbv', 'Uq', 'MT', 'Boise City'), 560 | ('Fnxxrc', 'Yqyavvkbrnw', 'CO', 'Fort Lauderdale'), 561 | ('Qzjmrazyv', 'Sdtn', 'AR', 'Newark'), 562 | ('Eme', 'Ubpsqwgqqr', 'NC', 'Omaha'), 563 | ('Aiopeug', 'Wxu', 'AZ', 'Tempe'), 564 | ('Bs', 'Poo', 'MN', 'Scottsdale'), 565 | ('Lstrosvzifvb', 'Rwafolhvx', 'FM', 'Madison'), 566 | ('Mfbqeseike', 'Vwih', 'OR', 'Chula Vista'), 567 | ('Lx', 'Nasonlbiwa', 'NE', 'Fort Wayne'), 568 | ('Kxaufunc', 'Nwqrezrwdqdc', 'AK', 'Augusta-Richmond County'), 569 | ('Ypu', 'Oqdbolyjtyadr', 'MI', 'Cincinnati'), 570 | ('Gjvcfpzdfyq', 'Wlolqyfslxi', 'NY', 'Anchorage'), 571 | ('Evxkr', 'Oclnuwwoldn', 'MO', 'Lubbock'), 572 | ('Jfcfyhmrqdxpo', 'Reetgwa', 'AS', 'Seattle'), 573 | ('Mqawhzjprzjf', 'Xnd', 'AR', 'Reno'), 574 | ('Oirjpqsp', 'Xgpqcgxv', 'VI', 'Grand Rapids'), 575 | ('Xxxgwoqpuj', 'Wohzernd', 'WA', 'Phoenix'), 576 | ('Zhwnhyyl', 'Lhxlcjzyvxli', 'TN', 'Little Rock'), 577 | ('Ebxmvovsti', 'Uviaukhfmms', 'OH', 'Mobile'), 578 | ('Wabmrjxswn', 'Tcazqjar', 'MT', 'Nashville-Davidson'), 579 | ('Jbmggrd', 'Aibyaf', 'OH', 'Chandler'), 580 | ('Ozvrd', 'Niffmcuopml', 'VT', 'Milwaukee'), 581 | ('Gqlawl', 'Mm', 'SD', 'Orlando'), 582 | ('Rdxgvxey', 'Qy', 'OK', 'Baltimore'), 583 | ('Tfodherpvsh', 'Qunghjkhra', 'MD', 'Oxnard'), 584 | ('Jvwp', 'Xcpqqywd', 'CT', 'Greensboro'), 585 | ('Bojkwvoheb', 'Brhwcohxtxkd', 'MO', 'Pittsburgh'), 586 | ('Qqgbvcffumk', 'Qigwqmbcltmej', 'MH', 'Overland Park'), 587 | ('Kdzk', 'Kkb', 'VA', 'Denver'), 588 | ('Hpgepkwzyr', 'Aqbkljt', 'ND', 'Fort Lauderdale'), 589 | ('Hrmhajsp', 'Fp', 'VI', 'Columbus'), 590 | ('Fbywrrqv', 'Yaulubqpyyx', 'WY', 'Modesto'), 591 | ('Aqqvpltwgxey', 'Prmvteod', 'MI', 'Rochester'), 592 | ('Vywfmotf', 'Wtap', 'CT', 'Des Moines'), 593 | ('Kskkhqc', 'Fquvfypxh', 'SC', 'Spokane'), 594 | ('Hjatoctvwcwu', 'Dmgj', 'OH', 'Port St. Lucie'), 595 | ('Ypiqyiee', 'Wotkfvpdxy', 'MS', 'Garland'), 596 | ('Acurxphxulzs', 'Oog', 'SC', 'Lincoln'), 597 | ('Fvfuxv', 'Rn', 'WY', 'Washington'), 598 | ('Yvuy', 'Wrpuc', 'MP', 'Scottsdale'), 599 | ('Ubenzrznys', 'Retbk', 'NC', 'Mesa'), 600 | ('Dctxe', 'Kemj', 'VI', 'Glendale'), 601 | ('Mntglu', 'Srlgt', 'TN', 'Denver'), 602 | ('Xra', 'Lxbsr', 'OK', 'Toledo'), 603 | ('Bxwswbgsrmfl', 'Ssa', 'MO', 'Fontana'), 604 | ('Czfwarxclp', 'Rytdo', 'CO', 'Tampa'), 605 | ('Nwdvxk', 'Fyhwchkwndbt', 'MD', 'Raleigh'), 606 | ('Fsmholtw', 'Ijsvdk', 'AK', 'Orlando'), 607 | ('Cdimqk', 'Cccwqlqq', 'WV', 'Garland'), 608 | ('Ntkvsdvu', 'Pcctsjwidjr', 'IA', 'Jackson'), 609 | ('Ueuolsk', 'Fonzhjtoqqn', 'TN', 'Vancouver'), 610 | ('Lndttjm', 'Kwncfeh', 'MA', 'Yonkers'), 611 | ('Tecjkx', 'Blctcwpe', 'VA', 'Atlanta'), 612 | ('Lasqvepxj', 'Ixphnjwtgxip', 'AL', 'Chattanooga'), 613 | ('Jxscngbawn', 'Fgbdbzeojt', 'NJ', 'Long Beach'), 614 | ('Czx', 'Mwltdmc', 'SC', 'Chula Vista'), 615 | ('Uqrk', 'Fkg', 'NC', 'Fort Lauderdale'), 616 | ('Pha', 'Utbwkruul', 'SD', 'Vancouver'), 617 | ('Srtbb', 'Bvapdyjh', 'MT', 'Albuquerque'), 618 | ('Jlcy', 'Uhtlxh', 'TX', 'Santa Rosa'), 619 | ('Szwuk', 'Rlwviacvcyj', 'MS', 'Akron'), 620 | ('Qh', 'Moimj', 'GA', 'Oklahoma City'), 621 | ('Dsfb', 'Xousyga', 'KY', 'Tempe'), 622 | ('Cllqozv', 'Echrct', 'VT', 'Milwaukee'), 623 | ('Rbpq', 'Obw', 'AZ', 'Oakland'), 624 | ('Noimrnx', 'Dtpcpyanpt', 'TN', 'Buffalo'), 625 | ('Ikejsifjtps', 'Fibknuxvwmdui', 'GU', 'Garland'), 626 | ('Zpxegdegvdo', 'Mthf', 'AL', 'Brownsville'), 627 | ('Rpfvgzmz', 'Frtomadgxsz', 'WY', 'Wichita'), 628 | ('Tpe', 'Xbtfsdjhmjbl', 'NM', 'Fremont'), 629 | ('Zmxufrgjfwu', 'Ubaryaajty', 'MI', 'El Paso'), 630 | ('Wjugjkgp', 'Amwsnkf', 'CT', 'Anchorage'), 631 | ('Vwskvjmpdtgki', 'Plkyfnxkxqkmi', 'WY', 'Fremont'), 632 | ('Acv', 'Fvv', 'TN', 'Houston'), 633 | ('Wmqdmxshyzv', 'Pmj', 'IA', 'Winston-Salem'), 634 | ('Iyrebgxkmn', 'Ocmbuokvjrm', 'OR', 'Rancho Cucamonga'), 635 | ('Snxhgwbojyilj', 'Jigegw', 'OK', 'Tempe'), 636 | ('Nqdtrjxigkw', 'Dclmh', 'IL', 'Des Moines'), 637 | ('Qbble', 'Jxct', 'KS', 'Durham'), 638 | ('Rwqyxczrfqm', 'Haggxojwxcup', 'SC', 'Yonkers'), 639 | ('Htelnpwvb', 'Jqk', 'AL', 'Akron'), 640 | ('Ncujxwrynsywf', 'Yjrughyvinjtt', 'SC', 'Columbus'), 641 | ('Nwqqkxhdygaye', 'Tvqnyu', 'MT', 'Boston'), 642 | ('Mrvpuebg', 'Byc', 'MT', 'Louisville/Jefferson County'), 643 | ('Ubmf', 'Tusxnaggee', 'MS', 'Huntington Beach'), 644 | ('Udawcgtn', 'Sudytasjdd', 'HI', 'Pittsburgh'), 645 | ('Zeccrfsn', 'Hfs', 'ID', 'Aurora'), 646 | ('Zrixtdq', 'Kivqr', 'NH', 'Montgomery'), 647 | ('Vpohn', 'Weyxmqye', 'CO', 'Providence'), 648 | ('Njx', 'Jwytedd', 'ID', 'Chandler'), 649 | ('Noa', 'Vcafqgeolhw', 'NH', 'Oceanside'), 650 | ('Dqaqegpcwg', 'Bodsrtdhhk', 'WA', 'Madison'), 651 | ('Mtbvm', 'Kgav', 'KS', 'Columbus'), 652 | ('Klcpkxyiv', 'Wtrlq', 'MI', 'Oceanside'), 653 | ('Erunc', 'Rbiwygxdwk', 'LA', 'Chicago'), 654 | ('Gouswfgoewb', 'Pmwvgvs', 'MI', 'Tulsa'), 655 | ('Xgc', 'Ehmyplzrgrzd', 'NJ', 'Austin'), 656 | ('Lezuxmcd', 'Fmbaoiajp', 'LA', 'Honolulu'), 657 | ('Pzrxtsjrnz', 'Jxvkonzyv', 'NM', 'Portland'), 658 | ('Zzpiru', 'Jkqyrmtbqsm', 'VI', 'Cincinnati'), 659 | ('Obvbcjfv', 'Pccs', 'WI', 'Worcester'), 660 | ('Xxwazu', 'Adtxlsqi', 'NE', 'Rancho Cucamonga'), 661 | ('Rfc', 'Szlfqmdhakaq', 'WV', 'Mesa'), 662 | ('Cxenb', 'Wbkskfos', 'PR', 'San Jose'), 663 | ('Fubpvvb', 'Vttltafg', 'AS', 'Baton Rouge'), 664 | ('Tjoczkebd', 'Ghkg', 'NJ', 'Spokane'), 665 | ('Fnplrrdfsh', 'Ex', 'RI', 'Memphis'), 666 | ('Uxuujklk', 'Zmnvqkqwzr', 'SC', 'Glendale'), 667 | ('Znozqsczm', 'Am', 'WV', 'Lincoln'), 668 | ('Fyybxkikxyuac', 'Dykzokzd', 'VA', 'Memphis'), 669 | ('Zvq', 'Mifhjaterodzo', 'GU', 'Brownsville'), 670 | ('Idkiugfcub', 'Atijs', 'DE', 'Houston'), 671 | ('Ifuafeox', 'Sfk', 'MH', 'St. Petersburg'), 672 | ('Mim', 'Ei', 'MN', 'Arlington'), 673 | ('Npdlz', 'Yaandqjgzmbgm', 'KS', 'Oxnard'), 674 | ('Aebkyb', 'Hbshtlwwx', 'ID', 'Henderson'), 675 | ('Ugg', 'Nqqvv', 'UT', 'Philadelphia'), 676 | ('Xwqnazvli', 'Dvuiaobepgq', 'AZ', 'Gilbert'), 677 | ('Mdhyb', 'Kwjtdppd', 'WV', 'Irvine'), 678 | ('Osjxtduzfcpyo', 'Jinzbk', 'WV', 'Houston'), 679 | ('Yzuow', 'Neexeeqkkw', 'MS', 'San Diego'), 680 | ('Ln', 'Grvgfeghdhgsj', 'FM', 'Providence'), 681 | ('Gjfsdcn', 'Ezkmjryr', 'NV', 'Tucson'), 682 | ('Cbbowtedrvmn', 'Czgcjyd', 'OK', 'Shreveport'), 683 | ('Fz', 'Ksaexshp', 'NC', 'Corpus Christi'), 684 | ('Cqwuho', 'Xeiqp', 'FL', 'Fort Worth'), 685 | ('Chmjtwbvfny', 'Kgaswti', 'ID', 'Nashville-Davidson'), 686 | ('Wf', 'Pdwkc', 'MT', 'Portland'), 687 | ('Lrlvuogbgdgs', 'Tskrkfu', 'KY', 'Corpus Christi'), 688 | ('Abiuhsuvh', 'Fzullcgxqhkyy', 'MN', 'North Las Vegas'), 689 | ('Lgatgfouy', 'Hplpgaketfoin', 'PA', 'Little Rock'), 690 | ('Gnlmnjzfkxks', 'Seudsccumx', 'GA', 'Chicago'), 691 | ('Rq', 'Gkegkzacxvxuh', 'DC', 'Los Angeles'), 692 | ('Rzdqpex', 'Gltjaynoosdw', 'GU', 'Wichita'), 693 | ('Ixpd', 'Jadedpwtlt', 'LA', 'Lubbock'), 694 | ('Gubeojdqlylne', 'Jxhz', 'MT', 'San Diego'), 695 | ('Cssb', 'Srnvykvfqvxrh', 'NJ', 'Oxnard'), 696 | ('Mounijch', 'Tpsmhwdsmttbk', 'MA', 'Santa Ana'), 697 | ('Gszwxryoizeu', 'Asyow', 'TX', 'Chula Vista'), 698 | ('Dtajsmsjiozbg', 'Ipbngkbortfu', 'KY', 'Seattle'), 699 | ('Drdmxbrfpj', 'Dtnda', 'MI', 'Bakersfield'), 700 | ('Twyi', 'Eqbcijcgtijsr', 'KY', 'Atlanta'), 701 | ('Ifqbwzlzcivam', 'Fjra', 'DE', 'Fresno'), 702 | ('Rcrkpvatoueox', 'Bai', 'GU', 'Scottsdale'), 703 | ('Jmbdihypu', 'Xzjyyst', 'NC', 'Lincoln'), 704 | ('Wofkxzxgo', 'Ejvrfsvlm', 'SD', 'Irvine'), 705 | ('Gikxcylbykj', 'Ucoyytvnai', 'ME', 'Akron'), 706 | ('Vftonsf', 'Cxrurqysarwmz', 'DC', 'New York'), 707 | ('Nbyivfbcpcw', 'Lozkxchuhgma', 'IA', 'Fayetteville'), 708 | ('Gfzhndikg', 'Ygec', 'CT', 'Oceanside'), 709 | ('Bzlsrydrbhhd', 'Brvckto', 'MH', 'Amarillo'), 710 | ('Nqiexiu', 'Zqizp', 'VT', 'San Jose'), 711 | ('Ouaiv', 'Whqw', 'WI', 'Santa Rosa'), 712 | ('Hgwawkq', 'Tpjyrtclzab', 'IL', 'Grand Prairie'), 713 | ('Qwklmimnelw', 'Kao', 'WI', 'Pittsburgh'), 714 | ('Czxfqbqixcxs', 'Ulslpmtaer', 'UT', 'Gilbert'), 715 | ('Il', 'Tseuwipohixxp', 'CT', 'Amarillo'), 716 | ('Qrjiyc', 'Ih', 'MD', 'Grand Rapids'), 717 | ('Nwahqjd', 'Mukdakgyaw', 'ME', 'Toledo'), 718 | ('Woojhdto', 'Sbpah', 'CO', 'Providence'), 719 | ('Of', 'Ugjmq', 'WA', 'Mobile'), 720 | ('Hgcbuvuniwiap', 'Kqqjhabcb', 'CT', 'Fort Lauderdale'), 721 | ('Pxudtxf', 'Gmhhv', 'AZ', 'Oklahoma City'), 722 | ('Mtcsuxaxkw', 'Rzk', 'KS', 'Louisville/Jefferson County'), 723 | ('Eplsnko', 'Dqcyp', 'MS', 'El Paso'), 724 | ('Hhfuvnmuus', 'Qy', 'LA', 'Charlotte'), 725 | ('Bsuxzit', 'Kmhs', 'SC', 'Oakland'), 726 | ('Xdggfxke', 'Smviuruzffxy', 'SC', 'Seattle'), 727 | ('Pfgwqf', 'Fcb', 'GU', 'Stockton'), 728 | ('Gtc', 'Veolsmtenoz', 'MN', 'Birmingham'), 729 | ('Zmwmcgntmaa', 'Gk', 'TX', 'Aurora'), 730 | ('Bf', 'Aay', 'MT', 'Pittsburgh'), 731 | ('Tkozxyncyfrfl', 'Zydndkap', 'NH', 'Dallas'), 732 | ('Mqhthjvmm', 'Ewwp', 'KS', 'Newark'), 733 | ('Daoffs', 'Bg', 'WI', 'San Jose'), 734 | ('Zbohjittadw', 'Plghl', 'IA', 'Garland'), 735 | ('Sfcelfzpqo', 'Dw', 'AR', 'Reno'), 736 | ('Aeco', 'Sg', 'HI', 'Santa Rosa'), 737 | ('Iridbq', 'Apsfwquas', 'TX', 'St. Louis'), 738 | ('Jztbdhtwpba', 'Fr', 'IN', 'Winston-Salem'), 739 | ('Mvjdtfly', 'Dkigptgpul', 'PA', 'El Paso'), 740 | ('Syjx', 'En', 'GA', 'Cincinnati'), 741 | ('Uovzmnh', 'Lbivwidbmpdk', 'AS', 'Louisville/Jefferson County'), 742 | ('Myneipsslktvm', 'Bzwhtjhlgw', 'WV', 'Cape Coral'), 743 | ('Lfqaoeouhpzz', 'Jdappeqq', 'DE', 'Lubbock'), 744 | ('Dd', 'Atjtw', 'IL', 'Oxnard'), 745 | ('Nkwbrkrxof', 'Mbbwiopcaurvx', 'MN', 'Kansas City'), 746 | ('Uwbj', 'Mvtcpnelwoiu', 'MN', 'Buffalo'), 747 | ('Wbt', 'Zzkr', 'IL', 'Portland'), 748 | ('Ytxocztwg', 'Ealfervois', 'OR', 'Rochester'), 749 | ('Vfvnx', 'Wrderrmoorvup', 'NV', 'Dallas'), 750 | ('Dxsnjan', 'Iizhtare', 'AL', 'Atlanta'), 751 | ('Aner', 'Vcwfj', 'ID', 'Oceanside'), 752 | ('Patvfohlml', 'Kwtd', 'PW', 'Cleveland'), 753 | ('Rphddj', 'Brzow', 'RI', 'Baltimore'), 754 | ('Muxclpbs', 'Pt', 'MI', 'Huntington Beach'), 755 | ('Cvzzjgwqhsm', 'Gcrufbkq', 'MO', 'Henderson'), 756 | ('Ljsjr', 'Rtielmdrnes', 'RI', 'Columbus'), 757 | ('Tfnumwsbwcea', 'Akxewmwrfelv', 'KS', 'Augusta-Richmond County'), 758 | ('Tqzoxs', 'Ucdn', 'WY', 'Port St. Lucie'), 759 | ('Xd', 'Wkinndizjc', 'OR', 'Santa Clarita'), 760 | ('Jkmwqfqxkaut', 'Opb', 'SD', 'Akron'), 761 | ('Juvrxlvl', 'Zqrlmjernrgjl', 'CO', 'Houston'), 762 | ('Vsljlwgew', 'Vyqqoavb', 'HI', 'St. Paul'), 763 | ('Ojrtxco', 'Mox', 'ID', 'San Diego'), 764 | ('Emkzy', 'Qszht', 'AL', 'Garland'), 765 | ('Acnczki', 'Relwdhnaiur', 'WV', 'Rochester'), 766 | ('Hgawsjq', 'Feqcidqydgprl', 'MP', 'Salt Lake City'), 767 | ('Lmqxf', 'Zjhnmhs', 'NY', 'Irving'), 768 | ('Pjndlaertqs', 'Vthrstecd', 'OH', 'Stockton'), 769 | ('Icyku', 'Fjb', 'VT', 'Chula Vista'), 770 | ('Qjmyucpat', 'Fyb', 'CO', 'Plano'), 771 | ('Rowho', 'Lmmkafu', 'DC', 'Tacoma'), 772 | ('Mxskfhevqvy', 'Hynqqjxlhdh', 'PW', 'Louisville/Jefferson County'), 773 | ('Jsanrcyvb', 'Dafxobjtocxqx', 'FL', 'Irving'), 774 | ('Qarbzqtifc', 'Enmtyfmlbfuu', 'LA', 'Vancouver'), 775 | ('Wzvoebjkexgo', 'Eqyrehggvsug', 'LA', 'Dallas'), 776 | ('Ckorcbtbvlril', 'Fj', 'FM', 'Fayetteville'), 777 | ('Xplsanwrmrjw', 'Ua', 'AR', 'Mobile'), 778 | ('Ixfbcjk', 'Ofn', 'VA', 'Plano'), 779 | ('Mljnobvjcejg', 'Jdnjxmrq', 'UT', 'Chattanooga'), 780 | ('Sbwoyrefcrv', 'Wuqzak', 'FL', 'Newark'), 781 | ('Dmrmecolqezc', 'Ccykmjduhsktz', 'UT', 'Birmingham'), 782 | ('Eutxiaccodgt', 'Nhr', 'IN', 'Milwaukee'), 783 | ('Xkg', 'Ydgxrh', 'TN', 'Lincoln'), 784 | ('Nbkbewikmmx', 'Vcvwxoneawg', 'PA', 'Jersey City'), 785 | ('Nzhguhq', 'Cqq', 'UT', 'Santa Clarita'), 786 | ('Jksgkioux', 'Klnfbhodbmqw', 'GA', 'Dallas'), 787 | ('Qw', 'Ra', 'VA', 'Grand Prairie'), 788 | ('Lnwwi', 'Riqd', 'NJ', 'Miami'), 789 | ('Yqrehhubzh', 'Waqtsrlxc', 'SC', 'Louisville/Jefferson County'), 790 | ('Fahvnfoop', 'Ebkgprcyyim', 'MT', 'Vancouver'), 791 | ('Bc', 'Rwlp', 'KY', 'Long Beach'), 792 | ('Dqw', 'Cszmfzvg', 'MP', 'Huntington Beach'), 793 | ('Askbhb', 'Srzxvlxgt', 'PR', 'Rancho Cucamonga'), 794 | ('Cznmyrrxffbp', 'Rxs', 'FM', 'Cape Coral'), 795 | ('Oar', 'Wj', 'GA', 'Boise City'), 796 | ('Lpsj', 'Sbqmrorho', 'DE', 'Raleigh'), 797 | ('Tifygfzo', 'Xmultbhxjs', 'MO', 'Nashville-Davidson'), 798 | ('Dmtgnrtexfd', 'Dulyjw', 'WA', 'Grand Prairie'), 799 | ('Nggawwybeiy', 'Plmvpt', 'AS', 'Cleveland'), 800 | ('Veusvewucld', 'Vnjjgecti', 'CO', 'Providence'), 801 | ('Oiwvzrbpzonrw', 'Mwt', 'TX', 'Anaheim'), 802 | ('Clcgkri', 'Qczfptlqf', 'MA', 'Nashville-Davidson'), 803 | ('Pcjfoevaho', 'Aevp', 'VA', 'Orlando'), 804 | ('Su', 'Stjltj', 'FM', 'Omaha'), 805 | ('Af', 'Ayyxafrmlbv', 'SD', 'San Antonio'), 806 | ('Uv', 'Ybfnlir', 'MN', 'Ontario'), 807 | ('Qkwlerl', 'Qfomyoa', 'MH', 'Laredo'), 808 | ('Vewyyzsnt', 'Jxhddhpabiv', 'MT', 'Santa Clarita'), 809 | ('Bfbsnaarsxy', 'Cbd', 'AS', 'Fontana'), 810 | ('Qf', 'Xzapjcypzmsxe', 'NY', 'Norfolk'), 811 | ('Ziqglojosee', 'Nafndxi', 'OK', 'Rochester'), 812 | ('Hsoyqopk', 'Xdp', 'AS', 'Austin'), 813 | ('Izndos', 'Oousckzh', 'MN', 'Port St. Lucie'), 814 | ('Xsh', 'Pfuqdjfyslexj', 'MS', 'Oklahoma City'), 815 | ('Qarjf', 'Qukykmyvr', 'OH', 'Anchorage'), 816 | ('Cdnepyejjbneq', 'Rquyhywkw', 'TN', 'Reno'), 817 | ('Uvlwyh', 'Dikf', 'OH', 'Garden Grove'), 818 | ('Doqwkpbdbeowc', 'Clhbb', 'IL', 'Oxnard'), 819 | ('Ogmvgccqkp', 'Mqkjnhiabrf', 'GA', 'Pittsburgh'), 820 | ('Nqssugxqx', 'Mvr', 'PR', 'Greensboro'), 821 | ('Beohobs', 'Mep', 'RI', 'Irvine'), 822 | ('Wkv', 'Vxas', 'WY', 'Bakersfield'), 823 | ('Pjauahoqjxyck', 'Yukfftqtv', 'HI', 'Norfolk'), 824 | ('Hihjmfcjchoyv', 'Ptwieesl', 'ID', 'Louisville/Jefferson County'), 825 | ('Wleihdykxtixy', 'Aazaf', 'PA', 'Colorado Springs'), 826 | ('Rjtcnp', 'Ghmdgga', 'ME', 'Baltimore'), 827 | ('Srrftyomdyafk', 'Wqtstajjw', 'NJ', 'Huntsville'), 828 | ('Hglmwkysbgynz', 'Gsj', 'AR', 'Fontana'), 829 | ('Jeclxw', 'Hepwjlofjj', 'GA', 'Columbus'), 830 | ('Daf', 'Scopgxgt', 'CT', 'Orlando'), 831 | ('Dtdolw', 'Sbbpoxgzhod', 'ME', 'Fayetteville'), 832 | ('Oeekloxlqk', 'Mlgyfpl', 'NY', 'Salt Lake City'), 833 | ('Fgkgpepvyja', 'Dgtsmrohac', 'MS', 'Boston'), 834 | ('Fhrsfbriv', 'Douvvyshdn', 'AS', 'Garland'), 835 | ('Mwxwhqftlxth', 'Feudpdsjv', 'MI', 'Fontana'), 836 | ('Ongnazayo', 'Swknxvrfoepur', 'SC', 'Dallas'), 837 | ('Vagn', 'Ssqbmoagh', 'NJ', 'San Bernardino'), 838 | ('Daelnljw', 'Feipgdlx', 'NM', 'Grand Rapids'), 839 | ('Fttzwkmwzgb', 'Revcvt', 'NH', 'Denver'), 840 | ('Lcaqqp', 'Osf', 'VA', 'Washington'), 841 | ('Jlmnhkotbvndc', 'Ht', 'KS', 'Oceanside'), 842 | ('Id', 'Mxrtbtcdnoqob', 'GU', 'Tulsa'), 843 | ('Lgolzs', 'Uhqwkn', 'NE', 'Rochester'), 844 | ('Ob', 'Wtikcl', 'IA', 'Fontana'), 845 | ('Zyazuc', 'Xquoawj', 'IA', 'Tampa'), 846 | ('Wwfwmjyr', 'Oeze', 'PR', 'San Antonio'), 847 | ('Qigcrrnv', 'Vyoogbq', 'MN', 'Plano'), 848 | ('Pghmbvphxqxlz', 'Lct', 'AR', 'Chula Vista'), 849 | ('Wnemybtm', 'Mumkyezaeeek', 'VA', 'Yonkers'), 850 | ('Ndhu', 'Srqluhkkyppzu', 'VT', 'Newark'), 851 | ('Ognmrs', 'Qsa', 'TX', 'Chula Vista'), 852 | ('Vloooqcrhi', 'Fxh', 'MN', 'Ontario'), 853 | ('Wtfafg', 'Stsycswq', 'MP', 'Grand Prairie'), 854 | ('Iralbynecfyg', 'Aiu', 'AS', 'Glendale'), 855 | ('Wzleoaws', 'Rcd', 'VI', 'Modesto'), 856 | ('Kuywlhdq', 'Nizmvx', 'VA', 'Oklahoma City'), 857 | ('Kxnvigbvnij', 'Paievx', 'DE', 'Philadelphia'), 858 | ('Vaagbvxhx', 'Eqltnif', 'MI', 'Grand Prairie'), 859 | ('Hfboxgrnclmw', 'Ybtging', 'OK', 'Huntsville'), 860 | ('Jvuzljiyp', 'Qk', 'SC', 'Plano'), 861 | ('Aehnjiks', 'Nbxlnaf', 'PR', 'Colorado Springs'), 862 | ('Xgfjisfld', 'Kcxphqsvlm', 'NE', 'Tulsa'), 863 | ('Gcqtpai', 'Qnyfsa', 'IA', 'Honolulu'), 864 | ('Kk', 'Rqwmpkepjx', 'KY', 'St. Paul'), 865 | ('Pc', 'Bgwarfw', 'RI', 'Scottsdale'), 866 | ('Wtny', 'Uvjpvq', 'PW', 'Austin'), 867 | ('Ktxlpehauf', 'Apfaxlnzxfyvr', 'CA', 'Santa Rosa'), 868 | ('Laesnfez', 'Mmfz', 'NC', 'Houston'), 869 | ('Jeqcslsai', 'Zynnawjzjyu', 'PR', 'Rochester'), 870 | ('Gkpnysh', 'Inpezfdxorj', 'MS', 'Louisville/Jefferson County'), 871 | ('Ccoxkahefj', 'Varfbz', 'AL', 'Vancouver'), 872 | ('Flnyrl', 'Dcbyvpvzs', 'WI', 'Washington'), 873 | ('Nrwv', 'Zwrllbzausv', 'SD', 'Detroit'), 874 | ('Jfwboeohaifoc', 'Xtcquqdzzkdi', 'NY', 'Santa Rosa'), 875 | ('Xmnvkpgzzaad', 'Hoeswqqwbeejx', 'PR', 'Baltimore'), 876 | ('Ed', 'Nomgfbhktiw', 'ME', 'Boston'), 877 | ('Xdxpxpku', 'Wwiz', 'TN', 'Jersey City'), 878 | ('Rgzoptb', 'Gwjxcrbiwe', 'VI', 'El Paso'), 879 | ('Ca', 'Gnjzgecp', 'GU', 'Birmingham'), 880 | ('Lalpjoibqspmo', 'Wldzwkqzzqgoc', 'NV', 'Baltimore'), 881 | ('Eevh', 'Zwgwrnzfwqqr', 'HI', 'San Jose'), 882 | ('Lvxnhbatqyp', 'Zobahsbgdpxa', 'ND', 'Portland'), 883 | ('Xeh', 'Allk', 'NH', 'Birmingham'), 884 | ('Mhuisldbdxss', 'Ijimbwkghqnf', 'AR', 'Dallas'), 885 | ('Zwgksqh', 'Gjktzlza', 'UT', 'Yonkers'), 886 | ('Cgj', 'Lha', 'MA', 'Virginia Beach'), 887 | ('Cnxb', 'Aqozgn', 'MP', 'Baltimore'), 888 | ('Gblbntks', 'Dw', 'MO', 'Lubbock'), 889 | ('Uybyuq', 'Hxeqfsn', 'AR', 'Rancho Cucamonga'), 890 | ('Vqkkywypblblk', 'Ybkeqjsqsk', 'IN', 'Wichita'), 891 | ('Ru', 'Mzilvff', 'ME', 'Scottsdale'), 892 | ('Unyphydaca', 'Brs', 'FL', 'Tampa'), 893 | ('Dxubrhqfniijf', 'Pjlagzzyaeg', 'MN', 'Glendale'), 894 | ('Ngegikdlfmvcy', 'Jxgxoqqmsgpx', 'NJ', 'Jacksonville'), 895 | ('Orjy', 'Qieootnsgyoh', 'MS', 'Newark'), 896 | ('Culrsxmpt', 'Oumoqnacaj', 'WA', 'Des Moines'), 897 | ('Jt', 'Irhahk', 'CT', 'Charlotte'), 898 | ('Ihaiac', 'Thbimex', 'TX', 'Miami'), 899 | ('Gyimmat', 'Qocnynjjieq', 'NM', 'Tacoma'), 900 | ('Bndgvoplpmvrx', 'Rhgofmtyx', 'UT', 'New Orleans'), 901 | ('Ucz', 'Qlte', 'MP', 'Oklahoma City'), 902 | ('Cfbnskzwpjqts', 'Patv', 'WA', 'Grand Prairie'), 903 | ('Mhlwlfepmhzat', 'Dpmclfgtm', 'MN', 'St. Paul'), 904 | ('Pqsiqwxrz', 'Hoggf', 'HI', 'Omaha'), 905 | ('Yzdtxexecfxqo', 'Mjzmu', 'UT', 'Garden Grove'), 906 | ('Lkfmkbfbf', 'Juyiscseceq', 'AL', 'Milwaukee'), 907 | ('Viut', 'Ofiozcq', 'WY', 'Huntsville'), 908 | ('Vvte', 'Maszmxif', 'CT', 'Rancho Cucamonga'), 909 | ('Hvoea', 'Fiircjwyz', 'MD', 'Fort Worth'), 910 | ('Hspgmzzabhm', 'Cuzdbcidtdsmg', 'DE', 'Laredo'), 911 | ('Orfmxljvcz', 'Uvy', 'MT', 'Vancouver'), 912 | ('Rkhilupapnu', 'Cgkezdlcd', 'PA', 'Vancouver'), 913 | ('Czdg', 'Dreomyzvt', 'SD', 'Wichita'), 914 | ('Xjcmwrkrqzfo', 'Qrlqnteumxbi', 'LA', 'Anaheim'), 915 | ('Rja', 'Gkfxagzdaoaq', 'DE', 'Honolulu'), 916 | ('Mvnugvyea', 'Imwy', 'NC', 'Hialeah'), 917 | ('Mpvhtb', 'If', 'GU', 'Tempe'), 918 | ('Vae', 'Fh', 'MP', 'Pittsburgh'), 919 | ('Wjtjprmq', 'Jrjaczbixlfw', 'MT', 'New Orleans'), 920 | ('Faerzrb', 'Cvo', 'AL', 'Glendale'), 921 | ('Dmhctcrqfpkgf', 'Tnuflofbc', 'CO', 'St. Paul'), 922 | ('Eqwdd', 'Yyhlqzar', 'WV', 'Anchorage'), 923 | ('Mynajgoezz', 'Zyuqljixpx', 'TN', 'Boston'), 924 | ('Hvzyacou', 'Sbnmgktpwoa', 'CA', 'Bakersfield'), 925 | ('Qtx', 'Lkobaixgasygn', 'FL', 'Colorado Springs'), 926 | ('Inyv', 'Eoiapjdvskcpn', 'NE', 'Glendale'), 927 | ('Ijoq', 'Wlzgsgaybyef', 'WY', 'Tacoma'), 928 | ('Ff', 'Obm', 'KS', 'Vancouver'), 929 | ('Jn', 'Xswrpzxepf', 'AR', 'Henderson'), 930 | ('Da', 'Rzgvzfsm', 'GU', 'Indianapolis'), 931 | ('Nmpck', 'Rfotxjidmydxa', 'MH', 'Irvine'), 932 | ('Dxcheoijwdd', 'Ypz', 'FM', 'Santa Rosa'), 933 | ('Wyrjk', 'Qfnx', 'FL', 'Memphis'), 934 | ('Ylp', 'Lvsvwo', 'VI', 'Portland'), 935 | ('Ebbshrolyi', 'Rfofux', 'VT', 'Spokane'), 936 | ('Ghkamtwciufl', 'Lclihb', 'MO', 'Salt Lake City'), 937 | ('Tls', 'Fe', 'MA', 'Fayetteville'), 938 | ('Gppecwzcwrk', 'Bybbkcmwhnfs', 'VI', 'Denver'), 939 | ('Lar', 'Mulnddg', 'MN', 'Santa Ana'), 940 | ('Xomjhgyaalq', 'Rwpopvk', 'NM', 'Philadelphia'), 941 | ('Esklfl', 'Bdgherp', 'NJ', 'Santa Clarita'), 942 | ('Jmhlmnidje', 'Liffbyimsa', 'NM', 'Dallas'), 943 | ('Ugyhc', 'Gtjza', 'GU', 'New Orleans'), 944 | ('Smhgzyq', 'Fpilorry', 'AR', 'Dallas'), 945 | ('Zowbrta', 'Fvhyfswnabi', 'DE', 'Tampa'), 946 | ('Opcwl', 'Zpoyqlx', 'MH', 'Fremont'), 947 | ('Czqpcq', 'Wabby', 'KY', 'St. Louis'), 948 | ('Pjmlwscufimwo', 'Cqechhxuxlbty', 'MO', 'St. Louis'), 949 | ('Tvy', 'Nnvmxizptdnc', 'ID', 'Omaha'), 950 | ('Tejyesuqdgj', 'Ptjyrarrntt', 'TN', 'Albuquerque'), 951 | ('Whmtuinlp', 'Sdfhw', 'AR', 'Chula Vista'), 952 | ('Ffgddgecg', 'Ks', 'PA', 'Chattanooga'), 953 | ('Mv', 'Nbdgzfgl', 'PA', 'Worcester'), 954 | ('Reqchptugcc', 'Sqxmout', 'ND', 'Santa Clarita'), 955 | ('Nlwulch', 'Fndwhp', 'RI', 'Reno'), 956 | ('Xcuoig', 'Bunitpkmimwyi', 'IL', 'Santa Rosa'), 957 | ('Fvgytnqpcyqyz', 'Obpnmaulmruqn', 'CA', 'Amarillo'), 958 | ('Qanjzy', 'Cvwszrggltdb', 'AS', 'Mobile'), 959 | ('Sphit', 'Ygttjvzyjeqm', 'LA', 'Fort Wayne'), 960 | ('Kogbxiowx', 'Cggvhgodl', 'MP', 'Huntsville'), 961 | ('Azvpcn', 'Sfxwd', 'OK', 'Raleigh'), 962 | ('Cp', 'Ajfnrdvicjvcr', 'WV', 'Tucson'), 963 | ('Ccu', 'Kfrg', 'HI', 'Knoxville'), 964 | ('Nhiiebcmoh', 'Kku', 'MD', 'Lincoln'), 965 | ('Peeecjukfhv', 'Iaapdnyaendfh', 'IA', 'Augusta-Richmond County'), 966 | ('Vlyupehfk', 'Xdhuxr', 'DE', 'Madison'), 967 | ('Mhtepvjn', 'Ec', 'KY', 'Fayetteville'), 968 | ('Fogpez', 'Lfibxjo', 'PW', 'Fayetteville'), 969 | ('Myqbhacgnulnb', 'Hborw', 'RI', 'Fayetteville'), 970 | ('Sg', 'Ttikbfalcmxq', 'NM', 'Chula Vista'), 971 | ('Ulfuwodyd', 'Cvnq', 'LA', 'Colorado Springs'), 972 | ('Lnrnyob', 'Yzgtewrepb', 'OK', 'Tacoma'), 973 | ('Cmzruabgkrb', 'Bunlrzmzwejjt', 'NV', 'Yonkers'), 974 | ('Vvkv', 'Lrtdwcafeob', 'AS', 'Washington'), 975 | ('Zqasdw', 'Dqxxgzoe', 'OH', 'Memphis'), 976 | ('Bz', 'Ccxnn', 'IL', 'Chesapeake'), 977 | ('Gljjyhggoq', 'Wpvnsjf', 'PW', 'Nashville-Davidson'), 978 | ('Hrgeneihdaykg', 'Uzhzuskmos', 'CT', 'New Orleans'), 979 | ('Ovoyp', 'Axmrq', 'MS', 'Anchorage'), 980 | ('Sryflbzlimrxd', 'Bpvchcptxjiug', 'AL', 'New York'), 981 | ('Yg', 'Cfnamvxxe', 'PW', 'San Bernardino'), 982 | ('Tzhoxxtrealxg', 'Xigqiuvztrepl', 'MI', 'Grand Prairie'), 983 | ('Iq', 'Hrsa', 'OK', 'Houston'), 984 | ('Okfgsnhqr', 'Alzu', 'NJ', 'Shreveport'), 985 | ('Wfdtiuvae', 'Xuyhgbvjoc', 'NH', 'Honolulu'), 986 | ('Jjsbv', 'Ipw', 'GA', 'Henderson'), 987 | ('Izx', 'Xv', 'AZ', 'Fort Worth'), 988 | ('Opeckqjbwol', 'Rsaxckainhl', 'DE', 'Yonkers'), 989 | ('Oqn', 'Yzqp', 'WV', 'New Orleans'), 990 | ('Iq', 'Vxcoqxi', 'LA', 'Lincoln'), 991 | ('Zozdj', 'Qgfkxeud', 'SC', 'Aurora'), 992 | ('Ajfdbsmrzgunc', 'Mdvkojopskcxm', 'LA', 'Greensboro'), 993 | ('Tpvzk', 'Omsmiguoma', 'NV', 'Colorado Springs'), 994 | ('Bh', 'Yaetqfgqku', 'PR', 'Huntington Beach'), 995 | ('Lvq', 'Yaqibvaih', 'GA', 'Birmingham'), 996 | ('Sb', 'Qdqinmku', 'PW', 'Buffalo'), 997 | ('Av', 'Xnok', 'IA', 'El Paso'), 998 | ('Futvgs', 'Cebdd', 'VI', 'Oklahoma City'), 999 | ('Mtunei', 'Dprpfv', 'NC', 'Laredo'), 1000 | ('Bzevbvkc', 'Batoosz', 'RI', 'Garland'), 1001 | ('Nsbrqwyn', 'Taieghpgxg', 'MN', 'Portland') 1002 | ---- ITEMS ---- 1003 | ('Ej'), 1004 | ('Gdnarqwnojq'), 1005 | ('Wysrzgnvxeyoi'), 1006 | ('Ztkfysyz'), 1007 | ('Ricmfg'), 1008 | ('Zafjrypqyywt'), 1009 | ('Tordokvmgphr'), 1010 | ('Yiwnldvndda'), 1011 | ('Epupqdbgya'), 1012 | ('Dxbwgzhex'), 1013 | ('Gqjlz'), 1014 | ('Hmhcipmsv'), 1015 | ('Iophkxshy'), 1016 | ('Pkdrllimvdt'), 1017 | ('Br'), 1018 | ('Dg'), 1019 | ('Dxugv'), 1020 | ('Xxxeemxtdfs'), 1021 | ('Xidrn'), 1022 | ('Ot'), 1023 | ('Qnlicgib'), 1024 | ('Spjejzmz'), 1025 | ('Orfzxui'), 1026 | ('Dbiruqs'), 1027 | ('Gbsumybqllnmt'), 1028 | ('Dbabzvhastx'), 1029 | ('Dgmdzskwz'), 1030 | ('Acxu'), 1031 | ('Pshednuvr'), 1032 | ('Fveenxo'), 1033 | ('Qzrxp'), 1034 | ('Qn'), 1035 | ('Otszmupi'), 1036 | ('Xhkerjixge'), 1037 | ('Xzatm'), 1038 | ('Dplqiiqgo'), 1039 | ('Qncfksz'), 1040 | ('Mlhklafbtrsv'), 1041 | ('Glvmpomub'), 1042 | ('Tjseut'), 1043 | ('Rd'), 1044 | ('Iwdsuklssu'), 1045 | ('Fspplydotlofh'), 1046 | ('Oxanvwsxv'), 1047 | ('Cikyhofzhsgq'), 1048 | ('Snjhibjsxsqu'), 1049 | ('Buarxfjjtlq'), 1050 | ('Vodequavwrjbf'), 1051 | ('Tvjwtpigx'), 1052 | ('Zvsmzeezgya'), 1053 | ('Nkrfgaoiafqse'), 1054 | ('Oh'), 1055 | ('Zofbyn'), 1056 | ('Digvii'), 1057 | ('Lzarbaaoreot'), 1058 | ('Qeqtydpcz'), 1059 | ('Cqrjrxkk'), 1060 | ('Zukjkc'), 1061 | ('Vvjyhtxw'), 1062 | ('Byathl'), 1063 | ('Fbpnm'), 1064 | ('Ccosowqbvlz'), 1065 | ('Flma'), 1066 | ('Lv'), 1067 | ('Qfkbhdhghbwkp'), 1068 | ('Vjrmbilr'), 1069 | ('Shwiqzhsenv'), 1070 | ('Svemmrnhydxm'), 1071 | ('Smvfrm'), 1072 | ('Pylzauvjpxnk'), 1073 | ('Ashcqdnnipyfz'), 1074 | ('Uiotuzd'), 1075 | ('Rxhkpsqty'), 1076 | ('Cfoiqay'), 1077 | ('Bo'), 1078 | ('Xkbtghtxbnuuq'), 1079 | ('Ltcf'), 1080 | ('Acdaowivoe'), 1081 | ('Oghwl'), 1082 | ('Mossk'), 1083 | ('Nunleshvfcbk'), 1084 | ('Lzqpawnvg'), 1085 | ('Yxgnibs'), 1086 | ('Av'), 1087 | ('Fvm'), 1088 | ('Piueytazwvx'), 1089 | ('Fwk'), 1090 | ('Jhmlrlkrxjh'), 1091 | ('Wjkyjfkbomcq'), 1092 | ('Zpcrnsp'), 1093 | ('Vgbldyrgtabcf'), 1094 | ('Pu'), 1095 | ('Rypzdotvcur'), 1096 | ('Iqx'), 1097 | ('Cckvjf'), 1098 | ('Be'), 1099 | ('Qsvzkf'), 1100 | ('Gppjxv'), 1101 | ('Hl'), 1102 | ('Izzrtrlux'), 1103 | ('Zfnfh'), 1104 | ('Ig'), 1105 | ('Tazehqrs'), 1106 | ('Fxmau'), 1107 | ('Lohkgttsyy'), 1108 | ('Irptuiysocdv'), 1109 | ('Tbawymui'), 1110 | ('Bpe'), 1111 | ('Nrxic'), 1112 | ('Asdyuixdq'), 1113 | ('Qkzqimforhge'), 1114 | ('Rsmdsy'), 1115 | ('Fcrlfcve'), 1116 | ('Dpkkiqcdidebm'), 1117 | ('Yzyjapnrg'), 1118 | ('Jjmvohc'), 1119 | ('Ezpgvsl'), 1120 | ('Kstdubs'), 1121 | ('Kkrcp'), 1122 | ('Dhb'), 1123 | ('Sp'), 1124 | ('Rb'), 1125 | ('Qeolpewscni'), 1126 | ('Wjhmvypkpcmtk'), 1127 | ('Jiwbcjpm'), 1128 | ('Flrcvrzyjkgl'), 1129 | ('Votyrnxuhpklw'), 1130 | ('Eqadhec'), 1131 | ('Zxqscdbcvuvo'), 1132 | ('Klkgh'), 1133 | ('Pbljdbzroy'), 1134 | ('Nenouazmaxa'), 1135 | ('Psazurszrryin'), 1136 | ('Ccutonwbzibm'), 1137 | ('Ijqdb'), 1138 | ('Tyqvm'), 1139 | ('Cylp'), 1140 | ('Tpnexuxgrglb'), 1141 | ('Kaxbmnblyyge'), 1142 | ('Povoijmrvdycg'), 1143 | ('Xcdgirft'), 1144 | ('Dcf'), 1145 | ('Yayfdr'), 1146 | ('Kcblmcorvz'), 1147 | ('Cwbbxpkppkugn'), 1148 | ('Xg'), 1149 | ('Bsta'), 1150 | ('Gitrpd'), 1151 | ('Tmpwfgzo'), 1152 | ('Sundkz'), 1153 | ('Yf'), 1154 | ('Efhrti'), 1155 | ('Cuhr'), 1156 | ('Drycahccd'), 1157 | ('Nowgcl'), 1158 | ('Hxavhdqds'), 1159 | ('Fuyzyvlzn'), 1160 | ('Atlurnxi'), 1161 | ('Bgncoxtow'), 1162 | ('Kglqmpzmcfz'), 1163 | ('Qmb'), 1164 | ('Gyyjodasziv'), 1165 | ('Cxf'), 1166 | ('Gryeemqrv'), 1167 | ('Okbfjm'), 1168 | ('Emkftepqhwfjy'), 1169 | ('Janufo'), 1170 | ('Lblstknz'), 1171 | ('Ickmy'), 1172 | ('Avgivlq'), 1173 | ('Sr'), 1174 | ('Zhyjjexgqaph'), 1175 | ('Xyt'), 1176 | ('Miqcraffqexz'), 1177 | ('Watpbjaqdbwtx'), 1178 | ('Xabeshlowuf'), 1179 | ('Dv'), 1180 | ('Mgbfgd'), 1181 | ('Jnpmvuk'), 1182 | ('Zpqys'), 1183 | ('Hixxqzxyws'), 1184 | ('Shvulefq'), 1185 | ('Zikocpjr'), 1186 | ('Uknbw'), 1187 | ('Apngrrpr'), 1188 | ('Puqtnoxjdfi'), 1189 | ('Pcy'), 1190 | ('Vpv'), 1191 | ('Dvl'), 1192 | ('Bvrgig'), 1193 | ('Cfsgapkkcczbn'), 1194 | ('Urc'), 1195 | ('Amraaompy'), 1196 | ('Liavj'), 1197 | ('Syxczhhh'), 1198 | ('Ikhlubnwaa'), 1199 | ('Is'), 1200 | ('Rm'), 1201 | ('Immv'), 1202 | ('Ercdwfozjfzx'), 1203 | ('Wo'), 1204 | ('Ijydzusyhtb'), 1205 | ('Zzud'), 1206 | ('Zicctny'), 1207 | ('Bcuzxwke'), 1208 | ('Filcimkgejy'), 1209 | ('Drckrykpmrevw'), 1210 | ('Cyettc'), 1211 | ('Gcglmvtthors'), 1212 | ('Zkxef'), 1213 | ('Wmilj'), 1214 | ('Fatogp'), 1215 | ('Iwoahocawgkef'), 1216 | ('Dpiyw'), 1217 | ('Imjxay'), 1218 | ('Yxqjzc'), 1219 | ('Xmm'), 1220 | ('Cnqjcskzgovye'), 1221 | ('Aotc'), 1222 | ('Oqeuot'), 1223 | ('Pjadnwyo'), 1224 | ('Xnix'), 1225 | ('Okv'), 1226 | ('Jdhwraraxvai'), 1227 | ('Uufifxipyzo'), 1228 | ('Mx'), 1229 | ('Zrfz'), 1230 | ('Cjugpc'), 1231 | ('Idx'), 1232 | ('Zxegqpf'), 1233 | ('Jel'), 1234 | ('Hlritod'), 1235 | ('Eppkqntto'), 1236 | ('Kpxcwxjdyz'), 1237 | ('Mnahui'), 1238 | ('Gfiklngnigfly'), 1239 | ('Mqb'), 1240 | ('Qcddeelwdev'), 1241 | ('Yijpnajjnzb'), 1242 | ('An'), 1243 | ('Vfynxh'), 1244 | ('Yaunkn'), 1245 | ('Lbenramjv'), 1246 | ('Mcs'), 1247 | ('Xecjc'), 1248 | ('Outzque'), 1249 | ('Ndtsiq'), 1250 | ('Shadoqwymnois'), 1251 | ('Xsveu'), 1252 | ('Lvhmvcpreqca'), 1253 | ('Foms'), 1254 | ('Zhpcaf'), 1255 | ('Mhgpkbnjclvww'), 1256 | ('Chuvfnwvab'), 1257 | ('Unv'), 1258 | ('Rsbbzfbvb'), 1259 | ('Sezhvhtrzmj'), 1260 | ('Fyeyacvif'), 1261 | ('Uddpxyos'), 1262 | ('Msco'), 1263 | ('Swbzh'), 1264 | ('Zyvrj'), 1265 | ('Nue'), 1266 | ('Tnywwosn'), 1267 | ('Jdmragitkczvc'), 1268 | ('Rhevxshho'), 1269 | ('Xaajhtj'), 1270 | ('Kfxhkzyce'), 1271 | ('Wqih'), 1272 | ('Afrzwrmk'), 1273 | ('Xowg'), 1274 | ('Zwrwkmu'), 1275 | ('Svacxlnnlczw'), 1276 | ('Ttnsakzm'), 1277 | ('Fnceoxrem'), 1278 | ('Pxvvvnwgwnbh'), 1279 | ('Zytgsoxr'), 1280 | ('Tqecxwoioszj'), 1281 | ('Tsxgb'), 1282 | ('Pxgw'), 1283 | ('Ldjatqattf'), 1284 | ('Xufourb'), 1285 | ('Lc'), 1286 | ('Yitbgufzhhtm'), 1287 | ('Yg'), 1288 | ('Fhhipmmcl'), 1289 | ('Yqseexcq'), 1290 | ('Lggbgkksq'), 1291 | ('Jwggwp'), 1292 | ('Nhhrzh'), 1293 | ('Yrjd'), 1294 | ('Vkpfhhyuipm'), 1295 | ('Dos'), 1296 | ('Acoaxtmppb'), 1297 | ('Nxty'), 1298 | ('Cuwlxrxatb'), 1299 | ('Bfphknwauacc'), 1300 | ('Ysec'), 1301 | ('Gwxybopwq'), 1302 | ('Kblxknkvlwq'), 1303 | ('Zoedzexfohu'), 1304 | ('Vdarncs'), 1305 | ('Klqhy'), 1306 | ('Hitprhbpwt'), 1307 | ('Zzqdsrcxmck'), 1308 | ('Kn'), 1309 | ('Ufcqztvmfddzx'), 1310 | ('Kfca'), 1311 | ('Cbykyaw'), 1312 | ('Eoufn'), 1313 | ('Lckadok'), 1314 | ('Tvlvzjq'), 1315 | ('Ddxkgdnd'), 1316 | ('Phv'), 1317 | ('Lpwrxsq'), 1318 | ('Kfjidkdfnlctj'), 1319 | ('Ntx'), 1320 | ('Jbypzbkvogcvv'), 1321 | ('Gutiup'), 1322 | ('Gelvfy'), 1323 | ('Zfqmlxlpt'), 1324 | ('Ooweucv'), 1325 | ('Hmephwwmyub'), 1326 | ('Suyw'), 1327 | ('Noq'), 1328 | ('Yl'), 1329 | ('Ls'), 1330 | ('Rrszdtvqng'), 1331 | ('Vraoytofok'), 1332 | ('Wcdpj'), 1333 | ('Kf'), 1334 | ('Gsbxan'), 1335 | ('Prdd'), 1336 | ('Mok'), 1337 | ('Oxwq'), 1338 | ('Nijwlgkaz'), 1339 | ('Yousrlqai'), 1340 | ('Uzo'), 1341 | ('Bocmxcr'), 1342 | ('Hhuktn'), 1343 | ('Hvwarwtizuar'), 1344 | ('Xxmdywxbtp'), 1345 | ('Raycbculi'), 1346 | ('Oqxcyhqnkhm'), 1347 | ('Clfnlexvfafx'), 1348 | ('Siaglzzzitfz'), 1349 | ('Pnsdcnldkzzlj'), 1350 | ('Gehnmfbwglit'), 1351 | ('Xjbrffh'), 1352 | ('Wdluqwczgkzw'), 1353 | ('Wgczntr'), 1354 | ('Uqdkk'), 1355 | ('Re'), 1356 | ('Zyimh'), 1357 | ('Rmt'), 1358 | ('Vcsvykjjskoll'), 1359 | ('Tuyeidgvw'), 1360 | ('Ivwztpxunf'), 1361 | ('Phmfi'), 1362 | ('Zgorgeu'), 1363 | ('Bjmfc'), 1364 | ('Hhfavsyvsxcq'), 1365 | ('Bo'), 1366 | ('Th'), 1367 | ('Esjcw'), 1368 | ('Htfl'), 1369 | ('Tchwmbzgkwo'), 1370 | ('Np'), 1371 | ('Hrgovnwqnndy'), 1372 | ('Vongwfqu'), 1373 | ('Iwiwlx'), 1374 | ('Bkbyzg'), 1375 | ('Xrgopiwrhyps'), 1376 | ('Bcv'), 1377 | ('Yugvzompwuhno'), 1378 | ('Pgnnqqqyv'), 1379 | ('Pqfdopfxjbi'), 1380 | ('Cvtyjtvfnj'), 1381 | ('Psgyanx'), 1382 | ('Wqmqh'), 1383 | ('Fcsjexeytzkzz'), 1384 | ('Sdqgis'), 1385 | ('Slmdrirmmxa'), 1386 | ('Tpvkhoxghpqq'), 1387 | ('Dkxpeodoqcz'), 1388 | ('Vnaklnu'), 1389 | ('Vcpaqrtgw'), 1390 | ('Oitasko'), 1391 | ('Tnzxat'), 1392 | ('Vkkny'), 1393 | ('Zdctypalsq'), 1394 | ('Ztlk'), 1395 | ('Muhrpr'), 1396 | ('Okqdxul'), 1397 | ('Vyzwxd'), 1398 | ('Xbrprnakrvqyo'), 1399 | ('Zlnvq'), 1400 | ('Rhk'), 1401 | ('Knc'), 1402 | ('Kt'), 1403 | ('Ofnrzkkwbr'), 1404 | ('Esaatiucogld'), 1405 | ('Dmxxkcv'), 1406 | ('Ceuihexgepj'), 1407 | ('Uuhggvl'), 1408 | ('Bkqmvdrt'), 1409 | ('Cpdcteakuuh'), 1410 | ('Myksrwxrizy'), 1411 | ('Vcduzoc'), 1412 | ('Ppsd'), 1413 | ('Kuaqfzihyh'), 1414 | ('Wfsfnmlwmy'), 1415 | ('Wiqa'), 1416 | ('Ivm'), 1417 | ('Zyirgznsuf'), 1418 | ('Dpewgoyobvql'), 1419 | ('Qdbtsaizr'), 1420 | ('Ksxv'), 1421 | ('Ubbcsrjb'), 1422 | ('Kzqpaltqbip'), 1423 | ('Aimjewgdls'), 1424 | ('Jwcuoxttuff'), 1425 | ('Ciffnn'), 1426 | ('Facakdlwk'), 1427 | ('Lavhvs'), 1428 | ('Lohiims'), 1429 | ('Wavuv'), 1430 | ('Weluoqpjjkw'), 1431 | ('Howfvg'), 1432 | ('Nanbvzwsl'), 1433 | ('Rbd'), 1434 | ('Jk'), 1435 | ('Xusgobtzbey'), 1436 | ('Ffnpvgczuc'), 1437 | ('Nqsbjzhz'), 1438 | ('Unqfjoctjygcs'), 1439 | ('Jlvdrhsvyaia'), 1440 | ('Advwapgw'), 1441 | ('Iscyybfcqnwcd'), 1442 | ('Dbqsv'), 1443 | ('Ihdmchiycbuu'), 1444 | ('Cktwmxix'), 1445 | ('Nkzlcwwwzile'), 1446 | ('Hcfoha'), 1447 | ('Bciyxwtxyshvv'), 1448 | ('Qcwwpbbgqciz'), 1449 | ('Uozppbejlq'), 1450 | ('Gfygjsiqstb'), 1451 | ('Whxsypkvqtp'), 1452 | ('Eisapvouzlq'), 1453 | ('Fqteqspfwu'), 1454 | ('Pwolc'), 1455 | ('Pscq'), 1456 | ('Absqtkko'), 1457 | ('Nw'), 1458 | ('Shin'), 1459 | ('Pevgibxpr'), 1460 | ('Ykwmpnmnrlu'), 1461 | ('Kevqvr'), 1462 | ('Kpuh'), 1463 | ('Fh'), 1464 | ('Tnpuqecksoed'), 1465 | ('Mw'), 1466 | ('Pdmyzywuwibl'), 1467 | ('Kgkdiltg'), 1468 | ('Wchjifyrgizmu'), 1469 | ('Hvvzuzdyto'), 1470 | ('Hicpdacsrcf'), 1471 | ('Ykzysyp'), 1472 | ('Maxep'), 1473 | ('Jyhjdmbhtqoe'), 1474 | ('Bfodfjzitw'), 1475 | ('Irftuyngszccw'), 1476 | ('Ccowoudknvw'), 1477 | ('Jts'), 1478 | ('Igb'), 1479 | ('Ihkqwr'), 1480 | ('Dorhaqvfnpihb'), 1481 | ('Fstaxqnzhsmra'), 1482 | ('Luxlzqrstgf'), 1483 | ('Dwna'), 1484 | ('Wppkuqqruxss'), 1485 | ('Gch'), 1486 | ('Gbibtitef'), 1487 | ('Seel'), 1488 | ('Awutmx'), 1489 | ('Gzrktumwwesi'), 1490 | ('Vkqbtar'), 1491 | ('Qbsxtrqc'), 1492 | ('Tdqhqbkkmbult'), 1493 | ('Byfomrn'), 1494 | ('Oifntknntk'), 1495 | ('Uyqb'), 1496 | ('Qi'), 1497 | ('Jnzsjfk'), 1498 | ('Tcdcaq'), 1499 | ('Ssrtwnfrcmqj'), 1500 | ('Huuintnagh'), 1501 | ('Cppr'), 1502 | ('Cywwz'), 1503 | ('Adxrjwox'), 1504 | ('Box'), 1505 | ('Bpawifkze'), 1506 | ('Jdzzj'), 1507 | ('Aqvnud'), 1508 | ('Hveutdhtoeq'), 1509 | ('Puzxudqkbqln'), 1510 | ('Qsivxlsft'), 1511 | ('Bwduploy'), 1512 | ('Arkpryzaadmcq'), 1513 | ('Rbmlzpioormd'), 1514 | ('Yl'), 1515 | ('Ibbzoobvtxkzf'), 1516 | ('Wjxdzr'), 1517 | ('Ftnl'), 1518 | ('Ckgjcxmdf'), 1519 | ('Yl'), 1520 | ('Txcgrbgloe'), 1521 | ('Bplloqbmbe'), 1522 | ('Efg'), 1523 | ('Yom'), 1524 | ('Wzntuoycf'), 1525 | ('Aeglkvev'), 1526 | ('Zaxik'), 1527 | ('Ktxxdabe'), 1528 | ('Gfdansuxhj'), 1529 | ('Bohxudppjp'), 1530 | ('Wiqlzbk'), 1531 | ('Wwzjflye'), 1532 | ('Kbnzmde'), 1533 | ('Zuyi'), 1534 | ('Ucb'), 1535 | ('Vsw'), 1536 | ('Jglnueadgphf'), 1537 | ('Auiismjskiis'), 1538 | ('Iruxrsoxdoy'), 1539 | ('Ndyu'), 1540 | ('Tqwkl'), 1541 | ('Gzhueljsp'), 1542 | ('Qowjphy'), 1543 | ('Dlh'), 1544 | ('Lrtjwzpdfdytq'), 1545 | ('Rvsjvtwkue'), 1546 | ('Ekbshmqtcaxv'), 1547 | ('Dw'), 1548 | ('Xaxjtoeflmo'), 1549 | ('Hctvywz'), 1550 | ('Bpcvhyvujbsix'), 1551 | ('Aliiwkzgvifaa'), 1552 | ('Oqddhl'), 1553 | ('Uhirrip'), 1554 | ('Ogw'), 1555 | ('Orhoshqrnbkim'), 1556 | ('Uzae'), 1557 | ('Eizaphxgxtz'), 1558 | ('Nciphvmjniwf'), 1559 | ('Akoc'), 1560 | ('Nflrdsxzdp'), 1561 | ('Qsnk'), 1562 | ('Brsw'), 1563 | ('Joqoyytref'), 1564 | ('Qhs'), 1565 | ('Sjn'), 1566 | ('Pqej'), 1567 | ('Ctki'), 1568 | ('Wbf'), 1569 | ('Xiqwzmr'), 1570 | ('Crevpli'), 1571 | ('Oclm'), 1572 | ('Ofurfbomck'), 1573 | ('Ryjklmue'), 1574 | ('Bxjwznrotpj'), 1575 | ('Pmyhrrj'), 1576 | ('Hbpeklaonnq'), 1577 | ('Yoj'), 1578 | ('Utuuvohjz'), 1579 | ('Zsz'), 1580 | ('Bgwbwqbnxvraw'), 1581 | ('Daeswqzchtsyt'), 1582 | ('Se'), 1583 | ('Cemfqzll'), 1584 | ('Abjspgykil'), 1585 | ('Ybwtaiml'), 1586 | ('Ebuszynbhvk'), 1587 | ('Ksucwzxkoroa'), 1588 | ('Palfl'), 1589 | ('Vuopm'), 1590 | ('Nqokemvbnrul'), 1591 | ('Ianybzuv'), 1592 | ('Nujhowdvnairk'), 1593 | ('Xeycdsy'), 1594 | ('Oxkygtatf'), 1595 | ('Xujk'), 1596 | ('Vaxqt'), 1597 | ('Afswifmw'), 1598 | ('Nldcrnvl'), 1599 | ('Axhubxqtrki'), 1600 | ('Thft'), 1601 | ('Vgnno'), 1602 | ('Eetsq'), 1603 | ('Akg'), 1604 | ('Dsljypsgglch'), 1605 | ('Rdrsmoociwym'), 1606 | ('Vtmowk'), 1607 | ('Pnfizgcbqkzt'), 1608 | ('Penptgzyyqq'), 1609 | ('Bn'), 1610 | ('Erqphaxis'), 1611 | ('Aerhmploq'), 1612 | ('Tffjf'), 1613 | ('Bwpch'), 1614 | ('Gbzvld'), 1615 | ('Ih'), 1616 | ('Ogisfcuxrzh'), 1617 | ('Fs'), 1618 | ('Yyxigksbpycl'), 1619 | ('Ylpxbgtnqwcb'), 1620 | ('Dyfeakyw'), 1621 | ('Pfobuqleonol'), 1622 | ('Juwwryxxh'), 1623 | ('Ddbnqyyrzk'), 1624 | ('Xusaeagvtslrb'), 1625 | ('Gebqpkrjhbgh'), 1626 | ('Fqwhiwbidxzt'), 1627 | ('Diwc'), 1628 | ('Potzlhvklt'), 1629 | ('Lckeybxqwlk'), 1630 | ('Tizvuegtovwk'), 1631 | ('Fpvwhusmcqw'), 1632 | ('Zy'), 1633 | ('Ucgcqahcuakls'), 1634 | ('Wxrxuout'), 1635 | ('Lorbplt'), 1636 | ('Oalecfg'), 1637 | ('Boufv'), 1638 | ('Vthp'), 1639 | ('Tzipztmjf'), 1640 | ('Qc'), 1641 | ('Bdnd'), 1642 | ('Dmhcdvye'), 1643 | ('Uqbkrtvgmhlrm'), 1644 | ('Xhmxur'), 1645 | ('Yrsnoo'), 1646 | ('Ggssxykmh'), 1647 | ('Xfcqjn'), 1648 | ('Mmueizgnp'), 1649 | ('Fxzqdxjdcqyu'), 1650 | ('Wrubxzqrzgc'), 1651 | ('Vihfzxbg'), 1652 | ('Glqbnczmt'), 1653 | ('Hkyaxrdsn'), 1654 | ('Ui'), 1655 | ('Aqx'), 1656 | ('Pstzuu'), 1657 | ('Mh'), 1658 | ('Vvgklvp'), 1659 | ('Vijvx'), 1660 | ('Xckpnr'), 1661 | ('Rameqmynwssih'), 1662 | ('Paz'), 1663 | ('Yr'), 1664 | ('Zhdbmeyjmhu'), 1665 | ('Ehlblgoc'), 1666 | ('Vnzvs'), 1667 | ('Dxkbyzgub'), 1668 | ('Nvrxc'), 1669 | ('Uftwlconlfns'), 1670 | ('Tebviglymworu'), 1671 | ('Lolodha'), 1672 | ('Kccakubelgegl'), 1673 | ('Xrvxp'), 1674 | ('Vgmuwsds'), 1675 | ('Paoesxbmvrsa'), 1676 | ('Azwojsdhhjvoy'), 1677 | ('Yllbnttynpp'), 1678 | ('Qufrntlmvorc'), 1679 | ('Tydfclr'), 1680 | ('Bsui'), 1681 | ('Zxtqoazb'), 1682 | ('Julaoqkazp'), 1683 | ('Nfnghzmciseg'), 1684 | ('Cwfjjeg'), 1685 | ('Nyqkohvbsgxya'), 1686 | ('Pxfbqllzmqf'), 1687 | ('Byzljpgxi'), 1688 | ('Hqbrkiivqlf'), 1689 | ('Sj'), 1690 | ('Ufowtqeuhwaw'), 1691 | ('Efeqtjmkqzu'), 1692 | ('Omw'), 1693 | ('Gmmgerxmaicu'), 1694 | ('Ldyesnfqbxcb'), 1695 | ('Ihrz'), 1696 | ('Ylowbkcoh'), 1697 | ('Bwzj'), 1698 | ('Uapqjkvc'), 1699 | ('Zyutwvookadn'), 1700 | ('Abqybkxfuxwq'), 1701 | ('Nhrcmhjrkxgl'), 1702 | ('Gwidv'), 1703 | ('Ozjulxjilx'), 1704 | ('Vtzwfs'), 1705 | ('Cnsieqj'), 1706 | ('Czgkrxoqiuwht'), 1707 | ('Djdaqshrv'), 1708 | ('Zgvghz'), 1709 | ('Umzatjixf'), 1710 | ('Jttfte'), 1711 | ('Tpbumduhm'), 1712 | ('Iibxsx'), 1713 | ('Sujd'), 1714 | ('Jvwkf'), 1715 | ('Gyqgzyakrqif'), 1716 | ('Gnjdbpsnr'), 1717 | ('Yvrvmrbuqy'), 1718 | ('Jiotbs'), 1719 | ('Cgmzvvnvyamq'), 1720 | ('Avgwprae'), 1721 | ('Stpzbub'), 1722 | ('Cu'), 1723 | ('Tcgpjk'), 1724 | ('Asujhkv'), 1725 | ('Fjielitsg'), 1726 | ('Ptlgvknb'), 1727 | ('Qobiadd'), 1728 | ('Fzyzerhpg'), 1729 | ('Kahanzn'), 1730 | ('Aazgaeadac'), 1731 | ('Dbvymo'), 1732 | ('Kjdwscgcnmv'), 1733 | ('Xwp'), 1734 | ('Zchm'), 1735 | ('Sgkmfzcutj'), 1736 | ('Nkkcucxxl'), 1737 | ('Bdsh'), 1738 | ('Mpylgpc'), 1739 | ('Twwaj'), 1740 | ('Xxkvcek'), 1741 | ('Qkqdk'), 1742 | ('Vmgzbti'), 1743 | ('Lom'), 1744 | ('Aboq'), 1745 | ('Fann'), 1746 | ('Nqoamtazdomfq'), 1747 | ('Pxrwapbszzmgt'), 1748 | ('Qne'), 1749 | ('Mbxgvbfyed'), 1750 | ('Vxmfbjki'), 1751 | ('Stxfed'), 1752 | ('Rqhd'), 1753 | ('Qhpv'), 1754 | ('Tawhc'), 1755 | ('Rgrq'), 1756 | ('Xgksvnaqv'), 1757 | ('Pycdq'), 1758 | ('Ivitmuljvmd'), 1759 | ('Shu'), 1760 | ('Oymaou'), 1761 | ('Pkualovrspcye'), 1762 | ('Tvqxgbf'), 1763 | ('Gerxcuz'), 1764 | ('Senwmkctz'), 1765 | ('Ifxxsdne'), 1766 | ('Epg'), 1767 | ('Egcabnd'), 1768 | ('Tiomgnp'), 1769 | ('Kkoljeyus'), 1770 | ('Flyxudjkswknw'), 1771 | ('Swrviuqqt'), 1772 | ('Atrb'), 1773 | ('Frp'), 1774 | ('Astx'), 1775 | ('Zlgcyonuyb'), 1776 | ('Wpcutwmvkkjt'), 1777 | ('Cm'), 1778 | ('Looisbck'), 1779 | ('Afvbvv'), 1780 | ('Qk'), 1781 | ('Rolbbnmj'), 1782 | ('Vlile'), 1783 | ('Vjujjwyz'), 1784 | ('Dd'), 1785 | ('Dieazr'), 1786 | ('Yqxnyqdri'), 1787 | ('Yqjlwhtk'), 1788 | ('Iwavugouy'), 1789 | ('Gbcnpwrttdv'), 1790 | ('Wu'), 1791 | ('Jbqpbmvix'), 1792 | ('Tpiwymyqavfrc'), 1793 | ('Gbsnvgujztiv'), 1794 | ('Gttacdtawqts'), 1795 | ('Xufgp'), 1796 | ('Gpeydqown'), 1797 | ('Joc'), 1798 | ('Tjchdobo'), 1799 | ('Fryaogz'), 1800 | ('Kjmtrjpbx'), 1801 | ('Vjaeiw'), 1802 | ('Puvnvdujondtd'), 1803 | ('Oleawqn'), 1804 | ('Ft'), 1805 | ('Ikasv'), 1806 | ('Iwweehtbseo'), 1807 | ('Lrsxsixg'), 1808 | ('Ddqwsobs'), 1809 | ('Glyuwulpoyf'), 1810 | ('Qkcelrxefz'), 1811 | ('Bui'), 1812 | ('Uona'), 1813 | ('Asz'), 1814 | ('Vz'), 1815 | ('Mhgiflv'), 1816 | ('Tugyc'), 1817 | ('At'), 1818 | ('Ujvsxn'), 1819 | ('Ra'), 1820 | ('Gwmhs'), 1821 | ('Kpphgrzvgr'), 1822 | ('Zldhogn'), 1823 | ('Pglt'), 1824 | ('Dooowien'), 1825 | ('Vgietjegr'), 1826 | ('Kvwqq'), 1827 | ('Wcsqlzjlu'), 1828 | ('Zopljulamrla'), 1829 | ('Sjmdq'), 1830 | ('Gncv'), 1831 | ('Yadfnypnjtkam'), 1832 | ('Ikne'), 1833 | ('Lr'), 1834 | ('Lcgkcsjmzetv'), 1835 | ('Twckckym'), 1836 | ('Nce'), 1837 | ('Rjjy'), 1838 | ('Vameobegrv'), 1839 | ('Rqsockcopa'), 1840 | ('Viu'), 1841 | ('Eiwkgbfe'), 1842 | ('Gtq'), 1843 | ('Rotfklkatw'), 1844 | ('Yfnycyspwmh'), 1845 | ('Mdyuxessofw'), 1846 | ('Yffvwoxibmak'), 1847 | ('Wu'), 1848 | ('Rzkgjlev'), 1849 | ('Ddcqyd'), 1850 | ('Zdeq'), 1851 | ('Scyhnqhzwaty'), 1852 | ('Orlmpmvspum'), 1853 | ('Gvdgsbtdhbu'), 1854 | ('Uoyemzytgu'), 1855 | ('Wlsbyvrwobd'), 1856 | ('Dsb'), 1857 | ('Ubfrc'), 1858 | ('Abwbtxeki'), 1859 | ('Rjateehzzh'), 1860 | ('Xml'), 1861 | ('Hkyaipa'), 1862 | ('Jukboebftv'), 1863 | ('Qj'), 1864 | ('Ooiwiiulgtcy'), 1865 | ('Blrcbmqibyut'), 1866 | ('Skzrqffojqhm'), 1867 | ('Jb'), 1868 | ('Xgrrbqhkddzmn'), 1869 | ('Pmyws'), 1870 | ('Lguzdoxrxcr'), 1871 | ('Nevq'), 1872 | ('Dmitya'), 1873 | ('Lgkcs'), 1874 | ('Hgfnyfir'), 1875 | ('Ryuwkrua'), 1876 | ('Lt'), 1877 | ('Fqrc'), 1878 | ('Pmkazhf'), 1879 | ('Obiqypcnbz'), 1880 | ('Mzfzm'), 1881 | ('Ihkmmcxon'), 1882 | ('Rh'), 1883 | ('Qvgew'), 1884 | ('Ldnx'), 1885 | ('Ozhdu'), 1886 | ('Pg'), 1887 | ('Mblbgoiwquf'), 1888 | ('Uehb'), 1889 | ('Sp'), 1890 | ('Pquojhwz'), 1891 | ('Nsyxhffujklya'), 1892 | ('Zbcjddlqvf'), 1893 | ('Nuticmesxh'), 1894 | ('Wqmo'), 1895 | ('Ugfmw'), 1896 | ('Efatsjyrkjq'), 1897 | ('Svqxmbgf'), 1898 | ('Uekrqqzhpyl'), 1899 | ('Xoiovscnmvqiv'), 1900 | ('Dhnqgxsxebkz'), 1901 | ('Wcmqqgwrtpzga'), 1902 | ('Lqlvc'), 1903 | ('Mfwfqvoj'), 1904 | ('Jhbdddhszzthg'), 1905 | ('Hyhnitey'), 1906 | ('Mlt'), 1907 | ('Ziskyql'), 1908 | ('Dw'), 1909 | ('Ovogcv'), 1910 | ('Ojnwzhfadjkta'), 1911 | ('Debvz'), 1912 | ('Vxmq'), 1913 | ('Gluvnb'), 1914 | ('Eafihcaa'), 1915 | ('Dirawcyhfullv'), 1916 | ('Lm'), 1917 | ('Oxuzmdghc'), 1918 | ('Vnsnkepwq'), 1919 | ('Ljqjlgq'), 1920 | ('Xtvaxcqyaq'), 1921 | ('Kpuppbtuxy'), 1922 | ('Paleirpg'), 1923 | ('Enfxubak'), 1924 | ('Cbdwkr'), 1925 | ('Mhasdtyux'), 1926 | ('Tqlri'), 1927 | ('Zorrernzbyp'), 1928 | ('Fqrwlamjbsia'), 1929 | ('Jrrwwksfbu'), 1930 | ('Oe'), 1931 | ('Txoyrhrzwmbdp'), 1932 | ('Tyvweckkkod'), 1933 | ('Vespoxomwb'), 1934 | ('Yutwnxf'), 1935 | ('Rldrbvuwekydj'), 1936 | ('Mqzpfqytly'), 1937 | ('Xganrb'), 1938 | ('Aizhpmzmnvc'), 1939 | ('Owfxvyyav'), 1940 | ('Huaozknhcumx'), 1941 | ('Xhyushu'), 1942 | ('Puesc'), 1943 | ('Moebdmpj'), 1944 | ('Thjfviofa'), 1945 | ('Xhe'), 1946 | ('Iottgo'), 1947 | ('Uppfzac'), 1948 | ('Av'), 1949 | ('Mictwawp'), 1950 | ('Mainekigjphlj'), 1951 | ('Shq'), 1952 | ('Iwjxqdv'), 1953 | ('Lqzwlhu'), 1954 | ('Qn'), 1955 | ('Mmsqyjnh'), 1956 | ('Jazirzofblzp'), 1957 | ('Nthrmnzkgu'), 1958 | ('Qbexnxmmd'), 1959 | ('Ofpcnxulgoqg'), 1960 | ('Sgd'), 1961 | ('Kvelggmf'), 1962 | ('Zxt'), 1963 | ('Qv'), 1964 | ('Qgcuvwajx'), 1965 | ('Odfqud'), 1966 | ('Hclnpmvefxqvr'), 1967 | ('Miypx'), 1968 | ('Rgrmegszo'), 1969 | ('Mnrtpcmygxr'), 1970 | ('Tvjfsafohpmj'), 1971 | ('Plzdlaxessgs'), 1972 | ('Jxaps'), 1973 | ('Mmmwm'), 1974 | ('Nseqoibkafprf'), 1975 | ('Tfm'), 1976 | ('Xoai'), 1977 | ('Nfomfcn'), 1978 | ('Og'), 1979 | ('Okgob'), 1980 | ('Htehjqv'), 1981 | ('Gdhadum'), 1982 | ('Skflr'), 1983 | ('Enum'), 1984 | ('Muqikssos'), 1985 | ('Veslpcel'), 1986 | ('Aziaupviiibyw'), 1987 | ('Tiiklt'), 1988 | ('Ykc'), 1989 | ('Nui'), 1990 | ('Zouswkfpslkl'), 1991 | ('Rsrmzgsiqi'), 1992 | ('Kwvezlatee'), 1993 | ('Qwtoc'), 1994 | ('Ssspnzbvzo'), 1995 | ('Oeudnulsfkx'), 1996 | ('Ngdbarbsv'), 1997 | ('Sxexrhehny'), 1998 | ('Qobjgsfwz'), 1999 | ('Ovvmmsivwwci'), 2000 | ('Bm'), 2001 | ('Ajeklhdj'), 2002 | ('Mvgdxeras') 2003 | ---- LISTS ---- 2004 | (42, 'Ys'), 2005 | (631, 'Orjrjcuofo'), 2006 | (852, 'Lavyfxsg'), 2007 | (847, 'Amyprsugxte'), 2008 | (320, 'Wg'), 2009 | (906, 'Mawucyvokruem'), 2010 | (29, 'Pvlmokeagg'), 2011 | (415, 'Hlnnmbeyzqj'), 2012 | (117, 'Oycgrteknti'), 2013 | (764, 'Mmewm'), 2014 | (376, 'Myhhbzay'), 2015 | (374, 'Iwtob'), 2016 | (280, 'Fspyj'), 2017 | (208, 'Oq'), 2018 | (696, 'Ijjem'), 2019 | (943, 'Aufjoywn'), 2020 | (442, 'Eejymtbyda'), 2021 | (577, 'Xztbx'), 2022 | (416, 'Nj'), 2023 | (894, 'Vzljbq'), 2024 | (389, 'Uknuoriesnp'), 2025 | (543, 'Nkemgppwv'), 2026 | (427, 'Yfrzf'), 2027 | (442, 'Pklmiisi'), 2028 | (78, 'Xafm'), 2029 | (237, 'Vebfnuzxyonkh'), 2030 | (541, 'Cbsnfcpvah'), 2031 | (81, 'Jwjonhxdih'), 2032 | (950, 'Mab'), 2033 | (203, 'Uoqigyngo'), 2034 | (120, 'Rfi'), 2035 | (303, 'Bkmsaotwxf'), 2036 | (403, 'Zzyqvig'), 2037 | (940, 'Pttmnmaikpm'), 2038 | (10, 'Bpz'), 2039 | (338, 'Cbzmjgx'), 2040 | (371, 'Xlasbksr'), 2041 | (899, 'Eiu'), 2042 | (938, 'Qwcgejnbkbtz'), 2043 | (304, 'Pgisjwn'), 2044 | (586, 'Qs'), 2045 | (94, 'Umgerblbguy'), 2046 | (514, 'Rove'), 2047 | (745, 'Diq'), 2048 | (440, 'Pxskrvbcqlrk'), 2049 | (524, 'Gawozaywo'), 2050 | (711, 'Hgr'), 2051 | (343, 'Scvruktdmyi'), 2052 | (422, 'Bblrmcb'), 2053 | (45, 'Miwfzshbzhz'), 2054 | (222, 'Beyl'), 2055 | (76, 'Zkpvsat'), 2056 | (954, 'Edsefwytz'), 2057 | (574, 'Egxizwd'), 2058 | (292, 'Pacsulxuu'), 2059 | (753, 'Xavqdeixvejc'), 2060 | (891, 'Qyxavhkm'), 2061 | (343, 'Bxjjqoxcwqh'), 2062 | (687, 'Vkzowylpm'), 2063 | (202, 'Zg'), 2064 | (288, 'Bacrf'), 2065 | (476, 'Rnvuekd'), 2066 | (584, 'Mo'), 2067 | (885, 'Tqbilutzikez'), 2068 | (956, 'Blfwtdjqq'), 2069 | (827, 'Euzrdejmoyw'), 2070 | (576, 'My'), 2071 | (428, 'Dcolwsddbw'), 2072 | (435, 'Xc'), 2073 | (308, 'Ugybpr'), 2074 | (913, 'Ozidmdjxw'), 2075 | (124, 'Hffso'), 2076 | (795, 'Drzbihyfhpz'), 2077 | (450, 'Peoykuzsxxf'), 2078 | (712, 'Fp'), 2079 | (917, 'Wwabslerao'), 2080 | (82, 'Csm'), 2081 | (441, 'Ygezgfuzu'), 2082 | (74, 'Dxdxpr'), 2083 | (737, 'Cypyflqh'), 2084 | (592, 'Wnkkbdos'), 2085 | (248, 'Aqxloukndjig'), 2086 | (517, 'Gzpfugh'), 2087 | (172, 'Htizievxdqqc'), 2088 | (544, 'Zqejbsapilieh'), 2089 | (210, 'Bxroekpjqeyjf'), 2090 | (715, 'Nevtwjsiptx'), 2091 | (134, 'Bjk'), 2092 | (796, 'Wsceffaca'), 2093 | (771, 'Ejmtqmzwybbv'), 2094 | (961, 'Qxr'), 2095 | (546, 'Zftksywsi'), 2096 | (892, 'Khluoy'), 2097 | (566, 'Kfvib'), 2098 | (233, 'Xn'), 2099 | (342, 'Uwnkbidebuqa'), 2100 | (858, 'Of'), 2101 | (62, 'Tqe'), 2102 | (776, 'Eypxyp'), 2103 | (506, 'Zfnujfu'), 2104 | (547, 'Uydokdbikabr'), 2105 | (367, 'Zkmlogzhwg'), 2106 | (976, 'Khap'), 2107 | (221, 'Nckw'), 2108 | (92, 'Ukxfcy'), 2109 | (700, 'Zow'), 2110 | (985, 'Pdmatmvmabcsn'), 2111 | (323, 'Isgopt'), 2112 | (950, 'Mjtykfu'), 2113 | (448, 'Kpqaia'), 2114 | (625, 'Aeiuwuwiydgyw'), 2115 | (66, 'Aviyjou'), 2116 | (789, 'Zqyyizcl'), 2117 | (910, 'Zjnmcb'), 2118 | (386, 'Jnnc'), 2119 | (761, 'Tch'), 2120 | (244, 'Wlkxmjd'), 2121 | (68, 'Zvlaufco'), 2122 | (313, 'Yttbktanlh'), 2123 | (38, 'Caabgbbcfh'), 2124 | (53, 'Tmtkyicsvqfl'), 2125 | (519, 'Pguj'), 2126 | (579, 'Eq'), 2127 | (138, 'Njxttmq'), 2128 | (692, 'Isiqk'), 2129 | (932, 'Jydukguaeq'), 2130 | (260, 'Uuwr'), 2131 | (981, 'Jbmtzyzluf'), 2132 | (371, 'Vlxiclb'), 2133 | (343, 'Pfrenhfmqxmpz'), 2134 | (765, 'Oemgcnwm'), 2135 | (630, 'Pselzxye'), 2136 | (708, 'Fqqsszo'), 2137 | (305, 'Edlawtqzd'), 2138 | (368, 'Zepzdkhludrv'), 2139 | (644, 'Fsmb'), 2140 | (260, 'Omubjevbjfz'), 2141 | (476, 'Cmcoofifxnkbg'), 2142 | (553, 'Youfujpfpf'), 2143 | (132, 'Ophwbjqgmzt'), 2144 | (300, 'Ijrdq'), 2145 | (195, 'Dezprq'), 2146 | (447, 'Kmu'), 2147 | (762, 'Svnacfjxjudx'), 2148 | (761, 'Wnxqkudrhv'), 2149 | (674, 'Fckdyp'), 2150 | (153, 'Bk'), 2151 | (991, 'Dfr'), 2152 | (583, 'Brwjsc'), 2153 | (486, 'Jtbhzkuy'), 2154 | (207, 'Doxxhvagulv'), 2155 | (544, 'Qcwutg'), 2156 | (598, 'Zaqkhnhg'), 2157 | (772, 'Kxxunicva'), 2158 | (211, 'Znlymsmb'), 2159 | (178, 'Ieno'), 2160 | (853, 'Ivpiqkk'), 2161 | (462, 'Dmzqz'), 2162 | (690, 'Vcvoykaw'), 2163 | (349, 'Wx'), 2164 | (838, 'Vfwlixl'), 2165 | (832, 'Nqmukiufzazq'), 2166 | (992, 'Sbxkdcq'), 2167 | (479, 'Uwycqvh'), 2168 | (431, 'Lbouevdopcyx'), 2169 | (256, 'Dsk'), 2170 | (187, 'Sluoeuyxbnsm'), 2171 | (979, 'Exuslvpd'), 2172 | (681, 'Iwh'), 2173 | (51, 'Hlel'), 2174 | (199, 'Qpejgmqr'), 2175 | (3, 'Nlsl'), 2176 | (959, 'Wnngl'), 2177 | (349, 'Rv'), 2178 | (881, 'Avpd'), 2179 | (32, 'Tvjfknaz'), 2180 | (199, 'Smuntvgyirnj'), 2181 | (311, 'Sbjfl'), 2182 | (637, 'Mzxcqtxvoxw'), 2183 | (668, 'Qo'), 2184 | (175, 'Kmxoppkxtl'), 2185 | (828, 'Vuiasdpbr'), 2186 | (576, 'Pwpy'), 2187 | (565, 'Dhzmgkych'), 2188 | (388, 'Tsdynkeec'), 2189 | (774, 'Exdtf'), 2190 | (831, 'Lidkzjeyyoa'), 2191 | (474, 'Nvfmpuzrdjwe'), 2192 | (660, 'Mqysseeivkwib'), 2193 | (782, 'Rdyqbpql'), 2194 | (830, 'Behqbmsrdhe'), 2195 | (155, 'Nv'), 2196 | (495, 'Tky'), 2197 | (605, 'Tvmmx'), 2198 | (352, 'Jujuv'), 2199 | (696, 'Oeynbrjvxzg'), 2200 | (892, 'Liihzucsxag'), 2201 | (808, 'Rosahjifsj'), 2202 | (424, 'Jlk'), 2203 | (973, 'Mdwpspqti'), 2204 | (621, 'Mcntlaidxdcbp'), 2205 | (828, 'Pwsa'), 2206 | (824, 'Wimpimpprlo'), 2207 | (928, 'Jjkubpdchxyf'), 2208 | (557, 'Liqrcmke'), 2209 | (854, 'Zxvhigibpyqt'), 2210 | (180, 'Cddxwbdepmguw'), 2211 | (945, 'Nmpple'), 2212 | (674, 'Gompr'), 2213 | (110, 'Ib'), 2214 | (354, 'Ssegtqbjhscyt'), 2215 | (706, 'Knyoyuqraj'), 2216 | (526, 'Oed'), 2217 | (553, 'Jtngyudtc'), 2218 | (543, 'Wflogeuhtkl'), 2219 | (960, 'Thejnxfxkiijp'), 2220 | (962, 'Ycaqe'), 2221 | (965, 'Fggolhl'), 2222 | (176, 'Mtnukosgtuak'), 2223 | (771, 'Yelsnlkitfni'), 2224 | (173, 'Zzcoxtvxs'), 2225 | (810, 'Qgtqzfoanqsqh'), 2226 | (156, 'Zajl'), 2227 | (17, 'Aewcuppdzo'), 2228 | (422, 'Ouhoa'), 2229 | (372, 'Zoqixjgyuccb'), 2230 | (17, 'Wfzz'), 2231 | (929, 'Oxmmgqhpdigl'), 2232 | (653, 'Yf'), 2233 | (62, 'Rrugmqtfxz'), 2234 | (952, 'Pepjdzlc'), 2235 | (239, 'Onvut'), 2236 | (367, 'Cfhsjhjpne'), 2237 | (307, 'Mbrjxywjq'), 2238 | (270, 'Wbygoghhyleq'), 2239 | (902, 'Brahbkils'), 2240 | (951, 'Tqpk'), 2241 | (350, 'Kcixm'), 2242 | (296, 'Omianvbq'), 2243 | (867, 'Wakzguiceyrvz'), 2244 | (847, 'Fhvlwjj'), 2245 | (907, 'Mlmokzdpwp'), 2246 | (668, 'Mjqtzqnwiwr'), 2247 | (253, 'Dsgpsuvvwauvt'), 2248 | (478, 'Kwh'), 2249 | (559, 'Edtcmpc'), 2250 | (687, 'Sjebylau'), 2251 | (493, 'Ceqkpxkspnvxx'), 2252 | (691, 'Dd'), 2253 | (933, 'Lgspdyfsoji'), 2254 | (903, 'Kmp'), 2255 | (810, 'Zzg'), 2256 | (817, 'Eapotaxn'), 2257 | (502, 'Ezelgdoa'), 2258 | (115, 'Bzzvzaj'), 2259 | (921, 'Qqbrx'), 2260 | (811, 'Ronp'), 2261 | (280, 'Zydflebpkgl'), 2262 | (109, 'Sruhtravp'), 2263 | (221, 'Yi'), 2264 | (817, 'Phfnmrn'), 2265 | (102, 'Hiqgyedt'), 2266 | (138, 'Hiaaxnmtmv'), 2267 | (777, 'Sql'), 2268 | (676, 'Gnuioaopm'), 2269 | (986, 'Leshaw'), 2270 | (398, 'Ckypfszvd'), 2271 | (282, 'Wloeuvptbogvg'), 2272 | (747, 'Bwnklrg'), 2273 | (866, 'Nt'), 2274 | (544, 'Xrjhzvrtjxi'), 2275 | (551, 'Kmquzl'), 2276 | (630, 'Hcq'), 2277 | (852, 'Ideoyhsgu'), 2278 | (963, 'Gxobc'), 2279 | (823, 'Fgvdzgrqlvpea'), 2280 | (79, 'Mulw'), 2281 | (807, 'Sejne'), 2282 | (918, 'Vx'), 2283 | (902, 'Ylxpq'), 2284 | (484, 'Tidhnaxskndd'), 2285 | (274, 'Nxeyfzbuwgc'), 2286 | (417, 'Ywzmqiacp'), 2287 | (771, 'Mxe'), 2288 | (107, 'Eefwuyqn'), 2289 | (404, 'Dsgpjiyu'), 2290 | (156, 'Eurevz'), 2291 | (633, 'Fwgflnccom'), 2292 | (349, 'Uejojjsl'), 2293 | (4, 'Wprpql'), 2294 | (566, 'Trmlbfwfx'), 2295 | (742, 'Ikiuqqhmqwbxp'), 2296 | (733, 'Arjxydv'), 2297 | (731, 'Kgooy'), 2298 | (821, 'Pvdlchkfqznna'), 2299 | (815, 'Rhq'), 2300 | (291, 'Ux'), 2301 | (762, 'Ltjbb'), 2302 | (374, 'Qmwxfetknis'), 2303 | (566, 'Cngxcqyjosl'), 2304 | (412, 'Jnewg'), 2305 | (864, 'Uerdcfdlpgqtj'), 2306 | (436, 'Dg'), 2307 | (787, 'Pxqgxelzlbd'), 2308 | (760, 'Ginkvikisp'), 2309 | (780, 'Uzohftz'), 2310 | (635, 'Nmrnsvlw'), 2311 | (758, 'Pltsqa'), 2312 | (731, 'Nbksdxaqumzzu'), 2313 | (97, 'Jetodc'), 2314 | (710, 'Rcagnswhwuny'), 2315 | (216, 'Ibzhanjhmwt'), 2316 | (205, 'Epjaqzaoofxw'), 2317 | (42, 'Iwzk'), 2318 | (151, 'Gwoqfuphwlbf'), 2319 | (165, 'Iajbvfl'), 2320 | (920, 'Ksu'), 2321 | (577, 'Cornxfxp'), 2322 | (678, 'Uftghj'), 2323 | (823, 'Fhr'), 2324 | (809, 'Wwnixeihnezr'), 2325 | (195, 'Uzeiq'), 2326 | (898, 'Tk'), 2327 | (284, 'Mjoxz'), 2328 | (524, 'Bnf'), 2329 | (906, 'Jic'), 2330 | (301, 'Kpbgkididfg'), 2331 | (920, 'Xcdesdjhxiiw'), 2332 | (963, 'Kdblwb'), 2333 | (682, 'Srff'), 2334 | (691, 'Plnknlhokv'), 2335 | (369, 'Hecvjt'), 2336 | (460, 'Wqicfjiudfcwx'), 2337 | (543, 'Rdwhloftqy'), 2338 | (118, 'Qqu'), 2339 | (996, 'Vtjfjctowt'), 2340 | (510, 'Xjlggtharks'), 2341 | (613, 'Sagzkbx'), 2342 | (723, 'Yvafskisld'), 2343 | (557, 'Xe'), 2344 | (423, 'Jmozgugrqu'), 2345 | (405, 'Hwwuhr'), 2346 | (911, 'Tliwxrplzkwu'), 2347 | (606, 'Qlp'), 2348 | (637, 'Tplutcsrgf'), 2349 | (453, 'Ga'), 2350 | (730, 'Ghnbmagugz'), 2351 | (396, 'Wuvbyf'), 2352 | (705, 'Wimoyvonbg'), 2353 | (649, 'Bob'), 2354 | (53, 'Hspgwlngzg'), 2355 | (841, 'Aqnsqiuqnazo'), 2356 | (46, 'Rf'), 2357 | (327, 'Vhbaupwb'), 2358 | (49, 'Zzksotzxyof'), 2359 | (909, 'Ediwqiquhxm'), 2360 | (979, 'Emuk'), 2361 | (245, 'Qdialn'), 2362 | (449, 'Vtc'), 2363 | (929, 'Xqbtyaxpsrhjf'), 2364 | (453, 'Cldpyaibejd'), 2365 | (374, 'Ezvrko'), 2366 | (84, 'Qtprqfj'), 2367 | (108, 'Ugjqdpfej'), 2368 | (323, 'Khdozy'), 2369 | (897, 'Djh'), 2370 | (455, 'Oxopgrqzb'), 2371 | (720, 'Lyenxqriyanj'), 2372 | (58, 'Utrgoo'), 2373 | (834, 'Bqqdfqaj'), 2374 | (872, 'Uobhkzdrqun'), 2375 | (380, 'Mjn'), 2376 | (839, 'Sbkiwvj'), 2377 | (775, 'Fhlilkxpxey'), 2378 | (77, 'Zjjjwwt'), 2379 | (713, 'Euycwrhmztsf'), 2380 | (145, 'Oepgdjub'), 2381 | (365, 'Av'), 2382 | (55, 'Or'), 2383 | (868, 'Bvdowqjq'), 2384 | (801, 'Dsnleycjs'), 2385 | (798, 'Etulne'), 2386 | (806, 'Xdoqh'), 2387 | (925, 'Pkbk'), 2388 | (781, 'Fgalggo'), 2389 | (964, 'Cnfecfbudg'), 2390 | (906, 'Nhu'), 2391 | (972, 'Hrtyuchf'), 2392 | (727, 'Yrupyjbpepa'), 2393 | (403, 'Nywetnlzhf'), 2394 | (183, 'Lsmjggfclqzlk'), 2395 | (228, 'Napqnjsqi'), 2396 | (713, 'Vjmmlhzwvp'), 2397 | (775, 'Fawyq'), 2398 | (88, 'Csuyl'), 2399 | (330, 'Osmc'), 2400 | (881, 'Iyse'), 2401 | (146, 'Fxpf'), 2402 | (439, 'Fikyaeohhs'), 2403 | (984, 'Vsluuwcxhs'), 2404 | (624, 'Eiobi'), 2405 | (956, 'Jvkhaxzodjd'), 2406 | (801, 'Ooro'), 2407 | (293, 'Mrqbgxj'), 2408 | (262, 'Yipnfifn'), 2409 | (439, 'Re'), 2410 | (486, 'Lcqippb'), 2411 | (817, 'Dc'), 2412 | (49, 'Lguvy'), 2413 | (588, 'Ilnz'), 2414 | (599, 'Zrr'), 2415 | (510, 'Oefm'), 2416 | (427, 'Xaupoeeema'), 2417 | (34, 'Xgnwyjxry'), 2418 | (345, 'Dgw'), 2419 | (22, 'Xhjiuhvawhv'), 2420 | (964, 'Fei'), 2421 | (872, 'Pvmkc'), 2422 | (205, 'Uickfijis'), 2423 | (761, 'Exeragsisqvn'), 2424 | (904, 'Bbne'), 2425 | (593, 'Nrmlmztlh'), 2426 | (666, 'Brwjmfupqubtl'), 2427 | (223, 'Liux'), 2428 | (287, 'Anhztp'), 2429 | (48, 'Qzurstoerxr'), 2430 | (965, 'Mtllhwfhg'), 2431 | (651, 'Hdtliujfv'), 2432 | (954, 'Tgkysyo'), 2433 | (647, 'Agb'), 2434 | (57, 'Suamuflase'), 2435 | (579, 'Iqrqtq'), 2436 | (520, 'Evyvqhv'), 2437 | (10, 'Tzjlmprsuxe'), 2438 | (581, 'Puafkgokqnky'), 2439 | (276, 'Dwatiofr'), 2440 | (185, 'Jai'), 2441 | (755, 'Ahmvqpykr'), 2442 | (294, 'Puwdqdedb'), 2443 | (567, 'Faq'), 2444 | (661, 'Mpflhmfcj'), 2445 | (262, 'Wh'), 2446 | (320, 'Sjsukbxtipaz'), 2447 | (683, 'Ytzofnx'), 2448 | (466, 'Clfwaosjndhl'), 2449 | (298, 'Qxwzzbcpb'), 2450 | (880, 'We'), 2451 | (978, 'Cet'), 2452 | (638, 'Mi'), 2453 | (567, 'Papefznils'), 2454 | (172, 'Ndwdemcpzb'), 2455 | (22, 'Qadgug'), 2456 | (256, 'Ysnhpqflcmwm'), 2457 | (839, 'Njy'), 2458 | (291, 'Iz'), 2459 | (460, 'Ufbiyds'), 2460 | (806, 'Lloakffnpktfc'), 2461 | (591, 'Dvxhl'), 2462 | (360, 'Ooki'), 2463 | (150, 'Xsdvbpshd'), 2464 | (552, 'Csd'), 2465 | (110, 'Rcp'), 2466 | (642, 'Pojvubhrzms'), 2467 | (187, 'Ikrmk'), 2468 | (643, 'Idu'), 2469 | (940, 'Ntxuqsnh'), 2470 | (824, 'Yutsjaqil'), 2471 | (218, 'Cvsmfvf'), 2472 | (976, 'Vyizrzw'), 2473 | (165, 'Mzhezsglrdgs'), 2474 | (831, 'Azwfikaelaydh'), 2475 | (443, 'Orwilxfoacxkh'), 2476 | (823, 'Lrnkagiqp'), 2477 | (210, 'Cgctwnqxm'), 2478 | (377, 'Vrvndrsrqzj'), 2479 | (765, 'Uqmwtfwetjyq'), 2480 | (161, 'Pq'), 2481 | (424, 'Oldrwgjwfyej'), 2482 | (453, 'Dnvnlgz'), 2483 | (138, 'Yyfi'), 2484 | (741, 'Ixnjlv'), 2485 | (54, 'Bpwxz'), 2486 | (149, 'Uwurghnzoa'), 2487 | (877, 'Usqtpivlmqprc'), 2488 | (838, 'Hzhrek'), 2489 | (817, 'Gokcjlawea'), 2490 | (743, 'Bo'), 2491 | (570, 'Oadbbikdhlzx'), 2492 | (422, 'Rh'), 2493 | (361, 'Fbqkgarrfwjvt'), 2494 | (922, 'Jpb'), 2495 | (565, 'Beoqybtg'), 2496 | (956, 'Nppclvmsxojkr'), 2497 | (557, 'Cpnosqlihqd'), 2498 | (684, 'Zrn'), 2499 | (171, 'Chbl'), 2500 | (113, 'Ccaavic'), 2501 | (985, 'Njvadxepuduc'), 2502 | (201, 'Bx'), 2503 | (643, 'Clsncq'), 2504 | (133, 'Jgxzxevk'), 2505 | (115, 'Zkiajuxjnodpa'), 2506 | (696, 'Sobejyv'), 2507 | (391, 'Xoqxrhyoat'), 2508 | (916, 'Znhvaixupoz'), 2509 | (37, 'Bydcevbeskuw'), 2510 | (804, 'Syecyclfdipf'), 2511 | (218, 'Rtxa'), 2512 | (654, 'Bnxybbv'), 2513 | (196, 'Mplj'), 2514 | (95, 'Tufng'), 2515 | (543, 'Ffj'), 2516 | (569, 'Tq'), 2517 | (483, 'Nzxfmkn'), 2518 | (626, 'Ypvpmhoe'), 2519 | (898, 'Nuuvjmlyyq'), 2520 | (835, 'Pk'), 2521 | (309, 'Wkiltbnebm'), 2522 | (550, 'Mqilqwxpcigm'), 2523 | (348, 'Xhzwo'), 2524 | (457, 'Sqcxduwyd'), 2525 | (570, 'Ahwqzndopo'), 2526 | (535, 'Xskztgmhwv'), 2527 | (161, 'Ridgr'), 2528 | (456, 'Dvoqrwxaestz'), 2529 | (166, 'Mfgaiyendpu'), 2530 | (794, 'Jvirzgkz'), 2531 | (845, 'Lrvjzw'), 2532 | (322, 'Afx'), 2533 | (420, 'Hgll'), 2534 | (751, 'Gncppiqclx'), 2535 | (257, 'Oepdeyq'), 2536 | (183, 'Cu'), 2537 | (8, 'Lvcyia'), 2538 | (643, 'Uhfinw'), 2539 | (717, 'Czinqw'), 2540 | (793, 'Rdmdggeb'), 2541 | (595, 'Jcvjvwgebe'), 2542 | (745, 'Rkgafsdxi'), 2543 | (76, 'Rlvkkthlueuv'), 2544 | (557, 'Qgpczytkm'), 2545 | (923, 'Jeyjynjoewch'), 2546 | (649, 'Poebhxwgfhcwj'), 2547 | (324, 'Pm'), 2548 | (573, 'Xcvscjns'), 2549 | (297, 'Qmenidcejqn'), 2550 | (405, 'Uvdqkb'), 2551 | (126, 'Dphmybpj'), 2552 | (987, 'Hcpfsxozhwp'), 2553 | (14, 'Xdtxbuu'), 2554 | (430, 'Oagv'), 2555 | (951, 'La'), 2556 | (810, 'Mvqolwfj'), 2557 | (595, 'Iyzq'), 2558 | (954, 'Njzligype'), 2559 | (366, 'Yqusam'), 2560 | (65, 'Wudystvkimeo'), 2561 | (409, 'Uwlsqz'), 2562 | (117, 'Pqpvgn'), 2563 | (452, 'Mcyectyobxgrk'), 2564 | (34, 'Zczaydp'), 2565 | (53, 'Nphnuuzka'), 2566 | (490, 'Kubrxwvirw'), 2567 | (751, 'Vs'), 2568 | (956, 'Mbsezhzjzy'), 2569 | (739, 'Hbzsqsy'), 2570 | (182, 'Wwzjfjvub'), 2571 | (880, 'Nfvu'), 2572 | (389, 'Dfqcetzev'), 2573 | (839, 'Qnqzbpsxf'), 2574 | (893, 'Iwi'), 2575 | (167, 'Nspi'), 2576 | (812, 'Nlbtvqhwbdn'), 2577 | (773, 'Vfwnaqbkkw'), 2578 | (468, 'Zjotl'), 2579 | (230, 'Yuklkovump'), 2580 | (289, 'Keuckuqbiav'), 2581 | (871, 'Lvzdt'), 2582 | (32, 'Yiu'), 2583 | (425, 'Ltkkhjdmmpgyi'), 2584 | (469, 'Fbbheftjygvk'), 2585 | (710, 'Hcyemtyh'), 2586 | (551, 'Ujvuvcmtsdfff'), 2587 | (127, 'Wyi'), 2588 | (612, 'Zwf'), 2589 | (426, 'Zsvrth'), 2590 | (909, 'Hpj'), 2591 | (285, 'Yn'), 2592 | (814, 'Drxmwvpxpfrcr'), 2593 | (434, 'Jelzlxiflliwm'), 2594 | (769, 'Eqlh'), 2595 | (827, 'Qcoiu'), 2596 | (749, 'Hjp'), 2597 | (691, 'Uboyvnet'), 2598 | (833, 'Poqnpblmzhogc'), 2599 | (695, 'Dvpxjnpytwj'), 2600 | (573, 'Euufanxktqp'), 2601 | (372, 'Nydgoiuhvm'), 2602 | (865, 'Aoajlbpqzejor'), 2603 | (106, 'Cgh'), 2604 | (906, 'Bkiygdy'), 2605 | (631, 'Lmoufgiieem'), 2606 | (377, 'Xh'), 2607 | (644, 'Lmgbjhxbtyu'), 2608 | (211, 'Oyamfr'), 2609 | (425, 'Ctpzia'), 2610 | (271, 'Bhk'), 2611 | (66, 'Xf'), 2612 | (884, 'Qsgh'), 2613 | (194, 'Usnaxsvp'), 2614 | (836, 'Nkyp'), 2615 | (126, 'Lkma'), 2616 | (119, 'Qr'), 2617 | (299, 'Zn'), 2618 | (395, 'Jkzlfmy'), 2619 | (963, 'Umx'), 2620 | (261, 'Tdwyqv'), 2621 | (272, 'Ybpuphsj'), 2622 | (372, 'Rmwwk'), 2623 | (915, 'Bcnscwugukgnh'), 2624 | (593, 'Cwzjqtgjo'), 2625 | (566, 'Kjat'), 2626 | (49, 'Crx'), 2627 | (371, 'Hclvmvcvbvqy'), 2628 | (673, 'Iuhxhavmqlvb'), 2629 | (441, 'Bgksbaovepz'), 2630 | (141, 'Xujspyucbbx'), 2631 | (485, 'Cv'), 2632 | (12, 'Wwwhu'), 2633 | (325, 'Rp'), 2634 | (619, 'Ksngvkf'), 2635 | (767, 'Fmmfhryyplnwa'), 2636 | (478, 'Izkzalxxf'), 2637 | (28, 'Lsiiqft'), 2638 | (3, 'Dyghzmpjtslsc'), 2639 | (92, 'Zntvzmvhwluxc'), 2640 | (811, 'Crofhvgfv'), 2641 | (203, 'Ghp'), 2642 | (276, 'Qmla'), 2643 | (723, 'Guujplkqtdhg'), 2644 | (844, 'Jwjw'), 2645 | (762, 'Zltdlgfzbysoo'), 2646 | (569, 'Bixzxjz'), 2647 | (336, 'Fvoiqyzpvflvz'), 2648 | (999, 'Swvuyamezrjs'), 2649 | (240, 'Rxwf'), 2650 | (761, 'Sxutrnx'), 2651 | (497, 'Shzuqfalqil'), 2652 | (46, 'Aekwcowe'), 2653 | (623, 'Uzvzadkpsuwd'), 2654 | (902, 'Vqp'), 2655 | (265, 'Tmijiqsdzp'), 2656 | (30, 'Mmmh'), 2657 | (207, 'Rleodqjukholc'), 2658 | (495, 'Tnopie'), 2659 | (630, 'Tugawnhcwva'), 2660 | (540, 'Ny'), 2661 | (552, 'Akdspngec'), 2662 | (277, 'Crkhzf'), 2663 | (298, 'Racugv'), 2664 | (287, 'Hmefotkvbmab'), 2665 | (82, 'Plbgacye'), 2666 | (166, 'Fvws'), 2667 | (112, 'Fwmcloejf'), 2668 | (225, 'Hxxkkdppld'), 2669 | (983, 'Ujjimmciy'), 2670 | (863, 'Pybnl'), 2671 | (995, 'Crwsl'), 2672 | (824, 'Lsxnveiv'), 2673 | (602, 'Xwctuqoox'), 2674 | (213, 'Tnsowgssgl'), 2675 | (348, 'Eriyxozdfattz'), 2676 | (980, 'Jhimhe'), 2677 | (435, 'Vdpfiiww'), 2678 | (734, 'Yzdj'), 2679 | (330, 'Hpmmeq'), 2680 | (685, 'Oyzzwijrk'), 2681 | (16, 'Nvwdaezm'), 2682 | (714, 'Pmk'), 2683 | (917, 'Endhybkmvkx'), 2684 | (624, 'Yuduzw'), 2685 | (220, 'Qqmngxzvkzg'), 2686 | (318, 'Ccxvrhms'), 2687 | (893, 'Des'), 2688 | (345, 'Bkjaovxum'), 2689 | (200, 'Dtcip'), 2690 | (674, 'Lkrspkpmo'), 2691 | (909, 'Cmut'), 2692 | (58, 'Ubhyrh'), 2693 | (21, 'Grteigkxl'), 2694 | (543, 'Msxiuvpha'), 2695 | (163, 'Jcqe'), 2696 | (995, 'Errau'), 2697 | (719, 'Fhg'), 2698 | (62, 'Wlzjyqvcop'), 2699 | (121, 'Onwa'), 2700 | (994, 'Iupjsrtmtwc'), 2701 | (168, 'Cfct'), 2702 | (311, 'Mmutcs'), 2703 | (962, 'Ufyfqoq'), 2704 | (137, 'Mdiucmemqvkur'), 2705 | (69, 'Camlpe'), 2706 | (123, 'Vpfruical'), 2707 | (433, 'Iqg'), 2708 | (371, 'Nnfiiracfhekn'), 2709 | (354, 'Dhfizxmok'), 2710 | (57, 'Pqhgt'), 2711 | (862, 'Omsimbbteunkg'), 2712 | (318, 'Rrcy'), 2713 | (13, 'Rypjtj'), 2714 | (293, 'Marvnidzb'), 2715 | (831, 'Irpbkmxkiso'), 2716 | (745, 'Cfrjhyg'), 2717 | (964, 'Uscmmmeotrqnl'), 2718 | (749, 'Splfn'), 2719 | (344, 'Bkkqqbn'), 2720 | (415, 'Pz'), 2721 | (436, 'Ldfhxcitatq'), 2722 | (653, 'Hr'), 2723 | (366, 'Kbddscwbrdr'), 2724 | (984, 'Zeiarwrhc'), 2725 | (514, 'Agrwvwmzrkr'), 2726 | (249, 'Iaxiutoiqkey'), 2727 | (280, 'Siwrjkekx'), 2728 | (570, 'Hbav'), 2729 | (676, 'Ozqmzomy'), 2730 | (50, 'Pzhknaversn'), 2731 | (662, 'Qt'), 2732 | (200, 'Dfpjiffob'), 2733 | (805, 'Amhc'), 2734 | (718, 'Fxbybebhaztx'), 2735 | (489, 'Yunv'), 2736 | (261, 'Pxlpalkath'), 2737 | (496, 'Ynomywwmk'), 2738 | (783, 'Nlmzawynf'), 2739 | (654, 'Svv'), 2740 | (933, 'Hgjtyakrfe'), 2741 | (222, 'Uq'), 2742 | (424, 'Erkzujft'), 2743 | (510, 'Kgvcxsxz'), 2744 | (958, 'Kdfyabbbsaih'), 2745 | (219, 'Ppgnso'), 2746 | (774, 'Uifzboohst'), 2747 | (128, 'Hhyvjsmbi'), 2748 | (917, 'Qxxcdtr'), 2749 | (10, 'Ckplvwj'), 2750 | (644, 'Twbekqycva'), 2751 | (893, 'Xnjzkfx'), 2752 | (777, 'Rgri'), 2753 | (979, 'Eoihwh'), 2754 | (623, 'Jbcuoyknn'), 2755 | (401, 'Hgc'), 2756 | (15, 'Falapdyb'), 2757 | (325, 'Ud'), 2758 | (784, 'Untjiuwum'), 2759 | (977, 'Ohbkig'), 2760 | (616, 'Drunelhruh'), 2761 | (131, 'Skohzjz'), 2762 | (562, 'Dsdfoa'), 2763 | (338, 'Ttou'), 2764 | (578, 'Wxuwuwyddkgz'), 2765 | (562, 'Bb'), 2766 | (52, 'Gss'), 2767 | (729, 'Uz'), 2768 | (795, 'Sngfnnbg'), 2769 | (553, 'Smbd'), 2770 | (494, 'Unvqjmo'), 2771 | (878, 'Zl'), 2772 | (877, 'Xqk'), 2773 | (187, 'Nus'), 2774 | (611, 'Elxzktgpkebiv'), 2775 | (847, 'Rqlfuyh'), 2776 | (451, 'Bksvida'), 2777 | (948, 'Bhb'), 2778 | (966, 'Pck'), 2779 | (816, 'Upmeqvqgogfzw'), 2780 | (247, 'Myhof'), 2781 | (220, 'Fqwiq'), 2782 | (281, 'Ih'), 2783 | (291, 'Yt'), 2784 | (652, 'Ztykvvjejwcgr'), 2785 | (818, 'Kt'), 2786 | (465, 'Zsimm'), 2787 | (710, 'Emjiyevbgze'), 2788 | (513, 'Kdsutnuksmpsc'), 2789 | (948, 'Gtfmqed'), 2790 | (68, 'Qzqjiulad'), 2791 | (275, 'Txbmszl'), 2792 | (648, 'Qejfti'), 2793 | (632, 'Okwro'), 2794 | (703, 'Anpel'), 2795 | (822, 'Wimcuzdtamr'), 2796 | (753, 'Mkcwpgdnbfkah'), 2797 | (698, 'Elfldm'), 2798 | (425, 'Asqtuh'), 2799 | (567, 'Yjaq'), 2800 | (480, 'Pclegrvhfoqp'), 2801 | (217, 'Zgwbw'), 2802 | (345, 'Xanmsidx'), 2803 | (247, 'Ukqbuj'), 2804 | (909, 'Gx'), 2805 | (635, 'Udffjs'), 2806 | (524, 'Sbrc'), 2807 | (319, 'Ohlikpyeu'), 2808 | (649, 'Pdahwolps'), 2809 | (989, 'Ehftezoo'), 2810 | (443, 'Xqbzzejtdrkz'), 2811 | (213, 'Axqt'), 2812 | (659, 'Wobeblbk'), 2813 | (807, 'Nylayujow'), 2814 | (828, 'Tm'), 2815 | (308, 'Eqdajzsbpfxl'), 2816 | (303, 'Eexr'), 2817 | (221, 'Yq'), 2818 | (643, 'Lbtqxozuw'), 2819 | (170, 'Tfulybeljf'), 2820 | (488, 'Dwo'), 2821 | (188, 'Igyeuhjwei'), 2822 | (468, 'Xpjadtksgrs'), 2823 | (29, 'Htkl'), 2824 | (333, 'Vmojiuymits'), 2825 | (249, 'Gieaw'), 2826 | (900, 'Sjzai'), 2827 | (133, 'Bhqlbwg'), 2828 | (359, 'Vgmwcpvgvd'), 2829 | (268, 'Twirimbzkp'), 2830 | (870, 'Piqr'), 2831 | (201, 'Kzxybsxehe'), 2832 | (391, 'Feoxmytmdnwm'), 2833 | (634, 'Gwde'), 2834 | (618, 'Facrjkt'), 2835 | (576, 'Awlrqc'), 2836 | (668, 'Ydzxgr'), 2837 | (811, 'Fwsvtzuu'), 2838 | (854, 'Ofxrs'), 2839 | (726, 'Mnbp'), 2840 | (373, 'Jls'), 2841 | (636, 'Emfprmvjmrx'), 2842 | (947, 'Nawykncswd'), 2843 | (345, 'Fsmze'), 2844 | (626, 'Gimmgeuhst'), 2845 | (718, 'Mjcmwjszo'), 2846 | (343, 'Myc'), 2847 | (712, 'Mkqkljv'), 2848 | (614, 'Fl'), 2849 | (841, 'Kh'), 2850 | (1, 'Tba'), 2851 | (296, 'Wahebhjrto'), 2852 | (971, 'Jdzugqeerx'), 2853 | (216, 'Mqtey'), 2854 | (754, 'Dvi'), 2855 | (735, 'Qk'), 2856 | (607, 'Kyrd'), 2857 | (860, 'Ohvlebllqzhrr'), 2858 | (969, 'Nc'), 2859 | (766, 'Kurqbhpzlzdo'), 2860 | (711, 'Jxriyrupxzs'), 2861 | (676, 'Jdoybgymqyf'), 2862 | (75, 'Xvvflfmxia'), 2863 | (823, 'Uvl'), 2864 | (522, 'Pxiuidzulrp'), 2865 | (857, 'Jocserzcl'), 2866 | (207, 'Jxdefqosivl'), 2867 | (704, 'Ryqbbf'), 2868 | (597, 'Lpbmbvm'), 2869 | (834, 'Riimbct'), 2870 | (716, 'Vhwoxkfgpsxvs'), 2871 | (806, 'Ocsiw'), 2872 | (367, 'Vdpvwulkttc'), 2873 | (636, 'Fijpkbrhoqwg'), 2874 | (208, 'Oxqm'), 2875 | (798, 'Qsnefflqdfws'), 2876 | (752, 'Pduxbchkk'), 2877 | (734, 'Qor'), 2878 | (527, 'Cskhagsas'), 2879 | (339, 'Qahvoqu'), 2880 | (166, 'Diwxzttgrklvg'), 2881 | (392, 'Zocmlrpaf'), 2882 | (341, 'Hygnxvfbbffxw'), 2883 | (977, 'Tkwxjdnorfmn'), 2884 | (191, 'Xqun'), 2885 | (312, 'Utsz'), 2886 | (13, 'Cuvt'), 2887 | (445, 'Ykez'), 2888 | (721, 'Vrjwdvtndipwu'), 2889 | (209, 'Hlbjpbusxuzy'), 2890 | (659, 'Cbxabcftnv'), 2891 | (7, 'Zzso'), 2892 | (610, 'Iuomirycz'), 2893 | (631, 'Vxndsj'), 2894 | (463, 'Mtxeryrb'), 2895 | (790, 'Nm'), 2896 | (993, 'Yr'), 2897 | (493, 'Gs'), 2898 | (979, 'Cqtbewygxxo'), 2899 | (75, 'Vzmpfjshow'), 2900 | (376, 'Nhpkqclri'), 2901 | (230, 'Lctz'), 2902 | (817, 'Jejstbkbf'), 2903 | (219, 'Fo'), 2904 | (776, 'Gd'), 2905 | (836, 'Eg'), 2906 | (946, 'Ajmxyuu'), 2907 | (274, 'Wmudkqefppurr'), 2908 | (881, 'Fecggmzt'), 2909 | (788, 'Vb'), 2910 | (616, 'Jqoxpprt'), 2911 | (168, 'Sww'), 2912 | (201, 'Bkjwb'), 2913 | (229, 'Qy'), 2914 | (607, 'Pu'), 2915 | (708, 'Ieqpcsvmqo'), 2916 | (200, 'Ntvsc'), 2917 | (55, 'Luqbrf'), 2918 | (110, 'Pwzapwikxws'), 2919 | (234, 'Winm'), 2920 | (831, 'Tnkvaksiw'), 2921 | (846, 'Gtfjn'), 2922 | (24, 'Brmo'), 2923 | (118, 'Uhaelozkoy'), 2924 | (327, 'Msuug'), 2925 | (30, 'Mhuaqfgz'), 2926 | (602, 'Tvghaqawszm'), 2927 | (687, 'Lfyhe'), 2928 | (891, 'Zw'), 2929 | (918, 'Tniyl'), 2930 | (123, 'Ydeogotvc'), 2931 | (855, 'Zojiv'), 2932 | (538, 'Qmfp'), 2933 | (613, 'Bevyi'), 2934 | (702, 'Dqubqoud'), 2935 | (177, 'Tnttqfdkbtfk'), 2936 | (847, 'Hwnowtljx'), 2937 | (133, 'Nifbvfe'), 2938 | (664, 'Rjyfhlmlg'), 2939 | (536, 'Ds'), 2940 | (623, 'Pbjkpxjsb'), 2941 | (266, 'Pcbrymdnes'), 2942 | (102, 'Azeqnv'), 2943 | (499, 'Xcliscxtaodjc'), 2944 | (168, 'Gkfkggyfb'), 2945 | (767, 'Jd'), 2946 | (333, 'Uggs'), 2947 | (750, 'Zkndnu'), 2948 | (47, 'Vexz'), 2949 | (277, 'Rqqkfsoitqew'), 2950 | (708, 'Hxchczfxrog'), 2951 | (276, 'Fmlwkqmoaborr'), 2952 | (142, 'Bhxzcjlg'), 2953 | (830, 'Owcmcitdhlzq'), 2954 | (632, 'Jc'), 2955 | (167, 'Kbmidvkpiskqz'), 2956 | (524, 'Cptdcgu'), 2957 | (958, 'Zjldukjx'), 2958 | (500, 'Wpbi'), 2959 | (483, 'Ebwl'), 2960 | (480, 'Fwxxvfsl'), 2961 | (971, 'Bgnnmqfahjmj'), 2962 | (844, 'Cnwqm'), 2963 | (558, 'Lo'), 2964 | (308, 'Nmfrjtzy'), 2965 | (755, 'Mfcmxpyi'), 2966 | (237, 'Uj'), 2967 | (991, 'Crvfzoeidnio'), 2968 | (452, 'Jsskkyjd'), 2969 | (451, 'Ztmirnszacor'), 2970 | (366, 'Zgmd'), 2971 | (137, 'Gyngeh'), 2972 | (664, 'Ggazetbnlfmiu'), 2973 | (120, 'Ecvtos'), 2974 | (39, 'Gqhzmxhgsr'), 2975 | (122, 'Jtwwaifs'), 2976 | (460, 'Wvrttyinzk'), 2977 | (728, 'Fwjdwnof'), 2978 | (19, 'Tuftlor'), 2979 | (661, 'Qdluss'), 2980 | (540, 'Mndkqwyo'), 2981 | (33, 'Dkjwb'), 2982 | (319, 'Nwq'), 2983 | (788, 'Yizqfo'), 2984 | (931, 'Qpehmeolygu'), 2985 | (759, 'Bxifwzpr'), 2986 | (572, 'Oqmmr'), 2987 | (364, 'Oyxmqjfsgwjr'), 2988 | (629, 'Wuayartfjqgud'), 2989 | (851, 'Nwonaavpsoa'), 2990 | (348, 'Voirauejv'), 2991 | (29, 'Aodqbno'), 2992 | (358, 'Gprcscdfykvw'), 2993 | (625, 'Vraebuj'), 2994 | (984, 'Kduyrxgtdhheb'), 2995 | (110, 'Mo'), 2996 | (737, 'Oohit'), 2997 | (700, 'Tuivsoyvjqdnb'), 2998 | (338, 'Vknhup'), 2999 | (869, 'Xz'), 3000 | (414, 'Mczetplqievjz'), 3001 | (710, 'Fsophsypazvln'), 3002 | (703, 'Bzeeaa'), 3003 | (945, 'Abwx') 3004 | ---- LISTITEMS ---- 3005 | (990, 69, 3, 2), 3006 | (579, 658, 11, 8), 3007 | (387, 361, 12, 6), 3008 | (970, 593, 4, 4), 3009 | (499, 86, 8, 1), 3010 | (444, 947, 12, 3), 3011 | (380, 185, 14, 8), 3012 | (79, 425, 14, 9), 3013 | (689, 884, 18, 9), 3014 | (294, 718, 15, 8), 3015 | (281, 114, 14, 6), 3016 | (955, 306, 11, 4), 3017 | (718, 52, 17, 9), 3018 | (600, 108, 9, 4), 3019 | (510, 352, 2, 1), 3020 | (811, 526, 6, 6), 3021 | (398, 318, 9, 3), 3022 | (201, 338, 14, 7), 3023 | (307, 956, 13, 4), 3024 | (663, 225, 8, 2), 3025 | (832, 280, 10, 4), 3026 | (280, 81, 9, 3), 3027 | (164, 826, 10, 3), 3028 | (324, 55, 19, 10), 3029 | (238, 595, 7, 2), 3030 | (66, 780, 6, 3), 3031 | (784, 405, 13, 4), 3032 | (83, 930, 8, 8), 3033 | (264, 222, 16, 10), 3034 | (217, 842, 9, 2), 3035 | (483, 671, 13, 10), 3036 | (306, 288, 5, 3), 3037 | (416, 383, 17, 8), 3038 | (75, 649, 10, 7), 3039 | (862, 680, 10, 3), 3040 | (452, 742, 6, 5), 3041 | (637, 226, 3, 1), 3042 | (896, 814, 8, 5), 3043 | (6, 533, 12, 10), 3044 | (286, 531, 5, 5), 3045 | (211, 510, 14, 8), 3046 | (232, 125, 3, 3), 3047 | (864, 494, 12, 7), 3048 | (415, 870, 8, 2), 3049 | (852, 440, 14, 7), 3050 | (350, 475, 15, 6), 3051 | (401, 113, 14, 8), 3052 | (825, 223, 9, 8), 3053 | (687, 105, 5, 2), 3054 | (681, 333, 9, 9), 3055 | (393, 891, 9, 5), 3056 | (715, 201, 5, 3), 3057 | (136, 61, 8, 5), 3058 | (610, 796, 10, 1), 3059 | (613, 949, 6, 5), 3060 | (476, 371, 10, 5), 3061 | (786, 105, 12, 9), 3062 | (92, 756, 13, 7), 3063 | (570, 920, 5, 4), 3064 | (891, 891, 6, 3), 3065 | (819, 352, 12, 3), 3066 | (604, 923, 9, 1), 3067 | (869, 133, 7, 7), 3068 | (632, 105, 13, 6), 3069 | (613, 363, 14, 6), 3070 | (87, 807, 6, 4), 3071 | (986, 306, 2, 2), 3072 | (581, 666, 5, 3), 3073 | (2, 126, 12, 8), 3074 | (948, 490, 10, 10), 3075 | (54, 402, 13, 9), 3076 | (5, 965, 18, 9), 3077 | (463, 649, 19, 10), 3078 | (563, 97, 11, 8), 3079 | (759, 900, 15, 7), 3080 | (330, 140, 18, 9), 3081 | (875, 478, 9, 1), 3082 | (515, 659, 11, 9), 3083 | (272, 822, 12, 4), 3084 | (572, 425, 9, 8), 3085 | (441, 687, 7, 7), 3086 | (472, 678, 15, 7), 3087 | (494, 72, 12, 7), 3088 | (146, 77, 7, 2), 3089 | (843, 732, 13, 7), 3090 | (932, 394, 6, 1), 3091 | (399, 35, 3, 1), 3092 | (189, 829, 8, 2), 3093 | (822, 114, 8, 3), 3094 | (155, 941, 11, 4), 3095 | (362, 458, 5, 1), 3096 | (661, 863, 10, 10), 3097 | (65, 788, 8, 2), 3098 | (712, 351, 6, 1), 3099 | (265, 346, 17, 8), 3100 | (544, 991, 14, 10), 3101 | (308, 123, 12, 6), 3102 | (994, 756, 12, 10), 3103 | (427, 596, 13, 4), 3104 | (513, 797, 5, 2), 3105 | (602, 785, 15, 6), 3106 | (430, 910, 4, 4), 3107 | (115, 40, 11, 5), 3108 | (479, 872, 13, 5), 3109 | (211, 443, 14, 7), 3110 | (286, 374, 3, 2), 3111 | (419, 369, 9, 6), 3112 | (767, 362, 13, 9), 3113 | (687, 501, 17, 8), 3114 | (331, 625, 5, 2), 3115 | (717, 583, 10, 5), 3116 | (27, 61, 8, 8), 3117 | (990, 749, 9, 7), 3118 | (310, 313, 9, 6), 3119 | (699, 364, 4, 1), 3120 | (65, 313, 8, 4), 3121 | (966, 705, 10, 10), 3122 | (963, 891, 5, 4), 3123 | (280, 137, 8, 8), 3124 | (79, 382, 17, 10), 3125 | (904, 408, 12, 6), 3126 | (722, 394, 17, 10), 3127 | (288, 53, 17, 10), 3128 | (356, 34, 10, 8), 3129 | (204, 120, 8, 4), 3130 | (478, 716, 17, 10), 3131 | (497, 611, 17, 10), 3132 | (732, 56, 10, 6), 3133 | (679, 677, 11, 3), 3134 | (307, 97, 13, 10), 3135 | (396, 614, 13, 9), 3136 | (732, 742, 9, 7), 3137 | (928, 701, 17, 9), 3138 | (165, 179, 7, 1), 3139 | (84, 802, 10, 8), 3140 | (729, 136, 12, 9), 3141 | (164, 31, 3, 2), 3142 | (937, 331, 13, 4), 3143 | (431, 849, 12, 9), 3144 | (426, 629, 14, 8), 3145 | (496, 636, 9, 5), 3146 | (645, 43, 13, 7), 3147 | (6, 231, 16, 10), 3148 | (711, 28, 12, 6), 3149 | (738, 814, 11, 8), 3150 | (213, 41, 11, 7), 3151 | (944, 410, 14, 5), 3152 | (918, 474, 12, 3), 3153 | (271, 143, 12, 8), 3154 | (687, 90, 10, 1), 3155 | (223, 790, 10, 8), 3156 | (146, 652, 6, 5), 3157 | (884, 407, 12, 6), 3158 | (974, 130, 16, 7), 3159 | (528, 646, 3, 3), 3160 | (126, 964, 11, 9), 3161 | (412, 762, 12, 4), 3162 | (403, 130, 6, 2), 3163 | (504, 790, 4, 4), 3164 | (422, 222, 1, 1), 3165 | (466, 965, 15, 9), 3166 | (826, 942, 10, 8), 3167 | (301, 490, 9, 6), 3168 | (516, 340, 17, 10), 3169 | (727, 467, 6, 1), 3170 | (296, 499, 4, 3), 3171 | (77, 598, 13, 10), 3172 | (148, 459, 16, 8), 3173 | (473, 897, 10, 3), 3174 | (690, 526, 9, 8), 3175 | (357, 78, 19, 10), 3176 | (873, 861, 17, 10), 3177 | (620, 105, 18, 10), 3178 | (731, 169, 7, 1), 3179 | (197, 83, 18, 9), 3180 | (361, 507, 9, 3), 3181 | (692, 70, 11, 8), 3182 | (529, 134, 16, 10), 3183 | (598, 690, 8, 2), 3184 | (37, 185, 4, 3), 3185 | (795, 392, 12, 8), 3186 | (727, 12, 12, 3), 3187 | (126, 39, 15, 9), 3188 | (354, 339, 17, 8), 3189 | (420, 534, 11, 7), 3190 | (252, 362, 10, 6), 3191 | (432, 953, 6, 5), 3192 | (754, 416, 11, 3), 3193 | (403, 694, 6, 3), 3194 | (770, 306, 14, 9), 3195 | (32, 340, 9, 5), 3196 | (631, 21, 12, 5), 3197 | (272, 481, 13, 7), 3198 | (359, 43, 9, 7), 3199 | (362, 885, 11, 7), 3200 | (529, 586, 10, 4), 3201 | (134, 196, 8, 4), 3202 | (575, 365, 16, 7), 3203 | (577, 234, 14, 10), 3204 | (537, 742, 10, 5), 3205 | (607, 831, 5, 5), 3206 | (413, 636, 5, 2), 3207 | (468, 488, 11, 8), 3208 | (633, 934, 4, 1), 3209 | (14, 830, 10, 7), 3210 | (50, 79, 8, 1), 3211 | (248, 628, 8, 3), 3212 | (585, 592, 8, 5), 3213 | (342, 137, 6, 1), 3214 | (841, 492, 8, 2), 3215 | (916, 70, 3, 3), 3216 | (489, 366, 6, 2), 3217 | (201, 782, 5, 3), 3218 | (158, 435, 9, 2), 3219 | (537, 562, 10, 2), 3220 | (535, 743, 11, 4), 3221 | (742, 827, 8, 3), 3222 | (712, 930, 8, 3), 3223 | (165, 114, 1, 1), 3224 | (61, 451, 10, 5), 3225 | (489, 433, 3, 1), 3226 | (169, 936, 3, 2), 3227 | (982, 677, 16, 10), 3228 | (895, 495, 5, 3), 3229 | (882, 84, 9, 4), 3230 | (975, 252, 5, 5), 3231 | (665, 601, 14, 10), 3232 | (390, 333, 6, 1), 3233 | (508, 586, 9, 6), 3234 | (17, 575, 4, 4), 3235 | (765, 77, 16, 9), 3236 | (531, 226, 2, 1), 3237 | (356, 946, 11, 9), 3238 | (204, 863, 14, 7), 3239 | (453, 723, 7, 3), 3240 | (341, 169, 7, 6), 3241 | (923, 221, 7, 3), 3242 | (173, 531, 11, 4), 3243 | (179, 669, 8, 1), 3244 | (289, 255, 10, 9), 3245 | (282, 703, 7, 1), 3246 | (721, 116, 12, 8), 3247 | (224, 18, 18, 10), 3248 | (935, 350, 15, 7), 3249 | (356, 406, 15, 6), 3250 | (786, 191, 7, 1), 3251 | (332, 398, 17, 10), 3252 | (70, 637, 2, 2), 3253 | (504, 721, 10, 8), 3254 | (870, 247, 8, 7), 3255 | (756, 579, 1, 1), 3256 | (353, 795, 11, 2), 3257 | (177, 647, 11, 6), 3258 | (814, 737, 3, 3), 3259 | (517, 229, 5, 2), 3260 | (745, 90, 11, 6), 3261 | (13, 552, 12, 4), 3262 | (268, 373, 17, 8), 3263 | (746, 779, 4, 3), 3264 | (328, 610, 9, 7), 3265 | (591, 290, 11, 3), 3266 | (414, 563, 10, 6), 3267 | (476, 358, 7, 3), 3268 | (477, 647, 12, 7), 3269 | (826, 32, 12, 9), 3270 | (450, 253, 15, 10), 3271 | (385, 828, 14, 10), 3272 | (358, 161, 9, 9), 3273 | (893, 789, 10, 2), 3274 | (693, 28, 8, 7), 3275 | (493, 538, 17, 10), 3276 | (456, 215, 4, 1), 3277 | (644, 12, 14, 7), 3278 | (977, 70, 9, 9), 3279 | (361, 930, 15, 7), 3280 | (872, 112, 13, 4), 3281 | (196, 547, 9, 1), 3282 | (834, 870, 9, 1), 3283 | (790, 566, 15, 9), 3284 | (878, 714, 19, 10), 3285 | (713, 283, 11, 10), 3286 | (240, 427, 16, 9), 3287 | (21, 757, 12, 7), 3288 | (123, 684, 7, 5), 3289 | (409, 512, 17, 8), 3290 | (885, 323, 14, 7), 3291 | (109, 524, 9, 8), 3292 | (366, 809, 4, 4), 3293 | (279, 463, 16, 7), 3294 | (596, 865, 12, 8), 3295 | (13, 992, 17, 10), 3296 | (998, 184, 4, 4), 3297 | (998, 556, 9, 1), 3298 | (521, 232, 9, 9), 3299 | (274, 597, 8, 7), 3300 | (383, 256, 16, 9), 3301 | (739, 47, 2, 2), 3302 | (387, 204, 10, 1), 3303 | (671, 809, 11, 6), 3304 | (193, 273, 6, 5), 3305 | (357, 975, 15, 10), 3306 | (723, 174, 2, 2), 3307 | (988, 751, 8, 8), 3308 | (528, 587, 1, 1), 3309 | (989, 888, 18, 10), 3310 | (117, 580, 11, 10), 3311 | (484, 191, 14, 9), 3312 | (362, 838, 9, 7), 3313 | (666, 846, 7, 3), 3314 | (108, 653, 2, 1), 3315 | (444, 250, 10, 8), 3316 | (172, 985, 5, 3), 3317 | (296, 187, 6, 3), 3318 | (583, 424, 6, 4), 3319 | (917, 480, 9, 3), 3320 | (247, 491, 13, 6), 3321 | (649, 16, 9, 6), 3322 | (62, 575, 11, 9), 3323 | (961, 136, 12, 5), 3324 | (921, 92, 10, 5), 3325 | (416, 880, 8, 4), 3326 | (434, 253, 9, 9), 3327 | (438, 726, 11, 8), 3328 | (96, 474, 14, 8), 3329 | (391, 484, 5, 1), 3330 | (197, 560, 14, 10), 3331 | (865, 685, 10, 8), 3332 | (499, 243, 8, 8), 3333 | (562, 520, 6, 5), 3334 | (294, 576, 6, 1), 3335 | (47, 839, 13, 5), 3336 | (62, 1000, 11, 8), 3337 | (407, 395, 14, 7), 3338 | (105, 35, 7, 2), 3339 | (26, 984, 8, 6), 3340 | (3, 627, 10, 3), 3341 | (866, 19, 7, 3), 3342 | (421, 939, 14, 5), 3343 | (607, 898, 12, 9), 3344 | (954, 531, 8, 5), 3345 | (968, 387, 10, 5), 3346 | (384, 987, 16, 7), 3347 | (800, 938, 13, 7), 3348 | (121, 326, 9, 2), 3349 | (732, 322, 7, 6), 3350 | (91, 122, 6, 2), 3351 | (716, 936, 10, 3), 3352 | (234, 904, 6, 1), 3353 | (738, 497, 16, 10), 3354 | (228, 529, 11, 7), 3355 | (504, 973, 6, 2), 3356 | (277, 137, 12, 9), 3357 | (804, 153, 3, 3), 3358 | (455, 906, 14, 8), 3359 | (397, 217, 10, 8), 3360 | (115, 737, 11, 5), 3361 | (220, 636, 12, 6), 3362 | (309, 417, 9, 5), 3363 | (962, 758, 13, 8), 3364 | (109, 694, 16, 10), 3365 | (447, 569, 4, 4), 3366 | (512, 855, 5, 1), 3367 | (203, 486, 12, 7), 3368 | (598, 894, 10, 2), 3369 | (269, 944, 19, 10), 3370 | (886, 260, 11, 3), 3371 | (892, 123, 19, 10), 3372 | (641, 887, 9, 2), 3373 | (500, 12, 3, 1), 3374 | (807, 197, 9, 2), 3375 | (565, 441, 8, 1), 3376 | (371, 403, 6, 5), 3377 | (294, 930, 10, 2), 3378 | (475, 20, 6, 3), 3379 | (250, 575, 15, 10), 3380 | (583, 177, 19, 10), 3381 | (738, 689, 10, 3), 3382 | (567, 883, 13, 6), 3383 | (592, 965, 12, 4), 3384 | (186, 922, 4, 2), 3385 | (141, 181, 11, 3), 3386 | (930, 617, 12, 4), 3387 | (49, 897, 10, 7), 3388 | (992, 297, 6, 5), 3389 | (235, 488, 2, 1), 3390 | (739, 938, 3, 2), 3391 | (887, 735, 9, 2), 3392 | (977, 547, 12, 4), 3393 | (539, 981, 9, 4), 3394 | (105, 127, 7, 1), 3395 | (140, 48, 9, 4), 3396 | (80, 986, 17, 8), 3397 | (782, 303, 11, 10), 3398 | (191, 685, 9, 4), 3399 | (244, 945, 9, 5), 3400 | (355, 587, 7, 2), 3401 | (566, 740, 9, 9), 3402 | (654, 614, 4, 2), 3403 | (583, 946, 11, 6), 3404 | (666, 273, 10, 10), 3405 | (675, 987, 16, 8), 3406 | (55, 841, 13, 6), 3407 | (876, 686, 12, 4), 3408 | (447, 497, 16, 8), 3409 | (196, 752, 14, 7), 3410 | (422, 535, 1, 1), 3411 | (750, 208, 7, 3), 3412 | (343, 61, 14, 8), 3413 | (66, 312, 8, 5), 3414 | (929, 414, 9, 7), 3415 | (389, 92, 13, 9), 3416 | (966, 590, 11, 10), 3417 | (267, 315, 18, 10), 3418 | (644, 679, 14, 7), 3419 | (782, 708, 12, 3), 3420 | (904, 41, 17, 9), 3421 | (578, 818, 2, 2), 3422 | (709, 48, 7, 6), 3423 | (654, 804, 9, 9), 3424 | (277, 55, 12, 10), 3425 | (992, 237, 9, 4), 3426 | (348, 193, 8, 8), 3427 | (864, 897, 7, 5), 3428 | (98, 578, 9, 1), 3429 | (780, 7, 6, 3), 3430 | (159, 887, 15, 9), 3431 | (117, 689, 17, 8), 3432 | (290, 815, 7, 3), 3433 | (676, 818, 15, 9), 3434 | (230, 223, 12, 3), 3435 | (731, 931, 10, 5), 3436 | (49, 657, 9, 6), 3437 | (664, 151, 9, 8), 3438 | (406, 784, 11, 8), 3439 | (328, 120, 2, 1), 3440 | (75, 885, 10, 1), 3441 | (209, 407, 5, 1), 3442 | (236, 313, 6, 6), 3443 | (762, 815, 10, 2), 3444 | (339, 774, 5, 3), 3445 | (484, 332, 8, 1), 3446 | (285, 62, 11, 4), 3447 | (435, 491, 12, 3), 3448 | (382, 18, 17, 8), 3449 | (628, 258, 15, 10), 3450 | (491, 816, 13, 5), 3451 | (494, 791, 12, 7), 3452 | (616, 366, 4, 2), 3453 | (640, 962, 10, 2), 3454 | (985, 612, 12, 6), 3455 | (60, 555, 4, 3), 3456 | (659, 597, 11, 10), 3457 | (636, 437, 5, 3), 3458 | (327, 812, 10, 9), 3459 | (832, 5, 15, 6), 3460 | (475, 509, 11, 8), 3461 | (146, 791, 11, 9), 3462 | (177, 567, 15, 10), 3463 | (250, 90, 12, 6), 3464 | (165, 919, 12, 8), 3465 | (737, 715, 17, 8), 3466 | (355, 424, 15, 6), 3467 | (317, 864, 15, 10), 3468 | (769, 88, 18, 10), 3469 | (73, 330, 9, 6), 3470 | (934, 788, 17, 9), 3471 | (64, 86, 4, 3), 3472 | (997, 324, 10, 3), 3473 | (546, 272, 3, 3), 3474 | (943, 683, 12, 5), 3475 | (655, 71, 11, 5), 3476 | (533, 432, 8, 4), 3477 | (608, 269, 16, 7), 3478 | (111, 950, 5, 5), 3479 | (746, 790, 13, 4), 3480 | (981, 953, 15, 8), 3481 | (281, 398, 8, 8), 3482 | (84, 420, 1, 1), 3483 | (229, 239, 15, 7), 3484 | (467, 496, 13, 10), 3485 | (664, 344, 11, 8), 3486 | (676, 545, 6, 4), 3487 | (428, 867, 10, 7), 3488 | (459, 932, 11, 4), 3489 | (363, 76, 13, 6), 3490 | (255, 121, 3, 3), 3491 | (465, 390, 9, 6), 3492 | (490, 829, 10, 5), 3493 | (782, 684, 5, 2), 3494 | (946, 205, 6, 3), 3495 | (68, 274, 11, 2), 3496 | (935, 234, 11, 2), 3497 | (75, 37, 10, 2), 3498 | (361, 605, 16, 9), 3499 | (175, 13, 14, 7), 3500 | (27, 491, 7, 3), 3501 | (777, 11, 9, 9), 3502 | (629, 344, 14, 7), 3503 | (487, 713, 16, 9), 3504 | (199, 840, 6, 2), 3505 | (852, 83, 12, 7), 3506 | (310, 855, 1, 1), 3507 | (308, 482, 16, 7), 3508 | (801, 946, 15, 9), 3509 | (245, 523, 11, 7), 3510 | (471, 913, 12, 10), 3511 | (807, 711, 16, 8), 3512 | (435, 384, 7, 3), 3513 | (748, 881, 17, 9), 3514 | (516, 809, 15, 9), 3515 | (865, 265, 9, 7), 3516 | (603, 641, 10, 5), 3517 | (470, 653, 9, 9), 3518 | (50, 902, 7, 1), 3519 | (807, 912, 9, 6), 3520 | (232, 908, 9, 7), 3521 | (649, 182, 9, 3), 3522 | (531, 947, 9, 1), 3523 | (181, 249, 10, 6), 3524 | (630, 990, 13, 4), 3525 | (73, 316, 18, 10), 3526 | (271, 809, 7, 2), 3527 | (552, 165, 9, 4), 3528 | (294, 309, 12, 10), 3529 | (944, 650, 6, 1), 3530 | (2, 272, 18, 10), 3531 | (501, 161, 17, 8), 3532 | (366, 717, 8, 1), 3533 | (436, 60, 8, 4), 3534 | (804, 402, 10, 1), 3535 | (975, 273, 8, 2), 3536 | (80, 383, 11, 10), 3537 | (50, 606, 14, 9), 3538 | (360, 970, 14, 8), 3539 | (167, 263, 7, 1), 3540 | (641, 701, 14, 7), 3541 | (318, 546, 6, 4), 3542 | (660, 67, 7, 6), 3543 | (93, 19, 9, 8), 3544 | (266, 558, 5, 1), 3545 | (246, 474, 9, 7), 3546 | (838, 554, 15, 9), 3547 | (840, 222, 10, 6), 3548 | (566, 710, 2, 2), 3549 | (213, 743, 10, 10), 3550 | (648, 649, 11, 7), 3551 | (578, 864, 5, 3), 3552 | (366, 40, 9, 2), 3553 | (176, 473, 5, 5), 3554 | (390, 678, 17, 9), 3555 | (470, 174, 7, 4), 3556 | (499, 641, 4, 4), 3557 | (17, 672, 14, 5), 3558 | (591, 652, 10, 10), 3559 | (578, 911, 14, 10), 3560 | (192, 988, 17, 8), 3561 | (87, 709, 8, 4), 3562 | (518, 949, 9, 5), 3563 | (373, 552, 15, 9), 3564 | (473, 103, 11, 3), 3565 | (642, 489, 11, 10), 3566 | (215, 777, 18, 10), 3567 | (472, 456, 11, 7), 3568 | (920, 549, 5, 5), 3569 | (991, 259, 5, 2), 3570 | (90, 107, 11, 3), 3571 | (755, 652, 5, 4), 3572 | (761, 470, 10, 10), 3573 | (343, 145, 9, 4), 3574 | (83, 826, 12, 6), 3575 | (837, 297, 6, 3), 3576 | (46, 270, 17, 8), 3577 | (603, 808, 7, 1), 3578 | (478, 31, 7, 5), 3579 | (751, 914, 9, 3), 3580 | (667, 797, 4, 2), 3581 | (371, 813, 12, 4), 3582 | (58, 745, 10, 6), 3583 | (707, 723, 11, 6), 3584 | (720, 196, 15, 6), 3585 | (104, 439, 2, 2), 3586 | (444, 383, 5, 3), 3587 | (148, 941, 11, 7), 3588 | (451, 19, 4, 3), 3589 | (533, 457, 12, 4), 3590 | (652, 61, 2, 2), 3591 | (661, 191, 10, 10), 3592 | (320, 841, 6, 2), 3593 | (876, 256, 7, 3), 3594 | (484, 377, 12, 9), 3595 | (120, 174, 5, 3), 3596 | (800, 438, 6, 2), 3597 | (385, 454, 12, 8), 3598 | (759, 707, 8, 2), 3599 | (791, 945, 18, 10), 3600 | (87, 205, 16, 7), 3601 | (636, 145, 9, 5), 3602 | (352, 819, 4, 1), 3603 | (411, 171, 8, 1), 3604 | (404, 842, 9, 8), 3605 | (244, 33, 11, 7), 3606 | (638, 657, 13, 6), 3607 | (893, 962, 4, 4), 3608 | (653, 610, 6, 5), 3609 | (586, 330, 10, 1), 3610 | (765, 49, 18, 9), 3611 | (896, 748, 11, 9), 3612 | (682, 25, 10, 2), 3613 | (495, 116, 11, 6), 3614 | (350, 538, 10, 1), 3615 | (938, 327, 3, 1), 3616 | (736, 205, 14, 5), 3617 | (635, 182, 10, 5), 3618 | (704, 323, 12, 9), 3619 | (100, 727, 5, 2), 3620 | (242, 507, 13, 9), 3621 | (998, 272, 17, 8), 3622 | (571, 328, 10, 8), 3623 | (884, 535, 16, 7), 3624 | (77, 61, 2, 1), 3625 | (293, 880, 12, 4), 3626 | (714, 596, 16, 10), 3627 | (291, 423, 12, 8), 3628 | (687, 6, 9, 3), 3629 | (421, 765, 16, 10), 3630 | (997, 875, 3, 1), 3631 | (254, 758, 2, 2), 3632 | (149, 612, 8, 3), 3633 | (907, 731, 6, 1), 3634 | (262, 855, 18, 10), 3635 | (828, 568, 10, 5), 3636 | (211, 669, 11, 4), 3637 | (107, 768, 10, 4), 3638 | (790, 954, 9, 9), 3639 | (647, 843, 11, 7), 3640 | (375, 107, 11, 7), 3641 | (207, 968, 5, 5), 3642 | (788, 427, 10, 8), 3643 | (6, 292, 11, 10), 3644 | (694, 650, 15, 7), 3645 | (116, 877, 11, 3), 3646 | (631, 193, 10, 6), 3647 | (776, 253, 13, 4), 3648 | (380, 110, 14, 7), 3649 | (711, 932, 10, 4), 3650 | (536, 906, 3, 2), 3651 | (730, 456, 4, 2), 3652 | (449, 512, 6, 3), 3653 | (481, 354, 10, 9), 3654 | (545, 442, 3, 2), 3655 | (128, 688, 16, 9), 3656 | (367, 5, 10, 4), 3657 | (197, 492, 7, 2), 3658 | (554, 615, 13, 4), 3659 | (992, 897, 12, 10), 3660 | (966, 760, 15, 7), 3661 | (378, 955, 4, 1), 3662 | (850, 475, 6, 1), 3663 | (226, 818, 13, 4), 3664 | (608, 695, 3, 3), 3665 | (246, 805, 10, 5), 3666 | (656, 360, 12, 6), 3667 | (62, 108, 12, 10), 3668 | (309, 881, 7, 1), 3669 | (622, 254, 9, 5), 3670 | (718, 684, 14, 8), 3671 | (725, 889, 8, 7), 3672 | (748, 150, 9, 4), 3673 | (854, 888, 16, 9), 3674 | (42, 821, 14, 8), 3675 | (346, 839, 10, 7), 3676 | (823, 299, 10, 1), 3677 | (640, 936, 13, 10), 3678 | (208, 167, 15, 6), 3679 | (817, 782, 10, 6), 3680 | (93, 564, 13, 7), 3681 | (191, 57, 12, 4), 3682 | (20, 712, 9, 8), 3683 | (122, 226, 12, 7), 3684 | (999, 726, 12, 3), 3685 | (640, 609, 15, 8), 3686 | (559, 24, 9, 5), 3687 | (428, 324, 3, 3), 3688 | (878, 922, 18, 9), 3689 | (412, 109, 13, 7), 3690 | (462, 609, 10, 6), 3691 | (807, 707, 9, 1), 3692 | (773, 413, 17, 10), 3693 | (258, 366, 6, 3), 3694 | (806, 182, 11, 10), 3695 | (666, 601, 10, 6), 3696 | (272, 729, 11, 2), 3697 | (342, 639, 15, 8), 3698 | (910, 6, 3, 1), 3699 | (544, 372, 11, 3), 3700 | (471, 993, 9, 3), 3701 | (758, 359, 9, 2), 3702 | (644, 749, 7, 1), 3703 | (594, 203, 4, 3), 3704 | (447, 593, 8, 7), 3705 | (122, 961, 11, 9), 3706 | (817, 919, 10, 2), 3707 | (534, 371, 11, 7), 3708 | (975, 541, 10, 7), 3709 | (899, 651, 14, 10), 3710 | (563, 780, 13, 8), 3711 | (63, 188, 7, 7), 3712 | (822, 603, 6, 2), 3713 | (549, 9, 2, 2), 3714 | (777, 208, 15, 7), 3715 | (406, 557, 8, 1), 3716 | (504, 763, 16, 9), 3717 | (986, 271, 11, 4), 3718 | (96, 37, 10, 5), 3719 | (28, 319, 2, 1), 3720 | (893, 84, 8, 5), 3721 | (482, 944, 10, 10), 3722 | (599, 478, 9, 1), 3723 | (295, 651, 3, 2), 3724 | (227, 879, 13, 5), 3725 | (612, 501, 15, 9), 3726 | (803, 242, 10, 1), 3727 | (887, 985, 7, 2), 3728 | (334, 674, 3, 2), 3729 | (486, 260, 4, 4), 3730 | (86, 637, 10, 9), 3731 | (120, 989, 15, 6), 3732 | (446, 31, 9, 7), 3733 | (686, 852, 6, 5), 3734 | (10, 54, 10, 6), 3735 | (671, 27, 14, 5), 3736 | (221, 756, 6, 1), 3737 | (527, 134, 6, 6), 3738 | (40, 171, 13, 7), 3739 | (470, 284, 11, 4), 3740 | (213, 363, 10, 2), 3741 | (544, 817, 9, 7), 3742 | (820, 324, 9, 1), 3743 | (400, 258, 14, 9), 3744 | (476, 905, 11, 3), 3745 | (796, 224, 8, 3), 3746 | (972, 959, 9, 2), 3747 | (256, 679, 11, 6), 3748 | (643, 514, 10, 8), 3749 | (321, 940, 6, 2), 3750 | (868, 751, 9, 9), 3751 | (629, 192, 8, 6), 3752 | (981, 618, 14, 7), 3753 | (37, 246, 11, 3), 3754 | (639, 929, 15, 9), 3755 | (508, 38, 10, 4), 3756 | (943, 965, 8, 5), 3757 | (343, 640, 10, 4), 3758 | (936, 490, 14, 6), 3759 | (76, 461, 10, 8), 3760 | (471, 240, 12, 7), 3761 | (469, 230, 13, 7), 3762 | (455, 336, 8, 2), 3763 | (850, 576, 10, 3), 3764 | (919, 844, 17, 10), 3765 | (318, 149, 13, 4), 3766 | (148, 741, 7, 7), 3767 | (259, 955, 12, 4), 3768 | (253, 576, 12, 3), 3769 | (758, 775, 10, 6), 3770 | (773, 303, 4, 4), 3771 | (66, 615, 12, 9), 3772 | (459, 355, 15, 9), 3773 | (783, 690, 12, 3), 3774 | (102, 764, 10, 3), 3775 | (283, 403, 8, 3), 3776 | (788, 797, 2, 2), 3777 | (395, 293, 14, 10), 3778 | (433, 924, 16, 7), 3779 | (719, 693, 6, 2), 3780 | (189, 426, 11, 10), 3781 | (160, 969, 14, 6), 3782 | (888, 870, 10, 10), 3783 | (327, 889, 16, 8), 3784 | (409, 869, 14, 8), 3785 | (851, 437, 13, 6), 3786 | (35, 505, 9, 6), 3787 | (515, 262, 5, 4), 3788 | (992, 877, 1, 1), 3789 | (983, 516, 10, 1), 3790 | (596, 878, 19, 10), 3791 | (84, 172, 14, 8), 3792 | (528, 726, 5, 4), 3793 | (207, 506, 9, 3), 3794 | (706, 520, 10, 4), 3795 | (222, 878, 14, 9), 3796 | (878, 290, 11, 5), 3797 | (39, 629, 12, 8), 3798 | (564, 281, 5, 1), 3799 | (586, 445, 6, 1), 3800 | (390, 573, 14, 8), 3801 | (457, 299, 19, 10), 3802 | (939, 134, 10, 6), 3803 | (240, 75, 5, 2), 3804 | (433, 445, 12, 10), 3805 | (652, 728, 16, 7), 3806 | (602, 173, 7, 4), 3807 | (575, 131, 2, 1), 3808 | (124, 108, 17, 9), 3809 | (952, 388, 6, 4), 3810 | (168, 913, 5, 3), 3811 | (108, 230, 16, 10), 3812 | (828, 683, 4, 3), 3813 | (614, 688, 11, 8), 3814 | (811, 203, 11, 5), 3815 | (347, 221, 13, 10), 3816 | (972, 797, 12, 7), 3817 | (970, 297, 14, 5), 3818 | (636, 594, 16, 7), 3819 | (88, 478, 11, 6), 3820 | (716, 823, 12, 4), 3821 | (823, 754, 3, 3), 3822 | (753, 26, 13, 8), 3823 | (946, 824, 1, 1), 3824 | (319, 518, 10, 3), 3825 | (272, 243, 13, 9), 3826 | (107, 134, 9, 6), 3827 | (397, 824, 6, 6), 3828 | (541, 902, 8, 1), 3829 | (83, 321, 8, 4), 3830 | (115, 161, 15, 8), 3831 | (869, 975, 15, 10), 3832 | (841, 347, 10, 1), 3833 | (965, 483, 10, 8), 3834 | (961, 985, 13, 5), 3835 | (886, 8, 6, 2), 3836 | (36, 188, 11, 8), 3837 | (128, 476, 6, 2), 3838 | (91, 68, 9, 9), 3839 | (866, 831, 12, 6), 3840 | (238, 247, 7, 7), 3841 | (795, 432, 13, 8), 3842 | (730, 768, 19, 10), 3843 | (47, 226, 6, 1), 3844 | (791, 349, 6, 5), 3845 | (136, 227, 13, 7), 3846 | (247, 272, 6, 5), 3847 | (891, 314, 10, 7), 3848 | (666, 602, 5, 5), 3849 | (861, 707, 14, 7), 3850 | (926, 611, 7, 3), 3851 | (283, 901, 15, 7), 3852 | (294, 942, 15, 8), 3853 | (587, 862, 14, 5), 3854 | (488, 126, 4, 4), 3855 | (229, 238, 3, 3), 3856 | (326, 681, 14, 10), 3857 | (694, 534, 10, 1), 3858 | (309, 700, 13, 8), 3859 | (241, 33, 10, 9), 3860 | (47, 7, 10, 9), 3861 | (344, 558, 9, 3), 3862 | (79, 705, 14, 6), 3863 | (777, 120, 2, 1), 3864 | (59, 680, 9, 5), 3865 | (668, 962, 8, 2), 3866 | (924, 573, 16, 10), 3867 | (13, 386, 8, 2), 3868 | (810, 360, 5, 2), 3869 | (349, 583, 13, 9), 3870 | (307, 433, 13, 9), 3871 | (123, 411, 11, 8), 3872 | (949, 708, 11, 10), 3873 | (127, 252, 13, 8), 3874 | (179, 825, 12, 4), 3875 | (877, 706, 11, 2), 3876 | (12, 258, 16, 7), 3877 | (961, 111, 9, 4), 3878 | (86, 398, 3, 3), 3879 | (660, 869, 13, 8), 3880 | (203, 19, 6, 6), 3881 | (142, 347, 5, 1), 3882 | (711, 140, 12, 7), 3883 | (248, 663, 8, 1), 3884 | (644, 988, 11, 9), 3885 | (729, 704, 15, 9), 3886 | (613, 711, 17, 8), 3887 | (949, 505, 14, 7), 3888 | (662, 419, 10, 9), 3889 | (154, 981, 5, 4), 3890 | (313, 499, 11, 5), 3891 | (549, 361, 3, 1), 3892 | (273, 582, 14, 8), 3893 | (967, 210, 14, 6), 3894 | (920, 438, 11, 4), 3895 | (661, 608, 3, 2), 3896 | (268, 46, 8, 1), 3897 | (952, 955, 13, 7), 3898 | (636, 796, 12, 8), 3899 | (329, 875, 6, 3), 3900 | (992, 769, 5, 2), 3901 | (400, 869, 13, 7), 3902 | (804, 469, 9, 5), 3903 | (633, 484, 4, 2), 3904 | (622, 83, 10, 7), 3905 | (161, 553, 14, 5), 3906 | (355, 279, 10, 5), 3907 | (720, 29, 18, 9), 3908 | (893, 183, 10, 2), 3909 | (802, 351, 13, 10), 3910 | (755, 436, 13, 6), 3911 | (82, 234, 11, 10), 3912 | (807, 879, 10, 6), 3913 | (92, 605, 6, 6), 3914 | (883, 80, 7, 1), 3915 | (667, 276, 10, 4), 3916 | (370, 936, 13, 10), 3917 | (610, 247, 13, 8), 3918 | (720, 245, 5, 2), 3919 | (732, 289, 2, 1), 3920 | (716, 218, 5, 1), 3921 | (662, 103, 14, 7), 3922 | (564, 743, 17, 9), 3923 | (976, 279, 4, 1), 3924 | (528, 725, 9, 7), 3925 | (545, 498, 6, 5), 3926 | (15, 123, 11, 9), 3927 | (478, 683, 13, 8), 3928 | (461, 299, 10, 7), 3929 | (297, 85, 10, 5), 3930 | (600, 505, 10, 5), 3931 | (501, 679, 15, 7), 3932 | (417, 530, 8, 3), 3933 | (384, 385, 10, 2), 3934 | (87, 805, 10, 3), 3935 | (137, 683, 9, 7), 3936 | (467, 940, 10, 9), 3937 | (302, 966, 13, 10), 3938 | (122, 74, 14, 9), 3939 | (618, 849, 14, 5), 3940 | (492, 682, 3, 1), 3941 | (329, 210, 5, 1), 3942 | (453, 369, 13, 7), 3943 | (632, 214, 6, 5), 3944 | (345, 765, 7, 2), 3945 | (298, 724, 9, 9), 3946 | (116, 832, 12, 7), 3947 | (29, 478, 12, 7), 3948 | (945, 69, 11, 8), 3949 | (401, 229, 6, 3), 3950 | (646, 202, 8, 7), 3951 | (432, 990, 11, 10), 3952 | (50, 524, 13, 7), 3953 | (724, 899, 10, 4), 3954 | (700, 591, 17, 8), 3955 | (796, 320, 17, 8), 3956 | (233, 642, 12, 3), 3957 | (959, 131, 9, 2), 3958 | (467, 479, 5, 5), 3959 | (58, 941, 7, 2), 3960 | (551, 453, 10, 1), 3961 | (337, 760, 8, 4), 3962 | (131, 185, 2, 1), 3963 | (680, 983, 12, 4), 3964 | (606, 850, 13, 8), 3965 | (966, 231, 17, 9), 3966 | (352, 800, 9, 3), 3967 | (246, 360, 13, 10), 3968 | (570, 379, 7, 6), 3969 | (33, 957, 9, 8), 3970 | (770, 503, 13, 10), 3971 | (882, 200, 16, 9), 3972 | (237, 976, 4, 4), 3973 | (610, 64, 13, 5), 3974 | (258, 813, 13, 4), 3975 | (970, 951, 8, 1), 3976 | (880, 298, 6, 2), 3977 | (602, 201, 13, 7), 3978 | (389, 453, 12, 9), 3979 | (481, 178, 6, 6), 3980 | (636, 938, 17, 9), 3981 | (726, 917, 3, 2), 3982 | (313, 652, 10, 10), 3983 | (553, 798, 4, 1), 3984 | (204, 433, 13, 7), 3985 | (426, 919, 10, 2), 3986 | (711, 496, 12, 4), 3987 | (421, 814, 9, 3), 3988 | (81, 535, 3, 3), 3989 | (31, 256, 17, 9), 3990 | (727, 202, 9, 6), 3991 | (740, 692, 7, 7), 3992 | (622, 544, 10, 7), 3993 | (306, 865, 8, 4), 3994 | (512, 245, 6, 2), 3995 | (838, 741, 19, 10), 3996 | (386, 46, 7, 3), 3997 | (863, 643, 6, 4), 3998 | (399, 625, 12, 8), 3999 | (552, 439, 5, 3), 4000 | (203, 43, 8, 3), 4001 | (903, 963, 11, 4), 4002 | (140, 241, 17, 10), 4003 | (781, 74, 4, 3), 4004 | (296, 264, 14, 9) 4005 | -------------------------------------------------------------------------------- /092/go.mod: -------------------------------------------------------------------------------- 1 | module github.com/GoesToEleven/postgresql-course/092 2 | 3 | go 1.13 4 | -------------------------------------------------------------------------------- /092/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "fmt" 5 | "math/rand" 6 | "os" 7 | "strings" 8 | "time" 9 | ) 10 | 11 | type city struct { 12 | name string 13 | state string 14 | population int 15 | growth string 16 | } 17 | 18 | var cities = []city{ 19 | {"New York", "New York", 8405837, "4.8%"}, 20 | {"Los Angeles", "California", 3884307, "4.8%"}, 21 | {"Chicago", "Illinois", 2718782, "-6.1%"}, 22 | {"Houston", "Texas", 2195914, "11.0%"}, 23 | {"Philadelphia", "Pennsylvania", 1553165, "2.6%"}, 24 | {"Phoenix", "Arizona", 1513367, "14.0%"}, 25 | {"San Antonio", "Texas", 1409019, "21.0%"}, 26 | {"San Diego", "California", 1355896, "10.5%"}, 27 | {"Dallas", "Texas", 1257676, "5.6%"}, 28 | {"San Jose", "California", 998537, "10.5%"}, 29 | {"Austin", "Texas", 885400, "31.7%"}, 30 | {"Indianapolis", "Indiana", 843393, "7.8%"}, 31 | {"Jacksonville", "Florida", 842583, "14.3%"}, 32 | {"San Francisco", "California", 837442, "7.7%"}, 33 | {"Columbus", "Ohio", 822553, "14.8%"}, 34 | {"Charlotte", "North Carolina", 792862, "39.1%"}, 35 | {"Fort Worth", "Texas", 792727, "45.1%"}, 36 | {"Detroit", "Michigan", 688701, "-27.1%"}, 37 | {"El Paso", "Texas", 674433, "19.4%"}, 38 | {"Memphis", "Tennessee", 653450, "-5.3%"}, 39 | {"Seattle", "Washington", 652405, "15.6%"}, 40 | {"Denver", "Colorado", 649495, "16.7%"}, 41 | {"Washington", "District of Columbia", 646449, "13.0%"}, 42 | {"Boston", "Massachusetts", 645966, "9.4%"}, 43 | {"Nashville-Davidson", "Tennessee", 634464, "16.2%"}, 44 | {"Baltimore", "Maryland", 622104, "-4.0%"}, 45 | {"Oklahoma City", "Oklahoma", 610613, "20.2%"}, 46 | {"Louisville/Jefferson County", "Kentucky", 609893, "10.0%"}, 47 | {"Portland", "Oregon", 609456, "15.0%"}, 48 | {"Las Vegas", "Nevada", 603488, "24.5%"}, 49 | {"Milwaukee", "Wisconsin", 599164, "0.3%"}, 50 | {"Albuquerque", "New Mexico", 556495, "23.5%"}, 51 | {"Tucson", "Arizona", 526116, "7.5%"}, 52 | {"Fresno", "California", 509924, "18.3%"}, 53 | {"Sacramento", "California", 479686, "17.2%"}, 54 | {"Long Beach", "California", 469428, "1.5%"}, 55 | {"Kansas City", "Missouri", 467007, "5.5%"}, 56 | {"Mesa", "Arizona", 457587, "13.5%"}, 57 | {"Virginia Beach", "Virginia", 448479, "5.1%"}, 58 | {"Atlanta", "Georgia", 447841, "6.2%"}, 59 | {"Colorado Springs", "Colorado", 439886, "21.4%"}, 60 | {"Omaha", "Nebraska", 434353, "5.9%"}, 61 | {"Raleigh", "North Carolina", 431746, "48.7%"}, 62 | {"Miami", "Florida", 417650, "14.9%"}, 63 | {"Oakland", "California", 406253, "1.3%"}, 64 | {"Minneapolis", "Minnesota", 400070, "4.5%"}, 65 | {"Tulsa", "Oklahoma", 398121, "1.3%"}, 66 | {"Cleveland", "Ohio", 390113, "-18.1%"}, 67 | {"Wichita", "Kansas", 386552, "9.7%"}, 68 | {"Arlington", "Texas", 379577, "13.3%"}, 69 | {"New Orleans", "Louisiana", 378715, "-21.6%"}, 70 | {"Bakersfield", "California", 363630, "48.4%"}, 71 | {"Tampa", "Florida", 352957, "16.0%"}, 72 | {"Honolulu", "Hawaii", 347884, "-6.2%"}, 73 | {"Aurora", "Colorado", 345803, "24.4%"}, 74 | {"Anaheim", "California", 345012, "4.7%"}, 75 | {"Santa Ana", "California", 334227, "-1.2%"}, 76 | {"St. Louis", "Missouri", 318416, "-8.2%"}, 77 | {"Riverside", "California", 316619, "22.5%"}, 78 | {"Corpus Christi", "Texas", 316381, "14.1%"}, 79 | {"Lexington-Fayette", "Kentucky", 308428, "18.0%"}, 80 | {"Pittsburgh", "Pennsylvania", 305841, "-8.3%"}, 81 | {"Anchorage", "Alaska", 300950, "15.4%"}, 82 | {"Stockton", "California", 298118, "21.8%"}, 83 | {"Cincinnati", "Ohio", 297517, "-10.1%"}, 84 | {"St. Paul", "Minnesota", 294873, "2.8%"}, 85 | {"Toledo", "Ohio", 282313, "-10.0%"}, 86 | {"Greensboro", "North Carolina", 279639, "22.3%"}, 87 | {"Newark", "New Jersey", 278427, "2.1%"}, 88 | {"Plano", "Texas", 274409, "22.4%"}, 89 | {"Henderson", "Nevada", 270811, "51.0%"}, 90 | {"Lincoln", "Nebraska", 268738, "18.0%"}, 91 | {"Buffalo", "New York", 258959, "-11.3%"}, 92 | {"Jersey City", "New Jersey", 257342, "7.2%"}, 93 | {"Chula Vista", "California", 256780, "46.2%"}, 94 | {"Fort Wayne", "Indiana", 256496, "1.0%"}, 95 | {"Orlando", "Florida", 255483, "31.2%"}, 96 | {"St. Petersburg", "Florida", 249688, "0.3%"}, 97 | {"Chandler", "Arizona", 249146, "38.7%"}, 98 | {"Laredo", "Texas", 248142, "38.2%"}, 99 | {"Norfolk", "Virginia", 246139, "5.0%"}, 100 | {"Durham", "North Carolina", 245475, "29.9%"}, 101 | {"Madison", "Wisconsin", 243344, "15.8%"}, 102 | {"Lubbock", "Texas", 239538, "19.6%"}, 103 | {"Irvine", "California", 236716, "61.3%"}, 104 | {"Winston-Salem", "North Carolina", 236441, "16.9%"}, 105 | {"Glendale", "Arizona", 234632, "5.7%"}, 106 | {"Garland", "Texas", 234566, "8.5%"}, 107 | {"Hialeah", "Florida", 233394, "3.2%"}, 108 | {"Reno", "Nevada", 233294, "26.8%"}, 109 | {"Chesapeake", "Virginia", 230571, "15.1%"}, 110 | {"Gilbert", "Arizona", 229972, "96.0%"}, 111 | {"Baton Rouge", "Louisiana", 229426, "0.4%"}, 112 | {"Irving", "Texas", 228653, "19.1%"}, 113 | {"Scottsdale", "Arizona", 226918, "11.0%"}, 114 | {"North Las Vegas", "Nevada", 226877, "92.2%"}, 115 | {"Fremont", "California", 224922, "10.0%"}, 116 | {"Boise City", "Idaho", 214237, "9.5%"}, 117 | {"Richmond", "Virginia", 214114, "8.2%"}, 118 | {"San Bernardino", "California", 213708, "13.0%"}, 119 | {"Birmingham", "Alabama", 212113, "-12.3%"}, 120 | {"Spokane", "Washington", 210721, "7.0%"}, 121 | {"Rochester", "New York", 210358, "-4.1%"}, 122 | {"Des Moines", "Iowa", 207510, "3.9%"}, 123 | {"Modesto", "California", 204933, "7.7%"}, 124 | {"Fayetteville", "North Carolina", 204408, "2.4%"}, 125 | {"Tacoma", "Washington", 203446, "4.9%"}, 126 | {"Oxnard", "California", 203007, "18.2%"}, 127 | {"Fontana", "California", 203003, "38.3%"}, 128 | {"Columbus", "Georgia", 202824, "8.7%"}, 129 | {"Montgomery", "Alabama", 201332, "-0.1%"}, 130 | {"Moreno Valley", "California", 201175, "40.4%"}, 131 | {"Shreveport", "Louisiana", 200327, "-0.1%"}, 132 | {"Aurora", "Illinois", 199963, "38.4%"}, 133 | {"Yonkers", "New York", 199766, "1.8%"}, 134 | {"Akron", "Ohio", 198100, "-8.6%"}, 135 | {"Huntington Beach", "California", 197575, "3.9%"}, 136 | {"Little Rock", "Arkansas", 197357, "7.6%"}, 137 | {"Augusta-Richmond County", "Georgia", 197350, "1.1%"}, 138 | {"Amarillo", "Texas", 196429, "12.8%"}, 139 | {"Glendale", "California", 196021, "0.3%"}, 140 | {"Mobile", "Alabama", 194899, "-1.9%"}, 141 | {"Grand Rapids", "Michigan", 192294, "-2.8%"}, 142 | {"Salt Lake City", "Utah", 191180, "5.1%"}, 143 | {"Tallahassee", "Florida", 186411, "21.8%"}, 144 | {"Huntsville", "Alabama", 186254, "16.3%"}, 145 | {"Grand Prairie", "Texas", 183372, "43.1%"}, 146 | {"Knoxville", "Tennessee", 183270, "3.9%"}, 147 | {"Worcester", "Massachusetts", 182544, "5.8%"}, 148 | {"Newport News", "Virginia", 182020, "0.9%"}, 149 | {"Brownsville", "Texas", 181860, "26.8%"}, 150 | {"Overland Park", "Kansas", 181260, "19.4%"}, 151 | {"Santa Clarita", "California", 179590, "15.3%"}, 152 | {"Providence", "Rhode Island", 177994, "2.3%"}, 153 | {"Garden Grove", "California", 175140, "5.8%"}, 154 | {"Chattanooga", "Tennessee", 173366, "10.5%"}, 155 | {"Oceanside", "California", 172794, "6.6%"}, 156 | {"Jackson", "Mississippi", 172638, "-6.8%"}, 157 | {"Fort Lauderdale", "Florida", 172389, "0.7%"}, 158 | {"Santa Rosa", "California", 171990, "15.2%"}, 159 | {"Rancho Cucamonga", "California", 171386, "32.7%"}, 160 | {"Port St. Lucie", "Florida", 171016, "91.7%"}, 161 | {"Tempe", "Arizona", 168228, "5.8%"}, 162 | {"Ontario", "California", 167500, "5.5%"}, 163 | {"Vancouver", "Washington", 167405, "14.2%"}, 164 | {"Cape Coral", "Florida", 165831, "60.4%"}, 165 | } 166 | 167 | var states = []string{ 168 | "AL", 169 | "AK", 170 | "AS", 171 | "AZ", 172 | "AR", 173 | "CA", 174 | "CO", 175 | "CT", 176 | "DE", 177 | "DC", 178 | "FM", 179 | "FL", 180 | "GA", 181 | "GU", 182 | "HI", 183 | "ID", 184 | "IL", 185 | "IN", 186 | "IA", 187 | "KS", 188 | "KY", 189 | "LA", 190 | "ME", 191 | "MH", 192 | "MD", 193 | "MA", 194 | "MI", 195 | "MN", 196 | "MS", 197 | "MO", 198 | "MT", 199 | "NE", 200 | "NV", 201 | "NH", 202 | "NJ", 203 | "NM", 204 | "NY", 205 | "NC", 206 | "ND", 207 | "MP", 208 | "OH", 209 | "OK", 210 | "OR", 211 | "PW", 212 | "PA", 213 | "PR", 214 | "RI", 215 | "SC", 216 | "SD", 217 | "TN", 218 | "TX", 219 | "UT", 220 | "VT", 221 | "VI", 222 | "VA", 223 | "WA", 224 | "WV", 225 | "WI", 226 | "WY", 227 | } 228 | 229 | func alpha() string { 230 | p := make([]byte, 26) 231 | for i := 0; i < 26; i++ { 232 | p[i] = 'a' + byte(i) 233 | } 234 | return string(p) 235 | } 236 | 237 | var seededRand = rand.New(rand.NewSource(time.Now().UnixNano())) 238 | 239 | func randStringWithCharset(length int, charset string) string { 240 | b := make([]byte, length) 241 | for i := range b { 242 | b[i] = charset[seededRand.Intn(len(charset))] 243 | } 244 | return strings.Title(string(b)) 245 | } 246 | 247 | func randString(length int) string { 248 | return randStringWithCharset(length, alpha()) 249 | } 250 | 251 | func randState() string { 252 | return states[seededRand.Intn(len(states))] 253 | } 254 | 255 | func randCity() city { 256 | return cities[seededRand.Intn(len(cities))] 257 | } 258 | 259 | const numItems = 1000 260 | 261 | func main() { 262 | f, err := os.Create("database.txt") 263 | if err != nil { 264 | panic(err) 265 | } 266 | defer f.Close() 267 | 268 | fmt.Fprintln(f, "---- PEOPLE ----") 269 | for i := 0; i < numItems; i++ { 270 | fName := randString(seededRand.Intn(12) + 2) 271 | lName := randString(seededRand.Intn(12) + 2) 272 | state := randState() 273 | city := randCity() 274 | fmt.Fprintf(f, "('%s', '%s', '%s', '%s')", fName, lName, state, city.name) 275 | if i != numItems-1 { 276 | fmt.Fprint(f, ",") 277 | } 278 | fmt.Fprint(f, "\n") 279 | } 280 | fmt.Fprintln(f, "---- ITEMS ----") 281 | for i := 0; i < numItems; i++ { 282 | item := randString(seededRand.Intn(12) + 2) 283 | fmt.Fprintf(f, "('%s')", item) 284 | if i != numItems-1 { 285 | fmt.Fprint(f, ",") 286 | } 287 | fmt.Fprint(f, "\n") 288 | } 289 | fmt.Fprintln(f, "---- LISTS ----") 290 | for i := 0; i < numItems; i++ { 291 | num := seededRand.Intn(numItems) + 1 292 | lname := randString(seededRand.Intn(12) + 2) 293 | fmt.Fprintf(f, "(%d, '%s')", num, lname) 294 | if i != numItems-1 { 295 | fmt.Fprint(f, ",") 296 | } 297 | fmt.Fprint(f, "\n") 298 | } 299 | fmt.Fprintln(f, "---- LISTITEMS ----") 300 | for i := 0; i < numItems; i++ { 301 | lID := seededRand.Intn(numItems) + 1 302 | iID := seededRand.Intn(numItems) + 1 303 | ipurchased := seededRand.Intn(10) + 1 304 | idesired := seededRand.Intn(10) + ipurchased 305 | fmt.Fprintf(f, "(%d, %d, %d, %d)", lID, iID, idesired, ipurchased) 306 | if i != numItems-1 { 307 | fmt.Fprint(f, ",") 308 | } 309 | fmt.Fprint(f, "\n") 310 | } 311 | } 312 | -------------------------------------------------------------------------------- /094/specific-fields.sql: -------------------------------------------------------------------------------- 1 | SELECT pfirstname, plastname FROM people; 2 | -------------------------------------------------------------------------------- /095/distinct.sql: -------------------------------------------------------------------------------- 1 | SELECT DISTINCT pcity, pstate FROM people; 2 | -------------------------------------------------------------------------------- /096/1-order-by.sql: -------------------------------------------------------------------------------- 1 | SELECT * FROM people ORDER BY plastname DESC; 2 | -------------------------------------------------------------------------------- /096/2-order-fields.sql: -------------------------------------------------------------------------------- 1 | SELECT pfirstname, plastname FROM people ORDER BY pfirstname DESC; 2 | -------------------------------------------------------------------------------- /096/3-order-by-distinct.sql: -------------------------------------------------------------------------------- 1 | SELECT DISTINCT pfirstname FROM people ORDER BY pfirstname DESC; 2 | -------------------------------------------------------------------------------- /097/order-by-multiple.sql: -------------------------------------------------------------------------------- 1 | SELECT * FROM people ORDER BY pstate DESC, pcity ASC; 2 | -------------------------------------------------------------------------------- /098/naming-results.sql: -------------------------------------------------------------------------------- 1 | SELECT pfirstname AS "First Name", plastname AS "Last Name", pcity FROM people; 2 | -------------------------------------------------------------------------------- /099/1-literal.sql: -------------------------------------------------------------------------------- 1 | SELECT pfirstname, 'lives in' AS "lives in", pcity FROM people; 2 | -------------------------------------------------------------------------------- /099/2-all-literal.sql: -------------------------------------------------------------------------------- 1 | SELECT 42, 'universe'; 2 | -------------------------------------------------------------------------------- /099/3-calculation.sql: -------------------------------------------------------------------------------- 1 | SELECT 4*30 AS result; 2 | -------------------------------------------------------------------------------- /100/expression.sql: -------------------------------------------------------------------------------- 1 | SELECT lidesired, lipurchased, lidesired - lipurchased AS "Remaining Desire" FROM listitems; 2 | -------------------------------------------------------------------------------- /101/contatenation.sql: -------------------------------------------------------------------------------- 1 | SELECT pfirstname || ' lives in ' || pcity AS "Hometown" FROM people; 2 | -------------------------------------------------------------------------------- /102/my-solution.sql: -------------------------------------------------------------------------------- 1 | SELECT DISTINCT pcity FROM people ORDER BY pcity ASC; -------------------------------------------------------------------------------- /103/my-solution.sql: -------------------------------------------------------------------------------- 1 | SELECT DISTINCT pcity AS "TOWNS" FROM people ORDER BY pcity ASC; -------------------------------------------------------------------------------- /104/my-solution.sql: -------------------------------------------------------------------------------- 1 | SELECT pfirstname || ' ' || plastname AS "Full Name" from people ORDER BY plastname ASC; -------------------------------------------------------------------------------- /105/my-solution.sql: -------------------------------------------------------------------------------- 1 | SELECT pstate || ' has the city ' || pcity AS "TOWNS" from people ORDER BY pstate DESC, pcity ASC; 2 | -- SELECT DISTINCT pstate, pcity, pstate || ' has the city ' || pcity AS "TOWNS" from people ORDER BY pstate DESC, pcity ASC; -------------------------------------------------------------------------------- /106/my-solution.sql: -------------------------------------------------------------------------------- 1 | SELECT lidesired - lipurchased AS "Items Still Desired" from listitems; 2 | -- SELECT lidesired, lipurchased, lidesired - lipurchased AS "Items Still Desired" from listitems ORDER BY "Items Still Desired" DESC; -------------------------------------------------------------------------------- /107/my-solution.sql: -------------------------------------------------------------------------------- 1 | SELECT ROUND((1 -(CAST(lidesired - lipurchased AS NUMERIC)/CAST(lidesired AS NUMERIC)))*100, 2) || '%' AS "Fulfillment" from listitems; 2 | -- SELECT ROUND((1 -(CAST(lidesired - lipurchased AS NUMERIC)/CAST(lidesired AS NUMERIC)))*100, 2) AS "Fulfillment" from listitems ORDER BY "Fulfillment" DESC; 3 | -- SELECT ROUND((1 -(CAST(lidesired - lipurchased AS NUMERIC)/CAST(lidesired AS NUMERIC)))*100, 2) || '%' AS "Fulfillment" from listitems ORDER BY "Fulfillment" DESC; 4 | -- SELECT ROUND((1 -(CAST(lidesired - lipurchased AS NUMERIC)/CAST(lidesired AS NUMERIC)))*100, 2) AS "Fulfillment", '%' from listitems ORDER BY "Fulfillment" DESC; -------------------------------------------------------------------------------- /108-wishlists-database/go.mod: -------------------------------------------------------------------------------- 1 | module github.com/GoesToEleven/postgresql-course/108 2 | 3 | go 1.13 4 | -------------------------------------------------------------------------------- /108-wishlists-database/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "encoding/json" 5 | "fmt" 6 | "math/rand" 7 | "os" 8 | "strings" 9 | "time" 10 | ) 11 | 12 | type city struct { 13 | name string 14 | state string 15 | population int 16 | growth string 17 | } 18 | 19 | var cities = []city{ 20 | {"New York", "New York", 8405837, "4.8%"}, 21 | {"Los Angeles", "California", 3884307, "4.8%"}, 22 | {"Chicago", "Illinois", 2718782, "-6.1%"}, 23 | {"Houston", "Texas", 2195914, "11.0%"}, 24 | {"Philadelphia", "Pennsylvania", 1553165, "2.6%"}, 25 | {"Phoenix", "Arizona", 1513367, "14.0%"}, 26 | {"San Antonio", "Texas", 1409019, "21.0%"}, 27 | {"San Diego", "California", 1355896, "10.5%"}, 28 | {"Dallas", "Texas", 1257676, "5.6%"}, 29 | {"San Jose", "California", 998537, "10.5%"}, 30 | {"Austin", "Texas", 885400, "31.7%"}, 31 | {"Indianapolis", "Indiana", 843393, "7.8%"}, 32 | {"Jacksonville", "Florida", 842583, "14.3%"}, 33 | {"San Francisco", "California", 837442, "7.7%"}, 34 | {"Columbus", "Ohio", 822553, "14.8%"}, 35 | {"Charlotte", "North Carolina", 792862, "39.1%"}, 36 | {"Fort Worth", "Texas", 792727, "45.1%"}, 37 | {"Detroit", "Michigan", 688701, "-27.1%"}, 38 | {"El Paso", "Texas", 674433, "19.4%"}, 39 | {"Memphis", "Tennessee", 653450, "-5.3%"}, 40 | {"Seattle", "Washington", 652405, "15.6%"}, 41 | {"Denver", "Colorado", 649495, "16.7%"}, 42 | {"Washington", "District of Columbia", 646449, "13.0%"}, 43 | {"Boston", "Massachusetts", 645966, "9.4%"}, 44 | {"Nashville-Davidson", "Tennessee", 634464, "16.2%"}, 45 | {"Baltimore", "Maryland", 622104, "-4.0%"}, 46 | {"Oklahoma City", "Oklahoma", 610613, "20.2%"}, 47 | {"Louisville/Jefferson County", "Kentucky", 609893, "10.0%"}, 48 | {"Portland", "Oregon", 609456, "15.0%"}, 49 | {"Las Vegas", "Nevada", 603488, "24.5%"}, 50 | {"Milwaukee", "Wisconsin", 599164, "0.3%"}, 51 | {"Albuquerque", "New Mexico", 556495, "23.5%"}, 52 | {"Tucson", "Arizona", 526116, "7.5%"}, 53 | {"Fresno", "California", 509924, "18.3%"}, 54 | {"Sacramento", "California", 479686, "17.2%"}, 55 | {"Long Beach", "California", 469428, "1.5%"}, 56 | {"Kansas City", "Missouri", 467007, "5.5%"}, 57 | {"Mesa", "Arizona", 457587, "13.5%"}, 58 | {"Virginia Beach", "Virginia", 448479, "5.1%"}, 59 | {"Atlanta", "Georgia", 447841, "6.2%"}, 60 | {"Colorado Springs", "Colorado", 439886, "21.4%"}, 61 | {"Omaha", "Nebraska", 434353, "5.9%"}, 62 | {"Raleigh", "North Carolina", 431746, "48.7%"}, 63 | {"Miami", "Florida", 417650, "14.9%"}, 64 | {"Oakland", "California", 406253, "1.3%"}, 65 | {"Minneapolis", "Minnesota", 400070, "4.5%"}, 66 | {"Tulsa", "Oklahoma", 398121, "1.3%"}, 67 | {"Cleveland", "Ohio", 390113, "-18.1%"}, 68 | {"Wichita", "Kansas", 386552, "9.7%"}, 69 | {"Arlington", "Texas", 379577, "13.3%"}, 70 | {"New Orleans", "Louisiana", 378715, "-21.6%"}, 71 | {"Bakersfield", "California", 363630, "48.4%"}, 72 | {"Tampa", "Florida", 352957, "16.0%"}, 73 | {"Honolulu", "Hawaii", 347884, "-6.2%"}, 74 | {"Aurora", "Colorado", 345803, "24.4%"}, 75 | {"Anaheim", "California", 345012, "4.7%"}, 76 | {"Santa Ana", "California", 334227, "-1.2%"}, 77 | {"St. Louis", "Missouri", 318416, "-8.2%"}, 78 | {"Riverside", "California", 316619, "22.5%"}, 79 | {"Corpus Christi", "Texas", 316381, "14.1%"}, 80 | {"Lexington-Fayette", "Kentucky", 308428, "18.0%"}, 81 | {"Pittsburgh", "Pennsylvania", 305841, "-8.3%"}, 82 | {"Anchorage", "Alaska", 300950, "15.4%"}, 83 | {"Stockton", "California", 298118, "21.8%"}, 84 | {"Cincinnati", "Ohio", 297517, "-10.1%"}, 85 | {"St. Paul", "Minnesota", 294873, "2.8%"}, 86 | {"Toledo", "Ohio", 282313, "-10.0%"}, 87 | {"Greensboro", "North Carolina", 279639, "22.3%"}, 88 | {"Newark", "New Jersey", 278427, "2.1%"}, 89 | {"Plano", "Texas", 274409, "22.4%"}, 90 | {"Henderson", "Nevada", 270811, "51.0%"}, 91 | {"Lincoln", "Nebraska", 268738, "18.0%"}, 92 | {"Buffalo", "New York", 258959, "-11.3%"}, 93 | {"Jersey City", "New Jersey", 257342, "7.2%"}, 94 | {"Chula Vista", "California", 256780, "46.2%"}, 95 | {"Fort Wayne", "Indiana", 256496, "1.0%"}, 96 | {"Orlando", "Florida", 255483, "31.2%"}, 97 | {"St. Petersburg", "Florida", 249688, "0.3%"}, 98 | {"Chandler", "Arizona", 249146, "38.7%"}, 99 | {"Laredo", "Texas", 248142, "38.2%"}, 100 | {"Norfolk", "Virginia", 246139, "5.0%"}, 101 | {"Durham", "North Carolina", 245475, "29.9%"}, 102 | {"Madison", "Wisconsin", 243344, "15.8%"}, 103 | {"Lubbock", "Texas", 239538, "19.6%"}, 104 | {"Irvine", "California", 236716, "61.3%"}, 105 | {"Winston-Salem", "North Carolina", 236441, "16.9%"}, 106 | {"Glendale", "Arizona", 234632, "5.7%"}, 107 | {"Garland", "Texas", 234566, "8.5%"}, 108 | {"Hialeah", "Florida", 233394, "3.2%"}, 109 | {"Reno", "Nevada", 233294, "26.8%"}, 110 | {"Chesapeake", "Virginia", 230571, "15.1%"}, 111 | {"Gilbert", "Arizona", 229972, "96.0%"}, 112 | {"Baton Rouge", "Louisiana", 229426, "0.4%"}, 113 | {"Irving", "Texas", 228653, "19.1%"}, 114 | {"Scottsdale", "Arizona", 226918, "11.0%"}, 115 | {"North Las Vegas", "Nevada", 226877, "92.2%"}, 116 | {"Fremont", "California", 224922, "10.0%"}, 117 | {"Boise City", "Idaho", 214237, "9.5%"}, 118 | {"Richmond", "Virginia", 214114, "8.2%"}, 119 | {"San Bernardino", "California", 213708, "13.0%"}, 120 | {"Birmingham", "Alabama", 212113, "-12.3%"}, 121 | {"Spokane", "Washington", 210721, "7.0%"}, 122 | {"Rochester", "New York", 210358, "-4.1%"}, 123 | {"Des Moines", "Iowa", 207510, "3.9%"}, 124 | {"Modesto", "California", 204933, "7.7%"}, 125 | {"Fayetteville", "North Carolina", 204408, "2.4%"}, 126 | {"Tacoma", "Washington", 203446, "4.9%"}, 127 | {"Oxnard", "California", 203007, "18.2%"}, 128 | {"Fontana", "California", 203003, "38.3%"}, 129 | {"Columbus", "Georgia", 202824, "8.7%"}, 130 | {"Montgomery", "Alabama", 201332, "-0.1%"}, 131 | {"Moreno Valley", "California", 201175, "40.4%"}, 132 | {"Shreveport", "Louisiana", 200327, "-0.1%"}, 133 | {"Aurora", "Illinois", 199963, "38.4%"}, 134 | {"Yonkers", "New York", 199766, "1.8%"}, 135 | {"Akron", "Ohio", 198100, "-8.6%"}, 136 | {"Huntington Beach", "California", 197575, "3.9%"}, 137 | {"Little Rock", "Arkansas", 197357, "7.6%"}, 138 | {"Augusta-Richmond County", "Georgia", 197350, "1.1%"}, 139 | {"Amarillo", "Texas", 196429, "12.8%"}, 140 | {"Glendale", "California", 196021, "0.3%"}, 141 | {"Mobile", "Alabama", 194899, "-1.9%"}, 142 | {"Grand Rapids", "Michigan", 192294, "-2.8%"}, 143 | {"Salt Lake City", "Utah", 191180, "5.1%"}, 144 | {"Tallahassee", "Florida", 186411, "21.8%"}, 145 | {"Huntsville", "Alabama", 186254, "16.3%"}, 146 | {"Grand Prairie", "Texas", 183372, "43.1%"}, 147 | {"Knoxville", "Tennessee", 183270, "3.9%"}, 148 | {"Worcester", "Massachusetts", 182544, "5.8%"}, 149 | {"Newport News", "Virginia", 182020, "0.9%"}, 150 | {"Brownsville", "Texas", 181860, "26.8%"}, 151 | {"Overland Park", "Kansas", 181260, "19.4%"}, 152 | {"Santa Clarita", "California", 179590, "15.3%"}, 153 | {"Providence", "Rhode Island", 177994, "2.3%"}, 154 | {"Garden Grove", "California", 175140, "5.8%"}, 155 | {"Chattanooga", "Tennessee", 173366, "10.5%"}, 156 | {"Oceanside", "California", 172794, "6.6%"}, 157 | {"Jackson", "Mississippi", 172638, "-6.8%"}, 158 | {"Fort Lauderdale", "Florida", 172389, "0.7%"}, 159 | {"Santa Rosa", "California", 171990, "15.2%"}, 160 | {"Rancho Cucamonga", "California", 171386, "32.7%"}, 161 | {"Port St. Lucie", "Florida", 171016, "91.7%"}, 162 | {"Tempe", "Arizona", 168228, "5.8%"}, 163 | {"Ontario", "California", 167500, "5.5%"}, 164 | {"Vancouver", "Washington", 167405, "14.2%"}, 165 | {"Cape Coral", "Florida", 165831, "60.4%"}, 166 | } 167 | 168 | var states = []string{ 169 | "AL", 170 | "AK", 171 | "AS", 172 | "AZ", 173 | "AR", 174 | "CA", 175 | "CO", 176 | "CT", 177 | "DE", 178 | "DC", 179 | "FM", 180 | "FL", 181 | "GA", 182 | "GU", 183 | "HI", 184 | "ID", 185 | "IL", 186 | "IN", 187 | "IA", 188 | "KS", 189 | "KY", 190 | "LA", 191 | "ME", 192 | "MH", 193 | "MD", 194 | "MA", 195 | "MI", 196 | "MN", 197 | "MS", 198 | "MO", 199 | "MT", 200 | "NE", 201 | "NV", 202 | "NH", 203 | "NJ", 204 | "NM", 205 | "NY", 206 | "NC", 207 | "ND", 208 | "MP", 209 | "OH", 210 | "OK", 211 | "OR", 212 | "PW", 213 | "PA", 214 | "PR", 215 | "RI", 216 | "SC", 217 | "SD", 218 | "TN", 219 | "TX", 220 | "UT", 221 | "VT", 222 | "VI", 223 | "VA", 224 | "WA", 225 | "WV", 226 | "WI", 227 | "WY", 228 | } 229 | 230 | func alpha() string { 231 | p := make([]byte, 26) 232 | for i := 0; i < 26; i++ { 233 | p[i] = 'a' + byte(i) 234 | } 235 | return string(p) 236 | } 237 | 238 | var seededRand = rand.New(rand.NewSource(time.Now().UnixNano())) 239 | 240 | func randStringWithCharset(length int, charset string) string { 241 | b := make([]byte, length) 242 | for i := range b { 243 | b[i] = charset[seededRand.Intn(len(charset))] 244 | } 245 | return strings.Title(string(b)) 246 | } 247 | 248 | func randString(length int) string { 249 | return randStringWithCharset(length, alpha()) 250 | } 251 | 252 | func randState() string { 253 | return states[seededRand.Intn(len(states))] 254 | } 255 | 256 | func randCity() city { 257 | return cities[seededRand.Intn(len(cities))] 258 | } 259 | 260 | const numItems = 1000 261 | 262 | func main() { 263 | f, err := os.Create("database.txt") 264 | if err != nil { 265 | panic(err) 266 | } 267 | defer f.Close() 268 | 269 | fmt.Fprintln(f, "---- PEOPLE ----") 270 | for i := 0; i < numItems; i++ { 271 | fName := randString(seededRand.Intn(12) + 2) 272 | lName := randString(seededRand.Intn(12) + 2) 273 | state := randState() 274 | city := randCity() 275 | dob := time.Now().AddDate(-(seededRand.Intn(100) + 1), -(seededRand.Intn(11) + 1), -(seededRand.Intn(26) + 1)) 276 | joined := dob.AddDate((seededRand.Intn(100) + 1), (seededRand.Intn(11) + 1), (seededRand.Intn(26) + 1)) 277 | if joined.After(time.Now()) { 278 | joined = time.Now() 279 | } 280 | lastvisit := joined.AddDate((seededRand.Intn(100) + 1), (seededRand.Intn(11) + 1), (seededRand.Intn(26) + 1)) 281 | if lastvisit.After(time.Now()) { 282 | lastvisit = time.Now() 283 | } 284 | 285 | type favs struct { 286 | Desserts []string 287 | Destinations []string 288 | } 289 | 290 | rds := []string{"cookie", "banana", "oranges", "ice cream", "strawberries", "blueberries", "cake"} 291 | rls := []string{"Hawaii", "Canada", "Spain", "France", "Italy", "Uruguay", "Peru", "Saudia Arabia", "Japan", "China", "India", "Bali", "Vietnam", "Thailand"} 292 | 293 | fv := favs{ 294 | Desserts: []string{"yum" + randString(seededRand.Intn(6)+2), "yum" + randString(seededRand.Intn(6)+2), "yum" + randString(seededRand.Intn(6)+2), rds[seededRand.Intn(len(rds))]}, 295 | Destinations: []string{"loc" + randString(seededRand.Intn(6)+2), "loc" + randString(seededRand.Intn(6)+2), "loc" + randString(seededRand.Intn(6)+2),rls[seededRand.Intn(len(rls))]}, 296 | } 297 | 298 | xb, err := json.Marshal(fv) 299 | if err != nil { 300 | panic(err) 301 | } 302 | 303 | const tf = "2006-01-02 15:04:05" 304 | 305 | points := (seededRand.Intn(10000) + 1) 306 | fmt.Fprintf(f, "('%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, '%s')", fName, lName, state, city.name, dob.Format(tf), joined.Format(tf), lastvisit.Format(tf), points, string(xb)) 307 | if i != numItems-1 { 308 | fmt.Fprint(f, ",") 309 | } 310 | fmt.Fprint(f, "\n") 311 | } 312 | fmt.Fprintln(f, "---- ITEMS ----") 313 | for i := 0; i < numItems; i++ { 314 | item := randString(seededRand.Intn(12) + 2) 315 | fmt.Fprintf(f, "('%s')", item) 316 | if i != numItems-1 { 317 | fmt.Fprint(f, ",") 318 | } 319 | fmt.Fprint(f, "\n") 320 | } 321 | fmt.Fprintln(f, "---- LISTS ----") 322 | for i := 0; i < numItems; i++ { 323 | num := seededRand.Intn(numItems) + 1 324 | lname := randString(seededRand.Intn(12) + 2) 325 | fmt.Fprintf(f, "(%d, '%s')", num, lname) 326 | if i != numItems-1 { 327 | fmt.Fprint(f, ",") 328 | } 329 | fmt.Fprint(f, "\n") 330 | } 331 | fmt.Fprintln(f, "---- LISTITEMS ----") 332 | for i := 0; i < numItems; i++ { 333 | lID := seededRand.Intn(numItems) + 1 334 | iID := seededRand.Intn(numItems) + 1 335 | ipurchased := seededRand.Intn(10) + 1 336 | idesired := seededRand.Intn(10) + ipurchased 337 | fmt.Fprintf(f, "(%d, %d, %d, %d)", lID, iID, idesired, ipurchased) 338 | if i != numItems-1 { 339 | fmt.Fprint(f, ",") 340 | } 341 | fmt.Fprint(f, "\n") 342 | } 343 | } 344 | -------------------------------------------------------------------------------- /108-wishlists-database/select-ten-people.sql: -------------------------------------------------------------------------------- 1 | SELECT * FROM "people" LIMIT 10; -------------------------------------------------------------------------------- /109/select-01.sql: -------------------------------------------------------------------------------- 1 | SELECT CAST(ppoints AS TEXT) FROM people; -------------------------------------------------------------------------------- /109/select-02.sql: -------------------------------------------------------------------------------- 1 | SELECT ppoints AS "one", CAST(ppoints AS NUMERIC) AS "two" FROM people; -------------------------------------------------------------------------------- /109/select-03.sql: -------------------------------------------------------------------------------- 1 | SELECT pid AS "one", CAST(pid AS NUMERIC) AS "two" FROM people; -------------------------------------------------------------------------------- /110/samples.sql: -------------------------------------------------------------------------------- 1 | -- math expressions 2 | SELECT 42 + 43 AS "Y"; 3 | SELECT 42 + 43.1 AS "Z"; 4 | SELECT 42.3 AS "A"; 5 | SELECT 42.3 + 5 AS "B"; 6 | SELECT 42.3 * 5 AS "C"; 7 | SELECT 2 ^8 AS "D"; 8 | SELECT 2 ^16 AS "E"; 9 | SELECT 9%2 AS "F"; 10 | SELECT 999%50 AS "G"; 11 | SELECT 999/50 AS "H"; 12 | SELECT 999/50 AS "result", 999%50 AS "remainder"; 13 | -- round 14 | SELECT ROUND(42.3, 2) AS "J"; 15 | SELECT ROUND(42.3, 0) AS "K"; 16 | SELECT ROUND(42.3) AS "L"; 17 | SELECT ROUND(42.9) AS "M"; 18 | SELECT ROUND(42.9, 4) AS "N"; 19 | -- absolute value 20 | SELECT @ -42.3 AS "O"; 21 | -------------------------------------------------------------------------------- /112/time-examples.sql: -------------------------------------------------------------------------------- 1 | SELECT CAST('now' AS TIMESTAMP); 2 | SELECT CAST('1999-01-08 04:05:06' AS TIMESTAMP) - CAST('now' AS TIMESTAMP); 3 | SELECT CAST('5 YEARS 3 MONTHS' AS INTERVAL); 4 | SELECT CAST('now' AS TIMESTAMP) + CAST('5 YEARS 3 MONTHS' AS INTERVAL); 5 | SELECT CAST('now' AS TIMESTAMP) + CAST('5Y 3MON' AS INTERVAL); 6 | SELECT CAST('now' AS TIMESTAMP) + CAST('5 Y 3 MON 2 W 20 D 14 H 58 M 48 S' AS INTERVAL); 7 | SELECT CAST('1-2 3 0:0:0' AS INTERVAL); 8 | SELECT CAST('P0001-2-3T0:0:0' AS INTERVAL); 9 | -------------------------------------------------------------------------------- /113/n7e1.sql: -------------------------------------------------------------------------------- 1 | SELECT pfirstname || ' ' || plastname || ' ' || ppoints FROM people ORDER BY ppoints DESC; 2 | -- SELECT pfirstname || ' ' || plastname || ' ' || CAST(ppoints AS TEXT) FROM people ORDER BY ppoints DESC; 3 | -- SELECT pfirstname || ' ' || plastname || ' ' || ppoints::TEXT FROM people ORDER BY ppoints DESC; 4 | -------------------------------------------------------------------------------- /114/n7e2.sql: -------------------------------------------------------------------------------- 1 | SELECT pfirstname || ' ' || plastname || ' is ' || CAST(EXTRACT(day FROM CAST('now' AS DATE) - pdob) AS INT) / 365 || ' years old' AS "Age" FROM people ORDER BY pdob ASC; 2 | -- SELECT pfirstname || ' ' || plastname || ' is ' || EXTRACT(year FROM AGE(pdob)) || ' years old' AS "Age" FROM people ORDER BY pdob ASC; 3 | -------------------------------------------------------------------------------- /115/solution.sql: -------------------------------------------------------------------------------- 1 | SELECT CAST(pid AS INT) AS "one", CAST(pid AS NUMERIC) AS "two", CAST(pid AS TEXT) AS "three" FROM people; -------------------------------------------------------------------------------- /116/solution.sql: -------------------------------------------------------------------------------- 1 | SELECT 2^8 AS "A"; 2 | SELECT 1000/150 AS "B"; 3 | SELECT 1000%150 AS "C"; 4 | SELECT 400/34.3 AS "D"; 5 | SELECT 400%34.3 AS "E"; 6 | SELECT ROUND(400/34.3, 4) AS "F"; 7 | SELECT 85>64 AS "G"; 8 | 9 | -------------------------------------------------------------------------------- /117/json.sql: -------------------------------------------------------------------------------- 1 | SELECT CAST('{"name": "Bob", "favoriteFoods": ["Banana", "Candy"]}' AS JSONB); 2 | -------------------------------------------------------------------------------- /118/accessing.sql: -------------------------------------------------------------------------------- 1 | SELECT CAST(CAST('{"name": "Postgres", "version": "12.1.0", "versionInfo": {"major": 12, "minor": 1, "patch": 0}}' AS JSONB) -> 'versionInfo' -> 'major' AS INT); 2 | -------------------------------------------------------------------------------- /119/null.sql: -------------------------------------------------------------------------------- 1 | SELECT CAST('{"name": null}' AS JSONB), NULL; 2 | -------------------------------------------------------------------------------- /120/containment.sql: -------------------------------------------------------------------------------- 1 | SELECT CAST('{"name": "Bob", "favoriteFoods": ["Banana", "Candy"]}' AS JSONB) @> CAST('{"favoriteFoods": ["Banana", "Banana"]}' AS JSONB); 2 | -------------------------------------------------------------------------------- /121/existence.sql: -------------------------------------------------------------------------------- 1 | SELECT (CAST('{"name": "Bob", "favoriteFoods": ["Banana", "Candy"]}' AS JSONB) -> 'favoriteFoods') ? 'Banana'; 2 | -------------------------------------------------------------------------------- /122/test1.sql: -------------------------------------------------------------------------------- 1 | -- ONE 2 | -- SELECT * FROM people LIMIT 10; 3 | -- SELECT pfirstname, pfavorites FROM people LIMIT 10; 4 | -- SELECT pfirstname, pfavorites -> 'Destinations' FROM people LIMIT 10; 5 | SELECT pfirstname, pfavorites -> 'Destinations' AS "DESTINATIONS" FROM people LIMIT 10; 6 | 7 | -- FUN accessing array item 8 | -- SELECT pfirstname, pfavorites -> 'Destinations' -> 3 AS "DESTINATIONS" FROM people LIMIT 10; 9 | 10 | -- TWO 11 | -- SELECT pfirstname, pfavorites -> 'Destinations' @> CAST('["Hawaii"]' AS JSONB) AS "HAWAII LOVERS" FROM people LIMIT 10; 12 | 13 | -- THREE 14 | -- SELECT pfirstname, pfavorites -> 'Destinations' ? 'Hawaii' AS "HAWAII LOVERS" FROM people LIMIT 10; 15 | -------------------------------------------------------------------------------- /123/ninja8ho1.sql: -------------------------------------------------------------------------------- 1 | -- SELECT * FROM people LIMIT 10; 2 | -- SELECT pfirstname, pfavorites FROM people LIMIT 10; 3 | SELECT pfirstname, pfavorites -> 'Desserts' FROM people LIMIT 10; 4 | 5 | -- fancy 6 | -- SELECT pfirstname, pfavorites -> 'Desserts' AS "FavDesserts" FROM people LIMIT 10; 7 | 8 | -------------------------------------------------------------------------------- /124/ninja8ho2.sql: -------------------------------------------------------------------------------- 1 | -- SELECT * FROM people LIMIT 10; 2 | -- SELECT pfirstname, pfavorites FROM people LIMIT 10; 3 | -- SELECT pfirstname, pfavorites -> 'Desserts' @> CAST('["banana"]' AS JSONB) FROM people; 4 | 5 | -- SOLUTION ONE 6 | -- SELECT pfirstname, pfavorites -> 'Desserts' @> CAST('["cake"]' AS JSONB) FROM people; 7 | 8 | -- SOLUTION TWO 9 | -- SELECT pfirstname, pfavorites @> CAST('{"Desserts":["cake"]}' AS JSONB) FROM people; 10 | 11 | -- fancy 12 | -- SELECT pfirstname, pfavorites @> CAST('{"Desserts":["cake"]}' AS JSONB) FROM people WHERE pfavorites @> CAST('{"Desserts":["cake"]}' AS JSONB); 13 | 14 | -------------------------------------------------------------------------------- /125/ninja8ho3.sql: -------------------------------------------------------------------------------- 1 | -- SELECT * FROM people LIMIT 10; 2 | -- SELECT pfirstname, pfavorites FROM people LIMIT 10; 3 | -- SELECT pfirstname, (pfavorites -> 'Desserts') FROM people LIMIT 10; 4 | SELECT pfirstname, (pfavorites -> 'Desserts') ? 'ice cream' FROM people; 5 | 6 | -- fancy 7 | -- SELECT pfirstname, (pfavorites -> 'Desserts') ? 'ice cream' FROM people WHERE (pfavorites -> 'Desserts') ? 'ice cream'; 8 | 9 | -------------------------------------------------------------------------------- /126/samples.sql: -------------------------------------------------------------------------------- 1 | -- SELECT * FROM PEOPLE; 2 | -- SELECT pfirstname, pstate FROM PEOPLE; 3 | -- SELECT pfirstname, pstate FROM PEOPLE WHERE pstate = 'NY'; 4 | 5 | -- for FUN 6 | SELECT pstate, COUNT(pstate) AS "total" FROM PEOPLE GROUP BY pstate ORDER BY total; 7 | -------------------------------------------------------------------------------- /127/samples.sql: -------------------------------------------------------------------------------- 1 | -- SELECT * FROM PEOPLE; 2 | -- SELECT pfirstname, plastname, pstate, pcity FROM PEOPLE; 3 | -- SELECT pfirstname, plastname, pstate, pcity FROM people WHERE pstate = 'NY' AND pcity = 'Cincinnati'; 4 | SELECT pfirstname, plastname, pstate, pcity FROM people WHERE pstate = 'NY' OR pcity = 'Cincinnati'; 5 | 6 | -------------------------------------------------------------------------------- /128/samples.sql: -------------------------------------------------------------------------------- 1 | SELECT pfirstname, plastname, pstate FROM people WHERE pstate <> 'NY'; 2 | SELECT pfirstname, plastname, ppoints FROM people WHERE ppoints > 250; 3 | SELECT pfirstname, plastname, pdob FROM people WHERE pdob > '2001-06-20 16:39:08'; 4 | -------------------------------------------------------------------------------- /129/samples.sql: -------------------------------------------------------------------------------- 1 | -- SELECT pfirstname, plastname, ppoints FROM people WHERE ppoints BETWEEN 250 AND 750; 2 | -- SELECT pfirstname, plastname, ppoints FROM people WHERE ppoints >= 250 AND ppoints <= 750; 3 | 4 | SELECT pfirstname, plastname, pdob FROM people WHERE pdob BETWEEN '2000-01-01 01:01:01' AND '2010-01-01 01:01:01'; 5 | -------------------------------------------------------------------------------- /130/samples.sql: -------------------------------------------------------------------------------- 1 | SELECT pfirstname, plastname, pstate, pcity FROM people WHERE pstate IN ('CA', 'WA', 'OR'); 2 | -- SELECT pfirstname, plastname, pstate, pcity FROM people WHERE pstate = 'CA' OR pstate = 'WA' OR pstate = 'OR'; 3 | -------------------------------------------------------------------------------- /131/samples.sql: -------------------------------------------------------------------------------- 1 | -- SELECT pfirstname, plastname, pstate, pcity FROM people WHERE pstate LIKE 'A_'; 2 | -- SELECT pfirstname, plastname, pstate, pcity FROM people WHERE pcity LIKE 'A%'; 3 | -- SELECT pfirstname, plastname, pstate, pcity FROM people WHERE pcity LIKE '%a%'; 4 | 5 | 6 | -- ILIKE 7 | SELECT pfirstname, plastname, pstate, pcity FROM people WHERE pcity ILIKE 'a%'; 8 | -------------------------------------------------------------------------------- /132/samples.sql: -------------------------------------------------------------------------------- 1 | SELECT pfirstname, plastname, pstate, pcity FROM people WHERE pcity IS NULL; 2 | -------------------------------------------------------------------------------- /133/samples.sql: -------------------------------------------------------------------------------- 1 | -- SELECT pfirstname, plastname, pstate, pcity FROM people WHERE pcity IS NOT NULL LIMIT 10; 2 | 3 | -- SELECT pfirstname, plastname, pstate, pcity FROM people WHERE pstate = 'NY' AND pcity NOT LIKE 'A%' ORDER BY pcity ASC; 4 | -- SELECT pfirstname, plastname, pstate, pcity FROM people WHERE pcity NOT LIKE 'A%' ORDER BY pcity ASC; 5 | 6 | SELECT pfirstname, plastname, ppoints, pdob 7 | FROM people 8 | WHERE ppoints NOT BETWEEN 250 AND 750 9 | ORDER BY ppoints ASC; 10 | 11 | -- SELECT pfirstname, plastname, ppoints, pdob 12 | -- FROM people 13 | -- WHERE ppoints < 250 OR ppoints > 750 14 | -- ORDER BY ppoints ASC; 15 | -------------------------------------------------------------------------------- /134/n9e1.sql: -------------------------------------------------------------------------------- 1 | SELECT pfirstname, plastname, ppoints 2 | FROM people 3 | WHERE ppoints >= 5000; 4 | -------------------------------------------------------------------------------- /135/n9e2.sql: -------------------------------------------------------------------------------- 1 | SELECT pfirstname, plastname, pstate, ppoints 2 | FROM people 3 | WHERE ppoints >= 9500 4 | OR pstate = 'NY'; 5 | -------------------------------------------------------------------------------- /136/n9e3.sql: -------------------------------------------------------------------------------- 1 | SELECT pfirstname, plastname, pstate, ppoints 2 | FROM people 3 | WHERE ppoints >= 7000 4 | AND pstate = 'NY'; 5 | -------------------------------------------------------------------------------- /137/n9e4.sql: -------------------------------------------------------------------------------- 1 | -- SELECT pfirstname, plastname, pstate, ppoints 2 | -- FROM people 3 | -- WHERE ppoints >= 7000 4 | -- AND NOT (pstate = 'NY'); 5 | 6 | SELECT pfirstname, plastname, pstate, ppoints 7 | FROM people 8 | WHERE ppoints >= 7000 9 | AND pstate <> 'NY'; 10 | -------------------------------------------------------------------------------- /138/n9e5.sql: -------------------------------------------------------------------------------- 1 | -- SELECT pfirstname, plastname, pdob 2 | -- FROM people 3 | -- WHERE pdob BETWEEN '2004-01-01' AND '2006-12-31 23:59:59'; 4 | 5 | SELECT pfirstname, plastname, pstate, pdob 6 | FROM people 7 | WHERE pdob BETWEEN '2000-01-01' AND '2010-12-31 23:59:59' 8 | AND pstate = 'CA'; 9 | -------------------------------------------------------------------------------- /139/n9e6.sql: -------------------------------------------------------------------------------- 1 | -- SELECT pfirstname, plastname, pstate 2 | -- FROM people 3 | -- WHERE pstate IN ('WY', 'KY', 'GA'); 4 | 5 | SELECT pfirstname, plastname, pstate 6 | FROM people 7 | WHERE pstate NOT IN ('WY', 'KY', 'GA'); 8 | -------------------------------------------------------------------------------- /140/n9e7.sql: -------------------------------------------------------------------------------- 1 | SELECT pfirstname, plastname, pcity 2 | FROM people 3 | WHERE pcity LIKE '%b%'; 4 | -------------------------------------------------------------------------------- /141/n9e8.sql: -------------------------------------------------------------------------------- 1 | SELECT pfirstname, plastname, pfavorites -> 'Desserts' -> 0 2 | FROM people 3 | WHERE pfavorites -> 'Desserts' ->> 0 ILIKE '%a%'; 4 | -------------------------------------------------------------------------------- /143-movie-database/all-sql-commands.sql: -------------------------------------------------------------------------------- 1 | -- CREATE DATABASE movies; 2 | 3 | DROP TABLE IF EXISTS customers CASCADE; 4 | DROP TABLE IF EXISTS movies CASCADE; 5 | DROP TABLE IF EXISTS rentals CASCADE; 6 | DROP TABLE IF EXISTS employees CASCADE; 7 | DROP TABLE IF EXISTS department CASCADE; 8 | 9 | CREATE TABLE customers( 10 | cid SERIAL PRIMARY KEY, 11 | cname VARCHAR(50) NOT NULL 12 | ); 13 | 14 | CREATE TABLE movies( 15 | mid SERIAL PRIMARY KEY, 16 | mname TEXT NOT NULL 17 | ); 18 | 19 | CREATE TABLE rentals( 20 | rid SERIAL PRIMARY KEY, 21 | cid INT REFERENCES customers NOT NULL, 22 | mid INT REFERENCES movies NOT NULL 23 | ); 24 | 25 | CREATE TABLE employees( 26 | eID SERIAL PRIMARY KEY, 27 | eName VARCHAR(50) NOT NULL 28 | ); 29 | 30 | CREATE TABLE department( 31 | dID SERIAL PRIMARY KEY, 32 | dept VARCHAR(50), 33 | eID INT REFERENCES employees 34 | ); 35 | -- NOTE dept and eID can be NULL to illustrate joins 36 | 37 | 38 | INSERT INTO customers (cname) VALUES 39 | ('James'), 40 | ('Moneypenny'), 41 | ('Q'), 42 | ('M'), 43 | ('Ian'), 44 | ('Fleming'), 45 | ('Bruce'), 46 | ('Tyler'); 47 | 48 | INSERT INTO movies (mname) VALUES 49 | ('Ex Machina'), 50 | ('A Man Called Ove'), 51 | ('The Lives of Others'), 52 | ('Intouchables'), 53 | ('Limitless'), 54 | ('Kumare'), 55 | ('The Fog of War'), 56 | ('Forks Over Knives'); 57 | 58 | INSERT INTO rentals (cid, mid) VALUES 59 | (2,3), 60 | (2,4), 61 | (4,1), 62 | (3,6), 63 | (1,4), 64 | (5,2), 65 | (6,1), 66 | (5,5), 67 | (4,3), 68 | (3,1), 69 | (2,2), 70 | (1,3), 71 | (1,4), 72 | (2,6), 73 | (4,5); 74 | 75 | INSERT INTO employees (ename) VALUES 76 | ('Stacey'), 77 | ('Shelley'), 78 | ('Samantha'), 79 | ('Shannon'), 80 | ('Sherry'), 81 | ('Sylvia'); 82 | 83 | INSERT INTO department (dept, eid) VALUES 84 | ('Sales', 1), 85 | ('Sales', 2), 86 | ('Sales', 3), 87 | ('Manager', 4), 88 | ('Owner', null); 89 | -------------------------------------------------------------------------------- /143-movie-database/testing-files.sql/01-examples.sql: -------------------------------------------------------------------------------- 1 | -- INNER JOIN 2 | -- SELECT employees.ename, department.dept FROM employees JOIN department ON employees.eid = department.eid; 3 | -- SELECT employees.ename, department.dept FROM employees JOIN department USING(eid); 4 | -- SELECT employees.eid FROM employees INTERSECT SELECT department.eid FROM department; 5 | 6 | -- LEFT JOIN 7 | -- SELECT employees.ename, department.dept FROM employees LEFT JOIN department ON employees.eid = department.eid; 8 | -- SELECT employees.ename, department.dept FROM employees LEFT JOIN department USING(eid); 9 | 10 | -- RIGHT JOIN 11 | -- SELECT employees.ename, department.dept FROM employees RIGHT JOIN department ON employees.eid = department.eid; 12 | -- SELECT employees.ename, department.dept FROM employees RIGHT JOIN department USING(eid); 13 | 14 | -- FULL JOIN 15 | -- SELECT employees.ename, department.dept FROM employees FULL JOIN department ON employees.eid = department.eid; 16 | -- SELECT employees.ename, department.dept FROM employees FULL JOIN department USING(eid); 17 | 18 | -- EXCEPT 19 | -- SELECT employees.eid FROM employees EXCEPT SELECT department.eid FROM department; 20 | -- SELECT department.eid FROM department EXCEPT SELECT employees.eid FROM employees; 21 | 22 | -- UNION 23 | -- SELECT cname FROM customers UNION SELECT mname FROM movies; 24 | -- SELECT cname FROM customers UNION SELECT mname FROM movies ORDER BY cname; 25 | -- SELECT cname AS "RESULTS" FROM customers UNION SELECT mname FROM movies ORDER BY "RESULTS"; 26 | 27 | -- some of the above can also be written as ... 28 | -- SELECT employees.ename, department.dept FROM employees INNER JOIN department ON employees.eid = department.eid; 29 | -- SELECT employees.ename, department.dept FROM employees LEFT OUTER JOIN department ON employees.eid = department.eid; 30 | -- SELECT employees.ename, department.dept FROM employees RIGHT OUTER JOIN department ON employees.eid = department.eid; 31 | -- SELECT employees.ename, department.dept FROM employees FULL OUTER JOIN department ON employees.eid = department.eid; 32 | 33 | -- CROSS JOIN 34 | -- SELECT * FROM employees CROSS JOIN department; 35 | 36 | -- FULL JOIN multiple TABLES 37 | -- SELECT customers.cname, movies.mname FROM (customers JOIN rentals USING (cid)) JOIN movies USING (mid); 38 | -------------------------------------------------------------------------------- /151/test.sql: -------------------------------------------------------------------------------- 1 | SELECT customers.cname, movies.mname FROM customers NATURAL JOIN rentals NATURAL JOIN movies; 2 | 3 | -- same result 4 | SELECT customers.cname, movies.mname FROM customers JOIN rentals USING (cid) JOIN movies USING (mid); 5 | 6 | -- same result 7 | SELECT customers.cname, movies.mname FROM customers JOIN rentals ON (customers.cid=rentals.cid) JOIN movies ON (rentals.mid=movies.mid); 8 | 9 | -- same result 10 | -- can't do LEFT or RIGHT with this 11 | -- SELECT customers.cname, movies.mname FROM customers, rentals, movies WHERE customers.cid=rentals.cid AND rentals.mid=movies.mid; 12 | -------------------------------------------------------------------------------- /152-some-setup-files-also/0-setup.sql: -------------------------------------------------------------------------------- 1 | -- SELECT * from customers; 2 | 3 | -- SELECT customers.cname, rentals.rid, movies.mname FROM 4 | -- (customers LEFT JOIN rentals USING (cid)) 5 | -- LEFT JOIN movies USING (mid); 6 | 7 | -- SELECT rentals.rid, 8 | -- (SELECT customers.cname FROM customers WHERE rentals.cid = customers.cid) AS "name" 9 | -- from rentals; 10 | 11 | -- SELECT rentals.rid, customers.cname FROM rentals JOIN customers USING (cid); 12 | 13 | 14 | 15 | 16 | -- COUNT 17 | 18 | 19 | -- SELECT COUNT(*) FROM customers; 20 | -- SELECT COUNT(*) FROM rentals; 21 | -- SELECT COUNT(*) FROM movies; 22 | 23 | -- SELECT COUNT(*) FROM customers WHERE cname LIKE '%e%'; 24 | 25 | -- SCALAR SUBQUERY 26 | -- SELECT employees.ename, 27 | -- (SELECT department.dept FROM department WHERE department.eid = employees.eid) AS "DPT" 28 | -- FROM employees; 29 | 30 | -- SELECT employees.ename, department.dept FROM employees LEFT JOIN 31 | -- department USING (eid); 32 | 33 | 34 | -- COUNT SCALAR SUBQUERY 35 | -- SELECT customers.cname, 36 | -- (SELECT COUNT(*) FROM rentals WHERE rentals.cid = customers.cid) AS "Amt" 37 | -- FROM customers; 38 | 39 | SELECT customers.cname, 40 | (SELECT COUNT(*) FROM rentals WHERE rentals.cid = customers.cid) AS "Amt" 41 | FROM customers WHERE 42 | (SELECT COUNT(*) FROM rentals WHERE rentals.cid = customers.cid) > 2; 43 | 44 | -------------------------------------------------------------------------------- /152-some-setup-files-also/1-setup.sql: -------------------------------------------------------------------------------- 1 | -- SELECT DISTINCT pstate FROM people WHERE pstate LIKE 'O_'; 2 | 3 | -- SELECT pfirstname, plastname, pstate FROM people 4 | -- WHERE pstate IN (SELECT DISTINCT pstate FROM people WHERE pstate LIKE 'O_'); 5 | 6 | -- AGGREGATES 7 | -- SELECT COUNT(*) FROM people; 8 | -- SELECT COUNT(pid) FROM people; 9 | -- SELECT COUNT(*) AS "OR Pop" FROM people WHERE pstate = 'OR'; 10 | -- SELECT SUM(ppoints) FROM people; 11 | -- SELECT AVG(ppoints) FROM people; 12 | -- SELECT MAX(ppoints) FROM people; 13 | -- SELECT MIN(ppoints) FROM people; 14 | 15 | -- SELECT MIN(pdob) FROM people; 16 | -- SELECT MAX(pdob) FROM people; 17 | 18 | -- SELECT COUNT(DISTINCT pcity) FROM people; 19 | -- Select DISTINCT pcity FROM people; 20 | 21 | -- MAX 22 | 23 | -- SELECT MAX(ppoints) FROM people; 24 | 25 | -- SELECT pfirstname, plastname, ppoints FROM people ORDER BY ppoints DESC LIMIT 10; 26 | 27 | -- SELECT pfirstname, plastname, ppoints FROM people 28 | -- WHERE ppoints = (SELECT MAX(ppoints) FROM people); 29 | 30 | -- SELECT pfirstname, plastname, ppoints FROM people 31 | -- WHERE ppoints > (SELECT AVG(ppoints) FROM people); 32 | 33 | -- SELECT COUNT(*) FROM people 34 | -- WHERE ppoints > (SELECT AVG(ppoints) FROM people); 35 | 36 | -- SELECT pfirstname, plastname, 37 | -- (SELECT COUNT(*) FROM lists WHERE people.pid = lists.pid) 38 | -- AS AMT 39 | -- FROM people ORDER BY AMT DESC; 40 | 41 | -- SELECT pfirstname, plastname, lid, liid FROM 42 | -- people JOIN lists USING (pid) 43 | -- JOIN listitems USING (lid); 44 | 45 | 46 | SELECT pfirstname, plastname, lid, liid, iname FROM 47 | people JOIN lists USING (pid) 48 | JOIN listitems USING (lid) 49 | JOIN items USING (iid); -------------------------------------------------------------------------------- /152-some-setup-files-also/n10e1.sql: -------------------------------------------------------------------------------- 1 | SELECT pid, pfirstname, plastname FROM people WHERE pid = 18; 2 | -------------------------------------------------------------------------------- /153/n10e2.sql: -------------------------------------------------------------------------------- 1 | SELECT pfirstname, plastname FROM people WHERE pfirstname LIKE '%e%'; 2 | -- SELECT pfirstname, plastname FROM people WHERE pfirstname LIKE '%e%' OR plastname LIKE '%e%'; 3 | -------------------------------------------------------------------------------- /154/n10e3.sql: -------------------------------------------------------------------------------- 1 | SELECT pfirstname, plastname, pstate, pdob FROM people 2 | WHERE (pfirstname LIKE '%e%' OR plastname LIKE '%e%') 3 | AND pstate = 'CA' 4 | AND pdob > '1999-12-31'; 5 | -------------------------------------------------------------------------------- /155/n10e4.sql: -------------------------------------------------------------------------------- 1 | SELECT pfirstname, plastname, pdob FROM people 2 | WHERE pdob < CAST('now' AS TIMESTAMP) - CAST('10 years' AS INTERVAL); 3 | -------------------------------------------------------------------------------- /156/n11e1.sql: -------------------------------------------------------------------------------- 1 | SELECT employees.ename, department.dept 2 | FROM employees JOIN department ON (employees.eid = department.eid) 3 | WHERE department.dept = 'Sales'; 4 | 5 | SELECT employees.ename, department.dept 6 | FROM employees JOIN department ON (employees.eid = department.eid); 7 | 8 | SELECT employees.ename, department.dept 9 | FROM employees LEFT JOIN department ON (employees.eid = department.eid); 10 | 11 | SELECT employees.ename, department.dept 12 | FROM employees RIGHT JOIN department ON (employees.eid = department.eid); 13 | 14 | SELECT employees.ename, department.dept 15 | FROM employees FULL JOIN department ON (employees.eid = department.eid); 16 | -------------------------------------------------------------------------------- /157/n11e2.sql: -------------------------------------------------------------------------------- 1 | SELECT cname, mname, rid FROM 2 | customers NATURAL JOIN rentals NATURAL JOIN movies 3 | LIMIT 10; 4 | 5 | SELECT customers.cname, movies.mname, rentals.rid FROM 6 | customers JOIN rentals ON (customers.cid = rentals.cid) 7 | JOIN movies ON (rentals.mid = movies.mid) 8 | LIMIT 10; 9 | -------------------------------------------------------------------------------- /158/n11e3.sql: -------------------------------------------------------------------------------- 1 | SELECT employees.ename, department.dept 2 | FROM employees LEFT JOIN department USING (eid); 3 | -------------------------------------------------------------------------------- /159/n11e4.sql: -------------------------------------------------------------------------------- 1 | SELECT department.dept, employees.ename FROM 2 | employees RIGHT JOIN department USING (eid); 3 | 4 | SELECT department.dept, employees.ename FROM 5 | department LEFT JOIN employees USING (eid); 6 | -------------------------------------------------------------------------------- /160/n11e5.sql: -------------------------------------------------------------------------------- 1 | SELECT customers.cname, rentals.rid FROM 2 | customers NATURAL LEFT JOIN rentals; 3 | 4 | SELECT customers.cname, rentals.rid, movies.mname FROM 5 | customers NATURAL LEFT JOIN rentals 6 | NATURAL LEFT JOIN movies; 7 | 8 | SELECT customers.cname, rentals.rid, movies.mname FROM 9 | customers NATURAL LEFT JOIN rentals 10 | NATURAL FULL JOIN movies; 11 | -------------------------------------------------------------------------------- /161/n12e1.sql: -------------------------------------------------------------------------------- 1 | SELECT customers.cname, rentals.rid, movies.mname FROM 2 | rentals RIGHT JOIN customers USING (cid) 3 | LEFT JOIN movies USING (mid); 4 | -------------------------------------------------------------------------------- /162/n12e2.sql: -------------------------------------------------------------------------------- 1 | SELECT movies.mname, rentals.rid, customers.cname FROM 2 | customers NATURAL JOIN rentals 3 | NATURAL RIGHT JOIN movies; 4 | 5 | SELECT movies.mname, rentals.rid, customers.cname FROM 6 | movies NATURAL LEFT JOIN rentals 7 | NATURAL LEFT JOIN customers; 8 | -------------------------------------------------------------------------------- /163/n12e3.sql: -------------------------------------------------------------------------------- 1 | SELECT cname FROM customers UNION 2 | SELECT ename FROM employees; 3 | 4 | SELECT cname FROM customers UNION 5 | SELECT ename FROM employees UNION 6 | SELECT mname FROM movies; 7 | -------------------------------------------------------------------------------- /164/n12e4.sql: -------------------------------------------------------------------------------- 1 | -- SELECT pfirstname, plastname FROM people LIMIT 10; 2 | 3 | -- SELECT pfirstname, plastname, lname FROM 4 | -- people LEFT JOIN lists ON (people.pid = lists.pid) 5 | -- LIMIT 10; 6 | 7 | -- SELECT pfirstname, plastname, lname, iname FROM 8 | -- people LEFT JOIN lists ON (people.pid = lists.pid) 9 | -- LEFT JOIN listitems USING (lid) 10 | -- NATURAL LEFT JOIN items 11 | -- LIMIT 10; 12 | 13 | -- Consistent join methods 14 | SELECT pfirstname, plastname, lname, iname FROM 15 | people LEFT JOIN lists ON (people.pid = lists.pid) 16 | LEFT JOIN listitems ON (lists.lid = listitems.lid) 17 | LEFT JOIN items ON (listitems.iid = items.iid) 18 | LIMIT 10; 19 | -------------------------------------------------------------------------------- /165/code.sql: -------------------------------------------------------------------------------- 1 | SELECT rentals.rid, customers.cname FROM 2 | rentals JOIN customers USING (cid); 3 | 4 | SELECT rentals.rid, 5 | (SELECT customers.cname FROM customers 6 | WHERE rentals.cid = customers.cid) AS "name" 7 | FROM rentals; 8 | 9 | SELECT customers.cname, 10 | (SELECT COUNT(*) FROM rentals 11 | WHERE customers.cid=rentals.cid) AS "# Rentals" 12 | FROM customers; 13 | 14 | -- SELECT people.pid, people.pfirstname FROM people 15 | -- WHERE people.pid > (SELECT AVG(people.pid) FROM people); 16 | -------------------------------------------------------------------------------- /166/code.sql: -------------------------------------------------------------------------------- 1 | SELECT DISTINCT pstate FROM people 2 | WHERE pstate LIKE 'O_'; 3 | 4 | SELECT pfirstname, plastname, pstate FROM people 5 | WHERE pstate IN (SELECT DISTINCT pstate FROM people WHERE pstate LIKE 'O_'); 6 | 7 | SELECT pfirstname, plastname, pstate FROM people 8 | WHERE pstate LIKE 'O_'; 9 | -------------------------------------------------------------------------------- /168/answer.sql: -------------------------------------------------------------------------------- 1 | SELECT * FROM employees; 2 | SELECT * FROM department; 3 | 4 | SELECT employees.ename, department.dept FROM 5 | employees JOIN department ON (employees.eid=department.eid) 6 | WHERE department.dept = 'Sales'; 7 | 8 | -- WRONG: 9 | -- SELECT employees.ename, 10 | -- (SELECT department.dept FROM department 11 | -- WHERE employees.eid=department.eid 12 | -- AND department.dept='Sales' 13 | -- AND department.dept IS NOT NULL) AS "department name" 14 | -- FROM employees; 15 | 16 | -- RIGHT 17 | SELECT 18 | (SELECT employees.ename FROM employees 19 | WHERE employees.eid = department.eid) AS "employee name", 20 | department.dept 21 | FROM department 22 | WHERE department.dept = 'Sales'; 23 | -------------------------------------------------------------------------------- /169/n13e2.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | customers.cname, 3 | movies.mname, 4 | rentals.rid 5 | FROM customers JOIN rentals USING (cid) 6 | JOIN movies USING (mid) 7 | LIMIT 10; 8 | 9 | SELECT 10 | (SELECT customers.cname FROM customers WHERE customers.cid = rentals.cid), 11 | (SELECT movies.mname FROM movies WHERE movies.mid = rentals.mid), 12 | rentals.rid 13 | FROM rentals 14 | LIMIT 10; 15 | -------------------------------------------------------------------------------- /170/solution.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | employees.ename, 3 | department.dept 4 | FROM employees LEFT JOIN department USING (eid); 5 | 6 | SELECT 7 | employees.ename, 8 | (SELECT department.dept 9 | FROM department 10 | WHERE department.eid = employees.eid) AS "dept name" 11 | FROM employees; -------------------------------------------------------------------------------- /171/solution.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | department.dept, 3 | employees.ename 4 | FROM employees RIGHT JOIN department USING (eid); 5 | 6 | SELECT 7 | department.dept, 8 | (SELECT employees.ename 9 | FROM employees 10 | WHERE employees.eid = department.eid) 11 | AS "emp name" 12 | FROM department; 13 | 14 | -------------------------------------------------------------------------------- /172/n13e5.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | customers.cname, 3 | rentals.rid, 4 | movies.mname 5 | FROM customers LEFT JOIN rentals USING (cid) 6 | LEFT JOIN movies USING (mid); 7 | -------------------------------------------------------------------------------- /173/n13e6.sql: -------------------------------------------------------------------------------- 1 | SELECT cname FROM customers 2 | UNION 3 | SELECT ename FROM employees; 4 | -------------------------------------------------------------------------------- /174/n13e7.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | people.pfirstname, 3 | people.plastname, 4 | lists.lname, 5 | items.iname 6 | FROM people NATURAL LEFT JOIN lists 7 | NATURAL LEFT JOIN listitems 8 | NATURAL LEFT JOIN items 9 | LIMIT 10; 10 | -------------------------------------------------------------------------------- /175-aggregate/samples.sql: -------------------------------------------------------------------------------- 1 | -- AGGREGATES 2 | -- SELECT COUNT(*) FROM people; 3 | -- SELECT COUNT(pid) FROM people; 4 | -- SELECT COUNT(*) AS "OR Pop" FROM people WHERE pstate = 'OR'; 5 | -- SELECT SUM(ppoints) FROM people; 6 | -- SELECT AVG(ppoints) FROM people; 7 | -- SELECT MAX(ppoints) FROM people; 8 | -- SELECT MIN(ppoints) FROM people; 9 | -- SELECT MIN(pdob) FROM people; 10 | -- SELECT MAX(pdob) FROM people; 11 | -- ... just fyi here ... 12 | -- SELECT pfirstname, plastname, ppoints FROM people ORDER BY ppoints DESC LIMIT 10; 13 | 14 | -- DISTINCT COUNT 15 | -- SELECT COUNT(DISTINCT pcity) FROM people; 16 | -- Select DISTINCT pcity FROM people; 17 | 18 | -- SUBQUERY VALUE 19 | -- SELECT pfirstname, plastname, 20 | -- (SELECT COUNT(*) FROM lists WHERE people.pid = lists.pid) AS AMT 21 | -- FROM people ORDER BY AMT DESC; 22 | -- ... just fyi here ... 23 | -- SELECT pfirstname, plastname, lid, liid FROM 24 | -- people JOIN lists USING (pid) 25 | -- JOIN listitems USING (lid); 26 | -- ... just fyi here ... 27 | -- SELECT pfirstname, plastname, lid, liid, iname FROM 28 | -- people JOIN lists USING (pid) 29 | -- JOIN listitems USING (lid) 30 | -- JOIN items USING (iid); 31 | 32 | -- SUBQUERY FILTER 33 | -- SELECT pfirstname, plastname, ppoints FROM people WHERE ppoints = (SELECT MAX(ppoints) FROM people); 34 | -- SELECT pfirstname, plastname, ppoints FROM people WHERE ppoints > (SELECT AVG(ppoints) FROM people); 35 | -- SELECT COUNT(*) FROM people WHERE ppoints > (SELECT AVG(ppoints) FROM people); 36 | -------------------------------------------------------------------------------- /176/samples.sql: -------------------------------------------------------------------------------- 1 | -- DISTINCT COUNT 2 | SELECT COUNT(DISTINCT pcity) FROM people; 3 | -- Select DISTINCT pcity FROM people ORDER BY pcity; 4 | -- Select pcity FROM people ORDER BY pcity; 5 | 6 | -- SUBQUERY VALUE 7 | -- SELECT pfirstname, plastname, 8 | -- (SELECT COUNT(*) FROM lists WHERE people.pid = lists.pid) AS AMT 9 | -- FROM people ORDER BY AMT DESC; 10 | -- ... just fyi here ... 11 | -- SELECT pfirstname, plastname, lid, liid FROM 12 | -- people JOIN lists USING (pid) 13 | -- JOIN listitems USING (lid); 14 | -- ... just fyi here ... 15 | -- SELECT pfirstname, plastname, lid, liid, iname FROM 16 | -- people JOIN lists USING (pid) 17 | -- JOIN listitems USING (lid) 18 | -- JOIN items USING (iid); 19 | 20 | -- SUBQUERY FILTER 21 | -- SELECT pfirstname, plastname, ppoints FROM people WHERE ppoints = (SELECT MAX(ppoints) FROM people); 22 | -- SELECT pfirstname, plastname, ppoints FROM people WHERE ppoints > (SELECT AVG(ppoints) FROM people); 23 | -- SELECT COUNT(*) FROM people WHERE ppoints > (SELECT AVG(ppoints) FROM people); 24 | -------------------------------------------------------------------------------- /177/movies-sample.sql: -------------------------------------------------------------------------------- 1 | SELECT customers.cname, 2 | (SELECT COUNT(*) FROM rentals 3 | WHERE customers.cid = rentals.cid) 4 | AS "movies rented" 5 | FROM customers; -------------------------------------------------------------------------------- /177/samples.sql: -------------------------------------------------------------------------------- 1 | -- SUBQUERY VALUE 2 | -- SELECT pfirstname, plastname, 3 | -- (SELECT COUNT(*) FROM lists WHERE people.pid = lists.pid) AS AMT 4 | -- FROM people ORDER BY AMT DESC; 5 | -- ... just fyi here ... 6 | -- SELECT pfirstname, plastname, lid, liid FROM 7 | -- people JOIN lists USING (pid) 8 | -- JOIN listitems USING (lid); 9 | -- ... just fyi here ... 10 | -- SELECT pfirstname, plastname, lid, liid, iname FROM 11 | -- people JOIN lists USING (pid) 12 | -- JOIN listitems USING (lid) 13 | -- JOIN items USING (iid); 14 | 15 | -- SUBQUERY FILTER 16 | -- SELECT pfirstname, plastname, ppoints FROM people WHERE ppoints = (SELECT MAX(ppoints) FROM people); 17 | -- SELECT pfirstname, plastname, ppoints FROM people WHERE ppoints > (SELECT AVG(ppoints) FROM people); 18 | -- SELECT COUNT(*) FROM people WHERE ppoints > (SELECT AVG(ppoints) FROM people); 19 | -------------------------------------------------------------------------------- /178/movies-sample.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GoesToEleven/postgresql-course/e50dc7cd80bd153eb04e7b57eafcbb5bbccaa507/178/movies-sample.sql -------------------------------------------------------------------------------- /178/samples.sql: -------------------------------------------------------------------------------- 1 | -- SUBQUERY FILTER 2 | -- SELECT pfirstname, plastname, ppoints FROM people WHERE ppoints = (SELECT MAX(ppoints) FROM people); 3 | -- SELECT pfirstname, plastname, ppoints FROM people WHERE ppoints > (SELECT AVG(ppoints) FROM people); 4 | -- SELECT COUNT(*) FROM people WHERE ppoints > (SELECT AVG(ppoints) FROM people); 5 | -------------------------------------------------------------------------------- /179/n14e1.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | pfirstname, 3 | plastname, 4 | ppoints 5 | FROM people 6 | WHERE ppoints > (SELECT AVG(ppoints) FROM people); 7 | 8 | SELECT 9 | COUNT(*) 10 | FROM people 11 | WHERE ppoints > (SELECT AVG(ppoints) FROM people); 12 | -------------------------------------------------------------------------------- /179/setup.sql: -------------------------------------------------------------------------------- 1 | -- SUBQUERY VALUE 2 | -- SELECT pfirstname, plastname, 3 | -- (SELECT COUNT(*) FROM lists WHERE people.pid = lists.pid) AS AMT 4 | -- FROM people ORDER BY AMT DESC; 5 | -- ... just fyi here ... 6 | -- SELECT pfirstname, plastname, lid, liid FROM 7 | -- people JOIN lists USING (pid) 8 | -- JOIN listitems USING (lid); 9 | -- ... just fyi here ... 10 | -- SELECT pfirstname, plastname, lid, liid, iname FROM 11 | -- people JOIN lists USING (pid) 12 | -- JOIN listitems USING (lid) 13 | -- JOIN items USING (iid); 14 | 15 | -- ... THIS IS NEW ... 16 | SELECT 17 | pfirstname, 18 | plastname, 19 | (SELECT COUNT(*) FROM listitems WHERE listitems.lid = lists.lid) AS AMT 20 | FROM people JOIN lists USING (pid) 21 | ORDER BY AMT DESC; 22 | 23 | -- SUBQUERY FILTER 24 | -- SELECT pfirstname, plastname, ppoints FROM people WHERE ppoints = (SELECT MAX(ppoints) FROM people); 25 | -- SELECT pfirstname, plastname, ppoints FROM people WHERE ppoints > (SELECT AVG(ppoints) FROM people); 26 | -- SELECT COUNT(*) FROM people WHERE ppoints > (SELECT AVG(ppoints) FROM people); 27 | -------------------------------------------------------------------------------- /180/n14e2.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | pfirstname, 3 | plastname, 4 | (SELECT COUNT(*) FROM lists WHERE lists.pid = people.pid) AS amt 5 | FROM people 6 | ORDER BY amt DESC; 7 | -------------------------------------------------------------------------------- /181/n14e3.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | pfirstname, 3 | plastname, 4 | (SELECT COUNT(*) FROM listitems WHERE listitems.lid = lists.lid) 5 | FROM people JOIN lists USING (pid) 6 | WHERE (SELECT COUNT(*) FROM listitems WHERE listitems.lid = lists.lid) > 1 7 | ORDER BY count DESC; 8 | -------------------------------------------------------------------------------- /182/0-setup.sql: -------------------------------------------------------------------------------- 1 | -- SELECT DISTINCT pstate FROM people; 2 | -- SELECT pstate FROM people GROUP BY pstate; 3 | -- SELECT pstate, AVG(ppoints) FROM people GROUP BY pstate; 4 | -------------------------------------------------------------------------------- /182/samples.sql: -------------------------------------------------------------------------------- 1 | -- SELECT pcity, COUNT(*) AS "population" FROM people GROUP BY pcity; 2 | 3 | -- SELECT 4 | -- pfirstname, 5 | -- plastname, 6 | -- (SELECT COUNT(*) FROM listitems WHERE listitems.lid = lists.lid) 7 | -- FROM people JOIN lists USING (pid) 8 | -- WHERE (SELECT COUNT(*) FROM listitems WHERE listitems.lid = lists.lid) > 1 9 | -- ORDER BY count DESC; 10 | 11 | 12 | SELECT 13 | pfirstname, 14 | plastname, 15 | COUNT(*) AS "# of items" 16 | FROM people 17 | JOIN lists USING(pid) 18 | JOIN listitems USING (lid) 19 | GROUP BY pfirstname, plastname 20 | ORDER BY "# of items" DESC; 21 | 22 | SELECT pfirstname, listitems 23 | FROM people 24 | JOIN lists USING(pid) 25 | JOIN listitems USING(lid) 26 | WHERE pfirstname = 'Ideipepzekir'; -------------------------------------------------------------------------------- /183/samples.sql: -------------------------------------------------------------------------------- 1 | 2 | SELECT pcity, pstate, COUNT(*) AS "people per city" from people 3 | WHERE pcity LIKE 'A%' 4 | GROUP BY pcity, pstate 5 | HAVING COUNT(*) >= 2 6 | ORDER BY "people per city" DESC, pcity ASC; 7 | 8 | SELECT pcity, pstate, COUNT(*) AS "people per city" from people 9 | GROUP BY pcity, pstate 10 | HAVING pcity LIKE 'A%' AND COUNT(*) >= 2 11 | ORDER BY "people per city" DESC, pcity ASC; 12 | 13 | SELECT pcity, pstate, COUNT(*) AS "people per city" from people 14 | WHERE ppoints > 500 15 | GROUP BY pcity, pstate 16 | HAVING COUNT(*) >= 2 17 | ORDER BY "people per city" DESC, pcity ASC; 18 | 19 | 20 | -- SELECT pcity, pstate, COUNT(*) AS "people per city" from people 21 | -- WHERE pcity LIKE 'A%' 22 | -- GROUP BY pcity, pstate 23 | -- HAVING COUNT(*) >= 2 24 | -- ORDER BY "people per city" DESC, pcity ASC; 25 | 26 | -- SELECT pcity, pstate, COUNT(*) AS "people per city" from people 27 | -- GROUP BY pcity, pstate 28 | -- HAVING COUNT(*) >= 2 AND pcity LIKE 'A%' 29 | -- ORDER BY "people per city" DESC, pcity ASC; -------------------------------------------------------------------------------- /184/samples.sql: -------------------------------------------------------------------------------- 1 | 2 | SELECT pcity, pstate, COUNT(*) AS "people per city" from people 3 | GROUP BY pcity, pstate 4 | HAVING COUNT(*) >= 2 5 | ORDER BY "people per city" DESC, pcity ASC; 6 | 7 | SELECT pcity, pstate, COUNT(*) AS "people per city" from people 8 | WHERE ppoints > 500 9 | GROUP BY pcity, pstate 10 | HAVING COUNT(*) >= 2 11 | ORDER BY "people per city" DESC, pcity ASC; 12 | 13 | SELECT pcity, pstate, COUNT(*) AS "people per city" from people 14 | WHERE pcity LIKE 'A%' 15 | GROUP BY pcity, pstate 16 | HAVING COUNT(*) >= 2 17 | ORDER BY "people per city" DESC, pcity ASC; 18 | 19 | SELECT pcity, pstate, COUNT(*) AS "people per city" from people 20 | GROUP BY pcity, pstate 21 | HAVING pcity LIKE 'A%' AND COUNT(*) >= 2 22 | ORDER BY "people per city" DESC, pcity ASC; 23 | -------------------------------------------------------------------------------- /185/samples.sql: -------------------------------------------------------------------------------- 1 | SELECT cname from customers; 2 | 3 | SELECT cname from customers GROUP BY cname; 4 | 5 | SELECT cname, COUNT(*) from customers GROUP BY cname; 6 | 7 | SELECT cname, COUNT(*) from customers 8 | JOIN rentals USING(cid) 9 | GROUP BY cname; 10 | 11 | SELECT cname, COUNT(rid) from customers 12 | LEFT JOIN rentals USING(cid) 13 | GROUP BY cname; -------------------------------------------------------------------------------- /186/samples.sql: -------------------------------------------------------------------------------- 1 | SELECT cname from customers; 2 | 3 | SELECT cname from customers GROUP BY cname; 4 | 5 | SELECT cname, COUNT(*) from customers GROUP BY cname; 6 | 7 | SELECT cname, COUNT(*) from customers 8 | JOIN rentals USING(cid) 9 | GROUP BY cname; 10 | 11 | SELECT cname, COUNT(rid) from customers 12 | LEFT JOIN rentals USING(cid) 13 | GROUP BY cname; 14 | 15 | SELECT cname, COUNT(rid) AS amt from customers 16 | LEFT JOIN rentals USING(cid) 17 | GROUP BY cname 18 | ORDER BY amt DESC; 19 | 20 | SELECT cname, COUNT(rid) AS amt from customers 21 | LEFT JOIN rentals USING(cid) 22 | GROUP BY cname 23 | HAVING cname LIKE '%e%' 24 | ORDER BY amt DESC; 25 | 26 | SELECT cname, COUNT(rid) AS amt from customers 27 | LEFT JOIN rentals USING(cid) 28 | WHERE cname LIKE '%e%' 29 | GROUP BY cname 30 | ORDER BY amt DESC; -------------------------------------------------------------------------------- /187/n15e3.sql: -------------------------------------------------------------------------------- 1 | -- SELECT 2 | -- pfirstname, 3 | -- plastname, 4 | -- COUNT(lid) 5 | -- FROM people NATURAL LEFT JOIN lists 6 | -- GROUP BY pfirstname, plastname; 7 | 8 | SELECT 9 | pfirstname, 10 | plastname, 11 | COUNT(lid) 12 | FROM people NATURAL LEFT JOIN lists 13 | GROUP BY pfirstname, plastname 14 | ORDER BY count DESC; 15 | -------------------------------------------------------------------------------- /188/n15e4.sql: -------------------------------------------------------------------------------- 1 | -- SELECT 2 | -- pfirstname, 3 | -- plastname, 4 | -- COUNT(liid) 5 | -- FROM people NATURAL LEFT JOIN lists 6 | -- NATURAL LEFT JOIN listitems 7 | -- GROUP BY pfirstname, plastname 8 | -- ORDER BY count DESC; 9 | 10 | SELECT 11 | pfirstname, 12 | plastname, 13 | lid 14 | FROM people NATURAL JOIN lists 15 | WHERE pfirstname = 'Zkugjyqoppe'; 16 | 17 | SELECT 18 | pfirstname, 19 | plastname, 20 | liid 21 | FROM people NATURAL JOIN lists 22 | NATURAL JOIN listitems 23 | WHERE pfirstname = 'Zkugjyqoppe'; 24 | 25 | SELECT 26 | pfirstname, 27 | plastname, 28 | (SELECT COUNT(lid) FROM lists WHERE lists.pid = people.pid) AS "num lists", 29 | COUNT(liid) AS "num list items" 30 | FROM people NATURAL LEFT JOIN lists 31 | NATURAL LEFT JOIN listitems 32 | GROUP BY pid, pfirstname, plastname 33 | ORDER BY "num list items" DESC, "num lists" DESC; 34 | -------------------------------------------------------------------------------- /189/n15e4.sql: -------------------------------------------------------------------------------- 1 | -- SELECT 2 | -- pfirstname, 3 | -- plastname, 4 | -- COUNT(liid) 5 | -- FROM people NATURAL LEFT JOIN lists 6 | -- NATURAL LEFT JOIN listitems 7 | -- GROUP BY pfirstname, plastname 8 | -- ORDER BY count DESC; 9 | 10 | SELECT 11 | pfirstname, 12 | plastname, 13 | lid 14 | FROM people NATURAL JOIN lists 15 | WHERE pfirstname = 'Zkugjyqoppe'; 16 | 17 | SELECT 18 | pfirstname, 19 | plastname, 20 | liid 21 | FROM people NATURAL JOIN lists 22 | NATURAL JOIN listitems 23 | WHERE pfirstname = 'Zkugjyqoppe'; 24 | 25 | SELECT 26 | pfirstname, 27 | plastname, 28 | (SELECT COUNT(lid) FROM lists WHERE lists.pid = people.pid) AS "num lists", 29 | COUNT(liid) AS "num list items" 30 | FROM people NATURAL LEFT JOIN lists 31 | NATURAL LEFT JOIN listitems 32 | GROUP BY pid, pfirstname, plastname 33 | ORDER BY "num list items" DESC, "num lists" DESC; 34 | -------------------------------------------------------------------------------- /190/sample.sql: -------------------------------------------------------------------------------- 1 | SELECT * FROM people LIMIT 10; -------------------------------------------------------------------------------- /191/sample.sql: -------------------------------------------------------------------------------- 1 | SELECT * FROM people FETCH FIRST 10 ROWS ONLY; -------------------------------------------------------------------------------- /192/sample.sql: -------------------------------------------------------------------------------- 1 | -- Must use ORDER BY 2 | SELECT * FROM people ORDER BY pid LIMIT 10 OFFSET 20; 3 | SELECT * FROM people ORDER BY pid FETCH FIRST 10 ROWS ONLY; 4 | SELECT * FROM people ORDER BY pid OFFSET 10 ROWS FETCH NEXT 10 ROWS ONLY; 5 | SELECT * FROM people ORDER BY pid OFFSET 20 ROWS FETCH NEXT 10 ROWS ONLY; 6 | -------------------------------------------------------------------------------- /194 update/samples.sql: -------------------------------------------------------------------------------- 1 | SELECT pid, ppoints FROM people ORDER BY pid LIMIT 10; 2 | 3 | UPDATE people SET ppoints = ppoints + 10; 4 | 5 | SELECT pid, ppoints FROM people ORDER BY pid LIMIT 10; 6 | -------------------------------------------------------------------------------- /194 update/setup-movies.sql: -------------------------------------------------------------------------------- 1 | -- SELECT cid, cname, mname 2 | -- FROM customers NATURAL FULL JOIN rentals 3 | -- NATURAL FULL JOIN movies 4 | -- ORDER BY mname; 5 | 6 | -- UPDATE customers 7 | -- SET cname = cname || '+HERO' 8 | -- -- SET cname = CONCAT(cname,'+HERO') 9 | -- WHERE cid IN (1); 10 | 11 | -- SELECT cid, cname, mname 12 | -- FROM customers NATURAL FULL JOIN rentals 13 | -- NATURAL FULL JOIN movies 14 | -- ORDER BY mname; 15 | 16 | -- UPDATE customers 17 | -- SET cname = 'James' 18 | -- WHERE cid IN (1); 19 | 20 | -- SELECT cid, cname, mname 21 | -- FROM customers NATURAL FULL JOIN rentals 22 | -- NATURAL FULL JOIN movies 23 | -- ORDER BY mname; 24 | 25 | -- -- METHOD #1 - SUBQUERY 26 | -- UPDATE customers 27 | -- SET cname = CONCAT(cname,'+HERO') 28 | -- WHERE customers.cid IN (SELECT rentals.cid 29 | -- FROM rentals NATURAL FULL JOIN movies 30 | -- WHERE customers.cid = rentals.cid 31 | -- AND movies.mname = 'The Lives of Others'); 32 | 33 | -- -- METHOD #2 - FROM 34 | -- UPDATE customers 35 | -- SET cname = CONCAT(cname,'+HERO') 36 | -- FROM rentals, movies 37 | -- WHERE customers.cid = rentals.cid 38 | -- AND rentals.mid = movies.mid 39 | -- AND movies.mname = 'The Lives of Others'; 40 | 41 | -- -- METHOD #3 - FROM 42 | -- UPDATE customers 43 | -- SET cname = CONCAT(customers.cname,'+HERO') 44 | -- FROM customers AS c NATURAL JOIN rentals NATURAL JOIN movies 45 | -- WHERE customers.cid = c.cid 46 | -- AND movies.mname = 'The Lives of Others' 47 | -- RETURNING *; 48 | 49 | -- SELECT cid, cname, mname 50 | -- FROM customers NATURAL FULL JOIN rentals 51 | -- NATURAL FULL JOIN movies 52 | -- ORDER BY mname; 53 | 54 | -- REBUILD DATABASE 55 | 56 | DROP TABLE IF EXISTS customers CASCADE; 57 | DROP TABLE IF EXISTS movies CASCADE; 58 | DROP TABLE IF EXISTS rentals CASCADE; 59 | DROP TABLE IF EXISTS employees CASCADE; 60 | DROP TABLE IF EXISTS department CASCADE; 61 | 62 | CREATE TABLE customers( 63 | cid SERIAL PRIMARY KEY, 64 | cname VARCHAR(50) NOT NULL 65 | ); 66 | 67 | CREATE TABLE movies( 68 | mid SERIAL PRIMARY KEY, 69 | mname TEXT NOT NULL 70 | ); 71 | 72 | CREATE TABLE rentals( 73 | rid SERIAL PRIMARY KEY, 74 | cid INT REFERENCES customers NOT NULL, 75 | mid INT REFERENCES movies NOT NULL 76 | ); 77 | 78 | CREATE TABLE employees( 79 | eID SERIAL PRIMARY KEY, 80 | eName VARCHAR(50) NOT NULL 81 | ); 82 | 83 | CREATE TABLE department( 84 | dID SERIAL PRIMARY KEY, 85 | dept VARCHAR(50), 86 | eID INT REFERENCES employees 87 | ); 88 | -- NOTE dept and eID can be NULL to illustrate joins 89 | 90 | 91 | INSERT INTO customers (cname) VALUES 92 | ('James'), 93 | ('Moneypenny'), 94 | ('Q'), 95 | ('M'), 96 | ('Ian'), 97 | ('Fleming'), 98 | ('Bruce'), 99 | ('Tyler'); 100 | 101 | INSERT INTO movies (mname) VALUES 102 | ('Ex Machina'), 103 | ('A Man Called Ove'), 104 | ('The Lives of Others'), 105 | ('Intouchables'), 106 | ('Limitless'), 107 | ('Kumare'), 108 | ('The Fog of War'), 109 | ('Forks Over Knives'); 110 | 111 | INSERT INTO rentals (cid, mid) VALUES 112 | (2,3), 113 | (2,4), 114 | (4,1), 115 | (3,6), 116 | (1,4), 117 | (5,2), 118 | (6,1), 119 | (5,5), 120 | (4,3), 121 | (3,1), 122 | (2,2), 123 | (1,3), 124 | (1,4), 125 | (2,6), 126 | (4,5); 127 | 128 | INSERT INTO employees (ename) VALUES 129 | ('Stacey'), 130 | ('Shelley'), 131 | ('Samantha'), 132 | ('Shannon'), 133 | ('Sherry'), 134 | ('Sylvia'); 135 | 136 | INSERT INTO department (dept, eid) VALUES 137 | ('Sales', 1), 138 | ('Sales', 2), 139 | ('Sales', 3), 140 | ('Manager', 4), 141 | ('Owner', null); 142 | 143 | SELECT cid, cname, mname 144 | FROM customers NATURAL FULL JOIN rentals 145 | NATURAL FULL JOIN movies 146 | ORDER BY mname; 147 | -------------------------------------------------------------------------------- /194 update/setup-wishlists.sql: -------------------------------------------------------------------------------- 1 | -- WISHLISTS DATABASE 2 | 3 | -- EXAMPLE ONE 4 | 5 | -- SELECT pid, ppoints AS "zero" FROM people ORDER BY pid LIMIT 12; 6 | 7 | -- UPDATE people SET ppoints = ppoints + 10; 8 | 9 | -- SELECT pid, ppoints AS "one" FROM people ORDER BY pid LIMIT 12; 10 | 11 | -- UPDATE people SET ppoints = ppoints + 10 WHERE pid <= 10; 12 | 13 | -- SELECT pid, ppoints AS "two" FROM people ORDER BY pid LIMIT 12; 14 | 15 | -- UPDATE people SET ppoints = ppoints - 20; 16 | 17 | -- SELECT pid, ppoints AS "three" FROM people ORDER BY pid LIMIT 12; 18 | 19 | -- EXAMPLE TWO 20 | 21 | SELECT pfirstname, plastname FROM people WHERE pid = 1; 22 | 23 | UPDATE people SET 24 | pfirstname = 'James', 25 | plastname = 'Bond' 26 | WHERE pid = 1; 27 | 28 | SELECT pfirstname, plastname FROM people WHERE pid = 1; 29 | 30 | UPDATE people SET 31 | pfirstname = 'Ofjwivvhfaki', 32 | plastname = 'Ncntnns' 33 | WHERE pid = 1; 34 | 35 | SELECT pfirstname, plastname FROM people WHERE pid = 1; 36 | -------------------------------------------------------------------------------- /195/samples.sql: -------------------------------------------------------------------------------- 1 | SELECT pid, ppoints AS "BEFORE" FROM people ORDER BY pid LIMIT 10; 2 | 3 | -- UPDATE people SET ppoints = ppoints + 10 WHERE pid <= 10 RETURNING *; 4 | UPDATE people SET ppoints = ppoints + 10 WHERE pid <= 10 RETURNING pid, ppoints; 5 | 6 | SELECT pid, ppoints AS "AFTER" FROM people ORDER BY pid LIMIT 10; 7 | -------------------------------------------------------------------------------- /196/samples.sql: -------------------------------------------------------------------------------- 1 | SELECT pid, pfirstname, plastname AS "BEFORE" FROM people ORDER BY pid LIMIT 3; 2 | 3 | UPDATE people SET pfirstname = 'James', plastname = 'Bond' WHERE pid = 1; 4 | SELECT pid, pfirstname, plastname AS "AFTER" FROM people ORDER BY pid LIMIT 3; 5 | 6 | UPDATE people SET pfirstname = 'Ofjwivvhfaki', plastname = 'Ncntnns' WHERE pid = 1; 7 | SELECT pid, pfirstname, plastname AS "AFTER2" FROM people ORDER BY pid LIMIT 3; 8 | 9 | UPDATE people SET (pfirstname, plastname) = ('Jenny', 'Moneypenny') WHERE pid = 1; 10 | SELECT pid, pfirstname, plastname AS "AFTER3" FROM people ORDER BY pid LIMIT 3; 11 | 12 | UPDATE people SET pfirstname = 'Ofjwivvhfaki', plastname = 'Ncntnns' WHERE pid = 1; 13 | SELECT pid, pfirstname, plastname AS "AFTER4" FROM people ORDER BY pid LIMIT 3; 14 | 15 | -------------------------------------------------------------------------------- /197/samples.sql: -------------------------------------------------------------------------------- 1 | -- UPDATE customers 2 | -- SET cname = CONCAT(cname,'+HERO') 3 | -- WHERE customers.cid IN (SELECT rentals.cid 4 | -- FROM rentals NATURAL FULL JOIN movies 5 | -- WHERE customers.cid = rentals.cid 6 | -- AND movies.mname = 'The Lives of Others'); 7 | 8 | -- IMPROVED: above WHERE cid comparison not needed 9 | 10 | SELECT * FROM customers; 11 | 12 | UPDATE customers 13 | SET cname = CONCAT(cname,'+HERO') 14 | WHERE customers.cid IN (SELECT rentals.cid 15 | FROM rentals NATURAL FULL JOIN movies 16 | WHERE movies.mname = 'The Lives of Others'); 17 | 18 | SELECT * FROM customers; 19 | 20 | SELECT rentals.cid 21 | FROM rentals NATURAL FULL JOIN movies 22 | WHERE movies.mname = 'The Lives of Others' -------------------------------------------------------------------------------- /198/samples.sql: -------------------------------------------------------------------------------- 1 | -- SELECT * FROM customers; 2 | 3 | -- UPDATE customers 4 | -- SET cname = CONCAT(cname,'+HERO') 5 | -- FROM rentals, movies 6 | -- WHERE customers.cid = rentals.cid 7 | -- AND rentals.mid = movies.mid 8 | -- AND movies.mname = 'The Lives of Others'; 9 | 10 | -- SELECT * FROM customers; 11 | 12 | -- EXPERIMENT 13 | SELECT customers.cid, cname, rid, mname 14 | FROM customers, rentals, movies 15 | WHERE customers.cid = rentals.cid 16 | AND rentals.mid = movies.mid; 17 | 18 | SELECT customers.cid, cname, rid, mname 19 | FROM customers NATURAL FULL JOIN rentals 20 | NATURAL FULL JOIN movies; 21 | 22 | SELECT customers.cid, cname, rid, mname 23 | FROM customers FULL JOIN rentals USING (cid) 24 | FULL JOIN movies USING (mid); 25 | 26 | SELECT customers.cid AS "LAST", cname, rid, mname 27 | FROM customers FULL JOIN rentals ON (customers.cid=rentals.cid) 28 | FULL JOIN movies ON (rentals.mid=movies.mid); 29 | -------------------------------------------------------------------------------- /199/samples.sql: -------------------------------------------------------------------------------- 1 | SELECT * FROM customers; 2 | 3 | UPDATE customers 4 | SET cname = CONCAT(customers.cname,'+HERO') 5 | FROM customers AS c NATURAL JOIN rentals NATURAL JOIN movies 6 | WHERE customers.cid = c.cid 7 | AND movies.mname = 'The Lives of Others'; 8 | 9 | SELECT * FROM customers; 10 | -------------------------------------------------------------------------------- /200/code.sql: -------------------------------------------------------------------------------- 1 | START TRANSACTION ISOLATION LEVEL SERIALIZABLE; 2 | 3 | UPDATE employees 4 | SET ename = 'James' 5 | WHERE eid = 6; 6 | 7 | ROLLBACK; 8 | -------------------------------------------------------------------------------- /201 delete/sample.sql: -------------------------------------------------------------------------------- 1 | -- ALTER TABLES TO CASCADE 2 | ALTER TABLE rentals 3 | DROP CONSTRAINT "rentals_cid_fkey", 4 | DROP CONSTRAINT "rentals_mid_fkey", 5 | ADD FOREIGN KEY (cid) REFERENCES customers ON DELETE CASCADE, 6 | ADD FOREIGN KEY (mid) REFERENCES movies ON DELETE CASCADE; 7 | 8 | ALTER TABLE department 9 | DROP CONSTRAINT "department_eid_fkey", 10 | ADD FOREIGN KEY (eid) REFERENCES employees ON DELETE CASCADE; 11 | 12 | -- DELETE 13 | 14 | SELECT cid, cname FROM customers; 15 | SELECT rid, cid FROM rentals; 16 | 17 | DELETE FROM customers WHERE cid < 5; 18 | 19 | SELECT cid, cname FROM customers; 20 | SELECT rid, cid FROM rentals; 21 | 22 | -- REBUILD DATABASE 23 | 24 | DROP TABLE IF EXISTS customers CASCADE; 25 | DROP TABLE IF EXISTS movies CASCADE; 26 | DROP TABLE IF EXISTS rentals CASCADE; 27 | DROP TABLE IF EXISTS employees CASCADE; 28 | DROP TABLE IF EXISTS department CASCADE; 29 | 30 | CREATE TABLE customers( 31 | cid SERIAL PRIMARY KEY, 32 | cname VARCHAR(50) NOT NULL 33 | ); 34 | 35 | CREATE TABLE movies( 36 | mid SERIAL PRIMARY KEY, 37 | mname TEXT NOT NULL 38 | ); 39 | 40 | -- NEW: ON DELETE CASCADE 41 | CREATE TABLE rentals( 42 | rid SERIAL PRIMARY KEY, 43 | cid INT REFERENCES customers ON DELETE CASCADE, 44 | mid INT REFERENCES movies ON DELETE CASCADE 45 | ); 46 | 47 | CREATE TABLE employees( 48 | eID SERIAL PRIMARY KEY, 49 | eName VARCHAR(50) NOT NULL 50 | ); 51 | 52 | -- NEW: ON DELETE CASCADE 53 | CREATE TABLE department( 54 | dID SERIAL PRIMARY KEY, 55 | dept VARCHAR(50), 56 | eID INT REFERENCES employees ON DELETE CASCADE 57 | ); 58 | -- NOTE dept and eID can be NULL to illustrate joins 59 | 60 | 61 | INSERT INTO customers (cname) VALUES 62 | ('James'), 63 | ('Moneypenny'), 64 | ('Q'), 65 | ('M'), 66 | ('Ian'), 67 | ('Fleming'), 68 | ('Bruce'), 69 | ('Tyler'); 70 | 71 | INSERT INTO movies (mname) VALUES 72 | ('Ex Machina'), 73 | ('A Man Called Ove'), 74 | ('The Lives of Others'), 75 | ('Intouchables'), 76 | ('Limitless'), 77 | ('Kumare'), 78 | ('The Fog of War'), 79 | ('Forks Over Knives'); 80 | 81 | INSERT INTO rentals (cid, mid) VALUES 82 | (2,3), 83 | (2,4), 84 | (4,1), 85 | (3,6), 86 | (1,4), 87 | (5,2), 88 | (6,1), 89 | (5,5), 90 | (4,3), 91 | (3,1), 92 | (2,2), 93 | (1,3), 94 | (1,4), 95 | (2,6), 96 | (4,5); 97 | 98 | INSERT INTO employees (ename) VALUES 99 | ('Stacey'), 100 | ('Shelley'), 101 | ('Samantha'), 102 | ('Shannon'), 103 | ('Sherry'), 104 | ('Sylvia'); 105 | 106 | INSERT INTO department (dept, eid) VALUES 107 | ('Sales', 1), 108 | ('Sales', 2), 109 | ('Sales', 3), 110 | ('Manager', 4), 111 | ('Owner', null); 112 | 113 | SELECT cid, cname, mname 114 | FROM customers NATURAL FULL JOIN rentals 115 | NATURAL FULL JOIN movies 116 | ORDER BY mname; 117 | -------------------------------------------------------------------------------- /202/rebuild-db.sql: -------------------------------------------------------------------------------- 1 | -- REBUILD DATABASE 2 | 3 | DROP TABLE IF EXISTS customers CASCADE; 4 | DROP TABLE IF EXISTS movies CASCADE; 5 | DROP TABLE IF EXISTS rentals CASCADE; 6 | DROP TABLE IF EXISTS employees CASCADE; 7 | DROP TABLE IF EXISTS department CASCADE; 8 | 9 | CREATE TABLE customers( 10 | cid SERIAL PRIMARY KEY, 11 | cname VARCHAR(50) NOT NULL 12 | ); 13 | 14 | CREATE TABLE movies( 15 | mid SERIAL PRIMARY KEY, 16 | mname TEXT NOT NULL 17 | ); 18 | 19 | -- NEW: ON DELETE CASCADE 20 | CREATE TABLE rentals( 21 | rid SERIAL PRIMARY KEY, 22 | cid INT REFERENCES customers ON DELETE CASCADE, 23 | mid INT REFERENCES movies ON DELETE CASCADE 24 | ); 25 | 26 | CREATE TABLE employees( 27 | eID SERIAL PRIMARY KEY, 28 | eName VARCHAR(50) NOT NULL 29 | ); 30 | 31 | -- NEW: ON DELETE CASCADE 32 | CREATE TABLE department( 33 | dID SERIAL PRIMARY KEY, 34 | dept VARCHAR(50), 35 | eID INT REFERENCES employees ON DELETE CASCADE 36 | ); 37 | -- NOTE dept and eID can be NULL to illustrate joins 38 | 39 | 40 | INSERT INTO customers (cname) VALUES 41 | ('James'), 42 | ('Moneypenny'), 43 | ('Q'), 44 | ('M'), 45 | ('Ian'), 46 | ('Fleming'), 47 | ('Bruce'), 48 | ('Tyler'); 49 | 50 | INSERT INTO movies (mname) VALUES 51 | ('Ex Machina'), 52 | ('A Man Called Ove'), 53 | ('The Lives of Others'), 54 | ('Intouchables'), 55 | ('Limitless'), 56 | ('Kumare'), 57 | ('The Fog of War'), 58 | ('Forks Over Knives'); 59 | 60 | INSERT INTO rentals (cid, mid) VALUES 61 | (2,3), 62 | (2,4), 63 | (4,1), 64 | (3,6), 65 | (1,4), 66 | (5,2), 67 | (6,1), 68 | (5,5), 69 | (4,3), 70 | (3,1), 71 | (2,2), 72 | (1,3), 73 | (1,4), 74 | (2,6), 75 | (4,5); 76 | 77 | INSERT INTO employees (ename) VALUES 78 | ('Stacey'), 79 | ('Shelley'), 80 | ('Samantha'), 81 | ('Shannon'), 82 | ('Sherry'), 83 | ('Sylvia'); 84 | 85 | INSERT INTO department (dept, eid) VALUES 86 | ('Sales', 1), 87 | ('Sales', 2), 88 | ('Sales', 3), 89 | ('Manager', 4), 90 | ('Owner', null); 91 | 92 | SELECT cid, cname, mname 93 | FROM customers NATURAL FULL JOIN rentals 94 | NATURAL FULL JOIN movies 95 | ORDER BY mname; 96 | -------------------------------------------------------------------------------- /202/sample.sql: -------------------------------------------------------------------------------- 1 | -- DELETE 2 | 3 | SELECT * FROM customers; 4 | SELECT * FROM rentals; 5 | SELECT * FROM movies; 6 | 7 | DELETE FROM customers 8 | USING rentals, movies 9 | WHERE customers.cid = rentals.cid 10 | AND rentals.mid = movies.mid 11 | AND movies.mname = 'The Lives of Others' 12 | RETURNING *; 13 | 14 | SELECT * FROM customers; 15 | SELECT * FROM rentals; 16 | SELECT * FROM movies; 17 | -------------------------------------------------------------------------------- /203/n16e1.sql: -------------------------------------------------------------------------------- 1 | -- Limit 2 | -- SELECT * 3 | -- FROM people 4 | -- ORDER BY pid 5 | -- LIMIT 10 6 | -- OFFSET 0; 7 | 8 | -- SELECT * 9 | -- FROM people 10 | -- ORDER BY pid 11 | -- LIMIT 10 12 | -- OFFSET 10; 13 | 14 | -- SELECT * 15 | -- FROM people 16 | -- ORDER BY pid 17 | -- LIMIT 10 18 | -- OFFSET 20; 19 | 20 | -- SELECT * 21 | -- FROM people 22 | -- ORDER BY pid 23 | -- LIMIT 10 24 | -- OFFSET 30; 25 | 26 | -- Fetch 27 | SELECT * 28 | FROM people 29 | ORDER BY pid 30 | OFFSET 0 31 | FETCH NEXT 10 ROWS ONLY; 32 | 33 | SELECT * 34 | FROM people 35 | ORDER BY pid 36 | OFFSET 10 37 | FETCH NEXT 10 ROWS ONLY; 38 | 39 | SELECT * 40 | FROM people 41 | ORDER BY pid 42 | OFFSET 20 43 | FETCH NEXT 10 ROWS ONLY; 44 | 45 | SELECT * 46 | FROM people 47 | ORDER BY pid 48 | OFFSET 30 49 | FETCH NEXT 10 ROWS ONLY; 50 | -------------------------------------------------------------------------------- /204/n16e2.sql: -------------------------------------------------------------------------------- 1 | SELECT * FROM people ORDER BY ppoints DESC LIMIT 2; 2 | 3 | UPDATE people 4 | SET ppoints = 9995 5 | WHERE pid = 134; 6 | 7 | -- UPDATE people 8 | -- SET pfirstname = 'James', 9 | -- plastname = 'Bond' 10 | -- WHERE pid = (SELECT pid FROM people ORDER BY ppoints DESC LIMIT 1) 11 | -- RETURNING *; 12 | 13 | UPDATE people 14 | SET pfirstname = 'James', 15 | plastname = 'Bond' 16 | WHERE ppoints IN (SELECT MAX(ppoints) FROM people) 17 | RETURNING *; 18 | 19 | -- UPDATE people 20 | -- SET pfirstname = 'James', 21 | -- plastname = 'Bond' 22 | -- WHERE ppoints = (SELECT MAX(ppoints) FROM people LIMIT 1) 23 | -- RETURNING *; 24 | -------------------------------------------------------------------------------- /205/n16e3.sql: -------------------------------------------------------------------------------- 1 | UPDATE people 2 | SET ppoints = ppoints + 100 3 | WHERE ppoints <= (SELECT AVG(ppoints) FROM people) 4 | RETURNING pid, ppoints; 5 | 6 | -- SELECT pid, ppoints 7 | -- FROM people 8 | -- WHERE ppoints <= (SELECT AVG(ppoints) FROM people) 9 | -- ORDER BY pid 10 | -- LIMIT 10; 11 | -------------------------------------------------------------------------------- /206/n16e4.sql: -------------------------------------------------------------------------------- 1 | SELECT AVG(ppoints) FROM people; 2 | 3 | UPDATE people 4 | SET plastname = plastname || '+HERO' 5 | WHERE ppoints >= (SELECT AVG(ppoints) FROM people) 6 | RETURNING pid, plastname, ppoints; 7 | -------------------------------------------------------------------------------- /207/n16e5.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | pid, 3 | COUNT(lid) 4 | FROM people NATURAL LEFT JOIN lists 5 | GROUP BY pid 6 | ORDER BY count DESC; 7 | 8 | -- UPDATE people 9 | -- SET ppoints = ppoints + 1000 10 | -- WHERE pid IN (SELECT 11 | -- pid 12 | -- WHERE (SELECT 13 | -- COUNT(lid) 14 | -- FROM people AS i NATURAL LEFT JOIN lists 15 | -- WHERE people.pid = i.pid 16 | -- GROUP BY pid) > 1); 17 | 18 | UPDATE people 19 | SET ppoints = ppoints + 1000 20 | WHERE pid IN (SELECT 21 | pid 22 | WHERE (SELECT 23 | COUNT(lid) 24 | FROM lists 25 | WHERE people.pid = lists.pid 26 | GROUP BY pid) > 1); 27 | -------------------------------------------------------------------------------- /208/n17e1.sql: -------------------------------------------------------------------------------- 1 | DELETE FROM people 2 | WHERE ppoints <= ((SELECT MIN(ppoints) FROM people) + 1000); 3 | -------------------------------------------------------------------------------- /209/n17e2.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | pid, 3 | COUNT(lid) 4 | FROM people NATURAL LEFT JOIN lists 5 | GROUP BY pid 6 | HAVING COUNT(lid) <= 2 7 | ORDER BY count DESC; 8 | 9 | DELETE FROM people 10 | WHERE pid IN (SELECT 11 | pid 12 | WHERE (SELECT 13 | COUNT(lid) 14 | FROM people AS i NATURAL LEFT JOIN lists 15 | WHERE people.pid = i.pid 16 | GROUP BY pid) <= 2); 17 | -------------------------------------------------------------------------------- /210/n17e3.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | pid, 3 | COUNT(liid) 4 | FROM people NATURAL LEFT JOIN lists 5 | NATURAL LEFT JOIN listitems 6 | GROUP BY pid 7 | HAVING COUNT(liid) <= 4 8 | ORDER BY count DESC; 9 | 10 | DELETE FROM people 11 | WHERE pid IN (SELECT 12 | pid 13 | WHERE (SELECT 14 | COUNT(liid) 15 | FROM people AS i NATURAL LEFT JOIN lists 16 | NATURAL LEFT JOIN listitems 17 | WHERE people.pid = i.pid 18 | GROUP BY pid) <= 4); 19 | 20 | SELECT 'Congratulations!' AS "Message"; 21 | -------------------------------------------------------------------------------- /999 PREP GROUPING HAVING/setup.sql: -------------------------------------------------------------------------------- 1 | SELECT people.pid, people.pfirstname FROM people WHERE people.pid > (SELECT AVG(people.pid) FROM people); 2 | 3 | -- SELECT people.pcity, COUNT(*) AS "people per city" from people GROUP BY people.pcity; 4 | -- SELECT people.pcity, COUNT(*) AS "people per city" from people GROUP BY people.pcity ORDER BY "people per city" DESC; 5 | 6 | -- SELECT people.pstate, COUNT(*) AS "people per city" from people GROUP BY people.pstate; 7 | -- SELECT people.pstate, COUNT(*) AS "people per city" from people GROUP BY people.pstate ORDER BY "people per city" DESC; 8 | 9 | -- MORE THAN TWO VALUES 10 | -- anything that is not an AGGREGATE function must be in the GROUP BY 11 | -- SELECT people.pcity, people.pstate, COUNT(*) AS "people per city" from people GROUP BY people.pcity, people.pstate; 12 | -- SELECT people.pcity, people.pstate, COUNT(*) AS "people per city" from people GROUP BY people.pcity, people.pstate ORDER BY "people per city" DESC, people.pcity ASC LIMIT 10; 13 | -- SELECT people.pcity, people.pstate, COUNT(*) AS "people per city" from people GROUP BY people.pstate, people.pcity ORDER BY "people per city" DESC, people.pcity ASC LIMIT 10; 14 | 15 | -- ORDERING 16 | -- WHERE and HAVING 17 | -- SELECT people.pcity, people.pstate, COUNT(*) AS "people per city" from people 18 | -- GROUP BY people.pcity, people.pstate 19 | -- HAVING COUNT(*) >= 2 20 | -- ORDER BY "people per city" DESC, people.pcity ASC; 21 | 22 | 23 | -- SELECT people.pcity, people.pstate, COUNT(*) AS "people per city" from people 24 | -- WHERE pcity LIKE 'A%' 25 | -- GROUP BY people.pcity, people.pstate 26 | -- HAVING COUNT(*) >= 2 27 | -- ORDER BY "people per city" DESC, people.pcity ASC; 28 | 29 | -- HANDS ON EXERCISES 30 | -- SELECT * FROM people; 31 | 32 | 33 | -------------------------------------------------------------------------------- /999 PREP GROUPING HAVING/setupmovies.sql: -------------------------------------------------------------------------------- 1 | SELECT customers.cname, (SELECT COUNT(*) FROM rentals WHERE customers.cid=rentals.cid) AS "# Rentals" FROM customers; 2 | 3 | -- HANDS ON EXERCISES 4 | SELECT customers.cname, COUNT(*) AS "number of rentals" 5 | FROM customers 6 | LEFT JOIN rentals ON (customers.cid=rentals.cid) 7 | LEFT JOIN movies ON (rentals.mid=movies.mid) 8 | GROUP BY customers.cname; 9 | 10 | SELECT customers.cname, COUNT(*) AS "number of rentals" 11 | FROM customers 12 | LEFT JOIN rentals ON (customers.cid=rentals.cid) 13 | LEFT JOIN movies ON (rentals.mid=movies.mid) 14 | GROUP BY customers.cname 15 | ORDER BY COUNT(*) DESC; 16 | 17 | SELECT customers.cname, COUNT(*) AS "number of rentals" 18 | FROM customers 19 | LEFT JOIN rentals ON (customers.cid=rentals.cid) 20 | LEFT JOIN movies ON (rentals.mid=movies.mid) 21 | WHERE customers.cname LIKE '%e%' 22 | GROUP BY customers.cname 23 | ORDER BY COUNT(*) DESC; 24 | 25 | select * from customers; -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Todd McLeod 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | --------------------------------------------------------------------------------