身份证号校验工具

合集下载

身份证阅读器

身份证阅读器

2011-12-24
神思身份证阅读器
型号: 型号:SS628-100U 型号: 型号:SS628-300C
型号:SS628-500 型号
2011-12-24
神思SS628-100U硬件优势
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 外形美观、体积最小(射频设备体积越小,设计制造技术越高)、重量轻; 采用防磨喷涂技术,刷卡摩擦1万次,不脱落; 自带蜂鸣器,读卡后自动蜂鸣提示,无需计算机外加音箱提示; 功耗低,可以通过USB接口取电工作,减少外接电源适配器; 接口丰富:有USB、RS232C(缺省波特率115200bps)两种通讯方式; 任意角度读卡:采用射频磁场导向技术,0~90度都可读卡; 居民身份证阅读距离大于5cm,无盲区,对四种芯片的身份证卡兼容性好; 灵敏度好:从读卡到显示信息的时间小于1秒; 工作状态显示:设备上有相应的电源指示和读卡状态指示; 产品具有掉电、过流、过压、短路等保护措施; 可与专用接口设备实现无缝连接; 通用性强:全面支持WINDOWS98以上版本的操作系统; 开放性好:提供完善的SDK软件包供系统集成商进行二次开发,支持 VC/DELPHI/VB/PB等开发平台。 14. 稳定性能好:应用专用测试设备,在一个半月时间,24小时不间断运行,读 卡100万次,读卡出错率为0
2011-12-24
名称
神思SS628-100U 神思
神思软件读卡界面
2011-12-24
数据查询界面
2011-12-24
新中新DKQ-116D
新中新DKQ-116D身份证阅读器采用国际上先进的 TypeB非接触式IC卡阅读技术,通过内嵌的专用身 份证安全控制模块,以无线传输方式与第二代居民 身份证内的芯片进行安全认证后,将芯片中的个人 信息读出,并通过计算机通讯接口和安装在计算机 中的阅读软件,将个人信息和相片进行显示和存储 等操作。

神思身份证阅读器使用说明

神思身份证阅读器使用说明

神思身份证阅读器使用说明身份证阅读器热销品牌-神思SS628-100,生产商是山东神思电子技术有限公司。

是由归国留学人员领班的民营科技企业,注册资金为5000万元。

其公司生产的产品包括通信终端、识别终端、支付终端等嵌入式软件。

能从数百家企业投标会中脱颖而出成为生产身份证阅读器的“十大厂家”,实属不易。

神思公司潜心在嵌入式软件领域研发,专注认证识别技术,经过过年的积累,在智能识别终端领域,拥有了包括S-7嵌入式操作系统在内的一系列具有自主知识产权的专有技术。

神思SS628-100身份证阅读器就是其代表作品,可以快速读取、验证、上传或存档二代证IC卡内信息。

产品结构设计简单、坚固,方便易用,性能稳定,适合长期连续工作的使用环境;产品采用RS232或USB接口,安装简单,并可利用USB接口供电,无需外接电源适配器。

深圳研腾科技有限公司销售的神思SS628(100U)身份证阅读器以其美观新颖的外形、稳定的质量赢得全国用户的好评。

神思公司是全标准一次性通过公安部检测的唯一机具生产厂家。

在公安部组织的可追加地址型机具招标中,神思又以优异成绩中标,成为具备读写身份证机具生产资质的三家之一。

公司进行的连续测试中,不间断读卡100万次以上无差错。

迄今为止,神思验证机具开箱合格率达100%,故障率<5‰。

产品特性神思SS628系列二代证验证(阅读)机具拥有自主知识产权,可以快速读取、验证、上传或存档二代证IC卡内信息。

产品结构设计简单、坚固,方便易用,性能稳定,适合长期连续工作的使用环境;产品采用RS232或USB接口,安装简单,并可利用USB接口供电,无需外接电源适配器。

产品采用了基于SAM(安全模块)的加密安全机制,通过神思公司自主知识产权的RF卡读写模块,可对二代证快速解密验证与阅读存档。

软件提供多平台开发函数库,便于用户二次开发和应用。

适用于公安、金融、电信、邮政、教育、民政、旅居、保险、娱乐等多种需要身份验证的行业,可实现客户身份认证、客户信息自动录入,完善客户档案,提高服务质量与工作效率。

用sql实现18位身份证校验代码分享身份证校验位计算

用sql实现18位身份证校验代码分享身份证校验位计算

这篇文章主要给大家介绍了关于sqlserver数据库中伪列及伪列含义的相关资料文中通过示例代码介绍的非常详细对大家的学习或者工作具有一定的参考学习价值需要的朋友们下面随着小编来一起学习学习吧
用 sql实现 18位身份证校验代码分享身份证校验位计算
身份证校验码的计算方法
1、将前面的身份证号码17位数分别乘以不同的系数。第i位对应的数为[2^(18-i)]mod11。从第一位到第十七位的系数分别为: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 ;
2、将这17位数字和系数相乘的结果相加;
3、用加出来和除以11,看余数是多少?;
4、余数只可能有0 1 2 3 4 5 6 7 8 9 10这11个数字。其分别对应的最后一位身份证的号码为1 0 X 9 8 7 6 5 4 3 2;
复制代 代码如下:
with t as(select '34052419800101001X'id from dual) select id from t where exists(select 1 from dual connect by level<=length(id)-1 --17 having mod(sum(substr(id,level,1)*power(2,18-level)),11)= case substr(id,-1,1) when '1' then 0 when '0' then 1 when 'X' then 2 else 12-substr(id,-1,1) end);

