package me.test; import me.test.TestSocksProxy.PlainConnectionSocketFactoryEx; import me.test.TestSocksProxy.SSLConnectionSocketFactoryEx; import org.apache.commons.codec.binary.Base64; import org.apache.commons.codec.digest.HmacUtils; import org.apache.http.config.Registry; import org.apache.http.config.RegistryBuilder; import org.apache.http.conn.socket.ConnectionSocketFactory; import org.apache.http.conn.ssl.DefaultHostnameVerifier; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.impl.conn.BasicHttpClientConnectionManager; import org.apache.http.ssl.SSLContexts; import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; import org.springframework.web.client.RestTemplate; import org.springframework.web.util.UriComponentsBuilder; import javax.net.ssl.SSLContext; import java.io.IOException; import java.net.InetSocketAddress; import java.net.Proxy; import java.net.URI; import java.security.KeyManagementException; import java.security.KeyStoreException; import java.security.NoSuchAlgorithmException; import java.security.UnrecoverableKeyException; import java.security.cert.CertificateException; import java.text.SimpleDateFormat; import java.util.Date; /** * 中国天气网在同一个连接上不会返回太多的记录。这里测试 在 发生 NoHttpResponseException 之后, * org.apache.http.impl.execchain.RetryExec 会不会新建连接再次请求而保证业务正确。 * 经测试:OK。 */ public class TestWeather { public static void main(String[] args) throws KeyStoreException, UnrecoverableKeyException, NoSuchAlgorithmException, KeyManagementException, IOException, CertificateException { String appId = ""; String priKey = ""; String appId4Param = appId.substring(0, 6); // 在 192.168.0.12 上执行 // ssh root@192.168.0.12 -C -f -N -g -D 9999 Proxy proxy = new Proxy(Proxy.Type.SOCKS, new InetSocketAddress("192.168.0.12", 9999)); PlainConnectionSocketFactoryEx httpConnFac = new PlainConnectionSocketFactoryEx(); httpConnFac.setProxy(proxy); // // KeyStore wxKeyStore = KeyStore.getInstance("PKCS12"); // wxKeyStore.load(new FileInputStream("xxx.p12"), "ks-pass".toCharArray()); SSLContext sslcontext = SSLContexts.custom() // .loadKeyMaterial(wxKeyStore, "privateKeyPass".toCharArray()) .build(); SSLConnectionSocketFactoryEx httpsConnFac = new SSLConnectionSocketFactoryEx( sslcontext, new String[]{"TLSv1"}, null, new DefaultHostnameVerifier()); httpsConnFac.setProxy(proxy); Registry<ConnectionSocketFactory> reg = RegistryBuilder.<ConnectionSocketFactory>create() .register("http", httpConnFac) .register("https", httpsConnFac) .build(); BasicHttpClientConnectionManager connMgr = new BasicHttpClientConnectionManager(reg); CloseableHttpClient httpCient = HttpClients.custom() .setConnectionManager(connMgr) .build(); HttpComponentsClientHttpRequestFactory reqFac = new HttpComponentsClientHttpRequestFactory(httpCient); RestTemplate restTemplate = new RestTemplate(); restTemplate.setRequestFactory(reqFac); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmm"); for (int i = 0; i < adcArr.length; i++) { String now = sdf.format(new Date()); UriComponentsBuilder uriBuilder = UriComponentsBuilder .fromHttpUrl("http://open.weather.com.cn/data/") .queryParam("areaid", adcArr[i]) .queryParam("type", "forecast_v") .queryParam("date", now) .queryParam("appid", appId); URI uri = UriComponentsBuilder .fromHttpUrl("http://open.weather.com.cn/data/") .queryParam("areaid", adcArr[i]) .queryParam("type", "forecast_v") .queryParam("date", now) .queryParam("appid", appId4Param) // NOTICE this .queryParam("key", Base64.encodeBase64String(HmacUtils.hmacSha1(priKey.getBytes("UTF-8"), uriBuilder.build().encode("UTF-8").toString().getBytes("UTF-8")))) .build() .encode("UTF-8") .toUri(); String respStr = restTemplate.getForObject(uri, String.class); System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); System.out.println(uri); System.out.println(respStr); if (i > 100) { break; } } } static final String[] adcArr = new String[]{ "101010100", "101010200", "101010300", "101010400", "101010500", "101010600", "101010700", "101010800", "101010900", "101011000", "101011100", "101011200", "101011300", "101011400", "101011500", "101020100", "101020200", "101020300", "101020500", "101020600", "101020700", "101020800", "101020900", "101021000", "101021100", "101021200", "101030100", "101030200", "101030300", "101030400", "101030500", "101030600", "101030700", "101030900", "101031000", "101031100", "101031400", "101040100", "101040200", "101040300", "101040400", "101040500", "101040600", "101040700", "101040800", "101040900", "101041000", "101041100", "101041300", "101041400", "101041500", "101041600", "101041700", "101041800", "101041900", "101042000", "101042100", "101042200", "101042300", "101042400", "101042500", "101042600", "101042700", "101042800", "101042900", "101043000", "101043100", "101043200", "101043300", "101043400", "101043600", "101050101", "101050102", "101050103", "101050104", "101050105", "101050106", "101050107", "101050108", "101050109", "101050110", "101050111", "101050112", "101050113", "101050201", "101050202", "101050203", "101050204", "101050205", "101050206", "101050207", "101050208", "101050209", "101050210", "101050301", "101050302", "101050303", "101050304", "101050305", "101050306", "101050307", "101050401", "101050402", "101050403", "101050404", "101050405", "101050406", "101050407", "101050501", "101050502", "101050503", "101050504", "101050505", "101050506", "101050507", "101050508", "101050509", "101050510", "101050601", "101050602", "101050603", "101050604", "101050605", "101050606", "101050701", "101050702", "101050703", "101050704", "101050705", "101050706", "101050708", "101050801", "101050802", "101050803", "101050804", "101050805", "101050901", "101050902", "101050903", "101050904", "101050905", "101051002", "101051003", "101051101", "101051102", "101051103", "101051104", "101051201", "101051202", "101051203", "101051301", "101051302", "101051303", "101051304", "101051305", "101060101", "101060102", "101060103", "101060104", "101060105", "101060106", "101060201", "101060202", "101060203", "101060204", "101060205", "101060206", "101060301", "101060302", "101060303", "101060304", "101060305", "101060307", "101060308", "101060309", "101060401", "101060402", "101060403", "101060404", "101060405", "101060501", "101060502", "101060503", "101060504", "101060505", "101060506", "101060601", "101060602", "101060603", "101060604", "101060605", "101060701", "101060702", "101060703", "101060801", "101060802", "101060803", "101060804", "101060805", "101060901", "101060902", "101060903", "101060904", "101060905", "101060906", "101060907", "101070101", "101070103", "101070104", "101070105", "101070106", "101070201", "101070202", "101070203", "101070204", "101070205", "101070206", "101070207", "101070301", "101070302", "101070303", "101070304", "101070401", "101070402", "101070403", "101070404", "101070501", "101070502", "101070504", "101070601", "101070602", "101070603", "101070604", "101070701", "101070702", "101070704", "101070705", "101070706", "101070801", "101070802", "101070803", "101070901", "101070902", "101071001", "101071002", "101071003", "101071004", "101071101", "101071102", "101071103", "101071104", "101071105", "101071201", "101071203", "101071204", "101071205", "101071207", "101071301", "101071302", "101071303", "101071401", "101071402", "101071403", "101071404", "101080101", "101080102", "101080103", "101080104", "101080105", "101080106", "101080107", "101080201", "101080202", "101080203", "101080204", "101080205", "101080206", "101080207", "101080301", "101080401", "101080402", "101080403", "101080404", "101080406", "101080407", "101080408", "101080409", "101080410", "101080411", "101080412", "101080501", "101080502", "101080503", "101080504", "101080505", "101080506", "101080507", "101080508", "101080509", "101080510", "101080511", "101080601", "101080603", "101080604", "101080605", "101080606", "101080607", "101080608", "101080609", "101080610", "101080611", "101080612", "101080613", "101080614", "101080615", "101080701", "101080703", "101080704", "101080705", "101080706", "101080707", "101080708", "101080709", "101080710", "101080711", "101080712", "101080713", "101080801", "101080802", "101080803", "101080804", "101080805", "101080806", "101080807", "101080808", "101080809", "101080810", "101080901", "101080903", "101080904", "101080906", "101080907", "101080908", "101080909", "101080910", "101080911", "101080912", "101080913", "101080914", "101080915", "101080916", "101080917", "101081001", "101081002", "101081003", "101081004", "101081005", "101081006", "101081007", "101081008", "101081009", "101081010", "101081011", "101081012", "101081014", "101081015", "101081016", "101081101", "101081102", "101081103", "101081104", "101081105", "101081106", "101081107", "101081108", "101081109", "101081201", "101081202", "101081203", "101081204", "101081205", "101081206", "101081207", "101081208", "101081209", "101081210", "101081211", "101081212", "101090101", "101090102", "101090103", "101090104", "101090105", "101090106", "101090107", "101090108", "101090109", "101090110", "101090111", "101090112", "101090113", "101090114", "101090115", "101090116", "101090117", "101090118", "101090201", "101090202", "101090203", "101090204", "101090205", "101090206", "101090207", "101090209", "101090210", "101090211", "101090212", "101090214", "101090215", "101090216", "101090217", "101090218", "101090219", "101090220", "101090221", "101090222", "101090223", "101090224", "101090225", "101090301", "101090302", "101090303", "101090304", "101090305", "101090306", "101090307", "101090308", "101090309", "101090310", "101090311", "101090312", "101090313", "101090314", "101090402", "101090403", "101090404", "101090405", "101090406", "101090407", "101090408", "101090409", "101090410", "101090501", "101090502", "101090503", "101090504", "101090505", "101090506", "101090507", "101090508", "101090509", "101090510", "101090511", "101090512", "101090601", "101090602", "101090603", "101090604", "101090605", "101090606", "101090607", "101090608", "101090609", "101090701", "101090702", "101090703", "101090704", "101090705", "101090706", "101090707", "101090708", "101090709", "101090710", "101090711", "101090712", "101090713", "101090714", "101090716", "101090801", "101090802", "101090803", "101090804", "101090805", "101090806", "101090807", "101090808", "101090809", "101090810", "101090811", "101090901", "101090902", "101090904", "101090905", "101090906", "101090907", "101090908", "101090909", "101090910", "101090911", "101090912", "101090913", "101090914", "101090915", "101090916", "101090917", "101090918", "101091001", "101091002", "101091003", "101091004", "101091005", "101091006", "101091007", "101091008", "101091009", "101091010", "101091011", "101091012", "101091013", "101091014", "101091015", "101091016", "101091101", "101091102", "101091103", "101091104", "101091105", "101091106", "101100101", "101100102", "101100103", "101100104", "101100105", "101100106", "101100107", "101100201", "101100202", "101100203", "101100204", "101100205", "101100206", "101100207", "101100208", "101100301", "101100302", "101100303", "101100401", "101100402", "101100403", "101100404", "101100405", "101100406", "101100407", "101100408", "101100409", "101100410", "101100411", "101100412", "101100501", "101100502", "101100503", "101100504", "101100505", "101100506", "101100507", "101100508", "101100509", "101100510", "101100511", "101100601", "101100602", "101100603", "101100604", "101100605", "101100606", "101100701", "101100702", "101100703", "101100704", "101100705", "101100706", "101100707", "101100708", "101100709", "101100710", "101100711", "101100712", "101100713", "101100714", "101100715", "101100716", "101100717", "101100801", "101100802", "101100803", "101100804", "101100805", "101100806", "101100807", "101100808", "101100809", "101100810", "101100811", "101100812", "101100813", "101100901", "101100902", "101100903", "101100904", "101100905", "101100906", "101101001", "101101002", "101101003", "101101004", "101101005", "101101006", "101101007", "101101008", "101101009", "101101010", "101101011", "101101012", "101101013", "101101014", "101101015", "101101100", "101101101", "101101102", "101101103", "101101104", "101101105", "101101106", "101101107", "101101108", "101101109", "101101110", "101101111", "101101112", "101101113", "101110101", "101110102", "101110103", "101110104", "101110105", "101110106", "101110107", "101110200", "101110201", "101110202", "101110203", "101110204", "101110205", "101110206", "101110207", "101110208", "101110209", "101110210", "101110211", "101110300", "101110301", "101110302", "101110303", "101110304", "101110305", "101110306", "101110307", "101110308", "101110309", "101110310", "101110311", "101110312", "101110401", "101110402", "101110403", "101110404", "101110405", "101110406", "101110407", "101110408", "101110409", "101110410", "101110411", "101110412", "101110413", "101110501", "101110502", "101110503", "101110504", "101110505", "101110506", "101110507", "101110508", "101110509", "101110510", "101110511", "101110601", "101110602", "101110603", "101110604", "101110605", "101110606", "101110607", "101110608", "101110701", "101110702", "101110703", "101110704", "101110705", "101110706", "101110707", "101110708", "101110709", "101110710", "101110801", "101110802", "101110803", "101110804", "101110805", "101110806", "101110807", "101110808", "101110809", "101110810", "101110811", "101110901", "101110903", "101110904", "101110905", "101110906", "101110907", "101110908", "101110909", "101110910", "101110911", "101110912", "101111001", "101111002", "101111003", "101111004", "101111101", "101120101", "101120102", "101120103", "101120104", "101120105", "101120106", "101120201", "101120202", "101120204", "101120205", "101120206", "101120207", "101120208", "101120301", "101120302", "101120303", "101120304", "101120305", "101120306", "101120307", "101120308", "101120401", "101120402", "101120403", "101120404", "101120405", "101120406", "101120407", "101120408", "101120409", "101120410", "101120411", "101120501", "101120502", "101120503", "101120504", "101120505", "101120506", "101120507", "101120508", "101120509", "101120510", "101120511", "101120601", "101120602", "101120603", "101120604", "101120605", "101120606", "101120607", "101120608", "101120609", "101120701", "101120702", "101120703", "101120704", "101120705", "101120706", "101120707", "101120708", "101120709", "101120710", "101120711", "101120801", "101120802", "101120804", "101120805", "101120806", "101120901", "101120902", "101120903", "101120904", "101120905", "101120906", "101120907", "101120908", "101120909", "101120910", "101121001", "101121002", "101121003", "101121004", "101121005", "101121006", "101121007", "101121008", "101121009", "101121101", "101121102", "101121103", "101121104", "101121105", "101121106", "101121107", "101121201", "101121202", "101121203", "101121204", "101121205", "101121301", "101121302", "101121303", "101121304", "101121305", "101121306", "101121401", "101121402", "101121403", "101121404", "101121405", "101121501", "101121502", "101121503", "101121601", "101121701", "101121702", "101121703", "101121704", "101121705", "101121706", "101121707", "101121709", "101130101", "101130103", "101130105", "101130108", "101130109", "101130110", "101130201", "101130202", "101130203", "101130301", "101130302", "101130303", "101130401", "101130402", "101130403", "101130404", "101130405", "101130406", "101130407", "101130408", "101130409", "101130501", "101130502", "101130504", "101130601", "101130602", "101130603", "101130604", "101130605", "101130606", "101130607", "101130608", "101130610", "101130611", "101130612", "101130613", "101130614", "101130701", "101130801", "101130802", "101130803", "101130804", "101130805", "101130806", "101130807", "101130808", "101130809", "101130901", "101130902", "101130903", "101130904", "101130905", "101130906", "101130907", "101130908", "101130909", "101130910", "101130911", "101130912", "101131001", "101131002", "101131003", "101131004", "101131005", "101131006", "101131007", "101131008", "101131009", "101131010", "101131011", "101131101", "101131102", "101131103", "101131104", "101131105", "101131106", "101131107", "101131201", "101131203", "101131204", "101131301", "101131302", "101131303", "101131304", "101131305", "101131306", "101131307", "101131401", "101131402", "101131405", "101131406", "101131407", "101131408", "101131409", "101131501", "101131502", "101131503", "101131504", "101131601", "101131602", "101131603", "101131606", "101140101", "101140102", "101140103", "101140104", "101140105", "101140106", "101140107", "101140108", "101140201", "101140202", "101140203", "101140204", "101140205", "101140206", "101140207", "101140208", "101140209", "101140210", "101140211", "101140212", "101140213", "101140214", "101140216", "101140217", "101140218", "101140219", "101140220", "101140301", "101140302", "101140303", "101140304", "101140305", "101140306", "101140307", "101140308", "101140309", "101140310", "101140311", "101140312", "101140313", "101140314", "101140401", "101140402", "101140403", "101140404", "101140405", "101140406", "101140407", "101140501", "101140502", "101140503", "101140504", "101140505", "101140506", "101140507", "101140508", "101140509", "101140510", "101140511", "101140601", "101140602", "101140603", "101140604", "101140605", "101140606", "101140607", "101140608", "101140609", "101140610", "101140701", "101140702", "101140703", "101140704", "101140705", "101140706", "101140707", "101140708", "101140709", "101140710", "101150101", "101150102", "101150103", "101150104", "101150201", "101150202", "101150203", "101150204", "101150205", "101150206", "101150207", "101150208", "101150301", "101150302", "101150303", "101150304", "101150305", "101150401", "101150404", "101150406", "101150407", "101150408", "101150409", "101150501", "101150502", "101150503", "101150504", "101150505", "101150506", "101150508", "101150601", "101150602", "101150603", "101150604", "101150605", "101150606", "101150701", "101150708", "101150709", "101150712", "101150713", "101150716", "101150801", "101150802", "101150803", "101150804", "101150806", "101150901", "101150902", "101160101", "101160102", "101160103", "101160104", "101160201", "101160202", "101160203", "101160204", "101160205", "101160206", "101160207", "101160208", "101160301", "101160302", "101160303", "101160304", "101160305", "101160306", "101160307", "101160308", "101160401", "101160403", "101160404", "101160405", "101160406", "101160407", "101160408", "101160409", "101160501", "101160502", "101160503", "101160505", "101160601", "101160602", "101160701", "101160702", "101160703", "101160704", "101160705", "101160706", "101160801", "101160803", "101160804", "101160805", "101160806", "101160807", "101160808", "101160901", "101160903", "101160904", "101160905", "101160906", "101160907", "101160908", "101161001", "101161002", "101161003", "101161004", "101161005", "101161006", "101161007", "101161008", "101161009", "101161101", "101161102", "101161103", "101161104", "101161105", "101161106", "101161107", "101161201", "101161202", "101161203", "101161204", "101161205", "101161206", "101161207", "101161208", "101161301", "101161302", "101161303", "101161304", "101161305", "101161401", "101170101", "101170102", "101170103", "101170104", "101170201", "101170202", "101170203", "101170204", "101170301", "101170302", "101170303", "101170306", "101170401", "101170402", "101170403", "101170404", "101170406", "101170501", "101170502", "101170504", "101180101", "101180102", "101180103", "101180104", "101180105", "101180106", "101180107", "101180108", "101180201", "101180202", "101180203", "101180204", "101180205", "101180301", "101180302", "101180303", "101180304", "101180305", "101180306", "101180307", "101180308", "101180401", "101180402", "101180403", "101180404", "101180405", "101180501", "101180502", "101180503", "101180504", "101180505", "101180506", "101180507", "101180508", "101180601", "101180602", "101180603", "101180604", "101180605", "101180606", "101180607", "101180608", "101180609", "101180701", "101180702", "101180703", "101180704", "101180705", "101180706", "101180707", "101180708", "101180709", "101180710", "101180711", "101180712", "101180801", "101180802", "101180803", "101180804", "101180805", "101180901", "101180902", "101180903", "101180904", "101180905", "101180906", "101180907", "101180908", "101180909", "101180910", "101180911", "101181001", "101181003", "101181004", "101181005", "101181006", "101181007", "101181008", "101181009", "101181101", "101181102", "101181103", "101181104", "101181106", "101181107", "101181108", "101181201", "101181202", "101181203", "101181301", "101181302", "101181303", "101181304", "101181305", "101181401", "101181402", "101181403", "101181404", "101181405", "101181406", "101181407", "101181408", "101181409", "101181410", "101181501", "101181502", "101181503", "101181601", "101181602", "101181603", "101181604", "101181605", "101181606", "101181607", "101181608", "101181609", "101181610", "101181701", "101181702", "101181703", "101181704", "101181705", "101181706", "101181801", "101190101", "101190102", "101190103", "101190104", "101190105", "101190106", "101190107", "101190201", "101190202", "101190203", "101190204", "101190301", "101190302", "101190303", "101190304", "101190305", "101190401", "101190402", "101190403", "101190404", "101190405", "101190407", "101190408", "101190501", "101190502", "101190503", "101190504", "101190507", "101190508", "101190509", "101190601", "101190602", "101190603", "101190604", "101190605", "101190606", "101190701", "101190702", "101190703", "101190704", "101190705", "101190706", "101190707", "101190708", "101190709", "101190801", "101190802", "101190803", "101190804", "101190805", "101190806", "101190807", "101190901", "101190902", "101190903", "101190904", "101190905", "101190906", "101190908", "101191001", "101191002", "101191003", "101191004", "101191005", "101191101", "101191102", "101191103", "101191104", "101191201", "101191202", "101191203", "101191204", "101191205", "101191301", "101191302", "101191303", "101191304", "101191305", "101200101", "101200102", "101200103", "101200104", "101200105", "101200106", "101200201", "101200202", "101200203", "101200204", "101200205", "101200206", "101200207", "101200208", "101200301", "101200302", "101200401", "101200402", "101200403", "101200404", "101200405", "101200406", "101200407", "101200501", "101200502", "101200503", "101200504", "101200505", "101200506", "101200507", "101200508", "101200509", "101200510", "101200601", "101200602", "101200603", "101200604", "101200605", "101200606", "101200701", "101200702", "101200703", "101200704", "101200705", "101200706", "101200801", "101200802", "101200803", "101200804", "101200805", "101200806", "101200807", "101200901", "101200902", "101200903", "101200904", "101200906", "101200907", "101200908", "101200909", "101200910", "101200911", "101200912", "101201001", "101201002", "101201003", "101201004", "101201005", "101201006", "101201007", "101201008", "101201101", "101201102", "101201103", "101201104", "101201105", "101201106", "101201107", "101201108", "101201109", "101201201", "101201301", "101201302", "101201401", "101201402", "101201403", "101201404", "101201405", "101201406", "101201501", "101201601", "101201701", "101210101", "101210102", "101210103", "101210104", "101210105", "101210106", "101210107", "101210108", "101210201", "101210202", "101210203", "101210204", "101210301", "101210302", "101210303", "101210304", "101210305", "101210306", "101210401", "101210403", "101210404", "101210405", "101210406", "101210408", "101210410", "101210411", "101210412", "101210501", "101210502", "101210503", "101210504", "101210505", "101210506", "101210601", "101210603", "101210604", "101210605", "101210606", "101210607", "101210609", "101210610", "101210611", "101210612", "101210613", "101210701", "101210702", "101210703", "101210704", "101210705", "101210706", "101210707", "101210708", "101210709", "101210801", "101210802", "101210803", "101210804", "101210805", "101210806", "101210807", "101210808", "101210809", "101210901", "101210902", "101210903", "101210904", "101210905", "101210906", "101210907", "101210908", "101211001", "101211002", "101211003", "101211004", "101211005", "101211006", "101211101", "101211102", "101211104", "101211105", "101211106", "101220101", "101220102", "101220103", "101220104", "101220105", "101220106", "101220201", "101220202", "101220203", "101220204", "101220301", "101220302", "101220303", "101220304", "101220305", "101220401", "101220402", "101220403", "101220501", "101220502", "101220503", "101220504", "101220601", "101220602", "101220603", "101220604", "101220605", "101220606", "101220607", "101220608", "101220609", "101220701", "101220702", "101220703", "101220704", "101220705", "101220801", "101220802", "101220803", "101220804", "101220805", "101220806", "101220901", "101220902", "101220903", "101220904", "101221001", "101221002", "101221003", "101221004", "101221005", "101221006", "101221007", "101221008", "101221101", "101221102", "101221103", "101221104", "101221105", "101221106", "101221107", "101221201", "101221202", "101221301", "101221401", "101221402", "101221403", "101221404", "101221405", "101221406", "101221407", "101221501", "101221502", "101221503", "101221505", "101221506", "101221507", "101221701", "101221702", "101221703", "101221704", "101221705", "101230101", "101230102", "101230103", "101230104", "101230105", "101230107", "101230108", "101230110", "101230111", "101230201", "101230202", "101230301", "101230302", "101230303", "101230304", "101230305", "101230306", "101230307", "101230308", "101230309", "101230401", "101230402", "101230403", "101230404", "101230405", "101230406", "101230407", "101230501", "101230502", "101230504", "101230505", "101230506", "101230507", "101230508", "101230509", "101230510", "101230601", "101230602", "101230603", "101230604", "101230605", "101230606", "101230607", "101230608", "101230609", "101230610", "101230701", "101230702", "101230703", "101230704", "101230705", "101230706", "101230707", "101230801", "101230802", "101230803", "101230804", "101230805", "101230806", "101230807", "101230808", "101230809", "101230810", "101230811", "101230901", "101230902", "101230903", "101230904", "101230905", "101230906", "101230907", "101230908", "101230909", "101230910", "101231001", "101240101", "101240102", "101240103", "101240104", "101240105", "101240201", "101240202", "101240203", "101240204", "101240205", "101240206", "101240207", "101240208", "101240209", "101240210", "101240212", "101240301", "101240302", "101240303", "101240305", "101240306", "101240307", "101240308", "101240309", "101240310", "101240311", "101240312", "101240313", "101240401", "101240402", "101240403", "101240404", "101240405", "101240406", "101240407", "101240408", "101240409", "101240410", "101240411", "101240501", "101240502", "101240503", "101240504", "101240505", "101240506", "101240507", "101240508", "101240509", "101240510", "101240601", "101240602", "101240603", "101240604", "101240605", "101240606", "101240607", "101240608", "101240609", "101240610", "101240611", "101240612", "101240613", "101240701", "101240702", "101240703", "101240704", "101240705", "101240706", "101240707", "101240708", "101240709", "101240710", "101240711", "101240712", "101240713", "101240714", "101240715", "101240716", "101240717", "101240718", "101240801", "101240802", "101240803", "101240901", "101240902", "101240903", "101240904", "101240905", "101240906", "101241001", "101241002", "101241101", "101241102", "101241103", "101250101", "101250102", "101250103", "101250104", "101250105", "101250201", "101250202", "101250203", "101250301", "101250302", "101250303", "101250305", "101250306", "101250401", "101250402", "101250403", "101250404", "101250405", "101250406", "101250407", "101250408", "101250409", "101250501", "101250502", "101250503", "101250504", "101250505", "101250507", "101250508", "101250509", "101250510", "101250511", "101250512", "101250601", "101250602", "101250603", "101250604", "101250605", "101250606", "101250607", "101250608", "101250700", "101250701", "101250702", "101250703", "101250704", "101250705", "101250801", "101250802", "101250803", "101250805", "101250806", "101250901", "101250902", "101250903", "101250904", "101250905", "101250906", "101250907", "101250908", "101250909", "101250910", "101251001", "101251002", "101251003", "101251004", "101251005", "101251006", "101251101", "101251102", "101251103", "101251104", "101251201", "101251203", "101251204", "101251205", "101251206", "101251207", "101251208", "101251209", "101251210", "101251211", "101251212", "101251213", "101251401", "101251402", "101251403", "101251404", "101251405", "101251406", "101251407", "101251408", "101251409", "101251410", "101251411", "101251501", "101251502", "101251503", "101251504", "101251505", "101251506", "101251507", "101251508", "101260101", "101260102", "101260103", "101260104", "101260105", "101260106", "101260107", "101260108", "101260109", "101260110", "101260111", "101260201", "101260202", "101260203", "101260204", "101260205", "101260206", "101260207", "101260208", "101260209", "101260210", "101260211", "101260212", "101260213", "101260214", "101260215", "101260301", "101260302", "101260303", "101260304", "101260305", "101260306", "101260401", "101260402", "101260403", "101260404", "101260405", "101260406", "101260407", "101260408", "101260409", "101260410", "101260411", "101260412", "101260501", "101260502", "101260503", "101260504", "101260505", "101260507", "101260508", "101260509", "101260510", "101260511", "101260512", "101260513", "101260514", "101260515", "101260516", "101260517", "101260601", "101260602", "101260603", "101260604", "101260605", "101260607", "101260608", "101260609", "101260610", "101260611", "101260701", "101260702", "101260703", "101260704", "101260705", "101260706", "101260707", "101260708", "101260801", "101260802", "101260804", "101260901", "101260902", "101260903", "101260904", "101260905", "101260907", "101260908", "101260909", "101270101", "101270102", "101270103", "101270104", "101270105", "101270106", "101270107", "101270108", "101270109", "101270110", "101270111", "101270112", "101270113", "101270114", "101270115", "101270201", "101270202", "101270203", "101270204", "101270301", "101270302", "101270303", "101270401", "101270402", "101270403", "101270404", "101270405", "101270406", "101270407", "101270408", "101270501", "101270502", "101270503", "101270504", "101270505", "101270506", "101270507", "101270601", "101270602", "101270603", "101270604", "101270605", "101270606", "101270607", "101270608", "101270701", "101270702", "101270703", "101270801", "101270802", "101270803", "101270804", "101270805", "101270901", "101270902", "101270903", "101270904", "101271001", "101271003", "101271004", "101271005", "101271006", "101271007", "101271101", "101271103", "101271104", "101271105", "101271106", "101271107", "101271108", "101271109", "101271110", "101271111", "101271201", "101271202", "101271203", "101271204", "101271205", "101271301", "101271302", "101271303", "101271304", "101271401", "101271402", "101271403", "101271404", "101271405", "101271406", "101271407", "101271408", "101271409", "101271501", "101271502", "101271503", "101271504", "101271505", "101271506", "101271601", "101271603", "101271604", "101271605", "101271606", "101271607", "101271608", "101271609", "101271610", "101271611", "101271612", "101271613", "101271614", "101271615", "101271616", "101271617", "101271618", "101271619", "101271701", "101271702", "101271703", "101271704", "101271705", "101271706", "101271707", "101271708", "101271801", "101271802", "101271803", "101271804", "101271805", "101271806", "101271807", "101271808", "101271809", "101271810", "101271811", "101271812", "101271813", "101271814", "101271815", "101271816", "101271817", "101271818", "101271901", "101271902", "101271903", "101271904", "101271905", "101271906", "101271907", "101271908", "101271909", "101271910", "101271911", "101271912", "101271913", "101272001", "101272002", "101272003", "101272004", "101272005", "101272006", "101272101", "101272102", "101272103", "101272104", "101272105", "101280101", "101280102", "101280103", "101280104", "101280105", "101280201", "101280202", "101280203", "101280204", "101280205", "101280206", "101280207", "101280208", "101280209", "101280210", "101280211", "101280301", "101280302", "101280303", "101280304", "101280305", "101280401", "101280402", "101280403", "101280404", "101280406", "101280407", "101280408", "101280409", "101280501", "101280502", "101280503", "101280504", "101280601", "101280701", "101280702", "101280703", "101280800", "101280801", "101280802", "101280803", "101280804", "101280901", "101280902", "101280903", "101280905", "101280906", "101280907", "101280908", "101281001", "101281002", "101281003", "101281004", "101281005", "101281006", "101281007", "101281008", "101281009", "101281010", "101281101", "101281103", "101281104", "101281105", "101281106", "101281107", "101281108", "101281109", "101281201", "101281202", "101281203", "101281204", "101281205", "101281206", "101281301", "101281302", "101281303", "101281304", "101281305", "101281306", "101281307", "101281308", "101281401", "101281402", "101281403", "101281404", "101281406", "101281501", "101281502", "101281503", "101281601", "101281701", "101281801", "101281802", "101281803", "101281804", "101281901", "101281902", "101281903", "101281904", "101281905", "101282001", "101282002", "101282003", "101282004", "101282005", "101282006", "101282101", "101282102", "101282103", "101282104", "101290101", "101290103", "101290104", "101290105", "101290106", "101290107", "101290108", "101290109", "101290110", "101290111", "101290112", "101290113", "101290201", "101290202", "101290203", "101290204", "101290205", "101290206", "101290207", "101290208", "101290209", "101290210", "101290211", "101290212", "101290301", "101290302", "101290303", "101290304", "101290305", "101290306", "101290307", "101290308", "101290309", "101290310", "101290311", "101290312", "101290313", "101290401", "101290402", "101290403", "101290404", "101290405", "101290406", "101290407", "101290408", "101290409", "101290501", "101290503", "101290504", "101290505", "101290506", "101290601", "101290602", "101290603", "101290604", "101290605", "101290606", "101290607", "101290608", "101290701", "101290702", "101290703", "101290704", "101290705", "101290706", "101290707", "101290708", "101290709", "101290801", "101290802", "101290803", "101290804", "101290805", "101290806", "101290807", "101290808", "101290809", "101290810", "101290901", "101290902", "101290903", "101290904", "101290906", "101290907", "101290908", "101290909", "101290911", "101290912", "101291001", "101291002", "101291003", "101291004", "101291005", "101291006", "101291007", "101291008", "101291009", "101291010", "101291011", "101291101", "101291102", "101291103", "101291104", "101291105", "101291106", "101291107", "101291108", "101291201", "101291203", "101291204", "101291205", "101291206", "101291207", "101291301", "101291302", "101291303", "101291304", "101291401", "101291402", "101291403", "101291404", "101291501", "101291503", "101291504", "101291506", "101291507", "101291508", "101291601", "101291603", "101291605", "101300101", "101300103", "101300104", "101300105", "101300106", "101300107", "101300108", "101300109", "101300201", "101300202", "101300203", "101300204", "101300205", "101300206", "101300207", "101300301", "101300302", "101300304", "101300305", "101300306", "101300307", "101300308", "101300401", "101300402", "101300403", "101300404", "101300405", "101300406", "101300501", "101300503", "101300504", "101300505", "101300506", "101300507", "101300508", "101300509", "101300510", "101300511", "101300512", "101300513", "101300514", "101300601", "101300602", "101300604", "101300605", "101300606", "101300701", "101300702", "101300703", "101300704", "101300801", "101300802", "101300803", "101300901", "101300902", "101300903", "101300904", "101300905", "101300906", "101301001", "101301002", "101301003", "101301004", "101301005", "101301006", "101301007", "101301008", "101301009", "101301010", "101301011", "101301012", "101301101", "101301102", "101301103", "101301201", "101301202", "101301203", "101301204", "101301205", "101301206", "101301207", "101301208", "101301209", "101301210", "101301211", "101301301", "101301302", "101301303", "101301401", "101301402", "101301403", "101301405", "101310101", "101310201", "101310202", "101310203", "101310204", "101310205", "101310206", "101310207", "101310208", "101310209", "101310210", "101310211", "101310212", "101310214", "101310215", "101310216", "101310217", "101310220", "101310221", "101310222", "101310224", "101320101", "101320102", "101320103", "101330101", "101330102", "101330103", "101340101", "101340102", "101340103", "101340104", "101340201", "101340202", "101340203", "101340204", "101340205", "101340401", "101340402", "101340403", "101340404", "101340405", "101340406", "101310230" }; }