thinkphpv5.0怎么在关闭浏览器即删除session或存有sessionid的cookie? 5C

thinkphp框架v5.0,怎么在关闭浏览器即删除session或存有sessionid的cookie?

2个回答

qq_34465428
qq_34465428 您好,苏小喵,怎么才能实现我说的那样呢,本人菜鸟,session理解的不是很深,问题挺急的,还望帮帮忙,解决了,我再给您加20C
2 年多之前 回复

浏览器关闭后,session|cookie里的东西自然会清空,也可以自己设置
session.setMaxInactiveInterval(900);
参数900单位是秒,即在没有活动15分钟后,session将失效。设置为-1将永不关闭。
这里要注意这个session设置的时间是根据服务器来计算的,而不是客户端。所以如果是在调试程序,应该是修改服务器端时间来测试,而不是客户端

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
apache tomcat集群Session 共享后报错!
我参考http://www.blogjava.net/killme2008/archive/2007/03/13/103607.html 实现session共享。 然后我把我的工程放到tomcat 里面去。启动不报错。点击登录的时候就登录不进去。多次点击登录按钮 会进入到主界面然后又强制退出到登录界面。 我的tomcat集群版本是 Apache 2.2.25 Tomcat-7.0.55 点击登录的时候报: 严重: Manager [localhost#/MesLLong]: Unable to receive message through TCP channel java.lang.IllegalArgumentException: Session id mismatch, not executing the delta request at org.apache.catalina.ha.session.DeltaRequest.execute(DeltaRequest.java:160) at org.apache.catalina.ha.session.DeltaManager.handleSESSION_DELTA(DeltaManager.java:1280) at org.apache.catalina.ha.session.DeltaManager.messageReceived(DeltaManager.java:1226) at org.apache.catalina.ha.session.DeltaManager.messageDataReceived(DeltaManager.java:944) at org.apache.catalina.ha.session.ClusterSessionListener.messageReceived(ClusterSessionListener.java:9 1) at org.apache.catalina.ha.tcp.SimpleTcpCluster.messageReceived(SimpleTcpCluster.java:936) at org.apache.catalina.ha.tcp.SimpleTcpCluster.messageReceived(SimpleTcpCluster.java:917) at org.apache.catalina.tribes.group.GroupChannel.messageReceived(GroupChannel.java:278) at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java :82) at org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.messageReceived(TcpFailureDetector .java:117) at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java :82) at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java :82) at org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor.messageReceived(ThroughputInter ceptor.java:90) at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java :82) at org.apache.catalina.tribes.group.ChannelCoordinator.messageReceived(ChannelCoordinator.java:252) at org.apache.catalina.tribes.transport.ReceiverBase.messageDataReceived(ReceiverBase.java:287) at org.apache.catalina.tribes.transport.nio.NioReplicationTask.drainChannel(NioReplicationTask.java:21 0) at org.apache.catalina.tribes.transport.nio.NioReplicationTask.run(NioReplicationTask.java:99) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745)。 拜托各位大神指教!
asp.net dll文件丢失怎么回事?
严重性 代码 说明 项目 文件 行 禁止显示状态 错误 CS0006 未能找到元数据文件“D:\PGM Project\Stu_Examination_System\SES_DAL\bin\Debug\SES_DAL.dll” SES_BLL D:\PGM Project\Stu_Examination_System\SES_BLL\CSC 1 活动的 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 CS0006 未能找到元数据文件“D:\PGM Project\Stu_Examination_System\SES_BLL\bin\Debug\SES_BLL.dll” SES_Web D:\PGM Project\Stu_Examination_System\SES_Web\CSC 1 活动的
这个为什么没办法插入到数据库?
servlet里调用impl中的方法 public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{ //将订单写入数据库 int count = 1; HttpSession ses = request.getSession(); List<Member> member = (List<Member>) ses.getAttribute("member"); HashMap<Integer, Product> shopCart = (HashMap<Integer, Product>) ses.getAttribute("SelectedGoods"); Order order = new Order(); for (HashMap.Entry<Integer, Product> entry : shopCart.entrySet()) { for (int i = 0; i < member.size(); i++) { order.setAddress(member.get(i).getAddress()); order.setMname(member.get(i).getName()); order.setTelephone(member.get(i).getTelephone()); } order.setPname(entry.getValue().getName()); order.setPrice(entry.getValue().getPrice()); order.setNum(entry.getValue().getAmount()); order.setNote(entry.getValue().getNote()); order.setOrderid("o"+count); count++; try { DAOFactory.getOrderDAOInstance().doCreate(order); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } //跳转 request.getRequestDispatcher("psuccess.jsp").forward(request, response); HttpSession session = request.getSession(); session.removeAttribute("SelectedGoods"); } impl中的方法 public boolean doCreate(Order order)throws Exception{ boolean flag = false; String sql = "INSERT INTO order(orderid,mname,address,telephone,pname,note,price,num)VALUES(?,?,?,?,?,?,?,?)"; this.pstmt = this.conn.prepareStatement(sql); /*System.out.println(order.getOrderid()); System.out.println(order.getMname()); System.out.println(order.getAddress()); System.out.println(order.getTelephone()); System.out.println(order.getPname()); System.out.println(order.getNote()); System.out.println(order.getPrice()); System.out.println(order.getNum());*/ this.pstmt.setString(1,order.getOrderid()); this.pstmt.setString(2,order.getMname()); this.pstmt.setString(3,order.getAddress()); this.pstmt.setString(4,order.getTelephone()); this.pstmt.setString(5,order.getPname()); this.pstmt.setString(6,order.getNote()); this.pstmt.setDouble(7,order.getPrice()); this.pstmt.setInt(8,order.getNum()); if(this.pstmt.executeUpdate()>0){ flag = true; } this.pstmt.close(); return flag; } 报错信息: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order(orderid,mname,address,telephone,pname,note,price,num)VALUES('o1','qwe','qw' at line 1
spring 3.2 @Transactional(readOnly = true)
spring 3.2 @Transactional(readOnly = true) 开启只读事务 ``` public List findAll() { log.debug("finding all ParkRuleConfig2 instances"); try { String queryString = "from ParkRuleConfig2"; return getHibernateTemplate().find(queryString); } catch (RuntimeException re) { log.error("find all failed", re); throw re; } } ``` 本以为一个简单查询语句,却捣鼓了好久! 一直报错,如下: ``` 严重: Servlet.service() for servlet [mvc] in context with path [/easypark] threw exception [Request processing failed; nested exception is org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is java.lang.NoSuchFieldError: MANUAL] with root cause java.lang.NoSuchFieldError: MANUAL at org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:531) at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:372) at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:417) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:255) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at com.sun.proxy.$Proxy12.getparkRuleConfigNidList(Unknown Source) at com.bitcom.platform.maintain.web.ChargePolicyController.getparkRuleConfigNidList(ChargePolicyController.java:302) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:745) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:686) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:838) at javax.servlet.http.HttpServlet.service(HttpServlet.java:641) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at com.bitcom.platform.common.filter.AMFContextFilter.doFilter(AMFContextFilter.java:58) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:744) ```
异步请求为何会请求完成跳转到server.ashx文件
``` $(function () { $("#ImgButOn").click(function () { $.ajax({ url: "server.ashx",//请求服务端地址 cache: false, type: "post",//请求方式 dataType: "json", data: { UserId: $("#TxtUser").val(), UserPwd: $("#TxtPwd").val() },//发送到服务端的数据 success: function (obj) { if (obj == "1") { $("#labPwd").text("登录成功"); } else { $("#labPwd").text("登录失败"); } } error: function (XmlHttpRequest, textStatus, errorThrown) { alert(XmlHttpRequest.responseText); } }) //success:function (date) {//服务端成功处理时回调函数 // alert(date ); //}, //error: function () {//服务端失败时的回调函数 // alert("请求未成功!"); //}, //预期服务端发回数据类型 }) }) SES_Model.User user = new SES_Model.User(); //服务端要获得客户端以AJAX请求发送过来的数据 string UserId = context.Request["TxtUser"]; string UserPwd = context.Request["TxtPwd"]; int i = 0; //在服务器中处理数据 if (UserId != null && UserPwd != null) { i = SES_BLL.Users_Service.User_Enter(UserId, UserPwd); } string msg = string.Empty; context.Response.ContentType = "text/plain"; context.Response.Write(i +""); context.Response.End(); ```
又见org.hibernate.LazyInitializationException: could not initialize proxy - no Ses
近期的一个项目,后台load,get分别是: [code="java"](T) getHibernateTemplate().load(entityClass, id);[/code][code="java"](T) getHibernateTemplate().get(entityClass, id);[/code],就是根据id查找,然后一个省市多对一的2个类: [code="java"] @Entity @Table(name = "T_City") public class City { private int id; private String name; private Province province; @Id @GeneratedValue public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @ManyToOne @JoinColumn(name = "PROVINCE_ID") public Province getProvince() { return province; } public void setProvince(Province province) { this.province = province; } } [/code] [code="java"]@Entity @Table(name = "T_Province") public class Province { private int id; private String name; private String shortName; @Id @GeneratedValue public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getShortName() { return shortName; } public void setShortName(String shortName) { this.shortName = shortName; } }[/code]为什么我用load就会出现org.hibernate.LazyInitializationException: could not initialize proxy - no Session 用get就不会,我看springside都用的load啊
跨域访问导致当前session丢失
同一台服务器,不同端口的两个应用,A网站访问B系统的jsp页面(页面能正常显示)会导致A系统session失效,访问html页面不会。jsp页面response.setHeader("P3P",“CP='IDC DSP COR ADM DEVi TAIi PSA…'”),还有CP=CAO PSA OUR都试过,不顶用。我把jsp页面内容清空在访问,还是会这样。请问有大神知道怎么解决么,谢谢。
请求python3.7中 的url中文问题
import string import urllib import json import time from quopri import quote ISOTIMEFORMAT='%Y-%m-%d %X' outputFile = 'douban_movie.txt' fw = open(outputFile, 'w') fw.write('id;title;url;cover;rate\n') headers = {} headers["Accept"] = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" headers["Accept-Encoding"] = "gzip, deflate, sdch" headers["Accept-Language"] = "zh-CN,zh;q=0.8,en;q=0.6,zh-TW;q=0.4,ja;q=0.2" # headers["Cache-Control"] = "max-age=0" headers["Connection"] = "keep-alive" # headers["Cookie"] = 'bid="LJSWKkSUfZE"; ll="108296"; __utmt=1; regpop=1; _pk_id.100001.4cf6=32aff4d8271b3f15.1442223906.2.1442237186.1442224653.; _pk_ses.100001.4cf6=*; __utmt_douban=1; __utma=223695111.736177897.1442223906.1442223906.1442236473.2; __utmb=223695111.0.10.1442236473; __utmc=223695111; __utmz=223695111.1442223906.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utma=30149280.674845100.1442223906.1442236473.1442236830.3; __utmb=30149280.4.9.1442237186215; __utmc=30149280; __utmz=30149280.1442236830.3.2.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; ap=1' headers["Host"] = "movie.douban.com" headers["Referer"] = "http://movie.douban.com/" headers["Upgrade-Insecure-Requests"] = 1 headers["User-Agent"] = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.85 Safari/537.36" # 获取tag request = urllib.request.Request(url="http://movie.douban.com/j/search_tags?type=movie") response = urllib.request.urlopen(request) tags = json.loads(response.read())['tags'] # 开始爬取 print ("********** START **********") print (time.strftime( ISOTIMEFORMAT, time.localtime() )) for tag in tags: print ("Crawl movies with tag: " + tag) print (time.strftime( ISOTIMEFORMAT, time.localtime() )) start = 0 while True: url = "http://movie.douban.com/j/search_subjects?type=movie&tag=" +tag.encode("utf-8")+"&page_limit=20&page_start="+str(start) #url = quote(url, safe=string.printable) request = urllib.request.Request(url=url) response = urllib.request.urlopen(request) movies = json.loads(response.read())['subjects'] if len(movies) == 0: break for item in movies: rate = item['rate'] title = item['title'] url = item['url'] cover = item['cover'] movieId = item['id'] record = str(movieId) + ';' + title + ';' + url + ';' + cover + ';' + str(rate) + '\n' fw.write(record.encode('utf-8')) print (tag + '\t' + title) start = start + 20 fw.close() ![图片说明](https://img-ask.csdn.net/upload/201906/02/1559463756_939891.png) ![图片说明](https://img-ask.csdn.net/upload/201906/02/1559463786_165838.png) ![图片说明](https://img-ask.csdn.net/upload/201906/02/1559463796_447639.png) ![图片说明](https://img-ask.csdn.net/upload/201906/02/1559463972_311111.png)
小白用python编写的爬虫小程序突然失效,是ip被封还是其他问题,求教?
# 编写的python小程序,爬取豆瓣评论,昨天还可以用,今天就失效了,试过很多种解决方法,都没有成功,求教? ## 可能的问题是ip被封或者cookies? 主程序 ``` # -*- coding: utf-8 -*- import ReviewCollection from snownlp import SnowNLP from matplotlib import pyplot as plt #画饼状图 def PlotPie(ratio, labels, colors): plt.figure(figsize=(6, 8)) explode = (0.05,0) patches,l_text,p_text = plt.pie(ratio,explode=explode,labels=labels,colors=colors, labeldistance=1.1,autopct='%3.1f%%',shadow=False, startangle=90,pctdistance=0.6) plt.axis('equal') plt.legend() plt.show() def main(): #初始url url = 'https://movie.douban.com/subject/30176393/' #保存评论文件 outfile = 'review.txt' (reviews, sentiment) = ReviewCollection.CollectReivew(url, 20, outfile) numOfRevs = len(sentiment) print(numOfRevs) #print(sentiment) positive = 0.0 negative = 0.0 accuracy = 0.0 #利用snownlp逐条分析每个评论的情感 for i in range(numOfRevs): # if sentiment[i] == 1: # positive += 1 # else: # negative += 1 print(reviews[i]+str(i)) sent = SnowNLP(reviews[i]) predict = sent.sentiments #print(predict,end=' ') if predict >= 0.5: positive += 1 if sentiment[i] == 1: accuracy += 1 else: negative += 1 if sentiment[i] == 0: accuracy += 1 #计算情感分析的精度 print('情感预测精度为: ' + str(accuracy/numOfRevs)) # print(positive,negative) #绘制饼状图 #定义饼状图的标签 labels = ['Positive Reviews', 'Negetive Reviews'] #每个标签占的百分比 ratio = [positive/numOfRevs, negative/numOfRevs] # print(ratio[0],ratio[1]) colors = ['red','yellowgreen'] PlotPie(ratio, labels, colors) if __name__=="__main__": main() ``` 次程序 ``` #!/usr/bin/python # -*- coding: utf-8 -*- from bs4 import BeautifulSoup import requests import csv import re import time import codecs import random def StartoSentiment(star): ''' 将评分转换为情感标签,简单起见 我们将大于或等于三星的评论当做正面评论 小于三星的评论当做负面评论 ''' score = int(star[-2]) if score >= 3: return 1 else: return 0 def CollectReivew(root, n, outfile): ''' 收集给定电影url的前n条评论 ''' reviews = [] sentiment = [] urlnumber = 0 headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36','Connection': 'close','cookie': 'll="108303"; bid=DOSjemTnbi0; _pk_ses.100001.4cf6=*; ap_v=0,6.0; __utma=30149280.1517093765.1576143949.1576143949.1576143949.1; __utmb=30149280.0.10.1576143949; __utmc=30149280; __utmz=30149280.1576143949.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utma=223695111.1844590374.1576143949.1576143949.1576143949.1; __utmc=223695111; __utmz=223695111.1576143949.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmt=1; __yadk_uid=iooXpNnGnHUza2r4ru7uRCpa3BXeHG0l; dbcl2="207917948:BFXaC6risAw"; ck=uFvj; _pk_id.100001.4cf6=4c11da64dc6451d3.1576143947.1.1576143971.1576143947.; __utmb=223695111.2.10.1576143949'} proxies = { "http":'http://121.69.46.177:9000',"https": 'https://122.136.212.132:53281'}#121.69.46.177:9000218.27.136.169:8085 122.136.212.132:53281 while urlnumber < n: url = root + 'comments?start=' + str(urlnumber) + '&limit=20&sort=new_score&status=P' print('要收集的电影评论网页为:' + url) # try: html = requests.get(url, headers = headers, proxies = proxies,timeout = 15) # # except Exception as e: # break soup = BeautifulSoup(html.text.encode("utf-8"),'html.parser') #通过正则表达式匹配评论和评分 for item in soup.find_all(name='span',attrs={'class':re.compile(r'^allstar')}): sentiment.append(StartoSentiment(item['class'][0])) #for item in soup.find_all(name='p',attrs={'class':''}): # if str(item).find('class="pl"') < 0: # r = str(item.string).strip() # reviews.append(r) comments = soup.find_all('span','short') for comment in comments: # print(comment.getText()+'\n') reviews.append(comment.getText()+'\n') urlnumber = urlnumber + 20 time.sleep(5) with codecs.open(outfile, 'w', 'utf-8') as output: for i in range(len(sentiment)): output.write(reviews[i] + '\t' + str(sentiment[i]) + '\n') return (reviews, sentiment) ``` ![图片说明](https://img-ask.csdn.net/upload/201912/12/1576149313_611712.jpg) 不设置参数proxies时错误如下:![图片说明](https://img-ask.csdn.net/upload/201912/12/1576149408_985833.jpg) 求教解决方法,感谢!!!!
tomcat配置oracle数据源 帮帮忙!还有是不是在context.xml中配数据源的
项目的web.xml中 ![图片说明](https://img-ask.csdn.net/upload/201605/19/1463646690_849773.png) tomcat的config下的context.xml中 <Context> <WatchedResource>WEB-INF/web.xml</WatchedResource> <Resource --------**从这开始是我自己加的** name="jdbc/oracle" type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver" maxIdle="2" maxWait="5000" username="ses" password="ses" url="jdbc:oracle:thin:@localhost:1521:orcl" maxActive="4"/> ----------**结束** </Context> java代码获取数据源 private DataSource getDataSource() { DataSource ds = null; try { Context ctx = new InitialContext(); ds = (DataSource) ctx.lookup("java:comp/env/jdbc/oracle"); } catch (Exception e) { System.out.println("数据源获取失败"); e.printStackTrace(); } return ds; } 报错:javax.naming.NameNotFoundException: Name [jdbc/oracle] is not bound in this Context. Unable to find [jdbc].
tomcat部署项目后卡住不动,没有错误信息。
项目没有问题,从svn导出的,其他组员都好用。 tomcat没问题 启动后卡在2016-8-3 10:48:43 org.apache.catalina.core.AprLifecycleListener init 信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Users\yfersm\AppData\Local\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86_64_1.6.0.013\bin;C:\Users\yfersm\Desktop\tomcat-6.0.18\bin 2016-8-3 10:48:43 org.apache.coyote.http11.Http11Protocol init 信息: Initializing Coyote HTTP/1.1 on http-8080 2016-8-3 10:48:43 org.apache.catalina.startup.Catalina load 信息: Initialization processed in 1278 ms 2016-8-3 10:48:43 org.apache.catalina.core.StandardService start 信息: Starting service Catalina 2016-8-3 10:48:43 org.apache.catalina.core.StandardEngine start 信息: Starting Servlet Engine: Apache Tomcat/6.0.18 2016-8-3 10:48:50 org.apache.catalina.core.ApplicationContext log 信息: Initializing Spring root WebApplicationContext - Root WebApplicationContext: initialization started - Refreshing Root WebApplicationContext: startup date [Wed Aug 03 10:48:51 CST 2016]; root of context hierarchy - Loading XML bean definitions from file [C:\Users\yfersm\Desktop\tomcat-6.0.18\webapps\ses\WEB-INF\classes\applicationContext.xml] - JSR-330 'javax.inject.Named' annotation found and supported for component scanning - Loading XML bean definitions from file [C:\Users\yfersm\Desktop\tomcat-6.0.18\webapps\ses\WEB-INF\classes\applicationQuartz.xml] - Loading properties file from class path resource [jdbc.properties] - JSR-330 'javax.inject.Inject' annotation found and supported for autowiring - Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@46d999a: defining beans [LoadCodesServlet,assetsService,assetssService,assetsClassifyService,cityService,companyManageService,deptService,evaluateService,evaluateAssetsService,evaluateClassifyService,evaluateSystemService,generateReportService,logService,loginService,passwdService,operationService,otherManageService,roleService,systemEvaluateService,systemEvaluateProjectService,userService,userManageService,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.support.PropertySourcesPlaceholderConfigurer#0,dataSource,txManager,txAdvice,org.springframework.aop.config.internalAutoProxyCreator,ServicePointcut,org.springframework.aop.support.DefaultBeanFactoryPointcutAdvisor#0,org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0,org.springframework.transaction.interceptor.TransactionInterceptor#0,org.springframework.transaction.config.internalTransactionAdvisor,sqlSessionFactory,org.mybatis.spring.mapper.MapperScannerConfigurer#0,rc,rightInterceptor,nativeJdbcExtractor,oracleLobHandler,operationAction,myScheduler,org.springframework.context.annotation.ConfigurationClassPostProcessor$ImportAwareBeanPostProcessor#0,assetsMapper,assetssMapper,assetsClassifyMapper,companyManageMapper,deptMapper,evaluateMapper,evaluateAssetsMapper,evaluateClassifyMapper,evaluateSystemMapper,generateReportMapper,logMapper,loginMapper,passwdMapper,otherManageMapper,roleMapper,systemEvaluateMapper,systemEvaluateProjectMapper,userMapper,userManageMapper]; root of factory hierarchy 不动了
Informix 锁表 杀不掉进程
数据库版本:INFORMIX11.5 有一张表REINSINTERFACELOG 单标数据量大概有一千万条,今天执行了一条删除语句:DELETE REINSINTERFACELOG WHERE BUSINESSTYPE = 'SYN_TREATY',如果删除的话大概有200万条左右,但是锁表了! 按照一般的处理流程,找到了锁表的sessionid:694923,然后执行:onstat -g ses 694923 输出如下图:![图片说明](https://img-ask.csdn.net/upload/201606/06/1465190840_554185.jpg) TMD的PID=0,这个怎么删除呢?
为啥接受不到数据AJAX
``` <script src ="Js/jquery-3.4.1.js"> </script> <script> ////定义变量保存XmlHttpRequest对象 //var xmlHttp = null; ////用于创建AJAX请求核心对象XmlHttpRequest //function createXmlHttpRequest() { // try // { // xmlHttp = new XMLHttpRequest();//适用于IE7+,Fireiox,Chrome等主流浏览器 // } // catch (Error) // { // xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");//适用于IE低版本7以下的 // } //} //$(function () { // $("#ImgButOn").click(function () { // //调用函数创建XmlHttpRequest对象 // createXmlHttpRequest(); // //获得需要提交给服务器的数据 // var UserId = $("#TxtUser").val(); // var UserPwd = $("#TxtPwd").val(); // //服务端路劲,同时把数据传送到服务器地址拦 // var serverPath = "server.ashx?UserId=" + UserId + "&UserPwd=" + UserPwd + ""; // //设置XmlHttpRequest对象参数 // xmlHttp.open("get", serverPath, true); // //服务端处理结果,使用XmlHttpRequest对象状态监测 // xmlHttp.onreadystatechange = clicentCallback; // //通过XmlHttpRequest对象发送请求 // xmlHttp.send(); // }) //}) //function clicentCallback() { // //XmlHttpRequest对象状态从开始发送请求到服务端经历了4个分别是: // //返回值 0 :请求位初始化 // //返回值 1 :和服务端连接已经建立 // //返回值 2 : 请求已被服务端接受 // //返回值 3 :请求处理中 // //返回值 4 :请求处理完 // if (xmlHttp.readyState == 4) { // if (xmlHttp.status == 200) { // //获得服务端返回给客户端的结果(纯文本,xml,josn,html) // var msg = xmlHttp.responseText; // alert(msg); // } // } //} //#Jquery封装函数使用AJAX异步请求 $(function () { $("#ImgButOn").click(function () { $.ajax({ url:"server.ashx",//请求服务端地址 type:"get",//请求方式 data:{ "UserId": $("#TxtUser").val(), "UserPwd":$("#TxtPwd").val() }//发送到服务端的数据 success:function (date, status, xmlhttp) {//服务端成功处理时回调函数 alert(date + ":" + status); }, error: function () {//服务端失败时的回调函数 alert("请求未成功!"); }, dataType:"text"//预期服务端发回数据类型 }) }) </script> public void ProcessRequest(HttpContext context) { SES_Model.User user = new SES_Model.User(); //服务端要获得客户端以AJAX请求发送过来的数据 string UserId = context.Request.QueryString["UserId"]; string UserPwd = context.Request.QueryString["UserPwd"]; //在服务器中处理数据 user = SES_BLL.Users_Service.User_Enter(UserId, UserPwd); string msg = string.Empty; if (user != null) { msg = "ok"; } else { msg = "error!"; } context.Response.ContentType = "text/plain"; context.Response.Write(null); } ```
fedora开机慢,要100秒
我查看了dmesg消息,但是看不太懂,把间隔比较大的几段贴出来:(17.69秒到28.96秒,45秒到98秒) [ 16.280941] audit: type=1130 audit(1450942724.676:64): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-udev-settle comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success' [ 16.281360] audit: type=1130 audit(1450942724.677:65): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-fsck@dev-disk-by\x2duuid-9ef9a9e6\x2d0a9a\x2d406e\x2db983\x2df961ad9bf64d comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success' [ 16.414021] audit: type=1130 audit(1450942724.809:66): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-rfkill@rfkill0 comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success' [ 16.719894] audit: type=1130 audit(1450942725.115:67): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-fsck@dev-disk-by\x2duuid-CEEE\x2d4949 comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success' [ 16.848056] audit: type=1130 audit(1450942725.243:68): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=dmraid-activation comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success' [ 16.848110] audit: type=1131 audit(1450942725.243:69): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=dmraid-activation comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success' [ 16.891764] EXT4-fs (sda2): mounted filesystem with ordered data mode. Opts: (null) [ 16.993826] audit: type=1130 audit(1450942725.389:70): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-fsck@dev-disk-by\x2duuid-65459c95\x2d6d35\x2d4977\x2dbb74\x2d99e0f60fa80b comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success' [ 17.403613] EXT4-fs (sda5): mounted filesystem with ordered data mode. Opts: (null) [ 17.567164] audit: type=1130 audit(1450942725.962:71): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=nfs-config comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success' [ 17.693347] audit: type=1130 audit(1450942726.088:72): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=dracut-shutdown comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success' [ 28.964907] nf_conntrack version 0.5.0 (16384 buckets, 65536 max) [ 29.201034] ip6_tables: (C) 2000-2006 Netfilter Core Team [ 30.033773] Ebtables v2.0 registered [ 30.313792] bridge: automatic filtering via arp/ip/ip6tables has been deprecated. Update your scripts to load br_netfilter if you need this. [ 36.400766] IPv6: ADDRCONF(NETDEV_UP): eno1: link is not ready [ 36.608428] r8169 0000:08:00.0 eno1: link down [ 36.608514] IPv6: ADDRCONF(NETDEV_UP): eno1: link is not ready [ 36.611293] IPv6: ADDRCONF(NETDEV_UP): wlo1: link is not ready [ 37.013733] IPv6: ADDRCONF(NETDEV_UP): wlo1: link is not ready [ 37.774904] IPv6: ADDRCONF(NETDEV_UP): wlo1: link is not ready [ 38.718088] wlo1: authenticate with 6c:e8:73:f9:54:d2 [ 38.728323] wlo1: direct probe to 6c:e8:73:f9:54:d2 (try 1/3) [ 38.928705] wlo1: direct probe to 6c:e8:73:f9:54:d2 (try 2/3) [ 39.129798] wlo1: direct probe to 6c:e8:73:f9:54:d2 (try 3/3) [ 39.330985] wlo1: authentication with 6c:e8:73:f9:54:d2 timed out [ 40.358269] wlo1: authenticate with 6c:e8:73:f9:54:d2 [ 40.376166] wlo1: direct probe to 6c:e8:73:f9:54:d2 (try 1/3) [ 40.576755] wlo1: direct probe to 6c:e8:73:f9:54:d2 (try 2/3) [ 40.777854] wlo1: direct probe to 6c:e8:73:f9:54:d2 (try 3/3) [ 40.979030] wlo1: authentication with 6c:e8:73:f9:54:d2 timed out [ 42.406331] wlo1: authenticate with 6c:e8:73:f9:54:d2 [ 42.424432] wlo1: direct probe to 6c:e8:73:f9:54:d2 (try 1/3) [ 42.625109] wlo1: direct probe to 6c:e8:73:f9:54:d2 (try 2/3) [ 42.826155] wlo1: direct probe to 6c:e8:73:f9:54:d2 (try 3/3) [ 43.027281] wlo1: authentication with 6c:e8:73:f9:54:d2 timed out [ 44.954940] wlo1: authenticate with 6c:e8:73:f9:54:d2 [ 44.973991] wlo1: direct probe to 6c:e8:73:f9:54:d2 (try 1/3) [ 45.174662] wlo1: direct probe to 6c:e8:73:f9:54:d2 (try 2/3) [ 45.375778] wlo1: send auth to 6c:e8:73:f9:54:d2 (try 3/3) [ 45.377083] wlo1: authenticated [ 45.377784] wlo1: associate with 6c:e8:73:f9:54:d2 (try 1/3) [ 45.381289] wlo1: RX AssocResp from 6c:e8:73:f9:54:d2 (capab=0x431 status=0 aid=5) [ 45.381569] wlo1: associated [ 45.381583] IPv6: ADDRCONF(NETDEV_CHANGE): wlo1: link becomes ready [ 53.411673] fuse init (API version 7.23) [ 98.650216] [drm] probing gen 2 caps for device 8086:151 = 261ac83/e [ 98.650223] [drm] PCIE gen 3 link speeds already enabled [ 98.655399] [drm] PCIE GART of 2048M enabled (table at 0x0000000000040000). [ 98.655516] radeon 0000:01:00.0: WB enabled [ 98.655521] radeon 0000:01:00.0: fence driver on ring 0 use gpu addr 0x0000000040000c00 and cpu addr 0xffff880157528c00 [ 98.655524] radeon 0000:01:00.0: fence driver on ring 1 use gpu addr 0x0000000040000c04 and cpu addr 0xffff880157528c04 [ 98.655527] radeon 0000:01:00.0: fence driver on ring 2 use gpu addr 0x0000000040000c08 and cpu addr 0xffff880157528c08 [ 98.655529] radeon 0000:01:00.0: fence driver on ring 3 use gpu addr 0x0000000040000c0c and cpu addr 0xffff880157528c0c [ 98.655532] radeon 0000:01:00.0: fence driver on ring 4 use gpu addr 0x0000000040000c10 and cpu addr 0xffff880157528c10 [ 98.655535] radeon 0000:01:00.0: VCE init error (-22). [ 98.795578] [drm] ring test on 0 succeeded in 1 usecs [ 98.795582] [drm] ring test on 1 succeeded in 1 usecs [ 98.795585] [drm] ring test on 2 succeeded in 1 usecs [ 98.795592] [drm] ring test on 3 succeeded in 3 usecs [ 98.795597] [drm] ring test on 4 succeeded in 3 usecs [ 98.795623] [drm] ib test on ring 0 succeeded in 0 usecs [ 98.795644] [drm] ib test on ring 1 succeeded in 0 usecs [ 98.795665] [drm] ib test on ring 2 succeeded in 0 usecs [ 98.795682] [drm] ib test on ring 3 succeeded in 0 usecs [ 98.795694] [drm] ib test on ring 4 succeeded in 0 usecs
Hibernate的getSession.save()方法无法保存对象!急,waitting online!
我使用SSH开发的一项目最近遇到一个非常棘手的问题,有一张订单表SaleOrder,字段稍微有点多,添加数据的时候由于是同时插入多个表的记录所以放在一个Transaction中保持一致性,DEBUG调试数据执行到插入订单对象的语句时就卡住不动了,也不报异常,本人对Hibernate的知识了解甚少,希望各位高人多多指教。 是不是主键策略的问题?起初我以为是连接池的问题,但是其他的插入查询语句都正常,唯独对订单的插入和修改不行。 创建订单的Dao函数: [code="java"] public boolean createSaleOrder(SaleOrder so, Orderappend oa, List<SaleProduct> spList) { Session ses = getSessionFactory().openSession(); Transaction tran = ses.beginTransaction(); try { tran.begin(); Serializable serialOa = ses.save(oa); Orderappend orderappend = (Orderappend) ses.get(Orderappend.class, serialOa); so.setOrderappend(orderappend);// 设置订单附加信息 Serializable serialSo = ses.save(so); // DEBUG调试时执行到这里就卡住不动了,show_sql语句也打印出来了 SaleOrder tempSo = (SaleOrder) ses.get(SaleOrder.class, serialSo); for (SaleProduct sp : spList) { sp.setSaleOrder(tempSo); ses.save(sp); } tran.commit(); } catch (Exception ex) { tran.rollback(); } finally { ses.close(); } return tran.wasCommitted(); } [/code] SaleOrder表是使用MyEclipse自动生成的映射文件: [code="xml"] <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <!-- Mapping file autogenerated by MyEclipse Persistence Tools --> <hibernate-mapping> <class name="com.bom_mis.entity.saleEntity.SaleOrder" table="sale_order" schema="my_serv" catalog="eectrl_db"> <id name="soId" type="java.lang.Integer"> <column name="so_id" /> <generator class="native" /> </id> <many-to-one name="orderrevokecause" class="com.bom_mis.entity.saleEntity.Orderrevokecause" fetch="select"> <column name="so_orc_id" /> </many-to-one> <many-to-one name="orderappend" class="com.bom_mis.entity.saleEntity.Orderappend" fetch="select"> <column name="so_oa_id" not-null="true" /> </many-to-one> <property name="soState" type="java.lang.Integer"> <column name="so_state" /> </property> <property name="soType" type="java.lang.Byte"> <column name="so_type" /> </property> <property name="soIsCompact" type="java.lang.Byte"> <column name="so_is_compact" /> </property> <property name="soQualityKeepTime" type="java.lang.Integer"> <column name="so_quality_keep_time" /> </property> <property name="soTrafficWise" type="java.lang.Integer"> <column name="so_traffic_wise" /> </property> <property name="soTrafficRate" type="java.lang.Integer"> <column name="so_traffic_rate" /> </property> <property name="soRequireId" type="java.lang.Integer"> <column name="so_require_id" not-null="true" /> </property> <property name="soConsignId" type="java.lang.Integer"> <column name="so_consign_id" not-null="true" /> </property> <property name="soDoOrderMember" type="java.lang.String" update="false"> <column name="so_do_order_member" length="60" /> </property> <property name="soProvideSn" type="java.lang.String"> <column name="so_provide_sn" length="100" not-null="true" /> </property> <property name="soRequireName" type="java.lang.String"> <column name="so_require_name" length="300" /> </property> <property name="soConsignName" type="java.lang.String"> <column name="so_consign_name" length="300" /> </property> <property name="soDeliveryTime" type="java.lang.String"> <column name="so_delivery_time" length="100" not-null="true" /> </property> <property name="soNumberType" type="java.lang.String"> <column name="so_number_type" length="60" /> </property> <property name="soPactNumber" type="java.lang.String"> <column name="so_pact_number" length="100" not-null="true" unique="true" /> </property> <property name="soClientNumber" type="java.lang.String"> <column name="so_client_number" length="100" /> </property> <property name="soSignAddress" type="java.lang.String"> <column name="so_sign_address" length="60" /> </property> <property name="soSignDate" type="java.util.Date"> <column name="so_sign_date" length="23" /> </property> <property name="soCreateDate" type="java.util.Date" insert="false" update="false"> <column name="so_create_date" length="23" /> </property> <property name="soProductStandard" type="java.lang.String"> <column name="so_product_standard" length="100" /> </property> <property name="soArrivePlatform" type="java.lang.String"> <column name="so_arrive_platform" length="100" /> </property> <property name="soAddressDetail" type="java.lang.String"> <column name="so_address_detail" length="600" /> </property> <property name="soRandomBackup" type="java.lang.String"> <column name="so_random_backup" length="300" /> </property> <property name="soBalanceWise" type="java.lang.String"> <column name="so_balance_wise" length="300" /> </property> <set name="salepaymentthings" inverse="true"> <key> <column name="paymentsoid" /> </key> <one-to-many class="com.bom_mis.entity.saleEntity.Salepaymentthing" /> </set> <set name="consignOrders" inverse="true"> <key> <column name="co_so_id" not-null="true" /> </key> <one-to-many class="com.bom_mis.entity.saleEntity.ConsignOrder" /> </set> <set name="produceAdviceOrders" inverse="true"> <key> <column name="pao_so_id" not-null="true" /> </key> <one-to-many class="com.bom_mis.entity.saleEntity.ProduceAdviceOrder" /> </set> <set name="saleProducts" inverse="true"> <key> <column name="sp_so_id" /> </key> <one-to-many class="com.bom_mis.entity.saleEntity.SaleProduct" /> </set> <set name="modifySaleOrders" inverse="true"> <key> <column name="so_saleorder_id" /> </key> <one-to-many class="com.bom_mis.entity.saleEntity.ModifySaleOrder" /> </set> </class> </hibernate-mapping> [/code] [b]问题补充:[/b] 还有修改订单的函数也有这种现象,所以我感觉是订单对象的问题,跟连接池和其他应该没关系,我用的是C3p0和jtds。
hql语句的问题,update同时set多个值,语句错误。
java.lang.IllegalArgumentException: node to traverse cannot be null! tomcat报上面的错误 下面是我的hql语句, String hql = "update Teacher t set t.tsex=? and t.ttelephone=? and t.teach_year=? and t.subject_One=? and t.teach_class_One=? where t.tusername=?"; Query sqlquery = ses.createQuery(hql); sqlquery.setParameter(0, teacher.getTsex()); sqlquery.setParameter(1, teacher.getTtelephone()); sqlquery.setParameter(2, teacher.getTeach_year()); sqlquery.setParameter(3, sOne); sqlquery.setParameter(4, cOne); sqlquery.setParameter(5, nowLogin);
hadoop集群添加kerberos认证后namenode启动报ipc认证失败?
问题描述: namenode连接journalnode报错,zkfc连接namenode也报错,都是同样的错。 namenode错误日志: 2019-07-16 18:55:52,617 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: hostname/ip:8485. Already tried 4 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS) 2019-07-16 18:55:52,616 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: hostname/ip:8485. Already tried 4 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS) 2019-07-16 18:55:53,438 INFO org.apache.hadoop.hdfs.qjournal.client.QuorumJournalManager: Waited 6001 ms (timeout=20000 ms) for a response for selectInputStreams. No responses yet. 2019-07-16 18:55:53,618 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: hostname/ip:8485. Already tried 5 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS) 2019-07-16 18:55:53,618 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: hostname/ip:8485. Already tried 5 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS) 2019-07-16 18:55:53,619 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: hostname/ip:8485. Already tried 5 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS) 2019-07-16 18:55:54,439 INFO org.apache.hadoop.hdfs.qjournal.client.QuorumJournalManager: Waited 7003 ms (timeout=20000 ms) for a response for selectInputStreams. No responses yet. journalnode错误日志: 2019-07-16 18:56:10,836 WARN SecurityLogger.org.apache.hadoop.ipc.Server: Auth failed for ip:port:null (GSS initiate failed) with true cause: (GSS initiate failed) 2019-07-16 18:56:11,939 WARN SecurityLogger.org.apache.hadoop.ipc.Server: Auth failed for ip:port:null (GSS initiate failed) with true cause: (GSS initiate failed) 2019-07-16 18:56:12,391 WARN SecurityLogger.org.apache.hadoop.ipc.Server: Auth failed for ip:port:null (GSS initiate failed) with true cause: (GSS initiate failed) 2019-07-16 18:56:13,341 WARN SecurityLogger.org.apache.hadoop.ipc.Server: Auth failed for ip:port:null (GSS initiate failed) with true cause: (GSS initiate failed) 2019-07-16 18:56:16,212 WARN SecurityLogger.org.apache.hadoop.ipc.Server: Auth failed for ip:port:null (GSS initiate failed) with true cause: (GSS initiate failed) 2019-07-16 18:56:17,871 WARN SecurityLogger.org.apache.hadoop.ipc.Server: Auth failed for ip:port:null (GSS initiate failed) with true cause: (GSS initiate failed) 2019-07-16 18:56:20,902 WARN SecurityLogger.org.apache.hadoop.ipc.Server: Auth failed for ip:port:null (GSS initiate failed) with true cause: (GSS initiate failed) 2019-07-16 18:56:21,081 WARN SecurityLogger.org.apache.hadoop.ipc.Server: Auth failed for ip:port:null (GSS initiate failed) with true cause: (GSS initiate failed) 查看了一下kdc的日志:可能问题在这里 Jul 16 17:03:50 hadoop01 krb5kdc[47](info): TGS_REQ (8 etypes {18 17 20 19 16 23 25 26}) 10.10.10.40: LOOKING_UP_SERVER: authtime 0, root/hadoop00@HADOOP.COM for host/hadoop01@HADOOP.COM, Server not found in Kerberos database Jul 16 17:03:50 hadoop01 krb5kdc[47](info): TGS_REQ (8 etypes {18 17 20 19 16 23 25 26}) 10.10.10.40: LOOKING_UP_SERVER: authtime 0, root/hadoop00@HADOOP.COM for host/hadoop00@HADOOP.COM, Server not found in Kerberos database Jul 16 17:03:52 hadoop01 krb5kdc[47](info): AS_REQ (3 etypes {17 16 23}) 10.10.10.40: ISSUE: authtime 1563267832, etypes {rep=17 tkt=18 ses=17}, root/hadoop00@HADOOP.COM for krbtgt/HADOOP.COM@HADOOP.COM Jul 16 17:03:53 hadoop01 krb5kdc[47](info): TGS_REQ (3 etypes {17 16 23}) 10.10.10.40: ISSUE: authtime 1563267832 , etypes {rep=17 tkt=18 ses=17}, root/hadoop00@HADOOP.COM for root/hadoop01@HADOOP.COM Jul 16 17:03:54 hadoop01 krb5kdc[47](info): TGS_REQ (8 etypes {18 17 20 19 16 23 25 26}) 10.10.10.40: LOOKING_UP_SERVER: authtime 0, root/hadoop00@HADOOP.COM for host/hadoop10@HADOOP.COM, Server not found in Kerberos database 所以怀疑问题处在这里,本地kinit root 和HTTP用户都是可以的,正常情况下应该是访问HTTP/hadoop01@HADOOP.COM 而不是host/hadoop01@HADOOP.COM 不知道这里为什么会出现host,请kerberos的大神指导一下
jsoup抓取dopostback的网页错误 ,是不是BODY出什么问题
package zfcg.ztb; import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import java.util.ArrayList; import java.util.List; import java.io.IOException; import java.util.HashMap; import java.util.Map; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; public class JxztbActivity { public static void main(String[] args) throws Throwable { for (int i = 1; i <= 3; i++) { System.out.println("test0"+ListData(i)); } } static List<String> ListData(int pageNo) throws Throwable { int table_number=0; Document doc = Jsoup.parse(getListData(pageNo)); Element ele = doc.select("td[height=500]").first(); Elements eles = ele.select("a"); int newclass=0; List<String> result = new ArrayList<String>(eles.size()); for (Element ele2 : eles) { String inittext = ele2.text(); String newsurl = ele2.attr("abs:href"); String newstime = ele2.parent().parent().select("td").last().text(); if (ele2.text().replace("更多信息", "").length() >= 2) { System.out.println("项目名称:"+newclass+":"+inittext); System.out.println("链接:"+newclass+":"+newsurl); System.out.println("招标时间:"+newclass+":"+newstime); } result.add(ele.child(newclass).text()); newclass++; } return result; } static String getListData(int pageNo) throws Throwable { int table_number=0; URL url = new URL("http://ggzy.jiangxi.gov.cn/jxzbw/jyxx/002004/002004001/MoreInfo.aspx?CategoryNum=002004001"); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("POST"); conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko"); conn.setDoInput(true); conn.setDoOutput(true); conn.connect(); String body = "__CSRFTOKEN=%2FwEFJDZiZTk0MWFhLWQyOTItNDM5My1hYTZhLTliZTQxZjJmNTQ3Zg%3D%3D&__EVENTTARGET=MoreInfoList1%24Pager&__VIEWSTATE=R8GA6T%2FIFGHg0Gb6XTFK3FRWaT%2BnnifWmbfVtNOsNxO8aGNCF9BvV0HlGq0NCTtFJ9Z%2FOB0SJrX5ocfMmneceh63ACvs4tmktSDuFT%2BQ%2Fj2UdQTyQH9sF1LqsGpBpaBMRI5ihQzcPnaoZSOI5y4wAcCT2eSyOIAJLzDfEahy8vHcO4rY5X1OgnRqUbqhAGYgciiDdJzOwhBLhOtH6KpEt6GD0PCWIYpVFGwufdKPRpBoyvMvVLxns62e4opbzTrVK2mOGWLS%2FF9b3YqhnYe2eTEllzjFQdzl7hJb%2FjB%2F46YVl9ABjjLZ3ZCw%2B28bT805n3aL8nlrByAuHCArCYh%2F2rD7hA52KBZ0WDP6AgnR%2Bw7TDhCchpWEvukASBok8AyUK%2B7Zx6JztNgDXcsn%2BzpcoMqr40%2BlnDwG1aoJIQ4y%2F%2BTLjieFXqu0cIcteyE6fCByvda3M7Drq%2Bzttil8VbGD1QQOPAeNnNSa3MBdqRsgh6BzfhD3LlqtCVPc3p5bukA4JaUCBdw0U9jaULfcXz8V0zBElOQUmOvTm5nMc%2FDp2clYlEhHNZ3w1%2BJwWgFwhSX%2BFcugoXQBMmsAexF9ibA%2FcMQ87Rl1aP4e%2Fcj%2B%2FHzBF%2Bpkh03mr%2BlsSkFN%2BDSEleVQ6hD0i7SToPdSAATi5bvVl96tXl7y8cI%2B7dHeqZiGV7cxcue1xuAzVbTfm3IrqlEtWS4ol8%2FAXmF7CUIRLKFayFsLgVDBfq%2FuHl0lxfv5L6yZyXvLoXDa41Mzwa812VHnwyYwNVRrdalfcbketek1F5nHFkeeaRNn9JEFIFsIyBKUx12p9P1E%2B%2B3MBkdiK3o%2BRwywLHwNJuWS%2Fi3U362Unj2nuQxyFndOBF%2FeHr%2Fby8jnLaZNWeLJjy578rRlYB1ggnM4qmuNwQqKBP0%2Biqa7mRKZlMsr8y7bq%2FKnO4%2BJcUyzNh2WeQnQlMT%2BRsWfgOIf3U6%2FxNgNNkwcJxggQao6AO1Jptj8JHJQXa9nu4Tu1dgR885Mexnueg5eMppcBP3fnIGE65%2Fd6ZBhww0f6rL%2B2IdLV9XEUgVvT8sED7eaNlLJymFQ8EkSZXfl0TTuZFezfXouhqaEvR5HMGlE5USdIfphpRH3fg4KXma6WtfxWtAHpqVZKmA9ii6JzLluqbvifl7Q4lGGNbXDi3FtdVUegXncyFoQ1tQoXigUVhOgq0wbe5xim918qTLP6nNC%2BFDiyg09JmFj98wgpAhmLA2bvlfci1jaFWMy5hEYz%2BP5OAbERPOaVkH8PLmXcdrJ9RCPf8rxLLQE7ReKs5NSTrwdVHe3MSTn8cartsPfiD8LejzyTduW5gHO6uCj0SFAOz9CsBspqlEyVT5AXACrDswjg169gPOtQ%2Fq5kipvk5Gn18Np3uMMFXgKYnNDfiJzUO2%2FEA36pEzcHj1DP%2BTiW5N7tcWln3ewRJ23Y6gXFD%2BlAX6OdMWKOEZdbtmJ%2B1a%2BvFhFXGGQverFGOPaGQp1hhWe9XB5wvHngNka6mkw9%2BuWcM%2BMZn1KxdM6wE%2BzvMYVjEL8K12JX6b38xqQRF3NOFR%2BzC4lvKzwaMyxGmH7g8S9wqt218PbVFEIEtNZH1oCxgI63%2BlQn5G%2FnfqIbk1FE0eu0HeQGvfMCxC9%2FS4%2FSEzYowgsOiHcNlZjAm%2FRPVpQqTvfuXGVHnEgjsKxnQxMB1EaHRXUa0rAZrJ7juFLurRin8QH6945EaXIJ8S1Hx84dotDj5FngVEYK6NqyvKlUixbs4H4Kz92vI49uyJXxLtEGOJ2ZCuVIzcE%2BBNDEFBMvd5qVbiIUqxw72qGUUHPZKYm10KxR10FtS1YGtRTEHLTlr5G0dAPa3sel9kYAjQyXTNFrkcWULeErpdyErVB3jSbAwPmujnu8hfDHCV%2BrzYnVy5L9Mmxk3pSNPuH1Vu9v8UY8CCD4TWc55U1iQr9Rh%2B2UricncYaG7AyWbPs9RcF2b6gRzNTPZNilWTvZZhIpo3hMbACfryhaJC%2F32FF0M7XgmsfgXe1Ir2hY0JjiIItKbnMgO64hJRJUUnM2ViHKQzorMq7GBL%2F47p%2F%2FV60VPNxovQ0KFLdjDlVwXsZspCEZyCiD0H3e6wNDrgKQnWJumoRmii%2F%2FJsO4MV5XZyb6CpWDTW1Kam%2FgveKxPC7VfajOxnYz63kA1Xn46IPsAqZENBgMR7gPOfbKAYuM9YXyxAyYAl9g6Y2ceXK8HqpWqjAXMCmk%2FOL8Ny03HLvg1lTth6Y2dYxEpRw05h9%2B0MmAvrEUZdzCVvlw3BTqlis3NBFXvXvDAQf5%2BH2A8allFp2SBAUNVeakknNQDiqdvewMMbG5Tubw9fp7UzbJbR2wihx4OWReiztXdJyRasdoUUwI0LXMWQgKLyaIc3UT9uzISnbinlcfNwUrjDlKl3BIeuduSnIV4mXE5S1K0OREcXIuLL5Vn2h9TSoCxquOWmsC42kF8mqWPXL2zLE7wTUJcwDD4ru4Qmozz6jJppayfGeId%2BeZN6owQF1k1im37PSftJhv3IP37vasnuAsRF3BQt8tMU5ue1IXmZzgufvxafd8FWD08L0RnKrhbEKGBmZ0dmEWTczG3a0078owGsAcw4M6E3kWlxAMm68EfQNtkRLZ5On%2FyHQfhQsrl0TF3cW9eAVv1ii3lZmgmVTafb%2FJLX%2BRz5BjpzBwiKHLbnrrm0edokZ%2Bqc9CRvhMSiM6lBH%2BIcPRRB8bE711N5Z%2B0nR174rTn2KvUmLXFIpqY0jG4PLDcompSsTFzHQ5KA7qlM%2BxLOOegYMN%2F0imSXqPLOyj7Uyrd9%2F93xtq58NCfGPd9rSO4Kb10nPMEyhwDOLy0mmYOiV71Z5Nl5CDaWkXRtl8U7gqgGjiFpvcvrEl80gQayaKyMFFSC4y4oYDOkMhrs7tuow%2B6yo%2BWw4yj392%2FBciTvdS2N7WA2U5oDZlFYbKBGE3zpKbAIkSlr6AKO7BMbQzoHXY4Gvpu3tmrrPGT3HlvkYe1URZJIjas%2FcJsFV%2Bxo4EXffAcE48vYf1Df9QDvOp42hhhu6oqcSPo23S6u36hER2rXhSBvAwPGAEgl5A8z6J%2Bi2%2FM485Kgn%2FSYbf3JhX8Uk%2FskKK9XVkDDy76MVBEHSGq9hcHHUK%2Bc1UCTEdCx4XGfG0x%2FKnqXKZVacC%2Flj0ovGzglJ7dZoE05AGVCJG9ySkznToPYeB2rTja2PVCIk%2BimzAjfEmT6TmHSnXu%2F1%2BP%2FjU7jjWjHj7gBpp%2FBAh8fyWczEpDoWJjfEmDf25hbM%2Bsc%2BPl4DsDmlBz6gR3L03waT5GuCpr1jNFUJTpHknF0t9kduDKZ5PsB%2FDUNeHtZXzbQWZYmifYYKlL45nRI%2FtJ0LoGUOEiAK38wrEDmtXBujhhQDDXBe7%2FcvZ8fbxVUNwvu49TWNH69sHsHkMkvWqyO%2FfQtC8MP5xGsRabOBgh6IcPIS50oQ9jXeNmnKjItDfK3lfEdeuLT8MnTyjFg02zOku8UPqBQXzXxfshH219tdbppzB1kqj0EsQm61iVD4%2BfkEMli0Dlf2Lgt1ifkA761c6nvrFOWlXS79W%2FjOBNQzgCfjkxmvKlRmYgJ7ssMvf%2FazLJJzbAyhiihN%2FlZ9yxqnOJZsDc5xdu7V2hqz9KUzXKp4%2Fi%2BIWuCY7ypDLPYTLtpFOiDyA79UaBwZsN7b8uYAIkv5OQbKY%2BFrcyKfZBgxTVm4PS9nAP7Oha1FKZ3P3D2D1WZBCbcrZhSlJwptgx5kFAi7vLQh%2B3waKKdbI0eDgr2Fa5pc5LUPPeaBYB6oxKYjAiX78wm2XY6tspPvPa61Wr88rRmqnS5v39jVcjPyWnAa%2FRSxLLVjYwcSVciMJ07rIZkNSMdCMFcHy1Yj1bf3EiBteG6HT1FEpLHH18yA6KFlUBwPgcMwQRyQUGJfXvXF%2BBPjDS6pYaKIGxemX0OYj4nbGvw3%2FoKfll%2Bmj7v8JFKBOlHxGNC57aJKsmJiYvi5EZLfP7TamucSZDqZDlvO5YdfQ9kmAbdbn2aVP80hdycVtoNoezU58UG26cQ08pRXq5usaSG9c%2FMrH5DA06NVHwtnn7V5GVMYvG51S5vg81UpOUOZ7GtVWqQPmSREIC5zLnz%2BWhfcKpJD3%2BBqE%2BbvGExa7n5DUZQOZXIkpairuJAiAYNnzkrEOX98OVUjCAtwrF%2B22oAqzoYmu6Z5T1fevCGqpEPk9c5xhYKJMgfAzCtE5BMAgVaCfX9RqCpaUx4d%2BiSoqRE32%2B32rgBMefkkE%2B4CtTcQPdjKZEV21s4G%2BAeWThGT4BuxEaQ394v0FY7bROLY8hcTMSiAGvZhhCJQSLXbUbf%2FKTfn1FmkQaIrIXglb3fofqqNKonGG6rJlCrJhIxAOKDziyblQEzxerKwMka87VrJYB3WjB%2BycQkN5gcyMWOWWZEK0vc%2B7amwF5jXHX1KPezbjJV9JqsrofqkGRBUX9bwIjPE3ele8vyJ3BbYEJPLW7Cx%2Fg%2BMtKyvsbpa2gS5d9Psx6Tm1h2%2FfgjI09%2FxBhMDWRW%2BLZMHpwrcY2MaLLNmIR0dkl%2BvXoDvvrKoAABx8RPyWUZKa4UE5mgvJmeAi2dYso2i1yRnrCM4inirsuDvdPAjc6kNeKe%2F0JGT2TuQbcpPtSrdtu%2FyuGsI6%2FIyeOtq8mGyoPaNUSrCiQVrt7Uw4aJcRRr8qLpkJNACL87mcbT65gjkujII45IYiBE%2B9vykoLbtaI36K6suSoXiSgw6%2BQisRYgCkU%2BQWGaeeVomL%2Bv3REKxSBJN47BHceC869XdhI4aqm0hPRi1tA9UVd4UeftEE8vv4OLNRvq%2B8%2FzZndsUCUnit9IAFV450VclUsQPyFDxZbwGFnNarIF45fZu1rrQwUxA9rQvpnrQkSiN4CCA05gqbRajvMBw%2Fu2OhfXZsL2tFySJKesS%2BwUeRNSqDwysLZRUQ8W08VC4gTKWSYZbTuN0egLlJr7HnVeMFpFyhz8guxnwZbQi6vjOGW62PLK1bgwcEoZGMcPHoGZ43qCiNJ00xz7Gggjux%2B%2BRvwrolKnr1sYg3%2BwCPAx6M9vg766KzOc%2BOckrFF%2FW6sJK63DWXhwFuzbpsQZWE9WaRgoNaKoNMQM6InBOYZuDlw78a2yUCWuFDfdj1kWTUHTYtFc3svCOscM5oPPdERLoATn93o%2FHMex4oTj0ilUowq9LmWB%2FxGUCSjsCg2FJdS1F65fgIQJrTdMSpHxGjU%2BKyFIHa7vGG1KXwom%2BN7k%2Fl8eA4CN1F0jIBbU%2FBQkFPkBrkZ1UT9jJvXHAT4JdR8z9hr6PsWXsqv0v6Uofowi6q9vfpgAna4gxBbq19BYFbK7HD%2FvfdAOviQX9V9eOIUWY6drovP6lWFCnINiuTNeJ9s6QoKsvV17KsdFHhQNrSIHxDZ7GydlPXakgyXZXKgmqVYGkMDtDfoY5dsCwbtoIgbv5Docg7ocxWmfR9Md8%2BeFZgnMWZAFxW5sX7roM6pve5Ytc1VQLahIoDgHjSAktsQ9rJwj87I3%2F5WT6nrk7pYcrudA%2FzCiU0Y6URm4SJ7kZ3iWLYKAXzL1j4GB1K0tuIrC4xmB78SgBzD0wTZ%2BCoiAwypXpHkeZ2X7UpZgJO%2FSDjL4Lc9sRi1L5KZOcr071h8OyEww8U5UmzD5zELm0lG%2BrBUAKkudP45QnxWg%2Fn0YJYexZh8E0%2BHMbThaoCy5o1vi9etqE2s9k7OeBihts8sFz3M7GAGs%2BQ7gBNJnrREpQwRK%2F8Wj9qnUuP5m4sfPbHB6hQWJDQxhDaqOo70eWocSUsLDURgi7AhpNgasaGIOe2haehDVR0CZvadbVVyZxdHl9sAh97Hcs%2Fo0s77vurK%2F0zmMiKEzlPqO7gi5FVHW0exZMFTG52ZFA7EluyAZJDljEBMEwJbSbAmw09ePtmEucqLnU%2Bh1Aq3vvAXBpQMwkLCaQ0xR52OljWVGC%2Fo35LTfprXfUOKW1H4KB75rGlaJXLR9l90irw3pA2C2rl1Lh9qjsyjcK9sb188Nx%2Fwqj74%2FHl7KC2Qti8TXj0YD0hllXQftwZAXEqefSdNOcnoWNsdtGh8ipphVChQXRUSh6iuLF8yaLQDyyNsHdunUpmHdxGKxfO70Q%2FJwS3BYE1NY3nJKiEe64C53Nhkulavm8JU2MApzc4WaHTwsA9xtgqvJHb%2F1DukzFyRyJpj3WvNdNyY%2BSI2UYKp4JPr0okpoPKstcQN%2Bjnf2xndS4zm6Va1nrR9%2B9RJNAMbEF5H0TxLBxo5jQDg1f7VYhZzGPCnU%2B8eVYGI0j95KLthUWfTJgPGiquTfhlefVOW7rrDK7sr9rynj6OLhNeKvC%2F5VDCIF8JlI0FslDAEoWDAq9JEUmb%2BtaSjoR2A1CEbVcD7RGx4w96eJb3JZ269eq7qPNIcdBsdybPNJhPclIprNnrEnn5AnXBVZ1SnOFHLhKMeK61KvkmZOa6hy%2FLzEvC2s87%2BeLji5aR1ibtG3DXQUP%2FZFdQ1zdNZjjeKgfeIC4Uc9R%2B3Sim1wB%2FA%2Fgz3QGrOQnLfhWLNESHWEkwVESH7fMkj3Uf9msFnYD6tgMieBPHNNvaFqW46CTZ2nJ6HdcPQZqycNhec%2BpxK4GRxMtXkolKAcJxoITr4up0Vgig9qkeDMHFG2fPiwrd3j%2B2x7N4p4xd6IxoDiMni5q0iu3o6KuHVwIdxQImGsPPQwebyvzbsG%2FHqr1hZy6WdkbL%2BmOeClujFHKdhvDLDykfpoTL6jHcjqKUnncIGixbjSkNRLugpadA5JTdeX8uMry3NcB0o0rdhNBrbEiq8Im4eaTsPbQUH8A8IG3ByZmzn3yBmSMx4vrZsp2mFRBIW4FSvsX1bVhDX2AsPkxQh6FiqyO4LwNTDf%2BM6vhfaOdXcI2%2FTqWuirFyMOiF7NOXYH1jwrxJNeHFyGv0D143HcVAsfYFbQuo7JhTQEfzH7sJtqp5ji7wk%2BGbodgr184lcMKBO9i4hvNzuDgeeZ4z187zol30b3qGcxJVgseTVs9R4r8GAEnQTu43VfEvxD1X4%2BACXwgfBp%2BbMsFgo1nV%2FMVnoaXnBawJz0Azmw3u463%2FA1oePsVONDNxwJMTIgyjt35L2unuczFJXfhl6u0JwdyX0NzRklj0fCEGA2pLGH%2BO%2FooEP8hpjq0yusZupAHC8Y99RfqcRCu3duTgdGvQULfZYgQT%2FdzJJSjqFrrMtugp1P3zQXkBioENxaDytQ97LdI90qVJvfSRQRNjeJy79z6GNB%2FUKmBtdRstFEW%2Fm9SEv2FaNNi0a32DyEWv2FexTbY32SKxWLJIIXflG89qNGiZscet4H%2FgQnew4hd2TZJA1J1ISbc3z1NFXNBoqZOncWkur5lQtRRbokZgeM15WPNRK9m6tAaz5gdiVHLzQwQKcu42hfeP0zbJ5jLI52LWrksNecpzrLXtun0MJl0fmSj%2B0my1ppCej8pmoi%2BvnTTaLQ%2BhMO9gamCa4pn1MGbmOGVUMAbk3e0i%2F%2BoFpSF%2FzdrxPEu7ut9SE01QE6q%2BD2LRypVWPgBN8wBOtnxqP7o7okmssRJ6M8jsv3GxmSPMGKsAZ1fsAG3dzlCEW8ukF0Vu%2B1EZLF8r%2BJFwrDiPyfxTydr4%2F3V5mm91qfQ9EyuTb8sr9RT1Unnp%2BDx2LvoiCiRJK87oD9RO40KsKQWwNlPKfOI33Bs6S6U43SftVz6cAMSG3vIWgriacCqhioATPpt3NvbaFBXdZFZaTVeP3R1TPjoNHoqXY7OKTz7oIIvpxVvOuUXdfaC96%2BvPBV2dRzLHEZaoXrXnCMcc%2FOuEsBVn1hhyvGZy5Arhl6spK2Jd4h8h6EpCVlf4Df1JfDvAcbW%2BY4vrpA7J7z53K8Bf639OT421XZDkSwLJrLbwUdT9aOs50wDPM5a5tR15q4uxgDbKfoFSjgLQqCEQHuzkBuHvmlF6IkmN%2Bic0gVvL5iZRjK3D4lAW3X6VvHwiu1rYlfWOhRKsQCNiFFEVmgKVekcnaxnjEHylAqt%2FMm%2F28XjxKcN5xuGzJCrNK%2BmnT%2BJxGLuKnj3NlVh2tXm0o9cwiIvdK5hViOONrWuSCWifxHpsv2pSLFlG56I7o9P4k6C4i9%2BGgL%2BHgFlA3X%2BXOgg417IOPIIAebZT7EvLnez35bb0hcl8Kh0h1RUOvnKdEX%2FOyHDLtv06mS6EfLC22ZlUzY3I1yOnkBQSFiH%2BHPE6ZFQFGiYi%2FueWdTItMvh8YwOI2XI5eEjwOrh8ZbPl1E1rrV%2FwgG%2FqcjMph1NSZGlT2c%2Fk3GjlalurLa3sYoxLtAzjDNNE079FfdjRvi%2BVBocq%2FJq58CIfs5S4msNSbhWT5blI7YMA3w%2FmtZZQXZX4uQzK60cGEPsRY0fhSQm%2Frz3q9dV7CO%2FJSbqUkjmtvW6a65MWOcDfbA0ou5i4357p7vNF21NlYQldXYAbSVWXL5H%2FFngmpjfQD7agnctcICbQWLF030FiZnMVsMwYzATGn090oj3u0RXAS0KPpqxyHpxchYFXcRAS0Y94GVQhv7plpOLOj6DqrlwFAoz1%2B3jPcPVrhAyF42CtpXpXMKhlHo4Uv2jWpR9OjaDLFZlTlc%2BeEbM7%2BWPF7hZQewTPoUpfMkzGo61Awc97stEsU0nIjqFBUTEj%2B%2BQVvoLm10po75Vi9LOPKZbsNVHoFJRJ4ySb3GDF9IiLxsjBwOVNyv7UWHDvtCKI02tsqCbM9V169jJNQxRlysg1O6qO%2Ftkg5Ci0L%2FFxqwssQL%2BmTkHPTEysb10nQjynAuvpkGsv0RCwSpX8seS04p8IvIEdhfncsqSMkmuDhN%2FXdu9os5RF2dPsCh1bJPzCJEtVsVQV7l209jeUMCfIWW1RObkWN5ZWURKrv1T0pk816dvl207xpyOSTzcJw7abDJJqq9nu9aT%2BxO2Ew7rnEHGHDoHbILjo2gCVbMZ1nxeMdFsr6kMW9c5Ilj2tiISyd4fKon47Oz5Qz48KJwsHN374kwxB2j0dCMOWMyckT4Dfq5PCt%2FovjV2Xwnz9e9r%2Bo2yB0V0U%2B4hSUWQD%2BsYT9G%2Fv%2Fh%2BTQ5LAC3ylUp8N%2FQ5B9ZuQt0MtaQCFzAGhAw7jCEJo6M8Stn2v8fICR%2FdwwWKYjXa6vHYdCiAWY6b4lN6CAuEdbPr%2ByGPSoSkIg%2FbzPE8dYqqLocyf2689E3LeyTJnpVeZAxBZ3UXiGLBgetDM11w4nZoYaeYEdObtzYHa2gotPoZuGrucLUhKH3AYo1MZfWeY%2B2M8ny%2BZMhk4Pj23j3r4D0DsGB8fpLTE2qxAr%2FaL03Q8CLofiRlgqkdPSf6YVm6PRS3DwyepHOMsv9FoNMwSVEbcLlci3E3SrDCKyiSCn%2FMLkiqpw3GTeDFY38ViypHMnmA%2BFVjRbfy%2BmVicHIa5c%2B5%2B0wJOOI0ihy%2FO%2FHYPUQ5ejGUQOSwdlERolwrkXSo8XE74XOrH79IOVtD8hLp7a1DNw4HqxqmqJG4elQNbjhKxerl1cce%2F5R01EbPK%2B0NBr%2FkZ65K%2By70aSTwsFy%2F1QixRefwWfH0D6nOCvE6kKau4bE2Si1OL%2FK3IJUcyImEYzjVDhhFepWfgSggxtPL01kJ0PrtjAiVjjQloF1edXPRV%2BJ2lZN%2Bzw9TctjdZOQqsH3RxhxtTk3KqFaVNHWSoCvSsiJYEcZpSNYRsw06k7dmh8cNvYhr0GMupoklYLS63nYF3VYnFVIB0p6FF9koP4yefjIOA9sdSkLllL5BHl%2Fj16%2BvVpzgv%2Beb3zuPpEMKGGJmrKIpuJXvNNJJJHXJpvD2T3U2Df1IXm1T4Q%2Febj4GOOsUHwmbQQMeEfNEjenCnEaRarDqKmzqtjSYJ4Dka8oiW7PrXXC9ZOpcl8exdLXNxXnIorOpFPvh9AuLZjxAz5oPH3PqUGRV%2Fx8ov5mC5ffR68Fg0ZL8UFOdk0PQNJxgznSteDD40d34wIvVBQhY7euKxfmMOjXQALCRmQ%2F1fBv7JMD8ItbTprjtYJdrOb%2FdZ%2BDWXtpkvTl6fFR6vH9kA0r2napqxgYr4XlKp5B%2FhbzQChYm1oB0YQJL8c61h91b2bspSzGBjc75JLiG1uIP5nD4MWLNpTLFuVh6g%2BoaETjG2phvRhyCwxoBEtUHWC1PtHlv1PKyYdfVARag510x1wtEgnKd1AJQfP3w%2FfO0oQlz5ImsHg%2FHcDnvlIP6zgdmKftURwNYbWQHWFIxScAez%2FqM%2Bg9l5qgV4QWGwl1viWg7iHhLPzo40eurcjroqw3kharlIWlfl4im3duI7KeCqkFdio%2B0yPgcbnAQEbSbsGbxfwSzaEtscnJEqbxHFzq7CL5JlNNCBEapnGT2Juu6wJp2WJhvuY12%2BHOzrzfAFBcsqk1CEct5UyJN2sa9zATOgxLtjKWqujYnAaKWeNXBqZn3baLZuq6jC1f6zT2taC8CIHHSEPb8uRD2LEZ5gd%2BiLewl%2BGzKo%2BibvZAgSCQH3ZTwW39IgklVDC2FYdo5192QQBjLhT2QpJsQgbHSrV3qlxbSqaiSNrbcO9k00qSqtShK%2FHl768l4tjSOoyD%2FZqI9aIkuOhpENJEoe9ueaQUrhTN1EF140KOvth%2B8%2BcXGyNK83ayWjI23dKSe2mcGfRXS4SGUKo3wVXxJbOGAQXGmeUJnxQyvCQqo2afnL609%2Fnr3l0XCOSHOzDlEA%2Frz187z7WfblEqCCgUQluVa3%2FcftNx09RlJ3hlra6T%2FUS81g4Qh%2F%2BN9mH%2FHRmJNRmN9KvmIgECCMhn0WUEPR1IfE%2BUA2s9rABW3RxeudiKmWkCx3EWg5cK3wxWVJ00xLu%2FHF13z3fuvnGuCufE9FWbmU9%2FclCFhws%2BdR50pIjCFr9dhLuPAZvXwZhScYqxD9WI4kt2OqPygvv6kVLSxF4clj5dR6sUUcb3RKOWzbsHYX%2BodwsG%2F265wpvroV246F7Au2L%2F0iqEvwxdCu%2Bm7poZkxeB0SQB6DIn6pfn8impx4%2FnAwL97Ln1ZY0YmgJR3AJXTd%2Fq2UXfw0XIjsoJO%2BwvRreGC8P03sLC%2BnjVB%2Bnmypjysejrb3XSrryZftfmYhQJXUeT8wn7SVUk%2FNq9d248rQRJrr2370y1eDcAcpl7uHbJPltHwjS1PL2pTUUSTo0nhIi4KW1bRHqZ5sTCfv3TVPMN68WgjAu0g4P2Pho1KQzBcAxmchFy992wlZuFLXvIiMoIoAaO4OYWxEBVIbI7ra1Bwow8xpIDu03ePqBUnu4VH3tTL5kZK12e4i6iYWxAxCvOTEBJtOqjcaIZLqGygTb6ZBOJY1R6G3tFSHxBkPqNkes62DYWjwEkPomNl2azNMoyqhCb9fn9Oj5kv4LJBA7Y5NPgDsnl0Sdm6tXsYu5C8Tum%2BT5lQV6%2F5iq0y1eXPZ4GbJkwGwUxNl208RBLc5Q4%2Fn3Yk246uBoeHKLJeriav9WTqODCvSsmu4rJzCBFu8Bo1BWox60XcijvXcOEZveedfIm4OK0%2F70R%2F5IojwDz3V82HpBdsHHLbDQzdY3ME%2B3nR4jIo1A0h95YlnNYEgimBiQ8kxL7261d3tcfxSD3V8dOs9IFXRTSCPNOyJQ94ocyV6cygERuHkKa57SudKIZj%2F3G2AQmE3X34waF8YD2NhnCBwhqmJI12AF%2BLRodmzvRCxWhxrnMRNuheg%2Bq5x3MOYH4CJuSMHKlUElUV7rr8SjaqjG4cnRBpkltVt7NTlOx%2FIToLtbMevaO2Yv4TfwxjQSpmK03QQQzu7JuP%2F%2F1keKqeK%2FLPg9vGXSHTeA7oeJq429nvS20EGdJXUXmL7sSlNOGe3Sf%2BzQBPIrVg0XKV02SNoB%2Ftt5vUBLtNLSUlLbtc7m1kQs9vBrcGWw%2BF2b7oTOk7F6uh2Ddxsxu9fgePBqk8TtWXzaHYCNK9rmS8cMFB3CkYpoTOYxgzJN4EuDDr79BUtBbi%2BlhXMh8YJxcq8SazgW%2FlEyc%2F7REEieNk%2BTx4We9X6DGPaiHVDhneqUqccUVlizzG%2BTeKfHtFD0w7X7BVjgZuhOMTqZHrKsaCtm3Vo1Pz29vvNX3xIv6AXJREpcoBzHkveqXYPm8tk6FfPT0yMsGKPw35poG5xgAfnklA6hT9oaRyrFtETPIfdK6SNo7aPPO9oBEHdyZUQX4TDbSOWjW%2B50uuAi443FouLG1bSrR98y0U74p1Gp9M9dXgCiS8ER5rrq5s6PDihsp7F8QwvkhN0A13Nu0WVwDaWKT2ddjcGJOTC6kBnZI%2BnFkiCM7aO83YOfogXFYUjWsCYoySCEiZtUDqbydq7c7T7aSO8sGvaK5I%2FHujPI9zxD7AM%2Bufi1ObtMQOMy1jHjDiD%2FM3B6%2BOMo2z%2F4dWADO6LeCAau4TIqo8eU6QGq9Bfn9kUYWI4qWxysZo4IMfyGPV34VsAIbArIflS6Me7jgcjDVCfuNGfztiOzVsXpH1B0%2BXOLV4aGKE4VGmUGGdjRpAfuluzMqr2o6u%2B6OVEVjo2nZvyqE6dj%2BsGQAuCzOrCjixbf%2BaZuXhYJQ4M7a4x2arMwKPq6rm%2BLeAbl9gu0eSHm%2BUfTOcY0F3cvtr9iVscdqNMZV7UtQ3dRv8EtRRbmfvluxSpEvaDmUK7%2F5xu9kyXJ3KuahVYzacZxSbjPu66Uo3fSl7SVJA7GJUAoVzTwOfRYVSSMOlZeqTN%2BAxXoVosJ2iedgJ5aFPmWkOwfHERscFKWnDVdVYxJWBDVm6QOG1qhFWsKiqn8w%2BmLwaFfuAz4mcSBvAQJ6BIpb6ma9mB%2FlzONvEMBS2zQNNguSpXmR94uDGFfBjPNl%2BWoIoRVAxQha2F8sshaz8xqU4KGzNN6nIPZuOPNTC0KCCoXLjSpqBGy42787VviEsrE1Ytx0xgv%2FybxChwxawacs5EX2B2qjzgC2blIvjXpcdCvpz4jUUtFHDTvAxEgpOHEDTEk3j0ixSv2qPCFNT%2Fm6AxlqJRy1R6xTNGXc0D3PtUbRw09T6XQifw%2BaDQ8nqdV%2Fct2Mnga7pwOcHYn%2Bw%2Beilv5i3WaFUPcO40KXxtHkF%2BfVwIdQ9M4%2BQvyGAZndYKwVHpSTv0n5vV9Hlg7TROLbREiXV2Y7ZQzzcozFMH8Hp0wWtcmPjfBNaOrKWd8583Mp9slsgX62oKKv3KJ4HFQYDUwEFVHhm8MM9PRHXuxe5fNge8Grs7p2v5Ny5N0KPuzWYjvHDiCSMkyDTnu%2F1CluYxZspWBhmWSgf%2BWQJlen5rrwrM9cLzMW%2B9xHsPDiYWq402vJcwTmwhBdMmEIt6hsoeVqq5tft5yLUmvRDB5uPeRrFvq07vZHHbpsoODeFuf7uLhoTXJ2jl8exD%2FMGLka3%2BnqBeFb1Gt7c7O%2FXYlAxHQf33J1nfhny57yKJ7Dws7Si0o6hWRgEXXj4VrarJK6uoy5rEcb8lixQfc4eg1kp3VM47D8pFGQvQosm3Fj2HbowXtot2m%2Fb%2Fw57FM4wTVhzYXUR9IoYVseLQmpuuSsu340uV3vSvZPvTSLcw1HVF%2FhnJfH5br26L6Vz5OUlPF5PBXBn3nK4H7vEUyv8kfkmVIQdOksLHEz0tJkkzbeQ7%2FGup7VwjurhMgI6LowUQad4XoX%2FCGyG4xH995bkmihy2QXpp0lxZKYAUR4AkkV0WPKdhFS4O%2BIs2Opzxj9KX85J%2BFmLOtWDtUyE5QBQI9XolsP7MIMZzBh%2FmfpmAwq07N0rUy%2Fmb%2BL%2Fi2bkS3AN0TfATcprrGlFbnlizVqQDE%2FcECVXxcys%2BsJBMbnuxqpmC6K43ZY%2BWFGYJOcr5XmjMXv51%2FdSke%2F5NTNqDdAQtRcDGCyOw0IQ%2FeJYF8LxU2MSLbjBdso%2Brj3oNdKHgaQaaU4yohSE1aUCuPX2rWhNtKjx7gjZRtXOUK9RUga3H%2FqWnqcEEiHUQFHXerqdqsb7xthkLqpenME4xBqatQjp67IoQ2HTREEO%2Fm3ZMdu5hMt%2FfQhY50ifD8PA8ex1%2BIFKn3pJya1rmc4TUVRpmLAkuTsatZihSXPWzcWwQllw9ZyM1eea8HDGUlV7JdAhuwOp%2BFS13GNKE4JXFu5JWjHTAoakiqh3PYdef5ZbA%2FYthLo0iaqlGokoG%2FoXIMkKqhOWTK8GKWrtfuzpiGVdJHgbtYZpKC8RAGXqRVTTeUNpeuq1%2FQDCnEXnSylVn4qAVlvO4cmxLHYHTlbMOLeurZDkc6X49SUZnbdHgWWsAgK3X1UqiWXrntj0U6EevkyujJNHlA9lgcAK1FWywrct%2FhRzNQN6G4zxLayxd0xCzuHFg4IRBK8OSaMIsu6fMemjeCMooJbKlJK7984iOOj%2BKk8Hg4hd03ws5A84dmGP7DFPTRFChHtt9C%2FOynKrQaZPP2s75Hf33PC3hbkp3lpv3lvu%2FDhhM70gKKtEhgB%2FUfHB3o2iCZJ2vfGRG%2Boa9hH4rYgSNhKy%2FdjCLWguPWsuE39pJkO61JpueK4%2BytKDiMzi2XDylhZgozEnoft3k%2BQPJKo7Vi5tYABMaViNdJUHnmjKjItfasoyJoDg%2FKXduuPLCA1aTYcveSkE2QqeqVA9Tx1JD2PDanU7UjTSNGLRJKi%2F0nZ7bLs0t3rKnQFossCaGc747BDkBdT0ImFgi%2BCjnI4ASSAetR%2FndYAfVaXOD2eKsE%2F0T6RT57jhJ8sxFvG86us2RKb0oSdU5KcbQovb1R8bDb12lLgriXuSz7THaWXTl56riFgUmzJ9vvmOYqibWWs%2Bb6yNkJO9pIdgSW526gBDd%2BnB9lqEtMph%2FaRcwMBLdIwzpXHhG6Y0b0DzQAlbY0mh7r91OyzduaFxCVrl4y62rOVY4iCUr7g7kl%2FsWJDsQYEF%2FI4%2B%2FfOZ%2FvIBVi32XWk%2BmZqjZHlFhCu3y9AB7WHS%2B%2Bd%2F0ndAIlsK9F6d8U8M6DPelReGH2aiotAU0gzKCNVSM39ItnxqOsJhTVaprCi3rIFBsQ1R5nFWKkzUAIKg74PN5D190UriSvNu6aPFMfmqnZvonyZ6R6z%2FasRGe80jZY1JTRKvSHWOQrxr4iqrkNR8j8GmCC3X9WMEgM0%2FoFGI1fyhWYFGhmL5Q0EE3c9eTNtIvigBdKCg7Zg9q57nY%2FrpUvO9ZAhAFM1EwiBw%2Fl999lv9ES9EYXgaUr90BK5QJLtYK7mc2%2BX77BnoJBNXrP4STds4DoVrSo1fX%2FIHkDbmqRNUPVcAWvGsN%2B%2BGvvqBWxaFVIrF2AkEg6EIfB%2Br%2FMA0VGA7A%2B1FgJV%2FYlNM%2B4FOGLhbfk5f2IA9wv0ZOmPdGWQzLacRNqrWCAgmZG7%2Bx0QEVEbVtVVGgONYsN6SMzHFwGAXD71oxfL9QWKLiyirNE3wculFdqjQvcT7QqrburXIflRuZLk1pZl8zNXlfAaxC6jAfvKEi69y%2BFWzlhOuJ7J5TOlADRQi3RGjSqZ2pG36U1sEPEvj9muxXXw9w6OO6hdigBqixD%2FPDxBqkBADGfbtz0ceaO2Nnk5zXYG3pbabjm1Dlugc%2F%2BtvWv4dDL97jkI7MWGVyVGYEqiNUwFZ2NuI%2B5PiM3p3q8W%2BqkhQX8NKokBxpK10qP4f7TBicf6USEmj7q5WHy62eSXpxlGFUgykWUitn8m%2B3vBz3x4lQoJgpMnvgclPuIjng3ifxbYKYa2BCjesKrz7a3yD02kKvTxuo3XU2DA1sWkji9m5bFPrAYChr66gkbVQfCd7o9fgThrr%2FDJzQrZj6w2WYeR4BcLlj36WcX70d3YjzbPE4dSHKXW1t6XzpTONGsyq5RzCWn5GHI9Z%2FTk8kyrAwR877kGxkpvfuc27I2I%2BMi2KvuOC9D5XZgvU4U9hpJTHGJXOpaAPNkSSTJsxWhECQdZkgc6KZPkKA%2BYrRBZiNxXSnQ6yrD%2BG9N4YiIqQC01ANIvqfuFiAaKz1fpwhQMz2fZ3P2xzNS%2FRQnPQFF1eowLi0duQn8CLKUwOVkUVXOiNbS2KtDWGZBp66tX96uN7ZbchW8iWe1ZSYoOcojVEEjBfEOxbzDPy67PsbCafRvp0j3QSu7lRNxl%2Fk5ZLeMPsBhNCIIee39a4DaG2Ac5RAClgRbx9JcpQz3%2FhboFFxeij%2FCmHPJN0wwzp%2F9avDFSQrt8%2B3%2FnDsRu4Gmvd4BefWMYtoeP%2FhZ%2FotE%2FpYMaSEfcTIvDHCcb2kgQfrUKATwyGhj%2BWV7DmiJY1hQPVIg4Sx6L153xNvnIpbaP7hv%2B4mkyHf2YGfRntLDulrTcY5qEm5I6IgqJm8ABfH5a9Qwo0%2B1nJrR62no18tHIHw15IX6EnPuhxED2NNztDcGCvB087B5Pj0PNvOfstNVlawYryRih0cMhLEOoqC8gEbn0w%2F5cVnqr%2BkXx1viJTfOF%2B1%2BHcEn%2FD%2Bq6Rt8EZz5Alwhaw225lQE%2Fy0m9xpCMtRcAxo7WgyzVTD6nL72fcg7l7mr6aRBCkPM0dld3B3mlr2CZOlVgdAk916%2FMS0ULEUk1sQV%2BRsbrtSvFKVKZx0F5J83KAxDMXsHRp2ZXR3brRdYbyAO3iiSbIK0bhhRGb688yPczmGxOZ2rCzzh5NAPQHw%2Bihwj%2BBEBP6xJFr0tMLmHjlxvrkS6%2FuTMnN5CxJwoPmvMGeb5z%2F2RNSEjCal5VbokGZpXVPn6bCED9jauiGdUtZBRgm6rUQ5ZAqtTJ0278N5Im3dLF48TP%2B8sa60AlUJGAYuUl%2Ba0JQKBM2AMsgltAOHYh%2FosXsZlH2BPft7xetDDrc17wLvHE%2B7Ob0TS0rZIRUgiYyvPRFDWA5jrVR5lNsVlwWDuNh7hu4tkCdry3YJhI5dH5qmizceD8x6U82RKyyJ3WgOEPu9nMksXT5R%2FV5cBKHMaGmRbFd0Bqg1CvYCNQ6ucvIctHB%2BRxJpR5Cn24SM54Ga6ug24jL9D%2BoTTqKqNSqw06yLhWhyT8oWi16NyrKVqR3JO1iVwldDFYtsar4Gf7I2b5i%2BSCRW0K57SGg1CSc7viRHa%2FOC7Mlf4cBABs%2B2GzPGVs3DRbPqLHYqiywjf9kQ3E3dVhG2HmzCzFjNJhw09Ujmf2JIspGEbESCLwHzlH0lisp4BZxEVUN1%2BCPLTTfAiZd5nOKc5pD1TLlahgJh9Q%2Fgbjr%2ByuXA0PgnG6qYTD3T7ybA9DSjHK0mzl5af6iq5CE3PyiQQwqGUUbNEndOjf31Di0RX3%2FEXV2AjyXUOJbDoJLFbMmdJEDFPLZ3hE3tatXfZjzMRdYIzVxnsXWBXxIMXaOKiex8aEG4qnVOeLD7xkKyASzySIHEkBmtz7sxkhzdZvkDOTw1VpDXoL7Dz1E3Iovkekq6I7pnCfAudOHJgS%2BEp0QGZ1935Lu2NTcpiMLUdA2i9H6neAC4y2T4CjQ5s3YNMteiQrxF7VQneIvWV2eVXvc4rBhveJjm%2Fy2eFPo66w2MkJzi64d4ImYaOhJApXfBxyAY8RUCeyHjL1kX4MlJUOHWvduZctiU6rv%2Fh%2FeKzvptAZgjltERRc9idlACV4ZdxpZtUz6GumiuZ3CvulhQ5G9rEqTbfCZ50zmRW9iAwD69UtVYv4qAa8LXvLV1%2BpILR4hTwenBZG21zfvcvlwVTNR%2Bj2I5PTni%2F8xfV6dnlA8PR8YxnPYOa40g99GgDrERiUnzsuICmQdeoHFdqNAp8Zb2ggpiWXDPmHA49NCqzYybWN1Juop9XyGIFwf2ep7CBnpB8LHiSvpEVFRYgzrFo5650LWWV8O1CLy4aePlwlGiv92JCYuI97zGqvrnPGrjyhb8YVkkP19x0n3ylJ5babc%2FJEQ0MQZ4hkUfWGIeCbOrgfcTD%2BupwOlurRF%2FxuIKrOTeK1pjcNJA%2FqXIVsLxvRwBefqR8MaXWrMBeajxAU0hEEkK%2FN3uLkobLZipb2%2Bfvi83S5IG%2B5JemMw78HyoWyz%2F5UsknI1eCbBjdvn%2FUPs%2Bl553rOaOemC5nRRdHLDu%2BUhzn6t2CNkX1jg3FT4OeObWa0dfZgVWlErigp2uVT0QSp2fnGZjg%2Fbfqdugv6jF8HQxIbYNSSjEA9%2B6yxw%2F7ADg0oL3PeYzS7BoomDgjXsR0YQd03ts%2F3TemF1hF7j6V0DAxGqOP696tOio5F6v%2BqmsYDtqx4IUnpLK11MoknxMDp%2BSlrxP8g44yD6EokCG4SJMi3gxPTdSdCcBQvtvStGevoQx30L%2FybODtR5ztNpAB%2Bh4c17ELrg7M6GovGRZNhboG45%2BMGFriZ%2BomayA5vwgIpAzjkB8hBAy2rCNjNg6oBsOr0RDf05zxk6FUAOZqNGBT0qRFn9og%2F0LyVo6fz8pU80dWdv8nQdtXephrGo%2ByhE3vk5r3YQ1ECFrhxfZcItS0UyO7%2BkG2HnJc0bqVGIXP6cFRvxUexx%2Fu3sJuWUl6WsoHjbp6%2FRGkpaYliJE%2B5yB1U9Sd0gjrguX8fr%2B4RuhDJEO4G37cqoOXn3JYDvtJCANOwCZS%2B4PCY8FlaZIA%2BG5nKHW3x%2B5gq0bKrw%2BM4aceOPbIj5x7I0m5lMefsnc69yg62FDsNe%2FpdFIJU5Xm1XqoN28VWuwrMv9u%2B1dwMVsR5AmjHoeTTvkidhF1wL%2Bz6f4mSTPyEmDxZqD2w2v%2BIXQnh8EnZ3PSTkrl8jRsJH0a4CDaGYBl7oAjFfJjIsPkuM1AjHJhxPIBZIuTGbBRfFzqLzPE4Xpt0nfvM0Q34wMrQRR6Q5hvjHRkgFVLZaf0G63FRLx7NVXoQ91VXuKTJ7lQYFZFef81%2F44NVI1y2hO2RbxQNtbMw530tHv%2BPdY8HgLqLTcs1l8a539ISZw0ncsEOaZzmr7BX%2BSkJTvvCa3%2BhOBU4E5ExYxVxuSy6gfIYaVeI92ZtcA6UPVEiLqcRyXIjWyiih5125qz%2By1QtK2zYTmMk17SjyrloqOD%2FOuEDKe2w7CIg25W3qYYh9LfBH1RDZOttSLv%2FyN2graLzytC1yQkzJnoSJrqW%2B0KRU9ArmDFhupB25fPCX2xn%2FU4vPKkxTycQ57me3FJdDmdM3aGwf15tRWA3QaCXYp3pJtd8aCNMQiFgUnJIJYmTAuGcSAfWPM0EZCZBoBoe7EJ9Aeu1ek38rVumTdKfjV5ir6i8Vs%2B9aBVetkc6%2BkvmXgcLoW11d5QQ88dxxAWJaBy2WK8zwMNu8XxXbn3bAbI4jDtBl1OmM93QbCgbUzk4PWRcBdlOb7W%2FfdDPJWOQuUc81nhT1pZmZEmzW6cjGi5d7iIU92T751j4DMApqBogwYe3b6Ro0dLA9WB8k%2Bo%2BlYQVbzyeoumNRTiwdlNKP0zxbAo01t6ZwcBuOm1uiljwOLF3MEu%2BltfeTeJ4sDM%2F91fq0gUiZoZhcfftS6XvOrB%2FGEy7J7CXgAsHtddKaNwnKVvpZxWvJ9AMIQ6zB%2BYYI0HPz95ad%2BuWRdaaE%2FKOHkp4Jj%2FXpkPxpJjLm5F3PphAZcDrLJ3nY2PFO4ycw2S3LCotfruqWhg3HagMvH7aMhR%2BCYzlVJp2RrkJ2xfyu4YjUaPdD5Q5lBg2vInrpZHJDUm4nN%2BwvMqnvogQHk%2BX37SDnqLmM6u3IcxE7qL8fcl085gXHX6e1X1lvp3zXDgKvYYLlqC8S5LUSO6sNOxV%2B9S%2BdB3JlUDdcgfd8%2F56XZ2ekMYTvcXp6XCtqXnbUpVGpVuqWDYqc6mymvmJchXtk7UBtbfCmgLP3utLWs36zx5RgWqwVZmUJQCRFnEP8mR5ZWkMulG4dUfhgZ41XTyGWjmdqtnzAuSagjTayogsqq3LRt0lvLlITaQK7P79YH6zAHbd1LmfLMawJ8A0t9klKNB2aLWay0ku%2FPXRn1usguZ2nTH53iL%2FYjXNK2D0sY81IRvWOUy38%2BkFyGpdKgPbi3RHSHFXm6MC8pY19aVpXmK4vrldIMtxXZKjv94AEQ2tCT1vlz0fR61tlPsiVuiLTuytDk99xQvR2RnlwnicPbtcFHziaQWl%2FAmjeim9PCCNMCj%2FT1%2FJneFbznFuz4TpuUabUfQICuwuMmRroCGlxhmH%2BWVgiRwpkMUf4oiSIeXuhM4Ac99zB1JskBV3%2FQT6sqKolNeiLgenatg25mFe%2BhQdyXpYtMWu1%2FysQugywSI8ua%2FfkPehhb5LjAU%2FSvCMSmIf2xU434k80Lxk56yUE24p%2BtcBmwkfjGJJYmLGdXG5U%2F3o5NhdUPZO0Nmuqz%2BOUaJ6GmvuV4SujxojObrh5kLm297qQl9MMFA7NFo2o2q08Kp7Qed%2BYa8WILqM9uoIuuTk3FMYfdT3eJaKPM0CWTEmpNPBP1J2r%2BnIy9W6MXw6MnysqTK0qIZq8hf9EkxY7gVPNDWvfVRWSQ2X0BLT6c%2BWrgw3HOJzvzmSglOWzXvzi0L64aZk0hYbxAXRnl4jnmWF34USfrpURI5yLW3lzUMtPP7x0%2FmFY0JCSG2e%2BzQDTiWxvWhbj%2FgXBL7yVW8kWEx90YQw0hWk06R5CCXFzaNxBN9No6PI7Pu5Etq%2B%2FcOg2iISxLZqF%2B7P%2FWn1yMcdjyTovtsTsZOtUm7zoWHQPfmA6via2blvWm3pV8B%2BC4WLcrmSaoG36XsCOCfCBR69Ne8S048YzZV6CuI0qjP3TYY7Yxrj6Z8snls0U9n9Lz2idOhR7FCQ1Fl2ODPIBzsAzKLhaVZ9k%2FUSczQnz%2BU%2Fcv5NV%2B3p5TscsQ4LwfRV0F3C23iGRnyDHqZdPHqwnWHBhrOfTdv2sngqorHVPexQbCVCFWZtCpw80X7vK7%2F0y82Qxk0CZQyQxyRPf6eD9ieZj%2B4lNZCzlX%2BLbc8f45ZaCb4W8SpVGzZRfMKBm15du5qzT2NzY4TbSsNtydmpQo0FprOJOFcGAovXh7P9BKS2Bto4JjqG5BekZVN8wKUKe6ujNqNec%2BZf6Jde6kF0Vv3c8QKEu9jvcUhM0WyqVoyq2JfNqd0U%2F%2FHlBazFSjNS1GdAuz%2BfcFZQNJnwS5%2Fet95rm7ejIe9u8pmA60f8sQvS6ADFr9RbWLUuzq5GAdWK%2BxRIax%2FbvFaWrAo9lt1pFn5iIHp9WC01xe9euTjHK1SJbPGIjR5zqsm%2BuwX0i6itvSqEQAJL1vlB7USMX0dK9uoNJpUQy12YX8sxZWUmT7BHNkPmv1NCDE2k27y%2BaVBLb8Y%2BUU%2BuacYvPeMNHDja3a9GtvVaauuynEuMvCHaKlTgwbCKTUagPqva6vR27t%2F2y1%2FNp7wtfDZFpNCQb82NAwXjfvCTTp0dVDmEjNzFtoHZXVlmI8llzk3UxsqnnSrQ%2FtG9aW7lLz8iiZRh1rPBdVU4VnaL4dV%2F0zhIfyUiq1s1D%2FPKPqs%2BAfunKqeYUDkJlp%2BJ8W0S85QG%2F58V%2BsfhMiIpxqv1xQLIWXl7QjpqmORm9TpeVTT6zEhmi5QCNiF75diYyiLHNuKWWkytZe6iNXnM2kja%2BXWA9mU8Pqr1SG3GQka6D7mPtsNS57JAUO8xHt%2BFREJT4%2FwBIeSuaRHJK%2BU%2FMYOt2luGn48SOZO5XpKmlzNgpVhKD79OCFLAg%2BXdGFheLFHWmhfHbGVldwPQ5WMysxUibs0bSq3Q824%2BWOqGZrE0AXyYHoUI1a8RNqJ6QsGufiZoy9ydVhVCEVhtCDQvM%2F503GUdjrkXTVr9VW6yt4aTZZ74fQvuPK5cR1z5Q%2FGZEGsVzpJrABbCMO2rSqqwMuI3i7RcB1VOkUFqBA6%2FeWGXgxNFqu4HdA33y9k9ypONazxHqf8k40B%2F5zhHdXygRfIcjIw%2FJx1rlSDKjn9K99s%2B1sua13R%2BcwVyK6cpJZtxsmKPK58POuF9Z5OP8D6oi7YdmIVBlREJtbzKiqbsG%2BrZ6z9s1iT4op3l7HOV70AiVglQaUs1qBCwiMA6L3UrfU6e2BwhjfuaETglU7VARFFjrXO53fRtroAtcUQxhVv6Xf2zPEwaq76h3q8dOixYMTwRHAMYWEbjn8F0a2dUqJhyo9yIdec8Sxgw8FoF%2F%2BQ6seFptzK5dRAq6tsu%2BsW81JR469n6H1IupT3qhXfORiDjafamCPMBMwpYDImst40OrAuN4uP72of8z5gi1KO08hiwH%2BS3WRVwCr7PJ8cEz7gaFTzinuMmbE4LETI4IZ1yDGfOiYlX7wPLwM2gtSKju65VbsYlZLauGg45rDkJyp53h8SfOsXuR8f8qnJtpcsWxKeNpW3WJrmCKFEs7xj0nMHzKDwc4EViiXFEnoFpUqwQsxWkENTOLMU5GtYGqqTtTGnBSvKvtUZX1soq8LTtEHiHtC%2BvL8j325FG2%2B2EysTGCmSV8oZfD3vKuKExRYrHBzKxF9xoJinP3DakFaZAHJ%2Bvq5XX5Tqf31vpQ3B%2FzJzF3opVPxqeUjbXbEfac3Cf9%2FRXE8QpWAtCduTZHihEHDXFLX2KvGfd2UotKpgNPf2abw56CoQgyU5vsd71Mrz%2BqvS9owXMJh0zk5eENU1ZGOA2eD9dSKFag2HnlAtyiBvb3btpaOAsQF%2FqRDYfyurUGyh24%2FgulNFL60FFb%2Fdl6ykbObFdT7Iu%2B3kUzWaakcZ%2FiBgp6nvBz7O7JQmWlnqzbW8zy3%2B%2BqvFM7AYWnouN%2BC0rSCYlxoYBU8tJ9GCI1Sl1OZ%2FSXJssbhbDzkiX3wPSQeVNv8MchF9xgoL8Re9MX2Jwr3zr4Tv2fXBcTvUv9Wyw7tJroU5ehHNUhRv%2BgVwkQwvmpDsH%2BRDCLbIW3mP243Pk6mxA4t4sy6nBVEoZuiHRPbuDhRw1KUMIGkx71PPxLCsT4kH9nLs6bnn45t6QXwWGGdonKkFDngoQotIcUEtrR3WPvqK0kcu%2FnwMXCk8B2wqsZwlQOHh6Y%2BHAzxz4cA4Vzyh7oKfYQrOaLfYF9M4KtHWHUJJ6VnANUOgppeBp44QrOli8YZForFaerHV3N8TenW88puztLRYNykHUl77IJlnXFSiJShx%2FOG3nDCjCWk4OHvbzSVsz9Eavb88y89i6rnxuXCyV%2B8KHMGX1QQ1xVfvJ8XB4Reg1hIC4OV5dQZmImP7XSymS1e3fHEbYgiiax4tfIVVGEfZOUVc6C2ynev5oI8qos%2BHwRU%2FfMVV6pCOIXHVjAhz6WtbxCFQZD%2B2zP4mB8bp8focHWLJd2BSlggENyw0Wed%2BWF9A1O1SPdbfq%2Fr2xD8XV72eW5S9%2BMPhWtH8Ixs6Oy6s2e%2BPiKuLpQNoF3GVwSBPXJB1hFL2EF7LNlujPH5lnKrYArVXNcFDKSO5wwZ1vi4fWqEyDZeTzKPJKBq4b8MKK2vFle2hR0HY9u%2FYhFtBH5uZNaw8vFmFtRwISvXVLZ9oWwuog8l0P0ieGYzIeO3KkURraNlU9SSwnwNfNbpxlaTrqqegFx%2FfDo%2BoltJxqZrCBUVtGH0VEZTNhb6etzUgW0YUqotw2oMjxH3NRLKEoMgCxr1gT0FYSzklRhg3V4C%2Bb7CZfwHHg7o5ll%2F8bm%2F0EEfnm0JjwqxWFDW1R7WOAOLqItE2RUbYf9Fl8T%2Frib0pz4SNEGPabmhJHTNtSKuIcd2T969n%2F9LA6kZm2AIPiWM8fJa4LXpTcB0q5n1we2di9NoMnnSQ%2FhITBBFNVRs7kO3YYos4BWqbGxaRAvA78oIUuvg0uFd%2FiogYSG80lkSP5C6IxNvyRiCkPVSDd56Gt5xPMyQLbcsAKWyGAvY85CAkQ6j4zXTKSO8U2BXGOHWjoS8yK2rL8wu6w%2BdHxmA41Wd%2FuNU8%2BWxwvDtDQ%2FgBE8B%2BpeWqYSkfFR5AlpRGJJduJlkg0bEHpqGvSHJOkzG4Fwjtl%2BiV2stn4ThxIszFQ6ywCZKEd8MHeGMXszh9%2F%2FaFspkP3dCavzfT3ynJ4lS1B1ZqeRJOpgD4nrPPa4MEW26TMvAtBW58SM%2Fp%2BixMiOhNqSHIixspkDVDeGlWJQxM46gTX18kJhRZvc663cgH4y54zjfJj%2BhI4Lg2rNicyX1sl%2F85GePqT5LWX6FFGRr3KIIPofk95eSEEYPClmZOe2Dj9%2Br3XbFypSHNGMy2nb5e8thI%2FJdEzQTZzN6fYSvDcycyoUFfWknem3gzIrh364z2wpw5V%2FxJ5WZVLIeR1xeCWIdT77uiwokJk7jAOY8P40G76fpHP%2Bs71j7pjWor9ndBkPf%2FnRYIoiL4Hwix%2FSz5L7mZX%2B%2FSx3G7liIphmPVfXNsntQXO7HB6UviSUc%2FEK9D5%2FbWuQ6TJJKDX2LfZjPT5wc78hwlDLyQC%2BgtIvbD7ijNpklcYKh1dvzvlzQWohWu%2Fry4czXH4pq7md1F%2FiXyBzRKR%2F3Df4%2FhgdugIdXQ%2Bzh%2FMoVCk%2F26iOTyTN0nkBAxlqwydgl1EeKBRDBd7KB%2FNqyKNriZr3vOcBG2NyY7sRE%2By%2Fmc70xfFGtXOfeo0DyTqvcrPvW5vhBcRKjHPpCimXbgHbFYOr6%2F%2F5c%2FuAYLtOvAVFWRf9f8nhcG0kGkpFYIdI27YSXfU%2B8299ouwgTsypuBa7Zh537QeidY1x7S68lE5XCQugaZplA5pnwNJmz3pfMu2X7WKJTrhIhutnxwibF1KGQcbk0eWxpBRTXC5q4EKPdStvbhQDJr3eGoRDCwqfbx9XgeFOk73X3QcMUOVSqlpUATnmldusUzh%2B9mLvobjkjxn3cUWHWsRbc5MwBMnnAAIY6jgqoyQY5tx5HAp22zJ8MjS27NYGB22VcgN8SHOJdJPxM1kT2vhjLCUI9jOlhu4%2Bw8zLoQVGcLwzYb39YbWZcDaBUqWe%2FYJRPts9x8BQANEiSm96zOqbu%2FRYUzAyK0QGmVVAEEMrRuBKZ3kmZ49zBmIIHlMVCMh8vUKOlvAeX9D%2BlJ7nictgxo%2BoFJOxvdqrTsbBdOWSNXNuMr5lweaXkWTdE2GL40p0Mk%2BDjSA0RLXy1natbzWhSkWtREgAs8L%2BXniB3jzx9OQmOblyW1QU2EXivsq5uuRqYmmrd8MWq3oHMTk3%2F5geMAcwJwJZKdVQTqZ1Y4%2FyIfRDCTpsy%2FoPEwknfNlyGUHyscGa%2FFpB2tcgfCkdQS9UEh6DEpVP%2FuxJ3a30OLZQO82NBj8Ae%2F6JQxS7psR57V0L1YsiDvbq4JGuWq7GDExF7TtoTqfLCmdDDDQM%2BHow%2BV2AtKch5LOrQTkEQg6CwR5mEa7QXtWBQx4iwSJhOaS8lBUKXJIzBIZaaswYHSsWTp3BmuEhwoBzRyUrthHd6ECuhrl36kmyqrBK%2FMyUUtIwZ3Nbpd%2FT646h0bIKMTrCbXhOI0Yu%2FZYMBAGme1%2BozHQmum%2F%2B%2BStBcn1Ve24O%2FMxzAfxz1cVJ5G9OPaiF4j4zWdL43KW%2FqSxefHFhPgnDuCoUx8V5lxFpIgz%2FeIUXfX9j2iM8%2BjSMOKl4%2FU1ZqmUBqcofDq0jQckYHVi%2Bj5OANSSpUhlvfv%2BnTssLauF87osRvai8vPrLsWprUgEpDtaTTwkk7SnHfRKqhU5bkS%2Fl3yawH3nE15uK02zHFIK0lDULwp%2FlJkM4h2ZMy7RXIUGsNBlUeD88rP2c%2BAvL%2By1zc3LngkvBxY5QWQhuj9Wt9RZgAwmNIlYlqYM53iGBH50FLdTeywuTXoAGpM7ItSkYGKmHxChv3i4bf31%2B0Tq03HIniCq3tWBjIazq9zCeqy7qPYxPGl2FNP2i6vqUuUefirH6RTxeZ4u7I5qYAySHqjog5n3gW38BhUFz0PX0BelWhYU9QUp3om4TnUkLGfO%2F%2BaiXtjZ%2B4isHdzjfBK9vwArmsq0%2F4nvXpIvJ95kwVK5X1ec%2FmQc0xtxiRcfPfYxfdeVvwqGljgQ%2Fm9ZcxIR1A42GQwH%2Fujg2Os0kffd4Vornnh5vXQDIuEnP%2FaXkbQwy3yF2chxUKbb9UFHPCbD%2FvnjHnCwTo%2Fg5nuQ0EFpgxS3%2FR3yEnC%2Bygaj8zHQRzEGXswh7SWvxsHA2ELPBn31l0y3OxnUn%2FW%2BKy43uSH%2F88HttnsX2PMCLp2wcLwtyRQNYJbitKpAOl2N7GrKIJsEtxCN8Fdw4yBezWUgq%2BaWGc6Oa0mybKGWqzXqjrJ4yuD8Vw6qBR2acI78wy84TjopdqZ%2BLiQWwlFu%2B8E%2FNiJqiB00%2BuW6D05dP2MKGC7%2B8swyMzvX53LL3rDPOO9jvD3Zu1zWb7sBPJ56gRbdbVnwoWzWYJPUspmIi5RlbpLuCzwLJ51pZNF%2FW8WKtAZ%2BVCxfPP%2BVfinhYXtHWORq4EQ%2B%2BSXqfJ%2Bbl9MRKfCg5RXLcJ1HGAHxkHCVBxQF%2FIfhNpZOWky49J8ybHsx%2Fip7HM0V64Y1OVQGEg4Fh%2BoBnJkQls0EJVZDCGFG7NsZwcLbr%2BH1HyPZcVeTbK%2Bs%2B4LnHn9aZGTfqxZt%2Brsc1ds6ALz8VIqjaZ%2BwttQPJeA%2FzbbEvYzu6nnMzOZg6G6qHx%2FmrTZG2FDZ5D6nWhjfed7HO42%2Ftq6MsLwf78CMWMwg1cPUVubKERLOmSZHBijcOI9ql7aZFXlVxby%2B4ZZIK0CxP3um9eQwYTW3nKboqxyv858ggPbxB8d4IdlUdN6gfrf%2BmvBqhzp8uI2qMxnet6ILAbYA%2F2%2BBk57S4j5PcAb5borQGj%2FVgHPrrVUICu9P%2FKGZwnvc1mublCCtQm9g8gmVz9ABYf%2B3N6ZNQXzFiYq6tQP0%2Bz9ALMWhPuKhgVdfVaVH5LJLFJuj8BMuT0IffQ8Qnq8U6CMlXzd21XgJBRX59WxM7X2vHqFjnnYoler3Yj2UTj1YW8uHD27ruqggGcUQDrPV0jV0yHTlwzJUZjp%2F7%2Bj4RRUfXOlaNOlHM0ELqRangRStc4zI6ISjSLdluDjFVdZ6cDnkDQd4FxnfgJju1xsZ3CIx7GrtB3o26JeU8JrFnPUU4ZbUGrOubNsa8jVigX68vl7TUdLLqESfw%2BZR1uHKwXtXDFO%2BtYjSVtW8vZzkGn7kn32CSMVnEb%2Bk%2Bf1Wf2eH3WzJj1ywzZ8rkoJ%2FsY6771F0Oj3YaFFB1M5x%2FtMmeUecKrZytrrjnPY0wrreslbuBX43u7LcANulKB6gRRyiclZoJHn0Z9kygjBodCUorx8g2mNVNxGn1U0FyTrqAJsQjMAPn%2BicazkqgWBXVs5KhI1%2F0gY29jQ%2FcWlMkO7QkhijYx%2Fw1fNbkhKYKrouowiVk7ulnXiVZAl%2FRPFoCE65rZICTIx7FIxiHU7V2mUey69xdaoH2Tu69XDSTAT%2FNZDuUVXixXMrcQ%2FNG%2BaIK4acnTw6gjmtAd412kZk%2BrvHdLWzmOPMtZ0lrvf3wd7gugLzgo0yQAfW3AZFmLtdhneqmvPchqhxJ27ch%2Fyt1%2B4UBUIkZjZcl01JDx7Pun9RWCDk3X1hfEg230se2LoQJLjq0C8%2BquPghvTxLa9muWrQLwI8u6gTPr9VxJDxfjfLR%2FWndVpp9T2HpaWE5%2FNJdaqphmfR8%2B3FB1HvTlMX6Vy3UhOZHMQR9DFZ8S7mwxnjsX4nuUpzFi4xkeamVPuXeLexytvdlzFiseqiDtWI20E4wJp8BVhp%2FOY5nFgWXxaUWned8hKDznls3ov0eEdO%2FJRTAiFq3bFVXGNoWOKrrQq8yXpOOmGXzPN5VTfUCQl3OYzF5eqj2iH9ftKnFBB5%2B%2F%2BsJKHoRBpglLA0egSBqJLPTsx5b7UYov%2FIrIDMeK3ombhreKoAFgmSEswjv23ZyZyk7h0U8wQ%2BbqFqx%2Bsz8psBB%2F%2BZm7LMpCetDLGZRGem%2FnRVKFDlTk%2BLNMIC2nW1QIGc2DkrWeHmNBCTX27YVU3jepDn96%2Bf%2BHxHZj3sX0Mv2qGlZ2pQ%2FO0SBHf6wgD9TvhTdcNgZ4EACewDKyTbmk5myV1VHb%2BlvR7J321hLjZeDtOPibicX5UpofyAZzFqBN3CHp%2Bf4ADDwK9AEdAvMNmVQljqo6ert9pAp5LwgFE%2B%2BvGAQYeH6dRi8nGRMcmqVONC5kLFWZzjnj%2FEU0mfCGdLE7acBdis4AY9tr%2BqU8vjdVw%2FsmBDIqg2PCBfbTc%2FINBoegRgwxhgjhsM202IEB94bMMhafDhjMTqyDVXb%2F7heyREfRlCxLkCQybyV97o5fgJbQ1ltGbOvG54PnEu8W3ESg4oAA3fDLssa4swkCwqo%2FPy6aW1tOe2jm5Iemvi%2F8OCkSKxiesPQI%2BlpC9TDcMb1s7Qmk5BIUQZ30X42xS1F6p%2B75ZKuWgQjoDuNlAdzk%2F2pxutgCDPkHtsdjX%2FgBF1r2N%2Bn4sn61VUOHXVyAreq%2BmYGGkeJHnGxVsuKXIT%2BazUTUfTprp1DS1l2wT1VKfj7AsMo3xkd2yHyD8KJrFEmxhQ9tVf7I%2FiGrdmUnEFBwwefTII2%2FyrCn3fU2KqmQmGCmODI4aZbW4%2FRo8%2FDmpMdcoOFv4lf%2BWF%2F390NWOZFvKucPB5hXk3jTRPcwgmuinx47cggaKLS3LdMNuxjUz11S8GG3NH95ZFDZyHYyAGzxFSj%2Bme8DvQg7Dq%2BSvBLDyHS1Y1yKjL%2B0T4lzJ4jUp7pZHXQ%2BlUC8PdCo2sAnW2XEMakVTQmquiTU6WFPsP3EDXu82sptRQkZxUwPJLzIPIkYGozCTsBcSMG9fWjZplGeupehl3KFqKOFgs7MRxKXpwkWVcbv0goZqqJ6e%2BwJPWFGogSFrHmn%2B0Z1qAfy5tgn0du5TrwzykWH1fbCMs9DZyIprF4TLGwhu0WMsmwadasC0MPQtfqcC96E%2BTpk1%2Bd7ckKZQ3JQRs6ZmQwYluvUUFw%2FyyU1cCBoDi2CJOKlOrjcZnlYSHz5w5MFoB8GBpvSUdqnSsn2SHHEM%2BLYEvyBoNN3ikG6qxM%2FEM7CDKpNsaW6rS3sG7PwEhKYdinB16AxWGJFn9Cu3aOwkESgo4AQ1iaLqU2gHq5kXtoOMcG97vd2nuIAODxDnD6myqsVsXFb7vjfhb9rGNu2%2FeFapCT92fZSRNN6CzUVKHAv4xcU06s1UGHQm0Cx8EL%2FoonHaolxY5RgOFvuau1vcy9hT5VAcX9KxOd3Do2LnUT5CQqinptHpfxVyzumohUoS85AQ63hPs828YM1vfDRJNoaRI1%2FB%2BDbkRY4%2FqGO0%2BbDhtdWBWvL1AOfeO6xCyKJhGIYRr9AoWt7rBR4FOzqO9J4PgchLnJQNDJ8%2BknGpAMylzBf0Q9Ddkp6ov6NWbOFMLczI02E38bPZdxqmTv8WUBzAvJAFBH5RVlrbAZM%2B0PI3RzgobITkdwcgvXXUuuHA1FtJDlS%2BYqpGdPWyWwMhELdyVh4Vv6kLxJwyh%2F6%2BNc2y3wOYVpw1DE2lVFEFde%2BtOSPQ5PsikYE4XfIdtEB6fsvtaDHoy9EY3JnSSx1i7JpBcb6quY95ntOgfkW4YHsiZFz2hRLw07ac%2FClaGlUbJ4t6qgRPq3IkoHQE9afu2Fm8s5989DDRT6h7kB0%2F4d6BXnZfUtL9AQ%2BUqnaThvXcby2CKwJQ867SjyudidZ5Eo4see2uahiBFfzwCbUF0tQV92O6laBTOU%2Bf9SDOerPCFCqCkmGu5QgPP8A8Vvi1ARyGvP993B5QC28nJbOZMX2QIxZ%2Fyls5rqmf7LOpm4FOArpjb4qROfen4w2A68CNUmJ17pxiCDhF%2BcSxS%2FF6HbYyYGMoUOPXpSy%2F8KYW8ZVePkfblZpn5ibsJhYv0Xd6%2BNYNZgtnb02GZ%2BjOkWlWuAQBBf73inOVcheH5vbyJjtkI%2FqQLy8PhIBaPPC1bL7Ocpo3OdOyk812pjs9Z5j5vAAsyHK%2BjB9qH1FoXkrxeUgLF%2BBkLI5B0GavmerOHkXq5SJboURNouJUf9pcznl30KueXk%2FjHpQ8pE0UUzyWSIH1DDFA%2BPVjV8%2Fjn3vygSOF56bNDCua02YxPzOHiHTcXRbLtg%2BPE8jFUnInaKmBYMoQTaRTo2%2FsXQ%2B0LJXXWkcVBvXQSHhMKmFrSObQbLu05Q0QY8gPsQpaX6fs3gBZhosN%2FjKBZaNOEKKX%2Bww9aZQX6Fn5OoQtOuMo91F9IBeLCz%2FLZ1hrvMYZGREVV3fkF0TrYbjAu2pbRwvjPQ0aTK9FLS0dmQ%2BrqniJvo2zCHPHZMycIlBFyzJvqygwWUREXsQoPjp1aMB0Hq3%2BsQDaoxz2RiRtxXAJ2jp3DghWRonJ0KEJtDRXXPCI03Y1c%2BJTUWqJpCnibC%2Bxt8qKFFazOV0HT0Z1cBqDJQLVerbZTSLwkowct3ztH3Uc7Kub3powTo8COnUpOQxQiTEkqOfU4myTRwK9kJzDm3Zivr0fWOBfDprVpbeD0V13TG5h5h6Dc%2BNHm%2BX1yNJX6%2FuAtix%2BbiNAOqE8G1K9JY4gJSuyXw7EFDReKKynY55VsasSRR1SjjQn6lDVtJ5ORdRnYtIp4qYfRFFPohZQaXcGFXUY3QZfyu%2BOEgzTb4p1xFBJRHYYDdXEi2vr5fs18XVpH3UlfIKfP6RBrP15iUInuZYdW%2FQEVBsBr30YBGs%2FYUBnXr0eb8zVBKnL4G4tY48seWGgyCvDx22DAX6KIKSgjj27GVjUcU7zUkjDp%2FobOKdwA9jqdrECuWrhd%2FibT3%2Bh2wgXavBlTqmpj7nPOXUSPaYPNUrH321SAuy9eIxSAWVyBFm3jVTed3Zal96HkBeUh399DL97qM9rJUgAoMxPZS65S62kv0VllwBsulsmr3%2FPsiZhlXkvrPlfG69Yw85h1tcLBjmYCtHyqC4Du528ehgXWiURUuGyt4y82JAdr6yLIjjs6qOUot%2BONhoY3VKrbZ1Xw96435AfYligff%2BwbkdjYXEr%2BsSHHcRObkY8Wv4frrXNTAAMws7IcBrbI4JpE9Ks52CCIwidq3uN0X%2FnZkUAmVo%2B20LuLUh6Pua0XwByOBUJxyYj0b1vmIyr1yt6RJVeH0i3zaIluAWZPLSirQaKUly1xzgc4S%2BHjKAr%2FwP%2F%2BfZHlyAJ7eCdfJ%2Brq5CmNUMgJsJyD6ir4gTWEIaOUgi%2B%2BfQ0GfIrPHVFE9ytc388skjB3Q79mqUB1OIwn6HvF4ngRZejAMrHWL2ap36M%2FmtQ91sdTXzHH0fYy7WtBROLOFj98Wcn6SVL%2F5Mj5ktxVL9IRMA9Bn5mxu2KVccKWPM%2F%2BeAcybc9S4Ata9wI%2FVc%2FNEwpTzbedJY3UCGZ%2F5ilaawUsuPa3ndvtRdt%2BJYeavAXnHRSbgldgCRBkZYvRLtVYPJaqE7f5cMsy%2Bj3SA0rDgHpKvtF%2Bf%2F8kYxeRqUW2vHBEiCjSf%2BwlBMyaXZapfMeBjrzzgWUs6%2FjaDIFPuLrmGTvz3PuNrThdm9v7K71jqVv7Rc4792oJvt2BXfuyy35D2cIOwfjJe1eWjlqK%2FA2HD6io%2F52fuNX2WPv6308o%2BXkof%2BoJhGi6UmXxyKoPPWYr%2BtS0CNrbXl%2By03ZGF%2F9iaKJ3MbpZu%2FqKs2zLvB7OGkn0NNCCWIzpZ5q6%2FwWFfx%2BmAGi7IozXrGuVMc4SfW%2FhbGHiU42erfVB%2BnyvUr2BOvkiVWzBlKvi7jUuzPXkQxNV8l6Ws0uwkJMJWbeJmNPj24t%2FYNrsimwXWe%2BpPoOfLe4CvKU2ecpW5iwROBhvYLLw4OPYIl%2FXTf4AczeQuCseipWdi1h4wW8F6pfJKDUIvZHSRLnh%2BuY%2FoqFtxx89rtJMxZmbJMbFaPUuukeStsWV3rm0iIv3WQZb9LlrhjUMvDmDPRa0e6lJez09SpqTEeFJmu4zlrTPTKvkRqKs8AeOdEVXcOF%2FXUJ%2BbQwuBX0r%2FnJsXT4cNycbXGpwA7ieqd9n7el7Ica2ikZjxmw1dXt8pf7wdU0tYp90zCSbAj82olnD7c1ZIkyAp049G5E%2BnTESJAUB2uyEkDo16smeLbkk%2Bd2%2FX5NXnrTVZ48msjwEe2F6jRTEofF5YQmnJDTUTAMerAzk9uZ4cg%2FOiILYoMfNU8UKJtD2aNWsLCWDhtwfKdhYfjLXV2mp1GABCSlElRNKj84inDBpYhXj%2FVnScl3fgo6l%2FnqrMkbc%2FF33R5QjwvKYu176JZM8QOj3QVUEDbDzDI6xHpK2L63C%2BDU%2B5peCoZCahlarlid6NI0MTvPX7ADrSWLqVKTBvvCXl7e%2BXMhIdSq%2BtP31qbusHpiQwkG06jTogDKWSLCgamxHFmMCGmx82cIFUOQZH3X3JbRWf8jWcZ%2FqyXx9AYqqTqa%2FNML2WXIyTBx3qVVQtk5MCnrXxog8%2BN0IQKXhmrI%2BwsIY0Rm2UEjNSwdhXlo6%2BFbxP%2BHcARVVovaArIB%2FhbHQWL39zzDyxwQOrvaJjB5s%2BP6gKL4obduXZYcEaNw9qCBXaR2zywCL%2F13YuxWLZOWRLmRcKc02nVjfqGUlyfBOLhuuKluuqenR8HXoaFs7ANqHf9dfNBmBo%2BYvkbsoT9Ec0gh%2FJ63kFTVStzoO%2BDcmuBrN%2Fe%2F7eIrEAnDABm1w5divkaQAaWgTmOWL6gOKaBVJfqjV9Rx%2BqTO2DDpXYA8afRPnil8c9nLjmxQExCmEkUlpLiEJD1bkTMsxmfJwnX%2Fv4wMUA88BNWKt8oeiQZ%2BIoUgmznqjPpgq9qit2N81IJhsgOjGEFHhKVnAwmwgvv8V9P1NaStOsqpI7ZHOnnYSxTQruknxbeu%2BwQSsnMfHSNgAjL8ViTgQWme1TnJeKcnKTVYJewRbyMSU3jbGiKTk6bbs%2BAfS5YtPIwW2ADw71DA3bJclcWKT4QzyHB2xHXwEmXcvNBpSePOY%2FPOBSUiYC%2BEC2uKb5l9oqZo%2FQEFRgQLYf4g5mjSqVQ%2B5UBPLaDfe1htlGC6IGsFexhogmRMScQc3fCNnx%2BYKddeWj23HFpbT2rh5OalM58HILT26pg%2FTH2UTSY5jTWVEZeTxTUdBRC1I9BY3oIlVwbo1%2BW61lYqEcsdMU8ta%2BjIX90tPGP4ZKj4YQHTLP%2BtKOVwpR5GpViuAQBiEdz%2BZHQ9enHQ0Oi%2ByCU4ad1nb64mdG2Q2tueU2zJpuwuNTOWgcaz0Byz0PMqXxb4IDkyu5PJJ4SN4YlPGEHbiellCPLWp%2BjMwuNv0ZzFh49ADS0NTTkp4uTHemvgjS%2FhWYvhx0UgxQGrBxoX79hkAdrZNLDgJ%2FZ8ilb%2Far%2BqwGunY57zCuI8%2BNoi0EgI8SGdNi4IX8WQU7l5bkaPdTaDJizYHSLGNg%2BMII91XQRhK3oSCPiYZy24uEMBBUO%2FZmFnfZNZwJoUzncilEIFIJ4qkdDfOKOfxYAPvhFkvrKKRs2Y%2BiZHtyw%2BOmD6BQsiP8P6pSYWQmKNJGicvfhxOsL7ODC1iU6R6oT%2Fw0tiZ%2F2H8g2HZYG%2BU%2Fy6Zl6ipHK29LWz1Dc07T1S8v5KN%2FB9qpZnXrbrTVaiamgKnmEIOjvGbNmrkowHvmgXmHxl5xfDUh2y4JTPRnNLp86fj%2FgDKIKNmycyrj3286%2BYPbFqaMYWZbYWDgTONQ6p0zpO92jBUjIl0ar%2F4Z3qOPnobtDjHbzfqFdkuz75frKYnjwfK8slE%2B8LnOgPa9jBi6mVDMV5cmtdxUi3AQA7VfkHpWW0hAfwIVKzYxm4D38%2Bi%2FHpNLSCx89pdP7nXz37AAnahCedci6WehK8E%2BNpy6ac%2FVyG3WFRCLHBsLm2l1bgIdzW05RTX1SCpSh2EUxFqhOpT3f5p8MOU55Zz2udjjT51973cAusK3aaAyc11EG7iA7NE3%2FQC%2FTnXD%2FzUMT2kwITbLO0WPk7JyGRkVL2E2pCzjF6cf%2BwylWXl8StKX0meeIRGxm2SwTyWDKvwHtKIj0kwdE7m0tnkW18ha3a20bEkazYnsT%2FnZgYz7egM7Yb1KoVDOgLQj2bVzGuuSbP0u9hHDJ42yVYvpKxavnujfjEbd2p2wBecxNp7o6qNbT%2Fa1m3kbBAsPCPLenScyx8oFa3J%2BzWgVX%2FKeJEP282ebgDyYkeceetRxJP4BxmjjGGJNz9LFWLN4yRg2YJarH7hpttp%2BzVvUT1z2oF17Yq8Wk5L0gAXYdmcXeqd60OZ%2FoHgz%2FnVpJAt5Bs9ArejroT%2F19KY3vLtx484W7F7MMPLIK6la9ZngGTegM%2Bg1Tb5c0g9nuzapxMDvhNrxKHG1qfN7Zde0tcdGJzwKb%2BfdNHtB3ADIX6kaI%2FfALRg19A7NHejTEimVzt%2BEUXwRokD%2Bah%2BeZBS24ois%2FbRQFXRAeevxeJckcpckoaBcK89Rv24TF938ohmdfjzUrxNCqNai5ouaZeoc4NBY1F3By8JFLQXD9s7tQSIrqqQmZd4o1dXUK3niyjdgxr4mcPq4YGzq7v%2FEeuNpZ%2F%2FMe%2Fr30BVRiVjRvLFOsa8HeT06LYvktbWZQlKfd8sD4%2FvkqYzbf2S3z4oU4GZnnI%2F0zedHnUwA1VOMzWdrqV0Sf2pJ99pOCgk60TxKuSaFxZTYrIDFs7O1%2FMNZxWTRdMVE25yMqoxMulRAY2GqifCargGcEl3cfLcQwJKk63uQLjuLAgQNoeSmRtvqGq4WPFwlR5E3o9DE1SVnKSEPvNzDw2OmZjvtbkw146sUTBVHGxBBrRztgTGMbSVkz1GLISBwSQZ1foZ%2BgwYvvPs2lpfQzD2MdUQvQKOnBLouMnofka8WiXvncKi4uCtTz9iq%2BfSp3YTilb8QTKlaUt68zxkP3aOT4QOaPcZ7JsyKLGaliT405SzYzmetArlOJ3Vj47rmanVnLddhII2CrrqID3vchQUhm5TjoFZ7GuYjnRll%2F4E4vsFgYzSnpAPEcnobNC5nHHVgYmLZO0m7MzXtwFU7LYYYO2sBrurTqkr87z1OY5yiZvOyVoc%2BYmm5pSkMP88D0xg6hsUUfbZLdV0%2BSrVwVt4%2B%2B7wGPiAlxeGb8F49UHRpxSi3Ze%2FeAGDLJLAJcY8qgWjUhJHfpAYQYXVnIfQ0oMzTsKnooH%2BES1ruiTQE29g0kpvsy%2BO7L1k1wGNbJP6ve8r0hKRsAvXcqQEdAA8JuXFAO3z46GuGhV5m4U%2FQ4jWpRzeJfeUQUmfX%2BYSjkIUv6pSe6GtHCEUq1gWpKOiCN9kxdVvhnkNeSBqGSfjjYIDUEiaMUviOCy9SdzdZDzMWT2CFqYB4wp%2FpB%2F8l91Inru0ljdK7%2FA62BjFW3skNkBi8Z45Pas5nQdycFoaPT%2FB1HF%2BXbTSl%2BEG5rsIa%2B%2Bqsn1y8LsLhf2%2BWZki47all2C%2BoSlzy6CKV3Sdz1hgRVlR%2BAgkXFYgo0wj1QuPxDoVPgWjTyfwJ%2Fbk2jIx%2BuchJtVZ9FPclaYT78st7sma%2FPM32OqSjvJyJNAAEfvpy1tqsw4Dt2kGaSQX%2Byng809vsZTIPJHLCvwDM5jGooDlOPZekv05xmsfvD8fsEoDC0zSD762GV032%2F1tvlnwer42DZEGLJTcjPleD3PLT%2F4SxLw4AJClxN5j5F73goomrJWTAQSTraDOhx4ijJMDJGujDYQp20SWONxDli7QdA7RDLyajNihXAzxcfK1MmMka8bS6F55C3gKfmlLApmNEv%2BbAoTWAPJ3pNtEWPFHK5EGt29kFV60JocNMK%2F6n1AybcrKBKXShsMtNi4znGwnQ3V1VA0r5ppFMQvyGGRBmwbjebd%2B6Mut32%2BkfQojHJkZoI6GHSWURV9vh1gB%2FS7jEKos8mM2ql7GliHOeqL2xVdwTXeb9j3Ge37rLDd1VpGgQOpky0v4nf4CYAfumRKIfOvePnpangZaycd5Ee4LXc50VrIRRTH%2F3RRgPV%2BdcvlgNMRAp7M7xUPO07O5jhzfuzobqcE2vVaIxnW4E%2FKkxw4f10w9N0YifaiINs9%2FMLwYmlULS%2FlOoWgGLuCe6CUDBXE%2FLnopiILPEHxyR6cujrom6%2BzmR23T8ZKlNlpWGfCBB2K06uLQuxMpf5CCRNPYQtNecQiZOiaOCB7GKtrBlNMZLAeooFnQ3HTJYaFyhFuHQutuUzyMqk7Rk6pKTHTGEJRK7fhKwqImAQcDSYHy5to8s4vJvZZ5H41uMcZeOKK1pZoinVooNT543JQ26QNarwCND9wBZlaEhj240vXt0xtgubfV9Ed8XjH3mIJgcnvtImJHG5D6mgHHxtw8Sw1wWbYy9RZv%2BJVusZTz0yyDs4Wm3wpinRvvwcXOZg%2BHBf3jdr%2FMbFlBmESbdhAc91ZLUXJjl%2B4L5KZX%2B8agilc655uwzQYjWiCtmsBnw66mu6%2Fn3s5d4MXlXf0sGAGloyc60jYedAqjB8sJx%2FDluEV%2BA1Rty%2B88hy4q8YUSmOLzyu49gG7kBaCxb0h2XHUJDKiMk08mPnKE0JaigzcA%2BjaBsy4qrBQP3t%2FMosH4NQqWTaWugIsB3oqXSh2WAhed4q%2FVp1abrf3IEL1EI8XNr%2Bczb1N%2BMWNuaA59VKVG7wvWep03UITogCpySugS7iL%2FGlvU%2B4EsDiyrxybZGYmD7VXWyUufxvy3H%2BSJVo1N18vHxsb0bb5nTtUKYWRtffqE7cld5XQuQ9YTEYkqk8R%2F%2FJVJqQ2jNlGIxwTSyZBnJDdTZyJKKyndVx0C2mNrV5el78LkFlrpK4hZweTexJ4hKnK0hKmcPXLnQWwwaZzFi0qh8Xarp%2BcB8HwVEgxLNhOmeiLm5KyK2KZ2N4cIAU4GLKajhh07%2B6C34L42wvGb4tcHETivIuIIL1AddblxNkvkdzgO0tWlsy70MH0ylkypYFQWPbDa2Djfka6eTEXt5QeVLrxbWbOxLTL%2F4Fh%2BHZmnuanHzeGj1lb1P%2F2KWkDVN3XANA298JLf1lXQcCZWbOZwqQzmHyeCjfuRUF882fXjnyHDcMymzGnguX3Amqwv8ED3hviuFmk63FBvgnGJCUh2qwDmN%2F8mlJCpNnHA5KCFVjFDIwjjp1BKK4WtzgaC4RleqIfMycMMxgu8J2jMVkEcOv2GqavO85%2B99oMCAJRPKFmj3eacD%2BJGVpoegDzYNZsBDYmSZMrsMUw%2FFWnV2qQgoIIftymEwaONVXA128w7MSYq06bJoE2rR49PnoM%2FlPlxy7qSmwvVTV8qOfZolg8JkNthc8j2RajwmU2E0090GVEo1xGGNHM89EI9uOnzV7AhqsW8bzkPh1rFT0PoU5VJG1qgke2YQvfhGIU0N42dUwrBcWCfESbYagOUY6CjEs6dtYxMT6bBXegXiyEvuaYlO8QJit6DzeUKsBKKPVuMs8BzzOMIQ0aZu%2Fg42Rgo36noQmsnxXP5mnIqYmY2Eqd0Dkm7odvmq7feR8vZjR13yf0jJx9rDiEr16e0OC3%2BJ9HoEeUCelN%2BplV8A0%2Fl%2FY3xwWunMLzYjGBI8Z5p9afyqLdB7PeRcNzJDWZueG1W2SL1XkHp4dDIDtGfXXPk1vscGyQszS%2FtdMeIwkDlA%2Fse9OYOCIPvcC2LCJ6Aq1GDh%2FpeUXZWIcvd02NipNhAhDOnei5U3xKnqW4QtbezyeYv2aYs6xOE6i5uLD3hbCgFGelWFrjGocCJiOMcJy%2FNX8fCWTFy5MinnXwDzoV6WS9LuCGUP5MXnGWHxCwLc81AmuZFwOkln9CUZQtjvTfgbAIDDTxWvgfOiGy20pKIrGrwYMQT%2BND60uiVHxWqqTBOfv%2B1Z6WwZQDfWEDSnmv20YhETe9wvUl28R5lP%2FDTQsKKhK0lFVJ8L0jto6qlRspJV17DJ02WZ6WPKlICsn6xqXOlYKHwWjdfpi4TJhWcapPAlbakMiuMTmAEaCdwjnOD4KXEJApVbUrPmMXEf0okqg%2Ba%2Fwwsqc2tc13i%2BKS2%2Fj2Lui7hJbUnVQApiKzHqPfigowIr8YqrHnSTZ6SUPtDq6%2F%2Bf%2FJTQwjcgg64TiU0vigsNg1X8VUTkx5fWThuufKF8HpvxVE6VUbrWKuko7JcPaqZiZP4gblPagiHzPh5CLGE8vCZuKVKqo%2Fm%2Bssoaj7H8pPureCYSrz1EBmnHBv%2BlBkqtxKPwu0O0cnDD9iGT%2Fq41mTOQCjqRQm%2BgIFej766zRA3Zhq7TbsK9fWFFZx23jE2E3LyrZ89kVRnxiDLwdEbhs44%2F%2Fg%2B%2B78mOryf5Kf%2BLEOO%2BX%2F4u2YubePQRVVHmSEfxduhuEe0%2Fq%2FtXeaobyaYy%2BHrT97UholRUnmDPa39QteIgWUU5oFfZ4FP4DvK9nZ47DkJsCSgu9%2FLmkyfGFijsqTYr7PhFT%2F1SP%2Fv1XYI0Iu4qJlKPX5z7CeWpvYl6hsFXy1TbnkbJpWok%2B9gb29%2BnPAlb4tM9kTaNZa8o4FzLpVB9xZw%2F7CuP13Pk3rPhqtM5EwB2pT5sq9Ur95CkdiuKYzvUoMawO07Y5weZPnkTaVR0TrOAUjkgEQKQKvaGhaCfQB9lvq4Oo78KjA0SRpN3uzwr4RyjWqfiTMUdh1KK4vSMHQCAUjPISnL2xDeD2rNOVEENhDGaGLC69MnZaLaXjnp%2BI3kLzffKv9RVfmJ%2FjQzywv6o40OWdL2NOqesQ5ZbfIm1gfMwYiLOfUEs8lou1c9uVLmO%2Bqts4xh1Ckntcf%2Fsznf9S0km5hZUBsWGSroVldAvEoX%2BuRC%2BtY3H2bixGny%2FzDX2b4cAjmvXKSDH4ea81kN4Ka2YUyaQBcpWdTDeg8%2B57kUG2BQQy6yRabE4QY6aERCYT05dMJtJZazuM9hgAoIFF5ZmIswnz%2Bvku0P5OBjCTNb%2BVyBkTnlRgOISOuL0%2BjHp2h3w9GZViMIqM33br2zSZuWqYvDU6XCFz76TTdp1NsM9Orj1cVTDY8NPgqNQA2klXQLg4UvfqsAYGGSmj3EFRmIi3eZed5TqmjlxgPA4dovko0Hc1X0lrp0ge%2F5EdhYGSl5WzYA5UNmzPLeT6zLc1Qn5h61yCKE2FOsRqTfdF8Q%2BoevwTFH1Y6JiywnAWK4eVcrNXvXH2rQgSYxKQjlTZd3PTR%2FRNQKAVC3N8S%2BYVGRXE0NgOFT6XeEl3XhGtTjwdOCyllLNbRckKusY5n6UQBcpICHkHd6NtiE1w519vW40iAMmBF6KaI%2BTjuAHPRKFWT3brZ7JCh%2BF6I33k%2Bs0Mgy6rvKZbRe4UugqXBwDPIi2tgVTyx5HgoNigZKMNMJgM585CMM0wmzM6DsC39v05vg8lhkcpPbHpi0lvzWt7GFCNrgvxqX92z3GfTkmOqP8OzgPDrNuPRSNocUEFO9sIcSGbzCnYURFQ0KoMF44QHGnu4Ju0wMtINYuh49wuH%2Fqmcs9eSgUMtyHJcL0fD404ROUoMhV0oX%2FqWI1L5QHPiQAuDffnKPJ%2BREnIS7iP2DJIJqkOktrwbvai5zOMBXeMtUzXDd4eF7V59M2e825Bxxf6VxebWC1H3unY4Qhkhud8iL83xcxTBbkCETihe8OdsTGsSRm2yIle0Om9hwRSqwkF%2BQRDpjQN1QVf%2FmPmsZ03b9ogd7T2B98gk2lVhrJccXXGTNvEm2NkFiTm%2B6BNxzwg%2FXkT91mlb5hgrb4LyhSyM1wJGff6bv2lt45Agf4Im%2FDPsfbCi5pMxBCTM0BwpKDv29y%2FEea1WyO%2FoSyCt7Qr%2BCXjqwMZML3KPC%2Fhg5EZvo0Hv%2Br7FaXzM0bh1CIVqnKbsNq5aA5cImHRAiCOs%2BFGv7HUhnfNq4w004AEAvMWUrE7E0QGm%2F5bU5Fz0SFcDAfvuyuWOfwLq6SnYiry9Krm%2Fh2Ao7w5U9a68IDyJNC%2BjYp7sIwXwWE3DGsZTvdKc7kGVWcdBm1Y8WyuDSuxHSrwRd%2Fegb5KpqtyV0PKpUwKbIAejA5D6%2Bnn31yiTaJYyUl3dCgekOly1pq0wr%2BdjJ8B1HIJVhP41eMCnS0oJwP250XNxZqPQjlLDFaiItWu%2Bg1L5KBt11Ios2uzMmPiGTNQpBl992qmzrtR%2B6B%2Bu%2Fkq0OH1b%2FbwWTtjmDnnktl%2F81WcuS3gk5o3F9dWPSeywMPTXoTdjZ12gs1eXziOHxBO2aehu2a0w5hKjaGkkEK1ZDGnwYCrVWISt%2FfJpLA6tp02JENGdsFt3oq4Opc6u1uCzxnffCFEfOR9kO9e0nTeFETiib%2FhbPSWFO9jxh3L8n4fFpVHvr5Oe%2B%2B84b9ullpAOpopD0YdTQjPzek2LJi4uqUk2DhHQ4ghwIXXeHFT4GRSTNvZD4iCStVVn2u4bZZQlaREvVmDp6TbQxqxwDWgQJWP6%2BXrXSNs2prhI7WFeS%2FYOmCZixE%2Fnfdd5t%2FCOSLKwz2%2FQaOCaFQDAuj5a3FgfUrJQ35rcUmiGv%2BbnEvCnmYtDTYLV37DLilb%2BNZvsovx99zOwCDRop0aj717w41VMUU3Q%2FxJZBz3WNpkMsgHKKb7KdG9nc%2F6%2FMh7uHkdb2oOwpa5JqReCKKjPp3P9ue9vZtE4m3C%2FdOdfKgTRpZM%2FFGn7RQilxxE7JAa9Y1Mg3Zn19ionZrNsBHwAqu8AfogWScgprNlX6dvFQ8GQDuV3%2Bv3Mb9fYTe9lIsZL%2BMK%2BbWHj0kjWBxgs1ih13Fk9ZF0OWK6zH8NhOkmlKojf5R%2FaDk2uQRO38xoPt9%2BabDJ17x01eaiLNkTOAzYEu8N5DgB8WpyFBJEGHOLElBVbNVFZ7Zg4FxZOyJC7DaqL%2BevHCDY8IjGuWwKIc9DRYXHwEqn%2BGv9VqtQ4UG9zjpKp%2FdGF51I6hkof1CY%2BipZ511cpwToqLJDW5ia0Xkijwqy1i2sidbuQXt9yu%2Fd9spZHq61qrOoOPFAGBDWm%2FycplMjZivfz4jdlw%2B1P9ja0tYu7FlMjYIuyGTHFhaZuhGPfgO7Eh6Br5herDE5SFCeCeDFcCKNS6ZLxjpYm95YDVsE5zRG0xZMJIVHRqN5tUz7VYY%2Bl0E8DB4fvFJiFToAEqw3XU6GDQGxsadGdVZ5ceTsRMCxX8v0H0wlp1DcilSXx5c8zCburssEO0J0phgWUsdup6OkJBnRVPxRtZNAAiLXKN%2BPh9b7HYQf3J2%2FojIHfM5hwpSD35IHlnk5wJMYsTT4U9yyoQncfceKgAu1q6iW2sQqXLDThENfBdfhp8TNGVc4JBgpV3HeYUphw3vV%2FFM23dxw%2F3SfAOvpd5HLHckinic36Pfyef1TGBKzY6eHppNJYjZoeE3%2BM7yqafrBNg6m18DkaYgQKoiNuxcqZPvu01C49kKDY84i4wxOW9ka7dz2JDyjvtl6L8B1xgN4h9atXAvBqghAy9IdYgN9vaGG1zBIMJRsIIHODaqJroEmO5xRnL2SvEnD5ayf3jIRieXxqfb8c%2F2UXdaXLbSgz3zHeUDGf1eHeb2H%2FBNHhSCtvVttYTeUXHX96teJKKVUCPlR3LQJKdAL9l2mxh6QkqMNtyvZe0XvbCOmer%2FIeCqaCMmcFYcFXO6tUsefCAlyBAlJtxBmSBagxkpSTCfv2iFG0t6pe9jtY68lK8by%2FxS6dHXgMw4UfTCD6IA9Oj8VKMaH63pswYPH2XligfWu90J8lZ1hVNeeqIDfESAT7FKg6dZriIWh45ebPwv%2BdDCD9GMeV4DbdzRBqz8Alr8ctFr1e1%2BN41oodWkgO9iBraQqmNil2NwKJWWiV2RgDcr111B4x5inx1GZcAlQb23oc1DorBr34yTAkLz9VWiiBjvC8uMfR3WOJL71y4e2SenKsHvVCm1fxnyFD%2BUDk%2BOWUkwSaxpeVquxAafMFM42Bk7ba5g1sTXluiuknwoen2x2xdom7vXUDCEZSlwLcZcb%2FtB2sTftK2f086cbv4czxXwcPKhdIxSsYQUdcYn5ditiBUJytc61WBAszz9W9fUahDD%2BN5ftdc5HGjpcEzTLmEGpaD4GQ%2Fi1xj%2BSjqCzvoTL%2Fvvbe%2F%2BJc1j6FLO%2FdgGnDcxQ%2FauxRn7waTydRcwVJQTWQqPdkR6EaziR%2FhUcjBbrW30s66AVLTr67hhU1E5iH0gw3j903iIKJPTLML4RE9IPjj7PgOTsCV9AH9Xjxh9OUMVvBGGzLfOQBbm9tiz8JB3p%2F64olqtmB78McHs3ztBC81qhvMzW1WN6eaFUUkfoIKjWrx%2Fjhy5KIYodjZ787HJnP%2Bo8WshBfhm8vc3d2T43WVNBgE7mVTwowIp3xFk%2BcRR7jod4OeaIzjz%2B1icYCs0cS4tGFpwFVllztFeLdDE%2Bnu8Kz8W%2FwkdStlSqaoiLQCsjCrVd1j%2FT%2Fsyxuc7tU7eudmimAHV0Vo3hWuEtULduMsQ7KT92Dk30TYQLSKp%2FR6IFLRDTATPm0s5X2YKORvEXVxH3fkG8eQff9xYdbY2nbhzj59QqFoxe8LojyN2WcrYZEV3Z%2BWJQJsvAeBIaSWYqACJhIVGtdN%2B9JVby%2FrEDhpSCV2A%2Ba4YA1OEGVJBClTsfREBeHpx9HZ7h3zHc6yULzb7SWXasCtN3NRrZDCszpUgXA64Ah9hCvc7bAjpMjznSc664JODRSaMscRfJ6%2FVtrXPWP0hmk8xDlIveswQ6b6yRwOUnMOiQw5CWoumdbUf8FM3f9ZaRucNJdzcvc0nqiwuCVWdzDux2R0e1XYm%2FXDOK5GGEHDLIkMqOuJAb4jBV9VCClcI3TUjZOiswBhFDJa%2BGktnrrknseWGZvyWEkOBeKL0sR5fwvuEFlLnVGkbvG86Z2xsWFYI55f3OQme%2B5b1xD%2BwrVfpJIfvy9TpTXb0HjVYRugRubYO8D5djHX8q%2Ba5p%2By0rcQIAyG%2BE1JNV9nnJLXCLb4SgnuLOYAfpaHn3l6ebkty02B5hBAHCbbzRzY2S1O0vk28IDSJdlYcaY1TzSzckVPJhxAXsy0f2xWwMIkCI1GvjITJ5s3hpe3dyIq2LOM0svtu%2BNECt9WLlkEE2nrDTk5rSmIMEf1hDWFAeOm5C7Yagm2ydVWKCzChgoIzznHElILd9oNuasnp5BU5ta9Ncjzov%2Bk9S8KIIKF6EJuxbf9SUA9WIGJ45i4Hur2UTukDJdsYY3sBWasMyaoyerEmJAt6xGW%2FgqQGx%2BiBb%2FSBrL5IVJx5p02EPjlFg8fYny3N84vWXcQtSNKGv4U9FKih3ar1f4%2FXutRsj2PIWlXCnMcsEdzbaHCZxdvi612XTbVvf8saxM%2Ba6FuqoIT4GhNSq8vBc4oD2Ekr8Y8LmPFWx0trEFtqJq6Bh%2F3YQpH8uUZRcaw1cddJhLIbCqp3q0gox8hUGGJ0ccFhyVT95HuOG%2FZy7ZkT17V4hfL4pL84X5DsoLd%2ByQC7zi9Vq2rb65bPlLboX0b0IlO6xkibY6KggXQALrxYia2lN0jG2DMZkNXppmT31UXgNQoAhKtH8z%2BHCRMLQY1BKkC%2B2QuwUMZQmzWkmMoAJpNGcJX3yz4hN1btp0vExzS9xyiQ6fmA7l23u8mHokWVBltVBJxLkq4nY7ESr1uiu2rTyaK0Gvb9HkXqiKV3ak15UlJyrtSfduUJbsKHlXLj2W%2B2g5YzV9PHR6Wcsk%2B%2Ft4TZHBZWMwKsZWRInevE6oBLbx%2BUUYyO%2BWclyf6bXOqQKTPOxrvoWV7Xybz%2F%2FioP9mWNnZLZg%2BewJDbgZUGHPoSnkRFb1wgdDGCGqlh5dbjxazL4htXJ32bGyYRkw13Q%2BA6wuBFpFNa5RchJ8GcElcbN0DGWi9ZMFuvQVHg7suRl57%2BUwJ07tvjPBP97iQ9UhaKqDJx21%2B8OaJR4rHI6BHcZVgUl9nD8G66DhORZe2BsmJ2tR34vQAXVhg2exAToRyxTwRK5myb5m%2Bwr3eZE6YhR77Lp91vVQhPcBm7vodA7h6RLhBrxx%2BjC%2Biritc08tFAux59LJ5SgKSrb%2BnYuY2Hbtm6YN%2B2gEOO1bfQY4ifG%2BbbVcSowQGvKZpo5rnHgBpxs3dZaFGZSazLs70QDK201outxa9q9JrddeZUKJnZWvr%2FOm%2BinR7d8alL1r5%2Bu1ZhSNfza3eFOm4Wz%2F8CGwNR93r3tEAWJI895qlbtM8iBE6qSxIekgVlr9C%2BoxuB5zYbP4roljDgJXWCwXTHq%2FwEFY5Mfu%2FpGDD%2FWV8sT0jl0BB71AyivelD28pbK9gTa%2B%2BxvavSqo6Tn4FO5GETL1M7ZwRrGVkvim17IM5amlibro%2BS7NdBcUKBCI2Ary2sSAqmEeHRVfS018%2BHXqusmVjqTxsEFAcwzkK9%2Bn0cfWhFSq5olKmdU3kGSDZenVSzoOzrAGGPLIz1qvPW3Fn8oOx0CgnpXR6FR%2FNgplrRZ4yXGLz3nwap%2FCASpxkVOLqiHZYq91AHb%2FAh1fCB8CXs9YUdBSfDglM7dyvmqmdS0abOqOeKKBbHIXe0%2BVtiHROApdGy4vWBwM%2B%2B664K3ThnueXnkDni4uBXyh5KybSCVi35xpc4WWJwVYKVsnrzc32dEblIt6QdZCFxixc%2Fy1fsBj95b9ohMs9IQUGrfqhW%2BSWipO5ozGdUQof%2BI%2BrtjwHYpR%2B2l44H%2F4blOa6SFy57wEpvKwtjdAAwYR6i1I8LLw9orXk6pzSnfK87wFn%2BbwQ0bSuXu8x4swLuQNR3bLAtJyMi5ollHazMFkkvzCNGiCTUGc67w2G0CEYot1TL%2BB3%2FXGUP%2Bj%2FGJ0ZPhyYDu%2FEX0g%2FjK9yW9GC1K7oGEuJl4iTgAJ7vpHgy0X4M%2FzNyPZrnQ07T4iPVCG%2BytGg257JXzaZeppI7GvtCyECxFHdrp7PKgpwwqDf2WPcYcvB0zF5pFU49w4%2BNLg%2FfDO1%2B%2BUOo7Ou6fR2C4X2pWcCac36O0rZB%2BqnlbwVwpaETwm1QLhSZtbQNZQsjeaoqDup%2FfgW4poBuTrj63Q0M7m4TVk1TCCkhJlGw8W90Ly18vVUKd%2Bw74ph%2B%2FQoJkGzCHHKkc2cwyxsz1SnMhYdICknzN4RaoS0Yjv1VUa%2BWmabcnpxyOT8n1XASf3pW4rGhDiKaqpO2sXIG%2BXSoeGH0JIPJQYI7573gJMwPa3ScElk0p1%2BWdR4egJk7t3LDGqUPsbVlHuHLMls6NDd6OoFagv%2BtNc7QiyozsN3Eep4bq0inTEdWvU8YXBd0WyolsqrZuYN58AFtCLrKdSINrOIW1iiJk%2BXOnJJFMge0VU6yWCiHZejKRTEY%2F7TGaQh5QJZImmKGe5r6LhCStoMtvzH4GN7daMp2NdDSaxVcxlWuu%2Bah9aLByHgkVILsqeRaRBHj1e5kpag%2FnJ3%2B9L4cmpVyGB7h%2BhtpRhV1x3MdXpMI6W4ZyE2Yx97%2FMY7A%2FOwR80BXtZJB%2BUvQ3KmROYejTWjJy1bKVy50Z1o7s09I4%2B7evpby7nEZ2ed7KOImGEpUms2vxinS5dBEBzyRZPqAmehJR0T6VgoN8gFDgU3shfjmkJrzFgZ%2FPhSbbD2MsNOZ8xfh70GOJ3RvVjcWKjnkvt8r1EHbD5r6wSuahgFsIoGq8Yc6iUzcC9Q45NzdqXZ7%2BRlHiy4liaDvdah4EZ6zqhKI9WQd3jPV%2BhMw6AxwIkfBClVuk7GuVxcAYVSZaLEPTCVNxunR40LzZL5c9%2FXINxxSjwtkn7EhUKud60p3NtILzk5hUeSeQE6QYMsqmX5t%2FcbedsnOoqQ9S5o9scXhiHuC07aPpXqeWGOojCcBbN6WAYZ19cMS3E%2F%2FN3boApmO0EAWs3t7Wwok7t3s%2Ff2RaW0HzFKk68HWyyxzJQk8h2FIMx98HCrU%2FafEb37SL7ZkYiYPivB6hNnKECB%2B%2BfFfEJUetiR12ItYNnbmk3cAaeX3PIpzZ2jHfadDiIKbkuseUrJx058Fr%2BzjTh95Z%2FMewG0%2B1OxphPncFN1FwL5lSKwMpYHocMQAKa21a%2BvcYYQV1mapEor4d%2B0L2LfcOb8EZoSJyYvXD74kKK1VVNJo0yjoBNEmSxXl3Hn2kj8ZUrm%2BaZJKgvGnr4vNebXX1et3N0ytVLiKIhgfxu17bmZ3OnPyWu1Lj%2FJn4PRmca2pkgby9jZFFo%2FC9ChnxcTMOO2WkGtui42jyJMlJXjabWxEPs6gyjPGU%2BcmOH0iDf5%2Bskw%2F5H%2BooXKeaYp8ZHx%2B%2Byp%2FHY1qJ5qrzfMYMBqiWFn45EiH0xpeeGyplRF29HA7vxwRdBXgFwVt6ktAOGRnUY1Xwzp%2BKH8hKFT8weWlmwXUluqg3yF6ctrMkbU67K529FUGD9WORNOGfY7WFnO%2Fq7UpEDsm1OTA4blPoggxykwTLaM%2BfSQDugR%2B5YQKcFNZLue%2Fc0D2HcOl%2BMnlbJv5s7o6uaz59sRb6eALpYiSe895BWifR98oRwDGSxYNVUEjt0qYldBtyQehB7F%2B1upge2T1REfjNIhlHTJkHLOodqWxIoXnG%2Fi1PuI39ppvi1tuu%2BRxhF84fgt1t95iTG3DXkk2SVklxEIALugu2nQl%2FlvhzHQRjo9tHctEg%2BFro2Lu3CQ6ieui8P6ZU8OOoND6YD%2FGsl%2BA4A6vp89VINmDeVoBgwoGcDbekd%2BEH4h67azkl810eqthw9zDLZ2QkTeZaVDNZt9UjLcGCgQsZ4ANjDZCQ0KkgjAUyPT7HeXIuF3a4L%2BkdNHRYfgWpMAJLDL3NGLCnHArIgW79kDe6DEmOAojoS%2F5XyVcVh%2F9%2FHmXTsYaxUSrHY1u0ovAfUgDhJkHaP1vwtxG4PPOXhNhZwHIE4XKg5Dw3gsldAL2OmPIkGA7wWn9Qd8FZOanozbdPR50OuqrmQipx6dQ8Qjl5%2FQXXRKNH4EZmC34du%2BP8ve%2Bb1n%2B0%2BHmXqE3LtAEUkVBjntjGjstF%2FzVINmO9vBM5hLhUhP0k1Du6%2FolIFvnwKvQbzK67uX8xdJs20iD0Cpjy4CsRwUie8IIZnKzO3Nx%2FxaSM5Lh%2FkBIKByHVjANLYR0r9ENlJLCabM3VyToH2CUGyFxtKy5mGFG4TFPmfGbSybAOaKOm2xRm15ouOqEIgaETRDeTXGvThS%2F92vCimOCIUym6SLs8SXNXxhnsw1vz6IEjB3HFPdbefX04Gv4ywRMH%2FFJyY1Sg6bu6oVAX4TbiP27gR2a1xH25je%2BRW15c4Ug7AVdyG3sOc0xjEImRXDl3ztVoTqQ0GidtWkgYNuwMR06pFO%2BBBR2%2FOVqX7wY5yHYJgDn1YSTfqNF%2Bag2UjWm8CBYhrTbLHI%2FVQtNKPtbktKcVYfLMI2uHL0MbjXcTekC4KAPGkHhQEbENY%2BELTemWkbQkqe4jZWrJ5bMoaOEb3c%2FprG6OBv1uGKb9yRhdES8SWGbrG%2BxkBDqDEO63ovrZ2KlKxQb7CGiDmVuiuVqhs8A%2FvR%2B%2Bar78xa8uRkHxjZY7J80LSy6kpKY3QwOe1%2BAV%2Fm5k0j8KwiJqlUbtKC7uxwMAOPgTovjKrh958w7DVy1wn5SyAP8rZcLIh2bJ2zVX8Ctv%2BmMKjXqO%2Bsh8Sr%2BdbWtDgF2pV4bqVPIRWWgC9Um2VtJTzUz5oluNFyQ0zpqaPKs4CgDA0KxbXMt3weywR2r2ePrV6%2F4bDj90z%2B%2BO08KvNJA6HWD5GQ7d6PS3VAUXJziWf3ijnD68hmc3G%2BG9hheQlZA2BOcJCJa4Xp5XDI7Rbmk1LvX1hKAt%2BwTAdKpIPLjINpKekxuIRdQmK0837SOxtS3iz1bBKsvPSulPxGtMyjC98iB8YtHnP4vQTJwCd7VRZkO7Y7fffmbkJrG4V4s%2FnX2mWaKvgrzXSSNcDWYW%2BVJ55LLqmHp1hwQePaf9v1ZF1FNMujLJqwQ%2Ber0u9V3E0hoim8%2F3b6tmfPHcD6D%2BFtKmigWvROpnaFSZZaZ4dREvwzS5oZ4wIJaCH%2FdQQG4eO37RKhODpOCVhzLFJvSQscFSRYsXEvlhI%2BIuQhmIfCORXZz%2BMJbqfSSYRRWgYZ9Fe6OWSkQRYBrAqMlu1d7k07qk8Qk2hJ5k7Y0i3irWjWnmUJ1g4gaWz9GQXmtcjoCzdTLGnOAMS7XYfUCiAo6Bmg%2FTrSmc0WPOq84MCm7%2BYwYGuWTrh7y0yYnLRZjOfFsP8d9gKPY55Gvk2ywrwsARCH4TnsL6hH0nZlX1NbHFyhrpN2o%2B8Bl4jqRmoc%2BZphrbljXhwIQXeZI5Xu3YjhGT3cEfn%2FocF12MhH%2FaJOgQq7G7lbyci5xfHB7cu6YCgipJ1%2FKzamKTmPNUBF9iG3XhbB9WpBYCqXRBwMcPxJ0KTqSKH5sPOhSM4aIO9pEQGcf6npVXGrB3rbxrri54h6MQrz6A%2Bv6SXnXqSjRmiHLdwI7Qbxawe2MAi4f9RQFVEyhrMNpwpdUqVRlzoJJduXKtzhgvhLksv63aVv9l7Ed6ECxiN50aZE5tODPhzeiJ8gcjj9NrfW5j0xV7fjWwY4UnQ6vyh3%2B5v9CV1gRfP%2B9shR%2BQLpsxlc61xg4nge%2Fe085ZD%2BiM%2BVuoQniZaF3fjE847qLLkqVqgZu0S8kwzMLYRDMJhPzNmCUjIJyx0gXRuBlmhkUKBFwo0ZVS9rno7XColJlxSOhKq%2BOE2lMn9TXKHcWq6jtCIuLv999CNJBXzCr%2B4Y2c%2FiuBjWDpvQMAS6btbA9jCA4dkR5YVCmB45OK5kdv1k0jus%2FgE1tsPlOu6LjcvlpIWvJgBppWjsUbGmkozM06uiWIHjKX327RFbnd7f41ljLU6FwVCSvb7LV5qPd5TOa%2FQwFzNZYgc0n37dJwKMkb1T%2F1senx90Ja9S5MM4xXnga1cPqxKUBw0ol%2Baz7ulDZzGVcWx1poyLwVDOmcwGLAnecMijG8rsm%2BLKD1t1WEeUpfxUsXbqzUslqJOobtA2sfje00u8e%2Batm5AHtem1MaP4XjD5yazxzkgR4%2BW%2Bo0Tos3N31%2F5AIPZr0jXx4Y23xTUmW2C7e0jb5%2BruP4EEkrlYNQAKcCpwXJAosjyHL3RwUXBe12z89uvJT9cSSu2fVPLbwcdjYy8l8aVFuGXjc2Y%2FSJd%2BpZD9xew1OmCjv00M%2F839OymuuLcMjWOmq439pyrPxuk1s68kCATYh7YEB1I02dl7cchD1KkiXeyBWJMZHqwQ4E5rnIYF2NdZ%2BVtlBnjWRvkqWJ3%2BoayPn9wDu7d0RRhpt4WlXMh%2F1nS97%2BEpDFZKVfRaMGgZ4UTLQLxSPqmnkS0TB4IUN5EmGkqkO9fJeNaaa6%2BoP7Zs0%2BXvdiYw5vdl3T%2FZGNBuNleJcb5%2F5sJZ1uKqkeFGMMCQbuPHEB1fCmG%2Bg6C%2BpqK0qDilCn%2BHi%2FxfzFyXdaHd5Ysz8W2JRDqsQy3KKM58rrQS3nOz1TCVp3CPL1Ua4tgPUap7%2BtX3pwr2cCDreduEJe6P9dCaib%2FqkLTc8v12AVq1VQOYB7xgJgkTzaf9Qtfgx8gw5lANz7XKu7c87IDwfS8%2BL2w8UDUTWWzLRCuIhCwa4EaoUSiiMXE7X8Srf3aDF4p6xEn1A3OhpuK%2BMPE1TqpOoKOy45E%2BvItKTTb4Xe%2F6YDiRYNMWhIlS7tkNQ911Bvj%2BpH8DnxPr3SbPBPYU1qqPUdozc9%2F15zAfoIeK7RMINGGIS1E8%2FgARk%2FdfGbDHN2RPdmakz6J8zTELM%2BalzMCAx6lgOfrEp2Q8FFteLN8smm4EPjr%2FdRXp9rasrCEpl0dbqEoBp48bJ3b8dLWhflOHkXkYWftOeKsKRNMXP2tZrCF5M7XAm51CCAnS%2FBaRcS8OavHKy7bVfviEWVTixukKzC2WXzCG5mi1ZNjSLNjxWweSZsC%2BdlwITinzicpSr56WLoU18QuZj3IAo%2FCfVORhyU40biw8jcNgyMJthStgOj3fTN5bRgeE7OCQDOYuZX9jCUvueQKROuStQ6Fsa7KRL9j72SUir7RKQbKgS36HQdiawb2lNyz5elkvqqYKpbgndUz3s7fh%2Ffu9FW6g%2FBcPoBZuCrwMCsUERXqijmK8g9RKdEoy%2FZt617qjvfDdP417FGq5tsH5RFmIEw2QGMU5y3siX5ur5otPbJHZPnZe5X%2FDjQWG5JtgtOBezWCP1Fs9azqsMvypo6o1LYgI0N9OMczhs1sgteylgEvnesckCTHlpuJ7rox4cs2tmt%2FbiK4mcHFqLw%2F9CC3IisX7Epcpwxa7FBPxk1h2SvFtcxGEE7woajzmMZqVSBS5sJKtdPJz81ac7skmoEPjF%2FBw3wsuAD2YZOrGJEZpxdXCVGdCfy3pXLsWgYC3E7m5SG%2FDDxaSl9Gokx%2FDFXC%2BnsbVQLWq5SGNBMH4CgJjWn37cA9EfGaKTVz2ObmitM6yYVTH%2BfMviMDDeuZoj1ED%2BLWi2ZvX5rJ1gmp%2FLTiYkW0ganzGgUdAnq4Z9qxZ0LTmSoyViCvpA%2F8PqU%2F6Qt2ZbPN%2Bh%2Blc%2F5TA9L3Pj6KbiTkYCqjHb9OuD6es%2FnU06kyav7bs%2B%2BfD7TIAwjFRPgMLfEw%2F99%2BPmLs%2BUPluxyniAd2lMxyhsrTpJdk%2F53kosAfqRBOnK0LWB%2B0ME6ysnIb2l0q5Gl5tocRptJJ9hO7Q5upFy9fTqkrh%2FpyIqxaAfue1treBIHHrcXsBi6LINCAQ%2B8c%2F4aKotYjtqB%2FmeCvNuqPvRfCZ0CxFsnVBmXF5dIh5%2FcYUAANw1HYXjIftpvR2esvj1UjfWUShhtTUyblzm9kD%2BqjCGH9XZLQ91zawHoY%2Bpy5cvrONmsv98tZm5Kp5UMUVfan9onuypL0OLlJnESswiYNd2qLdvMvrfw6VFGC1NNS3NlrGGFWT%2F%2Fw6bhxLxMIiw%2Bcc2qW3Lk2ITTaguwVRybQn8V7WC%2FnbdUJ%2BFnLE5M%2BWSR1h13IWvxSKM3sXAFtZxz9JEMkyyPLYdVHL90D%2B3i%2FRxT0i5Y%2BKghFOJOM2UhSP5%2FiTFpUpTfZYNlq93dWGdkNqO2KlcdFjhw4vyOKwDSD0xWlheVJ4zGCfcpiEV1P%2BNdJxB1DzWsj94Afu3oS4I%2BQItCJTviOKfy2sH5PSRIgGgOnCITylU5v%2Fl5xTkwNDc6OEoq5Ri6HuC4ircbiW2qQY%2B28U455Z4pbUa6khlCGWD1sdOEiG8jspnfQWlkguspWZgEWiQ4h2vwa5ZlI9rHxKhnepxY608faO9grvRK9IEFxMvxJfd6%2Brn4RAObdUGhOEu5%2BnhuTcDAxibx7%2FDkNXUxNhtpOomVxZVp%2By4pM2ZGllB8ly1stqygQmtYKA69Z1MtK7DASsCIvs3tugEAnfg0GPYgDOkHaNPomubWxmFSUfKjrByX7t%2FT0AGHxuoxfbMQTyEJVWmt%2BUw4aG4krfiDRPQnKElYS3Kb5YLEuDEILkWkCV%2FkrxLYkj9MuPaLWwOc2RU4INpnhDL9PjbviK%2BqR145%2Bo93HElQHJ6BlkEj63AUicJChy9MKNJjeFpv%2FlxeNYqlMbMQa0Q8lEcqG%2BYtvfQW8s4L8b5NFLGSXJPO5L94OHnfehtC5FrpfE32wvvnEob7OPW9EGPq3DpCYe0uU6WfOeZmdNAhuElWnAaYCMuJjowj%2Bjp8Clpu5R94pf1HYhhwikQvJg%3D%3D&&__EVENTARGUMENT=" + pageNo; conn.getOutputStream().write(body.getBytes()); byte[] buff = new byte[62768]; int count; ByteArrayOutputStream out = new ByteArrayOutputStream(62768); InputStream in = conn.getInputStream(); while((count = in.read(buff)) != -1) { out.write(buff, 0, count); } conn.disconnect(); return out.toString("UTF-8"); } 是不是body有问题: Exception in thread "main" java.io.FileNotFoundException: http://ggzy.jiangxi.gov.cn/jxzbw/EpointSecurityError.aspx?ErrorType=CSRF&ErrorMsg=Cookie%ef%bc%9aNo+CSRF+cookie+supplied.URL%ef%bc%9a%2fjxzbw%2fjyxx%2f002004%2f002004001%2fMoreInfo.aspx%3fCategoryNum%3d002004001 at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1835) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1440) at zfcg.ztb.JxztbActivity.getListData(JxztbActivity.java:127) at zfcg.ztb.JxztbActivity.ListData(JxztbActivity.java:68) at zfcg.ztb.JxztbActivity.main(JxztbActivity.java:30)
nutch配置出现问题,请大神求助
resolve-default: [ivy:resolve] :: Apache Ivy 2.4.0 - 20141213170938 :: http://ant.apache.org/ivy/ :: [ivy:resolve] :: loading settings :: file = D:\WorkSpaces\release-2.2.1\ivy\ivys ettings.xml copy-libs: compile-core: [javac] Compiling 180 source files to D:\WorkSpaces\release-2.2.1\build\clas ses [javac] 错误: 读取D:\WorkSpaces\release-2.2.1\build\lib\commons-io-2.1.jar时 出错; error in opening zip file [javac] 警告: [options] 未与 -source 1.6 一起设置引导类路径 [javac] 1 个错误 [javac] 1 个警告 BUILD FAILED D:\WorkSpaces\release-2.2.1\build.xml:101: Compile failed; see the compiler erro r output for details. 这究竟是哪里出问题了呢?
hibernate数据库操作,总是报空指针异常
if (user.getUsername().length() > 0) { String hql = "select * from user where username = : username "; query = ses.createQuery(hql); //这一行总是报错,是不是查不到数据库有东西 query.setParameter("username",username); List User rt = query.list(); if(rt!=null){ req.setAttribute("register_error", "用户已经注册了!"); return "error"; } }
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私有的数
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
此博客仅为我业余记录文章所用,发布到此,仅供网友阅读参考,如有侵权,请通知我,我会删掉。 补充 有不少读者留言说本文章没有用,因为天气预报直接打开手机就可以收到了,为何要多此一举发送到邮箱呢!!!那我在这里只能说:因为你没用,所以你没用!!! 这里主要介绍的是思路,不是天气预报!不是天气预报!!不是天气预报!!!天气预报只是用于举例。请各位不要再刚了!!! 下面是我会用到的两个场景: 每日下
死磕YOLO系列,YOLOv1 的大脑、躯干和手脚
YOLO 是我非常喜欢的目标检测算法,堪称工业级的目标检测,能够达到实时的要求,它帮我解决了许多实际问题。 这就是 YOLO 的目标检测效果。它定位了图像中物体的位置,当然,也能预测物体的类别。 之前我有写博文介绍过它,但是每次重新读它的论文,我都有新的收获,为此我准备写一个系列的文章来详尽分析它。这是第一篇,从它的起始 YOLOv1 讲起。 YOLOv1 的论文地址:https://www.c...
知乎高赞:中国有什么拿得出手的开源软件产品?(整理自本人原创回答)
知乎高赞:中国有什么拿得出手的开源软件产品? 在知乎上,有个问题问“中国有什么拿得出手的开源软件产品(在 GitHub 等社区受欢迎度较好的)?” 事实上,还不少呢~ 本人于2019.7.6进行了较为全面的回答,对这些受欢迎的 Github 开源项目分类整理如下: 分布式计算、云平台相关工具类 1.SkyWalking,作者吴晟、刘浩杨 等等 仓库地址: apache/skywalking 更...
20行Python代码爬取王者荣耀全英雄皮肤
引言 王者荣耀大家都玩过吧,没玩过的也应该听说过,作为时下最火的手机MOBA游戏,咳咳,好像跑题了。我们今天的重点是爬取王者荣耀所有英雄的所有皮肤,而且仅仅使用20行Python代码即可完成。 准备工作 爬取皮肤本身并不难,难点在于分析,我们首先得得到皮肤图片的url地址,话不多说,我们马上来到王者荣耀的官网: 我们点击英雄资料,然后随意地选择一位英雄,接着F12打开调试台,找到英雄原皮肤的图片...
简明易理解的@SpringBootApplication注解源码解析(包含面试提问)
欢迎关注文章系列 ,关注我 《提升能力,涨薪可待》 《面试知识,工作可待》 《实战演练,拒绝996》 欢迎关注我博客,原创技术文章第一时间推出 也欢迎关注公 众 号【Ccww笔记】,同时推出 如果此文对你有帮助、喜欢的话,那就点个赞呗,点个关注呗! 《提升能力,涨薪可待篇》- @SpringBootApplication注解源码解析 一、@SpringBootApplication 的作用是什...
西游记团队中如果需要裁掉一个人,会先裁掉谁?
2019年互联网寒冬,大批企业开始裁员,下图是网上流传的一张截图: 裁员不可避免,那如何才能做到不管大环境如何变化,自身不受影响呢? 我们先来看一个有意思的故事,如果西游记取经团队需要裁员一名,会裁掉谁呢,为什么? 西游记团队组成: 1.唐僧 作为团队teamleader,有很坚韧的品性和极高的原则性,不达目的不罢休,遇到任何问题,都没有退缩过,又很得上司支持和赏识(直接得到唐太宗的任命,既给袈...
Python语言高频重点汇总
Python语言高频重点汇总 GitHub面试宝典仓库 回到首页 目录: Python语言高频重点汇总 目录: 1. 函数-传参 2. 元类 3. @staticmethod和@classmethod两个装饰器 4. 类属性和实例属性 5. Python的自省 6. 列表、集合、字典推导式 7. Python中单下划线和双下划线 8. 格式化字符串中的%和format 9. 迭代器和生成器 10...
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外
ES6基础-ES6的扩展
进行对字符串扩展,正则扩展,数值扩展,函数扩展,对象扩展,数组扩展。 开发环境准备: 编辑器(VS Code, Atom,Sublime)或者IDE(Webstorm) 浏览器最新的Chrome 字符串的扩展: 模板字符串,部分新的方法,新的unicode表示和遍历方法: 部分新的字符串方法 padStart,padEnd,repeat,startsWith,endsWith,includes 字...
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/ 
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。 前前言 为啥今天有个前前言呢? 因为你们的丙丙啊,昨天有牌面了哟,直接被微信官方推荐,知乎推荐,也就仅仅是还行吧(心里乐开花)
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca
Python爬虫精简步骤1 获取数据
爬虫的工作分为四步: 1.获取数据。爬虫程序会根据我们提供的网址,向服务器发起请求,然后返回数据。 2.解析数据。爬虫程序会把服务器返回的数据解析成我们能读懂的格式。 3.提取数据。爬虫程序再从中提取出我们需要的数据。 4.储存数据。爬虫程序把这些有用的数据保存起来,便于你日后的使用和分析。 这一篇的内容就是:获取数据。 首先,我们将会利用一个强大的库——requests来获取数据。 在电脑上安装
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东
破14亿,Python分析我国存在哪些人口危机!
2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。 猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人口红利下降等。 今天我们就来分析一下我们国家的人口数据吧! 更多有趣分析教程,扫描下方二维码关注vx公号「裸睡的猪」 即可查看! 一、背景 1.人口突破14亿 2020年1月17日,国家统计局发布
web前端javascript+jquery知识点总结
Javascript javascript 在前端网页中占有非常重要的地位,可以用于验证表单,制作特效等功能,它是一种描述语言,也是一种基于对象(Object)和事件驱动并具有安全性的脚本语言 ,语法同java类似,是一种解释性语言,边执行边解释。 JavaScript的组成: ECMAScipt 用于描述: 语法,变量和数据类型,运算符,逻辑控制语句,关键字保留字,对象。 浏览器对象模型(Br
Qt实践录:开篇
本系列文章介绍笔者的Qt实践之路。
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ......
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。   再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。   下文是原回答,希望能对你能有所启发。   如果我说,这个世界上人真的分三六九等,
为什么听过很多道理,依然过不好这一生?
记录学习笔记是一个重要的习惯,不希望学习过的东西成为过眼云烟。做总结的同时也是一次复盘思考的过程。 本文是根据阅读得到 App上《万维钢·精英日课》部分文章后所做的一点笔记和思考。学习是一个系统的过程,思维模型的建立需要相对完整的学习和思考过程。以下观点是在碎片化阅读后总结的一点心得总结。
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合
雷火神山直播超两亿,Web播放器事件监听是怎么实现的?
Web播放器解决了在手机浏览器和PC浏览器上播放音视频数据的问题,让视音频内容可以不依赖用户安装App,就能进行播放以及在社交平台进行传播。在视频业务大数据平台中,播放数据的统计分析非常重要,所以Web播放器在使用过程中,需要对其内部的数据进行收集并上报至服务端,此时,就需要对发生在其内部的一些播放行为进行事件监听。 那么Web播放器事件监听是怎么实现的呢? 01 监听事件明细表 名
3万字总结,Mysql优化之精髓
本文知识点较多,篇幅较长,请耐心学习 MySQL已经成为时下关系型数据库产品的中坚力量,备受互联网大厂的青睐,出门面试想进BAT,想拿高工资,不会点MySQL优化知识,拿offer的成功率会大大下降。 为什么要优化 系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢 数据是存放在磁盘上的,读写速度无法和内存相比 如何优化 设计
一条链接即可让黑客跟踪你的位置! | Seeker工具使用
搬运自:冰崖的部落阁(icecliffsnet) 严正声明:本文仅限于技术讨论,严禁用于其他用途。 请遵守相对应法律规则,禁止用作违法途径,出事后果自负! 上次写的防社工文章里边提到的gps定位信息(如何防止自己被社工或人肉) 除了主动收集他人位置信息以外,我们还可以进行被动收集 (没有技术含量) Seeker作为一款高精度地理位置跟踪工具,同时也是社交工程学(社会工程学)爱好者...
作为程序员的我,大学四年一直自学,全靠这些实用工具和学习网站!
我本人因为高中沉迷于爱情,导致学业荒废,后来高考,毫无疑问进入了一所普普通通的大学,实在惭愧...... 我又是那么好强,现在学历不行,没办法改变的事情了,所以,进入大学开始,我就下定决心,一定要让自己掌握更多的技能,尤其选择了计算机这个行业,一定要多学习技术。 在进入大学学习不久后,我就认清了一个现实:我这个大学的整体教学质量和学习风气,真的一言难尽,懂的人自然知道怎么回事? 怎么办?我该如何更好的提升
前端JS初级面试题二 (。•ˇ‸ˇ•。)老铁们!快来瞧瞧自己都会了么
1. 传统事件绑定和符合W3C标准的事件绑定有什么区别? 传统事件绑定 &lt;div onclick=""&gt;123&lt;/div&gt; div1.onclick = function(){}; &lt;button onmouseover=""&gt;&lt;/button&gt; 注意: 如果给同一个元素绑定了两次或多次相同类型的事件,那么后面的绑定会覆盖前面的绑定 (不支持DOM事...
相关热词 c# 数组类型 泛型约束 c#的赛狗日程序 c# 传递数组 可变参数 c# 生成存储过程 c# list 补集 c#获得所有窗体 c# 当前秒数转成年月日 c#中的枚举 c# 计算校验和 连续随机数不重复c#
立即提问