JavaScript正则表达式验证身份证号码是否合法(两种方法)

JavaScript正则表达式验证身份证号码是否合法(两种方法)

JavaScript正则表达式验证⾝份证号码是否合法(两种⽅法)第⼀种⽅法:在⽤户注册页⾯有些需求要求的⽐较严格,需要对⾝份证js验证是否合法,通过此功能严格此系统软件,从⽽过滤到很多⽔客。

下⾯就此实现⽅法给⼤家讲解下。

很多时候我们都是通过⼀组正则表达式来判断⽤户输⼊的⾝份证是否合法,那在⽤正则表达式判断之前,你对⾝份证号的组成有多少了解呢?下⾯来说说⼀个⾝份证号⾥⾯包含了多少的信息: 1、号码的结构 公民⾝份号码是特征组合码,由⼗七位数字本体码和⼀位校验码组成。

排列顺序从左⾄右依次为:六位数字地址码,⼋位数字出⽣⽇期码,三位数字顺序码和⼀位数字校验码。

2、地址码(前六位数) 表⽰编码对象常住户⼝所在县(市、旗、区)的⾏政区划代码,按gb/T2260的规定执⾏。

3、出⽣⽇期码(第七位⾄⼗四位) 表⽰编码对象出⽣的年、⽉、⽇,按gb/T7408的规定执⾏,年、⽉、⽇代码之间不⽤分隔符。

4、顺序码(第⼗五位⾄⼗七位) 表⽰在同⼀地址码所标识的区域范围内,对同年、同⽉、同⽇出⽣的⼈编定的顺序号,顺序码的奇数分配给男性,偶数分配给⼥性。

5、校验码(第⼗⼋位数) 作为尾号的校验码,是由号码编制单位按统⼀的公式计算出来的,如果某⼈的尾号是0-9,都不会出现X,但如果尾号是10,那么就得⽤X来代替,因为如果⽤10做尾号,那么此⼈的⾝份证就变成了19位。

X是罗马数字的10,⽤X来代替10,可以保证公民的⾝份证符合国家标准。

在知道⾝份证号结构组成各部分的意思后,我们开始进⼊主题: 1、定义⼀个全国地区的对象var aCity={11:"北京",12:"天津",13:"河北",14:"⼭西",15:"内蒙古",21:"辽宁",22:"吉林",23:"⿊龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"⼭东",41:"河南",42:"湖北",43:"湖南",44:"⼴东",45:"⼴西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"⽢肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"⾹港",82:"澳门",91:"国外"} 2、正则表达式判断function isCardID(sId){var iSum=0 ;var info="" ;if(!/^\d{17}(\d|x)$/i.test(sId)) return "你输⼊的⾝份证长度或格式错误";sId=sId.replace(/x$/i,"a");if(aCity[parseInt(sId.substr(0,2))]==null) return "你的⾝份证地区⾮法";sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2));var d=new Date(sBirthday.replace(/-/g,"/")) ;if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))return "⾝份证上的出⽣⽇期⾮法";for(var i = 17;i>=0;i --) iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11) ;if(iSum%11!=1) return "你输⼊的⾝份证号⾮法";//aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"男":"⼥");//此次还可以判断出输⼊的⾝份证号的⼈性别return true;}第⼆种⽅法:function scCard(){var scType=document.getElementById("sc_card_type").value;if(scType=="1"){var scCard=document.getElementById("sc_card_num").value;if(scCard.length!=0){if(!checkCard(scCard)){$("#errorTips").html("⾝份证号码格式错误");}else{$("#errorTips").html("");}}}return false;}//function checkidno(obj) {var vcity={ 11:"北京",12:"天津",13:"河北",14:"⼭西",15:"内蒙古",21:"辽宁",22:"吉林",23:"⿊龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"⼭东",41:"河南",42:"湖北",43:"湖南",44:"⼴东",45:"⼴西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"⽢肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"⾹港",82:"澳门",91:"国外"};checkCard = function(obj){//var card = document.getElementById('card_no').value;//是否为空// if(card === '')// {// return false;//}//校验长度,类型if(isCardNo(obj) === false){return false;}//检查省份if(checkProvince(obj) === false){return false;}//校验⽣⽇if(checkBirthday(obj) === false){return false;}//检验位的检测if(checkParity(obj) === false){return false;}return true;};//检查号码是否符合规范,包括长度,类型isCardNo = function(obj){//⾝份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后⼀位是校验位,可能为数字或字符X var reg = /(^\d{15}$)|(^\d{17}(\d|X)$)/;if(reg.test(obj) === false){return false;}return true;};//取⾝份证前两位,校验省份checkProvince = function(obj){var province = obj.substr(0,2);if(vcity[province] == undefined){return false;}return true;};//检查⽣⽇是否正确checkBirthday = function(obj){var len = obj.length;//⾝份证15位时,次序为省(3位)市(3位)年(2位)⽉(2位)⽇(2位)校验位(3位),皆为数字if(len == '15'){var re_fifteen = /^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/;var arr_data = obj.match(re_fifteen);var year = arr_data[2];var month = arr_data[3];var day = arr_data[4];var birthday = new Date('19'+year+'/'+month+'/'+day);return verifyBirthday('19'+year,month,day,birthday);}//⾝份证18位时,次序为省(3位)市(3位)年(4位)⽉(2位)⽇(2位)校验位(4位),校验位末尾可能为X if(len == '18'){var re_eighteen = /^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/;var arr_data = obj.match(re_eighteen);var year = arr_data[2];var month = arr_data[3];var day = arr_data[4];var birthday = new Date(year+'/'+month+'/'+day);return verifyBirthday(year,month,day,birthday);}return false;};//校验⽇期verifyBirthday = function(year,month,day,birthday){var now = new Date();var now_year = now.getFullYear();//年⽉⽇是否合理if(birthday.getFullYear() == year && (birthday.getMonth() + 1) == month && birthday.getDate() == day){//判断年份的范围(3岁到100岁之间)var time = now_year - year;if(time >= 0 && time <= 130){return true;}return false;}return false;};//校验位的检测checkParity = function(obj){//15位转18位obj = changeFivteenToEighteen(obj);var len = obj.length;if(len == '18'){var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');var cardTemp = 0, i, valnum;for(i = 0; i < 17; i ++){cardTemp += obj.substr(i, 1) * arrInt[i];}valnum = arrCh[cardTemp % 11];if (valnum == obj.substr(17, 1)){return true;}return false;}return false;};//15位转18位⾝份证号changeFivteenToEighteen = function(obj){if(obj.length == '15'){var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');var cardTemp = 0, i;obj = obj.substr(0, 6) + '19' + obj.substr(6, obj.length - 6);for(i = 0; i < 17; i ++){cardTemp += obj.substr(i, 1) * arrInt[i];}obj += arrCh[cardTemp % 11];return obj;}return obj; };。

数据校验系统和数据校验方法

数据校验系统和数据校验方法

数据校验系统和数据校验方法一、数据校验系统介绍数据校验系统是一种用于验证数据准确性和完整性的软件工具。

它通过对数据进行检查、比对和验证,以确保数据的正确性和一致性。

数据校验系统广泛应用于各个行业和领域,如金融、电子商务、医疗保健等,用于保证数据的可靠性和可用性。

二、数据校验系统的功能和特点1. 数据校验功能:数据校验系统可以对数据进行各种校验操作,包括格式校验、逻辑校验、范围校验等。

它可以检查数据是否符合预定的规则和标准,发现并修复数据中的错误和异常。

2. 数据比对功能:数据校验系统可以将不同数据源的数据进行比对,找出其中的差异和不一致之处。

它可以匡助用户发现数据源之间的问题,并提供解决方案和建议。

3. 数据验证功能:数据校验系统可以对数据进行验证,确保数据的完整性和准确性。

它可以通过算法和规则验证数据的正确性,并生成验证报告和日志,匡助用户进行数据分析和决策。

4. 数据清洗功能:数据校验系统可以对数据进行清洗和修复,去除重复、缺失和错误的数据。

它可以自动识别和纠正数据中的问题,提高数据质量和可信度。

5. 数据安全性:数据校验系统具有高度的数据安全性和保密性。

它可以对敏感数据进行加密和授权访问,防止数据泄露和非法使用。

6. 数据可视化:数据校验系统可以将校验结果以图表、报表等形式进行可视化展示,方便用户进行数据分析和查看。

三、数据校验方法1. 格式校验:数据校验系统可以通过正则表达式、数据字典等方式对数据的格式进行校验。

例如,对于手机号码字段,可以使用正则表达式验证其是否符合手机号码的格式要求。

2. 逻辑校验:数据校验系统可以通过逻辑规则对数据进行校验。

例如,对于定单数据,可以验证定单金额是否大于0,定单日期是否在有效范围内等。

3. 范围校验:数据校验系统可以对数据的取值范围进行校验。

例如,对于年龄字段,可以验证其取值范围是否在0到150之间。

4. 比对校验:数据校验系统可以将不同数据源的数据进行比对,找出其中的差异和不一致之处。

JAVA校验身份证号码工具类(支持15位和18位)

JAVA校验身份证号码工具类(支持15位和18位)

JAVA校验⾝份证号码⼯具类(⽀持15位和18位)JAVA 校验⾝份证号码⼯具类(⽀持15位和18位)import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.GregorianCalendar;import java.util.Hashtable;import java.util.regex.Matcher;import java.util.regex.Pattern;/*** TODO* ⾝份证校验⼯具类*/public class IDCardUtil {/*校验规则:如果为15位,只能是15位数字;前两位满⾜省/直辖市的⾏政区划代码。

如果为18位,允许为18位数字,如出现字母只能在最后⼀位,且仅能为“X”;18位中包含年⽉的字段满⾜⽇期的构成规则;前两位满⾜省/直辖市的⾏政区划代码;最后⼀位校验位满⾜⾝份证的校验规则(⾝份证校验规则见附录)。

附录:⾝份证校验规则公民⾝份证号码校验公式为RESULT = ∑( A[i] * W[i] ) mod 11。

其中,i表⽰号码字符从右⾄左包括校验码在内的位置序号;A[i]表⽰第I位置上的数字的数值;W[i]表⽰第i位置上的加权因⼦,其值如下:i 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2W[i] 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2RESULT 0 1 2 3 4 5 6 7 8 9 10校验码A[1] 1 0 X 9 8 7 6 5 4 3 2*/public static boolean idCardValidate(String idCard) {String[] valCodeArr = {"1", "0", "x", "9", "8", "7", "6", "5", "4", "3", "2"};String[] wi = {"7", "9", "10", "5", "8", "4", "2", "1", "6", "3", "7", "9", "10", "5", "8", "4", "2"};String ai = "";String ai1 = "";String ai2 = "";// 号码的长度 15位或18位if (idCard.length() != 15 && idCard.length() != 18) {return false;}// 数字除最后以为都为数字if (idCard.length() == 18) {ai = idCard.substring(0, 17);} else if (idCard.length() == 15) {ai = idCard.substring(0, 6) + "19" + idCard.substring(6, 15);}if (!isNumeric(ai)) {return false;}// 出⽣年⽉是否有效String strYear = ai.substring(6, 10); // 年份String strMonth = ai.substring(10, 12); // ⽉份String strDay = ai.substring(12, 14); // ⽉份if (!isDataFormat(strYear + "-" + strMonth + "-" + strDay)) {return false;}GregorianCalendar gc = new GregorianCalendar();SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd");try {if ((gc.get(Calendar.YEAR) - Integer.parseInt(strYear)) > 150|| (gc.getTime().getTime() - s.parse(strYear + "-" + strMonth + "-" + strDay).getTime()) < 0) {return false;}} catch (Exception e) {e.printStackTrace();}if (Integer.parseInt(strMonth) > 12 || Integer.parseInt(strMonth) == 0) {return false;}if (Integer.parseInt(strDay) > 31 || Integer.parseInt(strDay) == 0) {return false;}// 地区码是否有效Hashtable h = getAreaCode();if (h.get(ai.substring(0, 2)) == null) {return false;}// 判断最后⼀位的值int totalmulAiWi = 0;for (int i = 0; i < 17; i++) {totalmulAiWi = totalmulAiWi + Integer.parseInt(String.valueOf(ai.charAt(i))) * Integer.parseInt(wi[i]);}int modValue = totalmulAiWi % 11;String strVerifyCode = valCodeArr[modValue];ai1 = ai + strVerifyCode.toUpperCase();ai2 = ai + strVerifyCode.toLowerCase();if (idCard.length() == 18) {if (!ai1.equals(idCard) && !ai2.equals(idCard)) {return false;}}return true;}private static boolean isNumeric(String str) {Pattern pattern = pile("[0-9]*");Matcher isNum = pattern.matcher(str);if (isNum.matches()) {return true;}return false;}private static boolean isDataFormat(String str) {boolean flag = false;String regxStr = "^((\\d{2}(([02468][048])|([13579][26]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([135 Pattern pattern1 = pile(regxStr);Matcher isNo = pattern1.matcher(str);if (isNo.matches()) {flag = true;}return flag;}private static Hashtable getAreaCode() { Hashtable hashtable = new Hashtable(); hashtable.put("11", "北京");hashtable.put("12", "天津");hashtable.put("13", "河北");hashtable.put("14", "⼭西");hashtable.put("15", "内蒙古");hashtable.put("21", "辽宁");hashtable.put("22", "吉林");hashtable.put("23", "⿊龙江");hashtable.put("31", "上海");hashtable.put("32", "江苏");hashtable.put("33", "浙江");hashtable.put("34", "安徽");hashtable.put("35", "福建");hashtable.put("36", "江西");hashtable.put("37", "⼭东");hashtable.put("41", "河南");hashtable.put("42", "湖北");hashtable.put("43", "湖南");hashtable.put("44", "⼴东");hashtable.put("45", "⼴西");hashtable.put("46", "海南");hashtable.put("50", "重庆");hashtable.put("51", "四川");hashtable.put("52", "贵州");hashtable.put("53", "云南");hashtable.put("54", "西藏");hashtable.put("61", "陕西");hashtable.put("62", "⽢肃");hashtable.put("63", "青海");hashtable.put("64", "宁夏");hashtable.put("65", "新疆");hashtable.put("71", "台湾");hashtable.put("81", "⾹港");hashtable.put("82", "澳门");hashtable.put("91", "国外");return hashtable;}}。

中国居民居住证号码验证工具--开源

中国居民居住证号码验证工具--开源

中国居民居住证号码验证⼯具--开源IdValidator.php()中华⼈民共和国居民⾝份证、中华⼈民共和国港澳居民居住证以及中华⼈民共和国台湾居民居住证号码验证⼯具(PHP Composer 版)⽀持15 位与 18 位号码。

安装composer require "jxlwqq/id-validator"注:如果 require 失败,解决⽅案见。

使⽤440308************和610104*********⽰例⼤陆居民⾝份证均为随机⽣成的假数据,如撞车,请联系删除。

810000************和830000199201300022⽰例港澳台居民居住证为北京市公安局公布的居住证样式号码。

验证⾝份证号合法性验证⾝份证号是否合法,合法返回true,不合法返回false:use Jxlwqq\IdValidator\IdValidator;$idValidator = new IdValidator();$idValidator->isValid('440308************'); // ⼤陆居民⾝份证 18 位$idValidator->isValid('610104*********'); // ⼤陆居民⾝份证 15 位$idValidator->isValid('810000************'); // 港澳居民居住证 18 位$idValidator->isValid('830000199201300022'); // 台湾居民居住证 18 位获取⾝份证号信息当⾝份证号合法时,返回分析信息(地区、出⽣⽇期、星座、⽣肖、性别、校验位),不合法返回false:use Jxlwqq\IdValidator\IdValidator;$idValidator = new IdValidator();$idValidator->getInfo('440308************'); // 18 位$idValidator->getInfo('610104*********'); // 15 位返回信息格式如下:['addressCode' => '440308', // 地址码'abandoned' => 0, // 地址码是否废弃,1 为废弃的,0 为正在使⽤的'address' => '⼴东省深圳市盐⽥区', // 地址'addressTree' => ['⼴东省', '深圳市', '盐⽥区'] // 省市区三级列表'birthdayCode' => '1999-01-10', // 出⽣⽇期'constellation' => '⽔瓶座', // 星座'chineseZodiac' => '卯兔', // ⽣肖'sex' => 1, // 性别,1 为男性,0 为⼥性'length' => 18, // 号码长度'checkBit' => '2', // 校验码]注:判断地址码是否废弃的依据是,本数据集的采集源来⾃:,每年更新⼀次。

身份证号正则校验(js校验+JAVA校验)

身份证号正则校验(js校验+JAVA校验)

⾝份证号正则校验(js校验+JAVA校验)js校验⾝份证号【15位和18位】[javascript] view plaincopyprint?function scCard(){var scType=document.getElementById("sc_card_type").value;if(scType=="1"){var scCard=document.getElementById("sc_card_num").value;if(scCard.length!=0){if(!checkCard(scCard)){$("#errorTips").html("⾝份证号码格式错误");}else{$("#errorTips").html("");}}}return false;}//function checkidno(obj) {var vcity={ 11:"北京",12:"天津",13:"河北",14:"⼭西",15:"内蒙古",21:"辽宁",22:"吉林",23:"⿊龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"⼭东",41:"河南",42:"湖北",43:"湖南",44:"⼴东",45:"⼴西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"⽢肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"⾹港",82:"澳门",91:"国外"};checkCard = function(obj){//var card = document.getElementById('card_no').value;//是否为空// if(card === '')// {// return false;//}//校验长度,类型if(isCardNo(obj) === false){return false;}//检查省份if(checkProvince(obj) === false){return false;}//校验⽣⽇if(checkBirthday(obj) === false){return false;}//检验位的检测if(checkParity(obj) === false){return false;}return true;};//检查号码是否符合规范,包括长度,类型isCardNo = function(obj){//⾝份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后⼀位是校验位,可能为数字或字符Xvar reg = /(^\d{15}$)|(^\d{17}(\d|X)$)/;if(reg.test(obj) === false){return false;}return true;};//取⾝份证前两位,校验省份checkProvince = function(obj)var province = obj.substr(0,2);if(vcity[province] == undefined){return false;}return true;};//检查⽣⽇是否正确checkBirthday = function(obj){var len = obj.length;//⾝份证15位时,次序为省(3位)市(3位)年(2位)⽉(2位)⽇(2位)校验位(3位),皆为数字if(len == '15'){var re_fifteen = /^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/;var arr_data = obj.match(re_fifteen);var year = arr_data[2];var month = arr_data[3];var day = arr_data[4];var birthday = new Date('19'+year+'/'+month+'/'+day);return verifyBirthday('19'+year,month,day,birthday);}//⾝份证18位时,次序为省(3位)市(3位)年(4位)⽉(2位)⽇(2位)校验位(4位),校验位末尾可能为X if(len == '18'){var re_eighteen = /^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/;var arr_data = obj.match(re_eighteen);var year = arr_data[2];var month = arr_data[3];var day = arr_data[4];var birthday = new Date(year+'/'+month+'/'+day);return verifyBirthday(year,month,day,birthday);}return false;};//校验⽇期verifyBirthday = function(year,month,day,birthday){var now = new Date();var now_year = now.getFullYear();//年⽉⽇是否合理if(birthday.getFullYear() == year && (birthday.getMonth() + 1) == month && birthday.getDate() == day){//判断年份的范围(3岁到100岁之间)var time = now_year - year;if(time >= 0 && time <= 130){return true;}return false;}return false;};//校验位的检测checkParity = function(obj){//15位转18位obj = changeFivteenToEighteen(obj);var len = obj.length;if(len == '18'){var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');var cardTemp = 0, i, valnum;for(i = 0; i < 17; i ++){cardTemp += obj.substr(i, 1) * arrInt[i];}valnum = arrCh[cardTemp % 11];if (valnum == obj.substr(17, 1)){return true;}return false;}return false;};//15位转18位⾝份证号changeFivteenToEighteen = function(obj)if(obj.length == '15'){var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');var cardTemp = 0, i;obj = obj.substr(0, 6) + '19' + obj.substr(6, obj.length - 6);for(i = 0; i < 17; i ++){cardTemp += obj.substr(i, 1) * arrInt[i];}obj += arrCh[cardTemp % 11];return obj;}return obj;};JAVA校验package com.ebiz.base.utils;import java.text.SimpleDateFormat;import java.util.Date;import java.util.GregorianCalendar;import java.util.List;import java.util.regex.Matcher;import java.util.regex.Pattern;import com.ebiz.base.consts.BaseConst;import com.ebiz.base.consts.ConfigConst;import com.ebiz.base.consts.ExceptionConst;import com.ebiz.framework.util.date.DateUtil;import com.ebiz.framework.util.date.DateValidate;import com.ebiz.framework.util.validate.ValidateUtil;import puta.FndPageRule;import com.hp.hpl.sparta.ParseException;public class CheckIdentificationUtil {public static void main(String[] args) {System.out.println(idCardValidate("370802*********"));}/**功能 18位⾝份证的校验* @param idStr* @return ParseException 1001* @throws Exception* @throws ParseException* @throws NumberFormatException* @throws java.text.ParseException* @author wangming*/public static String idCardValidate(String idStr) {if (idStr == null || ( idStr.length() != 15 && idStr.length() != 18 )) {return BaseConst.PUBLIC_RESPONSE_FAIL;}if( idStr.length() == 15 ){StringBuilder sb = new StringBuilder();sb.append(idStr.substring(0, 6)).append("19").append(idStr.substring(6));try {sb.append(getVerifyCode(sb.toString()));idStr = sb.toString();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println(sb);}String errorInfo = "";// 记录错误信息//取模映射String[] valCodeArr = { "1", "0", "X", "9", "8", "7", "6", "5", "4","3", "2" };//加权String[] wi = { "7", "9", "10", "5", "8", "4", "2", "1", "6", "3", "7","9", "10", "5", "8", "4", "2" }; String ai =idStr.substring(0, 17);if (ValidateUtil.isDigit(ai) == false) {errorInfo = ExceptionConst.PAXINFO_CARD_ISNOTNUM;return errorInfo;}// ================ 出⽣年⽉是否有效 ================String strYear = ai.substring(6, 10);// 年份String strMonth = ai.substring(10, 12);// ⽉份String strDay = ai.substring(12, 14);// ⽉份if (DateValidate.isStrDate(ai.substring(6,14))== false) {errorInfo = ExceptionConst.PAXINFO_CARD_BIRTHDAY_OVER;//"⾝份证⽣⽇⽆效。

公民身份证号码登记表

公民身份证号码登记表

公民身份证号码登记表公民身份证号码登记表:一个重要的身份识别工具作为中国公民,每个人都有一个独特的身份证号码。

这个18位数字的代码,对于我们每个人来说,都是非常重要的身份识别工具。

本文将详细介绍公民身份证号码登记表的构成、作用以及相关注意事项。

一、身份证号码的构成公民身份证号码由18位数字组成,分别代表了不同的含义。

其中,前6位是地址码,表示发证地的行政区划代码;接下来的8位是出生码,代表了持有人的出生日期;再接下来的3位是顺序码,表示在同一地址码范围内同年同月同日出生的人的顺序号;最后一位是校验码,用于校验前17位数字的正确性。

二、身份证号码的作用公民身份证号码是公民进行社会活动时的重要身份凭证。

它不仅可以用于证明公民的个人身份,还可以用于办理各种证件、手续,如户口迁移、银行开户、就业登记、婚姻登记等。

此外,公民还可以凭借身份证号码享受政府提供的各种公共服务,如医疗保健、社会保障等。

三、身份证号码登记表的注意事项1、妥善保管:公民应当妥善保管自己的身份证,避免遗失或被盗。

如果发现身份证遗失或被盗,应当及时报警并办理挂失手续。

2、防止泄露:公民应当注意保护个人隐私,避免身份证号码泄露给不法分子。

在上网或提供个人身份信息时,要谨慎对待,避免在不安全的网站或环境下输入个人信息。

3、及时更新:如果公民的住址、出生日期等基本信息发生变化,应及时办理身份证变更手续,以确保个人信息的准确性。

总之,公民身份证号码登记表是我们日常生活中不可或缺的身份识别工具。

了解其构成、作用及使用注意事项,对于我们保护个人隐私、确保个人信息准确性具有重要意义。

男性公民兵役登记表男性公民兵役登记表:为国家尽一份力的必要步骤每个公民都有义务为国家提供兵役服务,这是我们对国家的责任和荣誉。

兵役登记是这一过程的重要步骤,让我们了解为什么填写男性公民兵役登记表是必要的。

一、兵役登记的重要性兵役登记是国防部为征集士兵而进行的一项基础工作。

JS严格校验身份证号-(严格校验每一位身份号码)

JS严格校验身份证号-(严格校验每一位身份号码)

JS严格校验⾝份证号-(严格校验每⼀位⾝份号码)html校验⽰例<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>JS严格校验⾝份证号</title></head><body><div align="center"></br></br></br></br></br></br></br></br><div class="form-inline"><input type="text"class="form-control" style="width: 200px;" id="idCard" placeholder="输⼊⾝份证号"><button class="btn btn-default" onclick="check();">校验</button></div></div><footer class="footer"><div class="container"><p class="text-muted" align="center">Author:<a href="" target="_blank">麦⽥技术博客</a></p></div></footer></body><script type="text/javascript">function check(){var idCard = document.getElementById("idCard").value;var flag =IdCardValidate(idCard);if(flag){alert("正确!");}else{alert("您输⼊的⾝份证号格式不正确 ");}}var Wi =[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1];// 加权因⼦var ValideCode =[1,0,10,9,8,7,6,5,4,3,2];// ⾝份证验证位值.10代表Xfunction IdCardValidate(idCard){idCard =trim(idCard.replace(/ /g,""));//去掉字符串头尾空格if(idCard.length ==15){return isValidityBrithBy15IdCard(idCard);//进⾏15位⾝份证的验证}else if(idCard.length ==18){var a_idCard = idCard.split("");// 得到⾝份证数组if(isValidityBrithBy18IdCard(idCard)&&isTrueValidateCodeBy18IdCard(a_idCard)){//进⾏18位⾝份证的基本验证和第18位的验证return true;}else{return false;}}else{return false;}}/*** 判断⾝份证号码为18位时最后的验证位是否正确* @param a_idCard ⾝份证号码数组* @return*/function isTrueValidateCodeBy18IdCard(a_idCard){function isTrueValidateCodeBy18IdCard(a_idCard){var sum =0;// 声明加权求和变量if(a_idCard[17].toLowerCase()=='x'){a_idCard[17]=10;// 将最后位为x的验证码替换为10⽅便后续操作}for(var i =0; i <17; i++){sum += Wi[i]* a_idCard[i];// 加权求和}valCodePosition = sum %11;// 得到验证码所位置if(a_idCard[17]== ValideCode[valCodePosition]){return true;}else{return false;}}/*** 验证18位数⾝份证号码中的⽣⽇是否是有效⽣⽇* @param idCard 18位书⾝份证字符串* @return*/function isValidityBrithBy18IdCard(idCard18){var year = idCard18.substring(6,10);var month = idCard18.substring(10,12);var day = idCard18.substring(12,14);var temp_date =new Date(year,parseFloat(month)-1,parseFloat(day)); // 这⾥⽤getFullYear()获取年份,避免千年⾍问题if(temp_date.getFullYear()!=parseFloat(year)||temp_date.getMonth()!=parseFloat(month)-1||temp_date.getDate()!=parseFloat(day)){return false;}else{return true;}}/*** 验证15位数⾝份证号码中的⽣⽇是否是有效⽣⽇* @param idCard15 15位书⾝份证字符串* @return*/function isValidityBrithBy15IdCard(idCard15){var year = idCard15.substring(6,8);var month = idCard15.substring(8,10);var day = idCard15.substring(10,12);var temp_date =new Date(year,parseFloat(month)-1,parseFloat(day)); // 对于⽼⾝份证中的你年龄则不需考虑千年⾍问题⽽使⽤getYear()⽅法if(temp_date.getYear()!=parseFloat(year)||temp_date.getMonth()!=parseFloat(month)-1||temp_date.getDate()!=parseFloat(day)){return false;}else{return true;}}//去掉字符串头尾空格function trim(str){return str.replace(/(^\s*)|(\s*$)/g,"");}</script></html>js校验核⼼代码引⼊只需要调⽤这个⽅法即可IdCardValidate(“你要验证的⾝份证”); function check(){var idCard = document.getElementById("idCard").value;var flag =IdCardValidate(idCard);var flag =IdCardValidate(idCard);if(flag){alert("正确!");}else{alert("您输⼊的⾝份证号格式不正确 ");}}var Wi =[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1];// 加权因⼦var ValideCode =[1,0,10,9,8,7,6,5,4,3,2];// ⾝份证验证位值.10代表Xfunction IdCardValidate(idCard){idCard =trim(idCard.replace(/ /g,""));//去掉字符串头尾空格if(idCard.length ==15){return isValidityBrithBy15IdCard(idCard);//进⾏15位⾝份证的验证}else if(idCard.length ==18){var a_idCard = idCard.split("");// 得到⾝份证数组if(isValidityBrithBy18IdCard(idCard)&&isTrueValidateCodeBy18IdCard(a_idCard)){//进⾏18位⾝份证的基本验证和第18位的验证return true;}else{return false;}}else{return false;}}/*** 判断⾝份证号码为18位时最后的验证位是否正确* @param a_idCard ⾝份证号码数组* @return*/function isTrueValidateCodeBy18IdCard(a_idCard){var sum =0;// 声明加权求和变量if(a_idCard[17].toLowerCase()=='x'){a_idCard[17]=10;// 将最后位为x的验证码替换为10⽅便后续操作}for(var i =0; i <17; i++){sum += Wi[i]* a_idCard[i];// 加权求和}valCodePosition = sum %11;// 得到验证码所位置if(a_idCard[17]== ValideCode[valCodePosition]){return true;}else{return false;}}/*** 验证18位数⾝份证号码中的⽣⽇是否是有效⽣⽇* @param idCard 18位书⾝份证字符串* @return*/function isValidityBrithBy18IdCard(idCard18){var year = idCard18.substring(6,10);var month = idCard18.substring(10,12);var day = idCard18.substring(12,14);var temp_date =new Date(year,parseFloat(month)-1,parseFloat(day));// 这⾥⽤getFullYear()获取年份,避免千年⾍问题if(temp_date.getFullYear()!=parseFloat(year)||temp_date.getMonth()!=parseFloat(month)-1||temp_date.getDate()!=parseFloat(day)){return false;}else{return true;}}/*** 验证15位数⾝份证号码中的⽣⽇是否是有效⽣⽇* @param idCard15 15位书⾝份证字符串* @return* @return*/function isValidityBrithBy15IdCard(idCard15){var year = idCard15.substring(6,8);var month = idCard15.substring(8,10);var day = idCard15.substring(10,12);var temp_date =new Date(year,parseFloat(month)-1,parseFloat(day));// 对于⽼⾝份证中的你年龄则不需考虑千年⾍问题⽽使⽤getYear()⽅法if(temp_date.getYear()!=parseFloat(year)||temp_date.getMonth()!=parseFloat(month)-1||temp_date.getDate()!=parseFloat(day)){return false;}else{return true;}}//去掉字符串头尾空格function trim(str){return str.replace(/(^\s*)|(\s*$)/g,"");}。

数据校验系统和数据校验方法

数据校验系统和数据校验方法

数据校验系统和数据校验方法一、数据校验系统介绍数据校验系统是一种用于验证数据准确性和完整性的工具,它可以帮助用户检测和纠正数据中的错误、缺失或不一致之处。

本文将详细介绍数据校验系统的功能、特点以及常用的数据校验方法。

二、数据校验系统的功能1. 数据完整性校验:通过比对数据的关键字段,确保数据的完整性,避免数据丢失或不完整。

2. 数据一致性校验:对于存在多个数据源的情况,通过比对不同数据源的数据,确保数据的一致性,避免数据冲突或矛盾。

3. 数据格式校验:校验数据是否符合预定的格式要求,例如日期格式、电话号码格式等。

4. 数据逻辑校验:校验数据是否符合预设的逻辑规则,例如某字段的取值范围、某字段之间的关系等。

5. 数据合法性校验:校验数据是否符合法律法规或业务规定的要求,例如身份证号码是否合法、产品价格是否符合定价策略等。

三、数据校验系统的特点1. 自动化:数据校验系统可以自动进行数据校验,减少人工操作的工作量,提高效率。

2. 实时性:数据校验系统可以实时监测数据的变化,并及时发现和处理数据错误。

3. 可定制性:数据校验系统可以根据不同的业务需求进行定制,满足不同用户的特定需求。

4. 可扩展性:数据校验系统可以根据数据量的增长进行扩展,保证系统的稳定性和性能。

四、常用的数据校验方法1. 逻辑校验:通过定义数据字段之间的逻辑关系,对数据进行逻辑校验。

例如,对于某个字段的取值范围进行校验,或者对于多个字段之间的关系进行校验。

2. 格式校验:根据数据字段的预定格式要求,对数据进行格式校验。

例如,对于日期字段进行日期格式校验,对于电话号码字段进行电话号码格式校验等。

3. 唯一性校验:对于某个字段的取值进行唯一性校验,确保数据中不存在重复的记录。

4. 完整性校验:通过比对数据的关键字段,确保数据的完整性。

例如,对于订单数据,可以校验订单号、客户信息等关键字段是否完整。

5. 业务规则校验:根据业务规则对数据进行校验。

SF-身份证号批量计算工具

SF-身份证号批量计算工具

原身份证生成身份证号校验位正确性周岁#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE! #VALUE!#VALUE!#VALUE!身份证位数0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
身份证校验
2014/4/30
注: 1、该表可实现功能: 通过身份证号导出性别、出生日期、年龄、验证身份证号码正确与否(仅验证18位的)、检查身份证号是否有重复 2、此表仅有白色地方可填写内容,其余地方均不能输入任何内容 3、证件重复校验、姓名重复校验显示为1时,表示没有重复,显示为2时,表示有2个重复,依此类推 4、测算年龄时,请根据实际投保单上填写的申请日期修改相应信息



46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 说明: 1.身故受益人如为“法定”指被保险人的法定第一顺序继承人。
-
第3页,共8页 制表日期: 2.本表中职业类别依据《中国人保寿险有限公司》职业分类表确定。



说明: 1.身故受益人如为“法定”指被保险人的法定第一顺序继承人。
第6页,共8页 制表日期: 2.本表中职业类别依据《中国人保寿险有限公司》职业分类表确定。



说明: 1.身故受益人如为“法定”指被保险人的法定第一顺序继承人。
第7页,共8页 制表日期: 2.本表中职业类别依据《中国人保寿险有限公司》职业分类表确定。
序号
姓名
性别
出生日期
证件号码
出生日期
年龄
证件重复 校验
姓3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
谢晓莹
-
1
说明: 1.身故受益人如为“法定”指被保险人的法定第一顺序继承人。
第1页,共8页 制表日期: 2.本表中职业类别依据《中国人保寿险有限公司》职业分类表确定。



别、出生日期、年龄、验证身份证号码正确与否(仅验证18位的)、检查身份证号是否有重复、人名是否有重复 均不能输入任何内容 ,表示没有重复,显示为2时,表示有2个重复,依此类推 申请日期修改相应信息
身份证升位
说明: 1.身故受益人如为“法定”指被保险人的法定第一顺序继承人。
第5页,共8页 制表日期: 2.本表中职业类别依据《中国人保寿险有限公司》职业分类表确定。



说明: 1.身故受益人如为“法定”指被保险人的法定第一顺序继承人。
第8页,共8页 制表日期: 2.本表中职业类别依据《中国人保寿险有限公司》职业分类表确定。






19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 说明: 1.身故受益人如为“法定”指被保险人的法定第一顺序继承人。
-
第2页,共8页 制表日期: 2.本表中职业类别依据《中国人保寿险有限公司》职业分类表确定。



73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
-
说明: 1.身故受益人如为“法定”指被保险人的法定第一顺序继承人。
第4页,共8页 制表日期: 2.本表中职业类别依据《中国人保寿险有限公司》职业分类表确定。
相关文档
最新文档